diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000000..e8422f2e75 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,99 @@ +root = true + +# All Files +[*] +charset = utf-8 +indent_style = space +indent_size = 4 +tab_width = 4 +insert_final_newline = true +trim_trailing_whitespace = true + +[*.txt] +insert_final_newline = false + +# XML Project Files +[*.{slnx,csproj}] +indent_size = 2 +tab_width = 2 + +# Code Files +[*.{cs,vb}] +end_of_line = crlf + +dotnet_diagnostic.IDE0047.severity = none +dotnet_diagnostic.IDE0048.severity = none +dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:suggest +dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:suggest +dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:suggest +dotnet_style_parentheses_in_other_operators = always_for_clarity:suggest + +csharp_indent_labels = one_less_than_current +csharp_prefer_braces = when_multiline:warning +csharp_prefer_simple_using_statement = true:suggestion +csharp_prefer_system_threading_lock = true:suggestion +csharp_style_namespace_declarations = block_scoped:silent +csharp_style_prefer_method_group_conversion = true:silent +csharp_style_prefer_top_level_statements = true:silent +csharp_style_prefer_primary_constructors = true:suggestion +csharp_style_expression_bodied_methods = false:silent +csharp_style_expression_bodied_constructors = false:silent +csharp_style_expression_bodied_operators = false:silent +csharp_style_expression_bodied_properties = true:silent +csharp_style_expression_bodied_indexers = true:silent +csharp_style_expression_bodied_accessors = true:silent +csharp_style_expression_bodied_lambdas = true:silent +csharp_style_expression_bodied_local_functions = false:silent +csharp_using_directive_placement = outside_namespace:silent + +dotnet_style_operator_placement_when_wrapping = beginning_of_line +dotnet_style_coalesce_expression = true:suggestion +dotnet_style_null_propagation = true:suggestion +dotnet_style_prefer_is_null_check_over_reference_equality_method = true:suggestion +dotnet_style_prefer_auto_properties = true:silent +dotnet_style_object_initializer = true:suggestion +dotnet_style_collection_initializer = true:suggestion +dotnet_style_prefer_simplified_boolean_expressions = true:suggestion +dotnet_style_prefer_conditional_expression_over_assignment = true:silent +dotnet_style_prefer_conditional_expression_over_return = true:silent +dotnet_style_explicit_tuple_names = true:suggestion + +#### Naming styles #### + +# Naming rules + +dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion +dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface +dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i + +dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion +dotnet_naming_rule.types_should_be_pascal_case.symbols = types +dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case + +dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion +dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members +dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case + +# Symbol specifications + +dotnet_naming_symbols.interface.applicable_kinds = interface +dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected + +dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum +dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected + +dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method +dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal, private_protected + +# Naming styles + +dotnet_naming_style.begins_with_i.required_prefix = I +dotnet_naming_style.begins_with_i.capitalization = pascal_case + +dotnet_naming_style.pascal_case.capitalization = pascal_case + +# IDE0130: Namespace does not match folder structure +dotnet_diagnostic.IDE0130.severity = none + +# WFO1000: Property does not configure the code serialization for its property content. +dotnet_diagnostic.WFO1000.severity = none \ No newline at end of file diff --git a/Directory.Build.props b/Directory.Build.props new file mode 100644 index 0000000000..1ed906c363 --- /dev/null +++ b/Directory.Build.props @@ -0,0 +1,11 @@ + + + latest + en + pk3DS + Project Pokémon + Kaphotics + Kaphotics + $([System.DateTime]::UtcNow.ToString("yyMMddHHmmss")) + + diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000000..16d89e0a34 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,596 @@ +GNU GENERAL PUBLIC LICENSE +========================== + +Version 3, 29 June 2007 + +Copyright © 2007 Free Software Foundation, Inc. <> + +Everyone is permitted to copy and distribute verbatim copies of this license +document, but changing it is not allowed. + +## Preamble + +The GNU General Public License is a free, copyleft license for software and other +kinds of works. + +The licenses for most software and other practical works are designed to take away +your freedom to share and change the works. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change all versions of a +program--to make sure it remains free software for all its users. We, the Free +Software Foundation, use the GNU General Public License for most of our software; it +applies also to any other work released this way by its authors. You can apply it to +your programs, too. + +When we speak of free software, we are referring to freedom, not price. Our General +Public Licenses are designed to make sure that you have the freedom to distribute +copies of free software (and charge for them if you wish), that you receive source +code or can get it if you want it, that you can change the software or use pieces of +it in new free programs, and that you know you can do these things. + +To protect your rights, we need to prevent others from denying you these rights or +asking you to surrender the rights. Therefore, you have certain responsibilities if +you distribute copies of the software, or if you modify it: responsibilities to +respect the freedom of others. + +For example, if you distribute copies of such a program, whether gratis or for a fee, +you must pass on to the recipients the same freedoms that you received. You must make +sure that they, too, receive or can get the source code. And you must show them these +terms so they know their rights. + +Developers that use the GNU GPL protect your rights with two steps: (1) assert +copyright on the software, and (2) offer you this License giving you legal permission +to copy, distribute and/or modify it. + +For the developers' and authors' protection, the GPL clearly explains that there is +no warranty for this free software. For both users' and authors' sake, the GPL +requires that modified versions be marked as changed, so that their problems will not +be attributed erroneously to authors of previous versions. + +Some devices are designed to deny users access to install or run modified versions of +the software inside them, although the manufacturer can do so. This is fundamentally +incompatible with the aim of protecting users' freedom to change the software. The +systematic pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we have designed +this version of the GPL to prohibit the practice for those products. If such problems +arise substantially in other domains, we stand ready to extend this provision to +those domains in future versions of the GPL, as needed to protect the freedom of +users. + +Finally, every program is threatened constantly by software patents. States should +not allow patents to restrict development and use of software on general-purpose +computers, but in those that do, we wish to avoid the special danger that patents +applied to a free program could make it effectively proprietary. To prevent this, the +GPL assures that patents cannot be used to render the program non-free. + +The precise terms and conditions for copying, distribution and modification follow. + +## TERMS AND CONDITIONS + +### 0. Definitions. + +“This License” refers to version 3 of the GNU General Public License. + +“Copyright” also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + +“The Program” refers to any copyrightable work licensed under this +License. Each licensee is addressed as “you”. “Licensees” and +“recipients” may be individuals or organizations. + +To “modify” a work means to copy from or adapt all or part of the work in +a fashion requiring copyright permission, other than the making of an exact copy. The +resulting work is called a “modified version” of the earlier work or a +work “based on” the earlier work. + +A “covered work” means either the unmodified Program or a work based on +the Program. + +To “propagate” a work means to do anything with it that, without +permission, would make you directly or secondarily liable for infringement under +applicable copyright law, except executing it on a computer or modifying a private +copy. Propagation includes copying, distribution (with or without modification), +making available to the public, and in some countries other activities as well. + +To “convey” a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through a computer +network, with no transfer of a copy, is not conveying. + +An interactive user interface displays “Appropriate Legal Notices” to the +extent that it includes a convenient and prominently visible feature that (1) +displays an appropriate copyright notice, and (2) tells the user that there is no +warranty for the work (except to the extent that warranties are provided), that +licensees may convey the work under this License, and how to view a copy of this +License. If the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + +### 1. Source Code. + +The “source code” for a work means the preferred form of the work for +making modifications to it. “Object code” means any non-source form of a +work. + +A “Standard Interface” means an interface that either is an official +standard defined by a recognized standards body, or, in the case of interfaces +specified for a particular programming language, one that is widely used among +developers working in that language. + +The “System Libraries” of an executable work include anything, other than +the work as a whole, that (a) is included in the normal form of packaging a Major +Component, but which is not part of that Major Component, and (b) serves only to +enable use of the work with that Major Component, or to implement a Standard +Interface for which an implementation is available to the public in source code form. +A “Major Component”, in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system (if any) on which +the executable work runs, or a compiler used to produce the work, or an object code +interpreter used to run it. + +The “Corresponding Source” for a work in object code form means all the +source code needed to generate, install, and (for an executable work) run the object +code and to modify the work, including scripts to control those activities. However, +it does not include the work's System Libraries, or general-purpose tools or +generally available free programs which are used unmodified in performing those +activities but which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for the work, and +the source code for shared libraries and dynamically linked subprograms that the work +is specifically designed to require, such as by intimate data communication or +control flow between those subprograms and other parts of the work. + +The Corresponding Source need not include anything that users can regenerate +automatically from other parts of the Corresponding Source. + +The Corresponding Source for a work in source code form is that same work. + +### 2. Basic Permissions. + +All rights granted under this License are granted for the term of copyright on the +Program, and are irrevocable provided the stated conditions are met. This License +explicitly affirms your unlimited permission to run the unmodified Program. The +output from running a covered work is covered by this License only if the output, +given its content, constitutes a covered work. This License acknowledges your rights +of fair use or other equivalent, as provided by copyright law. + +You may make, run and propagate covered works that you do not convey, without +conditions so long as your license otherwise remains in force. You may convey covered +works to others for the sole purpose of having them make modifications exclusively +for you, or provide you with facilities for running those works, provided that you +comply with the terms of this License in conveying all material for which you do not +control copyright. Those thus making or running the covered works for you must do so +exclusively on your behalf, under your direction and control, on terms that prohibit +them from making any copies of your copyrighted material outside their relationship +with you. + +Conveying under any other circumstances is permitted solely under the conditions +stated below. Sublicensing is not allowed; section 10 makes it unnecessary. + +### 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + +No covered work shall be deemed part of an effective technological measure under any +applicable law fulfilling obligations under article 11 of the WIPO copyright treaty +adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention +of such measures. + +When you convey a covered work, you waive any legal power to forbid circumvention of +technological measures to the extent such circumvention is effected by exercising +rights under this License with respect to the covered work, and you disclaim any +intention to limit operation or modification of the work as a means of enforcing, +against the work's users, your or third parties' legal rights to forbid circumvention +of technological measures. + +### 4. Conveying Verbatim Copies. + +You may convey verbatim copies of the Program's source code as you receive it, in any +medium, provided that you conspicuously and appropriately publish on each copy an +appropriate copyright notice; keep intact all notices stating that this License and +any non-permissive terms added in accord with section 7 apply to the code; keep +intact all notices of the absence of any warranty; and give all recipients a copy of +this License along with the Program. + +You may charge any price or no price for each copy that you convey, and you may offer +support or warranty protection for a fee. + +### 5. Conveying Modified Source Versions. + +You may convey a work based on the Program, or the modifications to produce it from +the Program, in the form of source code under the terms of section 4, provided that +you also meet all of these conditions: + +* **a)** The work must carry prominent notices stating that you modified it, and giving a +relevant date. +* **b)** The work must carry prominent notices stating that it is released under this +License and any conditions added under section 7. This requirement modifies the +requirement in section 4 to “keep intact all notices”. +* **c)** You must license the entire work, as a whole, under this License to anyone who +comes into possession of a copy. This License will therefore apply, along with any +applicable section 7 additional terms, to the whole of the work, and all its parts, +regardless of how they are packaged. This License gives no permission to license the +work in any other way, but it does not invalidate such permission if you have +separately received it. +* **d)** If the work has interactive user interfaces, each must display Appropriate Legal +Notices; however, if the Program has interactive interfaces that do not display +Appropriate Legal Notices, your work need not make them do so. + +A compilation of a covered work with other separate and independent works, which are +not by their nature extensions of the covered work, and which are not combined with +it such as to form a larger program, in or on a volume of a storage or distribution +medium, is called an “aggregate” if the compilation and its resulting +copyright are not used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work in an aggregate +does not cause this License to apply to the other parts of the aggregate. + +### 6. Conveying Non-Source Forms. + +You may convey a covered work in object code form under the terms of sections 4 and +5, provided that you also convey the machine-readable Corresponding Source under the +terms of this License, in one of these ways: + +* **a)** Convey the object code in, or embodied in, a physical product (including a +physical distribution medium), accompanied by the Corresponding Source fixed on a +durable physical medium customarily used for software interchange. +* **b)** Convey the object code in, or embodied in, a physical product (including a +physical distribution medium), accompanied by a written offer, valid for at least +three years and valid for as long as you offer spare parts or customer support for +that product model, to give anyone who possesses the object code either (1) a copy of +the Corresponding Source for all the software in the product that is covered by this +License, on a durable physical medium customarily used for software interchange, for +a price no more than your reasonable cost of physically performing this conveying of +source, or (2) access to copy the Corresponding Source from a network server at no +charge. +* **c)** Convey individual copies of the object code with a copy of the written offer to +provide the Corresponding Source. This alternative is allowed only occasionally and +noncommercially, and only if you received the object code with such an offer, in +accord with subsection 6b. +* **d)** Convey the object code by offering access from a designated place (gratis or for +a charge), and offer equivalent access to the Corresponding Source in the same way +through the same place at no further charge. You need not require recipients to copy +the Corresponding Source along with the object code. If the place to copy the object +code is a network server, the Corresponding Source may be on a different server +(operated by you or a third party) that supports equivalent copying facilities, +provided you maintain clear directions next to the object code saying where to find +the Corresponding Source. Regardless of what server hosts the Corresponding Source, +you remain obligated to ensure that it is available for as long as needed to satisfy +these requirements. +* **e)** Convey the object code using peer-to-peer transmission, provided you inform +other peers where the object code and Corresponding Source of the work are being +offered to the general public at no charge under subsection 6d. + +A separable portion of the object code, whose source code is excluded from the +Corresponding Source as a System Library, need not be included in conveying the +object code work. + +A “User Product” is either (1) a “consumer product”, which +means any tangible personal property which is normally used for personal, family, or +household purposes, or (2) anything designed or sold for incorporation into a +dwelling. In determining whether a product is a consumer product, doubtful cases +shall be resolved in favor of coverage. For a particular product received by a +particular user, “normally used” refers to a typical or common use of +that class of product, regardless of the status of the particular user or of the way +in which the particular user actually uses, or expects or is expected to use, the +product. A product is a consumer product regardless of whether the product has +substantial commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + +“Installation Information” for a User Product means any methods, +procedures, authorization keys, or other information required to install and execute +modified versions of a covered work in that User Product from a modified version of +its Corresponding Source. The information must suffice to ensure that the continued +functioning of the modified object code is in no case prevented or interfered with +solely because modification has been made. + +If you convey an object code work under this section in, or with, or specifically for +use in, a User Product, and the conveying occurs as part of a transaction in which +the right of possession and use of the User Product is transferred to the recipient +in perpetuity or for a fixed term (regardless of how the transaction is +characterized), the Corresponding Source conveyed under this section must be +accompanied by the Installation Information. But this requirement does not apply if +neither you nor any third party retains the ability to install modified object code +on the User Product (for example, the work has been installed in ROM). + +The requirement to provide Installation Information does not include a requirement to +continue to provide support service, warranty, or updates for a work that has been +modified or installed by the recipient, or for the User Product in which it has been +modified or installed. Access to a network may be denied when the modification itself +materially and adversely affects the operation of the network or violates the rules +and protocols for communication across the network. + +Corresponding Source conveyed, and Installation Information provided, in accord with +this section must be in a format that is publicly documented (and with an +implementation available to the public in source code form), and must require no +special password or key for unpacking, reading or copying. + +### 7. Additional Terms. + +“Additional permissions” are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. Additional +permissions that are applicable to the entire Program shall be treated as though they +were included in this License, to the extent that they are valid under applicable +law. If additional permissions apply only to part of the Program, that part may be +used separately under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + +When you convey a copy of a covered work, you may at your option remove any +additional permissions from that copy, or from any part of it. (Additional +permissions may be written to require their own removal in certain cases when you +modify the work.) You may place additional permissions on material, added by you to a +covered work, for which you have or can give appropriate copyright permission. + +Notwithstanding any other provision of this License, for material you add to a +covered work, you may (if authorized by the copyright holders of that material) +supplement the terms of this License with terms: + +* **a)** Disclaiming warranty or limiting liability differently from the terms of +sections 15 and 16 of this License; or +* **b)** Requiring preservation of specified reasonable legal notices or author +attributions in that material or in the Appropriate Legal Notices displayed by works +containing it; or +* **c)** Prohibiting misrepresentation of the origin of that material, or requiring that +modified versions of such material be marked in reasonable ways as different from the +original version; or +* **d)** Limiting the use for publicity purposes of names of licensors or authors of the +material; or +* **e)** Declining to grant rights under trademark law for use of some trade names, +trademarks, or service marks; or +* **f)** Requiring indemnification of licensors and authors of that material by anyone +who conveys the material (or modified versions of it) with contractual assumptions of +liability to the recipient, for any liability that these contractual assumptions +directly impose on those licensors and authors. + +All other non-permissive additional terms are considered “further +restrictions” within the meaning of section 10. If the Program as you received +it, or any part of it, contains a notice stating that it is governed by this License +along with a term that is a further restriction, you may remove that term. If a +license document contains a further restriction but permits relicensing or conveying +under this License, you may add to a covered work material governed by the terms of +that license document, provided that the further restriction does not survive such +relicensing or conveying. + +If you add terms to a covered work in accord with this section, you must place, in +the relevant source files, a statement of the additional terms that apply to those +files, or a notice indicating where to find the applicable terms. + +Additional terms, permissive or non-permissive, may be stated in the form of a +separately written license, or stated as exceptions; the above requirements apply +either way. + +### 8. Termination. + +You may not propagate or modify a covered work except as expressly provided under +this License. Any attempt otherwise to propagate or modify it is void, and will +automatically terminate your rights under this License (including any patent licenses +granted under the third paragraph of section 11). + +However, if you cease all violation of this License, then your license from a +particular copyright holder is reinstated (a) provisionally, unless and until the +copyright holder explicitly and finally terminates your license, and (b) permanently, +if the copyright holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + +Moreover, your license from a particular copyright holder is reinstated permanently +if the copyright holder notifies you of the violation by some reasonable means, this +is the first time you have received notice of violation of this License (for any +work) from that copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + +Termination of your rights under this section does not terminate the licenses of +parties who have received copies or rights from you under this License. If your +rights have been terminated and not permanently reinstated, you do not qualify to +receive new licenses for the same material under section 10. + +### 9. Acceptance Not Required for Having Copies. + +You are not required to accept this License in order to receive or run a copy of the +Program. Ancillary propagation of a covered work occurring solely as a consequence of +using peer-to-peer transmission to receive a copy likewise does not require +acceptance. However, nothing other than this License grants you permission to +propagate or modify any covered work. These actions infringe copyright if you do not +accept this License. Therefore, by modifying or propagating a covered work, you +indicate your acceptance of this License to do so. + +### 10. Automatic Licensing of Downstream Recipients. + +Each time you convey a covered work, the recipient automatically receives a license +from the original licensors, to run, modify and propagate that work, subject to this +License. You are not responsible for enforcing compliance by third parties with this +License. + +An “entity transaction” is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an organization, or +merging organizations. If propagation of a covered work results from an entity +transaction, each party to that transaction who receives a copy of the work also +receives whatever licenses to the work the party's predecessor in interest had or +could give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if the predecessor +has it or can get it with reasonable efforts. + +You may not impose any further restrictions on the exercise of the rights granted or +affirmed under this License. For example, you may not impose a license fee, royalty, +or other charge for exercise of rights granted under this License, and you may not +initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging +that any patent claim is infringed by making, using, selling, offering for sale, or +importing the Program or any portion of it. + +### 11. Patents. + +A “contributor” is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The work thus +licensed is called the contributor's “contributor version”. + +A contributor's “essential patent claims” are all patent claims owned or +controlled by the contributor, whether already acquired or hereafter acquired, that +would be infringed by some manner, permitted by this License, of making, using, or +selling its contributor version, but do not include claims that would be infringed +only as a consequence of further modification of the contributor version. For +purposes of this definition, “control” includes the right to grant patent +sublicenses in a manner consistent with the requirements of this License. + +Each contributor grants you a non-exclusive, worldwide, royalty-free patent license +under the contributor's essential patent claims, to make, use, sell, offer for sale, +import and otherwise run, modify and propagate the contents of its contributor +version. + +In the following three paragraphs, a “patent license” is any express +agreement or commitment, however denominated, not to enforce a patent (such as an +express permission to practice a patent or covenant not to sue for patent +infringement). To “grant” such a patent license to a party means to make +such an agreement or commitment not to enforce a patent against the party. + +If you convey a covered work, knowingly relying on a patent license, and the +Corresponding Source of the work is not available for anyone to copy, free of charge +and under the terms of this License, through a publicly available network server or +other readily accessible means, then you must either (1) cause the Corresponding +Source to be so available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner consistent with +the requirements of this License, to extend the patent license to downstream +recipients. “Knowingly relying” means you have actual knowledge that, but +for the patent license, your conveying the covered work in a country, or your +recipient's use of the covered work in a country, would infringe one or more +identifiable patents in that country that you have reason to believe are valid. + +If, pursuant to or in connection with a single transaction or arrangement, you +convey, or propagate by procuring conveyance of, a covered work, and grant a patent +license to some of the parties receiving the covered work authorizing them to use, +propagate, modify or convey a specific copy of the covered work, then the patent +license you grant is automatically extended to all recipients of the covered work and +works based on it. + +A patent license is “discriminatory” if it does not include within the +scope of its coverage, prohibits the exercise of, or is conditioned on the +non-exercise of one or more of the rights that are specifically granted under this +License. You may not convey a covered work if you are a party to an arrangement with +a third party that is in the business of distributing software, under which you make +payment to the third party based on the extent of your activity of conveying the +work, and under which the third party grants, to any of the parties who would receive +the covered work from you, a discriminatory patent license (a) in connection with +copies of the covered work conveyed by you (or copies made from those copies), or (b) +primarily for and in connection with specific products or compilations that contain +the covered work, unless you entered into that arrangement, or that patent license +was granted, prior to 28 March 2007. + +Nothing in this License shall be construed as excluding or limiting any implied +license or other defenses to infringement that may otherwise be available to you +under applicable patent law. + +### 12. No Surrender of Others' Freedom. + +If conditions are imposed on you (whether by court order, agreement or otherwise) +that contradict the conditions of this License, they do not excuse you from the +conditions of this License. If you cannot convey a covered work so as to satisfy +simultaneously your obligations under this License and any other pertinent +obligations, then as a consequence you may not convey it at all. For example, if you +agree to terms that obligate you to collect a royalty for further conveying from +those to whom you convey the Program, the only way you could satisfy both those terms +and this License would be to refrain entirely from conveying the Program. + +### 13. Use with the GNU Affero General Public License. + +Notwithstanding any other provision of this License, you have permission to link or +combine any covered work with a work licensed under version 3 of the GNU Affero +General Public License into a single combined work, and to convey the resulting work. +The terms of this License will continue to apply to the part which is the covered +work, but the special requirements of the GNU Affero General Public License, section +13, concerning interaction through a network will apply to the combination as such. + +### 14. Revised Versions of this License. + +The Free Software Foundation may publish revised and/or new versions of the GNU +General Public License from time to time. Such new versions will be similar in spirit +to the present version, but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Program specifies that +a certain numbered version of the GNU General Public License “or any later +version” applies to it, you have the option of following the terms and +conditions either of that numbered version or of any later version published by the +Free Software Foundation. If the Program does not specify a version number of the GNU +General Public License, you may choose any version ever published by the Free +Software Foundation. + +If the Program specifies that a proxy can decide which future versions of the GNU +General Public License can be used, that proxy's public statement of acceptance of a +version permanently authorizes you to choose that version for the Program. + +Later license versions may give you additional or different permissions. However, no +additional obligations are imposed on any author or copyright holder as a result of +your choosing to follow a later version. + +### 15. Disclaimer of Warranty. + +THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER +EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE +QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE +DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + +### 16. Limitation of Liability. + +IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY +COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS +PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, +INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE +OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE +WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + +### 17. Interpretation of Sections 15 and 16. + +If the disclaimer of warranty and limitation of liability provided above cannot be +given local legal effect according to their terms, reviewing courts shall apply local +law that most closely approximates an absolute waiver of all civil liability in +connection with the Program, unless a warranty or assumption of liability accompanies +a copy of the Program in return for a fee. + +END OF TERMS AND CONDITIONS + +## How to Apply These Terms to Your New Programs + +If you develop a new program, and you want it to be of the greatest possible use to +the public, the best way to achieve this is to make it free software which everyone +can redistribute and change under these terms. + +To do so, attach the following notices to the program. It is safest to attach them +to the start of each source file to most effectively state the exclusion of warranty; +and each file should have at least the “copyright” line and a pointer to +where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + +If the program does terminal interaction, make it output a short notice like this +when it starts in an interactive mode: + + Copyright (C) + This program comes with ABSOLUTELY NO WARRANTY; for details type 'show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type 'show c' for details. + +The hypothetical commands 'show w' and 'show c' should show the appropriate parts of +the General Public License. Of course, your program's commands might be different; +for a GUI interface, you would use an “about box”. + +You should also get your employer (if you work as a programmer) or school, if any, to +sign a “copyright disclaimer” for the program, if necessary. For more +information on this, and how to apply and follow the GNU GPL, see +<>. + +The GNU General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may consider it +more useful to permit linking proprietary applications with the library. If this is +what you want to do, use the GNU Lesser General Public License instead of this +License. But first, please read +<>. \ No newline at end of file diff --git a/Makefile b/Makefile new file mode 100644 index 0000000000..cc04662ae5 --- /dev/null +++ b/Makefile @@ -0,0 +1,37 @@ +# GNU Make makefile for building with Mono + +MONO = mono +MSBUILD = msbuild + +#CONFIG = Debug +CONFIG = Release + +PK3DS_EXE = pk3DS/bin/$(CONFIG)/pk3DS.exe + +# Note: The Mono compiler seems to dump some detritus by default in +# /tmp, so we set TMPDIR to a more suitable location + +$(PK3DS_EXE): pk3DS.sln + mkdir -p tmp + TMPDIR=$(shell pwd)/tmp $(MSBUILD) /p:Configuration=$(CONFIG) $< + +install: $(PK3DS_EXE) + rm -rf pk3ds-install + mkdir pk3ds-install + cp -np */bin/$(CONFIG)/*.dll pk3ds-install + cp -np */bin/$(CONFIG)/*.exe pk3ds-install + +run: $(PK3DS_EXE) + $(MONO) $< + +run-install: pk3ds-install/SPICA.exe + $(MONO) $< + +clean: + rm -rf pk3DS*/bin pk3DS*/obj + rm -rf pk3ds-install + rm -rf tmp + +.PHONY: clean install run run-install + +# EOF diff --git a/README.md b/README.md index d0db0014f7..64c23f3d9c 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,54 @@ -# pk3DS -pk3DS: A package of Pokémon (3DS) ROM Editing Tools by various contributors. +

-![RomFS Editing Tools](https://i.imgur.com/WxWOrhd.png) -![ExeFS Editing Tools](https://i.imgur.com/4jYIIHy.png) -![CRO Editing Tools](https://i.imgur.com/1bghcwx.png) +

pk3DS

+ +
+ +pk3DS is a ROM editor for all 3DS Pokémon games that utilizes a variety of tools developed by a large group of contributors. pk3DS was created +using C# and primarily focuses on its randomizer to provide users with a fresh and new experience in the beloved Pokémon games. + +## Table of contents + +- [Features](#features) +- [Installation](#installation) +- [Usage](#usage) +- [Support](#support) + +## Features + +Our editor features a vast variety of randomizers to make every run as unique as possible. The Randomizers currently available are: + +- Trainer Battles (Pokemon / Items / Moves / Abilities / Difficulty / Classes) +- Wild Encounters (Species, Level, Gen/Legend Specific, ORAS DexNav won't crash!) +- Personal Data (Pokemon Types / Stats / Abilities / TM Learnset) +- Move Randomizer (Type / Damage Category) +- Move Learnset (Level Up / Egg Move) +- Evolutions +- TM Moves +- Special Mart Inventory + +## Installation + +To download pk3DS, all you need to do is go into our [forum page](https://projectpokemon.org/home/forums/topic/34377-pk3ds-pok%C3%A9mon-3ds-rom-editor-and-randomizer/) and following the instructions there. + +## Usage + +To begin using pk3DS you must first download the pk3DS editor zip file. Once you've downloaded the zip file for the editor, dump your ROM from the 3DS Pokémon game of your choosing. + +Place the files in the same folder then simply run the pk3DS.exe file. +Once you open up the executable you can begin having fun with our editor and randomizing all the attributes and characteristics of the game to your liking. +Below are some images of how the editor should look when you run it. +![RomFS Editing Tools](https://i.imgur.com/IDVCMfx.png) +![ExeFS Editing Tools](https://i.imgur.com/Ied0sVV.png) +![CRO Editing Tools](https://i.imgur.com/lUSGbw5.png) + +## Building + +pk3DS is a Windows Forms application which requires [.NET 10](https://dotnet.microsoft.com/download/dotnet/10.0). + +The executable can be built with any compiler that supports C# 14. + +## Support + +If any bugs or errors are caught or experienced come to our [forum page](https://projectpokemon.org/home/forums/topic/34377-pk3ds-pok%C3%A9mon-3ds-rom-editor-and-randomizer/) and communicate with us on what the issue is. +Many community members as well as contributors are active and can be found there. diff --git a/pk3DS.Core/CTR/AES.cs b/pk3DS.Core/CTR/AES.cs index 9aafd90930..ea77fa6fa1 100644 --- a/pk3DS.Core/CTR/AES.cs +++ b/pk3DS.Core/CTR/AES.cs @@ -1,97 +1,96 @@ using System; +using System.Collections.Generic; using System.Linq; using System.Security.Cryptography; -namespace pk3DS.Core.CTR +namespace pk3DS.Core.CTR; + +public class AesCtr { - public class AesCtr - { - private readonly AesManaged Aes = new AesManaged(); - private readonly ICryptoTransform Encryptor; - private readonly AesCounter Counter; + private readonly Aes Aes = Aes.Create(); + private readonly ICryptoTransform Encryptor; + private readonly AesCounter Counter; - public AesCtr(byte[] key, byte[] iv) - { - Aes.Key = key; - Aes.Mode = CipherMode.ECB; - Aes.Padding = PaddingMode.None; - Counter = new AesCounter(iv); - Encryptor = Aes.CreateEncryptor(); - } + public AesCtr(byte[] key, byte[] iv) + { + Aes.Key = key; + Aes.Mode = CipherMode.ECB; + Aes.Padding = PaddingMode.None; + Counter = new AesCounter(iv); + Encryptor = Aes.CreateEncryptor(); + } - public AesCtr(byte[] key, ulong PartitionID, ulong InitialCount) - { - Aes.Key = key; - Aes.Mode = CipherMode.ECB; - Aes.Padding = PaddingMode.None; - Counter = new AesCounter(PartitionID, InitialCount); - Encryptor = Aes.CreateEncryptor(); - } + public AesCtr(byte[] key, ulong PartitionID, ulong InitialCount) + { + Aes.Key = key; + Aes.Mode = CipherMode.ECB; + Aes.Padding = PaddingMode.None; + Counter = new AesCounter(PartitionID, InitialCount); + Encryptor = Aes.CreateEncryptor(); + } - public int TransformBlock(byte[] inputBuffer, int inputOffset, int inputCount, byte[] outputBuffer, int outputOffset) + public int TransformBlock(byte[] inputBuffer, int inputOffset, int inputCount, byte[] outputBuffer, int outputOffset) + { + int BlockLength; + for (int i = 0; i < inputCount; i += BlockLength) { - int BlockLength; - for (int i = 0; i < inputCount; i += BlockLength) + BlockLength = inputCount - i > AesCounter.BufferSize ? AesCounter.BufferSize : inputCount - i; + Encryptor.TransformBlock(Counter.ManageBufferCounters(BlockLength), 0, BlockLength, outputBuffer, outputOffset + i); + for (int BlockWalker = i; BlockWalker < i + BlockLength; BlockWalker += 8) { - BlockLength = inputCount - i > AesCounter.BufferSize ? AesCounter.BufferSize : inputCount - i; - Encryptor.TransformBlock(Counter.ManageBufferCounters(BlockLength), 0, BlockLength, outputBuffer, outputOffset + i); - for (int BlockWalker = i; BlockWalker < i + BlockLength; BlockWalker += 8) - { - Array.Copy(BitConverter.GetBytes(BitConverter.ToInt64(outputBuffer, outputOffset + BlockWalker) ^ BitConverter.ToInt64(inputBuffer, inputOffset + BlockWalker)), 0, outputBuffer, outputOffset + BlockWalker, 8); - } + Array.Copy(BitConverter.GetBytes(BitConverter.ToInt64(outputBuffer, outputOffset + BlockWalker) ^ BitConverter.ToInt64(inputBuffer, inputOffset + BlockWalker)), 0, outputBuffer, outputOffset + BlockWalker, 8); } - return inputCount; } + return inputCount; } - public class AesCounter - { - public const int BufferSize = 0x400000; //4 MB Buffer - private readonly byte[] Counter = new byte[0x10]; - private readonly byte[] Buffer = new byte[BufferSize]; +} - public AesCounter(ulong high, ulong low) - { - Array.Copy(BitConverter.GetBytes(high).Reverse().ToArray(), Counter, 0x8); - Array.Copy(BitConverter.GetBytes(low).Reverse().ToArray(), 0, Counter, 0x8, 0x8); - } +public class AesCounter +{ + public const int BufferSize = 0x400000; //4 MB Buffer + private readonly byte[] Counter = new byte[0x10]; + private readonly byte[] Buffer = new byte[BufferSize]; - public AesCounter(byte[] iv) - { - Array.Copy(BitConverter.GetBytes(BitConverter.ToUInt64(iv, 0)).Reverse().ToArray(), Counter, 0x10); - } + public AesCounter(ulong high, ulong low) + { + Array.Copy(((IEnumerable)BitConverter.GetBytes(high)).Reverse().ToArray(), Counter, 0x8); + Array.Copy(((IEnumerable)BitConverter.GetBytes(low)).Reverse().ToArray(), 0, Counter, 0x8, 0x8); + } - public void Increment() - { - for (int i = Counter.Length - 1; i >= 0; i--) - { - if (++Counter[i] != 0) - return; - } - } + public AesCounter(byte[] iv) + { + Array.Copy(((IEnumerable)BitConverter.GetBytes(BitConverter.ToUInt64(iv, 0))).Reverse().ToArray(), Counter, 0x10); + } - public byte[] ManageBufferCounters(int size) + public void Increment() + { + for (int i = Counter.Length - 1; i >= 0; i--) { - for (int i = 0; i < size; i += 0x10) - { - Array.Copy(Counter, 0, Buffer, i, 0x10); - Increment(); - } - return Buffer; + if (++Counter[i] != 0) + return; } + } - public ulong SwapBytes(ulong value) + public byte[] ManageBufferCounters(int size) + { + for (int i = 0; i < size; i += 0x10) { - ulong uvalue = value; - ulong swapped = - 0x00000000000000FF & (uvalue >> 56) - | 0x000000000000FF00 & (uvalue >> 40) - | 0x0000000000FF0000 & (uvalue >> 24) - | 0x00000000FF000000 & (uvalue >> 8) - | 0x000000FF00000000 & (uvalue << 8) - | 0x0000FF0000000000 & (uvalue << 24) - | 0x00FF000000000000 & (uvalue << 40) - | 0xFF00000000000000 & (uvalue << 56); - return swapped; + Array.Copy(Counter, 0, Buffer, i, 0x10); + Increment(); } + return Buffer; } -} + + public static ulong SwapBytes(ulong value) + { + ulong uvalue = value; + return (0x00000000000000FF & (uvalue >> 56)) + | (0x000000000000FF00 & (uvalue >> 40)) + | (0x0000000000FF0000 & (uvalue >> 24)) + | (0x00000000FF000000 & (uvalue >> 8)) + | (0x000000FF00000000 & (uvalue << 8)) + | (0x0000FF0000000000 & (uvalue << 24)) + | (0x00FF000000000000 & (uvalue << 40)) + | (0xFF00000000000000 & (uvalue << 56)); + } +} \ No newline at end of file diff --git a/pk3DS.Core/CTR/ALYT.cs b/pk3DS.Core/CTR/ALYT.cs index a61734c6cf..dc720c4ca2 100644 --- a/pk3DS.Core/CTR/ALYT.cs +++ b/pk3DS.Core/CTR/ALYT.cs @@ -1,12 +1,242 @@ -using System; -using System.Collections.Generic; -using System.Linq; +using System.Collections.Generic; +using System.IO; using System.Text; -namespace CTR +namespace pk3DS.Core.CTR; + +/// +/// Archive LaYouT container +/// +/// File length is padded to nearest 0x80 +public class ALYT { - public class ALYT + private const string Identifier = nameof(ALYT); + public string Magic; // 0x00 + public short unk4; // 0x04 + public short unk6; // 0x06 + public int LTBLOffset; // 0x08 + public int LTBLSize; // 0x0C + public int LMTLOffset; // 0x10 + public int LMTLSize; // 0x14 + public int LFNLOffset; // 0x18 + public int LFNLSize; // 0x1C + + public int DataOffset; // 0x20 + public int DataSize; // 0x24 + + public LTBL LTBL; + public LMTL LMTL; + public LFNL LFNL; + public Contents Content; + public byte[] Data; + + public string FileName { get; } + public string FilePath { get; } + public string Extension { get; } + public bool SigMatches => Magic == Identifier; + + public ALYT(string path) + { + FileName = Path.GetFileNameWithoutExtension(path); + FilePath = Path.GetDirectoryName(path); + Extension = Path.GetExtension(path); + + using var br = new BinaryReader(File.OpenRead(path)); + ReadALYT(br); + } + + public ALYT(byte[] data) + { + using var ms = new MemoryStream(data); + using var br = new BinaryReader(ms); + ReadALYT(br); + } + + public ALYT(Stream ms) + { + using var br = new BinaryReader(ms); + ReadALYT(br); + } + + private void ReadALYT(BinaryReader br) { + ReadHeader(br); + LTBL = new LTBL(br, (LTBLSize - 8) / 4); + LMTL = new LMTL(br, (LMTLSize - 8) / 4); + LFNL = new LFNL(br, (LFNLSize - 8) / 4); + Content = new Contents(br, this); + } + private void ReadHeader(BinaryReader br) + { + Magic = new string(br.ReadChars(4)); + if (!SigMatches) + return; + unk4 = br.ReadInt16(); + unk6 = br.ReadInt16(); + LTBLOffset = br.ReadInt32(); + LTBLSize = br.ReadInt32(); + LMTLOffset = br.ReadInt32(); + LMTLSize = br.ReadInt32(); + LFNLOffset = br.ReadInt32(); + LFNLSize = br.ReadInt32(); + DataOffset = br.ReadInt32(); + DataSize = br.ReadInt32(); + } + + public class Contents + { + public readonly string[] Labels; + public readonly string[] Symbols; + + public Contents(BinaryReader br, ALYT alyt) + { + br.BaseStream.Position = alyt.DataOffset; + Labels = new string[br.ReadInt32()]; + for (int i = 0; i < Labels.Length; i++) + Labels[i] = ReadString(br, 0x40); + + Symbols = new string[br.ReadInt32()]; + for (int i = 0; i < Symbols.Length; i++) + Symbols[i] = ReadString(br, 0x20); + + // skip to end of section + // this is bad + while (br.PeekChar() == 0) + br.ReadByte(); + + int len = (int)br.BaseStream.Position - alyt.DataOffset; + len = alyt.DataSize - len; + alyt.Data = br.ReadBytes(len); + } + + public static string ReadString(BinaryReader br, int skip) + { + var sb = new StringBuilder(); + var ofs = br.BaseStream.Position; + while (true) + { + var c = (char)br.ReadByte(); + if (c == 0) + { + br.BaseStream.Position = ofs + skip; + return sb.ToString(); + } + sb.Append(c); + } + } + } + + /// + /// Rips out the data portion of the ALYT, assuming the ALYT is partially valid. + /// + public static byte[] GetData(string path) + { + using var br = new BinaryReader(File.OpenRead(path)); + return GetData(br); + } + + /// + /// Rips out the data portion of the ALYT, assuming the ALYT is partially valid. + /// + public static byte[] GetData(byte[] data) + { + using var ms = new MemoryStream(data); + using var br = new BinaryReader(ms); + return GetData(br); + } + + /// + /// Rips out the data portion of the ALYT, assuming the ALYT is partially valid. + /// + public static byte[] GetData(Stream ms) + { + using var br = new BinaryReader(ms); + return GetData(br); + } + + private static byte[] GetData(BinaryReader br) + { + if (br.BaseStream.Length <= 0x80) + return null; + if (Identifier != new string(br.ReadChars(4))) + return null; // not ALYT + + br.BaseStream.Position = 0x20; // DataOffset + int start = br.ReadInt32(); + int length = br.ReadInt32(); + + br.BaseStream.Position = start; + int count40 = br.ReadInt32(); + br.BaseStream.Position += count40 * 0x40; + + int count20 = br.ReadInt32(); + br.BaseStream.Position += count20 * 0x20; + + // skip to end of section + // this is bad + while (br.PeekChar() == 0) + br.ReadByte(); + + int len = (int)br.BaseStream.Position - start; + len = length - len; + return br.ReadBytes(len); } } + +public class LTBL +{ + private const string Identifier = nameof(LTBL); + public string Magic; // 0x00 + public short unk4; // 0x04 + public short unk6; // 0x06 + public List Values; + + public LTBL(BinaryReader br, int count) + { + Magic = new string(br.ReadChars(Identifier.Length)); + unk4 = br.ReadInt16(); + unk6 = br.ReadInt16(); + Values = new List(count); + for (int i = 0; i < count; i++) + Values.Add((short)br.ReadInt32()); + } +} + +public class LMTL +{ + private const string Identifier = nameof(LMTL); + public string Magic; // 0x00 + public short unk4; // 0x04 + public short unk6; // 0x06 + public List Values; + + public LMTL(BinaryReader br, int count) + { + Magic = new string(br.ReadChars(Identifier.Length)); + unk4 = br.ReadInt16(); + unk6 = br.ReadInt16(); + Values = new List(count); + for (int i = 0; i < count; i++) + Values.Add((short)br.ReadInt32()); + } +} + +public class LFNL +{ + private const string Identifier = nameof(LFNL); + public string Magic; // 0x00 + public short unk4; // 0x04 + public short unk6; // 0x06 + public List Values; + + public LFNL(BinaryReader br, int count) + { + Magic = new string(br.ReadChars(Identifier.Length)); + unk4 = br.ReadInt16(); + unk6 = br.ReadInt16(); + Values = new List(count); + for (int i = 0; i < count; i++) + Values.Add((short)br.ReadInt32()); + } +} \ No newline at end of file diff --git a/pk3DS.Core/CTR/BCLIM.cs b/pk3DS.Core/CTR/BCLIM.cs deleted file mode 100644 index 5cc4942472..0000000000 --- a/pk3DS.Core/CTR/BCLIM.cs +++ /dev/null @@ -1,901 +0,0 @@ -using System; -using System.Drawing; -using System.Drawing.Imaging; -using System.IO; -using System.Runtime.InteropServices; -using pk3DS.Core.Properties; // For other projects, replace this line with the namespace that contains your ETC1Lib.dll resource. - -namespace pk3DS.Core.CTR -{ - public static class BCLIM - { - public static void openFile(string path, bool autosave = false, bool crop = true, char format = 'X') - { - // Handle file - if (!File.Exists(path)) throw new Exception("Can only accept files, not folders"); - string ext = Path.GetExtension(path); - if (ext == ".png") - makeBCLIM(path, format); - else if (ext == ".bin" || ext == ".bclim") - makeBMP(path, autosave, crop); - } - - public static byte[] IMGToBCLIM(Image img, char fc) - { - Bitmap mBitmap = new Bitmap(img); - MemoryStream ms = new MemoryStream(); - int bclimformat = 7; // Init to default (for X) - - if (fc == 'X') - write16BitColorPalette(mBitmap, ref ms); - else - { - bclimformat = Convert.ToInt16(fc.ToString(), 16); - try - { - writeGeneric(bclimformat, mBitmap, ref ms); - } - catch (Exception e) - { - System.Media.SystemSounds.Beep.Play(); - System.Diagnostics.Debug.WriteLine(e.ToString()); - } - } - - long datalength = ms.Length; - // Write the CLIM + imag data. - using (BinaryWriter bw = new BinaryWriter(ms)) - { - bw.Write((uint)0x4D494C43); // CLIM - bw.Write((ushort)0xFEFF); // BOM - bw.Write((uint)0x14); - bw.Write((ushort)0x0202); // 2 2 - bw.Write((uint)(datalength + 0x28)); - bw.Write((uint)1); - bw.Write((uint)0x67616D69); - bw.Write((uint)0x10); - bw.Write((ushort)mBitmap.Width); - bw.Write((ushort)mBitmap.Height); - bw.Write((uint)bclimformat); - bw.Write((uint)datalength); - } - return ms.ToArray(); - } - public static byte[] getBCLIM(string path, char fc) - { - byte[] byteArray = File.ReadAllBytes(path); - using (Stream BitmapStream = new MemoryStream(byteArray)) // Open the file, even if it is in use. - { - Image img = Image.FromStream(BitmapStream); - return IMGToBCLIM(img, fc); - } - } - public static Image makeBCLIM(string path, char fc) - { - byte[] bclim = getBCLIM(path, fc); - string fp = Path.GetFileNameWithoutExtension(path); - fp = "new_" + fp.Substring(fp.IndexOf('_') + 1); - string pp = Path.GetDirectoryName(path); - string newPath = Path.Combine(pp, fp + ".bclim"); - File.WriteAllBytes(newPath, bclim); - - return makeBMP(newPath); - } - public static Image makeBMP(string path, bool autosave = false, bool crop = true) - { - CLIM bclim = analyze(path); - if (bclim.Magic != 0x4D494C43) - { - System.Media.SystemSounds.Beep.Play(); - return null; - } - - // Interpret data. - int f = bclim.FileFormat; - if (f > 13) - { - System.Media.SystemSounds.Exclamation.Play(); - return null; - } - - Bitmap img; - if (f == 7 && BitConverter.ToUInt16(bclim.Data, 0) == 2) - // PKM XY Format 7 (Color Palette) - img = getIMG_XY7(bclim); - else if (f == 10 || f == 11) - img = getIMG_ETC(bclim); - else - img = getIMG(bclim); - - if (img == null) return null; - Rectangle cropRect = new Rectangle(0, 0, bclim.Width, bclim.Height); - Bitmap CropBMP = new Bitmap(cropRect.Width, cropRect.Height); - using (Graphics g = Graphics.FromImage(CropBMP)) - { - g.DrawImage(img, - new Rectangle(0, 0, CropBMP.Width, CropBMP.Height), - cropRect, - GraphicsUnit.Pixel); - } - if (!autosave) return !crop ? img : CropBMP; - - using (MemoryStream ms = new MemoryStream()) - { - //error will throw from here - CropBMP.Save(ms, ImageFormat.Png); - byte[] data = ms.ToArray(); - File.WriteAllBytes(bclim.FilePath + "\\" + bclim.FileName + ".png", data); - } - return !crop ? img : CropBMP; - } - // Bitmap Data Writing - public static Bitmap getIMG(int width, int height, byte[] bytes, int f) - { - Bitmap img = new Bitmap(width, height); - int area = img.Width * img.Height; - // Tiles Per Width - int p = gcm(img.Width, 8) / 8; - if (p == 0) p = 1; - using (Stream BitmapStream = new MemoryStream(bytes)) - using (BinaryReader br = new BinaryReader(BitmapStream)) - for (uint i = 0; i < area; i++) // for every pixel - { - uint x; - uint y; - d2xy(i % 64, out x, out y); - uint tile = i / 64; - - // Shift Tile Coordinate into Tilemap - x += (uint)(tile % p) * 8; - y += (uint)(tile / p) * 8; - - // Get Color - Color c; - switch (f) - { - case 0x0: // L8 // 8bit/1 byte - case 0x1: // A8 - case 0x2: // LA4 - c = DecodeColor(br.ReadByte(), f); - break; - case 0x3: // LA8 // 16bit/2 byte - case 0x4: // HILO8 - case 0x5: // RGB565 - case 0x8: // RGBA4444 - case 0x7: // RGBA5551 - c = DecodeColor(br.ReadUInt16(), f); - break; - case 0x6: // RGB8: // 24bit - byte[] data = br.ReadBytes(3); Array.Resize(ref data, 4); - c = DecodeColor(BitConverter.ToUInt32(data, 0), f); - break; - case 0x9: // RGBA8888 - c = DecodeColor(br.ReadUInt32(), f); - break; - case 0xC: // L4 - case 0xD: // A4 // 4bit - Do 2 pixels at a time. - uint val = br.ReadByte(); - img.SetPixel((int)x, (int)y, DecodeColor(val & 0xF, f)); // lowest bits for the low pixel - i++; x++; - c = DecodeColor(val >> 4, f); // highest bits for the high pixel - break; - default: throw new Exception("Invalid FileFormat."); - } - img.SetPixel((int)x, (int)y, c); - } - return img; - } - public static Bitmap getIMG(CLIM bclim) - { - if (bclim.FileFormat == 7 && BitConverter.ToUInt16(bclim.Data, 0) == 2) // XY7 - return getIMG_XY7(bclim); - if (bclim.FileFormat == 10 || bclim.FileFormat == 11) // Use ETC1 to get image instead. - return getIMG_ETC(bclim); - // New Image - int w = nlpo2(gcm(bclim.Width, 8)); - int h = nlpo2(gcm(bclim.Height, 8)); - int f = bclim.FileFormat; - int area = w * h; - if (f == 9 && area > bclim.Data.Length / 4) - { - w = gcm(bclim.Width, 8); - h = gcm(bclim.Height, 8); - } - // Build Image - return getIMG(w, h, bclim.Data, f); - } - public static Bitmap getIMG_XY7(CLIM bclim) - { - Bitmap img = new Bitmap(bclim.BaseSize, bclim.BaseSize); - using (Stream BitmapStream = new MemoryStream(bclim.Data)) - using (BinaryReader br = new BinaryReader(BitmapStream)) - { - // Fetch Color stuff. - if (br.ReadUInt16() != 2) return null; - ushort colors = br.ReadUInt16(); - Color[] ca = new Color[colors]; - for (int i = 0; i < colors; i++) - ca[i] = DecodeColor(br.ReadUInt16(), 7); - - // Coordinates - // Colors - // Tiles Per Width - int p = gcm(img.Width, 8) / 8; - if (p == 0) p = 1; - - for (uint i = 0; i < bclim.BaseSize * bclim.BaseSize; i++) // for every pixel - { - uint x; - uint y; - d2xy(i % 64, out x, out y); - uint tile = i / 64; - - // Shift Tile Coordinate into Tilemap - x += (uint)(tile % p) * 8; - y += (uint)(tile / p) * 8; - - byte val = br.ReadByte(); - if (colors <= 0x10) // Handle 2 pixels at a time - { - img.SetPixel((int)x, (int)y, ca[val >> 4]); - x++; i++; val &= 0xF; - img.SetPixel((int)x, (int)y, ca[val]); - } - else //1bpp instead of .5, handle 2 pixels at a time the same way for no reason - { - img.SetPixel((int)x, (int)y, ca[val]); - x++; i++; val = br.ReadByte(); - img.SetPixel((int)x, (int)y, ca[val]); - } - } - } - return img; - } - public static Bitmap getIMG_ETC(CLIM bclim) - { - Bitmap img = new Bitmap(Math.Max(nlpo2(bclim.Width), 16), Math.Max(nlpo2(bclim.Height), 16)); - string dllpath = Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location) + "\\ETC1Lib.dll"; - if (!File.Exists(dllpath)) File.WriteAllBytes(dllpath, Resources.ETC1Lib); - - try - { - /* http://jul.rustedlogic.net/thread.php?id=17312 - * Much of this code is taken/modified from Tharsis. Thank you to Tharsis's creator, xdaniel. - * https://github.com/xdanieldzd/Tharsis - */ - - /* Get compressed data & handle to it */ - byte[] textureData = bclim.Data; - //textureData = switchEndianness(textureData, 0x10); - ushort[] input = new ushort[textureData.Length/sizeof (ushort)]; - Buffer.BlockCopy(textureData, 0, input, 0, textureData.Length); - GCHandle pInput = GCHandle.Alloc(input, GCHandleType.Pinned); - - /* Marshal data around, invoke ETC1.dll for conversion, etc */ - uint size1 = 0; - UInt16 w = (ushort)img.Width, h = (ushort)img.Height; - - ETC1.ConvertETC1(IntPtr.Zero, ref size1, IntPtr.Zero, w, h, bclim.FileFormat == 0xB); // true = etc1a4, false = etc1 - // System.Diagnostics.Debug.WriteLine(size1); - uint[] output = new uint[size1]; - GCHandle pOutput = GCHandle.Alloc(output, GCHandleType.Pinned); - ETC1.ConvertETC1(pOutput.AddrOfPinnedObject(), ref size1, pInput.AddrOfPinnedObject(), w, h, bclim.FileFormat == 0xB); - pOutput.Free(); - pInput.Free(); - - - /* Unscramble if needed // could probably be done in ETC1Lib.dll, it's probably pretty ugly, but whatever... */ - /* Non-square code blocks could need some cleanup, verification, etc. as well... */ - uint[] finalized = new uint[output.Length]; - - // Act if it's square because BCLIM swizzling is stupid - Buffer.BlockCopy(output, 0, finalized, 0, finalized.Length); - - byte[] tmp = new byte[finalized.Length]; - Buffer.BlockCopy(finalized, 0, tmp, 0, tmp.Length); - byte[] imgData = tmp; - - for (int i = 0; i < w; i++) - { - for (int j = 0; j < h; j++) - { - int k = (j + i*img.Height)*4; - img.SetPixel(i, j, Color.FromArgb(imgData[k + 3], imgData[k], imgData[k + 1], imgData[k + 2])); - } - } - // Image is 13 instead of 12 - // 24 34 - img.RotateFlip(RotateFlipType.Rotate90FlipX); - if (w > h) - { - // Image is now in appropriate order, but the shifting is messed up. Let's fix that. - Bitmap img2 = new Bitmap(Math.Max(nlpo2(bclim.Width), 16), Math.Max(nlpo2(bclim.Height), 16)); - for (int y = 0; y < Math.Max(nlpo2(bclim.Width), 16); y += 8) - { - for (int x = 0; x < Math.Max(nlpo2(bclim.Height), 16); x++) - { - for (int j = 0; j < 8; j++) - // Treat every 8 vertical pixels as 1 pixel for purposes of calculation, add to offset later. - { - int x1 = (x + y/8*h)%img2.Width; // Reshift x - int y1 = (x + y/8*h)/img2.Width*8; // Reshift y - img2.SetPixel(x1, y1 + j, img.GetPixel(x, y + j)); // Reswizzle - } - } - } - img = img2; - } - else if (h > w) - { - Bitmap img2 = new Bitmap(Math.Max(nlpo2(bclim.Width), 16), Math.Max(nlpo2(bclim.Height), 16)); - for (int y = 0; y < Math.Max(nlpo2(bclim.Width), 16); y += 8) - { - for (int x = 0; x < Math.Max(nlpo2(bclim.Height), 16); x++) - { - for (int j = 0; j < 8; j++) - // Treat every 8 vertical pixels as 1 pixel for purposes of calculation, add to offset later. - { - int x1 = x%img2.Width; // Reshift x - int y1 = (x + y/8*h)/img2.Width*8; // Reshift y - img2.SetPixel(x1, y1 + j, img.GetPixel(x, y + j)); // Reswizzle - } - } - } - img = img2; - } - } - catch { } - return img; - } - - // BCLIM Data Writing - public static int write16BitColorPalette(Bitmap img, ref MemoryStream ms) - { - using (Stream pixelcolors = new MemoryStream()) - using (BinaryWriter bz = new BinaryWriter(pixelcolors)) - { - // Set up our basis. - bool under16colors = false; - int colors = getColorCount(img); - Color[] pcs = new Color[colors]; - if (colors < 16) under16colors = true; - uint div = 1; - if (under16colors) - div = 2; - - if (colors > 70) throw new Exception("Too many colors"); - - // Set up a new reverse image to build into. - int w = gcm(img.Width, 8); - int h = gcm(img.Height, 8); - w = Math.Max(nlpo2(w), nlpo2(h)); - h = w; - byte[] pixelarray = new Byte[w * h]; - - const int colorformat = 2; - int ctr = 1; - - pcs[0] = Color.FromArgb(0, 0xFF, 0xFF, 0xFF); - - int p = gcm(w, 8) / 8; - if (p == 0) p = 1; - int d = 0; - for (uint i = 0; i < pixelarray.Length; i++) - { - d = (int)(i / div); - // Get Tile Coordinate - uint x; - uint y; - d2xy(i % 64, out x, out y); - - // Get Shift Tile - uint tile = i / 64; - - // Shift Tile Coordinate into Tilemap - x += (uint)(tile % p) * 8; - y += (uint)(tile / p) * 8; - if (x >= img.Width || y >= img.Height) // Don't try to access any pixel data outside of our bounds. - { i++; continue; } // Goto next tile. - - // Get Color of Pixel - Color c = img.GetPixel((int)x, (int)y); - - // Color Table Building Logic - int index = Array.IndexOf(pcs, c); - if (c.A == 0) index = 0; - if (index < 0) // If new color - { pcs[ctr] = c; index = ctr; ctr++; } // Add it to color list - - // Add pixel to pixeldata - if (under16colors) index = index << 4; - pixelarray[i / div] = (byte)index; - if (!under16colors) continue; - - c = img.GetPixel((int)x + 1, (int)y); - index = Array.IndexOf(pcs, c); - if (c.A == 0) index = 0; - if (index < 0) // If new color - { pcs[ctr] = c; index = ctr; ctr++; } - pixelarray[i / div] |= (byte)index; - i++; - } - - // Write Intro - bz.Write((ushort)colorformat); bz.Write((ushort)ctr); - // Write Colors - for (int i = 0; i < ctr; i++) - bz.Write(GetRGBA5551(pcs[i])); // Write byte array. - // Write Pixel Data - for (uint i = 0; i < d; i++) - bz.Write(pixelarray[i]); - // Write Padding - while (pixelcolors.Length < nlpo2((int)pixelcolors.Length)) - bz.Write((byte)0); - // Copy to main CLIM. - pixelcolors.Position = 0; pixelcolors.CopyTo(ms); - } - return 7; - } - public static void writeGeneric(int format, Bitmap img, ref MemoryStream ms, bool rectangle = true) - { - BinaryWriter bz = new BinaryWriter(ms); - bz.Write(getPixelData(img, format, rectangle)); - bz.Flush(); - } - - public static byte[] getPixelData(Bitmap img, int format, bool rectangle = true) - { - int w = img.Width; - int h = img.Height; - - bool perfect = w == h && w != 0 && (w & (w - 1)) == 0; - if (!perfect) // Check if square power of two, else resize - { - // Square Format Checks - if (rectangle && Math.Min(img.Width, img.Height) < 32) - { - w = nlpo2(img.Width); - h = nlpo2(img.Height); - } - else - { - w = h = Math.Max(nlpo2(w), nlpo2(h)); // else resize - } - } - - using (MemoryStream mz = new MemoryStream()) - using (BinaryWriter bz = new BinaryWriter(mz)) - { - int p = gcm(w, 8) / 8; - if (p == 0) p = 1; - for (uint i = 0; i < w * h; i++) - { - uint x; - uint y; - d2xy(i % 64, out x, out y); - - // Get Shift Tile - uint tile = i / 64; - - // Shift Tile Coordinate into Tilemap - x += (uint)(tile % p) * 8; - y += (uint)(tile / p) * 8; - - // Don't write data - Color c; - if (x >= img.Width || y >= img.Height) - { c = Color.FromArgb(0, 0, 0, 0); } - else - { c = img.GetPixel((int)x, (int)y); if (c.A == 0) c = Color.FromArgb(0, 86, 86, 86); } - - switch (format) - { - case 0: bz.Write(GetL8(c)); break; // L8 - case 1: bz.Write(GetA8(c)); break; // A8 - case 2: bz.Write(GetLA4(c)); break; // LA4(4) - case 3: bz.Write(GetLA8(c)); break; // LA8(8) - case 4: bz.Write(GetHILO8(c)); break; // HILO8 - case 5: bz.Write(GetRGB565(c)); break; // RGB565 - case 6: - { - bz.Write(c.B); - bz.Write(c.G); - bz.Write(c.R); break; - } - case 7: bz.Write(GetRGBA5551(c)); break; // RGBA5551 - case 8: bz.Write(GetRGBA4444(c)); break; // RGBA4444 - case 9: bz.Write(GetRGBA8888(c)); break; // RGBA8 - case 10: throw new Exception("ETC1 not supported."); - case 11: throw new Exception("ETC1A4 not supported."); - case 12: - { - byte val = (byte)(GetL8(c) / 0x11); // First Pix // L4 - { c = img.GetPixel((int)x, (int)y); if (c.A == 0) c = Color.FromArgb(0, 0, 0, 0); } - val |= (byte)((GetL8(c) / 0x11) << 4); i++; - bz.Write(val); break; - } - case 13: - { - byte val = (byte)(GetA8(c) / 0x11); // First Pix // L4 - { c = img.GetPixel((int)x, (int)y); } - val |= (byte)((GetA8(c) / 0x11) << 4); i++; - bz.Write(val); break; - } - } - } - if (!perfect) - while (mz.Length < nlpo2((int)mz.Length)) // pad - bz.Write((byte)0); - return mz.ToArray(); - } - } - public static int getColorCount(Bitmap img) - { - Color[] colors = new Color[img.Width * img.Height]; - int colorct = 1; - - for (int i = 0; i < colors.Length; i++) - { - Color c = img.GetPixel(i % img.Width, i / img.Width); - int index = Array.IndexOf(colors, c); - if (c.A == 0) index = 0; - if (index >= 0) continue; - - colors[colorct] = c; - colorct++; - } - return colorct; - } - - - internal static readonly int[] Convert5To8 = { 0x00,0x08,0x10,0x18,0x20,0x29,0x31,0x39, - 0x41,0x4A,0x52,0x5A,0x62,0x6A,0x73,0x7B, - 0x83,0x8B,0x94,0x9C,0xA4,0xAC,0xB4,0xBD, - 0xC5,0xCD,0xD5,0xDE,0xE6,0xEE,0xF6,0xFF }; - - private static Color DecodeColor(uint val, int format) - { - int alpha = 0xFF, red, green, blue; - switch (format) - { - case 0: // L8 - return Color.FromArgb(alpha, (byte)val, (byte)val, (byte)val); - case 1: // A8 - return Color.FromArgb((byte)val, alpha, alpha, alpha); - case 2: // LA4 - red = (byte)(val >> 4); - alpha = (byte)(val & 0x0F); - return Color.FromArgb(alpha, red, red, red); - case 3: // LA8 - red = (byte)(val >> 8 & 0xFF); - alpha = (byte)(val & 0xFF); - return Color.FromArgb(alpha, red, red, red); - case 4: // HILO8 - red = (byte)(val >> 8); - green = (byte)(val & 0xFF); - return Color.FromArgb(alpha, red, green, 0xFF); - case 5: // RGB565 - red = Convert5To8[(val >> 11) & 0x1F]; - green = (byte)(((val >> 5) & 0x3F) * 4); - blue = Convert5To8[val & 0x1F]; - return Color.FromArgb(alpha, red, green, blue); - case 6: // RGB8 - red = (byte)((val >> 16) & 0xFF); - green = (byte)((val >> 8) & 0xFF); - blue = (byte)(val & 0xFF); - return Color.FromArgb(alpha, red, green, blue); - case 7: // RGBA5551 - red = Convert5To8[(val >> 11) & 0x1F]; - green = Convert5To8[(val >> 6) & 0x1F]; - blue = Convert5To8[(val >> 1) & 0x1F]; - alpha = (val & 0x0001) == 1 ? 0xFF : 0x00; - return Color.FromArgb(alpha, red, green, blue); - case 8: // RGBA4444 - alpha = (byte)(0x11 * (val & 0xf)); - red = (byte)(0x11 * ((val >> 12) & 0xf)); - green = (byte)(0x11 * ((val >> 8) & 0xf)); - blue = (byte)(0x11 * ((val >> 4) & 0xf)); - return Color.FromArgb(alpha, red, green, blue); - case 9: // RGBA8888 - red = (byte)((val >> 24) & 0xFF); - green = (byte)((val >> 16) & 0xFF); - blue = (byte)((val >> 8) & 0xFF); - alpha = (byte)(val & 0xFF); - return Color.FromArgb(alpha, red, green, blue); - // case 10: - // case 11: - case 12: // L4 - return Color.FromArgb(alpha, (byte)(val * 0x11), (byte)(val * 0x11), (byte)(val * 0x11)); - case 13: // A4 - return Color.FromArgb((byte)(val * 0x11), alpha, alpha, alpha); - default: - return Color.White; - } - } - - // Color Conversion - internal static byte GetL8(Color c) - { - byte red = c.R; - byte green = c.G; - byte blue = c.B; - // Luma (Y’) = 0.299 R’ + 0.587 G’ + 0.114 B’ from wikipedia - return (byte)(((0x4CB2 * red + 0x9691 * green + 0x1D3E * blue) >> 16) & 0xFF); - } // L8 - internal static byte GetA8(Color c) - { - return c.A; - } // A8 - internal static byte GetLA4(Color c) - { - return (byte)(c.A / 0x11 + c.R / 0x11 << 4); - } // LA4 - internal static ushort GetLA8(Color c) - { - return (ushort)(c.A + (c.R << 8)); - } // LA8 - internal static ushort GetHILO8(Color c) - { - return (ushort)(c.G + (c.R << 8)); - } // HILO8 - internal static ushort GetRGB565(Color c) - { - int val = 0; - // val += c.A >> 8; // unused - val += convert8to5(c.B) >> 3; - val += (c.G >> 2) << 5; - val += convert8to5(c.R) << 10; - return (ushort)val; - } // RGB565 - // RGB8 - internal static ushort GetRGBA5551(Color c) - { - int val = 0; - val += (byte)(c.A > 0x80 ? 1 : 0); - val += convert8to5(c.R) << 11; - val += convert8to5(c.G) << 6; - val += convert8to5(c.B) << 1; - ushort v = (ushort)val; - - return v; - }// RGBA5551 - internal static ushort GetRGBA4444(Color c) - { - int val = 0; - val += c.A / 0x11; - val += (c.B / 0x11) << 4; - val += (c.G / 0x11) << 8; - val += (c.R / 0x11) << 12; - return (ushort)val; - }// RGBA4444 - internal static uint GetRGBA8888(Color c) // RGBA8888 - { - uint val = 0; - val += c.A; - val += (uint)(c.B << 8); - val += (uint)(c.G << 16); - val += (uint)(c.R << 24); - return val; - } - - // Unit Conversion - internal static byte convert8to5(int colorval) - { - - byte[] Convert8to5 = { 0x00,0x08,0x10,0x18,0x20,0x29,0x31,0x39, - 0x41,0x4A,0x52,0x5A,0x62,0x6A,0x73,0x7B, - 0x83,0x8B,0x94,0x9C,0xA4,0xAC,0xB4,0xBD, - 0xC5,0xCD,0xD5,0xDE,0xE6,0xEE,0xF6,0xFF }; - byte i = 0; - while (colorval > Convert8to5[i]) i++; - return i; - } - internal static uint DM2X(uint code) - { - return C11(code >> 0); - } - internal static uint DM2Y(uint code) - { - return C11(code >> 1); - } - internal static uint C11(uint x) - { - x &= 0x55555555; // x = -f-e -d-c -b-a -9-8 -7-6 -5-4 -3-2 -1-0 - x = (x ^ (x >> 1)) & 0x33333333; // x = --fe --dc --ba --98 --76 --54 --32 --10 - x = (x ^ (x >> 2)) & 0x0f0f0f0f; // x = ---- fedc ---- ba98 ---- 7654 ---- 3210 - x = (x ^ (x >> 4)) & 0x00ff00ff; // x = ---- ---- fedc ba98 ---- ---- 7654 3210 - x = (x ^ (x >> 8)) & 0x0000ffff; // x = ---- ---- ---- ---- fedc ba98 7654 3210 - return x; - } - - /// - /// Greatest common multiple (to round up) - /// - /// Number to round-up. - /// Multiple to round-up to. - /// Rounded up number. - internal static int gcm(int n, int m) - { - return (n + m - 1) / m * m; - } - /// - /// Next Largest Power of 2 - /// - /// Input to round up to next 2^n - /// 2^n > x && x > 2^(n-1) - internal static int nlpo2(int x) - { - x--; // comment out to always take the next biggest power of two, even if x is already a power of two - x |= x >> 1; - x |= x >> 2; - x |= x >> 4; - x |= x >> 8; - x |= x >> 16; - return x+1; - } - - // Morton Translation - /// - /// Combines X/Y Coordinates to a decimal ordinate. - /// - /// - /// - /// - internal static uint xy2d(uint x, uint y) - { - x &= 0x0000ffff; - y &= 0x0000ffff; - x |= x << 8; - y |= y << 8; - x &= 0x00ff00ff; - y &= 0x00ff00ff; - x |= x << 4; - y |= y << 4; - x &= 0x0f0f0f0f; - y &= 0x0f0f0f0f; - x |= x << 2; - y |= y << 2; - x &= 0x33333333; - y &= 0x33333333; - x |= x << 1; - y |= y << 1; - x &= 0x55555555; - y &= 0x55555555; - return x | (y << 1); - } - /// - /// Decimal Ordinate In to X / Y Coordinate Out - /// - /// Loop integer which will be decoded to X/Y - /// Output X coordinate - /// Output Y coordinate - internal static void d2xy(uint d, out uint x, out uint y) - { - x = d; - y = x >> 1; - x &= 0x55555555; - y &= 0x55555555; - x |= x >> 1; - y |= y >> 1; - x &= 0x33333333; - y &= 0x33333333; - x |= x >> 2; - y |= y >> 2; - x &= 0x0f0f0f0f; - y &= 0x0f0f0f0f; - x |= x >> 4; - y |= y >> 4; - x &= 0x00ff00ff; - y &= 0x00ff00ff; - x |= x >> 8; - y |= y >> 8; - x &= 0x0000ffff; - y &= 0x0000ffff; - } - - public static CLIM analyze(byte[] data, string shortPath) - { - CLIM bclim = new CLIM - { - FileName = Path.GetFileNameWithoutExtension(shortPath), - FilePath = Path.GetDirectoryName(shortPath), - Extension = Path.GetExtension(shortPath) - }; - byte[] byteArray = data; - using (BinaryReader br = new BinaryReader(new MemoryStream(byteArray))) - { - br.BaseStream.Seek(br.BaseStream.Length - 0x28, SeekOrigin.Begin); - bclim.Magic = br.ReadUInt32(); - - bclim.BOM = br.ReadUInt16(); - bclim.CLIMLength = br.ReadUInt32(); - bclim.TileWidth = 2 << br.ReadByte(); - bclim.TileHeight = 2 << br.ReadByte(); - bclim.totalLength = br.ReadUInt32(); - bclim.Count = br.ReadUInt32(); - - bclim.imag = br.ReadChars(4); - bclim.imagLength = br.ReadUInt32(); - bclim.Width = br.ReadUInt16(); - bclim.Height = br.ReadUInt16(); - bclim.FileFormat = br.ReadInt32(); - bclim.dataLength = br.ReadUInt32(); - - bclim.BaseSize = Math.Max(nlpo2(bclim.Width), nlpo2(bclim.Height)); - - br.BaseStream.Seek(0, SeekOrigin.Begin); - bclim.Data = br.ReadBytes((int)bclim.dataLength); - - return bclim; - } - } - public static CLIM analyze(string path) - { - CLIM bclim = new CLIM - { - FileName = Path.GetFileNameWithoutExtension(path), - FilePath = Path.GetDirectoryName(path), - Extension = Path.GetExtension(path) - }; - byte[] byteArray = File.ReadAllBytes(path); - using (BinaryReader br = new BinaryReader(new MemoryStream(byteArray))) - { - br.BaseStream.Seek(br.BaseStream.Length - 0x28, SeekOrigin.Begin); - bclim.Magic = br.ReadUInt32(); - - bclim.BOM = br.ReadUInt16(); - bclim.CLIMLength = br.ReadUInt32(); - bclim.TileWidth = 2 << br.ReadByte(); - bclim.TileHeight = 2 << br.ReadByte(); - bclim.totalLength = br.ReadUInt32(); - bclim.Count = br.ReadUInt32(); - - bclim.imag = br.ReadChars(4); - bclim.imagLength = br.ReadUInt32(); - bclim.Width = br.ReadUInt16(); - bclim.Height = br.ReadUInt16(); - bclim.FileFormat = br.ReadInt32(); - bclim.dataLength = br.ReadUInt32(); - - bclim.BaseSize = Math.Max(nlpo2(bclim.Width), nlpo2(bclim.Height)); - - br.BaseStream.Seek(0, SeekOrigin.Begin); - bclim.Data = br.ReadBytes((int)bclim.dataLength); - - return bclim; - } - } - public struct CLIM - { - public uint Magic; // CLIM = 0x4D494C43 - public UInt16 BOM; // 0xFFFE - public uint CLIMLength; // HeaderLength - 14 - public int TileWidth; // 1<<[[n]] - public int TileHeight; // 1<<[[n]] - public uint totalLength; // Total Length of file - public uint Count; // "1" , guessing it's just Count. - - public char[] imag; // imag = 0x67616D69 - public uint imagLength; // HeaderLength - 10 - public UInt16 Width; // Final Dimensions - public UInt16 Height; // Final Dimensions - public int FileFormat; // ?? - public uint dataLength; // Pixel Data Region Length - - public byte[] Data; - - public int BaseSize; - - //// Contained Data - //public int ColorFormat; - //public int ColorCount; - //public Color[] Colors; - - //public int[] Pixels; - - public string FileName; - public string FilePath; - public string Extension; - } - } -} \ No newline at end of file diff --git a/pk3DS.Core/CTR/BLZ.cs b/pk3DS.Core/CTR/BLZ.cs index 5b98f458b5..86a9fd26c2 100644 --- a/pk3DS.Core/CTR/BLZ.cs +++ b/pk3DS.Core/CTR/BLZ.cs @@ -24,489 +24,497 @@ using System.IO; using System.Windows.Forms; -namespace pk3DS.Core.CTR +namespace pk3DS.Core.CTR; + +public class BLZCoder { - public class BLZCoder + private const int CMD_DECODE = 0; + private const int CMD_ENCODE = 1; + + private const int BLZ_NORMAL = 0; + private const int BLZ_BEST = 1; + private const int BLZ_SHIFT = 1; + private const int BLZ_MASK = 0x80; + private const int BLZ_THRESHOLD = 2; + private const int BLZ_N = 0x1002; + private const int BLZ_F = 0x12; + private const int BLZ_MAXIM = 0x01400000; + private const int RAW_MAXIM = 0x00FFFFFF; + + private readonly bool arm9; + private int new_len; + + private readonly ProgressBar pBar1; + + private void InitProgress(int max) { - private const int CMD_DECODE = 0; - private const int CMD_ENCODE = 1; - - private const int BLZ_NORMAL = 0; - private const int BLZ_BEST = 1; - private const int BLZ_SHIFT = 1; - private const int BLZ_MASK = 0x80; - private const int BLZ_THRESHOLD = 2; - private const int BLZ_N = 0x1002; - private const int BLZ_F = 0x12; - private const int BLZ_MAXIM = 0x01400000; - private const int RAW_MAXIM = 0x00FFFFFF; - - private readonly bool arm9; - private int new_len; - - private readonly ProgressBar pBar1; - private void initpBar(int max) + if (pBar1.InvokeRequired) { - if (pBar1.InvokeRequired) - pBar1.Invoke((MethodInvoker)delegate { pBar1.Minimum = 0; pBar1.Step = 1; pBar1.Value = 0; pBar1.Maximum = max; }); - else { pBar1.Minimum = 0; pBar1.Step = 1; pBar1.Value = 0; pBar1.Maximum = max; } - } - private void setpBarPos(int pos) - { - if (pBar1.InvokeRequired) - pBar1.Invoke((MethodInvoker)delegate { pBar1.Value = pos; }); - else { pBar1.Value = pos; } + pBar1.Invoke((MethodInvoker)delegate { pBar1.Minimum = 0; pBar1.Step = 1; pBar1.Value = 0; pBar1.Maximum = max; }); } + else { pBar1.Minimum = 0; pBar1.Step = 1; pBar1.Value = 0; pBar1.Maximum = max; } + } - public BLZCoder(string[] args, ProgressBar pBar = null) + private void SetProgressPosition(int pos) + { + if (pBar1.InvokeRequired) { - int cmd, mode = 0; - if (pBar == null) pBar1 = new ProgressBar(); - pBar1 = pBar; - - // Title(); + pBar1.Invoke((MethodInvoker)delegate { pBar1.Value = pos; }); + } + else { pBar1.Value = pos; } + } - if (args == null || args.Length != 2) - throw new Exception("No arguments supplied to BLZ"); + public BLZCoder(string[] args, ProgressBar pBar = null) + { + int cmd, mode = 0; + if (pBar == null) pBar1 = new ProgressBar(); + pBar1 = pBar; - if (args[0].Equals("-d")) - cmd = CMD_DECODE; + // Title(); - else if (args[0].Equals("-en") || args[0].Equals("-en9")) - { - cmd = CMD_ENCODE; - mode = BLZ_NORMAL; - } - else if (args[0].Equals("-eo") || args[0].Equals("-eo9")) - { - cmd = CMD_ENCODE; - mode = BLZ_BEST; - } - else { Console.Write("Command not supported" + Environment.NewLine); return; } + if (args == null || args.Length != 2) + throw new Exception("No arguments supplied to BLZ"); - if (args.Length < 2) - Console.Write("Filename not specified" + Environment.NewLine); - else - { - int arg; - switch (cmd) - { - case 0: - for (arg = 1; arg < args.Length; arg++) - BLZ_Decode(args[arg]); - break; - case 1: - arm9 = args[0].Length > 3 && args[0][3] == '9'; - for (arg = 1; arg < args.Length; arg++) - BLZ_Encode(args[arg], mode); - break; - } - } + if (args[0].Equals("-d")) + { + cmd = CMD_DECODE; + } + else if (args[0].Equals("-en") || args[0].Equals("-en9")) + { + cmd = CMD_ENCODE; + mode = BLZ_NORMAL; + } + else if (args[0].Equals("-eo") || args[0].Equals("-eo9")) + { + cmd = CMD_ENCODE; + mode = BLZ_BEST; + } + else { Console.Write("Command not supported" + Environment.NewLine); return; } - Console.Write(Environment.NewLine + "Done" + Environment.NewLine); + if (args.Length < 2) + { + Console.Write("Filename not specified" + Environment.NewLine); } - private static void Save(string filename, byte[] buffer, int length) + else { - Array.Resize(ref buffer, length); - try - { File.WriteAllBytes(filename, buffer); } - catch (IOException e) + int arg; + switch (cmd) { - Console.Write(Environment.NewLine + "File write error" + Environment.NewLine + e + Environment.NewLine); - File.WriteAllBytes("blz.bin", buffer); - Console.Write(Environment.NewLine + "Wrote to 'blz.bin' instead." + Environment.NewLine); + case 0: + for (arg = 1; arg < args.Length; arg++) + BLZ_Decode(args[arg]); + break; + case 1: + arm9 = args[0].Length > 3 && args[0][3] == '9'; + for (arg = 1; arg < args.Length; arg++) + BLZ_Encode(args[arg], mode); + break; } } - private static void BLZ_Decode(string filename) + + Console.Write(Environment.NewLine + "Done" + Environment.NewLine); + } + + private static void Save(string filename, byte[] buffer, int length) + { + Array.Resize(ref buffer, length); + try + { File.WriteAllBytes(filename, buffer); } + catch (IOException e) { - try - { - Console.Write($"- decoding '{filename}'"); - long startTime = DateTime.Now.Millisecond; - byte[] buf = File.ReadAllBytes(filename); - BLZResult result = BLZ_Decode(buf); - if (result != null) - Save(filename, result.buffer, result.length); - Console.Write(" - done, time=" - + (DateTime.Now.Millisecond - startTime) + "ms"); - Console.Write(Environment.NewLine + ""); - } - catch (IOException e) - { Console.Write(Environment.NewLine + "File read error" + Environment.NewLine + e); } + Console.Write(Environment.NewLine + "File write error" + Environment.NewLine + e + Environment.NewLine); + File.WriteAllBytes("blz.bin", buffer); + Console.Write(Environment.NewLine + "Wrote to 'blz.bin' instead." + Environment.NewLine); } - private static BLZResult BLZ_Decode(byte[] data) + } + + private static void BLZ_Decode(string filename) + { + try { - int raw_len, len; - int enc_len, dec_len; - int flags = 0; + Console.Write($"- decoding '{filename}'"); + long startTime = DateTime.Now.Millisecond; + byte[] buf = File.ReadAllBytes(filename); + BLZResult result = BLZ_Decode(buf); + if (result != null) + Save(filename, result.buffer, result.length); + Console.Write(" - done, time=" + + (DateTime.Now.Millisecond - startTime) + "ms"); + Console.Write(Environment.NewLine + ""); + } + catch (IOException e) + { Console.Write(Environment.NewLine + "File read error" + Environment.NewLine + e); } + } + + private static BLZResult BLZ_Decode(byte[] data) + { + int raw_len; + int len; + int dec_len; + int flags = 0; - byte[] pak_buffer = prepareData(data); - int pak_len = pak_buffer.Length - 3; + byte[] pak_buffer = PrepareData(data); + int pak_len = pak_buffer.Length - 3; - int inc_len = BitConverter.ToInt32(pak_buffer, pak_len - 4); - if (inc_len < 1) + int inc_len = BitConverter.ToInt32(pak_buffer, pak_len - 4); + if (inc_len < 1) + { + Console.Write(", WARNING: not coded file!"); + dec_len = pak_len; + pak_len = 0; + raw_len = dec_len; + } + else + { + if (pak_len < 8) { - Console.Write(", WARNING: not coded file!"); - enc_len = 0; - dec_len = pak_len; - pak_len = 0; - raw_len = dec_len; + Console.Write(Environment.NewLine + "File has a bad header" + Environment.NewLine); + return null; } - else + int hdr_len = pak_buffer[pak_len - 5]; + if (hdr_len is < 8 or > 0xB) { - if (pak_len < 8) - { - Console.Write(Environment.NewLine + "File has a bad header" + Environment.NewLine); - return null; - } - int hdr_len = pak_buffer[pak_len - 5]; - if (hdr_len < 8 || hdr_len > 0xB) - { - Console.Write(Environment.NewLine + "Bad header length" + Environment.NewLine); - return null; - } - if (pak_len <= hdr_len) - { - Console.Write(Environment.NewLine + "Bad length" + Environment.NewLine); - return null; - } - enc_len = (int)(BitConverter.ToUInt32(pak_buffer, pak_len - 8) & 0x00FFFFFF); - dec_len = pak_len - enc_len; - pak_len = enc_len - hdr_len; - raw_len = dec_len + enc_len + inc_len; - if (raw_len > RAW_MAXIM) - { - Console.Write(Environment.NewLine + "Bad decoded length" + Environment.NewLine); - return null; - } + Console.Write(Environment.NewLine + "Bad header length" + Environment.NewLine); + return null; + } + if (pak_len <= hdr_len) + { + Console.Write(Environment.NewLine + "Bad length" + Environment.NewLine); + return null; + } + var enc_len = (int)(BitConverter.ToUInt32(pak_buffer, pak_len - 8) & 0x00FFFFFF); + dec_len = pak_len - enc_len; + pak_len = enc_len - hdr_len; + raw_len = dec_len + enc_len + inc_len; + if (raw_len > RAW_MAXIM) + { + Console.Write(Environment.NewLine + "Bad decoded length" + Environment.NewLine); + return null; } + } - byte[] raw_buffer = new byte[raw_len]; + byte[] raw_buffer = new byte[raw_len]; - int pak = 0; - int raw = 0; - int pak_end = dec_len + pak_len; - int raw_end = raw_len; + int pak = 0; + int raw = 0; + int pak_end = dec_len + pak_len; + int raw_end = raw_len; - for (len = 0; len < dec_len; len++) - raw_buffer[raw++] = pak_buffer[pak++]; + for (len = 0; len < dec_len; len++) + raw_buffer[raw++] = pak_buffer[pak++]; - BLZ_Invert(pak_buffer, dec_len, pak_len); + BLZ_Invert(pak_buffer, dec_len, pak_len); - int mask = 0; + int mask = 0; - while (raw < raw_end) + while (raw < raw_end) + { + if ((mask >>>= BLZ_SHIFT) == 0) { - if ((mask = (int)((uint)mask >> BLZ_SHIFT)) == 0) - { - if (pak == pak_end) - break; + if (pak == pak_end) + break; - flags = pak_buffer[pak++]; - mask = BLZ_MASK; - } + flags = pak_buffer[pak++]; + mask = BLZ_MASK; + } - if ((flags & mask) == 0) - { - if (pak == pak_end) - break; + if ((flags & mask) == 0) + { + if (pak == pak_end) + break; - raw_buffer[raw++] = pak_buffer[pak++]; + raw_buffer[raw++] = pak_buffer[pak++]; + } + else + { + if (pak + 1 >= pak_end) + break; + + int pos = pak_buffer[pak++] << 8; + pos |= pak_buffer[pak++]; + len = (pos >>> 12) + BLZ_THRESHOLD + 1; + if (raw + len > raw_end) + { + Console.Write(", WARNING: wrong decoded length!"); + len = raw_end - raw; } - else + pos = (pos & 0xFFF) + 3; + while (len-- > 0) { - if (pak + 1 >= pak_end) - break; - - int pos = pak_buffer[pak++] << 8; - pos |= pak_buffer[pak++]; - len = (int)((uint)pos >> 12) + BLZ_THRESHOLD + 1; - if (raw + len > raw_end) - { - Console.Write(", WARNING: wrong decoded length!"); - len = raw_end - raw; - } - pos = (pos & 0xFFF) + 3; - while (len-- > 0) - { - int charHere = raw_buffer[raw - pos]; - raw_buffer[raw++] = (byte)charHere; - } + int charHere = raw_buffer[raw - pos]; + raw_buffer[raw++] = (byte)charHere; } } + } - BLZ_Invert(raw_buffer, dec_len, raw_len - dec_len); + BLZ_Invert(raw_buffer, dec_len, raw_len - dec_len); - raw_len = raw; + raw_len = raw; - if (raw != raw_end) - Console.Write(", WARNING: unexpected end of encoded file!"); + if (raw != raw_end) + Console.Write(", WARNING: unexpected end of encoded file!"); - return new BLZResult(raw_buffer, raw_len); - } - private BLZResult BLZ_Encode(byte[] data, int mode) - { - new_len = 0; + return new BLZResult(raw_buffer, raw_len); + } - byte[] raw_buffer = prepareData(data); - int raw_len = raw_buffer.Length - 3; + private BLZResult BLZ_Encode(byte[] data, int mode) + { + new_len = 0; - byte[] pak_buffer = null; - int pak_len = BLZ_MAXIM + 1; + byte[] raw_buffer = PrepareData(data); + int raw_len = raw_buffer.Length - 3; - byte[] new_buffer = BLZ_Code(raw_buffer, raw_len, mode); + byte[] pak_buffer = null; + int pak_len = BLZ_MAXIM + 1; - if (new_len < pak_len) - { - pak_buffer = new_buffer; - pak_len = new_len; - } - return new BLZResult(pak_buffer, pak_len); - } - private static byte[] prepareData(byte[] data) - { - int fs = data.Length; - byte[] fb = new byte[fs + 3]; - for (int i = 0; i < fs; i++) - fb[i] = data[i]; + byte[] new_buffer = BLZ_Code(raw_buffer, raw_len, mode); - return fb; - } - private static void writeUnsigned(byte[] buffer, int offset, int value) + if (new_len < pak_len) { - buffer[offset] = (byte)(value & 0xFF); - buffer[offset + 1] = (byte)((value >> 8) & 0xFF); - buffer[offset + 2] = (byte)((value >> 16) & 0xFF); - buffer[offset + 3] = (byte)((value >> 24) & 0x7F); + pak_buffer = new_buffer; + pak_len = new_len; } - private void BLZ_Encode(string filename, int mode) + return new BLZResult(pak_buffer, pak_len); + } + + private static byte[] PrepareData(byte[] data) + { + int fs = data.Length; + byte[] fb = new byte[fs + 3]; + for (int i = 0; i < fs; i++) + fb[i] = data[i]; + + return fb; + } + + private static void WriteUnsigned(byte[] buffer, int offset, int value) + { + buffer[offset] = (byte)(value & 0xFF); + buffer[offset + 1] = (byte)((value >> 8) & 0xFF); + buffer[offset + 2] = (byte)((value >> 16) & 0xFF); + buffer[offset + 3] = (byte)((value >> 24) & 0x7F); + } + + private void BLZ_Encode(string filename, int mode) + { + try { - try - { - Console.Write("Now encoding {0}", filename); - var stopwatch = new Stopwatch(); - stopwatch.Start(); + Console.Write("Now encoding {0}", filename); + var stopwatch = new Stopwatch(); + stopwatch.Start(); - byte[] buf = File.ReadAllBytes(filename); - BLZResult result = BLZ_Encode(buf, mode); - if (result != null) - Save(filename, result.buffer, result.length); + byte[] buf = File.ReadAllBytes(filename); + BLZResult result = BLZ_Encode(buf, mode); + if (result != null) + Save(filename, result.buffer, result.length); - stopwatch.Stop(); - Console.Write(Environment.NewLine + "Done, time elapsed = " + stopwatch.ElapsedMilliseconds + "ms" + Environment.NewLine); - } - catch (IOException e) - { Console.Write(Environment.NewLine + "File read error" + Environment.NewLine + e + Environment.NewLine); } + stopwatch.Stop(); + Console.Write(Environment.NewLine + "Done, time elapsed = " + stopwatch.ElapsedMilliseconds + "ms" + Environment.NewLine); } - private byte[] BLZ_Code(byte[] raw_buffer, int raw_len, int best) - { - int flg = 0; - int pos_best = 0; - int pos_next = 0; - int pos_post = 0; + catch (IOException e) + { Console.Write(Environment.NewLine + "File read error" + Environment.NewLine + e + Environment.NewLine); } + } - int pak_tmp = 0; - int raw_tmp = raw_len; + private byte[] BLZ_Code(byte[] raw_buffer, int raw_len, int best) + { + int flg = 0; + int pos_best = 0; + int pos_next = 0; + int pos_post = 0; - int pak_len = raw_len + (raw_len + 7) / 8 + 11; - byte[] pak_buffer = new byte[pak_len]; + int pak_tmp = 0; + int raw_tmp = raw_len; - int raw_new = raw_len; + int pak_len = raw_len + ((raw_len + 7) / 8) + 11; + byte[] pak_buffer = new byte[pak_len]; - // We don't do any of the checks here - // Presume that we actually are using an arm9 - if (arm9) - raw_new -= 0x4000; + int raw_new = raw_len; - BLZ_Invert(raw_buffer, 0, raw_len); + // We don't do any of the checks here + // Presume that we actually are using an arm9 + if (arm9) + raw_new -= 0x4000; - int pak = 0; - int raw = 0; - int raw_end = raw_new; + BLZ_Invert(raw_buffer, 0, raw_len); - int mask = 0; - initpBar(raw_end); - while (raw < raw_end) + int pak = 0; + int raw = 0; + int raw_end = raw_new; + + int mask = 0; + InitProgress(raw_end); + while (raw < raw_end) + { + SetProgressPosition(raw); + if ((mask >>>= BLZ_SHIFT) == 0) { - setpBarPos(raw); - if ((mask = (int)((uint)mask >> BLZ_SHIFT)) == 0) - { - pak_buffer[flg = pak++] = 0; - mask = BLZ_MASK; - } + pak_buffer[flg = pak++] = 0; + mask = BLZ_MASK; + } - SearchPair sl1 = SEARCH(pos_best, raw_buffer, raw, raw_end); - int len_best = sl1.l; - pos_best = sl1.p; + SearchPair sl1 = SEARCH(pos_best, raw_buffer, raw, raw_end); + int len_best = sl1.l; + pos_best = sl1.p; - // LZ-CUE optimization start - if (best == BLZ_BEST) + // LZ-CUE optimization start + if (best == BLZ_BEST) + { + if (len_best > BLZ_THRESHOLD) { - if (len_best > BLZ_THRESHOLD) + if (raw + len_best < raw_end) { - if (raw + len_best < raw_end) - { - raw += len_best; - SearchPair sl2 = SEARCH(pos_next, raw_buffer, raw, - raw_end); - int len_next = sl2.l; - pos_next = sl2.p; - raw -= len_best - 1; - SearchPair sl3 = SEARCH(pos_post, raw_buffer, raw, - raw_end); - int len_post = sl3.l; - pos_post = sl3.p; - raw--; - - if (len_next <= BLZ_THRESHOLD) - len_next = 1; - if (len_post <= BLZ_THRESHOLD) - len_post = 1; - if (len_best + len_next <= 1 + len_post) - len_best = 1; - } + raw += len_best; + SearchPair sl2 = SEARCH(pos_next, raw_buffer, raw, + raw_end); + int len_next = sl2.l; + pos_next = sl2.p; + raw -= len_best - 1; + SearchPair sl3 = SEARCH(pos_post, raw_buffer, raw, + raw_end); + int len_post = sl3.l; + pos_post = sl3.p; + raw--; + + if (len_next <= BLZ_THRESHOLD) + len_next = 1; + if (len_post <= BLZ_THRESHOLD) + len_post = 1; + if (len_best + len_next <= 1 + len_post) + len_best = 1; } } - // LZ-CUE optimization end - pak_buffer[flg] = (byte)(pak_buffer[flg] << 1); - if (len_best > BLZ_THRESHOLD) - { - raw += len_best; - pak_buffer[flg] |= 1; - pak_buffer[pak++] = (byte)((byte)((len_best - (BLZ_THRESHOLD + 1)) << 4) | ((uint)(pos_best - 3) >> 8)); - pak_buffer[pak++] = (byte)(pos_best - 3); - } - else - pak_buffer[pak++] = raw_buffer[raw++]; - - if (pak + raw_len - raw >= pak_tmp + raw_tmp) - continue; - - pak_tmp = pak; - raw_tmp = raw_len - raw; } - - while (mask > 0 && mask != 1) + // LZ-CUE optimization end + pak_buffer[flg] = (byte)(pak_buffer[flg] << 1); + if (len_best > BLZ_THRESHOLD) + { + raw += len_best; + pak_buffer[flg] |= 1; + pak_buffer[pak++] = (byte)((byte)((len_best - (BLZ_THRESHOLD + 1)) << 4) | ((uint)(pos_best - 3) >> 8)); + pak_buffer[pak++] = (byte)(pos_best - 3); + } + else { - mask = (int)((uint)mask >> BLZ_SHIFT); - pak_buffer[flg] = (byte)(pak_buffer[flg] << 1); + pak_buffer[pak++] = raw_buffer[raw++]; } - pak_len = pak; + if (pak + raw_len - raw >= pak_tmp + raw_tmp) + continue; - BLZ_Invert(raw_buffer, 0, raw_len); - BLZ_Invert(pak_buffer, 0, pak_len); + pak_tmp = pak; + raw_tmp = raw_len - raw; + } - if (pak_tmp == 0 || raw_len + 4 < ((pak_tmp + raw_tmp + 3) & 0xFFFFFFFC) + 8) - { - pak = 0; - raw = 0; - raw_end = raw_len; + while (mask > 0 && mask != 1) + { + mask >>>= BLZ_SHIFT; + pak_buffer[flg] = (byte)(pak_buffer[flg] << 1); + } - while (raw < raw_end) - pak_buffer[pak++] = raw_buffer[raw++]; + pak_len = pak; - while ((pak & 3) > 0) - pak_buffer[pak++] = 0; + BLZ_Invert(raw_buffer, 0, raw_len); + BLZ_Invert(pak_buffer, 0, pak_len); - pak_buffer[pak++] = 0; - pak_buffer[pak++] = 0; - pak_buffer[pak++] = 0; - pak_buffer[pak++] = 0; - } - else - { - byte[] tmp = new byte[raw_tmp + pak_tmp + 11]; + if (pak_tmp == 0 || raw_len + 4 < ((pak_tmp + raw_tmp + 3) & 0xFFFFFFFC) + 8) + { + pak = 0; + raw = 0; + raw_end = raw_len; - int len; - for (len = 0; len < raw_tmp; len++) - tmp[len] = raw_buffer[len]; + while (raw < raw_end) + pak_buffer[pak++] = raw_buffer[raw++]; + + while ((pak & 3) > 0) + pak_buffer[pak++] = 0; - for (len = 0; len < pak_tmp; len++) - tmp[raw_tmp + len] = pak_buffer[len + pak_len - pak_tmp]; - - pak_buffer = tmp; - pak = raw_tmp + pak_tmp; + pak_buffer[pak++] = 0; + pak_buffer[pak++] = 0; + pak_buffer[pak++] = 0; + pak_buffer[pak++] = 0; + } + else + { + byte[] tmp = new byte[raw_tmp + pak_tmp + 11]; - int enc_len = pak_tmp; - int hdr_len = 8; - int inc_len = raw_len - pak_tmp - raw_tmp; + int len; + for (len = 0; len < raw_tmp; len++) + tmp[len] = raw_buffer[len]; - while ((pak & 3) > 0) - { - pak_buffer[pak++] = 0xFF; - hdr_len++; - } + for (len = 0; len < pak_tmp; len++) + tmp[raw_tmp + len] = pak_buffer[len + pak_len - pak_tmp]; - writeUnsigned(pak_buffer, pak, enc_len + hdr_len); - pak += 3; - pak_buffer[pak++] = (byte)hdr_len; - writeUnsigned(pak_buffer, pak, inc_len - hdr_len); - pak += 4; - } - new_len = pak; - return pak_buffer; - } + pak_buffer = tmp; + pak = raw_tmp + pak_tmp; - private class SearchPair - { - public readonly int l; - public readonly int p; + int enc_len = pak_tmp; + int hdr_len = 8; + int inc_len = raw_len - pak_tmp - raw_tmp; - public SearchPair(int l, int p) + while ((pak & 3) > 0) { - this.l = l; - this.p = p; + pak_buffer[pak++] = 0xFF; + hdr_len++; } + + WriteUnsigned(pak_buffer, pak, enc_len + hdr_len); + pak += 3; + pak_buffer[pak++] = (byte)hdr_len; + WriteUnsigned(pak_buffer, pak, inc_len - hdr_len); + pak += 4; } - private static SearchPair SEARCH(int p, IList raw_buffer, int raw, int raw_end) + new_len = pak; + return pak_buffer; + } + + private class SearchPair(int l, int p) + { + public readonly int l = l; + public readonly int p = p; + } + + private static SearchPair SEARCH(int p, IList raw_buffer, int raw, int raw_end) + { + int l = BLZ_THRESHOLD; + int max = raw >= BLZ_N ? BLZ_N : raw; + for (int pos = 3; pos <= max; pos++) { - int l = BLZ_THRESHOLD; - int max = raw >= BLZ_N ? BLZ_N : raw; - for (int pos = 3; pos <= max; pos++) + int len; + for (len = 0; len < BLZ_F; len++) { - int len; - for (len = 0; len < BLZ_F; len++) - { - if (raw + len == raw_end) - break; - - if (len >= pos) - break; + if (raw + len == raw_end) + break; - if (raw_buffer[raw + len] != raw_buffer[raw + len - pos]) - break; - } + if (len >= pos) + break; - if (len <= l) continue; - p = pos; - if ((l = len) == BLZ_F) + if (raw_buffer[raw + len] != raw_buffer[raw + len - pos]) break; } - return new SearchPair(l, p); + + if (len <= l) continue; + p = pos; + if ((l = len) == BLZ_F) + break; } + return new SearchPair(l, p); + } - private class BLZResult - { - public BLZResult(byte[] raw_buffer, int raw_len) - { - buffer = raw_buffer; - length = raw_len; - } + private class BLZResult(byte[] raw_buffer, int raw_len) + { + public readonly byte[] buffer = raw_buffer; + public readonly int length = raw_len; + } - public readonly byte[] buffer; - public readonly int length; - } - private static void BLZ_Invert(byte[] buffer, int offset, int length) - { - int bottom = offset + length - 1; + private static void BLZ_Invert(byte[] buffer, int offset, int length) + { + int bottom = offset + length - 1; - while (offset < bottom) - { - int ch = buffer[offset]; - buffer[offset++] = buffer[bottom]; - buffer[bottom--] = (byte)ch; - } + while (offset < bottom) + { + int ch = buffer[offset]; + buffer[offset++] = buffer[bottom]; + buffer[bottom--] = (byte)ch; } } } \ No newline at end of file diff --git a/pk3DS.Core/CTR/CRO.cs b/pk3DS.Core/CTR/CRO.cs index 3fc706e6a9..81a9d5f0df 100644 --- a/pk3DS.Core/CTR/CRO.cs +++ b/pk3DS.Core/CTR/CRO.cs @@ -5,237 +5,245 @@ using System.Security.Cryptography; using System.Windows.Forms; -namespace pk3DS.Core.CTR +namespace pk3DS.Core.CTR; + +public class CRO(byte[] data) { - public class CRO + // Utility + internal static void UpdateTB(RichTextBox RTB, string progress) { - // Utility - internal static void updateTB(RichTextBox RTB, string progress) + try { - try + if (RTB.InvokeRequired) { - if (RTB.InvokeRequired) - RTB.Invoke((MethodInvoker)delegate - { - RTB.AppendText(Environment.NewLine + progress); - RTB.SelectionStart = RTB.Text.Length; - RTB.ScrollToCaret(); - }); - else + RTB.Invoke((MethodInvoker)delegate { + RTB.AppendText(Environment.NewLine + progress); RTB.SelectionStart = RTB.Text.Length; RTB.ScrollToCaret(); - RTB.AppendText(progress + Environment.NewLine); - } + }); + } + else + { + RTB.SelectionStart = RTB.Text.Length; + RTB.ScrollToCaret(); + RTB.AppendText(progress + Environment.NewLine); } - catch { } } - internal static int IndexOfBytes(byte[] array, byte[] pattern, int startIndex, int count) + catch { } + } + + internal static int IndexOfBytes(byte[] array, byte[] pattern, int startIndex, int count) + { + int i = startIndex; + int endIndex = count > 0 ? startIndex + count : array.Length; + int fidx = 0; + + while (i++ != endIndex - 1) { - int i = startIndex; - int endIndex = count > 0 ? startIndex + count : array.Length; - int fidx = 0; + if (array[i] != pattern[fidx]) i -= fidx; + fidx = array[i] == pattern[fidx] ? ++fidx : 0; + if (fidx == pattern.Length) + return i - fidx + 1; + } + return -1; + } - while (i++ != endIndex - 1) - { - if (array[i] != pattern[fidx]) i -= fidx; - fidx = array[i] == pattern[fidx] ? ++fidx : 0; - if (fidx == pattern.Length) - return i - fidx + 1; - } - return -1; + internal static string GetHexString(byte[] data) + { + return BitConverter.ToString(data).Replace("-", ""); + } + + internal static byte[] StringToByteArray(string hex) + { + return Enumerable.Range(0, hex.Length) + .Where(x => x % 2 == 0) + .Select(x => Convert.ToByte(hex.Substring(x, 2), 16)) + .ToArray(); + } + + // Checking + internal static string[] VerifyCRR(string PATH_CRR, string PATH_CRO) + { + // Get CRO files + string[] CROFiles = Directory.GetFiles(PATH_CRO); + + // Weed out anything that isn't a .cro + var cros = new List(); + for (int i = 0; i < CROFiles.Length; i++) + { + if (Path.GetExtension(cros[i]) == ".cro") + cros.Add(cros[i]); } - internal static string getHexString(byte[] data) + + CROFiles = [.. cros]; + + // Store Hashes as Strings (hacky way to sort byte[]'s against eachother + string[] hashes = new string[CROFiles.Length]; + for (int i = 0; i < hashes.Length; i++) { - return BitConverter.ToString(data).Replace("-", ""); + byte[] data = File.ReadAllBytes(CROFiles[i]); + byte[] hash = HashCRO(ref data); + hashes[i] = GetHexString(hash).ToUpper(); } - internal static byte[] StringToByteArray(string hex) + Array.Sort(hashes, string.Compare); + // Convert Hash Strings to Bytes + byte[][] hashData = new byte[hashes.Length][]; + for (int i = 0; i < hashes.Length; i++) + hashData[i] = StringToByteArray(hashes[i]); + + // Open the CRR + byte[] CRR = File.ReadAllBytes(PATH_CRR); + int hashTableOffset = BitConverter.ToInt32(CRR, 0x350); + int hashCount = BitConverter.ToInt32(CRR, 0x354); + + // A little validation... + if (hashCount != hashData.Length) + throw new Exception($"Amount of input file-hashes does not equal the hash count in CRR. Expected {hashCount}, got {hashData.Length}."); + + string[] results = new string[hashData.Length]; + // Store Hashes in CRR + for (int i = 0; i < hashData.Length; i++) { - return Enumerable.Range(0, hex.Length) - .Where(x => x % 2 == 0) - .Select(x => Convert.ToByte(hex.Substring(x, 2), 16)) - .ToArray(); + byte[] crrEntryHash = new byte[0x20]; + Array.Copy(CRR, (i * 0x20) + hashTableOffset, crrEntryHash, 0, 0x20); + results[i] = "Hash @ {0} is " + (crrEntryHash.SequenceEqual(hashData[i]) ? "valid." : "invalid."); + Array.Copy(hashData, 0, CRR, hashTableOffset + (0x20 * i), 0x20); } + return results; + } - // Checking - internal static string[] verifyCRR(string PATH_CRR, string PATH_CRO) + public static bool E_HashCRR(string PATH_CRR, string PATH_CRO, bool saveCRO = true, bool saveCRR = true, RichTextBox TB_Progress = null, ProgressBar PB_Show = null) + { + // Get CRO files + string[] CROFiles = Directory.GetFiles(PATH_CRO); + + // Weed out anything that isn't a .cro + CROFiles = CROFiles.Where(t => Path.GetExtension(t) == ".cro").ToArray(); + // Open the CRR + byte[] CRR = File.ReadAllBytes(PATH_CRR); + int hashTableOffset = BitConverter.ToInt32(CRR, 0x350); + int hashCount = BitConverter.ToInt32(CRR, 0x354); + + // A little validation... + if (hashCount != CROFiles.Length) { - // Get CRO files - string[] CROFiles = Directory.GetFiles(PATH_CRO); - - // Weed out anything that isn't a .cro - List cros = new List(); - for (int i = 0; i < CROFiles.Length; i++) - if (Path.GetExtension(cros[i]) == ".cro") - cros.Add(cros[i]); - CROFiles = cros.ToArray(); - - // Store Hashes as Strings (hacky way to sort byte[]'s against eachother - string[] hashes = new string[CROFiles.Length]; - for (int i = 0; i < hashes.Length; i++) - { - byte[] data = File.ReadAllBytes(CROFiles[i]); - byte[] hash = hashCRO(ref data); - hashes[i] = getHexString(hash).ToUpper(); - } - Array.Sort(hashes, string.Compare); - // Convert Hash Strings to Bytes - byte[][] hashData = new byte[hashes.Length][]; - for (int i = 0; i < hashes.Length; i++) - hashData[i] = StringToByteArray(hashes[i]); - - // Open the CRR - byte[] CRR = File.ReadAllBytes(PATH_CRR); - int hashTableOffset = BitConverter.ToInt32(CRR, 0x350); - int hashCount = BitConverter.ToInt32(CRR, 0x354); - - // A little validation... - if (hashCount != hashData.Length) - throw new Exception( - $"Amount of input file-hashes does not equal the hash count in CRR. Expected {hashCount}, got {hashData.Length}."); - - string[] results = new string[hashData.Length]; - // Store Hashes in CRR - for (int i = 0; i < hashData.Length; i++) - { - byte[] crrEntryHash = new byte[0x20]; - Array.Copy(CRR, i * 0x20 + hashTableOffset, crrEntryHash, 0, 0x20); - results[i] = "Hash @ {0} is " + (crrEntryHash.SequenceEqual(hashData[i]) ? "valid." : "invalid."); - Array.Copy(hashData, 0, CRR, hashTableOffset + 0x20 * i, 0x20); - } - return results; + UpdateTB(TB_Progress, + $"Amount of input file-hashes does not equal the hash count in CRR. Expected {hashCount}, got {CROFiles.Length}."); + UpdateTB(TB_Progress, "Did not modify files. Aborting."); + return false; } - public static bool rehashCRR(string PATH_CRR, string PATH_CRO, bool saveCRO = true, bool saveCRR = true, RichTextBox TB_Progress = null, ProgressBar PB_Show = null) + + // Initialize Update Display + TB_Progress ??= new RichTextBox(); + PB_Show ??= new ProgressBar(); + if (PB_Show.InvokeRequired) { - // Get CRO files - string[] CROFiles = Directory.GetFiles(PATH_CRO); - - // Weed out anything that isn't a .cro - CROFiles = CROFiles.Where(t => Path.GetExtension(t) == ".cro").ToArray(); - // Open the CRR - byte[] CRR = File.ReadAllBytes(PATH_CRR); - int hashTableOffset = BitConverter.ToInt32(CRR, 0x350); - int hashCount = BitConverter.ToInt32(CRR, 0x354); - - // A little validation... - if (hashCount != CROFiles.Length) - { - updateTB(TB_Progress, - $"Amount of input file-hashes does not equal the hash count in CRR. Expected {hashCount}, got {CROFiles.Length}."); - updateTB(TB_Progress, "Did not modify files. Aborting."); - return false; - } + PB_Show.Invoke((MethodInvoker)delegate { PB_Show.Minimum = 0; PB_Show.Step = 1; PB_Show.Value = 0; PB_Show.Maximum = CROFiles.Length; }); + } + else { PB_Show.Minimum = 0; PB_Show.Step = 1; PB_Show.Value = 0; PB_Show.Maximum = CROFiles.Length; } + UpdateTB(TB_Progress, ""); + UpdateTB(TB_Progress, "Computing hashes for " + CROFiles.Length + " CRO files."); + + // Store Hashes as Strings (hacky way to sort byte[]'s against eachother + string[] hashes = new string[CROFiles.Length]; + for (int i = 0; i < hashes.Length; i++) + { + byte[] data = File.ReadAllBytes(CROFiles[i]); + byte[] hash = HashCRO(ref data); + hashes[i] = GetHexString(hash).ToUpper(); + if (saveCRO) + File.WriteAllBytes(CROFiles[i], data); - // Initialize Update Display - if (TB_Progress == null) TB_Progress = new RichTextBox(); - if (PB_Show == null) PB_Show = new ProgressBar(); if (PB_Show.InvokeRequired) - PB_Show.Invoke((MethodInvoker)delegate { PB_Show.Minimum = 0; PB_Show.Step = 1; PB_Show.Value = 0; PB_Show.Maximum = CROFiles.Length; }); - else { PB_Show.Minimum = 0; PB_Show.Step = 1; PB_Show.Value = 0; PB_Show.Maximum = CROFiles.Length; } - updateTB(TB_Progress, ""); - updateTB(TB_Progress, "Computing hashes for " + CROFiles.Length + " CRO files."); - - // Store Hashes as Strings (hacky way to sort byte[]'s against eachother - string[] hashes = new string[CROFiles.Length]; - for (int i = 0; i < hashes.Length; i++) { - byte[] data = File.ReadAllBytes(CROFiles[i]); - byte[] hash = hashCRO(ref data); - hashes[i] = getHexString(hash).ToUpper(); - if (saveCRO) - File.WriteAllBytes(CROFiles[i], data); - - if (PB_Show.InvokeRequired) - PB_Show.Invoke((MethodInvoker)(() => PB_Show.PerformStep())); - else { PB_Show.PerformStep(); } + PB_Show.Invoke((MethodInvoker)(() => PB_Show.PerformStep())); } - updateTB(TB_Progress, "Hashes computed, now sorting."); // Don't need to fiddle the ProgressBar because this should be quite quick. - string[] hashCopy = (string[])hashes.Clone(); // Store an unsorted list for later. - Array.Sort(hashes, string.Compare); - // Convert Hash Strings to Bytes - byte[][] hashData = new byte[hashes.Length][]; - for (int i = 0; i < hashes.Length; i++) - hashData[i] = StringToByteArray(hashes[i]); - - updateTB(TB_Progress, "Hashes sorted, writing hashes to CRR."); - - // Loop to check which CROs have to be updated. Do this separate from overwriting so we don't overwrite hashes for other CROs (yet). - int updatedCTR = 0; - for (int i = 0; i < hashData.Length; i++) + else { PB_Show.PerformStep(); } + } + UpdateTB(TB_Progress, "Hashes computed, now sorting."); // Don't need to fiddle the ProgressBar because this should be quite quick. + string[] hashCopy = (string[])hashes.Clone(); // Store an unsorted list for later. + Array.Sort(hashes, string.Compare); + // Convert Hash Strings to Bytes + byte[][] hashData = new byte[hashes.Length][]; + for (int i = 0; i < hashes.Length; i++) + hashData[i] = StringToByteArray(hashes[i]); + + UpdateTB(TB_Progress, "Hashes sorted, writing hashes to CRR."); + + // Loop to check which CROs have to be updated. Do this separate from overwriting so we don't overwrite hashes for other CROs (yet). + int updatedCTR = 0; + for (int i = 0; i < hashData.Length; i++) + { + // Check to see if the hash is currently in the table already. + int index = IndexOfBytes(CRR, hashData[i], 0, CRR.Length); + if (index < 0) { - // Check to see if the hash is currently in the table already. - int index = IndexOfBytes(CRR, hashData[i], 0, CRR.Length); - if (index < 0) - { - // CRO was updated. - string file = CROFiles[Array.IndexOf(hashCopy, hashes[i])]; - updateTB(TB_Progress, $"{Path.GetFileName(file)} hash has been updated."); - updatedCTR++; - } + // CRO was updated. + string file = CROFiles[Array.IndexOf(hashCopy, hashes[i])]; + UpdateTB(TB_Progress, $"{Path.GetFileName(file)} hash has been updated."); + updatedCTR++; } - // Store Hashes in CRR - for (int i = 0; i < hashData.Length; i++) - Array.Copy(hashData[i], 0, CRR, hashTableOffset + 0x20 * i, 0x20); + } + // Store Hashes in CRR + for (int i = 0; i < hashData.Length; i++) + Array.Copy(hashData[i], 0, CRR, hashTableOffset + (0x20 * i), 0x20); - updateTB(TB_Progress, - updatedCTR > 0 - ? $"{updatedCTR} hashes have been updated." - : "CRR is fine. No modifications are necessary."); + UpdateTB(TB_Progress, + updatedCTR > 0 + ? $"{updatedCTR} hashes have been updated." + : "CRR is fine. No modifications are necessary."); - // Save File - if (saveCRR && updatedCTR > 0) - { - File.WriteAllBytes(PATH_CRR, CRR); - updateTB(TB_Progress, "Wrote CRR."); - } - else - { - updateTB(TB_Progress, "CRR has not been updated."); - } - return true; + // Save File + if (saveCRR && updatedCTR > 0) + { + File.WriteAllBytes(PATH_CRR, CRR); + UpdateTB(TB_Progress, "Wrote CRR."); } - internal static byte[] hashCRO(ref byte[] CRO) + else { - // Allocate new byte array to store modified CRO - SHA256 mySHA = SHA256.Create(); - - // Compute the hashes - byte[] hashH = mySHA.ComputeHash(CRO, 0x80, 0x100); - byte[] hash0 = mySHA.ComputeHash(CRO, BitConverter.ToInt32(CRO, 0xB0), BitConverter.ToInt32(CRO, 0xB4)); - byte[] hash1 = mySHA.ComputeHash(CRO, BitConverter.ToInt32(CRO, 0xC0), BitConverter.ToInt32(CRO, 0xB8) - BitConverter.ToInt32(CRO, 0xC0)); - byte[] hash2 = mySHA.ComputeHash(CRO, BitConverter.ToInt32(CRO, 0xB8), BitConverter.ToInt32(CRO, 0xBC)); - - // Set the hashes - Array.Copy(hashH, 0, CRO, 0x00, 0x20); - Array.Copy(hash0, 0, CRO, 0x20, 0x20); - Array.Copy(hash1, 0, CRO, 0x40, 0x20); - Array.Copy(hash2, 0, CRO, 0x60, 0x20); - - // Return the fixed overall hash - return mySHA.ComputeHash(CRO, 0, 0x80); + UpdateTB(TB_Progress, "CRR has not been updated."); } + return true; + } + + internal static byte[] HashCRO(ref byte[] CRO) + { + // Allocate new byte array to store modified CRO + + // Compute the hashes + byte[] hashH = SHA256.HashData(CRO.AsSpan(0x80, 0x100)); + byte[] hash0 = SHA256.HashData(CRO.AsSpan(BitConverter.ToInt32(CRO, 0xB0), BitConverter.ToInt32(CRO, 0xB4))); + byte[] hash1 = SHA256.HashData(CRO.AsSpan(BitConverter.ToInt32(CRO, 0xC0), BitConverter.ToInt32(CRO, 0xB8) - BitConverter.ToInt32(CRO, 0xC0))); + byte[] hash2 = SHA256.HashData(CRO.AsSpan(BitConverter.ToInt32(CRO, 0xB8), BitConverter.ToInt32(CRO, 0xBC))); + + // Set the hashes + Array.Copy(hashH, 0, CRO, 0x00, 0x20); + Array.Copy(hash0, 0, CRO, 0x20, 0x20); + Array.Copy(hash1, 0, CRO, 0x40, 0x20); + Array.Copy(hash2, 0, CRO, 0x60, 0x20); + + // Return the fixed overall hash + return SHA256.HashData(CRO.AsSpan(0, 0x80)); + } + private readonly byte[] Data = (byte[])data.Clone(); - public CRO(byte[] data) + public byte[] HashSHA2 + { + get { - Data = (byte[])data.Clone(); + byte[] hashData = new byte[0x80]; + Array.Copy(Data, hashData, 0x80); + return hashData; } - private readonly byte[] Data; - private byte[] sha2Hash + set { - get - { - byte[] hashData = new byte[0x80]; - Array.Copy(Data, hashData, 0x80); - return hashData; - } - set - { - if (value.Length != 0x80) - throw new ArgumentOutOfRangeException(value.Length.ToString("X5")); - Array.Copy(value, Data, value.Length); - } + if (value.Length != 0x80) + throw new ArgumentOutOfRangeException(value.Length.ToString("X5")); + Array.Copy(value, Data, value.Length); } - private string Magic => new string(Data.Skip(0x80).Take(4).Select(c => (char)c).ToArray()); } -} + + public string Magic => new(Data.Skip(0x80).Take(4).Select(c => (char)c).ToArray()); +} \ No newline at end of file diff --git a/pk3DS.Core/CTR/CTR.cs b/pk3DS.Core/CTR/CTR.cs index bbf85bbc23..75db11303e 100644 --- a/pk3DS.Core/CTR/CTR.cs +++ b/pk3DS.Core/CTR/CTR.cs @@ -1,5 +1,4 @@ using System; -using System.Collections.Generic; using System.IO; using System.Linq; using System.Security.Cryptography; @@ -7,351 +6,370 @@ using System.Windows.Forms; using pk3DS.Core.Properties; -namespace pk3DS.Core.CTR +namespace pk3DS.Core.CTR; + +public static class CTRUtil { - public class CTRUtil + internal const uint MEDIA_UNIT_SIZE = 0x200; + + // Main wrapper that assembles the ROM based on the following specifications: + public static bool BuildROM(bool Card2, string LOGO_NAME, + string EXEFS_PATH, string ROMFS_PATH, string EXHEADER_PATH, + string SERIAL_TEXT, string SAVE_PATH, + bool trimmed = false, ProgressBar PB_Show = null, RichTextBox TB_Progress = null) { - internal const uint MEDIA_UNIT_SIZE = 0x200; + PB_Show ??= new ProgressBar(); + TB_Progress ??= new RichTextBox(); - // Main wrapper that assembles the ROM based on the following specifications: - public static bool buildROM(bool Card2, string LOGO_NAME, - string EXEFS_PATH, string ROMFS_PATH, string EXHEADER_PATH, - string SERIAL_TEXT, string SAVE_PATH, - ProgressBar PB_Show = null, RichTextBox TB_Progress = null) + // Sanity check the input files. + if (! + ((File.Exists(EXEFS_PATH) || Directory.Exists(EXEFS_PATH)) + && (File.Exists(ROMFS_PATH) || Directory.Exists(ROMFS_PATH)) + && File.Exists(EXHEADER_PATH))) { - PB_Show = PB_Show ?? new ProgressBar(); - TB_Progress = TB_Progress ?? new RichTextBox(); + return false; + } - // Sanity check the input files. - if (! - ((File.Exists(EXEFS_PATH) || Directory.Exists(EXEFS_PATH)) - && (File.Exists(ROMFS_PATH) || Directory.Exists(ROMFS_PATH)) - && File.Exists(EXHEADER_PATH))) - return false; + // If ExeFS and RomFS are not built, build. + if (!File.Exists(EXEFS_PATH) && Directory.Exists(EXEFS_PATH)) + ExeFS.PackExeFS(Directory.GetFiles(EXEFS_PATH), EXEFS_PATH = "exefs.bin"); + if (!File.Exists(ROMFS_PATH) && Directory.Exists(ROMFS_PATH)) + RomFS.BuildRomFS(ROMFS_PATH, ROMFS_PATH = "romfs.bin", TB_Progress, PB_Show); - // If ExeFS and RomFS are not built, build. - if (!File.Exists(EXEFS_PATH) && Directory.Exists(EXEFS_PATH)) - ExeFS.set(Directory.GetFiles(EXEFS_PATH), EXEFS_PATH = "exefs.bin"); - if (!File.Exists(ROMFS_PATH) && Directory.Exists(ROMFS_PATH)) - RomFS.BuildRomFS(ROMFS_PATH, ROMFS_PATH = "romfs.bin", TB_Progress, PB_Show); + NCCH NCCH = SetNCCH(EXEFS_PATH, ROMFS_PATH, EXHEADER_PATH, SERIAL_TEXT, LOGO_NAME, TB_Progress); + NCSD NCSD = SetNCSD(NCCH, Card2, TB_Progress); + bool success = WriteROM(NCSD, SAVE_PATH, trimmed, PB_Show, TB_Progress); + return success; + } - NCCH NCCH = setNCCH(EXEFS_PATH, ROMFS_PATH, EXHEADER_PATH, SERIAL_TEXT, LOGO_NAME, PB_Show, TB_Progress); - NCSD NCSD = setNCSD(NCCH, Card2, PB_Show, TB_Progress); - bool success = writeROM(NCSD, SAVE_PATH, PB_Show, TB_Progress); - return success; - } + // Sub methods that drive the operation + internal static NCCH SetNCCH(string EXEFS_PATH, string ROMFS_PATH, string EXHEADER_PATH, string TB_Serial, string LOGO_NAME, RichTextBox TB_Progress = null) + { + TB_Progress ??= new RichTextBox(); - // Sub methods that drive the operation - internal static NCCH setNCCH(string EXEFS_PATH, string ROMFS_PATH, string EXHEADER_PATH, string TB_Serial, string LOGO_NAME, - ProgressBar PB_Show = null, RichTextBox TB_Progress = null) + UpdateTB(TB_Progress, "Creating NCCH..."); + UpdateTB(TB_Progress, "Adding Exheader..."); + var NCCH = new NCCH { - PB_Show = PB_Show ?? new ProgressBar(); - TB_Progress = TB_Progress ?? new RichTextBox(); + Exheader = new Exheader(EXHEADER_PATH), + plainregion = [], + }; + if (NCCH.Exheader.IsSupported()) + { + UpdateTB(TB_Progress, "Detected Pokemon Game. Adding Plain Region..."); + if (NCCH.Exheader.IsXY()) + NCCH.plainregion = Resources.XY; + else if (NCCH.Exheader.IsORAS()) + NCCH.plainregion = Resources.ORAS; + else if (NCCH.Exheader.IsSM()) + NCCH.plainregion = Resources.SuMo; + else if (NCCH.Exheader.IsUSUM()) + NCCH.plainregion = Resources.USUM; + } + UpdateTB(TB_Progress, "Adding ExeFS..."); + NCCH.ExeFS = new ExeFS(EXEFS_PATH); + UpdateTB(TB_Progress, "Adding RomFS..."); + NCCH.RomFS = new RomFS(ROMFS_PATH); - updateTB(TB_Progress, "Creating NCCH..."); - updateTB(TB_Progress, "Adding Exheader..."); - NCCH NCCH = new NCCH - { - exheader = new Exheader(EXHEADER_PATH), - plainregion = new byte[0] - }; - if (NCCH.exheader.isPokemon()) - { - updateTB(TB_Progress, "Detected Pokemon Game. Adding Plain Region..."); - if (NCCH.exheader.isXY()) - NCCH.plainregion = (byte[])Resources.ResourceManager.GetObject("XY"); - else if (NCCH.exheader.isORAS()) - NCCH.plainregion = (byte[])Resources.ResourceManager.GetObject("ORAS"); - } - updateTB(TB_Progress, "Adding ExeFS..."); - NCCH.exefs = new ExeFS(EXEFS_PATH); - updateTB(TB_Progress, "Adding RomFS..."); - NCCH.romfs = new RomFS(ROMFS_PATH); + UpdateTB(TB_Progress, "Adding Logo..."); + NCCH.logo = (byte[])Resources.ResourceManager.GetObject(LOGO_NAME); + UpdateTB(TB_Progress, "Assembling NCCH Header..."); + ulong Len = 0x200; //NCCH Signature + NCCH Header + NCCH.Header = new NCCH.NCCHHeader { Signature = new byte[0x100], Magic = 0x4843434E }; + NCCH.Header.TitleId = NCCH.Header.ProgramId = NCCH.Exheader.TitleID; + NCCH.Header.MakerCode = 0x3130; //01 + NCCH.Header.FormatVersion = 0x2; //Default + NCCH.Header.LogoHash = SHA256.HashData(NCCH.logo); + NCCH.Header.ProductCode = Encoding.ASCII.GetBytes(TB_Serial); + Array.Resize(ref NCCH.Header.ProductCode, 0x10); + NCCH.Header.ExheaderHash = NCCH.Exheader.GetSuperBlockHash(); + NCCH.Header.ExheaderSize = (uint)NCCH.Exheader.Data.Length; + Len += NCCH.Header.ExheaderSize + (uint)NCCH.Exheader.AccessDescriptor.Length; + NCCH.Header.Flags = new byte[0x8]; + //FLAGS + NCCH.Header.Flags[3] = 0; // Crypto: 0 = <7.x, 1=7.x; + NCCH.Header.Flags[4] = 1; // Content Platform: 1 = CTR; + NCCH.Header.Flags[5] = 0x3; // Content Type Bitflags: 1=Data, 2=Executable, 4=SysUpdate, 8=Manual, 0x10=Trial; + NCCH.Header.Flags[6] = 0; // MEDIA_UNIT_SIZE = 0x200*Math.Pow(2, Content.header.Flags[6]); + NCCH.Header.Flags[7] = 1; // FixedCrypto = 1, NoMountRomfs = 2; NoCrypto=4; + NCCH.Header.LogoOffset = (uint)(Len / MEDIA_UNIT_SIZE); + NCCH.Header.LogoSize = (uint)(NCCH.logo.Length / MEDIA_UNIT_SIZE); + Len += (uint)NCCH.logo.Length; + NCCH.Header.PlainRegionOffset = (uint)(NCCH.plainregion.Length > 0 ? Len / MEDIA_UNIT_SIZE : 0); + NCCH.Header.PlainRegionSize = (uint)NCCH.plainregion.Length / MEDIA_UNIT_SIZE; + Len += (uint)NCCH.plainregion.Length; + NCCH.Header.ExefsOffset = (uint)(Len / MEDIA_UNIT_SIZE); + NCCH.Header.ExefsSize = (uint)(NCCH.ExeFS.Data.Length / MEDIA_UNIT_SIZE); + NCCH.Header.ExefsSuperBlockSize = 0x200 / MEDIA_UNIT_SIZE; //Static 0x200 for exefs superblock + Len += (uint)NCCH.ExeFS.Data.Length; + Len = (uint)Align(Len, 0x1000); //Romfs Start is aligned to 0x1000 + NCCH.Header.RomfsOffset = (uint)(Len / MEDIA_UNIT_SIZE); + NCCH.Header.RomfsSize = (uint)(new FileInfo(NCCH.RomFS.FileName).Length / MEDIA_UNIT_SIZE); + NCCH.Header.RomfsSuperBlockSize = NCCH.RomFS.SuperBlockLen / MEDIA_UNIT_SIZE; + Len += NCCH.Header.RomfsSize * MEDIA_UNIT_SIZE; + NCCH.Header.ExefsHash = NCCH.ExeFS.SuperBlockHash; + NCCH.Header.RomfsHash = NCCH.RomFS.SuperBlockHash; + NCCH.Header.Size = (uint)(Len / MEDIA_UNIT_SIZE); + //Build the Header byte[]. + UpdateTB(TB_Progress, "Building NCCH Header..."); + NCCH.Header.BuildHeader(); - updateTB(TB_Progress, "Adding Logo..."); - NCCH.logo = (byte[])Resources.ResourceManager.GetObject(LOGO_NAME); - updateTB(TB_Progress, "Assembling NCCH Header..."); - ulong Len = 0x200; //NCCH Signature + NCCH Header - NCCH.header = new NCCH.Header { Signature = new byte[0x100], Magic = 0x4843434E }; - NCCH.header.TitleId = NCCH.header.ProgramId = NCCH.exheader.TitleID; - NCCH.header.MakerCode = 0x3130; //01 - NCCH.header.FormatVersion = 0x2; //Default - NCCH.header.LogoHash = new SHA256Managed().ComputeHash(NCCH.logo); - NCCH.header.ProductCode = Encoding.ASCII.GetBytes(TB_Serial); - Array.Resize(ref NCCH.header.ProductCode, 0x10); - NCCH.header.ExheaderHash = NCCH.exheader.GetSuperBlockHash(); - NCCH.header.ExheaderSize = (uint)NCCH.exheader.Data.Length; - Len += NCCH.header.ExheaderSize + (uint)NCCH.exheader.AccessDescriptor.Length; - NCCH.header.Flags = new byte[0x8]; - //FLAGS - NCCH.header.Flags[3] = 0; // Crypto: 0 = <7.x, 1=7.x; - NCCH.header.Flags[4] = 1; // Content Platform: 1 = CTR; - NCCH.header.Flags[5] = 0x3; // Content Type Bitflags: 1=Data, 2=Executable, 4=SysUpdate, 8=Manual, 0x10=Trial; - NCCH.header.Flags[6] = 0; // MEDIA_UNIT_SIZE = 0x200*Math.Pow(2, Content.header.Flags[6]); - NCCH.header.Flags[7] = 1; // FixedCrypto = 1, NoMountRomfs = 2; NoCrypto=4; - NCCH.header.LogoOffset = (uint)(Len / MEDIA_UNIT_SIZE); - NCCH.header.LogoSize = (uint)(NCCH.logo.Length / MEDIA_UNIT_SIZE); - Len += (uint)NCCH.logo.Length; - NCCH.header.PlainRegionOffset = (uint)(NCCH.plainregion.Length > 0 ? Len / MEDIA_UNIT_SIZE : 0); - NCCH.header.PlainRegionSize = (uint)NCCH.plainregion.Length / MEDIA_UNIT_SIZE; - Len += (uint)NCCH.plainregion.Length; - NCCH.header.ExefsOffset = (uint)(Len / MEDIA_UNIT_SIZE); - NCCH.header.ExefsSize = (uint)(NCCH.exefs.Data.Length / MEDIA_UNIT_SIZE); - NCCH.header.ExefsSuperBlockSize = 0x200 / MEDIA_UNIT_SIZE; //Static 0x200 for exefs superblock - Len += (uint)NCCH.exefs.Data.Length; - Len = (uint)Align(Len, 0x1000); //Romfs Start is aligned to 0x1000 - NCCH.header.RomfsOffset = (uint)(Len / MEDIA_UNIT_SIZE); - NCCH.header.RomfsSize = (uint)(new FileInfo(NCCH.romfs.FileName).Length / MEDIA_UNIT_SIZE); - NCCH.header.RomfsSuperBlockSize = NCCH.romfs.SuperBlockLen / MEDIA_UNIT_SIZE; - Len += NCCH.header.RomfsSize * MEDIA_UNIT_SIZE; - NCCH.header.ExefsHash = NCCH.exefs.SuperBlockHash; - NCCH.header.RomfsHash = NCCH.romfs.SuperBlockHash; - NCCH.header.Size = (uint)(Len / MEDIA_UNIT_SIZE); - //Build the Header byte[]. - updateTB(TB_Progress, "Building NCCH Header..."); - NCCH.header.BuildHeader(); + return NCCH; + } - return NCCH; + internal static NCSD SetNCSD(NCCH NCCH, bool Card2, RichTextBox TB_Progress = null) + { + TB_Progress ??= new RichTextBox(); + UpdateTB(TB_Progress, "Building NCSD Header..."); + var NCSD = new NCSD + { + NCCH_Array = [NCCH], + Card2 = Card2, + Header = new NCSD.NCSDHeader { Signature = new byte[0x100], Magic = 0x4453434E }, + }; + ulong Length = 0x80 * 0x100000; // 128 MB + while (Length <= (NCCH.Header.Size * MEDIA_UNIT_SIZE) + 0x400000) //Extra 4 MB for potential save data + { + Length *= 2; } - internal static NCSD setNCSD(NCCH NCCH, bool Card2, - ProgressBar PB_Show = null, RichTextBox TB_Progress = null) + NCSD.Header.MediaSize = (uint)(Length / MEDIA_UNIT_SIZE); + NCSD.Header.TitleId = NCCH.Exheader.TitleID; + NCSD.Header.OffsetSizeTable = new NCSD.NCCH_Meta[8]; + ulong OSOfs = 0x4000; + for (int i = 0; i < NCSD.Header.OffsetSizeTable.Length; i++) { - PB_Show = PB_Show ?? new ProgressBar(); - TB_Progress = TB_Progress ?? new RichTextBox(); - updateTB(TB_Progress, "Building NCSD Header..."); - NCSD NCSD = new NCSD - { - NCCH_Array = new List {NCCH}, - Card2 = Card2, - header = new NCSD.Header {Signature = new byte[0x100], Magic = 0x4453434E} - }; - ulong Length = 0x80 * 0x100000; // 128 MB - while (Length <= NCCH.header.Size * MEDIA_UNIT_SIZE + 0x400000) //Extra 4 MB for potential save data + var ncchm = new NCSD.NCCH_Meta(); + if (i < NCSD.NCCH_Array.Count) { - Length *= 2; + ncchm.Offset = (uint)(OSOfs / MEDIA_UNIT_SIZE); + ncchm.Size = NCSD.NCCH_Array[i].Header.Size; } - NCSD.header.MediaSize = (uint)(Length / MEDIA_UNIT_SIZE); - NCSD.header.TitleId = NCCH.exheader.TitleID; - NCSD.header.OffsetSizeTable = new NCSD.NCCH_Meta[8]; - ulong OSOfs = 0x4000; - for (int i = 0; i < NCSD.header.OffsetSizeTable.Length; i++) - { - NCSD.NCCH_Meta ncchm = new NCSD.NCCH_Meta(); - if (i < NCSD.NCCH_Array.Count) - { - ncchm.Offset = (uint)(OSOfs / MEDIA_UNIT_SIZE); - ncchm.Size = NCSD.NCCH_Array[i].header.Size; - } - else - { - ncchm.Offset = 0; - ncchm.Size = 0; - } - NCSD.header.OffsetSizeTable[i] = ncchm; - OSOfs += ncchm.Size * MEDIA_UNIT_SIZE; - } - NCSD.header.flags = new byte[0x8]; - NCSD.header.flags[0] = 0; // 0-255 seconds of waiting for save writing. - NCSD.header.flags[3] = (byte)(NCSD.Card2 ? 2 : 1); // Media Card Device: 1 = NOR Flash, 2 = None, 3 = BT - NCSD.header.flags[4] = 1; // Media Platform Index: 1 = CTR - NCSD.header.flags[5] = (byte)(NCSD.Card2 ? 2 : 1); // Media Type Index: 0 = Inner Device, 1 = Card1, 2 = Card2, 3 = Extended Device - NCSD.header.flags[6] = 0; // Media Unit Size. Same as NCCH. - NCSD.header.flags[7] = 0; // Old Media Card Device. - NCSD.header.NCCHIdTable = new ulong[8]; - for (int i = 0; i < NCSD.NCCH_Array.Count; i++) + else { - NCSD.header.NCCHIdTable[i] = NCSD.NCCH_Array[i].header.TitleId; + ncchm.Offset = 0; + ncchm.Size = 0; } - NCSD.cardinfoheader = new NCSD.CardInfoHeader + NCSD.Header.OffsetSizeTable[i] = ncchm; + OSOfs += ncchm.Size * MEDIA_UNIT_SIZE; + } + NCSD.Header.flags = new byte[0x8]; + NCSD.Header.flags[0] = 0; // 0-255 seconds of waiting for save writing. + NCSD.Header.flags[3] = NCSD.Card2 ? (byte)2 : (byte)1; // Media Card Device: 1 = NOR Flash, 2 = None, 3 = BT + NCSD.Header.flags[4] = 1; // Media Platform Index: 1 = CTR + NCSD.Header.flags[5] = NCSD.Card2 ? (byte)2 : (byte)1; // Media Type Index: 0 = Inner Device, 1 = Card1, 2 = Card2, 3 = Extended Device + NCSD.Header.flags[6] = 0; // Media Unit Size. Same as NCCH. + NCSD.Header.flags[7] = 0; // Old Media Card Device. + NCSD.Header.NCCHIdTable = new ulong[8]; + for (int i = 0; i < NCSD.NCCH_Array.Count; i++) + { + NCSD.Header.NCCHIdTable[i] = NCSD.NCCH_Array[i].Header.TitleId; + } + NCSD.cardinfoheader = new NCSD.CardInfoHeader + { + WritableAddress = (uint)NCSD.GetWritableAddress(), + CardInfoBitmask = 0, + CIN = new NCSD.CardInfoHeader.CardInfoNotes { - WritableAddress = (uint)NCSD.GetWritableAddress(), - CardInfoBitmask = 0, - CIN = new NCSD.CardInfoHeader.CardInfoNotes - { - Reserved0 = new byte[0xF8], - MediaSizeUsed = OSOfs, - Reserved1 = 0, - Unknown = 0, - Reserved2 = new byte[0xC], - CVerTitleId = 0, - CVerTitleVersion = 0, - Reserved3 = new byte[0xCD6] - }, - NCCH0TitleId = NCSD.NCCH_Array[0].header.TitleId, - Reserved0 = 0, - InitialData = new byte[0x30] - }; - RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider(); - byte[] randbuffer = new byte[0x2C]; - rng.GetBytes(randbuffer); - Array.Copy(randbuffer, NCSD.cardinfoheader.InitialData, randbuffer.Length); - NCSD.cardinfoheader.Reserved1 = new byte[0xC0]; - NCSD.cardinfoheader.NCCH0Header = new byte[0x100]; - Array.Copy(NCSD.NCCH_Array[0].header.Data, 0x100, NCSD.cardinfoheader.NCCH0Header, 0, 0x100); + Reserved0 = new byte[0xF8], + MediaSizeUsed = OSOfs, + Reserved1 = 0, + Unknown = 0, + Reserved2 = new byte[0xC], + CVerTitleId = 0, + CVerTitleVersion = 0, + Reserved3 = new byte[0xCD6], + }, + NCCH0TitleId = NCSD.NCCH_Array[0].Header.TitleId, + Reserved0 = 0, + InitialData = new byte[0x30], + }; + byte[] randbuffer = new byte[0x2C]; + Random.Shared.NextBytes(randbuffer); + Array.Copy(randbuffer, NCSD.cardinfoheader.InitialData, randbuffer.Length); + NCSD.cardinfoheader.Reserved1 = new byte[0xC0]; + NCSD.cardinfoheader.NCCH0Header = new byte[0x100]; + Array.Copy(NCSD.NCCH_Array[0].Header.Data, 0x100, NCSD.cardinfoheader.NCCH0Header, 0, 0x100); - NCSD.BuildHeader(); + NCSD.BuildHeader(); - //NCSD is Initialized - return NCSD; - } - internal static bool writeROM(NCSD NCSD, string SAVE_PATH, - ProgressBar PB_Show = null, RichTextBox TB_Progress = null) + //NCSD is Initialized + return NCSD; + } + + internal static bool WriteROM(NCSD NCSD, string SAVE_PATH, bool trimmed = false, + ProgressBar PB_Show = null, RichTextBox TB_Progress = null) + { + PB_Show ??= new ProgressBar(); + TB_Progress ??= new RichTextBox(); + using (var OutFileStream = new FileStream(SAVE_PATH, FileMode.Create)) { - PB_Show = PB_Show ?? new ProgressBar(); - TB_Progress = TB_Progress ?? new RichTextBox(); - using (FileStream OutFileStream = new FileStream(SAVE_PATH, FileMode.Create)) + UpdateTB(TB_Progress, "Writing NCSD Header..."); + OutFileStream.Write(NCSD.Data, 0, NCSD.Data.Length); + UpdateTB(TB_Progress, "Writing NCCH..."); + OutFileStream.Write(NCSD.NCCH_Array[0].Header.Data, 0, NCSD.NCCH_Array[0].Header.Data.Length); //Write NCCH header + //AES time. + byte[] key = new byte[0x10]; //Fixed-Crypto key is all zero. + for (int i = 0; i < 3; i++) { - updateTB(TB_Progress, "Writing NCSD Header..."); - OutFileStream.Write(NCSD.Data, 0, NCSD.Data.Length); - updateTB(TB_Progress, "Writing NCCH..."); - OutFileStream.Write(NCSD.NCCH_Array[0].header.Data, 0, NCSD.NCCH_Array[0].header.Data.Length); //Write NCCH header - //AES time. - byte[] key = new byte[0x10]; //Fixed-Crypto key is all zero. - for (int i = 0; i < 3; i++) + var aesctr = new AesCtr(key, NCSD.NCCH_Array[0].Header.ProgramId, (ulong)(i + 1) << 56); //CTR is ProgramID, section id<<88 + switch (i) { - AesCtr aesctr = new AesCtr(key, NCSD.NCCH_Array[0].header.ProgramId, (ulong)(i + 1) << 56); //CTR is ProgramID, section id<<88 - switch (i) - { - case 0: //Exheader + AccessDesc - updateTB(TB_Progress, "Writing Exheader..."); - byte[] inEncExheader = new byte[NCSD.NCCH_Array[0].exheader.Data.Length + NCSD.NCCH_Array[0].exheader.AccessDescriptor.Length]; - byte[] outEncExheader = new byte[NCSD.NCCH_Array[0].exheader.Data.Length + NCSD.NCCH_Array[0].exheader.AccessDescriptor.Length]; - Array.Copy(NCSD.NCCH_Array[0].exheader.Data, inEncExheader, NCSD.NCCH_Array[0].exheader.Data.Length); - Array.Copy(NCSD.NCCH_Array[0].exheader.AccessDescriptor, 0, inEncExheader, NCSD.NCCH_Array[0].exheader.Data.Length, NCSD.NCCH_Array[0].exheader.AccessDescriptor.Length); - aesctr.TransformBlock(inEncExheader, 0, inEncExheader.Length, outEncExheader, 0); - OutFileStream.Write(outEncExheader, 0, outEncExheader.Length); // Write Exheader - break; - case 1: //Exefs - updateTB(TB_Progress, "Writing Exefs..."); - OutFileStream.Seek(0x4000 + NCSD.NCCH_Array[0].header.ExefsOffset * MEDIA_UNIT_SIZE, SeekOrigin.Begin); - byte[] OutExefs = new byte[NCSD.NCCH_Array[0].exefs.Data.Length]; - aesctr.TransformBlock(NCSD.NCCH_Array[0].exefs.Data, 0, NCSD.NCCH_Array[0].exefs.Data.Length, OutExefs, 0); - OutFileStream.Write(OutExefs, 0, OutExefs.Length); - break; - case 2: //Romfs - updateTB(TB_Progress, "Writing Romfs..."); - OutFileStream.Seek(0x4000 + NCSD.NCCH_Array[0].header.RomfsOffset * MEDIA_UNIT_SIZE, SeekOrigin.Begin); - using (FileStream InFileStream = new FileStream(NCSD.NCCH_Array[0].romfs.FileName, FileMode.Open, FileAccess.Read)) + case 0: //Exheader + AccessDesc + UpdateTB(TB_Progress, "Writing Exheader..."); + byte[] inEncExheader = new byte[NCSD.NCCH_Array[0].Exheader.Data.Length + NCSD.NCCH_Array[0].Exheader.AccessDescriptor.Length]; + byte[] outEncExheader = new byte[NCSD.NCCH_Array[0].Exheader.Data.Length + NCSD.NCCH_Array[0].Exheader.AccessDescriptor.Length]; + Array.Copy(NCSD.NCCH_Array[0].Exheader.Data, inEncExheader, NCSD.NCCH_Array[0].Exheader.Data.Length); + Array.Copy(NCSD.NCCH_Array[0].Exheader.AccessDescriptor, 0, inEncExheader, NCSD.NCCH_Array[0].Exheader.Data.Length, NCSD.NCCH_Array[0].Exheader.AccessDescriptor.Length); + aesctr.TransformBlock(inEncExheader, 0, inEncExheader.Length, outEncExheader, 0); + OutFileStream.Write(outEncExheader, 0, outEncExheader.Length); // Write Exheader + break; + case 1: //Exefs + UpdateTB(TB_Progress, "Writing Exefs..."); + OutFileStream.Seek(0x4000 + (NCSD.NCCH_Array[0].Header.ExefsOffset * MEDIA_UNIT_SIZE), SeekOrigin.Begin); + byte[] OutExefs = new byte[NCSD.NCCH_Array[0].ExeFS.Data.Length]; + aesctr.TransformBlock(NCSD.NCCH_Array[0].ExeFS.Data, 0, NCSD.NCCH_Array[0].ExeFS.Data.Length, OutExefs, 0); + OutFileStream.Write(OutExefs, 0, OutExefs.Length); + break; + case 2: //Romfs + UpdateTB(TB_Progress, "Writing Romfs..."); + OutFileStream.Seek(0x4000 + (NCSD.NCCH_Array[0].Header.RomfsOffset * MEDIA_UNIT_SIZE), SeekOrigin.Begin); + using (var InFileStream = new FileStream(NCSD.NCCH_Array[0].RomFS.FileName, FileMode.Open, FileAccess.Read)) + { + uint BUFFER_SIZE; + ulong RomfsLen = NCSD.NCCH_Array[0].Header.RomfsSize * MEDIA_UNIT_SIZE; + PB_Show.Invoke(() => + { + PB_Show.Minimum = 0; + PB_Show.Maximum = (int)(RomfsLen / 0x400000); + PB_Show.Value = 0; + PB_Show.Step = 1; + }); + for (ulong j = 0; j < RomfsLen; j += BUFFER_SIZE) { - uint BUFFER_SIZE; - ulong RomfsLen = NCSD.NCCH_Array[0].header.RomfsSize * MEDIA_UNIT_SIZE; - PB_Show.Invoke((Action)(() => - { - PB_Show.Minimum = 0; - PB_Show.Maximum = (int)(RomfsLen / 0x400000); - PB_Show.Value = 0; - PB_Show.Step = 1; - })); - for (ulong j = 0; j < RomfsLen; j += BUFFER_SIZE) - { - BUFFER_SIZE = RomfsLen - j > 0x400000 ? 0x400000 : (uint)(RomfsLen - j); - byte[] buf = new byte[BUFFER_SIZE]; - byte[] outbuf = new byte[BUFFER_SIZE]; - InFileStream.Read(buf, 0, (int)BUFFER_SIZE); - aesctr.TransformBlock(buf, 0, (int)BUFFER_SIZE, outbuf, 0); - OutFileStream.Write(outbuf, 0, (int)BUFFER_SIZE); - PB_Show.Invoke((Action)PB_Show.PerformStep); - } + BUFFER_SIZE = RomfsLen - j > 0x400000 ? 0x400000 : (uint)(RomfsLen - j); + byte[] buf = new byte[BUFFER_SIZE]; + byte[] outbuf = new byte[BUFFER_SIZE]; + InFileStream.Read(buf, 0, (int)BUFFER_SIZE); + aesctr.TransformBlock(buf, 0, (int)BUFFER_SIZE, outbuf, 0); + OutFileStream.Write(outbuf, 0, (int)BUFFER_SIZE); + PB_Show.Invoke(PB_Show.PerformStep); } - break; - } - } - updateTB(TB_Progress, "Writing Logo..."); - OutFileStream.Seek(0x4000 + NCSD.NCCH_Array[0].header.LogoOffset * MEDIA_UNIT_SIZE, SeekOrigin.Begin); - OutFileStream.Write(NCSD.NCCH_Array[0].logo, 0, NCSD.NCCH_Array[0].logo.Length); - if (NCSD.NCCH_Array[0].plainregion.Length > 0) - { - updateTB(TB_Progress, "Writing Plain Region..."); - OutFileStream.Seek(0x4000 + NCSD.NCCH_Array[0].header.PlainRegionOffset * MEDIA_UNIT_SIZE, SeekOrigin.Begin); - OutFileStream.Write(NCSD.NCCH_Array[0].plainregion, 0, NCSD.NCCH_Array[0].plainregion.Length); + } + break; } + } + UpdateTB(TB_Progress, "Writing Logo..."); + OutFileStream.Seek(0x4000 + (NCSD.NCCH_Array[0].Header.LogoOffset * MEDIA_UNIT_SIZE), SeekOrigin.Begin); + OutFileStream.Write(NCSD.NCCH_Array[0].logo, 0, NCSD.NCCH_Array[0].logo.Length); + if (NCSD.NCCH_Array[0].plainregion.Length > 0) + { + UpdateTB(TB_Progress, "Writing Plain Region..."); + OutFileStream.Seek(0x4000 + (NCSD.NCCH_Array[0].Header.PlainRegionOffset * MEDIA_UNIT_SIZE), SeekOrigin.Begin); + OutFileStream.Write(NCSD.NCCH_Array[0].plainregion, 0, NCSD.NCCH_Array[0].plainregion.Length); + } - //NCSD Padding - OutFileStream.Seek(NCSD.header.OffsetSizeTable[NCSD.NCCH_Array.Count - 1].Offset * MEDIA_UNIT_SIZE + NCSD.header.OffsetSizeTable[NCSD.NCCH_Array.Count - 1].Size * MEDIA_UNIT_SIZE, SeekOrigin.Begin); - ulong TotalLen = NCSD.header.MediaSize * MEDIA_UNIT_SIZE; + //NCSD Padding + if (!trimmed) + { + OutFileStream.Seek((NCSD.Header.OffsetSizeTable[NCSD.NCCH_Array.Count - 1].Offset * MEDIA_UNIT_SIZE) + (NCSD.Header.OffsetSizeTable[NCSD.NCCH_Array.Count - 1].Size * MEDIA_UNIT_SIZE), SeekOrigin.Begin); + ulong TotalLen = NCSD.Header.MediaSize * MEDIA_UNIT_SIZE; byte[] Buffer = Enumerable.Repeat((byte)0xFF, 0x400000).ToArray(); - updateTB(TB_Progress, "Writing NCSD Padding..."); + UpdateTB(TB_Progress, "Writing NCSD Padding..."); while ((ulong)OutFileStream.Position < TotalLen) { int BUFFER_LEN = TotalLen - (ulong)OutFileStream.Position < 0x400000 ? (int)(TotalLen - (ulong)OutFileStream.Position) : 0x400000; OutFileStream.Write(Buffer, 0, BUFFER_LEN); } } + } - //Delete Temporary Romfs File - if (NCSD.NCCH_Array[0].romfs.isTempFile) - File.Delete(NCSD.NCCH_Array[0].romfs.FileName); + //Delete Temporary Romfs File + if (NCSD.NCCH_Array[0].RomFS.isTempFile) + File.Delete(NCSD.NCCH_Array[0].RomFS.FileName); - updateTB(TB_Progress, "Done!"); - return true; - } + UpdateTB(TB_Progress, "Done!"); + return true; + } - // Utility - internal static bool isValid(string exeFS, string romFS, string exeheader, string path, string serial, bool Card2) + // Utility + internal static bool IsValid(string exeFS, string romFS, string exeheader, string path, string serial, bool Card2) + { + bool isSerialValid = true; + if (serial.Length == 10) { - bool isSerialValid = true; - if (serial.Length == 10) + string[] subs = serial.Split('-'); + if (subs.Length != 3) + { + isSerialValid = false; + } + else { - string[] subs = serial.Split('-'); - if (subs.Length != 3) + if (subs[0].Length != 3 || subs[1].Length != 1 || subs[2].Length != 4) + { + isSerialValid = false; + } + else if (subs[0] != "CTR" && subs[0] != "KTR") + { isSerialValid = false; + } + else if (subs[1] != "P" && subs[1] != "N" && subs[2] != "U") + { + isSerialValid = false; + } else { - if (subs[0].Length != 3 || subs[1].Length != 1 || subs[2].Length != 4) + if (subs[2].Any(c => !char.IsLetterOrDigit(c))) isSerialValid = false; - else if (subs[0] != "CTR" && subs[0] != "KTR") - isSerialValid = false; - else if (subs[1] != "P" && subs[1] != "N" && subs[2] != "U") - isSerialValid = false; - else - { - foreach (char c in subs[2].Where(c => !Char.IsLetterOrDigit(c))) - isSerialValid = false; - } } } - else - { - isSerialValid = false; - } - if (exeFS == string.Empty - || romFS == string.Empty - || exeheader == string.Empty - || path == string.Empty - || !isSerialValid) - return false; - - Exheader exh = new Exheader(exeheader); - return !exh.isPokemon() || Card2; } - internal static void updateTB(RichTextBox RTB, string progress) + else + { + isSerialValid = false; + } + if (string.IsNullOrEmpty(exeFS) + || string.IsNullOrEmpty(romFS) + || string.IsNullOrEmpty(exeheader) + || string.IsNullOrEmpty(path) + || !isSerialValid) + { + return false; + } + + var exh = new Exheader(exeheader); + return !exh.IsSupported() || Card2; + } + + internal static void UpdateTB(RichTextBox RTB, string progress) + { + try { - try + if (RTB.InvokeRequired) { - if (RTB.InvokeRequired) - RTB.Invoke((MethodInvoker)delegate - { - RTB.AppendText(Environment.NewLine + progress); - RTB.SelectionStart = RTB.Text.Length; - RTB.ScrollToCaret(); - }); - else + RTB.Invoke((MethodInvoker)delegate { + RTB.AppendText(Environment.NewLine + progress); RTB.SelectionStart = RTB.Text.Length; RTB.ScrollToCaret(); - RTB.AppendText(progress + Environment.NewLine); - } + }); } - catch { } - } - internal static ulong Align(ulong input, ulong alignsize) - { - ulong output = input; - if (output % alignsize != 0) + else { - output += alignsize - output % alignsize; + RTB.SelectionStart = RTB.Text.Length; + RTB.ScrollToCaret(); + RTB.AppendText(progress + Environment.NewLine); } - return output; } + catch { } + } + + internal static ulong Align(ulong input, ulong alignsize) + { + ulong output = input; + if (output % alignsize != 0) + { + output += alignsize - (output % alignsize); + } + return output; } -} +} \ No newline at end of file diff --git a/pk3DS.Core/CTR/DARC.cs b/pk3DS.Core/CTR/DARC.cs index c37247479a..6159d3478b 100644 --- a/pk3DS.Core/CTR/DARC.cs +++ b/pk3DS.Core/CTR/DARC.cs @@ -4,369 +4,371 @@ using System.Linq; using System.Text; -namespace pk3DS.Core.CTR +namespace pk3DS.Core.CTR; + +public class DARC { - public class DARC - { - public byte[] Data; - public DARCHeader Header; - public FileTableEntry[] Entries; - public NameTableEntry[] FileNameTable; + public byte[] Data; + public DARCHeader Header; + public FileTableEntry[] Entries; + public NameTableEntry[] FileNameTable; - public DARC(byte[] Data = null) + public DARC(byte[] Data = null) + { + if (Data == null) return; + using var br = new BinaryReader(new MemoryStream(Data)); + try { - if (Data == null) return; - using (BinaryReader br = new BinaryReader(new MemoryStream(Data))) - try + Header = new DARCHeader(br); + br.BaseStream.Position = Header.FileTableOffset; + var root = new FileTableEntry(br); + Entries = new FileTableEntry[root.DataLength]; + Entries[0] = root; + for (int i = 1; i < root.DataLength; i++) Entries[i] = new FileTableEntry(br); + FileNameTable = new NameTableEntry[root.DataLength]; + uint offs = 0; + for (int i = 0; i < root.DataLength; i++) { - Header = new DARCHeader(br); - br.BaseStream.Position = Header.FileTableOffset; - FileTableEntry root = new FileTableEntry(br); - Entries = new FileTableEntry[root.DataLength]; - Entries[0] = root; - for (int i = 1; i < root.DataLength; i++) Entries[i] = new FileTableEntry(br); - FileNameTable = new NameTableEntry[root.DataLength]; - uint offs = 0; - for (int i = 0; i < root.DataLength; i++) - { - char c; string s = string.Empty; - while ((c = (char) br.ReadUInt16()) > 0) s += c; + char c; string s = string.Empty; + while ((c = (char)br.ReadUInt16()) > 0) s += c; - FileNameTable[i] = new NameTableEntry(offs, s); - offs += (uint)s.Length * 2 + 2; - } - br.BaseStream.Position = Header.FileDataOffset; - this.Data = br.ReadBytes((int)(Header.FileSize - Header.FileDataOffset)); + FileNameTable[i] = new NameTableEntry(offs, s); + offs += ((uint)s.Length * 2) + 2; } - catch (Exception) - { br.Close(); } + br.BaseStream.Position = Header.FileDataOffset; + this.Data = br.ReadBytes((int)(Header.FileSize - Header.FileDataOffset)); } + catch (Exception) + { br.Close(); } + } - public class DARCHeader + public class DARCHeader + { + public DARCHeader(BinaryReader br = null) { - public DARCHeader(BinaryReader br = null) - { - if (br == null) return; - Signature = new string(br.ReadChars(4)); - if (Signature != "darc") throw new Exception(Signature); - Endianness = br.ReadUInt16(); - HeaderSize = br.ReadUInt16(); - Version = br.ReadUInt32(); - FileSize = br.ReadUInt32(); - FileTableOffset = br.ReadUInt32(); - FileTableLength = br.ReadUInt32(); - FileDataOffset = br.ReadUInt32(); - } - public string Signature; - public ushort Endianness; - public ushort HeaderSize; - public uint Version; - public uint FileSize; - public uint FileTableOffset; - public uint FileTableLength; - public uint FileDataOffset; + if (br == null) return; + Signature = new string(br.ReadChars(4)); + if (Signature != "darc") throw new Exception(Signature); + Endianness = br.ReadUInt16(); + HeaderSize = br.ReadUInt16(); + Version = br.ReadUInt32(); + FileSize = br.ReadUInt32(); + FileTableOffset = br.ReadUInt32(); + FileTableLength = br.ReadUInt32(); + FileDataOffset = br.ReadUInt32(); } - public class FileTableEntry + + public string Signature; + public ushort Endianness; + public ushort HeaderSize; + public uint Version; + public uint FileSize; + public uint FileTableOffset; + public uint FileTableLength; + public uint FileDataOffset; + } + + public class FileTableEntry + { + public FileTableEntry(BinaryReader br = null) { - public FileTableEntry(BinaryReader br = null) - { - if (br == null) return; - NameOffset = br.ReadUInt32(); - IsFolder = NameOffset >> 24 == 1; - NameOffset &= 0xFFFFFF; - DataOffset = br.ReadUInt32(); - DataLength = br.ReadUInt32(); - } - public uint NameOffset; - public bool IsFolder; - public uint DataOffset; // FOLDER: Parent Entry Index - public uint DataLength; // FOLDER: Next Folder Index + if (br == null) return; + NameOffset = br.ReadUInt32(); + IsFolder = NameOffset >> 24 == 1; + NameOffset &= 0xFFFFFF; + DataOffset = br.ReadUInt32(); + DataLength = br.ReadUInt32(); } - public class NameTableEntry + + public uint NameOffset; + public bool IsFolder; + public uint DataOffset; // FOLDER: Parent Entry Index + public uint DataLength; // FOLDER: Next Folder Index + } + + public class NameTableEntry(uint offset, string fileName) + { + public uint NameOffset = offset; + public string FileName = fileName; + } + + // DARC r/w + public static byte[] SetDARC(DARC darc) + { + // Package DARC into a writable array. + using var ms = new MemoryStream(); + using var bw = new BinaryWriter(ms); + // Write Header + bw.Write(Encoding.ASCII.GetBytes(darc.Header.Signature)); + bw.Write(darc.Header.Endianness); + bw.Write(darc.Header.HeaderSize); + bw.Write(darc.Header.Version); + bw.Write(darc.Header.FileSize); + bw.Write(darc.Header.FileTableOffset); + bw.Write(darc.Header.FileTableLength); + bw.Write(darc.Header.FileDataOffset); + // Write FileTableEntries + foreach (FileTableEntry entry in darc.Entries) { - public uint NameOffset; - public string FileName; - public NameTableEntry(uint offset, string fileName) - { - NameOffset = offset; - FileName = fileName; - } + bw.Write(entry.NameOffset | (entry.IsFolder ? (uint)1 << 24 : 0)); + bw.Write(entry.DataOffset); + bw.Write(entry.DataLength); } - - // DARC r/w - public static byte[] setDARC(DARC darc) + foreach (NameTableEntry entry in darc.FileNameTable) { - // Package DARC into a writable array. - using (MemoryStream ms = new MemoryStream()) - using (BinaryWriter bw = new BinaryWriter(ms)) - { - // Write Header - bw.Write(Encoding.ASCII.GetBytes(darc.Header.Signature)); - bw.Write(darc.Header.Endianness); - bw.Write(darc.Header.HeaderSize); - bw.Write(darc.Header.Version); - bw.Write(darc.Header.FileSize); - bw.Write(darc.Header.FileTableOffset); - bw.Write(darc.Header.FileTableLength); - bw.Write(darc.Header.FileDataOffset); - // Write FileTableEntries - foreach (FileTableEntry entry in darc.Entries) - { - bw.Write(entry.NameOffset | (entry.IsFolder ? (uint)1 << 24 : 0)); - bw.Write(entry.DataOffset); - bw.Write(entry.DataLength); - } - foreach (NameTableEntry entry in darc.FileNameTable) - { - bw.Write(Encoding.Unicode.GetBytes(entry.FileName + "\0")); - } - while (bw.BaseStream.Position < darc.Header.FileDataOffset) - bw.Write((byte)0); + bw.Write(Encoding.Unicode.GetBytes(entry.FileName + "\0")); + } + while (bw.BaseStream.Position < darc.Header.FileDataOffset) + bw.Write((byte)0); - // Write Data - bw.Write(darc.Data); + // Write Data + bw.Write(darc.Data); - return ms.ToArray(); - } - } - public static DARC getDARC(string folderName) + return ms.ToArray(); + } + + public static DARC GetDARC(string folderName) + { + // Package Folder into a DARC. + List EntryList = []; + List NameList = []; + byte[] Data = []; + uint nameOffset = 6; // 00 00 + 00 2E 00 00 + #region Build FileTable/NameTables { - // Package Folder into a DARC. - List EntryList = new List(); - List NameList = new List(); - byte[] Data = new byte[0]; - uint nameOffset = 6; // 00 00 + 00 2E 00 00 - #region Build FileTable/NameTables + // Null First File { - // Null First File - { - EntryList.Add(new FileTableEntry {DataOffset = 0, DataLength = 0, IsFolder = true, NameOffset = 0}); - NameList.Add(new NameTableEntry(0, "")); - } - // "." Second File + EntryList.Add(new FileTableEntry { DataOffset = 0, DataLength = 0, IsFolder = true, NameOffset = 0 }); + NameList.Add(new NameTableEntry(0, "")); + } + // "." Second File + { + EntryList.Add(new FileTableEntry { DataOffset = 0, DataLength = 0, IsFolder = true, NameOffset = 2 }); + NameList.Add(new NameTableEntry(6, ".")); + } + foreach (string folder in Directory.GetDirectories(folderName)) + { + string parentName = new DirectoryInfo(folder).Name; + string[] files = Directory.GetFiles(folder); + NameList.Add(new NameTableEntry(nameOffset, parentName)); + EntryList.Add(new FileTableEntry { - EntryList.Add(new FileTableEntry {DataOffset = 0, DataLength = 0, IsFolder = true, NameOffset = 2}); - NameList.Add(new NameTableEntry(6, ".")); - } - foreach (string folder in Directory.GetDirectories(folderName)) + DataOffset = 1, + DataLength = (uint)(files.Length + EntryList.Count), + IsFolder = true, + NameOffset = nameOffset, + }); + nameOffset += (uint)parentName.Length + 2; // Account for null terminator + + foreach (string file in files) { - string parentName = new DirectoryInfo(folder).Name; - string[] files = Directory.GetFiles(folder); + var fi = new FileInfo(file); + string fileName = fi.Name; NameList.Add(new NameTableEntry(nameOffset, parentName)); + EntryList.Add(new FileTableEntry { - DataOffset = 1, - DataLength = (uint) (files.Length + EntryList.Count), - IsFolder = true, - NameOffset = nameOffset + DataOffset = (uint)Data.Length, + DataLength = (uint)fi.Length, + IsFolder = false, + NameOffset = nameOffset, }); - nameOffset += (uint) parentName.Length + 2; // Account for null terminator - - foreach (string file in files) - { - FileInfo fi = new FileInfo(file); - string fileName = fi.Name; - NameList.Add(new NameTableEntry(nameOffset, parentName)); - - - EntryList.Add(new FileTableEntry - { - DataOffset = (uint) Data.Length, - DataLength = (uint) fi.Length, - IsFolder = false, - NameOffset = nameOffset - }); - Data = Data.Concat(File.ReadAllBytes(file)).ToArray(); - nameOffset += (uint) fileName.Length + 2; // Account for null terminator - } + Data = [.. Data, .. File.ReadAllBytes(file)]; + nameOffset += (uint)fileName.Length + 2; // Account for null terminator } } - #endregion - - // Compute Necessary DARC information - int darcFileCount = NameList.Count; - int NameListOffset = darcFileCount * 0xC; - int NameListLength = (int)(nameOffset + NameListOffset); - int DataOffset = NameListLength % 4 == 0 ? NameListLength : NameListLength + (4 - NameListLength % 4); - Array.Resize(ref Data, Data.Length % 4 == 0 ? Data.Length : Data.Length + 4 - Data.Length % 4); - int FinalSize = DataOffset + Data.Length; - - // Create New DARC - DARC darc = new DARC - { - Header = - { - Signature = "darc", - Endianness = 0xFEFF, - HeaderSize = 0x1C, - Version = 1, - FileSize = (uint)FinalSize, - FileTableOffset = 0x1C, - FileTableLength = (uint)NameListLength, - FileDataOffset = (uint)DataOffset, - }, - Entries = EntryList.ToArray(), - FileNameTable = NameList.ToArray(), - Data = Data, - }; - // Fix the First two folders to specify the number of files - darc.Entries[0].DataLength = (uint)darcFileCount; - darc.Entries[1].DataLength = (uint)darcFileCount; - - // Fix the Data Offset of the files to point to actual destination - foreach (FileTableEntry f in darc.Entries.Where(x => !x.IsFolder)) - f.DataOffset += darc.Header.FileDataOffset; - return darc; } + #endregion - public static bool darc2files(string path, string folderName) + // Compute Necessary DARC information + int darcFileCount = NameList.Count; + int NameListOffset = darcFileCount * 0xC; + int NameListLength = (int)(nameOffset + NameListOffset); + int DataOffset = NameListLength % 4 == 0 ? NameListLength : NameListLength + (4 - (NameListLength % 4)); + Array.Resize(ref Data, Data.Length % 4 == 0 ? Data.Length : Data.Length + 4 - (Data.Length % 4)); + int FinalSize = DataOffset + Data.Length; + + // Create New DARC + var darc = new DARC { - try { return darc2files(File.ReadAllBytes(path), folderName); } - catch (Exception) { return false; } - } - public static bool darc2files(byte[] darc, string folderName) + Header = + { + Signature = "darc", + Endianness = 0xFEFF, + HeaderSize = 0x1C, + Version = 1, + FileSize = (uint)FinalSize, + FileTableOffset = 0x1C, + FileTableLength = (uint)NameListLength, + FileDataOffset = (uint)DataOffset, + }, + Entries = [.. EntryList], + FileNameTable = [.. NameList], + Data = Data, + }; + // Fix the First two folders to specify the number of files + darc.Entries[0].DataLength = (uint)darcFileCount; + darc.Entries[1].DataLength = (uint)darcFileCount; + + // Fix the Data Offset of the files to point to actual destination + foreach (FileTableEntry f in darc.Entries.Where(x => !x.IsFolder)) + f.DataOffset += darc.Header.FileDataOffset; + return darc; + } + + public static bool Darc2files(string path, string folderName) + { + try { return Darc2files(File.ReadAllBytes(path), folderName); } + catch (Exception) { return false; } + } + + public static bool Darc2files(byte[] darc, string folderName) + { + // Save all contents of a DARC to a folder, assuming there's only 1 layer of folders. + try { - // Save all contents of a DARC to a folder, assuming there's only 1 layer of folders. - try + // Clear existing contents + string root = folderName; + if (Directory.Exists(root)) + Directory.Delete(root, true); + + // Create new DARC object from input data + var DARC = new DARC(darc); + + // Output data + for (int i = 2; i < DARC.FileNameTable.Length;) { - // Clear existing contents - string root = folderName; - if (Directory.Exists(root)) - Directory.Delete(root, true); + bool isFolder = DARC.Entries[i].IsFolder; + if (!isFolder) + return false; + // uint level = DARC.Entries[i].DataOffset; Only assuming 1 layer of folders. + string parentName = DARC.FileNameTable[i].FileName; + Directory.CreateDirectory(Path.Combine(root, parentName)); - // Create new DARC object from input data - DARC DARC = new DARC(darc); + int nextFolder = (int)DARC.Entries[i++].DataLength; - // Output data - for (int i = 2; i < DARC.FileNameTable.Length;) + // Extract all Contents of said folder + while (i < nextFolder) { - bool isFolder = DARC.Entries[i].IsFolder; - if (!isFolder) - return false; - // uint level = DARC.Entries[i].DataOffset; Only assuming 1 layer of folders. - string parentName = DARC.FileNameTable[i].FileName; - Directory.CreateDirectory(Path.Combine(root, parentName)); - - int nextFolder = (int)DARC.Entries[i++].DataLength; + string fileName = DARC.FileNameTable[i].FileName; + int offset = (int)DARC.Entries[i].DataOffset; + int length = (int)DARC.Entries[i].DataLength; + byte[] data = DARC.Data.Skip((int)(offset - DARC.Header.FileDataOffset)).Take(length).ToArray(); - // Extract all Contents of said folder - while (i < nextFolder) - { - string fileName = DARC.FileNameTable[i].FileName; - int offset = (int)DARC.Entries[i].DataOffset; - int length = (int)DARC.Entries[i].DataLength; - byte[] data = DARC.Data.Skip((int)(offset - DARC.Header.FileDataOffset)).Take(length).ToArray(); - - string outPath = Path.Combine(root, parentName, fileName); - File.WriteAllBytes(outPath, data); - i++; // Advance to next Entry - } + string outPath = Path.Combine(root, parentName, fileName); + File.WriteAllBytes(outPath, data); + i++; // Advance to next Entry } - return true; } - catch (Exception) { return false; } + return true; } - public static bool files2darc(string folderName, bool delete = false, string originalDARC = null, string outFile = null) + catch (Exception) { return false; } + } + + public static bool Files2darc(string folderName, bool delete = false, string originalDARC = null, string outFile = null) + { + // Save all contents of a folder to a darc. + try { - // Save all contents of a folder to a darc. - try + byte[] darcData; + DARC orig; + string root = folderName; + if (originalDARC != null) { - byte[] darcData; - DARC orig; - string root = folderName; - if (originalDARC != null) - { - // Fetch offset of DARC within file. - byte[] darc = File.ReadAllBytes(originalDARC); - int darcPos = getDARCposition(darc); - if (darcPos < 0) return false; - byte[] origData = darc.Skip(darcPos).ToArray(); - - orig = new DARC(origData); - orig = insertFiles(orig, folderName); - byte[] newDARC = setDARC(orig); - darcData = darc.Take(darcPos).Concat(newDARC).ToArray(); - } - else // no existing darc to get - { - orig = getDARC(folderName); - darcData = setDARC(orig); - } + // Fetch offset of DARC within file. + byte[] darc = File.ReadAllBytes(originalDARC); + int darcPos = GetDARCposition(darc); + if (darcPos < 0) return false; + byte[] origData = darc.Skip(darcPos).ToArray(); - // Fetch final name if not specified - outFile = outFile ?? originalDARC ?? new DirectoryInfo(folderName).Name.Replace("_d", "") + ".darc"; + orig = new DARC(origData); + orig = InsertFiles(orig, folderName); + byte[] newDARC = SetDARC(orig); + darcData = darc.Take(darcPos).Concat(newDARC).ToArray(); + } + else // no existing darc to get + { + orig = GetDARC(folderName); + darcData = SetDARC(orig); + } - if (darcData == null) return false; - File.WriteAllBytes(outFile, darcData); + // Fetch final name if not specified + outFile ??= originalDARC ?? new DirectoryInfo(folderName).Name.Replace("_d", "") + ".darc"; - if (Directory.Exists(root) && delete) - Directory.Delete(root, true); - return true; - } catch (Exception) { return false; } - } + if (darcData == null) return false; + File.WriteAllBytes(outFile, darcData); - // DARC Utility - public static int getDARCposition(byte[] data) - { - int pos = 0; - while (BitConverter.ToUInt32(data, pos) != 0x63726164) - { pos += 4; if (pos >= data.Length) return -1; } - return pos; - } - public static bool insertFile(ref DARC orig, int index, string path) - { - try { return insertFile(ref orig, index, File.ReadAllBytes(path)); } - catch (Exception) { return false; } + if (Directory.Exists(root) && delete) + Directory.Delete(root, true); + return true; } - public static bool insertFile(ref DARC orig, int index, byte[] data) + catch (Exception) { return false; } + } + + // DARC Utility + public static int GetDARCposition(byte[] data) + { + int pos = 0; + while (BitConverter.ToUInt32(data, pos) != 0x63726164) + { pos += 4; if (pos >= data.Length) return -1; } + return pos; + } + + public static bool InsertFile(ref DARC orig, int index, string path) + { + try { return InsertFile(ref orig, index, File.ReadAllBytes(path)); } + catch (Exception) { return false; } + } + + public static bool InsertFile(ref DARC orig, int index, byte[] data) + { + if (index < 0) return false; + + try { - if (index < 0) return false; + uint oldLength = orig.Entries[index].DataLength; + uint offset = orig.Entries[index].DataOffset - orig.Header.FileDataOffset; + int diff = (int)(data.Length - oldLength); - try - { - uint oldLength = orig.Entries[index].DataLength; - uint offset = orig.Entries[index].DataOffset - orig.Header.FileDataOffset; - int diff = (int) (data.Length - oldLength); - - // Insert into Data Block - byte[] pre = orig.Data.Take((int) offset).ToArray(); - byte[] post = orig.Data.Skip((int) (offset + oldLength)).ToArray(); - - // Reassemble data - orig.Data = pre.Concat(data).Concat(post).ToArray(); - - // Fix Offset references of other files - foreach (var x in orig.Entries.Where(x => x.DataOffset >= offset + oldLength)) - x.DataOffset += (uint) diff; - orig.Entries[index].DataLength = (uint)data.Length; - orig.Header.FileSize += (uint)diff; - return true; - } - catch (Exception) { return false; } + // Insert into Data Block + byte[] pre = orig.Data.Take((int)offset).ToArray(); + byte[] post = orig.Data.Skip((int)(offset + oldLength)).ToArray(); + + // Reassemble data + orig.Data = [.. pre, .. data, .. post]; + + // Fix Offset references of other files + foreach (var x in orig.Entries.Where(x => x.DataOffset >= offset + oldLength)) + x.DataOffset += (uint)diff; + orig.Entries[index].DataLength = (uint)data.Length; + orig.Header.FileSize += (uint)diff; + return true; } - public static DARC insertFiles(DARC orig, string folderName) - { - string[] fileNames = new string[orig.Entries.Length]; - for (int i = 0; i < fileNames.Length; i++) - fileNames[i] = orig.FileNameTable[i].FileName; + catch (Exception) { return false; } + } - string[] files = Directory.GetFiles(folderName, "*", SearchOption.AllDirectories); - foreach (string file in files) - { - FileInfo fi = new FileInfo(file); - string FileName = fi.Name; + public static DARC InsertFiles(DARC orig, string folderName) + { + string[] fileNames = new string[orig.Entries.Length]; + for (int i = 0; i < fileNames.Length; i++) + fileNames[i] = orig.FileNameTable[i].FileName; - // Get Index of file - int index = Array.IndexOf(fileNames, FileName); - if (orig.Entries[index].IsFolder) - throw new Exception(file + " is not a valid file to reinsert!"); + string[] files = Directory.GetFiles(folderName, "*", SearchOption.AllDirectories); + foreach (string file in files) + { + var fi = new FileInfo(file); + string FileName = fi.Name; - insertFile(ref orig, index, file); - } - // Fix Data layout - Array.Resize(ref orig.Data, orig.Data.Length % 4 == 0 ? orig.Data.Length : orig.Data.Length + 4 - orig.Data.Length % 4); - orig.Header.FileSize = (uint)(orig.Data.Length + orig.Header.FileDataOffset); - return orig; + // Get Index of file + int index = Array.IndexOf(fileNames, FileName); + if (orig.Entries[index].IsFolder) + throw new Exception(file + " is not a valid file to reinsert!"); + + InsertFile(ref orig, index, file); } + // Fix Data layout + Array.Resize(ref orig.Data, orig.Data.Length % 4 == 0 ? orig.Data.Length : orig.Data.Length + 4 - (orig.Data.Length % 4)); + orig.Header.FileSize = (uint)(orig.Data.Length + orig.Header.FileDataOffset); + return orig; } -} +} \ No newline at end of file diff --git a/pk3DS.Core/CTR/ETC1.cs b/pk3DS.Core/CTR/ETC1.cs index 2a940de73d..97d3d7b125 100644 --- a/pk3DS.Core/CTR/ETC1.cs +++ b/pk3DS.Core/CTR/ETC1.cs @@ -1,11 +1,22 @@ using System; +using System.IO; +using System.Reflection; using System.Runtime.InteropServices; +using pk3DS.Core.Properties; -namespace pk3DS.Core.CTR +namespace pk3DS.Core.CTR; + +internal static partial class ETC1 { - internal static class ETC1 + [LibraryImport("ETC1Lib.dll", EntryPoint = "ConvertETC1")] + [UnmanagedCallConv(CallConvs = [typeof(System.Runtime.CompilerServices.CallConvCdecl)])] + public static partial void ConvertETC1(IntPtr dataOut, ref uint dataOutSize, IntPtr dataIn, ushort width, ushort height, [MarshalAs(UnmanagedType.Bool)] bool alpha); + + public static void CheckETC1Lib() { - [DllImport("ETC1Lib.dll", EntryPoint = "ConvertETC1", CallingConvention = CallingConvention.Cdecl)] - public static extern void ConvertETC1(IntPtr dataOut, ref uint dataOutSize, IntPtr dataIn, ushort width, ushort height, bool alpha); + var loc = Assembly.GetEntryAssembly()?.Location ?? typeof(ETC1).Assembly.Location; + string dllpath = Path.GetDirectoryName(loc) + "\\ETC1Lib.dll"; + if (!File.Exists(dllpath)) + File.WriteAllBytes(dllpath, Resources.ETC1Lib); } } \ No newline at end of file diff --git a/pk3DS.Core/CTR/ExeFS.cs b/pk3DS.Core/CTR/ExeFS.cs index a9ea1e2307..3d14821a4a 100644 --- a/pk3DS.Core/CTR/ExeFS.cs +++ b/pk3DS.Core/CTR/ExeFS.cs @@ -4,111 +4,67 @@ using System.Text; using System.Security.Cryptography; -namespace pk3DS.Core.CTR +namespace pk3DS.Core.CTR; + +public class ExeFS { - public class ExeFS - { - public byte[] Data; - public byte[] SuperBlockHash; + public byte[] Data; + public readonly byte[] SuperBlockHash; - // Return an object with data stored in a byte array - public ExeFS(string EXEFS_PATH) + // Return an object with data stored in a byte array + public ExeFS(string path) + { + if (Directory.Exists(path)) { - if (Directory.Exists(EXEFS_PATH)) - { - var files = new DirectoryInfo(EXEFS_PATH).GetFiles().Select(f => f.FullName).ToArray(); - setData(files); - } - else - { - Data = File.ReadAllBytes(EXEFS_PATH); - } - getSuperBlockHash(); + var files = new DirectoryInfo(path).GetFiles().Select(f => f.FullName).ToArray(); + SetData(files); } - - public void getSuperBlockHash() + else if (File.Exists(path)) { - using (SHA256Managed sha = new SHA256Managed()) - SuperBlockHash = sha.ComputeHash(Data, 0, 0x200); + Data = File.ReadAllBytes(path); } - - // Overall R/W files (wrapped) - public static bool get(string inFile, string outPath) + else { - try - { - byte[] data = File.ReadAllBytes(inFile); - if (!Directory.Exists(outPath)) Directory.CreateDirectory(outPath); - for (int i = 0; i < 10; i++) - { - // Get File Name String; if exists we have a file to extract. - string fileName = Encoding.ASCII.GetString(data.Skip(0x10 * i).Take(0x8).ToArray()).TrimEnd((char)0); - if (fileName.Length > 0) - File.WriteAllBytes( - // New File Path - outPath + Path.DirectorySeparatorChar + fileName + ".bin", - // Get New Data from Offset after 0x200 Header. - data.Skip(0x200 + BitConverter.ToInt32(data, 0x8 + 0x10 * i)).Take(BitConverter.ToInt32(data, 0xC + 0x10 * i)).ToArray() - ); - } - return true; - } - catch { return false; } + throw new FileNotFoundException("File not found.", path); } - public static bool set(string[] files, string outFile) - { - if (files.Length > 10) { Console.WriteLine("Cannot package more than 10 files to exefs."); return false; } + SuperBlockHash = SHA256.HashData(Data.AsSpan(0, 200)); + } - try + // Overall R/W files (wrapped) + public static bool UnpackExeFS(string inFile, string outPath) + { + try + { + byte[] data = File.ReadAllBytes(inFile); + if (!Directory.Exists(outPath)) Directory.CreateDirectory(outPath); + for (int i = 0; i < 10; i++) { - // Set up the Header - byte[] headerData = new byte[0x200]; - uint offset = 0; - SHA256 sha = SHA256.Create(); - - // Get the Header - for (int i = 0; i < files.Length; i++) - { - // Do the Top (File Info) - string fileName = Path.GetFileNameWithoutExtension(files[i]); - byte[] nameData = Encoding.ASCII.GetBytes(fileName); Array.Resize(ref nameData, 0x8); - Array.Copy(nameData, 0, headerData, i * 0x10, 0x8); - - FileInfo fi = new FileInfo(files[i]); - uint size = (uint)fi.Length; - Array.Copy(BitConverter.GetBytes(offset), 0, headerData, 0x8 + i * 0x10, 0x4); - Array.Copy(BitConverter.GetBytes(size), 0, headerData, 0xC + i * 0x10, 0x4); - offset += 0x200 - size % 0x200 + size; - - // Do the Bottom (Hashes) - byte[] hash = sha.ComputeHash(File.ReadAllBytes(files[i])); - Array.Copy(hash, 0, headerData, 0x200 - 0x20 * (i + 1), 0x20); - } - - // Set in the Data - using (MemoryStream newFile = new MemoryStream()) + // Get File Name String; if exists we have a file to extract. + string fileName = Encoding.ASCII.GetString(data.Skip(0x10 * i).Take(0x8).ToArray()).TrimEnd((char)0); + if (fileName.Length > 0) { - new MemoryStream(headerData).CopyTo(newFile); - foreach (string s in files) - { - using (MemoryStream loadFile = new MemoryStream(File.ReadAllBytes(s))) - loadFile.CopyTo(newFile); - new MemoryStream(new byte[0x200 - newFile.Length % 0x200]).CopyTo(newFile); - } - - File.WriteAllBytes(outFile, newFile.ToArray()); + File.WriteAllBytes( + // New File Path + outPath + Path.DirectorySeparatorChar + fileName + ".bin", + // Get New Data from Offset after 0x200 Header. + data.Skip(0x200 + BitConverter.ToInt32(data, 0x8 + (0x10 * i))).Take(BitConverter.ToInt32(data, 0xC + (0x10 * i))).ToArray() + ); } - return true; } - catch { return false; } + return true; } + catch { return false; } + } + + public static bool PackExeFS(string[] files, string outFile) + { + if (files.Length > 10) { Console.WriteLine("Cannot package more than 10 files to exefs."); return false; } - public void setData(string[] files) + try { // Set up the Header byte[] headerData = new byte[0x200]; uint offset = 0; - SHA256 sha = SHA256.Create(); // Get the Header for (int i = 0; i < files.Length; i++) @@ -118,30 +74,70 @@ public void setData(string[] files) byte[] nameData = Encoding.ASCII.GetBytes(fileName); Array.Resize(ref nameData, 0x8); Array.Copy(nameData, 0, headerData, i * 0x10, 0x8); - FileInfo fi = new FileInfo(files[i]); + var fi = new FileInfo(files[i]); uint size = (uint)fi.Length; - Array.Copy(BitConverter.GetBytes(offset), 0, headerData, 0x8 + i * 0x10, 0x4); - Array.Copy(BitConverter.GetBytes(size), 0, headerData, 0xC + i * 0x10, 0x4); - offset += 0x200 - size % 0x200 + size; + Array.Copy(BitConverter.GetBytes(offset), 0, headerData, 0x8 + (i * 0x10), 0x4); + Array.Copy(BitConverter.GetBytes(size), 0, headerData, 0xC + (i * 0x10), 0x4); + offset += 0x200 - (size % 0x200) + size; // Do the Bottom (Hashes) - byte[] hash = sha.ComputeHash(File.ReadAllBytes(files[i])); - Array.Copy(hash, 0, headerData, 0x200 - 0x20 * (i + 1), 0x20); + byte[] hash = SHA256.HashData(File.ReadAllBytes(files[i])); + Array.Copy(hash, 0, headerData, 0x200 - (0x20 * (i + 1)), 0x20); } // Set in the Data - using (MemoryStream newFile = new MemoryStream()) + using var newFile = new MemoryStream(); + newFile.Write(headerData); + foreach (string s in files) { - new MemoryStream(headerData).CopyTo(newFile); - foreach (string s in files) - { - using (MemoryStream loadFile = new MemoryStream(File.ReadAllBytes(s))) - loadFile.CopyTo(newFile); - new MemoryStream(new byte[0x200 - newFile.Length % 0x200]).CopyTo(newFile); - } - - Data = newFile.ToArray(); + using (var loadFile = new MemoryStream(File.ReadAllBytes(s))) + loadFile.CopyTo(newFile); + var tail = new byte[0x200 - (newFile.Length % 0x200)]; + newFile.Write(tail); } + + File.WriteAllBytes(outFile, newFile.ToArray()); + return true; } + catch { return false; } + } + + public void SetData(string[] files) + { + // Set up the Header + byte[] headerData = new byte[0x200]; + uint offset = 0; + + // Get the Header + for (int i = 0; i < files.Length; i++) + { + // Do the Top (File Info) + string fileName = Path.GetFileNameWithoutExtension(files[i]); + byte[] nameData = Encoding.ASCII.GetBytes(fileName); Array.Resize(ref nameData, 0x8); + Array.Copy(nameData, 0, headerData, i * 0x10, 0x8); + + var fi = new FileInfo(files[i]); + uint size = (uint)fi.Length; + Array.Copy(BitConverter.GetBytes(offset), 0, headerData, 0x8 + (i * 0x10), 0x4); + Array.Copy(BitConverter.GetBytes(size), 0, headerData, 0xC + (i * 0x10), 0x4); + offset += 0x200 - (size % 0x200) + size; + + // Do the Bottom (Hashes) + byte[] hash = SHA256.HashData(File.ReadAllBytes(files[i])); + Array.Copy(hash, 0, headerData, 0x200 - (0x20 * (i + 1)), 0x20); + } + + // Set in the Data + using var newFile = new MemoryStream(); + newFile.Write(headerData); + foreach (string s in files) + { + using var loadFile = File.OpenRead(s); + loadFile.CopyTo(newFile); + var tail = new byte[0x200 - (newFile.Length % 0x200)]; + newFile.Write(tail); + } + + Data = newFile.ToArray(); } -} +} \ No newline at end of file diff --git a/pk3DS.Core/CTR/Exheader.cs b/pk3DS.Core/CTR/Exheader.cs index f91ebb96c5..9613e64079 100644 --- a/pk3DS.Core/CTR/Exheader.cs +++ b/pk3DS.Core/CTR/Exheader.cs @@ -5,90 +5,95 @@ using System.Security.Cryptography; using pk3DS.Core.Properties; -namespace pk3DS.Core.CTR +namespace pk3DS.Core.CTR; + +public class Exheader { - public class Exheader + public readonly byte[] Data; + public readonly byte[] AccessDescriptor; + public readonly ulong TitleID; + + public Exheader(string EXHEADER_PATH) { - public readonly byte[] Data; - public readonly byte[] AccessDescriptor; - public readonly ulong TitleID; + Data = File.ReadAllBytes(EXHEADER_PATH); + AccessDescriptor = Data.Skip(0x400).Take(0x400).ToArray(); + Data = Data.Take(0x400).ToArray(); + TitleID = BitConverter.ToUInt64(Data, 0x200); + } - public Exheader(string EXHEADER_PATH) - { - Data = File.ReadAllBytes(EXHEADER_PATH); - AccessDescriptor = Data.Skip(0x400).Take(0x400).ToArray(); - Data = Data.Take(0x400).ToArray(); - TitleID = BitConverter.ToUInt64(Data, 0x200); - } + public byte[] GetSuperBlockHash() + { + return SHA256.HashData(Data.AsSpan(0, 0x400)); + } - public byte[] GetSuperBlockHash() - { - SHA256Managed sha = new SHA256Managed(); - return sha.ComputeHash(Data, 0, 0x400); - } - public string GetSerial() - { - const string output = "CTR-P-"; + public string GetSerial() + { + const string output = "CTR-P-"; - var RecognizedGames = new Dictionary(); - string[] lines = Resources.ResourceManager.GetString("_3dsgames").Split('\n').ToArray(); - foreach (string l in lines) + var RecognizedGames = new Dictionary(); + var lines = Resources.ResourceManager.GetString("_3dsgames").Split('\n').ToArray(); + foreach (string l in lines) + { + string[] vars = l.Split('\t'); + ulong titleid = Convert.ToUInt64(vars[0], 16); + if (RecognizedGames.TryGetValue(titleid, out var value)) { - string[] vars = l.Split('\t').ToArray(); - ulong titleid = Convert.ToUInt64(vars[0], 16); - if (RecognizedGames.ContainsKey(titleid)) - { - char lc = RecognizedGames[titleid].ToArray()[0].ToCharArray()[3]; - char lc2 = vars[1].ToCharArray()[3]; - if (lc2 == 'A' || lc2 == 'E' || lc2 == 'P' && lc == 'J') //Prefer games in order US, PAL, JP - { - RecognizedGames[titleid] = vars.Skip(1).Take(2).ToArray(); - } - } - else + char lc = value.ToArray()[0][3]; + char lc2 = vars[1][3]; + if (lc2 == 'A' || lc2 == 'E' || (lc2 == 'P' && lc == 'J')) //Prefer games in order US, PAL, JP { - RecognizedGames.Add(titleid, vars.Skip(1).Take(2).ToArray()); + RecognizedGames[titleid] = vars.Skip(1).Take(2).ToArray(); } } - return output + RecognizedGames[TitleID][0]; - } - - public bool isPokemon() - { - return isORAS() || isXY(); - } - public bool isORAS() - { - return (TitleID & 0xFFFFFFFF) >> 8 == 0x11C5 || (TitleID & 0xFFFFFFFF) >> 8 == 0x11C4; - } - public bool isXY() - { - return (TitleID & 0xFFFFFFFF) >> 8 == 0x55D || (TitleID & 0xFFFFFFFF) >> 8 == 0x55E; - } - public string GetPokemonSerial() - { - if (!isPokemon()) - return "CTR-P-XXXX"; - string name; - switch ((TitleID & 0xFFFFFFFF) >> 8) + else { - case 0x11C5: //Alpha Sapphire - name = "ECLA"; - break; - case 0x11C4: //Omega Ruby - name = "ECRA"; - break; - case 0x55D: //X - name = "EKJA"; - break; - case 0x55E: //Y - name = "EK2A"; - break; - default: - name = "XXXX"; - break; + RecognizedGames.Add(titleid, vars.Skip(1).Take(2).ToArray()); } - return "CTR-P-" + name; } + return output + RecognizedGames[TitleID][0]; + } + + public bool IsSupported() + { + return IsORAS() || IsXY() || IsUSUM() || IsSM(); + } + + public bool IsUSUM() + { + return (TitleID & 0xFFFFFFFF) >> 8 == 0x1B50 || (TitleID & 0xFFFFFFFF) >> 8 == 0x1B51; + } + + public bool IsSM() + { + return (TitleID & 0xFFFFFFFF) >> 8 == 0x1648 || (TitleID & 0xFFFFFFFF) >> 8 == 0x175E; + } + + public bool IsORAS() + { + return (TitleID & 0xFFFFFFFF) >> 8 == 0x11C5 || (TitleID & 0xFFFFFFFF) >> 8 == 0x11C4; + } + + public bool IsXY() + { + return (TitleID & 0xFFFFFFFF) >> 8 == 0x55D || (TitleID & 0xFFFFFFFF) >> 8 == 0x55E; + } + + public string GetPokemonSerial() + { + if (!IsSupported()) + return "CTR-P-XXXX"; + string name = ((TitleID & 0xFFFFFFFF) >> 8) switch + { + 0x1B51 => "A2BA", // Ultra Moon + 0x1B50 => "A2AA", // Ultra Sun + 0x175E => "BNEA", // Moon + 0x1648 => "BNDA", // Sun + 0x11C5 => "ECLA", // Alpha Sapphire + 0x11C4 => "ECRA", // Omega Ruby + 0x055D => "EKJA", // X + 0x055E => "EK2A", // Y + _ => "XXXX", + }; + return "CTR-P-" + name; } -} +} \ No newline at end of file diff --git a/pk3DS.Core/CTR/FileFormat.cs b/pk3DS.Core/CTR/FileFormat.cs index 78948aa1c2..5022f3322a 100644 --- a/pk3DS.Core/CTR/FileFormat.cs +++ b/pk3DS.Core/CTR/FileFormat.cs @@ -4,182 +4,185 @@ using System.Text; using System.Text.RegularExpressions; -namespace pk3DS.Core.CTR +namespace pk3DS.Core.CTR; + +public static partial class FileFormat { - public static class FileFormat + internal const string defaultExtension = "bin"; + internal static readonly string[] validEXT = ["BCH"]; + + public static string Guess(string path) { - internal const string defaultExtension = "bin"; - internal static readonly string[] validEXT = {"BCH",}; + using var br = new BinaryReader(File.OpenRead(path)); + return Guess(br); + } - public static string Guess(string path) - { - string ext; - using (BinaryReader br = new BinaryReader(File.OpenRead(path))) - ext = Guess(br); - return ext; - } - public static string Guess(byte[] data) + public static string Guess(byte[] data) + { + using var br = new BinaryReader(new MemoryStream(data)); + return Guess(br); + } + + public static string Guess(MemoryStream ms, bool start = true) + { + using var br = new BinaryReader(ms); + return Guess(br, start); + } + + public static string Guess(BinaryReader br, bool start = true) + { + long position = br.BaseStream.Position; // Store current position to reset after. + + if (start) // Seek to top of stream if requested + br.BaseStream.Position = 0; + + // Guess Extension + if (GuessMini(br, out var ext)) + Console.WriteLine("Mini Packed File detected, extension type " + ext); + else if (GuessHeaderedDARC(br, out ext)) + Console.WriteLine("Headered DARC File detected, extension type " + ext); + else if (GuessBCLIM(br, out ext)) + Console.WriteLine("BCLIM File detected, extension type " + ext); + else if (GuessLZ11(br, out ext)) + Console.WriteLine("LZ11 Compressed File detected, extension type " + ext); + else if (Guess4CHAR(br, out ext)) + Console.WriteLine("4CHAR File detected, extension type " + ext); + else if (Guess3CHAR(br, out ext)) + Console.WriteLine("3CHAR File detected, extension type " + ext); + else ext = defaultExtension; // default + + // Return BaseStream position to the start. + br.BaseStream.Position = position; + return "." + ext; + } + + public static bool GuessMini(BinaryReader br, out string ext) + { + long position = br.BaseStream.Position; // Store current position to reset after. + ext = ""; // Reset extension + try { - string ext; - using (BinaryReader br = new BinaryReader(new MemoryStream(data))) - ext = Guess(br); - return ext; + // check for 2char container extensions + ushort magic = br.ReadUInt16(); + ushort count = br.ReadUInt16(); + br.BaseStream.Position = 4 + (4 * count); + if (br.ReadUInt32() == br.BaseStream.Length) + { + ext += (char)magic & 0xFF; + ext += (char)magic << 8; + } } - public static string Guess(MemoryStream ms, bool start = true) + catch { } + // Return BaseStream position to the start. + br.BaseStream.Position = position; + + return ext.Length > 0; + } + + public static bool GuessHeaderedDARC(BinaryReader br, out string ext) + { + long position = br.BaseStream.Position; // Store current position to reset after. + ext = ""; // Reset extension + try { - string ext; - using (BinaryReader br = new BinaryReader(ms)) - ext = Guess(br, start); - return ext; + byte[] magic = Encoding.ASCII.GetBytes(br.ReadChars(4)); + int count = BitConverter.ToUInt16(magic, 0); + br.BaseStream.Position = position + 4 + (0x40 * count); + uint tableval = br.ReadUInt32(); + br.BaseStream.Position += 0x20 * tableval; + while (br.PeekChar() == 0) // seek forward + br.ReadByte(); + if (br.ReadUInt32() == 0x63726164) + ext = "darc"; } - public static string Guess(BinaryReader br, bool start = true) - { - long position = br.BaseStream.Position; // Store current position to reset after. - - if (start) // Seek to top of stream if requested - br.BaseStream.Position = 0; - - // Guess Extension - string ext; - if (GuessMini(br, out ext)) - Console.WriteLine("Mini Packed File detected, extension type " + ext); - else if (GuessHeaderedDARC(br, out ext)) - Console.WriteLine("Headered DARC File detected, extension type " + ext); - else if (GuessBCLIM(br, out ext)) - Console.WriteLine("BCLIM File detected, extension type " + ext); - else if (GuessLZ11(br, out ext)) - Console.WriteLine("LZ11 Compressed File detected, extension type " + ext); - else if (Guess4CHAR(br, out ext)) - Console.WriteLine("4CHAR File detected, extension type " + ext); - else if (Guess3CHAR(br, out ext)) - Console.WriteLine("3CHAR File detected, extension type " + ext); - else ext = defaultExtension; // default + catch { } + // Return BaseStream position to the start. + br.BaseStream.Position = position; - // Return BaseStream position to the start. - br.BaseStream.Position = position; - return "." + ext; - } + return ext.Length > 0; + } - public static bool GuessMini(BinaryReader br, out string ext) + public static bool GuessBCLIM(BinaryReader br, out string ext) + { + long position = br.BaseStream.Position; // Store current position to reset after. + ext = ""; // Reset extension + try { - long position = br.BaseStream.Position; // Store current position to reset after. - ext = ""; // Reset extension - try + br.BaseStream.Position = br.BaseStream.Length - 0x28; + if (br.ReadUInt32() == 0x4D494C43) { - // check for 2char container extensions - ushort magic = br.ReadUInt16(); - ushort count = br.ReadUInt16(); - br.BaseStream.Position = 4 + 4 * count; - if (br.ReadUInt32() == br.BaseStream.Length) - { - ext += (char)magic & 0xFF; - ext += (char)magic << 8; - } + br.BaseStream.Position = br.BaseStream.Length - 0x4; + if (br.ReadUInt32() == br.BaseStream.Length - 0x28) + ext = "bclim"; } - catch { } - // Return BaseStream position to the start. - br.BaseStream.Position = position; - - return ext.Length > 0; } - public static bool GuessHeaderedDARC(BinaryReader br, out string ext) + catch { } + // Return BaseStream position to the start. + br.BaseStream.Position = position; + + return ext.Length > 0; + } + + public static bool GuessLZ11(BinaryReader br, out string ext) + { + long position = br.BaseStream.Position; // Store current position to reset after. + ext = ""; // Reset extension + try { - long position = br.BaseStream.Position; // Store current position to reset after. - ext = ""; // Reset extension - try - { - byte[] magic = Encoding.ASCII.GetBytes(br.ReadChars(4)); - int count = BitConverter.ToUInt16(magic, 0); - br.BaseStream.Position = position + 4 + 0x40 * count; - uint tableval = br.ReadUInt32(); - br.BaseStream.Position += 0x20 * tableval; - while (br.PeekChar() == 0) // seek forward - br.ReadByte(); - if (br.ReadUInt32() == 0x63726164) - ext = "darc"; - } - catch { } - // Return BaseStream position to the start. - br.BaseStream.Position = position; + int type = br.PeekChar(); + if (type != 0x11) + return false; + byte[] sizeBytes = new byte[3]; + br.Read(sizeBytes, 0, 3); - return ext.Length > 0; + int decompressedSize = sizeBytes[0] | sizeBytes[1] << 8 | sizeBytes[2]; + if (decompressedSize > br.BaseStream.Length && decompressedSize < br.BaseStream.Length * 10) // assuming 10x compression isn't feasible + ext = "lz"; // really weak LZ detection, at most 16MB } - public static bool GuessBCLIM(BinaryReader br, out string ext) + catch { } + br.BaseStream.Position = position; + return ext.Length > 0; + } + + public static bool Guess4CHAR(BinaryReader br, out string ext) + { + long position = br.BaseStream.Position; // Store current position to reset after. + ext = ""; // Reset extension + try { - long position = br.BaseStream.Position; // Store current position to reset after. - ext = ""; // Reset extension - try - { - br.BaseStream.Position = br.BaseStream.Length - 0x28; - if (br.ReadUInt32() == 0x4D494C43) - { - br.BaseStream.Position = br.BaseStream.Length - 0x4; - if (br.ReadUInt32() == br.BaseStream.Length - 0x28) - ext = "bclim"; - } - } - catch { } + byte[] magic = Encoding.ASCII.GetBytes(br.ReadChars(4)); + + Regex r = PatternAZ09(); + ext = Encoding.ASCII.GetString(magic); // Return BaseStream position to the start. br.BaseStream.Position = position; - return ext.Length > 0; + return r.IsMatch(ext) && ext.Length == 4; } - public static bool GuessLZ11(BinaryReader br, out string ext) - { - long position = br.BaseStream.Position; // Store current position to reset after. - ext = ""; // Reset extension - try - { - int type = br.PeekChar(); - if (type != 0x11) - return false; - byte[] sizeBytes = new byte[3]; - br.Read(sizeBytes, 0, 3); - - int decompressedSize = sizeBytes[0] | sizeBytes[1] << 8 | sizeBytes[2]; - if (decompressedSize > br.BaseStream.Length && decompressedSize < br.BaseStream.Length * 10) // assuming 10x compression isn't feasible - ext = "lz"; // really weak LZ detection, at most 16MB - } - catch { } - br.BaseStream.Position = position; - return ext.Length > 0; - } - public static bool Guess4CHAR(BinaryReader br, out string ext) - { - long position = br.BaseStream.Position; // Store current position to reset after. - ext = ""; // Reset extension - try - { - byte[] magic = Encoding.ASCII.GetBytes(br.ReadChars(4)); - - Regex r = new Regex("^[a-zA-Z0-9]*$"); - ext = Encoding.ASCII.GetString(magic); - // Return BaseStream position to the start. - br.BaseStream.Position = position; + catch { } + br.BaseStream.Position = position; + return false; + } - return r.IsMatch(ext) && ext.Length == 4; - } - catch { } - br.BaseStream.Position = position; - return false; - } - public static bool Guess3CHAR(BinaryReader br, out string ext) + public static bool Guess3CHAR(BinaryReader br, out string ext) + { + long position = br.BaseStream.Position; // Store current position to reset after. + ext = ""; // Reset extension + try { - long position = br.BaseStream.Position; // Store current position to reset after. - ext = ""; // Reset extension - try - { - byte[] magic = Encoding.ASCII.GetBytes(br.ReadChars(3)); - - ext = Encoding.ASCII.GetString(magic); - // Return BaseStream position to the start. - br.BaseStream.Position = position; + byte[] magic = Encoding.ASCII.GetBytes(br.ReadChars(3)); - return validEXT.Contains(ext); - } - catch { } + ext = Encoding.ASCII.GetString(magic); + // Return BaseStream position to the start. br.BaseStream.Position = position; - return false; + + return validEXT.Contains(ext); } + catch { } + br.BaseStream.Position = position; + return false; } -} + + [GeneratedRegex("^[a-zA-Z0-9]*$")] + private static partial Regex PatternAZ09(); +} \ No newline at end of file diff --git a/pk3DS.Core/CTR/GARC.cs b/pk3DS.Core/CTR/GARC.cs index 200ecb59d7..5a6c98c23e 100644 --- a/pk3DS.Core/CTR/GARC.cs +++ b/pk3DS.Core/CTR/GARC.cs @@ -2,141 +2,176 @@ using System.IO; using System.Linq; -namespace pk3DS.Core.CTR +namespace pk3DS.Core.CTR; + +#region GARC Class & Struct +public static class GARC { - #region GARC Class & Struct - public static class GARC + public const ushort VER_6 = 0x0600; + public const ushort VER_4 = 0x0400; + + public class FileCountDeterminedEventArgs : EventArgs { - public const ushort VER_6 = 0x0600; - public const ushort VER_4 = 0x0400; + public int Total { get; set; } + } - public class FileCountDeterminedEventArgs : EventArgs - { - public int Total { get; set; } - } + public class PackProgressedEventArgs : EventArgs + { + public int Current { get; set; } + public int Total { get; set; } + public string CurrentFile { get; set; } + } - public class PackProgressedEventArgs : EventArgs - { - public int Current { get; set; } - public int Total { get; set; } - public string CurrentFile { get; set; } - } + public class UnpackProgressedEventArgs : EventArgs + { + public int Current { get; set; } + public int Total { get; set; } + } - public class UnpackProgressedEventArgs : EventArgs - { - public int Current { get; set; } - public int Total { get; set; } - } + public static event EventHandler FileCountDetermined; + public static event EventHandler PackProgressed; + public static event EventHandler UnpackProgressed; + + public static int PackGARC(string folderPath, string garcPath, int version, int bytesPadding) + { + // Check to see if our input folder exists. + if (!new DirectoryInfo(folderPath).Exists) throw new DirectoryNotFoundException("Folder does not exist"); + if (version != VER_4 && version != VER_6) + throw new FormatException("Invalid GARC Version: 0x" + version.ToString("X4")); - public static event EventHandler FileCountDetermined; - public static event EventHandler PackProgressed; - public static event EventHandler UnpackProgressed; + // Okay some basic proofing is done. Proceed. + int filectr = 0; + // Get the paths of the files to pack up. + string[] files = Directory.GetFiles(folderPath); + string[] folders = Directory.GetDirectories(folderPath, "*.*", SearchOption.TopDirectoryOnly); - public static int garcPackMS(string folderPath, string garcPath, int version, int bytesPadding) + string[] packOrder = new string[files.Length + folders.Length]; + #region Reassemble a list of filenames. + try { - // Check to see if our input folder exists. - if (!new DirectoryInfo(folderPath).Exists) throw new DirectoryNotFoundException("Folder does not exist"); + foreach (string f in files) + { + string fn = Path.GetFileNameWithoutExtension(f); + int compressed = fn.IndexOf("dec_", StringComparison.Ordinal); + int fileNumber = compressed < 0 + ? int.Parse(fn) + : int.Parse(fn[(compressed + 4)..]); + + packOrder[fileNumber] = f; + filectr++; + } + foreach (string f in folders) + { + packOrder[int.Parse(new DirectoryInfo(f).Name)] = f; + filectr += Directory.GetFiles(f).Length; + } + } + catch (Exception e) { throw new Exception("Invalid packing filenames", e); } - if (version != VER_4 && version != VER_6) - throw new FormatException("Invalid GARC Version: 0x" + version.ToString("X4")); + FileCountDetermined?.Invoke(null, new FileCountDeterminedEventArgs { Total = filectr }); + #endregion - // Okay some basic proofing is done. Proceed. - int filectr = 0; - // Get the paths of the files to pack up. - string[] files = Directory.GetFiles(folderPath); - string[] folders = Directory.GetDirectories(folderPath, "*.*", SearchOption.TopDirectoryOnly); + // Set Up the GARC template. + var garc = new GARCFile + { + ContentPadToNearest = 4, + fato = + { + // Magic = new[] { 'O', 'T', 'A', 'F' }, + Entries = new FATO_Entry[packOrder.Length], + EntryCount = (ushort) packOrder.Length, + HeaderSize = 0xC + (packOrder.Length*4), + Padding = 0xFFFF, + }, + fatb = + { + // Magic = new[] { 'B', 'T', 'A', 'F' }, + Entries = new FATB_Entry[packOrder.Length], + FileCount = filectr, + }, + }; + if (version == VER_6) + { + // Some files have larger bytes-to-pad values (ex/ 0x80 for a109) + // Hopefully there's no problems defining this with a constant number. + garc.ContentPadToNearest = 4; + } - string[] packOrder = new string[files.Length + folders.Length]; - #region Reassemble a list of filenames. - try + #region Start Reassembling the FAT* tables. + { + int op = 0; + int od = 0; + int v = 0; + int index = 0; + for (int i = 0; i < garc.fatb.Entries.Length; i++) { - foreach (string f in files) + garc.fato.Entries[i].Offset = op; // FATO offset + garc.fatb.Entries[i].SubEntries = new FATB_SubEntry[32]; + op += 4; // Vector + if (!Directory.Exists(packOrder[i])) // is not folder { - string fn = Path.GetFileNameWithoutExtension(f); + garc.fatb.Entries[i].IsFolder = false; + garc.fatb.Entries[i].SubEntries[0].Exists = true; + + string fn = Path.GetFileNameWithoutExtension(packOrder[i]); int compressed = fn.IndexOf("dec_", StringComparison.Ordinal); int fileNumber = compressed < 0 ? int.Parse(fn) - : int.Parse(fn.Substring(compressed + 4)); + : int.Parse(fn[(compressed + 4)..]); - packOrder[fileNumber] = f; - filectr++; - } - foreach (string f in folders) - { - packOrder[int.Parse(new DirectoryInfo(f).Name)] = f; - filectr += Directory.GetFiles(f).Length; - } - } - catch (Exception e) { throw new Exception("Invalid packing filenames", e); } + if (compressed >= 0) + { + string old = packOrder[i]; + LZSS.Compress(packOrder[i], packOrder[i] = Path.Combine(Path.GetDirectoryName(packOrder[i]), fileNumber.ToString())); + File.Delete(old); + } - FileCountDetermined?.Invoke(null, new FileCountDeterminedEventArgs { Total = filectr }); - #endregion + // Assemble Vector + v = 1; - // Set Up the GARC template. - GARCFile garc = new GARCFile - { - ContentPadToNearest = 4, - fato = - { - // Magic = new[] { 'O', 'T', 'A', 'F' }, - Entries = new FATO_Entry[packOrder.Length], - EntryCount = (ushort) packOrder.Length, - HeaderSize = 0xC + packOrder.Length*4, - Padding = 0xFFFF - }, - fatb = - { - // Magic = new[] { 'B', 'T', 'A', 'F' }, - Entries = new FATB_Entry[packOrder.Length], - FileCount = filectr - } - }; - if (version == VER_6) - { - // Some files have larger bytes-to-pad values (ex/ 0x80 for a109) - // Hopefully there's no problems defining this with a constant number. - garc.ContentPadToNearest = 4; - } + // Assemble Entry + var fi = new FileInfo(packOrder[i]); + int actualLength = (int)(fi.Length % 4 == 0 ? fi.Length : fi.Length + 4 - (fi.Length % 4)); + garc.fatb.Entries[i].SubEntries[0].Start = od; + garc.fatb.Entries[i].SubEntries[0].End = actualLength + garc.fatb.Entries[i].SubEntries[0].Start; + garc.fatb.Entries[i].SubEntries[0].Length = (int)fi.Length; + od += actualLength; - #region Start Reassembling the FAT* tables. - { - int op = 0; - int od = 0; - int v = 0; - int index = 0; - for (int i = 0; i < garc.fatb.Entries.Length; i++) + op += 12; + + // Step + PackProgressed?.Invoke(null, new PackProgressedEventArgs { Current = index++, Total = filectr, CurrentFile = packOrder[i] }); + } + else { - garc.fato.Entries[i].Offset = op; // FATO offset - garc.fatb.Entries[i].SubEntries = new FATB_SubEntry[32]; - op += 4; // Vector - if (!Directory.Exists(packOrder[i])) // is not folder + garc.fatb.Entries[i].IsFolder = true; + string[] subFiles = Directory.GetFiles(packOrder[i]); + foreach (string f in subFiles) { - garc.fatb.Entries[i].IsFolder = false; - garc.fatb.Entries[i].SubEntries[0].Exists = true; - - string fn = Path.GetFileNameWithoutExtension(packOrder[i]); + string s = f; + string fn = Path.GetFileNameWithoutExtension(f); int compressed = fn.IndexOf("dec_", StringComparison.Ordinal); int fileNumber = compressed < 0 ? int.Parse(fn) - : int.Parse(fn.Substring(compressed + 4)); + : int.Parse(fn[(compressed + 4)..]); + garc.fatb.Entries[i].SubEntries[fileNumber].Exists = true; if (compressed >= 0) { - string old = packOrder[i]; - LZSS.Compress(packOrder[i], packOrder[i] = Path.Combine(Path.GetDirectoryName(packOrder[i]), fileNumber.ToString())); - File.Delete(old); + LZSS.Compress(f, s = Path.Combine(Path.GetDirectoryName(f), fileNumber.ToString())); + File.Delete(f); } // Assemble Vector - v = 1; + v |= 1 << fileNumber; // Assemble Entry - FileInfo fi = new FileInfo(packOrder[i]); - int actualLength = (int)(fi.Length % 4 == 0 ? fi.Length : fi.Length + 4 - fi.Length % 4); - garc.fatb.Entries[i].SubEntries[0].Start = od; - garc.fatb.Entries[i].SubEntries[0].End = actualLength + garc.fatb.Entries[i].SubEntries[0].Start; - garc.fatb.Entries[i].SubEntries[0].Length = (int)fi.Length; + var fi = new FileInfo(s); + int actualLength = (int)(fi.Length % 4 == 0 ? fi.Length : fi.Length + 4 - (fi.Length % 4)); + garc.fatb.Entries[i].SubEntries[fileNumber].Start = od; + garc.fatb.Entries[i].SubEntries[fileNumber].End = actualLength + garc.fatb.Entries[i].SubEntries[fileNumber].Start; + garc.fatb.Entries[i].SubEntries[fileNumber].Length = (int)fi.Length; od += actualLength; op += 12; @@ -144,756 +179,715 @@ public static int garcPackMS(string folderPath, string garcPath, int version, in // Step PackProgressed?.Invoke(null, new PackProgressedEventArgs { Current = index++, Total = filectr, CurrentFile = packOrder[i] }); } - else - { - garc.fatb.Entries[i].IsFolder = true; - string[] subFiles = Directory.GetFiles(packOrder[i]); - foreach (string f in subFiles) - { - string s = f; - string fn = Path.GetFileNameWithoutExtension(f); - int compressed = fn.IndexOf("dec_", StringComparison.Ordinal); - int fileNumber = compressed < 0 - ? int.Parse(fn) - : int.Parse(fn.Substring(compressed + 4)); - garc.fatb.Entries[i].SubEntries[fileNumber].Exists = true; - - if (compressed >= 0) - { - LZSS.Compress(f, s = Path.Combine(Path.GetDirectoryName(f), fileNumber.ToString())); - File.Delete(f); - } - - // Assemble Vector - v |= 1 << fileNumber; - - // Assemble Entry - FileInfo fi = new FileInfo(s); - int actualLength = (int)(fi.Length % 4 == 0 ? fi.Length : fi.Length + 4 - fi.Length % 4); - garc.fatb.Entries[i].SubEntries[fileNumber].Start = od; - garc.fatb.Entries[i].SubEntries[fileNumber].End = actualLength + garc.fatb.Entries[i].SubEntries[fileNumber].Start; - garc.fatb.Entries[i].SubEntries[fileNumber].Length = (int)fi.Length; - od += actualLength; - - op += 12; - - // Step - PackProgressed?.Invoke(null, new PackProgressedEventArgs { Current = index++, Total = filectr, CurrentFile = packOrder[i] }); - } - } - garc.fatb.Entries[i].Vector = (uint)v; } - garc.fatb.HeaderSize = 0xC + op; + garc.fatb.Entries[i].Vector = (uint)v; } - #endregion - - // Delete the old garc if it exists, then begin writing our new one - try { File.Delete(garcPath); } - catch { } - - // Set up the Header Info - using (var newGARC = new FileStream(garcPath, FileMode.Create)) - using (BinaryWriter gw = new BinaryWriter(newGARC)) - { - #region Write GARC Headers - // Write GARC - gw.Write((uint)0x47415243); // GARC - gw.Write((uint)(version == VER_6 ? 0x24 : 0x1C)); // Header Length - gw.Write((ushort)0xFEFF); // Endianness BOM - gw.Write((ushort)version); // Version - gw.Write((uint)0x00000004); // Section Count (4) - gw.Write((uint)0x00000000); // Data Offset (temp) - gw.Write((uint)0x00000000); // File Length (temp) - gw.Write((uint)0x00000000); // Largest File Size (temp) - - if (version == VER_6) - { - gw.Write((uint)0x0); - gw.Write((uint)0x0); - } - - // Write FATO - gw.Write((uint)0x4641544F); // FATO - gw.Write(garc.fato.HeaderSize); // Header Size - gw.Write(garc.fato.EntryCount); // Entry Count - gw.Write(garc.fato.Padding); // Padding - for (int i = 0; i < garc.fato.Entries.Length; i++) - gw.Write((uint)garc.fato.Entries[i].Offset); - - // Write FATB - gw.Write((uint)0x46415442); // FATB - gw.Write(garc.fatb.HeaderSize); // Header Size - gw.Write(garc.fatb.FileCount); // File Count - foreach (var e in garc.fatb.Entries) - { - gw.Write(e.Vector); - foreach (var s in e.SubEntries.Where(s => s.Exists)) - { gw.Write((uint)s.Start); gw.Write((uint)s.End); gw.Write((uint)s.Length); } - } + garc.fatb.HeaderSize = 0xC + op; + } + #endregion + + // Delete the old garc if it exists, then begin writing our new one + try { File.Delete(garcPath); } + catch { } + + // Set up the Header Info + using var newGARC = new FileStream(garcPath, FileMode.Create); + using var gw = new BinaryWriter(newGARC); + + #region Write GARC Headers + // Write GARC + gw.Write((uint)0x47415243); // GARC + gw.Write((uint)(version == VER_6 ? 0x24 : 0x1C)); // Header Length + gw.Write((ushort)0xFEFF); // Endianness BOM + gw.Write((ushort)version); // Version + gw.Write((uint)0x00000004); // Section Count (4) + gw.Write((uint)0x00000000); // Data Offset (temp) + gw.Write((uint)0x00000000); // File Length (temp) + gw.Write((uint)0x00000000); // Largest File Size (temp) + + if (version == VER_6) + { + gw.Write((uint)0x0); + gw.Write((uint)0x0); + } - // Write FIMB - gw.Write((uint)0x46494D42); // FIMB - gw.Write((uint)0x0000000C); // Header Length - var dataLen = gw.BaseStream.Position; - gw.Write((uint)0); // Data Length - TEMP + // Write FATO + gw.Write((uint)0x4641544F); // FATO + gw.Write(garc.fato.HeaderSize); // Header Size + gw.Write(garc.fato.EntryCount); // Entry Count + gw.Write(garc.fato.Padding); // Padding + foreach (var t in garc.fato.Entries) + gw.Write((uint)t.Offset); + + // Write FATB + gw.Write((uint)0x46415442); // FATB + gw.Write(garc.fatb.HeaderSize); // Header Size + gw.Write(garc.fatb.FileCount); // File Count + foreach (var e in garc.fatb.Entries) + { + gw.Write(e.Vector); + foreach (var s in e.SubEntries.Where(s => s.Exists)) + { gw.Write((uint)s.Start); gw.Write((uint)s.End); gw.Write((uint)s.Length); } + } - gw.Seek(0x10, SeekOrigin.Begin); // Goto the start of the un-set 0 data we set earlier and set it. - var hdrLen = gw.BaseStream.Position; - gw.Write((uint)0); // Write Data Offset - TEMP - gw.Write((uint)0); // Write total GARC Length - TEMP + // Write FIMB + gw.Write((uint)0x46494D42); // FIMB + gw.Write((uint)0x0000000C); // Header Length + var dataLen = gw.BaseStream.Position; + gw.Write((uint)0); // Data Length - TEMP - // Write Handling information - if (version == VER_4) - { - gw.Write(garc.ContentLargestUnpadded); // Write Largest File stat - } - else if (version == VER_6) - { - gw.Write(garc.ContentLargestPadded); // Write Largest With Padding - gw.Write(garc.ContentLargestUnpadded); // Write Largest Without Padding - gw.Write(garc.ContentPadToNearest); - } + gw.Seek(0x10, SeekOrigin.Begin); // Goto the start of the un-set 0 data we set earlier and set it. + var hdrLen = gw.BaseStream.Position; + gw.Write((uint)0); // Write Data Offset - TEMP + gw.Write((uint)0); // Write total GARC Length - TEMP - newGARC.Seek(0, SeekOrigin.End); // Goto the end so we can copy the filedata after the GARC headers. - - #endregion + // Write Handling information + if (version == VER_4) + { + gw.Write(garc.ContentLargestUnpadded); // Write Largest File stat + } + else if (version == VER_6) + { + gw.Write(garc.ContentLargestPadded); // Write Largest With Padding + gw.Write(garc.ContentLargestUnpadded); // Write Largest Without Padding + gw.Write(garc.ContentPadToNearest); + } - #region Write Files - var ghLength = gw.BaseStream.Length; + newGARC.Seek(0, SeekOrigin.End); // Goto the end so we can copy the filedata after the GARC headers. - long largestSize = 0; // Required memory to allocate to handle the largest file - long largestPadded = 0; // Required memory to allocate to handle the largest PADDED file (Ver6 only) - foreach (string e in packOrder) - { - string[] fa = Directory.Exists(e) ? Directory.GetFiles(e) : new[] { e }; - foreach (string f in fa) - { - // Update largest file length if necessary - long len = new FileInfo(f).Length; - int padding = (int)(len % bytesPadding); - if (padding != 0) padding = bytesPadding - padding; - bool largest = len > largestSize; - if (largest) - { - largestSize = len; - largestPadded = len + padding; - } + #endregion - // Write to FIMB - using (var x = File.OpenRead(f)) - x.CopyTo(newGARC); + #region Write Files + var ghLength = gw.BaseStream.Length; - // While length is not divisible by 4, pad with FF (unused byte) - while (padding-- > 0) - gw.Write((byte)0xFF); - } + long largestSize = 0; // Required memory to allocate to handle the largest file + long largestPadded = 0; // Required memory to allocate to handle the largest PADDED file (Ver6 only) + foreach (string e in packOrder) + { + string[] fa = Directory.Exists(e) ? Directory.GetFiles(e) : [e]; + foreach (string f in fa) + { + // Update largest file length if necessary + long len = new FileInfo(f).Length; + int padding = (int)(len % bytesPadding); + if (padding != 0) padding = bytesPadding - padding; + bool largest = len > largestSize; + if (largest) + { + largestSize = len; + largestPadded = len + padding; } - garc.ContentLargestUnpadded = (uint)largestSize; - garc.ContentLargestPadded = (uint)largestPadded; - var gdLength = gw.BaseStream.Length - ghLength; - #endregion - gw.Seek((int)dataLen, SeekOrigin.Begin); - gw.Write((uint)gdLength); // Data Length - gw.Seek((int)hdrLen, SeekOrigin.Begin); - gw.Write((uint)ghLength); // Write Data Offset - gw.Write((uint)gw.BaseStream.Length); // Write total GARC Length + // Write to FIMB + using (var x = File.OpenRead(f)) + x.CopyTo(newGARC); - // Write Handling information - if (version == VER_4) - { - gw.Write(garc.ContentLargestUnpadded); // Write Largest File stat - } - else if (version == VER_6) - { - gw.Write(garc.ContentLargestPadded); // Write Largest With Padding - gw.Write(garc.ContentLargestUnpadded); // Write Largest Without Padding - gw.Write(garc.ContentPadToNearest); - } - - return filectr; + // While length is not divisible by 4, pad with FF (unused byte) + while (padding-- > 0) + gw.Write((byte)0xFF); } } - public static int garcUnpack(string garcPath, string outPath, bool skipDecompression) + garc.ContentLargestUnpadded = (uint)largestSize; + garc.ContentLargestPadded = (uint)largestPadded; + var gdLength = gw.BaseStream.Length - ghLength; + #endregion + + gw.Seek((int)dataLen, SeekOrigin.Begin); + gw.Write((uint)gdLength); // Data Length + gw.Seek((int)hdrLen, SeekOrigin.Begin); + gw.Write((uint)ghLength); // Write Data Offset + gw.Write((uint)gw.BaseStream.Length); // Write total GARC Length + + // Write Handling information + if (version == VER_4) { - if (!File.Exists(garcPath)) throw new FileNotFoundException("File does not exist"); + gw.Write(garc.ContentLargestUnpadded); // Write Largest File stat + } + else if (version == VER_6) + { + gw.Write(garc.ContentLargestPadded); // Write Largest With Padding + gw.Write(garc.ContentLargestUnpadded); // Write Largest Without Padding + gw.Write(garc.ContentPadToNearest); + } - // Unpack the GARC - GARCFile garc = unpackGARC(garcPath); - const string ext = "bin"; // Default Extension Name - int fileCount = garc.fatb.FileCount; - string format = "D" + Math.Ceiling(Math.Log10(fileCount)); - if (outPath == "gametext") - format = "D3"; + return filectr; + } - FileCountDetermined?.Invoke(null, new FileCountDeterminedEventArgs { Total = fileCount }); + public static int GarcUnpack(string garcPath, string outPath, bool skipDecompression) + { + if (!File.Exists(garcPath)) throw new FileNotFoundException("File does not exist"); + + // Unpack the GARC + GARCFile garc = UnpackGARC(garcPath); + const string ext = "bin"; // Default Extension Name + int fileCount = garc.fatb.FileCount; + string format = "D" + Math.Ceiling(Math.Log10(fileCount)); + if (outPath == "gametext") + format = "D3"; + + FileCountDetermined?.Invoke(null, new FileCountDeterminedEventArgs { Total = fileCount }); + + using var br = new BinaryReader(File.OpenRead(garcPath)); + // Create Extraction folder if it does not exist. + if (!Directory.Exists(outPath)) + Directory.CreateDirectory(outPath); + + int filectr = 0; + // Pull out all the files + for (int o = 0; o < garc.fato.EntryCount; o++) + { + var Entry = garc.fatb.Entries[o]; + // Set Entry File Name + string fileName = o.ToString(format); + + #region OutDirectory Determination + string parentFolder = Entry.IsFolder ? Path.Combine(outPath, fileName) : outPath; + if (Entry.IsFolder) // Process Folder + Directory.CreateDirectory(parentFolder); + #endregion - using (BinaryReader br = new BinaryReader(File.OpenRead(garcPath))) + uint vector = Entry.Vector; + for (int i = 0; i < 32; i++) // For each bit in vector { - // Create Extraction folder if it does not exist. - if (!Directory.Exists(outPath)) - Directory.CreateDirectory(outPath); - - int filectr = 0; - // Pull out all the files - for (int o = 0; o < garc.fato.EntryCount; o++) - { + var SubEntry = Entry.SubEntries[i]; + if (!SubEntry.Exists) continue; - var Entry = garc.fatb.Entries[o]; - // Set Entry File Name - string fileName = o.ToString(format); + // Seek to Offset + br.BaseStream.Position = SubEntry.Start + garc.DataOffset; - #region OutDirectory Determination - string parentFolder = Entry.IsFolder ? Path.Combine(outPath, fileName) : outPath; - if (Entry.IsFolder) // Process Folder - Directory.CreateDirectory(parentFolder); - #endregion + // Check if Compressed + bool compressed = false; + if (!skipDecompression) + { + try { compressed = (byte)br.PeekChar() == 0x11; } + catch { } + } - uint vector = Entry.Vector; - for (int i = 0; i < 32; i++) // For each bit in vector + // Write File + string fileOut = Path.Combine(parentFolder, (Entry.IsFolder ? i.ToString("00") : fileName) + "." + ext); + using (var bw = new BinaryWriter(File.OpenWrite(fileOut))) + { + // Write out the data for the file + br.BaseStream.Position = SubEntry.Start + garc.DataOffset; + bw.Write(br.ReadBytes(SubEntry.Length)); + filectr++; + } + if (compressed) + #region Decompression + { + string decout = Path.Combine(Path.GetDirectoryName(fileOut), "dec_" + Path.GetFileName(fileOut)); + try + { + LZSS.Decompress(fileOut, decout); + try { File.Delete(fileOut); } + catch (Exception e) { throw new Exception("A compressed file could not be deleted: " + fileOut, e); } + } + catch { - var SubEntry = Entry.SubEntries[i]; - if (!SubEntry.Exists) continue; + // File is really not encrypted. + File.Delete(decout); + } + } + #endregion - // Seek to Offset - br.BaseStream.Position = SubEntry.Start + garc.DataOffset; + UnpackProgressed?.Invoke(null, new UnpackProgressedEventArgs { Current = filectr, Total = fileCount }); - // Check if Compressed - bool compressed = false; - if (!skipDecompression) - try { compressed = (byte)br.PeekChar() == 0x11; } - catch { } + if ((vector >>= 1) == 0) break; + } + } - // Write File - string fileOut = Path.Combine(parentFolder, (Entry.IsFolder ? i.ToString("00") : fileName) + "." + ext); - using (BinaryWriter bw = new BinaryWriter(File.OpenWrite(fileOut))) - { - // Write out the data for the file - br.BaseStream.Position = SubEntry.Start + garc.DataOffset; - bw.Write(br.ReadBytes(SubEntry.Length)); - filectr++; - } - if (compressed) - #region Decompression - { - string decout = Path.Combine(Path.GetDirectoryName(fileOut), "dec_" + Path.GetFileName(fileOut)); - try - { - LZSS.Decompress(fileOut, decout); - try { File.Delete(fileOut); } - catch (Exception e) { throw new Exception("A compressed file could not be deleted: " + fileOut, e); } - } - catch - { - // File is really not encrypted. - File.Delete(decout); - } - } - #endregion + return fileCount; + } - UnpackProgressed?.Invoke(null, new UnpackProgressedEventArgs { Current = filectr, Total = fileCount }); + public static GARCFile UnpackGARC(string path) + { + return UnpackGARC(File.OpenRead(path)); + } - if ((vector >>= 1) == 0) break; - } - } - } - return fileCount; - } + private static GARCFile UnpackGARC(byte[] data) + { + using var gd = new MemoryStream(data); + return UnpackGARC(gd); + } - public static GARCFile unpackGARC(string path) + private static GARCFile UnpackGARC(Stream stream) + { + using var br = new BinaryReader(stream); + var garc = new GARCFile { - return unpackGARC(File.OpenRead(path)); + Magic = br.ReadChars(4), + HeaderSize = br.ReadUInt32(), + Endianess = br.ReadUInt16(), + Version = br.ReadUInt16(), + ChunkCount = br.ReadUInt32(), + DataOffset = br.ReadUInt32(), + FileSize = br.ReadUInt32(), + }; + // GARC Header + + if (garc.Version == VER_4) + { + garc.ContentLargestUnpadded = br.ReadUInt32(); + garc.ContentPadToNearest = 4; } - private static GARCFile unpackGARC(byte[] data) + else if (garc.Version == VER_6) { - GARCFile garc; - using (var gd = new MemoryStream(data)) - garc = unpackGARC(gd); - return garc; + garc.ContentLargestPadded = br.ReadUInt32(); + garc.ContentLargestUnpadded = br.ReadUInt32(); + garc.ContentPadToNearest = br.ReadUInt32(); } - private static GARCFile unpackGARC(Stream stream) + else { - GARCFile garc = new GARCFile(); - using (BinaryReader br = new BinaryReader(stream)) - { - // GARC Header - garc.Magic = br.ReadChars(4); - garc.HeaderSize = br.ReadUInt32(); - garc.Endianess = br.ReadUInt16(); - garc.Version = br.ReadUInt16(); - garc.ChunkCount = br.ReadUInt32(); - - garc.DataOffset = br.ReadUInt32(); - garc.FileSize = br.ReadUInt32(); - if (garc.Version == VER_4) - { - garc.ContentLargestUnpadded = br.ReadUInt32(); - garc.ContentPadToNearest = 4; - } - else if (garc.Version == VER_6) - { - garc.ContentLargestPadded = br.ReadUInt32(); - garc.ContentLargestUnpadded = br.ReadUInt32(); - garc.ContentPadToNearest = br.ReadUInt32(); - } - else - throw new FormatException("Invalid GARC Version: 0x" + garc.Version.ToString("X4")); - if (garc.ChunkCount != 4) - throw new FormatException("Invalid GARC Chunk Count: " + garc.ChunkCount); - - // FATO (File Allocation Table Offsets) - garc.fato.Magic = br.ReadChars(4); - garc.fato.HeaderSize = br.ReadInt32(); - garc.fato.EntryCount = br.ReadUInt16(); - garc.fato.Padding = br.ReadUInt16(); - - garc.fato.Entries = new FATO_Entry[garc.fato.EntryCount]; - for (int i = 0; i < garc.fato.EntryCount; i++) - garc.fato.Entries[i].Offset = br.ReadInt32(); - - // FATB (File Allocation Table Bits) - garc.fatb.Magic = br.ReadChars(4); - garc.fatb.HeaderSize = br.ReadInt32(); - garc.fatb.FileCount = br.ReadInt32(); - - garc.fatb.Entries = new FATB_Entry[garc.fato.EntryCount]; - for (int i = 0; i < garc.fato.EntryCount; i++) // Loop through all FATO entries - { - garc.fatb.Entries[i].Vector = br.ReadUInt32(); - garc.fatb.Entries[i].SubEntries = new FATB_SubEntry[32]; - uint bitvector = garc.fatb.Entries[i].Vector; - int ctr = 0; - for (int b = 0; b < 32; b++) - { - garc.fatb.Entries[i].SubEntries[b].Exists = (bitvector & 1) == 1; - bitvector >>= 1; - if (!garc.fatb.Entries[i].SubEntries[b].Exists) continue; - garc.fatb.Entries[i].SubEntries[b].Start = br.ReadInt32(); - garc.fatb.Entries[i].SubEntries[b].End = br.ReadInt32(); - garc.fatb.Entries[i].SubEntries[b].Length = br.ReadInt32(); - ctr++; - } - garc.fatb.Entries[i].IsFolder = ctr > 1; - } + throw new FormatException("Invalid GARC Version: 0x" + garc.Version.ToString("X4")); + } + + if (garc.ChunkCount != 4) + throw new FormatException("Invalid GARC Chunk Count: " + garc.ChunkCount); + + // FATO (File Allocation Table Offsets) + garc.fato.Magic = br.ReadChars(4); + garc.fato.HeaderSize = br.ReadInt32(); + garc.fato.EntryCount = br.ReadUInt16(); + garc.fato.Padding = br.ReadUInt16(); - // FIMB (File IMage Bytes) - garc.fimg.Magic = br.ReadChars(4); - garc.fimg.HeaderSize = br.ReadInt32(); - garc.fimg.DataSize = br.ReadInt32(); + garc.fato.Entries = new FATO_Entry[garc.fato.EntryCount]; + for (int i = 0; i < garc.fato.EntryCount; i++) + garc.fato.Entries[i].Offset = br.ReadInt32(); - // Files data - // Oftentimes too large to toss into a byte array. Fetch as needed with a BinaryReader. + // FATB (File Allocation Table Bits) + garc.fatb.Magic = br.ReadChars(4); + garc.fatb.HeaderSize = br.ReadInt32(); + garc.fatb.FileCount = br.ReadInt32(); + + garc.fatb.Entries = new FATB_Entry[garc.fato.EntryCount]; + for (int i = 0; i < garc.fato.EntryCount; i++) // Loop through all FATO entries + { + garc.fatb.Entries[i].Vector = br.ReadUInt32(); + garc.fatb.Entries[i].SubEntries = new FATB_SubEntry[32]; + uint bitvector = garc.fatb.Entries[i].Vector; + int ctr = 0; + for (int b = 0; b < 32; b++) + { + garc.fatb.Entries[i].SubEntries[b].Exists = (bitvector & 1) == 1; + bitvector >>= 1; + if (!garc.fatb.Entries[i].SubEntries[b].Exists) continue; + garc.fatb.Entries[i].SubEntries[b].Start = br.ReadInt32(); + garc.fatb.Entries[i].SubEntries[b].End = br.ReadInt32(); + garc.fatb.Entries[i].SubEntries[b].Length = br.ReadInt32(); + ctr++; } - return garc; + garc.fatb.Entries[i].IsFolder = ctr > 1; } - public static MemGARC packGARC(byte[][] data, int version, int contentpadnearest) + // FIMB (File IMage Bytes) + garc.fimg.Magic = br.ReadChars(4); + garc.fimg.HeaderSize = br.ReadInt32(); + garc.fimg.DataSize = br.ReadInt32(); + + // Files data + // Oftentimes too large to toss into a byte array. Fetch as needed with a BinaryReader. + return garc; + } + + public static MemGARC PackGARC(byte[][] data, int version, int contentpadnearest) + { + if (contentpadnearest < 0) + contentpadnearest = 4; + // Set Up the GARC template. + var garc = new GARCFile { - if (contentpadnearest < 0) - contentpadnearest = 4; - // Set Up the GARC template. - GARCFile garc = new GARCFile + ContentPadToNearest = (uint)contentpadnearest, + fato = { - ContentPadToNearest = (uint)contentpadnearest, - fato = - { - // Magic = new[] { 'O', 'T', 'A', 'F' }, - Entries = new FATO_Entry[data.Length], - EntryCount = (ushort) data.Length, - HeaderSize = 0xC + data.Length*4, - Padding = 0xFFFF - }, - fatb = - { - // Magic = new[] { 'B', 'T', 'A', 'F' }, - Entries = new FATB_Entry[data.Length], - FileCount = data.Length - } - }; + // Magic = new[] { 'O', 'T', 'A', 'F' }, + Entries = new FATO_Entry[data.Length], + EntryCount = (ushort) data.Length, + HeaderSize = 0xC + (data.Length*4), + Padding = 0xFFFF, + }, + fatb = + { + // Magic = new[] { 'B', 'T', 'A', 'F' }, + Entries = new FATB_Entry[data.Length], + FileCount = data.Length, + }, + }; + + if (version == VER_6) + garc.ContentPadToNearest = 4; + + int op = 0; + int od = 0; + for (int i = 0; i < garc.fatb.Entries.Length; i++) + { + garc.fato.Entries[i].Offset = op; // FATO offset + garc.fatb.Entries[i].SubEntries = new FATB_SubEntry[32]; + op += 4; // Vector + garc.fatb.Entries[i].IsFolder = false; + garc.fatb.Entries[i].SubEntries[0].Exists = true; + + // Assemble Entry + var paddingRequired = data[i].Length % garc.ContentPadToNearest; + if (paddingRequired != 0) paddingRequired = garc.ContentPadToNearest - paddingRequired; + int actualLength = data[i].Length + (int)paddingRequired; + garc.fatb.Entries[i].SubEntries[0].Start = od; + garc.fatb.Entries[i].SubEntries[0].End = actualLength + garc.fatb.Entries[i].SubEntries[0].Start; + garc.fatb.Entries[i].SubEntries[0].Length = data[i].Length; + garc.fatb.Entries[i].SubEntries[0].Padding = (int)paddingRequired; + od += actualLength; + + op += 12; + garc.fatb.Entries[i].Vector = 1; + } + garc.fatb.HeaderSize = 0xC + op; - if (version == VER_6) - garc.ContentPadToNearest = 4; + // Set up the Header Info + string tempFile = Path.GetTempFileName(); + using (var newGARC = new FileStream(tempFile, FileMode.Create)) + using (var gw = new BinaryWriter(newGARC)) + { + #region Write GARC Headers + + // Write GARC + gw.Write((uint)0x47415243); // GARC + gw.Write((uint)(version == VER_6 ? 0x24 : 0x1C)); // Header Length + gw.Write((ushort)0xFEFF); // Endianness BOM + gw.Write((ushort)version); // Version + gw.Write((uint)0x00000004); // Section Count (4) + gw.Write((uint)0x00000000); // Data Offset (temp) + gw.Write((uint)0x00000000); // File Length (temp) + gw.Write((uint)0x00000000); // Largest File Size (temp) - int op = 0; - int od = 0; - for (int i = 0; i < garc.fatb.Entries.Length; i++) + if (version == VER_6) { - garc.fato.Entries[i].Offset = op; // FATO offset - garc.fatb.Entries[i].SubEntries = new FATB_SubEntry[32]; - op += 4; // Vector - garc.fatb.Entries[i].IsFolder = false; - garc.fatb.Entries[i].SubEntries[0].Exists = true; - - // Assemble Entry - var paddingRequired = data[i].Length%garc.ContentPadToNearest; - if (paddingRequired != 0) paddingRequired = garc.ContentPadToNearest - paddingRequired; - int actualLength = data[i].Length + (int)paddingRequired; - garc.fatb.Entries[i].SubEntries[0].Start = od; - garc.fatb.Entries[i].SubEntries[0].End = actualLength + garc.fatb.Entries[i].SubEntries[0].Start; - garc.fatb.Entries[i].SubEntries[0].Length = data[i].Length; - garc.fatb.Entries[i].SubEntries[0].Padding = (int)paddingRequired; - od += actualLength; - - op += 12; - garc.fatb.Entries[i].Vector = 1; + gw.Write((uint)0x0); + gw.Write((uint)0x0); } - garc.fatb.HeaderSize = 0xC + op; - // Set up the Header Info - string tempFile = Path.GetTempFileName(); - using (var newGARC = new FileStream(tempFile, FileMode.Create)) - using (BinaryWriter gw = new BinaryWriter(newGARC)) + // Write FATO + gw.Write((uint)0x4641544F); // FATO + gw.Write(garc.fato.HeaderSize); // Header Size + gw.Write(garc.fato.EntryCount); // Entry Count + gw.Write(garc.fato.Padding); // Padding + foreach (var t in garc.fato.Entries) + gw.Write((uint)t.Offset); + + // Write FATB + gw.Write((uint)0x46415442); // FATB + gw.Write(garc.fatb.HeaderSize); // Header Size + gw.Write(garc.fatb.FileCount); // File Count + foreach (var e in garc.fatb.Entries) { - #region Write GARC Headers - - // Write GARC - gw.Write((uint) 0x47415243); // GARC - gw.Write((uint) (version == VER_6 ? 0x24 : 0x1C)); // Header Length - gw.Write((ushort) 0xFEFF); // Endianness BOM - gw.Write((ushort) version); // Version - gw.Write((uint) 0x00000004); // Section Count (4) - gw.Write((uint) 0x00000000); // Data Offset (temp) - gw.Write((uint) 0x00000000); // File Length (temp) - gw.Write((uint) 0x00000000); // Largest File Size (temp) - - if (version == VER_6) + gw.Write(e.Vector); + foreach (var s in e.SubEntries.Where(s => s.Exists)) { - gw.Write((uint) 0x0); - gw.Write((uint) 0x0); + gw.Write((uint)s.Start); + gw.Write((uint)s.End); + gw.Write((uint)s.Length); } + } - // Write FATO - gw.Write((uint) 0x4641544F); // FATO - gw.Write(garc.fato.HeaderSize); // Header Size - gw.Write(garc.fato.EntryCount); // Entry Count - gw.Write(garc.fato.Padding); // Padding - for (int i = 0; i < garc.fato.Entries.Length; i++) - gw.Write((uint) garc.fato.Entries[i].Offset); - - // Write FATB - gw.Write((uint) 0x46415442); // FATB - gw.Write(garc.fatb.HeaderSize); // Header Size - gw.Write(garc.fatb.FileCount); // File Count - foreach (var e in garc.fatb.Entries) - { - gw.Write(e.Vector); - foreach (var s in e.SubEntries.Where(s => s.Exists)) - { - gw.Write((uint) s.Start); - gw.Write((uint) s.End); - gw.Write((uint) s.Length); - } - } + gw.Write((uint)0x46494D42); // FIMB + gw.Write((uint)0x0000000C); // Header Length + var dataLen = gw.BaseStream.Position; + gw.Write((uint)0); // Data Length - TEMP - gw.Write((uint) 0x46494D42); // FIMB - gw.Write((uint) 0x0000000C); // Header Length - var dataLen = gw.BaseStream.Position; - gw.Write((uint) 0); // Data Length - TEMP + gw.Seek(0x10, SeekOrigin.Begin); // Goto the start of the un-set 0 data we set earlier and set it. + var hdrLen = gw.BaseStream.Position; + gw.Write((uint)0); // Write Data Offset - TEMP + gw.Write((uint)0); // Write total GARC Length - TEMP - gw.Seek(0x10, SeekOrigin.Begin); // Goto the start of the un-set 0 data we set earlier and set it. - var hdrLen = gw.BaseStream.Position; - gw.Write((uint) 0); // Write Data Offset - TEMP - gw.Write((uint) 0); // Write total GARC Length - TEMP + // Write Handling information + if (version == VER_4) + { + gw.Write(garc.ContentLargestUnpadded); // Write Largest File stat + } + else if (version == VER_6) + { + gw.Write(garc.ContentLargestPadded); // Write Largest With Padding + gw.Write(garc.ContentLargestUnpadded); // Write Largest Without Padding + gw.Write(garc.ContentPadToNearest); + } - // Write Handling information - if (version == VER_4) - { - gw.Write(garc.ContentLargestUnpadded); // Write Largest File stat - } - else if (version == VER_6) - { - gw.Write(garc.ContentLargestPadded); // Write Largest With Padding - gw.Write(garc.ContentLargestUnpadded); // Write Largest Without Padding - gw.Write(garc.ContentPadToNearest); - } + newGARC.Seek(0, SeekOrigin.End); // Goto the end so we can copy the filedata after the GARC headers. - newGARC.Seek(0, SeekOrigin.End); // Goto the end so we can copy the filedata after the GARC headers. + #endregion - #endregion + #region Write Files - #region Write Files + var ghLength = gw.BaseStream.Length; - var ghLength = gw.BaseStream.Length; + long largestSize = 0; // Required memory to allocate to handle the largest file + long largestPadded = 0; // Required memory to allocate to handle the largest PADDED file (Ver6 only) + for (int i = 0; i < data.Length; i++) + { + byte[] e = data[i]; - long largestSize = 0; // Required memory to allocate to handle the largest file - long largestPadded = 0; // Required memory to allocate to handle the largest PADDED file (Ver6 only) - for (int i = 0; i < data.Length; i++) + // Update largest file length if necessary + int len = e.Length; + int padding = garc.fatb.Entries[i].SubEntries[0].Padding; + bool largest = len > largestSize; + if (largest) { - byte[] e = data[i]; - - // Update largest file length if necessary - int len = e.Length; - int padding = garc.fatb.Entries[i].SubEntries[0].Padding; - bool largest = len > largestSize; - if (largest) - { - largestSize = len; - largestPadded = len + padding; - } - - // Write to FIMB - gw.Write(e); - - // Pad with FF (unused byte) - while (padding-- > 0) - gw.Write((byte)0xFF); + largestSize = len; + largestPadded = len + padding; } - garc.ContentLargestUnpadded = (uint)largestSize; - garc.ContentLargestPadded = (uint)largestPadded; - var gdLength = gw.BaseStream.Length - ghLength; - - #endregion - gw.Seek((int)dataLen, SeekOrigin.Begin); - gw.Write((uint)gdLength); // Data Length - gw.Seek((int)hdrLen, SeekOrigin.Begin); - gw.Write((uint)ghLength); // Write Data Offset - gw.Write((uint)gw.BaseStream.Length); // Write total GARC Length + // Write to FIMB + gw.Write(e); - if (version == VER_4) - { - gw.Write(garc.ContentLargestUnpadded); // Write Largest File stat - } - else if (version == VER_6) - { - gw.Write(garc.ContentLargestPadded); // Write Largest With Padding - gw.Write(garc.ContentLargestUnpadded); // Write Largest Without Padding - gw.Write(garc.ContentPadToNearest); - } + // Pad with FF (unused byte) + while (padding-- > 0) + gw.Write((byte)0xFF); } + garc.ContentLargestUnpadded = (uint)largestSize; + garc.ContentLargestPadded = (uint)largestPadded; + var gdLength = gw.BaseStream.Length - ghLength; - byte[] GARCdata = File.ReadAllBytes(tempFile); - File.Delete(tempFile); - return new MemGARC(GARCdata); - } + #endregion - public class MemGARC - { - internal GARCFile garc; - internal byte[] Data; - public int FileCount => garc.fato.EntryCount; + gw.Seek((int)dataLen, SeekOrigin.Begin); + gw.Write((uint)gdLength); // Data Length + gw.Seek((int)hdrLen, SeekOrigin.Begin); + gw.Write((uint)ghLength); // Write Data Offset + gw.Write((uint)gw.BaseStream.Length); // Write total GARC Length - public MemGARC(byte[] data) + if (version == VER_4) { - Data = data; - garc = unpackGARC(data); + gw.Write(garc.ContentLargestUnpadded); // Write Largest File stat } + else if (version == VER_6) + { + gw.Write(garc.ContentLargestPadded); // Write Largest With Padding + gw.Write(garc.ContentLargestUnpadded); // Write Largest Without Padding + gw.Write(garc.ContentPadToNearest); + } + } + + byte[] GARCdata = File.ReadAllBytes(tempFile); + File.Delete(tempFile); + return new MemGARC(GARCdata); + } - // Returns an individual file - public byte[] getFile(int file, int subfile = 0) + public class MemGARC(byte[] data) + { + internal GARCFile garc = UnpackGARC(data); + internal byte[] Data = data; + public int FileCount => garc.fato.EntryCount; + + // Returns an individual file + public byte[] GetFile(int file, int subfile = 0) + { + var Entry = garc.fatb.Entries[file]; + var SubEntry = Entry.SubEntries[subfile]; + if (!SubEntry.Exists) + throw new ArgumentException("SubFile does not exist."); + var offset = SubEntry.Start + garc.DataOffset; + byte[] data = new byte[SubEntry.Length]; + Array.Copy(Data, offset, data, 0, data.Length); + return data; + } + + // Returns all files (excluding language vectorized) + public byte[][] Files + { + get { - var Entry = garc.fatb.Entries[file]; - var SubEntry = Entry.SubEntries[subfile]; - if (!SubEntry.Exists) - throw new ArgumentException("SubFile does not exist."); - var offset = SubEntry.Start + garc.DataOffset; - byte[] data = new byte[SubEntry.Length]; - Array.Copy(Data, offset, data, 0, data.Length); + byte[][] data = new byte[FileCount][]; + for (int i = 0; i < data.Length; i++) + data[i] = GetFile(i); return data; } - - // Returns all files (excluding language vectorized) - public byte[][] Files + set { - get - { - byte[][] data = new byte[FileCount][]; - for (int i = 0; i < data.Length; i++) - data[i] = getFile(i); - return data; - } - set - { - if (value == null || value.Length != FileCount) - throw new ArgumentException(); + if (value == null || value.Length != FileCount) + throw new ArgumentException(); - var ng = packGARC(value, garc.Version, (int)garc.ContentPadToNearest); - garc = ng.garc; - Data = ng.Data; - } + var ng = PackGARC(value, garc.Version, (int)garc.ContentPadToNearest); + garc = ng.garc; + Data = ng.Data; } } + } - /// - /// GARC Class that is heavier on OOP to allow for compression tracking for faster edits - /// - public class lzGARC - { - private GARCFile garc; - private byte[] Data; - public int FileCount => garc.fato.EntryCount; + /// + /// GARC Class that is heavier on OOP to allow for compression tracking for faster edits + /// + public class LazyGARC + { + private GARCFile garc; + private byte[] Data; + public int FileCount => garc.fato.EntryCount; - public lzGARC(byte[] data) - { - Data = data; - garc = unpackGARC(data); - Storage = new GARCEntry[FileCount]; - } + public LazyGARC(byte[] data) + { + Data = data; + garc = UnpackGARC(data); + Storage = new GARCEntry[FileCount]; + } - private readonly GARCEntry[] Storage; - private class GARCEntry - { - public bool Accessed; - public bool Saved; - public byte[] Data; - public readonly bool WasCompressed; + private readonly GARCEntry[] Storage; - public GARCEntry() { } - public GARCEntry(byte[] data) - { - Data = data; - Accessed = true; + private class GARCEntry + { + public bool Saved; + public byte[] Data; + private readonly bool WasCompressed; - if (data.Length == 0) - return; + public GARCEntry(byte[] data) + { + Data = data; - if (data[0] != 0x11) - return; + if (data.Length == 0) + return; - try - { - using (MemoryStream newMS = new MemoryStream()) - { - LZSS.Decompress(new MemoryStream(data), data.Length, newMS); - Data = newMS.ToArray(); - } - WasCompressed = true; - } - catch { } - } + if (data[0] != 0x11) + return; - public byte[] Save() + try { - if (!WasCompressed) - return Data; - - byte[] data; - try + using (var newMS = new MemoryStream()) { - using (MemoryStream newMS = new MemoryStream()) - { - LZSS.Compress(new MemoryStream(Data), Data.Length, newMS, original: true); - data = newMS.ToArray(); - } + LZSS.Decompress(new MemoryStream(data), data.Length, newMS); + Data = newMS.ToArray(); } - catch { data = new byte[0]; } - return data; + WasCompressed = true; } + catch { } } - private byte[] getFile(int file, int subfile = 0) - { - var Entry = garc.fatb.Entries[file]; - var SubEntry = Entry.SubEntries[subfile]; - if (!SubEntry.Exists) - throw new ArgumentException("SubFile does not exist."); - var offset = SubEntry.Start + garc.DataOffset; - byte[] data = new byte[SubEntry.Length]; - Array.Copy(Data, offset, data, 0, data.Length); - return data; - } - public byte[] this[int file] - { - get - { - if (file > FileCount) - throw new ArgumentException(); - - if (Storage[file] == null) - Storage[file] = new GARCEntry(getFile(file, 0)); - return Storage[file].Data; - } - set - { - if (Storage[file] == null) - Storage[file] = new GARCEntry(value); - Storage[file].Data = value; - Storage[file].Saved = true; - } - } public byte[] Save() { - byte[][] data = new byte[FileCount][]; - for (int i = 0; i < data.Length; i++) + if (!WasCompressed) + return Data; + + byte[] data; + try { - if (Storage[i] == null || !Storage[i].Saved) // retrieve original - data[i] = getFile(i, 0); - else // use modified - data[i] = Storage[i].Save(); + using var newMS = new MemoryStream(); + LZSS.Compress(new MemoryStream(Data), Data.Length, newMS, original: true); + data = newMS.ToArray(); } - - var ng = packGARC(data, garc.Version, (int)garc.ContentPadToNearest); - garc = ng.garc; - Data = ng.Data; - return Data; + catch { data = []; } + return data; } } - public struct GARCFile + private byte[] GetFile(int file, int subfile = 0) { - public char[] Magic; // Always GARC = 0x4E415243 - public uint HeaderSize; // Always 0x001C - public ushort Endianess; // 0xFFFE - public ushort Version; // 4: gen6, 6: gen7 - public uint ChunkCount; // Always 0x0400 chunk count - - public uint DataOffset; - public uint FileSize; - - public uint ContentLargestPadded; // Format 6 Only - public uint ContentLargestUnpadded; - public uint ContentPadToNearest; // Format 6 Only (4 bytes is standard in VER_4, and is not stored) - - public FATO fato; - public FATB fatb; - public FIMG fimg; + var Entry = garc.fatb.Entries[file]; + var SubEntry = Entry.SubEntries[subfile]; + if (!SubEntry.Exists) + throw new ArgumentException("SubFile does not exist."); + var offset = SubEntry.Start + garc.DataOffset; + byte[] data = new byte[SubEntry.Length]; + Array.Copy(Data, offset, data, 0, data.Length); + return data; } - public struct FATO + public byte[] this[int file] { - public char[] Magic; - public int HeaderSize; - public ushort EntryCount; - public ushort Padding; + get + { + if (file > FileCount) + throw new ArgumentException(); - public FATO_Entry[] Entries; - } - public struct FATO_Entry - { - public int Offset; + Storage[file] ??= new GARCEntry(GetFile(file, 0)); + return Storage[file].Data; + } + set + { + Storage[file] ??= new GARCEntry(value); + Storage[file].Data = value; + Storage[file].Saved = true; + } } - public struct FATB + public byte[] Save() { - public char[] Magic; - public int HeaderSize; - public int FileCount; + byte[][] data = new byte[FileCount][]; + for (int i = 0; i < data.Length; i++) + { + if (Storage[i]?.Saved != true) // retrieve original + data[i] = GetFile(i, 0); + else // use modified + data[i] = Storage[i].Save(); + } - public FATB_Entry[] Entries; + var ng = PackGARC(data, garc.Version, (int)garc.ContentPadToNearest); + garc = ng.garc; + Data = ng.Data; + return Data; } - public struct FATB_Entry - { - public uint Vector; - public bool IsFolder; - public FATB_SubEntry[] SubEntries; - } - public struct FATB_SubEntry - { - public bool Exists; - public int Start; - public int End; - public int Length; + } - // Unsaved Properties - public int Padding { get; set; } - } + public struct GARCFile + { + public char[] Magic; // Always GARC = 0x4E415243 + public uint HeaderSize; // Always 0x001C + public ushort Endianess; // 0xFFFE + public ushort Version; // 4: gen6, 6: gen7 + public uint ChunkCount; // Always 0x0400 chunk count + + public uint DataOffset; + public uint FileSize; + + public uint ContentLargestPadded; // Format 6 Only + public uint ContentLargestUnpadded; + public uint ContentPadToNearest; // Format 6 Only (4 bytes is standard in VER_4, and is not stored) + + public FATO fato; + public FATB fatb; + public FIMG fimg; + } - public struct FIMG - { - public char[] Magic; - public int HeaderSize; - public int DataSize; - } + public struct FATO + { + public char[] Magic; + public int HeaderSize; + public ushort EntryCount; + public ushort Padding; + + public FATO_Entry[] Entries; + } + + public struct FATO_Entry + { + public int Offset; + } + + public struct FATB + { + public char[] Magic; + public int HeaderSize; + public int FileCount; + + public FATB_Entry[] Entries; + } + + public struct FATB_Entry + { + public uint Vector; + public bool IsFolder; + public FATB_SubEntry[] SubEntries; + } + + public struct FATB_SubEntry + { + public bool Exists; + public int Start; + public int End; + public int Length; + + // Unsaved Properties + public int Padding { get; set; } + } + + public struct FIMG + { + public char[] Magic; + public int HeaderSize; + public int DataSize; } - #endregion -} \ No newline at end of file +} +#endregion \ No newline at end of file diff --git a/pk3DS.Core/CTR/Images/BCLIM.cs b/pk3DS.Core/CTR/Images/BCLIM.cs new file mode 100644 index 0000000000..4a5ad09ca3 --- /dev/null +++ b/pk3DS.Core/CTR/Images/BCLIM.cs @@ -0,0 +1,474 @@ +using System; +using System.Drawing; +using System.IO; +using pk3DS.Core.CTR.Images; + +namespace pk3DS.Core.CTR; + +public class BCLIM : BXLIM +{ + public BCLIM(Stream data) => ReadBCLIM(data); + + public BCLIM(byte[] data) + { + using var ms = new MemoryStream(data); + ReadBCLIM(ms); + } + + public BCLIM(string path) + { + var data = File.ReadAllBytes(path); + using var ms = new MemoryStream(data); + ReadBCLIM(ms); + } + + private void ReadBCLIM(Stream ms) + { + PixelData = new byte[ms.Length - FLIMHeader.SIZE]; + _ = ms.Read(PixelData, 0, PixelData.Length); + var footer = new byte[FLIMHeader.SIZE]; + _ = ms.Read(footer, 0, footer.Length); + Footer = footer.ToStructure(); + } + + public override uint[] GetPixels() + { + if (Format == XLIMEncoding.RGB5A1 && BitConverter.ToUInt16(PixelData, 0) == 2) // Gen6 Palette + return GetPixelsViaPalette(); + return base.GetPixels(); + } + + private uint[] GetPixelsViaPalette() + { + using var ms = new MemoryStream(PixelData); + using var br = new BinaryReader(ms); + if (br.ReadUInt16() != 2) return null; + + // read palette + int count = br.ReadUInt16(); + uint[] colors = new uint[count]; + for (int i = 0; i < colors.Length; i++) + colors[i] = PixelConverter.GetDecodedPixelValue(br.ReadUInt16(), XLIMEncoding.RGB565); + + // read pixels + bool half = colors.Length < 0x10; + uint[] pixels = new uint[BaseSize * BaseSize]; + for (int i = 0; i < pixels.Length; i++) + { + var b = br.ReadByte(); + if (!half) + { + pixels[i] = colors[b]; + } + else + { + pixels[i++] = colors[b & 0xF]; + pixels[i] = colors[b >> 4]; + } + } + return pixels; + } + + // todo: move System.Drawing utilization out, make encoding generic for bflim + public static byte[] IMGToBCLIM(Image img, char fc) + { + var mBitmap = new Bitmap(img); + var ms = new MemoryStream(); + int bclimformat = 7; // Init to default (for X) + + if (fc == 'X') + { + Write16BitColorPalette(mBitmap, ms); + } + else + { + bclimformat = Convert.ToInt16(fc.ToString(), 16); + try + { + WriteGeneric(bclimformat, mBitmap, ms); + } + catch (Exception e) + { + System.Media.SystemSounds.Beep.Play(); + System.Diagnostics.Debug.WriteLine(e.ToString()); + } + } + + long datalength = ms.Length; + // Write the CLIM + imag data. + using (var bw = new BinaryWriter(ms)) + { + bw.Write((uint)0x4D494C43); // CLIM + bw.Write((ushort)0xFEFF); // BOM + bw.Write((uint)0x14); + bw.Write((ushort)0x0202); // 2 2 + bw.Write((uint)(datalength + 0x28)); + bw.Write((uint)1); + bw.Write((uint)0x67616D69); + bw.Write((uint)0x10); + bw.Write((ushort)mBitmap.Width); + bw.Write((ushort)mBitmap.Height); + bw.Write((uint)bclimformat); + bw.Write((uint)datalength); + } + return ms.ToArray(); + } + + public static byte[] GetBCLIM(string path, char fc) + { + byte[] byteArray = File.ReadAllBytes(path); + using Stream BitmapStream = new MemoryStream(byteArray); + Image img = Image.FromStream(BitmapStream); + return IMGToBCLIM(img, fc); + } + + public static Image MakeBCLIM(string path, char fc) + { + byte[] bclim = GetBCLIM(path, fc); + string fp = Path.GetFileNameWithoutExtension(path); + fp = "new_" + fp[(fp.IndexOf('_') + 1)..]; + string pp = Path.GetDirectoryName(path); + string newPath = Path.Combine(pp, fp + ".bclim"); + File.WriteAllBytes(newPath, bclim); + + return MakeBMP(newPath); + } + + public static Image MakeBMP(string path, bool autosave = false, bool crop = true) + { + BCLIM bclim = Analyze(path); + if (bclim.Magic != 0x4D494C43) + { + System.Media.SystemSounds.Beep.Play(); + return null; + } + + Bitmap img = bclim.GetBitmap(crop); + if (img == null) + return null; + if (crop) + img = ImageUtil.CropBMP(bclim, img); + if (autosave) + img.Save(Path.Combine(bclim.FilePath, $"{bclim.FileName}.png")); + return img; + } + + // BCLIM Data Writing + public static int Write16BitColorPalette(Bitmap img, MemoryStream ms) + { + using var pixelcolors = new MemoryStream(); + using var bz = new BinaryWriter(pixelcolors); + // Set up our basis. + bool under16colors = false; + int colors = GetColorCount(img); + Color[] pcs = new Color[colors]; + if (colors < 16) under16colors = true; + uint div = 1; + if (under16colors) + div = 2; + + if (colors > 70) throw new Exception("Too many colors"); + + // Set up a new reverse image to build into. + int w = XLIMUtil.GreatestCommonMultiple(img.Width, 8); + int h = XLIMUtil.GreatestCommonMultiple(img.Height, 8); + w = Math.Max(XLIMUtil.NextLargestPow2(w), XLIMUtil.NextLargestPow2(h)); + h = w; + byte[] pixelarray = new byte[w * h]; + + const int colorformat = 2; + int ctr = 1; + + pcs[0] = Color.FromArgb(0, 0xFF, 0xFF, 0xFF); + + int p = XLIMUtil.GreatestCommonMultiple(w, 8) / 8; + if (p == 0) p = 1; + int d = 0; + for (uint i = 0; i < pixelarray.Length; i++) + { + d = (int)(i / div); + // Get Tile Coordinate + XLIMOrienter.DecimalToCartesian(i % 64, out var x, out var y); + + // Get Shift Tile + uint tile = i / 64; + + // Shift Tile Coordinate into Tilemap + x += (uint)(tile % p) * 8; + y += (uint)(tile / p) * 8; + if (x >= img.Width || y >= img.Height) // Don't try to access any pixel data outside of our bounds. + { i++; continue; } // Goto next tile. + + // Get Color of Pixel + Color c = img.GetPixel((int)x, (int)y); + + // Color Table Building Logic + int index = Array.IndexOf(pcs, c); + if (c.A == 0) index = 0; + if (index < 0) // If new color + { pcs[ctr] = c; index = ctr; ctr++; } // Add it to color list + + // Add pixel to pixeldata + if (under16colors) index <<= 4; + pixelarray[i / div] = (byte)index; + if (!under16colors) continue; + + c = img.GetPixel((int)x + 1, (int)y); + index = Array.IndexOf(pcs, c); + if (c.A == 0) index = 0; + if (index < 0) // If new color + { pcs[ctr] = c; index = ctr; ctr++; } + pixelarray[i / div] |= (byte)index; + i++; + } + + // Write Intro + bz.Write((ushort)colorformat); bz.Write((ushort)ctr); + // Write Colors + for (int i = 0; i < ctr; i++) + bz.Write(GetRGBA5551(pcs[i])); // Write byte array. + // Write Pixel Data + for (uint i = 0; i < d; i++) + bz.Write(pixelarray[i]); + // Write Padding + while (pixelcolors.Length < XLIMUtil.NextLargestPow2((int)pixelcolors.Length)) + bz.Write((byte)0); + // Copy to main CLIM. + pixelcolors.Position = 0; pixelcolors.CopyTo(ms); + return 7; + } + + public static void WriteGeneric(int format, Bitmap img, MemoryStream ms, bool rectangle = true) + { + var bz = new BinaryWriter(ms); // no using, as we need to reuse ms later. + bz.Write(GetPixelData(img, format, rectangle)); + bz.Flush(); + } + + public static byte[] MakePixelData(byte[] input, ref int w, ref int h, XLIMOrientation x = XLIMOrientation.None) + { + int width = w; + w = XLIMUtil.NextLargestPow2(w); + h = XLIMUtil.NextLargestPow2(h); + if (Math.Min(w, h) >= 32) + w = h = Math.Max(w, h); // resize + + byte[] pixels = new byte[w * h * 4]; + var orienter = new XLIMOrienter(w, h, x); + for (uint i = 0; i < pixels.Length / 4; i++) + { + var c = orienter.Get(i); + var offset = (c.X * 4) + (c.Y * width); + Array.Copy(input, offset, pixels, i * 4, 4); + } + return pixels; + } + + public static byte[] GetPixelData(Bitmap img, int format, bool rectangle = true) + { + int w = img.Width; + int h = img.Height; + + bool perfect = w == h && w != 0 && (w & (w - 1)) == 0; + if (!perfect) // Check if square power of two, else resize + { + // Square Format Checks + if (rectangle && Math.Min(img.Width, img.Height) < 32) + { + w = XLIMUtil.NextLargestPow2(img.Width); + h = XLIMUtil.NextLargestPow2(img.Height); + } + else + { + w = h = Math.Max(XLIMUtil.NextLargestPow2(w), XLIMUtil.NextLargestPow2(h)); // else resize + } + } + + using var mz = new MemoryStream(); + using var bz = new BinaryWriter(mz); + int p = XLIMUtil.GreatestCommonMultiple(w, 8) / 8; + if (p == 0) p = 1; + for (uint i = 0; i < w * h; i++) + { + XLIMOrienter.DecimalToCartesian(i % 64, out uint x, out uint y); + + // Get Shift Tile + uint tile = i / 64; + + // Shift Tile Coordinate into Tilemap + x += (uint)(tile % p) * 8; + y += (uint)(tile / p) * 8; + + // Don't write data + Color c; + if (x >= img.Width || y >= img.Height) + { c = Color.FromArgb(0, 0, 0, 0); } + else + { c = img.GetPixel((int)x, (int)y); if (c.A == 0) c = Color.FromArgb(0, 86, 86, 86); } + + switch (format) + { + case 0: bz.Write(GetL8(c)); break; // L8 + case 1: bz.Write(GetA8(c)); break; // A8 + case 2: bz.Write(GetLA4(c)); break; // LA4(4) + case 3: bz.Write(GetLA8(c)); break; // LA8(8) + case 4: bz.Write(GetHILO8(c)); break; // HILO8 + case 5: bz.Write(GetRGB565(c)); break; // RGB565 + case 6: + { + bz.Write(c.B); + bz.Write(c.G); + bz.Write(c.R); break; + } + case 7: bz.Write(GetRGBA5551(c)); break; // RGBA5551 + case 8: bz.Write(GetRGBA4444(c)); break; // RGBA4444 + case 9: bz.Write(GetRGBA8888(c)); break; // RGBA8 + case 10: throw new Exception("ETC1 not supported."); + case 11: throw new Exception("ETC1A4 not supported."); + case 12: + { + byte val = (byte)(GetL8(c) / 0x11); // First Pix // L4 + { c = img.GetPixel((int)x, (int)y); if (c.A == 0) c = Color.FromArgb(0, 0, 0, 0); } + val |= (byte)((GetL8(c) / 0x11) << 4); i++; + bz.Write(val); break; + } + case 13: + { + byte val = (byte)(GetA8(c) / 0x11); // First Pix // L4 + { c = img.GetPixel((int)x, (int)y); } + val |= (byte)((GetA8(c) / 0x11) << 4); i++; + bz.Write(val); break; + } + } + } + if (!perfect) + { + while (mz.Length < XLIMUtil.NextLargestPow2((int)mz.Length)) // pad + bz.Write((byte)0); + } + + return mz.ToArray(); + } + + public static int GetColorCount(Bitmap img) + { + Color[] colors = new Color[img.Width * img.Height]; + int colorct = 1; + + for (int i = 0; i < colors.Length; i++) + { + Color c = img.GetPixel(i % img.Width, i / img.Width); + int index = Array.IndexOf(colors, c); + if (c.A == 0) index = 0; + if (index >= 0) continue; + + colors[colorct] = c; + colorct++; + } + return colorct; + } + + // Color Conversion + internal static byte GetL8(Color c) + { + byte red = c.R; + byte green = c.G; + byte blue = c.B; + // Luma (Y’) = 0.299 R’ + 0.587 G’ + 0.114 B’ from wikipedia + return (byte)((((0x4CB2 * red) + (0x9691 * green) + (0x1D3E * blue)) >> 16) & 0xFF); + } // L8 + + internal static byte GetA8(Color c) + { + return c.A; + } // A8 + + internal static byte GetLA4(Color c) + { + return (byte)((c.A / 0x11) + (c.R / 0x11) << 4); + } // LA4 + + internal static ushort GetLA8(Color c) + { + return (ushort)(c.A + (c.R << 8)); + } // LA8 + + internal static ushort GetHILO8(Color c) + { + return (ushort)(c.G + (c.R << 8)); + } // HILO8 + + internal static ushort GetRGB565(Color c) + { + int val = 0; + // val += c.A >> 8; // unused + val += Convert8to5(c.B) >> 3; + val += (c.G >> 2) << 5; + val += Convert8to5(c.R) << 10; + return (ushort)val; + } // RGB565 + // RGB8 + internal static ushort GetRGBA5551(Color c) + { + int val = 0; + val += c.A > 0x80 ? 1 : 0; + val += Convert8to5(c.R) << 11; + val += Convert8to5(c.G) << 6; + val += Convert8to5(c.B) << 1; + ushort v = (ushort)val; + + return v; + }// RGBA5551 + + internal static ushort GetRGBA4444(Color c) + { + int val = 0; + val += c.A / 0x11; + val += (c.B / 0x11) << 4; + val += (c.G / 0x11) << 8; + val += (c.R / 0x11) << 12; + return (ushort)val; + }// RGBA4444 + + internal static uint GetRGBA8888(Color c) // RGBA8888 + { + uint val = 0; + val += c.A; + val += (uint)(c.B << 8); + val += (uint)(c.G << 16); + val += (uint)(c.R << 24); + return val; + } + + // Unit Conversion + internal static byte Convert8to5(int colorval) + { + byte[] Convert8to5 = + [ + 0x00,0x08,0x10,0x18,0x20,0x29,0x31,0x39, + 0x41,0x4A,0x52,0x5A,0x62,0x6A,0x73,0x7B, + 0x83,0x8B,0x94,0x9C,0xA4,0xAC,0xB4,0xBD, + 0xC5,0xCD,0xD5,0xDE,0xE6,0xEE,0xF6,0xFF, + ]; + byte i = 0; + while (colorval > Convert8to5[i]) i++; + return i; + } + + public static BCLIM Analyze(byte[] data, string shortPath) + { + var bclim = new BCLIM(data) + { + FileName = Path.GetFileNameWithoutExtension(shortPath), + FilePath = Path.GetDirectoryName(shortPath), + Extension = Path.GetExtension(shortPath), + }; + return bclim; + } + + public static BCLIM Analyze(string path) + { + byte[] data = File.ReadAllBytes(path); + return Analyze(data, path); + } +} \ No newline at end of file diff --git a/pk3DS.Core/CTR/Images/BFLIM.cs b/pk3DS.Core/CTR/Images/BFLIM.cs new file mode 100644 index 0000000000..74ebb479da --- /dev/null +++ b/pk3DS.Core/CTR/Images/BFLIM.cs @@ -0,0 +1,31 @@ +using System.IO; +using pk3DS.Core.CTR.Images; + +namespace pk3DS.Core.CTR; + +public class BFLIM : BXLIM +{ + public BFLIM(Stream data) => ReadBFLIM(data); + + public BFLIM(byte[] data) + { + using var ms = new MemoryStream(data); + ReadBFLIM(ms); + } + + public BFLIM(string path) + { + var data = File.ReadAllBytes(path); + using var ms = new MemoryStream(data); + ReadBFLIM(ms); + } + + private void ReadBFLIM(Stream ms) + { + PixelData = new byte[ms.Length - FLIMHeader.SIZE]; + ms.Read(PixelData, 0, PixelData.Length); + var footer = new byte[FLIMHeader.SIZE]; + ms.Read(footer, 0, footer.Length); + Footer = footer.ToStructure(); + } +} \ No newline at end of file diff --git a/pk3DS.Core/CTR/Images/BXLIM.cs b/pk3DS.Core/CTR/Images/BXLIM.cs new file mode 100644 index 0000000000..93f0b9628c --- /dev/null +++ b/pk3DS.Core/CTR/Images/BXLIM.cs @@ -0,0 +1,67 @@ +using System; +using System.Linq; + +namespace pk3DS.Core.CTR.Images; + +public abstract class BXLIM : IXLIMHeader +{ + public byte[] PixelData; + public IXLIMHeader Footer { get; protected set; } + + public uint Magic { get => Footer.Magic; set => Footer.Magic = value; } + public ushort Width { get => Footer.Width; set => Footer.Width = value; } + public ushort Height { get => Footer.Height; set => Footer.Height = value; } + public XLIMEncoding Format { get => Footer.Format; set => Footer.Format = value; } + public XLIMOrientation Orientation { get => Footer.Orientation; set => Footer.Orientation = value; } + public bool Valid => Footer.Valid && PixelData != null; + + public string FileName { get; set; } + public string FilePath { get; set; } + public string Extension { get; set; } + public int BaseSize => Math.Max(XLIMUtil.NextLargestPow2(Width), XLIMUtil.NextLargestPow2(Height)); + + /// + /// ARGB 32bpp + /// + public byte[] GetImageData(bool crop = true) + { + var orienter = new XLIMOrienter(Footer.Width, Footer.Height, Footer.Orientation); + uint[] pixels = GetPixels(); + + if (!crop) + { + Footer.Width = (ushort)orienter.Width; + Footer.Height = (ushort)orienter.Height; + } + + // uint[] -> byte[] + byte[] array = new byte[Footer.Width * Footer.Height * 4]; + for (uint i = 0; i < pixels.Length; i++) + { + var coord = orienter.Get(i); + if (coord.X >= Footer.Width || coord.Y >= Footer.Height) + continue; + + var val = pixels[i]; + uint o = 4 * (coord.X + (coord.Y * Footer.Width)); + array[o + 0] = (byte)(val & 0xFF); + array[o + 1] = (byte)(val >> 8 & 0xFF); + array[o + 2] = (byte)(val >> 16 & 0xFF); + array[o + 3] = (byte)(val >> 24 & 0xFF); + } + return array; + } + + public virtual uint[] GetPixels() + { + return PixelConverter.GetPixels(PixelData, Footer.Format).ToArray(); + } + + public byte[] GetPixelsRaw() + { + var pix = GetPixels(); + byte[] raw = new byte[pix.Length * 4]; + Buffer.BlockCopy(pix, 0, raw, 0, raw.Length); + return raw; + } +} \ No newline at end of file diff --git a/pk3DS.Core/CTR/Images/CLIMHeader.cs b/pk3DS.Core/CTR/Images/CLIMHeader.cs new file mode 100644 index 0000000000..2549e14656 --- /dev/null +++ b/pk3DS.Core/CTR/Images/CLIMHeader.cs @@ -0,0 +1,30 @@ +using System.Runtime.InteropServices; + +namespace pk3DS.Core.CTR; + +[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)] +public struct CLIMHeader : IXLIMHeader +{ + public const int SIZE = 40; + public const string Identifier = "CLIM"; + public readonly bool Valid => LittleEndian && Magic == 0x4D_49_4C_43; // CLIM + public readonly bool LittleEndian => BOM == 0xFEFF; + public readonly bool BigEndian => BOM == 0xFFFE; + + public uint Magic { get; set; }// CLIM = 0x4D494C43 + public ushort BOM; // 0xFFFE + public uint HeaderLength; // always 0x14 + public byte TileWidth; // 1<<[[n]] + public byte TileHeight; // 1<<[[n]] + public uint totalLength; // Total Length of file + public uint Count; // "1" , guessing it's just Count. + + public uint imag; // imag = 0x67616D69 + public uint imagLength; // HeaderLength - 10 + public ushort Width { get; set; } // Final Dimensions + public ushort Height { get; set; } // Final Dimensions + public XLIMEncoding Format { get; set; } + public XLIMOrientation Orientation { get; set; } // unused + public short Alignment; // unused + public uint DataSize; // Pixel Data Region Length +} \ No newline at end of file diff --git a/pk3DS.Core/CTR/Images/Coordinate.cs b/pk3DS.Core/CTR/Images/Coordinate.cs new file mode 100644 index 0000000000..e871d51565 --- /dev/null +++ b/pk3DS.Core/CTR/Images/Coordinate.cs @@ -0,0 +1,16 @@ +namespace pk3DS.Core.CTR; + +public struct Coordinate(uint x, uint y) +{ + public uint X { get; private set; } = x; + public uint Y { get; private set; } = y; + + public void Transpose() => (X, Y) = (Y, X); + + public void Rotate90(uint height) + { + var tmp = X; + X = Y; + Y = height - 1 - tmp; + } +} \ No newline at end of file diff --git a/pk3DS.Core/CTR/Images/FLIMHeader.cs b/pk3DS.Core/CTR/Images/FLIMHeader.cs new file mode 100644 index 0000000000..e32024fc6b --- /dev/null +++ b/pk3DS.Core/CTR/Images/FLIMHeader.cs @@ -0,0 +1,29 @@ +using System.Runtime.InteropServices; + +namespace pk3DS.Core.CTR; + +[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)] +public struct FLIMHeader : IXLIMHeader +{ + public const int SIZE = 40; + public const string Identifier = "FLIM"; + public readonly bool Valid => LittleEndian && Magic == 0x4D_49_4C_46; // FLIM + public readonly bool LittleEndian => BOM == 0xFEFF; + public readonly bool BigEndian => BOM == 0xFFFE; + + public uint Magic { get; set; } // FLIM + public ushort BOM; // 0xFFFE + public ushort HeaderLength; // always 0x14 + public int Version; + public uint TotalLength; + public uint Count; + + public uint imag; // imag = 67616D69 + public uint imagLength; // always 0x10 + public ushort Width { get; set; } + public ushort Height { get; set; } + public short Alignment; + public XLIMEncoding Format { get; set; } + public XLIMOrientation Orientation { get; set; } + public uint DataSize; +} \ No newline at end of file diff --git a/pk3DS.Core/CTR/Images/IXLIMHeader.cs b/pk3DS.Core/CTR/Images/IXLIMHeader.cs new file mode 100644 index 0000000000..f7d1d59197 --- /dev/null +++ b/pk3DS.Core/CTR/Images/IXLIMHeader.cs @@ -0,0 +1,15 @@ +namespace pk3DS.Core.CTR; + +/// +/// and header interface. +/// +public interface IXLIMHeader +{ + uint Magic { get; set; } + ushort Width { get; set; } + ushort Height { get; set; } + XLIMEncoding Format { get; set; } + XLIMOrientation Orientation { get; set; } + + bool Valid { get; } +} \ No newline at end of file diff --git a/pk3DS.Core/CTR/Images/PixelConverter.cs b/pk3DS.Core/CTR/Images/PixelConverter.cs new file mode 100644 index 0000000000..7d5e599ba6 --- /dev/null +++ b/pk3DS.Core/CTR/Images/PixelConverter.cs @@ -0,0 +1,175 @@ +using System; +using System.Collections.Generic; + +namespace pk3DS.Core.CTR; + +public static class PixelConverter +{ + private const int BPP_32 = 32; + private const int BPP_24 = 24; + private const int BPP_16 = 16; + private const int BPP_8 = 8; + private const int BPP_4 = 4; + + internal static readonly byte[] Convert5To8 = + [ + 0x00,0x08,0x10,0x18,0x20,0x29,0x31,0x39, + 0x41,0x4A,0x52,0x5A,0x62,0x6A,0x73,0x7B, + 0x83,0x8B,0x94,0x9C,0xA4,0xAC,0xB4,0xBD, + 0xC5,0xCD,0xD5,0xDE,0xE6,0xEE,0xF6,0xFF, + ]; + + public static IEnumerable GetPixels(byte[] raw, XLIMEncoding e) + { + int bpp = e.GetBitsPerPixel(); + if (bpp == BPP_4) + { + foreach (byte b in raw) + { + byte _0 = (byte)(b & 0xF); + byte _1 = (byte)(b >> 4); + yield return GetDecodedPixelValue(_0, e); + yield return GetDecodedPixelValue(_1, e); + } + yield break; + } + + for (int i = 0; i < raw.Length; i += bpp / 8) + { + uint val = GetEncodedPixelValue(raw, i, bpp); + yield return GetDecodedPixelValue(val, e); + } + } + + internal static uint GetDecodedPixelValue(uint val, XLIMEncoding e) + { + byte a = byte.MaxValue, r, g, b; + switch (e) + { + case XLIMEncoding.L4: + case XLIMEncoding.L8: + { + r = g = b = (byte)val; + break; + } + case XLIMEncoding.A4: + case XLIMEncoding.A8: + { + r = g = b = 0xFF; + a = (byte)val; + break; + } + case XLIMEncoding.HILO8: + { + r = (byte)(val >> 8); + g = (byte)(val & 0xFF); + b = byte.MaxValue; + break; + } + case XLIMEncoding.LA4: + { + r = g = b = (byte)(val >> 4); + a = (byte)(val & 0x0F); + break; + } + case XLIMEncoding.LA8: + { + r = g = b = (byte)(val >> 8); + a = (byte)val; + break; + } + case XLIMEncoding.RGBX8: + { + r = (byte)(val >> 16); + g = (byte)(val >> 8); + b = (byte)(val >> 0); + break; + } + case XLIMEncoding.RGBA8: + { + r = (byte)(val >> 24); + g = (byte)(val >> 16); + b = (byte)(val >> 8); + a = (byte)val; + break; + } + case XLIMEncoding.RGBA4: + { + a = (byte)(0x11 * (val & 0xf)); + r = (byte)(0x11 * ((val >> 12) & 0xf)); + g = (byte)(0x11 * ((val >> 8) & 0xf)); + b = (byte)(0x11 * ((val >> 4) & 0xf)); + break; + } + case XLIMEncoding.RGB565: + { + r = Convert5To8[(val >> 11) & 0x1F]; + g = (byte)(((val >> 5) & 0x3F) * 4); + b = Convert5To8[val & 0x1F]; + break; + } + case XLIMEncoding.RGB5A1: + { + r = Convert5To8[(val >> 11) & 0x1F]; + g = Convert5To8[(val >> 6) & 0x1F]; + b = Convert5To8[(val >> 1) & 0x1F]; + a = (val & 1) == 1 ? byte.MaxValue : byte.MinValue; + break; + } + default: + throw new FormatException($"Unsupported {nameof(XLIMEncoding)} value = {e}"); + } + return (uint)((a << 24) | (r << 16) | (g << 8) | b); + } + + public static uint GetEncodedPixelValue(byte[] raw, int offset, int size) + { + return size switch + { + BPP_32 => BitConverter.ToUInt32(raw, offset), + BPP_24 => BitConverter.ToUInt32(raw, offset) & 0x00FFFFFF, + BPP_16 => BitConverter.ToUInt16(raw, offset), + _ => raw[offset], + }; + } + + public static int GetBitsPerPixel(this XLIMEncoding e) + { + if (_32.Contains(e)) + return BPP_32; + if (_24.Contains(e)) + return BPP_24; + if (_16.Contains(e)) + return BPP_16; + if (_8.Contains(e)) + return BPP_8; + return BPP_4; + } + + private static readonly HashSet _32 = + [ + XLIMEncoding.RGBA8, + ]; + + private static readonly HashSet _24 = + [ + XLIMEncoding.RGBX8, + ]; + + private static readonly HashSet _16 = + [ + XLIMEncoding.LA8, + XLIMEncoding.HILO8, + XLIMEncoding.RGB565, + XLIMEncoding.RGB5A1, + XLIMEncoding.RGBA4, + ]; + + private static readonly HashSet _8 = + [ + XLIMEncoding.L8, + XLIMEncoding.A8, + XLIMEncoding.LA4, + XLIMEncoding.ETC1A4, + ]; +} \ No newline at end of file diff --git a/pk3DS.Core/CTR/Images/XLIMEncoding.cs b/pk3DS.Core/CTR/Images/XLIMEncoding.cs new file mode 100644 index 0000000000..b647f2ca24 --- /dev/null +++ b/pk3DS.Core/CTR/Images/XLIMEncoding.cs @@ -0,0 +1,19 @@ +namespace pk3DS.Core.CTR; + +public enum XLIMEncoding : byte +{ + L8 = 0x00, // 8 Luminance + A8 = 0x01, // 8 Alpha + LA4 = 0x02, // 8 Luminance + Alpha + LA8 = 0x03, // 16 Luminance + Alpha + HILO8 = 0x04, // 16 ? + RGB565 = 0x05, // 16 Color + RGBX8 = 0x06, // 24 Color + RGB5A1 = 0x07, // 16 Color + Alpha + RGBA4 = 0x08, // 16 Color + Alpha + RGBA8 = 0x09, // 32 Color + Alpha + ETC1 = 0x0A, // 4 Color + ETC1A4 = 0x0B, // 8 Color + Alpha + L4 = 0x0C, // 4 Luminance + A4 = 0x0D, // 4 Alpha +} \ No newline at end of file diff --git a/pk3DS.Core/CTR/Images/XLIMOrientation.cs b/pk3DS.Core/CTR/Images/XLIMOrientation.cs new file mode 100644 index 0000000000..d20801e876 --- /dev/null +++ b/pk3DS.Core/CTR/Images/XLIMOrientation.cs @@ -0,0 +1,19 @@ +using System; + +namespace pk3DS.Core.CTR; + +[Flags] +public enum XLIMOrientation : byte +{ + None = 0, + Rotate90 = 4, + Transpose = 8, +} + +public static class XlimOrientationExtensions +{ + public static bool HasFlagFast(this XLIMOrientation value, XLIMOrientation flag) + { + return (value & flag) != 0; + } +} \ No newline at end of file diff --git a/pk3DS.Core/CTR/Images/XLIMOrienter.cs b/pk3DS.Core/CTR/Images/XLIMOrienter.cs new file mode 100644 index 0000000000..f67fb39b1f --- /dev/null +++ b/pk3DS.Core/CTR/Images/XLIMOrienter.cs @@ -0,0 +1,111 @@ +using static pk3DS.Core.CTR.Images.XLIMUtil; + +namespace pk3DS.Core.CTR; + +public class XLIMOrienter +{ + private readonly XLIMOrientation _orientation; + + public uint Width { get; } + public uint Height { get; } + public uint PanelsPerWidth { get; } + + public XLIMOrienter(int width, int height, XLIMOrientation orientation) + { + Width = (uint)NextLargestPow2(GreatestCommonMultiple(width, 8)); + Height = (uint)NextLargestPow2(GreatestCommonMultiple(height, 8)); + + uint stride = orientation == XLIMOrientation.None ? Width : Height; + PanelsPerWidth = (uint)GreatestCommonMultiple((int)stride, 8) / 8; + + _orientation = orientation; + } + + public Coordinate Get(uint i) + { + DecimalToCartesian(i & 0x3F, out uint x, out uint y); + + // Shift Tile Coordinate into Tilemap + var tile = i >> 6; + x |= (tile % PanelsPerWidth) << 3; + y |= (tile / PanelsPerWidth) << 3; + + var coord = new Coordinate(x, y); + if (_orientation.HasFlagFast(XLIMOrientation.Rotate90)) + coord.Rotate90(Height); + if (_orientation.HasFlagFast(XLIMOrientation.Transpose)) + coord.Transpose(); + return coord; + } + + internal static uint C11(uint x) + { + x &= 0x55555555; // x = -f-e -d-c -b-a -9-8 -7-6 -5-4 -3-2 -1-0 + x = (x ^ (x >> 1)) & 0x33333333; // x = --fe --dc --ba --98 --76 --54 --32 --10 + x = (x ^ (x >> 2)) & 0x0f0f0f0f; // x = ---- fedc ---- ba98 ---- 7654 ---- 3210 + x = (x ^ (x >> 4)) & 0x00ff00ff; // x = ---- ---- fedc ba98 ---- ---- 7654 3210 + x = (x ^ (x >> 8)) & 0x0000ffff; // x = ---- ---- ---- ---- fedc ba98 7654 3210 + return x; + } + + // Morton Translation + + /// + /// Combines X/Y Coordinates to a decimal ordinate. + /// + /// + /// + /// + internal static uint CartesianToDecimal(uint x, uint y) + { + x &= 0x0000ffff; + y &= 0x0000ffff; + x |= x << 8; + y |= y << 8; + x &= 0x00ff00ff; + y &= 0x00ff00ff; + x |= x << 4; + y |= y << 4; + x &= 0x0f0f0f0f; + y &= 0x0f0f0f0f; + x |= x << 2; + y |= y << 2; + x &= 0x33333333; + y &= 0x33333333; + x |= x << 1; + y |= y << 1; + x &= 0x55555555; + y &= 0x55555555; + return x | (y << 1); + } + + /// + /// Decimal Ordinate In to X / Y Coordinate Out + /// + /// Loop integer which will be decoded to X/Y + /// Output X coordinate + /// Output Y coordinate + internal static void DecimalToCartesian(uint d, out uint x, out uint y) + { + x = d; + y = x >> 1; + x &= 0x55555555; + y &= 0x55555555; + x |= x >> 1; + y |= y >> 1; + x &= 0x33333333; + y &= 0x33333333; + x |= x >> 2; + y |= y >> 2; + x &= 0x0f0f0f0f; + y &= 0x0f0f0f0f; + x |= x >> 4; + y |= y >> 4; + x &= 0x00ff00ff; + y &= 0x00ff00ff; + x |= x >> 8; + y |= y >> 8; + x &= 0x0000ffff; + y &= 0x0000ffff; + } +} \ No newline at end of file diff --git a/pk3DS.Core/CTR/Images/XLIMUtil.cs b/pk3DS.Core/CTR/Images/XLIMUtil.cs new file mode 100644 index 0000000000..1091473f22 --- /dev/null +++ b/pk3DS.Core/CTR/Images/XLIMUtil.cs @@ -0,0 +1,31 @@ +namespace pk3DS.Core.CTR.Images; + +public static class XLIMUtil +{ + /// + /// Greatest common multiple (to round up) + /// + /// Number to round-up. + /// Multiple to round-up to. + /// Rounded up number. + internal static int GreatestCommonMultiple(int n, int m) + { + return (n + m - 1) / m * m; + } + + /// + /// Next Largest Power of 2 + /// + /// Input to round up to next 2^n + /// 2^n > x && x > 2^(n-1) + internal static int NextLargestPow2(int x) + { + x--; // comment out to always take the next biggest power of two, even if x is already a power of two + x |= x >> 1; + x |= x >> 2; + x |= x >> 4; + x |= x >> 8; + x |= x >> 16; + return x + 1; + } +} \ No newline at end of file diff --git a/pk3DS.Core/CTR/LZSS.cs b/pk3DS.Core/CTR/LZSS.cs index b81b5e53dc..73a1db0a7f 100644 --- a/pk3DS.Core/CTR/LZSS.cs +++ b/pk3DS.Core/CTR/LZSS.cs @@ -1,772 +1,833 @@ using System; using System.IO; -namespace pk3DS.Core.CTR +namespace pk3DS.Core.CTR; + +// LZSS (de)compression, heavily taken from dsdecmp +public static class LZSS { - // LZSS (de)compression, heavily taken from dsdecmp - public static class LZSS + public static long Decompress(string infile, string outfile) { - public static long Decompress(string infile, string outfile) + // make sure the output directory exists + string outDirectory = Path.GetDirectoryName(outfile); + if (!Directory.Exists(outDirectory)) + Directory.CreateDirectory(outDirectory); + // open the two given files, and delegate to the format-specific code. + using FileStream inStream = new(infile, FileMode.Open), + outStream = new(outfile, FileMode.Create); + return Decompress(inStream, inStream.Length, outStream); + } + + /// + /// Decompresses the given stream, writing the decompressed data to the given output stream. + /// Assumes Supports(instream) returns true. + /// After this call, the input stream will be positioned at the end of the compressed stream, + /// or at the initial position + inLength, whichever comes first. + /// + /// The stream to decompress. At the end of this method, the position + /// of this stream is directly after the compressed data. + /// The length of the input data. Not necessarily all of the + /// input data may be read (if there is padding, for example), however never more than + /// this number of bytes is read from the input stream. + /// The stream to write the decompressed data to. + /// The length of the output data. + /// When the given length of the input data + /// is not enough to properly decompress the input. + public static long Decompress(Stream instream, long inLength, Stream outstream) + { + #region Format definition in NDSTEK style + /* Data header (32bit) + Bit 0-3 Reserved + Bit 4-7 Compressed type (must be 1 for LZ77) + Bit 8-31 Size of decompressed data. if 0, the next 4 bytes are decompressed length + Repeat below. Each Flag Byte followed by eight Blocks. + Flag data (8bit) + Bit 0-7 Type Flags for next 8 Blocks, MSB first + Block Type 0 - Uncompressed - Copy 1 Byte from Source to Dest + Bit 0-7 One data byte to be copied to dest + Block Type 1 - Compressed - Copy LEN Bytes from Dest-Disp-1 to Dest + If Reserved is 0: - Default + Bit 0-3 Disp MSBs + Bit 4-7 LEN - 3 + Bit 8-15 Disp LSBs + If Reserved is 1: - Higher compression rates for files with (lots of) long repetitions + Bit 4-7 Indicator + If Indicator > 1: + Bit 0-3 Disp MSBs + Bit 4-7 LEN - 1 (same bits as Indicator) + Bit 8-15 Disp LSBs + If Indicator is 1: A(B CD E)(F GH) + Bit 0-3 (LEN - 0x111) MSBs + Bit 4-7 Indicator; unused + Bit 8-15 (LEN- 0x111) 'middle'-SBs + Bit 16-19 Disp MSBs + Bit 20-23 (LEN - 0x111) LSBs + Bit 24-31 Disp LSBs + If Indicator is 0: + Bit 0-3 (LEN - 0x11) MSBs + Bit 4-7 Indicator; unused + Bit 8-11 Disp MSBs + Bit 12-15 (LEN - 0x11) LSBs + Bit 16-23 Disp LSBs + */ + #endregion + + long readBytes = 0; + + byte type = (byte)instream.ReadByte(); + if (type != 0x11) + throw new InvalidDataException($"The provided stream is not a valid LZ-0x11 compressed stream (invalid type 0x{type:X})"); + byte[] sizeBytes = new byte[3]; + instream.Read(sizeBytes, 0, 3); + int decompressedSize = IOUtils.ToNDSu24(sizeBytes, 0); + readBytes += 4; + if (decompressedSize == 0) { - // make sure the output directory exists - string outDirectory = Path.GetDirectoryName(outfile); - if (!Directory.Exists(outDirectory)) - Directory.CreateDirectory(outDirectory); - // open the two given files, and delegate to the format-specific code. - using (FileStream inStream = new FileStream(infile, FileMode.Open), - outStream = new FileStream(outfile, FileMode.Create)) - { - return Decompress(inStream, inStream.Length, outStream); - } + sizeBytes = new byte[4]; + instream.Read(sizeBytes, 0, 4); + decompressedSize = IOUtils.ToNDSs32(sizeBytes, 0); + readBytes += 4; } - /// - /// Decompresses the given stream, writing the decompressed data to the given output stream. - /// Assumes Supports(instream) returns true. - /// After this call, the input stream will be positioned at the end of the compressed stream, - /// or at the initial position + inLength, whichever comes first. - /// - /// The stream to decompress. At the end of this method, the position - /// of this stream is directly after the compressed data. - /// The length of the input data. Not necessarily all of the - /// input data may be read (if there is padding, for example), however never more than - /// this number of bytes is read from the input stream. - /// The stream to write the decompressed data to. - /// The length of the output data. - /// When the given length of the input data - /// is not enough to properly decompress the input. - public static long Decompress(Stream instream, long inLength, Stream outstream) - { - #region Format definition in NDSTEK style - /* Data header (32bit) - Bit 0-3 Reserved - Bit 4-7 Compressed type (must be 1 for LZ77) - Bit 8-31 Size of decompressed data. if 0, the next 4 bytes are decompressed length - Repeat below. Each Flag Byte followed by eight Blocks. - Flag data (8bit) - Bit 0-7 Type Flags for next 8 Blocks, MSB first - Block Type 0 - Uncompressed - Copy 1 Byte from Source to Dest - Bit 0-7 One data byte to be copied to dest - Block Type 1 - Compressed - Copy LEN Bytes from Dest-Disp-1 to Dest - If Reserved is 0: - Default - Bit 0-3 Disp MSBs - Bit 4-7 LEN - 3 - Bit 8-15 Disp LSBs - If Reserved is 1: - Higher compression rates for files with (lots of) long repetitions - Bit 4-7 Indicator - If Indicator > 1: - Bit 0-3 Disp MSBs - Bit 4-7 LEN - 1 (same bits as Indicator) - Bit 8-15 Disp LSBs - If Indicator is 1: A(B CD E)(F GH) - Bit 0-3 (LEN - 0x111) MSBs - Bit 4-7 Indicator; unused - Bit 8-15 (LEN- 0x111) 'middle'-SBs - Bit 16-19 Disp MSBs - Bit 20-23 (LEN - 0x111) LSBs - Bit 24-31 Disp LSBs - If Indicator is 0: - Bit 0-3 (LEN - 0x11) MSBs - Bit 4-7 Indicator; unused - Bit 8-11 Disp MSBs - Bit 12-15 (LEN - 0x11) LSBs - Bit 16-23 Disp LSBs - */ - #endregion - long readBytes = 0; + // the maximum 'DISP-1' is still 0xFFF. + const int bufferLength = 0x1000; + byte[] buffer = new byte[bufferLength]; + int bufferOffset = 0; - byte type = (byte)instream.ReadByte(); - if (type != 0x11) - throw new InvalidDataException("The provided stream is not a valid LZ-0x11 " - + "compressed stream (invalid type 0x" + type.ToString("X") + ")"); - byte[] sizeBytes = new byte[3]; - instream.Read(sizeBytes, 0, 3); - int decompressedSize = IOUtils.ToNDSu24(sizeBytes, 0); - readBytes += 4; - if (decompressedSize == 0) + int currentOutSize = 0; + int flags = 0, mask = 1; + while (currentOutSize < decompressedSize) + { + // (throws when requested new flags byte is not available) + #region Update the mask. If all flag bits have been read, get a new set. + // the current mask is the mask used in the previous run. So if it masks the + // last flag bit, get a new flags byte. + if (mask == 1) { - sizeBytes = new byte[4]; - instream.Read(sizeBytes, 0, 4); - decompressedSize = IOUtils.ToNDSs32(sizeBytes, 0); - readBytes += 4; + if (readBytes >= inLength) + throw new NotEnoughDataException(currentOutSize, decompressedSize); + flags = instream.ReadByte(); readBytes++; + if (flags < 0) + throw new StreamTooShortException(); + mask = 0x80; } + else + { + mask >>= 1; + } + #endregion - // the maximum 'DISP-1' is still 0xFFF. - const int bufferLength = 0x1000; - byte[] buffer = new byte[bufferLength]; - int bufferOffset = 0; - - int currentOutSize = 0; - int flags = 0, mask = 1; - while (currentOutSize < decompressedSize) + // bit = 1 <=> compressed. + if ((flags & mask) > 0) { - // (throws when requested new flags byte is not available) - #region Update the mask. If all flag bits have been read, get a new set. - // the current mask is the mask used in the previous run. So if it masks the - // last flag bit, get a new flags byte. - if (mask == 1) - { - if (readBytes >= inLength) - throw new NotEnoughDataException(currentOutSize, decompressedSize); - flags = instream.ReadByte(); readBytes++; - if (flags < 0) - throw new StreamTooShortException(); - mask = 0x80; - } - else + // (throws when not enough bytes are available) + #region Get length and displacement('disp') values from next 2, 3 or 4 bytes + + // read the first byte first, which also signals the size of the compressed block + if (readBytes >= inLength) + throw new NotEnoughDataException(currentOutSize, decompressedSize); + int byte1 = instream.ReadByte(); readBytes++; + if (byte1 < 0) + throw new StreamTooShortException(); + + int length = byte1 >> 4; + int disp; + if (length == 0) { - mask >>= 1; - } - #endregion + #region case 0; 0(B C)(D EF) + (0x11)(0x1) = (LEN)(DISP) - // bit = 1 <=> compressed. - if ((flags & mask) > 0) - { - // (throws when not enough bytes are available) - #region Get length and displacement('disp') values from next 2, 3 or 4 bytes + // case 0: + // data = AB CD EF (with A=0) + // LEN = ABC + 0x11 == BC + 0x11 + // DISP = DEF + 1 - // read the first byte first, which also signals the size of the compressed block - if (readBytes >= inLength) + // we need two more bytes available + if (readBytes + 1 >= inLength) throw new NotEnoughDataException(currentOutSize, decompressedSize); - int byte1 = instream.ReadByte(); readBytes++; - if (byte1 < 0) + int byte2 = instream.ReadByte(); readBytes++; + int byte3 = instream.ReadByte(); readBytes++; + if (byte3 < 0) throw new StreamTooShortException(); - int length = byte1 >> 4; - int disp; - if (length == 0) - { - #region case 0; 0(B C)(D EF) + (0x11)(0x1) = (LEN)(DISP) - - // case 0: - // data = AB CD EF (with A=0) - // LEN = ABC + 0x11 == BC + 0x11 - // DISP = DEF + 1 - - // we need two more bytes available - if (readBytes + 1 >= inLength) - throw new NotEnoughDataException(currentOutSize, decompressedSize); - int byte2 = instream.ReadByte(); readBytes++; - int byte3 = instream.ReadByte(); readBytes++; - if (byte3 < 0) - throw new StreamTooShortException(); + length = (((byte1 & 0x0F) << 4) | (byte2 >> 4)) + 0x11; + disp = (((byte2 & 0x0F) << 8) | byte3) + 0x1; - length = (((byte1 & 0x0F) << 4) | (byte2 >> 4)) + 0x11; - disp = (((byte2 & 0x0F) << 8) | byte3) + 0x1; - - #endregion - } - else if (length == 1) - { - #region case 1: 1(B CD E)(F GH) + (0x111)(0x1) = (LEN)(DISP) - - // case 1: - // data = AB CD EF GH (with A=1) - // LEN = BCDE + 0x111 - // DISP = FGH + 1 - - // we need three more bytes available - if (readBytes + 2 >= inLength) - throw new NotEnoughDataException(currentOutSize, decompressedSize); - int byte2 = instream.ReadByte(); readBytes++; - int byte3 = instream.ReadByte(); readBytes++; - int byte4 = instream.ReadByte(); readBytes++; - if (byte4 < 0) - throw new StreamTooShortException(); - - length = (((byte1 & 0x0F) << 12) | (byte2 << 4) | (byte3 >> 4)) + 0x111; - disp = (((byte3 & 0x0F) << 8) | byte4) + 0x1; - - #endregion - } - else - { - #region case > 1: (A)(B CD) + (0x1)(0x1) = (LEN)(DISP) - - // case other: - // data = AB CD - // LEN = A + 1 - // DISP = BCD + 1 + #endregion + } + else if (length == 1) + { + #region case 1: 1(B CD E)(F GH) + (0x111)(0x1) = (LEN)(DISP) - // we need only one more byte available - if (readBytes >= inLength) - throw new NotEnoughDataException(currentOutSize, decompressedSize); - int byte2 = instream.ReadByte(); readBytes++; - if (byte2 < 0) - throw new StreamTooShortException(); + // case 1: + // data = AB CD EF GH (with A=1) + // LEN = BCDE + 0x111 + // DISP = FGH + 1 - length = ((byte1 & 0xF0) >> 4) + 0x1; - disp = (((byte1 & 0x0F) << 8) | byte2) + 0x1; + // we need three more bytes available + if (readBytes + 2 >= inLength) + throw new NotEnoughDataException(currentOutSize, decompressedSize); + int byte2 = instream.ReadByte(); readBytes++; + int byte3 = instream.ReadByte(); readBytes++; + int byte4 = instream.ReadByte(); readBytes++; + if (byte4 < 0) + throw new StreamTooShortException(); - #endregion - } + length = (((byte1 & 0x0F) << 12) | (byte2 << 4) | (byte3 >> 4)) + 0x111; + disp = (((byte3 & 0x0F) << 8) | byte4) + 0x1; - if (disp > currentOutSize) - throw new InvalidDataException("Cannot go back more than already written. " - + "DISP = " + disp + ", #written bytes = 0x" + currentOutSize.ToString("X") - + " before 0x" + instream.Position.ToString("X") + " with indicator 0x" - + (byte1 >> 4).ToString("X")); #endregion - - int bufIdx = bufferOffset + bufferLength - disp; - for (int i = 0; i < length; i++) - { - byte next = buffer[bufIdx % bufferLength]; - bufIdx++; - outstream.WriteByte(next); - buffer[bufferOffset] = next; - bufferOffset = (bufferOffset + 1) % bufferLength; - } - currentOutSize += length; } else { + #region case > 1: (A)(B CD) + (0x1)(0x1) = (LEN)(DISP) + + // case other: + // data = AB CD + // LEN = A + 1 + // DISP = BCD + 1 + + // we need only one more byte available if (readBytes >= inLength) throw new NotEnoughDataException(currentOutSize, decompressedSize); - int next = instream.ReadByte(); readBytes++; - if (next < 0) + int byte2 = instream.ReadByte(); readBytes++; + if (byte2 < 0) throw new StreamTooShortException(); - outstream.WriteByte((byte)next); currentOutSize++; - buffer[bufferOffset] = (byte)next; + length = ((byte1 & 0xF0) >> 4) + 0x1; + disp = (((byte1 & 0x0F) << 8) | byte2) + 0x1; + + #endregion + } + + if (disp > currentOutSize) + { + throw new InvalidDataException($"Cannot go back more than already written. DISP = {disp}, #written bytes = 0x{currentOutSize:X} before 0x{instream.Position:X} with indicator 0x{byte1 >> 4:X}"); + } + + #endregion + + int bufIdx = bufferOffset + bufferLength - disp; + for (int i = 0; i < length; i++) + { + byte next = buffer[bufIdx % bufferLength]; + bufIdx++; + outstream.WriteByte(next); + buffer[bufferOffset] = next; bufferOffset = (bufferOffset + 1) % bufferLength; } + currentOutSize += length; } - - if (readBytes < inLength) + else { - // the input may be 4-byte aligned. - if ((readBytes ^ (readBytes & 3)) + 4 < inLength) - throw new TooMuchInputException(readBytes, inLength); + if (readBytes >= inLength) + throw new NotEnoughDataException(currentOutSize, decompressedSize); + int next = instream.ReadByte(); readBytes++; + if (next < 0) + throw new StreamTooShortException(); + + outstream.WriteByte((byte)next); currentOutSize++; + buffer[bufferOffset] = (byte)next; + bufferOffset = (bufferOffset + 1) % bufferLength; } - - return decompressedSize; } - public static int Compress(string infile, string outfile) + if (readBytes < inLength) { - // make sure the output directory exists - string outDirectory = Path.GetDirectoryName(outfile); - if (!Directory.Exists(outDirectory)) - Directory.CreateDirectory(outDirectory); - // open the proper Streams, and delegate to the format-specific code. - using (FileStream inStream = File.Open(infile, FileMode.Open), - outStream = File.Create(outfile)) - { - if (inStream.Length == 0) // empty file 'compression' to lzss container - { - byte[] blank = {0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}; - outStream.Write(blank, 0, blank.Length); - return blank.Length; - } + // the input may be 4-byte aligned. + if ((readBytes ^ (readBytes & 3)) + 4 < inLength) + throw new TooMuchInputException(readBytes, inLength); + } - return Compress(inStream, inStream.Length, outStream, true); - } + return decompressedSize; + } + + public static int Compress(string infile, string outfile) + { + // make sure the output directory exists + string outDirectory = Path.GetDirectoryName(outfile); + if (!Directory.Exists(outDirectory)) + Directory.CreateDirectory(outDirectory); + // open the proper Streams, and delegate to the format-specific code. + using FileStream inStream = File.Open(infile, FileMode.Open), + outStream = File.Create(outfile); + if (inStream.Length == 0) // empty file 'compression' to lzss container + { + byte[] blank = [0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]; + outStream.Write(blank, 0, blank.Length); + return blank.Length; } - #region Original compression method - /// - /// Compresses the input using the 'original', unoptimized compression algorithm. - /// This algorithm should yield files that are the same as those found in the games. - /// (delegates to the optimized method if LookAhead is set) - /// - internal static unsafe int Compress(Stream instream, long inLength, Stream outstream, bool original) + + return Compress(inStream, inStream.Length, outStream, true); + } + #region Original compression method + /// + /// Compresses the input using the 'original', unoptimized compression algorithm. + /// This algorithm should yield files that are the same as those found in the games. + /// (delegates to the optimized method if LookAhead is set) + /// + internal static unsafe int Compress(Stream instream, long inLength, Stream outstream, bool original) + { + // make sure the decompressed size fits in 3 bytes. + // There should be room for four bytes, however I'm not 100% sure if that can be used + // in every game, as it may not be a built-in function. + if (inLength > 0xFFFFFF) + throw new InputTooLargeException(); + + // use the other method if lookahead is enabled + if (!original) { - // make sure the decompressed size fits in 3 bytes. - // There should be room for four bytes, however I'm not 100% sure if that can be used - // in every game, as it may not be a built-in function. - if (inLength > 0xFFFFFF) - throw new InputTooLargeException(); - - // use the other method if lookahead is enabled - if (!original) - { - return CompressWithLA(instream, inLength, outstream); - } + return CompressWithLA(instream, inLength, outstream); + } - // save the input data in an array to prevent having to go back and forth in a file - byte[] indata = new byte[inLength]; - int numReadBytes = instream.Read(indata, 0, (int)inLength); - if (numReadBytes != inLength) - throw new StreamTooShortException(); + // save the input data in an array to prevent having to go back and forth in a file + byte[] indata = new byte[inLength]; + int numReadBytes = instream.Read(indata, 0, (int)inLength); + if (numReadBytes != inLength) + throw new StreamTooShortException(); - // write the compression header first - outstream.WriteByte(0x11); - outstream.WriteByte((byte)(inLength & 0xFF)); - outstream.WriteByte((byte)((inLength >> 8) & 0xFF)); - outstream.WriteByte((byte)((inLength >> 16) & 0xFF)); + // write the compression header first + outstream.WriteByte(0x11); + outstream.WriteByte((byte)(inLength & 0xFF)); + outstream.WriteByte((byte)((inLength >> 8) & 0xFF)); + outstream.WriteByte((byte)((inLength >> 16) & 0xFF)); - int compressedLength = 4; + int compressedLength = 4; - fixed (byte* instart = &indata[0]) + fixed (byte* instart = &indata[0]) + { + // we do need to buffer the output, as the first byte indicates which blocks are compressed. + // this version does not use a look-ahead, so we do not need to buffer more than 8 blocks at a time. + // (a block is at most 4 bytes long) + byte[] outbuffer = new byte[(8 * 4) + 1]; + outbuffer[0] = 0; + int bufferlength = 1, bufferedBlocks = 0; + int readBytes = 0; + while (readBytes < inLength) { - // we do need to buffer the output, as the first byte indicates which blocks are compressed. - // this version does not use a look-ahead, so we do not need to buffer more than 8 blocks at a time. - // (a block is at most 4 bytes long) - byte[] outbuffer = new byte[8 * 4 + 1]; - outbuffer[0] = 0; - int bufferlength = 1, bufferedBlocks = 0; - int readBytes = 0; - while (readBytes < inLength) + #region If 8 blocks are bufferd, write them and reset the buffer + // we can only buffer 8 blocks at a time. + if (bufferedBlocks == 8) { - #region If 8 blocks are bufferd, write them and reset the buffer - // we can only buffer 8 blocks at a time. - if (bufferedBlocks == 8) - { - outstream.Write(outbuffer, 0, bufferlength); - compressedLength += bufferlength; - // reset the buffer - outbuffer[0] = 0; - bufferlength = 1; - bufferedBlocks = 0; - } - #endregion + outstream.Write(outbuffer, 0, bufferlength); + compressedLength += bufferlength; + // reset the buffer + outbuffer[0] = 0; + bufferlength = 1; + bufferedBlocks = 0; + } + #endregion + + // determine if we're dealing with a compressed or raw block. + // it is a compressed block when the next 3 or more bytes can be copied from + // somewhere in the set of already compressed bytes. + int oldLength = Math.Min(readBytes, 0x1000); + int length = LZUtil.GetOccurrenceLength(instart + readBytes, (int)Math.Min(inLength - readBytes, 0x10110), + instart + readBytes - oldLength, oldLength, out var disp); + + // length not 3 or more? next byte is raw data + if (length < 3) + { + outbuffer[bufferlength++] = *(instart + readBytes++); + } + else + { + // 3 or more bytes can be copied? next (length) bytes will be compressed into 2 bytes + readBytes += length; - // determine if we're dealing with a compressed or raw block. - // it is a compressed block when the next 3 or more bytes can be copied from - // somewhere in the set of already compressed bytes. - int disp; - int oldLength = Math.Min(readBytes, 0x1000); - int length = LZUtil.GetOccurrenceLength(instart + readBytes, (int)Math.Min(inLength - readBytes, 0x10110), - instart + readBytes - oldLength, oldLength, out disp); + // mark the next block as compressed + outbuffer[0] |= (byte)(1 << (7 - bufferedBlocks)); - // length not 3 or more? next byte is raw data - if (length < 3) + if (length > 0x110) { - outbuffer[bufferlength++] = *(instart + readBytes++); + // case 1: 1(B CD E)(F GH) + (0x111)(0x1) = (LEN)(DISP) + outbuffer[bufferlength] = 0x10; + outbuffer[bufferlength] |= (byte)(((length - 0x111) >> 12) & 0x0F); + bufferlength++; + outbuffer[bufferlength] = (byte)(((length - 0x111) >> 4) & 0xFF); + bufferlength++; + outbuffer[bufferlength] = (byte)(((length - 0x111) << 4) & 0xF0); } - else + else if (length > 0x10) { - // 3 or more bytes can be copied? next (length) bytes will be compressed into 2 bytes - readBytes += length; - - // mark the next block as compressed - outbuffer[0] |= (byte)(1 << (7 - bufferedBlocks)); - - if (length > 0x110) - { - // case 1: 1(B CD E)(F GH) + (0x111)(0x1) = (LEN)(DISP) - outbuffer[bufferlength] = 0x10; - outbuffer[bufferlength] |= (byte)(((length - 0x111) >> 12) & 0x0F); - bufferlength++; - outbuffer[bufferlength] = (byte)(((length - 0x111) >> 4) & 0xFF); - bufferlength++; - outbuffer[bufferlength] = (byte)(((length - 0x111) << 4) & 0xF0); - } - else if (length > 0x10) - { - // case 0; 0(B C)(D EF) + (0x11)(0x1) = (LEN)(DISP) - outbuffer[bufferlength] = 0x00; - outbuffer[bufferlength] |= (byte)(((length - 0x111) >> 4) & 0x0F); - bufferlength++; - outbuffer[bufferlength] = (byte)(((length - 0x111) << 4) & 0xF0); - } - else - { - // case > 1: (A)(B CD) + (0x1)(0x1) = (LEN)(DISP) - outbuffer[bufferlength] = (byte)(((length - 1) << 4) & 0xF0); - } - // the last 1.5 bytes are always the disp - outbuffer[bufferlength] |= (byte)(((disp - 1) >> 8) & 0x0F); - bufferlength++; - outbuffer[bufferlength] = (byte)((disp - 1) & 0xFF); + // case 0; 0(B C)(D EF) + (0x11)(0x1) = (LEN)(DISP) + outbuffer[bufferlength] = 0x00; + outbuffer[bufferlength] |= (byte)(((length - 0x111) >> 4) & 0x0F); bufferlength++; + outbuffer[bufferlength] = (byte)(((length - 0x111) << 4) & 0xF0); } - bufferedBlocks++; - } - - // copy the remaining blocks to the output - if (bufferedBlocks > 0) - { - outstream.Write(outbuffer, 0, bufferlength); - compressedLength += bufferlength; - /*/ make the compressed file 4-byte aligned. - while ((compressedLength % 4) != 0) + else { - outstream.WriteByte(0); - compressedLength++; - }/**/ + // case > 1: (A)(B CD) + (0x1)(0x1) = (LEN)(DISP) + outbuffer[bufferlength] = (byte)(((length - 1) << 4) & 0xF0); + } + // the last 1.5 bytes are always the disp + outbuffer[bufferlength] |= (byte)(((disp - 1) >> 8) & 0x0F); + bufferlength++; + outbuffer[bufferlength] = (byte)((disp - 1) & 0xFF); + bufferlength++; } + bufferedBlocks++; } - return compressedLength; + // copy the remaining blocks to the output + if (bufferedBlocks > 0) + { + outstream.Write(outbuffer, 0, bufferlength); + compressedLength += bufferlength; + /*/ make the compressed file 4-byte aligned. + while ((compressedLength % 4) != 0) + { + outstream.WriteByte(0); + compressedLength++; + }/**/ + } } - #region Dynamic Programming compression method - /// - /// Variation of the original compression method, making use of Dynamic Programming to 'look ahead' - /// and determine the optimal 'length' values for the compressed blocks. Is not 100% optimal, - /// as the flag-bytes are not taken into account. - /// - internal static unsafe int CompressWithLA(Stream instream, long inLength, Stream outstream) - { - // save the input data in an array to prevent having to go back and forth in a file - byte[] indata = new byte[inLength]; - int numReadBytes = instream.Read(indata, 0, (int)inLength); - if (numReadBytes != inLength) - throw new StreamTooShortException(); - // write the compression header first - outstream.WriteByte(0x11); - outstream.WriteByte((byte)(inLength & 0xFF)); - outstream.WriteByte((byte)((inLength >> 8) & 0xFF)); - outstream.WriteByte((byte)((inLength >> 16) & 0xFF)); + return compressedLength; + } + #region Dynamic Programming compression method + /// + /// Variation of the original compression method, making use of Dynamic Programming to 'look ahead' + /// and determine the optimal 'length' values for the compressed blocks. Is not 100% optimal, + /// as the flag-bytes are not taken into account. + /// + internal static unsafe int CompressWithLA(Stream instream, long inLength, Stream outstream) + { + // save the input data in an array to prevent having to go back and forth in a file + byte[] indata = new byte[inLength]; + int numReadBytes = instream.Read(indata, 0, (int)inLength); + if (numReadBytes != inLength) + throw new StreamTooShortException(); + + // write the compression header first + outstream.WriteByte(0x11); + outstream.WriteByte((byte)(inLength & 0xFF)); + outstream.WriteByte((byte)((inLength >> 8) & 0xFF)); + outstream.WriteByte((byte)((inLength >> 16) & 0xFF)); - int compressedLength = 4; + int compressedLength = 4; - fixed (byte* instart = &indata[0]) + fixed (byte* instart = &indata[0]) + { + // we do need to buffer the output, as the first byte indicates which blocks are compressed. + // this version does not use a look-ahead, so we do not need to buffer more than 8 blocks at a time. + // blocks are at most 4 bytes long. + byte[] outbuffer = new byte[(8 * 4) + 1]; + outbuffer[0] = 0; + int bufferlength = 1, bufferedBlocks = 0; + int readBytes = 0; + + // get the optimal choices for len and disp + GetOptimalCompressionLengths(instart, indata.Length, out var lengths, out var disps); + while (readBytes < inLength) { - // we do need to buffer the output, as the first byte indicates which blocks are compressed. - // this version does not use a look-ahead, so we do not need to buffer more than 8 blocks at a time. - // blocks are at most 4 bytes long. - byte[] outbuffer = new byte[8 * 4 + 1]; - outbuffer[0] = 0; - int bufferlength = 1, bufferedBlocks = 0; - int readBytes = 0; - - // get the optimal choices for len and disp - int[] lengths, disps; - GetOptimalCompressionLengths(instart, indata.Length, out lengths, out disps); - while (readBytes < inLength) + // we can only buffer 8 blocks at a time. + if (bufferedBlocks == 8) { - // we can only buffer 8 blocks at a time. - if (bufferedBlocks == 8) - { - outstream.Write(outbuffer, 0, bufferlength); - compressedLength += bufferlength; - // reset the buffer - outbuffer[0] = 0; - bufferlength = 1; - bufferedBlocks = 0; - } + outstream.Write(outbuffer, 0, bufferlength); + compressedLength += bufferlength; + // reset the buffer + outbuffer[0] = 0; + bufferlength = 1; + bufferedBlocks = 0; + } + if (lengths[readBytes] == 1) + { + outbuffer[bufferlength++] = *(instart + readBytes++); + } + else + { + // mark the next block as compressed + outbuffer[0] |= (byte)(1 << (7 - bufferedBlocks)); - if (lengths[readBytes] == 1) + if (lengths[readBytes] > 0x110) { - outbuffer[bufferlength++] = *(instart + readBytes++); + // case 1: 1(B CD E)(F GH) + (0x111)(0x1) = (LEN)(DISP) + outbuffer[bufferlength] = 0x10; + outbuffer[bufferlength] |= (byte)(((lengths[readBytes] - 0x111) >> 12) & 0x0F); + bufferlength++; + outbuffer[bufferlength] = (byte)(((lengths[readBytes] - 0x111) >> 4) & 0xFF); + bufferlength++; + outbuffer[bufferlength] = (byte)(((lengths[readBytes] - 0x111) << 4) & 0xF0); } - else + else if (lengths[readBytes] > 0x10) { - // mark the next block as compressed - outbuffer[0] |= (byte)(1 << (7 - bufferedBlocks)); - - if (lengths[readBytes] > 0x110) - { - // case 1: 1(B CD E)(F GH) + (0x111)(0x1) = (LEN)(DISP) - outbuffer[bufferlength] = 0x10; - outbuffer[bufferlength] |= (byte)(((lengths[readBytes] - 0x111) >> 12) & 0x0F); - bufferlength++; - outbuffer[bufferlength] = (byte)(((lengths[readBytes] - 0x111) >> 4) & 0xFF); - bufferlength++; - outbuffer[bufferlength] = (byte)(((lengths[readBytes] - 0x111) << 4) & 0xF0); - } - else if (lengths[readBytes] > 0x10) - { - // case 0; 0(B C)(D EF) + (0x11)(0x1) = (LEN)(DISP) - outbuffer[bufferlength] = 0x00; - outbuffer[bufferlength] |= (byte)(((lengths[readBytes] - 0x111) >> 4) & 0x0F); - bufferlength++; - outbuffer[bufferlength] = (byte)(((lengths[readBytes] - 0x111) << 4) & 0xF0); - } - else - { - // case > 1: (A)(B CD) + (0x1)(0x1) = (LEN)(DISP) - outbuffer[bufferlength] = (byte)(((lengths[readBytes] - 1) << 4) & 0xF0); - } - // the last 1.5 bytes are always the disp - outbuffer[bufferlength] |= (byte)(((disps[readBytes] - 1) >> 8) & 0x0F); + // case 0; 0(B C)(D EF) + (0x11)(0x1) = (LEN)(DISP) + outbuffer[bufferlength] = 0x00; + outbuffer[bufferlength] |= (byte)(((lengths[readBytes] - 0x111) >> 4) & 0x0F); bufferlength++; - outbuffer[bufferlength] = (byte)((disps[readBytes] - 1) & 0xFF); - bufferlength++; - - readBytes += lengths[readBytes]; + outbuffer[bufferlength] = (byte)(((lengths[readBytes] - 0x111) << 4) & 0xF0); } + else + { + // case > 1: (A)(B CD) + (0x1)(0x1) = (LEN)(DISP) + outbuffer[bufferlength] = (byte)(((lengths[readBytes] - 1) << 4) & 0xF0); + } + // the last 1.5 bytes are always the disp + outbuffer[bufferlength] |= (byte)(((disps[readBytes] - 1) >> 8) & 0x0F); + bufferlength++; + outbuffer[bufferlength] = (byte)((disps[readBytes] - 1) & 0xFF); + bufferlength++; - - bufferedBlocks++; + readBytes += lengths[readBytes]; } - // copy the remaining blocks to the output - if (bufferedBlocks > 0) - { - outstream.Write(outbuffer, 0, bufferlength); - compressedLength += bufferlength; - /*/ make the compressed file 4-byte aligned. - while ((compressedLength % 4) != 0) - { - outstream.WriteByte(0); - compressedLength++; - }/**/ - } + bufferedBlocks++; } - return compressedLength; + // copy the remaining blocks to the output + if (bufferedBlocks > 0) + { + outstream.Write(outbuffer, 0, bufferlength); + compressedLength += bufferlength; + /*/ make the compressed file 4-byte aligned. + while ((compressedLength % 4) != 0) + { + outstream.WriteByte(0); + compressedLength++; + }/**/ + } } - #endregion - #region DP compression helper method; GetOptimalCompressionLengths - /// - /// Gets the optimal compression lengths for each start of a compressed block using Dynamic Programming. - /// This takes O(n^2) time, although in practice it will often be O(n^3) since one of the constants is 0x10110 - /// (the maximum length of a compressed block) - /// - /// The data to compress. - /// The length of the data to compress. - /// The optimal 'length' of the compressed blocks. For each byte in the input data, - /// this value is the optimal 'length' value. If it is 1, the block should not be compressed. - /// The 'disp' values of the compressed blocks. May be 0, in which case the - /// corresponding length will never be anything other than 1. - internal static unsafe void GetOptimalCompressionLengths(byte* indata, int inLength, out int[] lengths, out int[] disps) - { - lengths = new int[inLength]; - disps = new int[inLength]; - int[] minLengths = new int[inLength]; + return compressedLength; + } + #endregion - for (int i = inLength - 1; i >= 0; i--) + #region DP compression helper method; GetOptimalCompressionLengths + /// + /// Gets the optimal compression lengths for each start of a compressed block using Dynamic Programming. + /// This takes O(n^2) time, although in practice it will often be O(n^3) since one of the constants is 0x10110 + /// (the maximum length of a compressed block) + /// + /// The data to compress. + /// The length of the data to compress. + /// The optimal 'length' of the compressed blocks. For each byte in the input data, + /// this value is the optimal 'length' value. If it is 1, the block should not be compressed. + /// The 'disp' values of the compressed blocks. May be 0, in which case the + /// corresponding length will never be anything other than 1. + internal static unsafe void GetOptimalCompressionLengths(byte* indata, int inLength, out int[] lengths, out int[] disps) + { + lengths = new int[inLength]; + disps = new int[inLength]; + int[] minLengths = new int[inLength]; + + for (int i = inLength - 1; i >= 0; i--) + { + // first get the compression length when the next byte is not compressed + minLengths[i] = int.MaxValue; + lengths[i] = 1; + if (i + 1 >= inLength) + minLengths[i] = 1; + else + minLengths[i] = 1 + minLengths[i + 1]; + // then the optimal compressed length + int oldLength = Math.Min(0x1000, i); + // get the appropriate disp while at it. Takes at most O(n) time if oldLength is considered O(n) and 0x10110 constant. + // however since a lot of files will not be larger than 0x10110, this will often take ~O(n^2) time. + // be sure to bound the input length with 0x10110, as that's the maximum length for LZ-11 compressed blocks. + int maxLen = LZUtil.GetOccurrenceLength(indata + i, Math.Min(inLength - i, 0x10110), + indata + i - oldLength, oldLength, out disps[i]); + if (disps[i] > i) + throw new Exception("disp is too large"); + for (int j = 3; j <= maxLen; j++) { - // first get the compression length when the next byte is not compressed - minLengths[i] = int.MaxValue; - lengths[i] = 1; - if (i + 1 >= inLength) - minLengths[i] = 1; + int blocklen; + if (j > 0x110) + blocklen = 4; + else if (j > 0x10) + blocklen = 3; else - minLengths[i] = 1 + minLengths[i + 1]; - // then the optimal compressed length - int oldLength = Math.Min(0x1000, i); - // get the appropriate disp while at it. Takes at most O(n) time if oldLength is considered O(n) and 0x10110 constant. - // however since a lot of files will not be larger than 0x10110, this will often take ~O(n^2) time. - // be sure to bound the input length with 0x10110, as that's the maximum length for LZ-11 compressed blocks. - int maxLen = LZUtil.GetOccurrenceLength(indata + i, Math.Min(inLength - i, 0x10110), - indata + i - oldLength, oldLength, out disps[i]); - if (disps[i] > i) - throw new Exception("disp is too large"); - for (int j = 3; j <= maxLen; j++) + blocklen = 2; + int newCompLen; + if (i + j >= inLength) + newCompLen = blocklen; + else + newCompLen = blocklen + minLengths[i + j]; + if (newCompLen < minLengths[i]) { - int blocklen; - if (j > 0x110) - blocklen = 4; - else if (j > 0x10) - blocklen = 3; - else - blocklen = 2; - int newCompLen; - if (i + j >= inLength) - newCompLen = blocklen; - else - newCompLen = blocklen + minLengths[i + j]; - if (newCompLen < minLengths[i]) - { - lengths[i] = j; - minLengths[i] = newCompLen; - } + lengths[i] = j; + minLengths[i] = newCompLen; } } - - // we could optimize this further to also optimize it with regard to the flag-bytes, but that would require 8 times - // more space and time (one for each position in the block) for only a potentially tiny increase in compression ratio. } - #endregion - #endregion + + // we could optimize this further to also optimize it with regard to the flag-bytes, but that would require 8 times + // more space and time (one for each position in the block) for only a potentially tiny increase in compression ratio. } - #region Exceptions + #endregion + #endregion +} +#region Exceptions +/// +/// An exception indicating that the file cannot be compressed, because the decompressed size +/// cannot be represented in the current compression format. +/// +[Serializable] +public class InputTooLargeException : Exception +{ /// - /// An exception indicating that the file cannot be compressed, because the decompressed size - /// cannot be represented in the current compression format. + /// Creates a new exception that indicates that the input is too big to be compressed. /// - public class InputTooLargeException : Exception + public InputTooLargeException() + : base("The compression ratio is not high enough to fit the input " + + "in a single compressed file.") + { } + + public InputTooLargeException(string message) : base(message) { - /// - /// Creates a new exception that indicates that the input is too big to be compressed. - /// - public InputTooLargeException() - : base("The compression ratio is not high enough to fit the input " - + "in a single compressed file.") { } } + + public InputTooLargeException(string message, Exception innerException) : base(message, innerException) + { + } + + protected InputTooLargeException(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) + { + } +} + +/// +/// An exception that is thrown by the decompression functions when there +/// is not enough data available in order to properly decompress the input. +/// +[Serializable] +public class NotEnoughDataException : IOException +{ + /// + /// Gets the actual number of written bytes. + /// + public long WrittenLength { get; } + /// - /// An exception that is thrown by the decompression functions when there - /// is not enough data available in order to properly decompress the input. + /// Gets the number of bytes that was supposed to be written. /// - public class NotEnoughDataException : IOException + public long DesiredLength { get; } + + /// + /// Creates a new NotEnoughDataException. + /// + /// The actual number of written bytes. + /// The desired number of written bytes. + public NotEnoughDataException(long currentOutSize, long totalOutSize) + : base("Not enough data available; 0x" + currentOutSize.ToString("X") + + " of " + (totalOutSize < 0 ? "???" : "0x" + totalOutSize.ToString("X")) + + " bytes written.") + { + WrittenLength = currentOutSize; + DesiredLength = totalOutSize; + } + + public NotEnoughDataException() + { + } + + public NotEnoughDataException(string message) : base(message) + { + } + + public NotEnoughDataException(string message, Exception innerException) : base(message, innerException) + { + } + + public NotEnoughDataException(string message, int hresult) : base(message, hresult) + { + } + + protected NotEnoughDataException(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) { - /// - /// Gets the actual number of written bytes. - /// - public long WrittenLength { get; } - - /// - /// Gets the number of bytes that was supposed to be written. - /// - public long DesiredLength { get; } - - /// - /// Creates a new NotEnoughDataException. - /// - /// The actual number of written bytes. - /// The desired number of written bytes. - public NotEnoughDataException(long currentOutSize, long totalOutSize) - : base("Not enough data availble; 0x" + currentOutSize.ToString("X") - + " of " + (totalOutSize < 0 ? "???" : "0x" + totalOutSize.ToString("X")) - + " bytes written.") - { - WrittenLength = currentOutSize; - DesiredLength = totalOutSize; - } } +} + +/// +/// An exception thrown by the compression or decompression function, indicating that the +/// given input length was too large for the given input stream. +/// +[Serializable] +public class StreamTooShortException : EndOfStreamException +{ /// - /// An exception thrown by the compression or decompression function, indicating that the - /// given input length was too large for the given input stream. + /// Creates a new exception that indicates that the stream was shorter than the given input length. /// - public class StreamTooShortException : EndOfStreamException + public StreamTooShortException() + : base("The end of the stream was reached " + + "before the given amount of data was read.") + { } + + public StreamTooShortException(string message) : base(message) { - /// - /// Creates a new exception that indicates that the stream was shorter than the given input length. - /// - public StreamTooShortException() - : base("The end of the stream was reached " - + "before the given amout of data was read.") - { } } + + public StreamTooShortException(string message, Exception innerException) : base(message, innerException) + { + } + + protected StreamTooShortException(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) + { + } +} + +/// +/// An exception indication that the input has more data than required in order +/// to decompress it. This may indicate that more sub-files are present in the file. +/// +[Serializable] +public class TooMuchInputException : Exception +{ /// - /// An exception indication that the input has more data than required in order - /// to decompress it. This may indicate that more sub-files are present in the file. + /// Gets the number of bytes read by the decompressed to decompress the stream. /// - public class TooMuchInputException : Exception + public long ReadBytes { get; } + + /// + /// Creates a new exception indicating that the input has more data than necessary for + /// decompressing th stream. It may indicate that other data is present after the compressed + /// stream. + /// + /// The number of bytes read by the decompressor. + /// The indicated length of the input stream. + public TooMuchInputException(long readBytes, long totLength) + : base("The input contains more data than necessary. Only used 0x" + + readBytes.ToString("X") + " of 0x" + totLength.ToString("X") + " bytes") { - /// - /// Gets the number of bytes read by the decompressed to decompress the stream. - /// - public long ReadBytes { get; private set; } - - /// - /// Creates a new exception indicating that the input has more data than necessary for - /// decompressing th stream. It may indicate that other data is present after the compressed - /// stream. - /// - /// The number of bytes read by the decompressor. - /// The indicated length of the input stream. - public TooMuchInputException(long readBytes, long totLength) - : base("The input contains more data than necessary. Only used 0x" - + readBytes.ToString("X") + " of 0x" + totLength.ToString("X") + " bytes") - { - ReadBytes = readBytes; - } + ReadBytes = readBytes; } - #endregion - #region Supplementary + + public TooMuchInputException() + { + } + + public TooMuchInputException(string message) : base(message) + { + } + + public TooMuchInputException(string message, Exception innerException) : base(message, innerException) + { + } + + protected TooMuchInputException(System.Runtime.Serialization.SerializationInfo serializationInfo, System.Runtime.Serialization.StreamingContext streamingContext) + { + } +} +#endregion +#region Supplementary +/// +/// Class for I/O-related utility methods. +/// +public static class LZUtil +{ /// - /// Class for I/O-related utility methods. + /// Determine the maximum size of a LZ-compressed block starting at newPtr, using the already compressed data + /// starting at oldPtr. Takes O(inLength * oldLength) = O(n^2) time. /// - public static class LZUtil + /// The start of the data that needs to be compressed. + /// The number of bytes that still need to be compressed. + /// (or: the maximum number of bytes that _may_ be compressed into one block) + /// The start of the raw file. + /// The number of bytes already compressed. + /// The offset of the start of the longest block to refer to. + /// The minimum allowed value for 'disp'. + /// The length of the longest sequence of bytes that can be copied from the already decompressed data. + public static unsafe int GetOccurrenceLength(byte* newPtr, int newLength, byte* oldPtr, int oldLength, out int disp, int minDisp = 1) { - /// - /// Determine the maximum size of a LZ-compressed block starting at newPtr, using the already compressed data - /// starting at oldPtr. Takes O(inLength * oldLength) = O(n^2) time. - /// - /// The start of the data that needs to be compressed. - /// The number of bytes that still need to be compressed. - /// (or: the maximum number of bytes that _may_ be compressed into one block) - /// The start of the raw file. - /// The number of bytes already compressed. - /// The offset of the start of the longest block to refer to. - /// The minimum allowed value for 'disp'. - /// The length of the longest sequence of bytes that can be copied from the already decompressed data. - public static unsafe int GetOccurrenceLength(byte* newPtr, int newLength, byte* oldPtr, int oldLength, out int disp, int minDisp = 1) + disp = 0; + if (newLength == 0) + return 0; + int maxLength = 0; + // try every possible 'disp' value (disp = oldLength - i) + for (int i = 0; i < oldLength - minDisp; i++) { - disp = 0; - if (newLength == 0) - return 0; - int maxLength = 0; - // try every possible 'disp' value (disp = oldLength - i) - for (int i = 0; i < oldLength - minDisp; i++) + // work from the start of the old data to the end, to mimic the original implementation's behaviour + // (and going from start to end or from end to start does not influence the compression ratio anyway) + byte* currentOldStart = oldPtr + i; + int currentLength = 0; + // determine the length we can copy if we go back (oldLength - i) bytes + // always check the next 'newLength' bytes, and not just the available 'old' bytes, + // as the copied data can also originate from what we're currently trying to compress. + for (int j = 0; j < newLength; j++) { - // work from the start of the old data to the end, to mimic the original implementation's behaviour - // (and going from start to end or from end to start does not influence the compression ratio anyway) - byte* currentOldStart = oldPtr + i; - int currentLength = 0; - // determine the length we can copy if we go back (oldLength - i) bytes - // always check the next 'newLength' bytes, and not just the available 'old' bytes, - // as the copied data can also originate from what we're currently trying to compress. - for (int j = 0; j < newLength; j++) - { - // stop when the bytes are no longer the same - if (*(currentOldStart + j) != *(newPtr + j)) - break; - currentLength++; - } + // stop when the bytes are no longer the same + if (*(currentOldStart + j) != *(newPtr + j)) + break; + currentLength++; + } - // update the optimal value - if (currentLength > maxLength) - { - maxLength = currentLength; - disp = oldLength - i; + // update the optimal value + if (currentLength > maxLength) + { + maxLength = currentLength; + disp = oldLength - i; - // if we cannot do better anyway, stop trying. - if (maxLength == newLength) - break; - } + // if we cannot do better anyway, stop trying. + if (maxLength == newLength) + break; } - return maxLength; } + return maxLength; } - public static class IOUtils +} + +public static class IOUtils +{ + #region byte[] <-> (u)int + /// + /// Returns a 4-byte unsigned integer as used on the NDS converted from four bytes + /// at a specified position in a byte array. + /// + /// The source of the data. + /// The location of the data in the source. + /// The indicated 4 bytes converted to uint + public static uint ToNDSu32(byte[] buffer, int offset) { - #region byte[] <-> (u)int - /// - /// Returns a 4-byte unsigned integer as used on the NDS converted from four bytes - /// at a specified position in a byte array. - /// - /// The source of the data. - /// The location of the data in the source. - /// The indicated 4 bytes converted to uint - public static uint ToNDSu32(byte[] buffer, int offset) - { - return (uint)(buffer[offset] - | (buffer[offset + 1] << 8) - | (buffer[offset + 2] << 16) - | (buffer[offset + 3] << 24)); - } + return (uint)(buffer[offset] + | (buffer[offset + 1] << 8) + | (buffer[offset + 2] << 16) + | (buffer[offset + 3] << 24)); + } - /// - /// Returns a 4-byte signed integer as used on the NDS converted from four bytes - /// at a specified position in a byte array. - /// - /// The source of the data. - /// The location of the data in the source. - /// The indicated 4 bytes converted to int - public static int ToNDSs32(byte[] buffer, int offset) - { - return buffer[offset] - | (buffer[offset + 1] << 8) - | (buffer[offset + 2] << 16) - | (buffer[offset + 3] << 24); - } + /// + /// Returns a 4-byte signed integer as used on the NDS converted from four bytes + /// at a specified position in a byte array. + /// + /// The source of the data. + /// The location of the data in the source. + /// The indicated 4 bytes converted to int + public static int ToNDSs32(byte[] buffer, int offset) + { + return buffer[offset] + | (buffer[offset + 1] << 8) + | (buffer[offset + 2] << 16) + | (buffer[offset + 3] << 24); + } - /// - /// Converts a u32 value into a sequence of bytes that would make ToNDSu32 return - /// the given input value. - /// - public static byte[] FromNDSu32(uint value) - { - return new[] { - (byte)(value & 0xFF), - (byte)((value >> 8) & 0xFF), - (byte)((value >> 16) & 0xFF), - (byte)((value >> 24) & 0xFF) - }; - } + /// + /// Converts a u32 value into a sequence of bytes that would make ToNDSu32 return + /// the given input value. + /// + public static byte[] FromNDSu32(uint value) + { + return + [ + (byte)(value & 0xFF), + (byte)((value >> 8) & 0xFF), + (byte)((value >> 16) & 0xFF), + (byte)((value >> 24) & 0xFF), + ]; + } - /// - /// Returns a 3-byte integer as used in the built-in compression - /// formats in the DS, converted from three bytes at a specified position in a byte array, - /// - /// The source of the data. - /// The location of the data in the source. - /// The indicated 3 bytes converted to an integer. - public static int ToNDSu24(byte[] buffer, int offset) - { - return buffer[offset] - | (buffer[offset + 1] << 8) - | (buffer[offset + 2] << 16); - } - #endregion + /// + /// Returns a 3-byte integer as used in the built-in compression + /// formats in the DS, converted from three bytes at a specified position in a byte array, + /// + /// The source of the data. + /// The location of the data in the source. + /// The indicated 3 bytes converted to an integer. + public static int ToNDSu24(byte[] buffer, int offset) + { + return buffer[offset] + | (buffer[offset + 1] << 8) + | (buffer[offset + 2] << 16); } #endregion } +#endregion \ No newline at end of file diff --git a/pk3DS.Core/CTR/NCCH.cs b/pk3DS.Core/CTR/NCCH.cs index 4327d13ad3..69688512ce 100644 --- a/pk3DS.Core/CTR/NCCH.cs +++ b/pk3DS.Core/CTR/NCCH.cs @@ -1,78 +1,255 @@ using System; +using System.IO; +using System.Windows.Forms; -namespace pk3DS.Core.CTR +namespace pk3DS.Core.CTR; + +public class NCCH { - public class NCCH + public NCCHHeader Header; + public ExeFS ExeFS; + public RomFS RomFS; + public Exheader Exheader; + public byte[] logo; + public byte[] plainregion; + public const uint MEDIA_UNIT_SIZE = 0x200; + + public class NCCHHeader { - public Header header; - public ExeFS exefs; - public RomFS romfs; - public Exheader exheader; - public byte[] logo; - public byte[] plainregion; - public const uint MEDIA_UNIT_SIZE = 0x200; - - public class Header + public byte[] Signature; //Size: 0x100 + public uint Magic; + public uint Size; + public ulong TitleId; + public ushort MakerCode; + public ushort FormatVersion; + //public uint padding0; + public ulong ProgramId; + //public byte[0x10] padding1; + public byte[] LogoHash; // Size: 0x20 + public byte[] ProductCode; // Size: 0x10 + public byte[] ExheaderHash; // Size: 0x20 + public uint ExheaderSize; + //public uint padding2; + public byte[] Flags; // Size: 8 + public uint PlainRegionOffset; + public uint PlainRegionSize; + public uint LogoOffset; + public uint LogoSize; + public uint ExefsOffset; + public uint ExefsSize; + public uint ExefsSuperBlockSize; + //public uint padding4; + public uint RomfsOffset; + public uint RomfsSize; + public uint RomfsSuperBlockSize; + //public uint padding5; + public byte[] ExefsHash; // Size: 0x20 + public byte[] RomfsHash; // Size: 0x20 + + public byte[] Data; + + public void BuildHeader() { - public byte[] Signature; //Size: 0x100 - public uint Magic; - public uint Size; - public ulong TitleId; - public ushort MakerCode; - public ushort FormatVersion; - //public uint padding0; - public ulong ProgramId; - //public byte[0x10] padding1; - public byte[] LogoHash; // Size: 0x20 - public byte[] ProductCode; // Size: 0x10 - public byte[] ExheaderHash; // Size: 0x20 - public uint ExheaderSize; - //public uint padding2; - public byte[] Flags; // Size: 8 - public uint PlainRegionOffset; - public uint PlainRegionSize; - public uint LogoOffset; - public uint LogoSize; - public uint ExefsOffset; - public uint ExefsSize; - public uint ExefsSuperBlockSize; - //public uint padding4; - public uint RomfsOffset; - public uint RomfsSize; - public uint RomfsSuperBlockSize; - //public uint padding5; - public byte[] ExefsHash; // Size: 0x20 - public byte[] RomfsHash; // Size: 0x20 - - public byte[] Data; - - public void BuildHeader() + Data = new byte[0x200]; + Array.Copy(Signature, Data, 0x100); + Array.Copy(BitConverter.GetBytes(Magic), 0, Data, 0x100, 4); + Array.Copy(BitConverter.GetBytes(Size), 0, Data, 0x104, 4); + Array.Copy(BitConverter.GetBytes(TitleId), 0, Data, 0x108, 8); + Array.Copy(BitConverter.GetBytes(MakerCode), 0, Data, 0x110, 2); + Array.Copy(BitConverter.GetBytes(FormatVersion), 0, Data, 0x112, 2); + //4 Byte Padding + Array.Copy(BitConverter.GetBytes(ProgramId), 0, Data, 0x118, 8); + //0x10 Byte Padding + Array.Copy(LogoHash, 0, Data, 0x130, 0x20); + Array.Copy(ProductCode, 0, Data, 0x150, 0x10); + Array.Copy(ExheaderHash, 0, Data, 0x160, 0x20); + Array.Copy(BitConverter.GetBytes(ExheaderSize), 0, Data, 0x180, 4); + //4 Byte Padding + Array.Copy(Flags, 0, Data, 0x188, 0x8); + uint ofs = 0x190; + foreach (uint val in new uint[] { PlainRegionOffset, PlainRegionSize, LogoOffset, LogoSize, ExefsOffset, ExefsSize, ExefsSuperBlockSize, 0, RomfsOffset, RomfsSize, RomfsSuperBlockSize, 0 }) { - Data = new byte[0x200]; - Array.Copy(Signature, Data, 0x100); - Array.Copy(BitConverter.GetBytes(Magic), 0, Data, 0x100, 4); - Array.Copy(BitConverter.GetBytes(Size), 0, Data, 0x104, 4); - Array.Copy(BitConverter.GetBytes(TitleId), 0, Data, 0x108, 8); - Array.Copy(BitConverter.GetBytes(MakerCode), 0, Data, 0x110, 2); - Array.Copy(BitConverter.GetBytes(FormatVersion), 0, Data, 0x112, 2); - //4 Byte Padding - Array.Copy(BitConverter.GetBytes(ProgramId), 0, Data, 0x118, 8); - //0x10 Byte Padding - Array.Copy(LogoHash, 0, Data, 0x130, 0x20); - Array.Copy(ProductCode, 0, Data, 0x150, 0x10); - Array.Copy(ExheaderHash, 0, Data, 0x160, 0x20); - Array.Copy(BitConverter.GetBytes(ExheaderSize), 0, Data, 0x180, 4); - //4 Byte Padding - Array.Copy(Flags, 0, Data, 0x188, 0x8); - uint ofs = 0x190; - foreach (uint val in new uint[] { PlainRegionOffset, PlainRegionSize, LogoOffset, LogoSize, ExefsOffset, ExefsSize, ExefsSuperBlockSize, 0, RomfsOffset, RomfsSize, RomfsSuperBlockSize, 0 }) + Array.Copy(BitConverter.GetBytes(val), 0, Data, ofs, 4); + ofs += 4; + } + Array.Copy(ExefsHash, 0, Data, 0x1C0, 0x20); + Array.Copy(RomfsHash, 0, Data, 0x1E0, 0x20); + } + + public void BuildHeaderFromBytes(byte[] data) + { + Data = data; + Signature = new byte[0x100]; + Array.Copy(data, Signature, 0x100); + Magic = BitConverter.ToUInt32(data, 0x100); + Size = BitConverter.ToUInt32(data, 0x104); + TitleId = BitConverter.ToUInt64(data, 0x108); + MakerCode = BitConverter.ToUInt16(data, 0x110); + FormatVersion = BitConverter.ToUInt16(data, 0x112); + //4 Byte Padding + ProgramId = BitConverter.ToUInt64(data, 0x118); + //0x10 Byte Padding + LogoHash = new byte[0x20]; + Array.Copy(data, 0x130, LogoHash, 0x0, 0x20); + ProductCode = new byte[0x10]; + Array.Copy(data, 0x150, ProductCode, 0x0, 0x10); + ExheaderHash = new byte[0x20]; + Array.Copy(data, 0x160, ExheaderHash, 0x0, 0x20); + ExheaderSize = BitConverter.ToUInt32(data, 0x180); + //4 Byte Padding + Flags = new byte[0x8]; + Array.Copy(data, 0x188, Flags, 0, 0x8); + PlainRegionOffset = BitConverter.ToUInt32(data, 0x190); + PlainRegionSize = BitConverter.ToUInt32(data, 0x194); + LogoOffset = BitConverter.ToUInt32(data, 0x198); + LogoSize = BitConverter.ToUInt32(data, 0x19C); + ExefsOffset = BitConverter.ToUInt32(data, 0x1A0); + ExefsSize = BitConverter.ToUInt32(data, 0x1A4); + ExefsSuperBlockSize = BitConverter.ToUInt32(data, 0x1A8); + //4 Byte Padding + RomfsOffset = BitConverter.ToUInt32(data, 0x1B0); + RomfsSize = BitConverter.ToUInt32(data, 0x1B4); + RomfsSuperBlockSize = BitConverter.ToUInt32(data, 0x1B8); + //4 Byte Padding + ExefsHash = new byte[0x20]; + Array.Copy(data, 0x1C0, ExefsHash, 0x0, 0x20); + RomfsHash = new byte[0x20]; + Array.Copy(data, 0x1E0, RomfsHash, 0x0, 0x20); + } + } + + public void ExtractNCCHFromFile(string NCCH_PATH, string outputDirectory, RichTextBox TB_Progress = null, ProgressBar PB_Show = null) + { + if (!Directory.Exists(outputDirectory)) + Directory.CreateDirectory(outputDirectory); + + byte[] headerBytes = new byte[0x200]; + using (var fs = new FileStream(NCCH_PATH, FileMode.Open, FileAccess.Read)) + { + _ = fs.Read(headerBytes, 0, headerBytes.Length); + Header = new NCCHHeader(); + Header.BuildHeaderFromBytes(headerBytes); + + logo = new byte[Header.LogoSize * MEDIA_UNIT_SIZE]; + fs.Seek(Convert.ToInt32(Header.LogoOffset * MEDIA_UNIT_SIZE), SeekOrigin.Begin); + _ = fs.Read(logo, 0, logo.Length); + + plainregion = new byte[Header.PlainRegionSize * MEDIA_UNIT_SIZE]; + fs.Seek(Convert.ToInt32(Header.PlainRegionOffset * MEDIA_UNIT_SIZE), SeekOrigin.Begin); + _ = fs.Read(plainregion, 0, plainregion.Length); + } + + ExtractExheader(NCCH_PATH, outputDirectory, TB_Progress); + ExtractExeFS(NCCH_PATH, outputDirectory, TB_Progress); + ExtractRomFS(NCCH_PATH, outputDirectory, TB_Progress, PB_Show); + } + + private void ExtractExheader(string NCCH_PATH, string outputDirectory, RichTextBox TB_Progress = null) + { + string exheaderpath = Path.Combine(outputDirectory, "exheader.bin"); + UpdateTB(TB_Progress, "Extracting exheader.bin from CXI..."); + byte[] exheaderbytes = new byte[Header.ExheaderSize * 2]; + + using (var fs = new FileStream(NCCH_PATH, FileMode.Open, FileAccess.Read)) + { + fs.Seek(Convert.ToInt32(0x200), SeekOrigin.Begin); + _ = fs.Read(exheaderbytes, 0, exheaderbytes.Length); + } + + File.WriteAllBytes(exheaderpath, exheaderbytes); + Exheader = new Exheader(exheaderpath); + } + + private void ExtractExeFS(string NCCH_PATH, string outputDirectory, RichTextBox TB_Progress = null) + { + string exefsbinpath = Path.Combine(outputDirectory, "exefs.bin"); + string exefspath = Path.Combine(outputDirectory, "exefs"); + UpdateTB(TB_Progress, "Extracting exefs.bin from CXI..."); + byte[] exefsbytes = new byte[Header.ExefsSize * MEDIA_UNIT_SIZE]; + + using (var fs = new FileStream(NCCH_PATH, FileMode.Open, FileAccess.Read)) + { + fs.Seek(Convert.ToInt32(Header.ExefsOffset * MEDIA_UNIT_SIZE), SeekOrigin.Begin); + _ = fs.Read(exefsbytes, 0, exefsbytes.Length); + } + + File.WriteAllBytes(exefsbinpath, exefsbytes); + ExeFS.UnpackExeFS(exefsbinpath, exefspath); + File.Delete(exefsbinpath); + } + + private void ExtractRomFS(string NCCH_PATH, string outputDirectory, RichTextBox TB_Progress = null, ProgressBar PB_Show = null) + { + UpdateTB(TB_Progress, "Extracting romfs.bin from CXI..."); + string romfsbinpath = Path.Combine(outputDirectory, "romfs.bin"); + string romfspath = Path.Combine(outputDirectory, "romfs"); + byte[] romfsBytes = new byte[MEDIA_UNIT_SIZE]; + + using (FileStream ncchstream = new(NCCH_PATH, FileMode.Open, FileAccess.Read), + romfsstream = new(romfsbinpath, FileMode.Append, FileAccess.Write)) + { + ncchstream.Seek(Convert.ToInt32(Header.RomfsOffset * MEDIA_UNIT_SIZE), SeekOrigin.Begin); + if (PB_Show.InvokeRequired) + { + PB_Show.Invoke((MethodInvoker)delegate { PB_Show.Minimum = 0; PB_Show.Step = 1; PB_Show.Value = 0; PB_Show.Maximum = Convert.ToInt32(Header.RomfsSize); }); + } + else { PB_Show.Minimum = 0; PB_Show.Step = 1; PB_Show.Value = 0; PB_Show.Maximum = Convert.ToInt32(Header.RomfsSize); } + for (int i = 0; i < Header.RomfsSize; i++) + { + _ = ncchstream.Read(romfsBytes, 0, romfsBytes.Length); + romfsstream.Write(romfsBytes, 0, romfsBytes.Length); + if (PB_Show.InvokeRequired) { - Array.Copy(BitConverter.GetBytes(val), 0, Data, ofs, 4); - ofs += 4; + PB_Show.Invoke((MethodInvoker)PB_Show.PerformStep); } - Array.Copy(ExefsHash, 0, Data, 0x1C0, 0x20); - Array.Copy(RomfsHash, 0, Data, 0x1E0, 0x20); + else { PB_Show.PerformStep(); } + } + } + + var romfs = new RomFS(romfsbinpath); + romfs.ExtractRomFS(romfspath, TB_Progress, PB_Show); + File.Delete(romfsbinpath); + } + + public void WriteHeaderToFile(string outputDirectory, RichTextBox TB_Progress) + { + UpdateTB(TB_Progress, "Extracting ncchheader.bin from CXI..."); + string headerParth = Path.Combine(outputDirectory, "ncchheader.bin"); + using FileStream headerStream = new(headerParth, FileMode.OpenOrCreate, FileAccess.Write); + headerStream.Write(Header.Data, 0, Header.Data.Length); + } + + public void WritePlainRegionAndLogo(string outputDirectory, RichTextBox TB_Progress) + { + string plainRegionPath = Path.Combine(outputDirectory, "plain.bin"); + string logoPath = Path.Combine(outputDirectory, "logo.bcma.lz"); + UpdateTB(TB_Progress, "Extracting plain.bin and logo.bcma.lz from CXI..."); + using FileStream plainStream = new(plainRegionPath, FileMode.OpenOrCreate, FileAccess.Write); + using FileStream logoStream = new(logoPath, FileMode.OpenOrCreate, FileAccess.Write); + plainStream.Write(plainregion, 0, plainregion.Length); + logoStream.Write(logo, 0, logo.Length); + } + + internal static void UpdateTB(RichTextBox RTB, string progress) + { + try + { + if (RTB.InvokeRequired) + { + RTB.Invoke((MethodInvoker)delegate + { + RTB.AppendText(Environment.NewLine + progress); + RTB.SelectionStart = RTB.Text.Length; + RTB.ScrollToCaret(); + }); + } + else + { + RTB.SelectionStart = RTB.Text.Length; + RTB.ScrollToCaret(); + RTB.AppendText(progress + Environment.NewLine); } } + catch { } } -} +} \ No newline at end of file diff --git a/pk3DS.Core/CTR/NCSD.cs b/pk3DS.Core/CTR/NCSD.cs index e3715246cc..9de237f611 100644 --- a/pk3DS.Core/CTR/NCSD.cs +++ b/pk3DS.Core/CTR/NCSD.cs @@ -1,110 +1,216 @@ using System; using System.Collections.Generic; +using System.IO; using System.Linq; +using System.Windows.Forms; -namespace pk3DS.Core.CTR +namespace pk3DS.Core.CTR; + +public class NCSD { - public class NCSD + public NCSDHeader Header; + public CardInfoHeader cardinfoheader; + public List NCCH_Array; + public bool Card2; + public byte[] Data; + + public class NCSDHeader + { + public byte[] Signature; //Size 0x100; + public uint Magic; + public uint MediaSize; + public ulong TitleId; + //public byte[] padding; //Size: 0x10 + public NCCH_Meta[] OffsetSizeTable; //Size: 8 + //public byte[] padding; //Size: 0x28 + public byte[] flags; //Size: 0x8 + public ulong[] NCCHIdTable; //Size: 0x8; + //public byte[] Padding2; //Size: 0x30; + } + + public class CardInfoHeader + { + public uint WritableAddress; + public uint CardInfoBitmask; + public CardInfoNotes CIN; + public ulong NCCH0TitleId; + public ulong Reserved0; + public byte[] InitialData; // Size: 0x30 + public byte[] Reserved1; // Size: 0xC0 + public byte[] NCCH0Header; // Size: 0x100 + + public class CardInfoNotes + { + public byte[] Reserved0; // Size: 0xF8; + public ulong MediaSizeUsed; + public ulong Reserved1; + public uint Unknown; + public byte[] Reserved2; //Size: 0xC; + public ulong CVerTitleId; + public ushort CVerTitleVersion; + public byte[] Reserved3; //Size: 0xCD6; + } + } + + public class NCCH_Meta + { + public uint Offset; + public uint Size; + } + + private const ulong MEDIA_UNIT_SIZE = 0x200; + + public ulong GetWritableAddress() { - public Header header; - public CardInfoHeader cardinfoheader; - public List NCCH_Array; - public bool Card2; - public byte[] Data; + return Card2 + ? Align((Header.OffsetSizeTable[NCCH_Array.Count - 1].Offset * NCCH.MEDIA_UNIT_SIZE) + + (Header.OffsetSizeTable[NCCH_Array.Count - 1].Size * NCCH.MEDIA_UNIT_SIZE) + 0x1000, 0x10000) / MEDIA_UNIT_SIZE + : 0x00000000FFFFFFFF; + } - public class Header + public void BuildHeader() + { + Data = new byte[0x4000]; + Array.Copy(Header.Signature, Data, 0x100); + Array.Copy(BitConverter.GetBytes(Header.Magic), 0, Data, 0x100, 4); + Array.Copy(BitConverter.GetBytes(Header.MediaSize), 0, Data, 0x104, 4); + Array.Copy(BitConverter.GetBytes(Header.TitleId), 0, Data, 0x108, 8); + for (int i = 0; i < Header.OffsetSizeTable.Length; i++) + { + Array.Copy(BitConverter.GetBytes(Header.OffsetSizeTable[i].Offset), 0, Data, 0x120 + (8 * i), 4); + Array.Copy(BitConverter.GetBytes(Header.OffsetSizeTable[i].Size), 0, Data, 0x124 + (8 * i), 4); + } + Array.Copy(Header.flags, 0, Data, 0x188, Header.flags.Length); + for (int i = 0; i < Header.NCCHIdTable.Length; i++) { - public byte[] Signature; //Size 0x100; - public uint Magic; - public uint MediaSize; - public ulong TitleId; - //public byte[] padding; //Size: 0x10 - public NCCH_Meta[] OffsetSizeTable; //Size: 8 - //public byte[] padding; //Size: 0x28 - public byte[] flags; //Size: 0x8 - public ulong[] NCCHIdTable; //Size: 0x8; - //public byte[] Padding2; //Size: 0x30; + Array.Copy(BitConverter.GetBytes(Header.NCCHIdTable[i]), 0, Data, 0x190 + (8 * i), 8); } - public class CardInfoHeader + //CardInfoHeader + Array.Copy(BitConverter.GetBytes(cardinfoheader.WritableAddress), 0, Data, 0x200, 4); + Array.Copy(BitConverter.GetBytes(cardinfoheader.CardInfoBitmask), 0, Data, 0x204, 4); + Array.Copy(cardinfoheader.CIN.Reserved0, 0, Data, 0x208, cardinfoheader.CIN.Reserved0.Length); + Array.Copy(BitConverter.GetBytes(cardinfoheader.CIN.MediaSizeUsed), 0, Data, 0x300, 8); + Array.Copy(BitConverter.GetBytes(cardinfoheader.CIN.Reserved1), 0, Data, 0x308, 8); + Array.Copy(BitConverter.GetBytes(cardinfoheader.CIN.Unknown), 0, Data, 0x310, 4); + Array.Copy(cardinfoheader.CIN.Reserved2, 0, Data, 0x314, cardinfoheader.CIN.Reserved2.Length); + Array.Copy(BitConverter.GetBytes(cardinfoheader.CIN.CVerTitleId), 0, Data, 0x320, 8); + Array.Copy(BitConverter.GetBytes(cardinfoheader.CIN.CVerTitleVersion), 0, Data, 0x328, 2); + Array.Copy(cardinfoheader.CIN.Reserved3, 0, Data, 0x32A, cardinfoheader.CIN.Reserved3.Length); + Array.Copy(BitConverter.GetBytes(cardinfoheader.NCCH0TitleId), 0, Data, 0x1000, 8); + Array.Copy(BitConverter.GetBytes(cardinfoheader.Reserved0), 0, Data, 0x1008, 8); + Array.Copy(cardinfoheader.InitialData, 0, Data, 0x1010, cardinfoheader.InitialData.Length); + Array.Copy(cardinfoheader.Reserved1, 0, Data, 0x1040, cardinfoheader.Reserved1.Length); + Array.Copy(cardinfoheader.NCCH0Header, 0, Data, 0x1100, cardinfoheader.NCCH0Header.Length); + Array.Copy(Enumerable.Repeat((byte)0xFF, 0x2E00).ToArray(), 0, Data, 0x1200, 0x2E00); + } + + public NCSDHeader CreateHeaderFromBytes(byte[] data) + { + Data = data; + var header = new NCSDHeader + { + Signature = new byte[0x100], + Magic = BitConverter.ToUInt32(data, 0x100), + MediaSize = BitConverter.ToUInt32(data, 0x104), + TitleId = BitConverter.ToUInt64(data, 0x108), + OffsetSizeTable = new NCCH_Meta[8], + }; + Array.Copy(data, header.Signature, 0x100); + for (int i = 0; i < 8; i++) { - public uint WritableAddress; - public uint CardInfoBitmask; - public CardInfoNotes CIN; - public ulong NCCH0TitleId; - public ulong Reserved0; - public byte[] InitialData; // Size: 0x30 - public byte[] Reserved1; // Size: 0xC0 - public byte[] NCCH0Header; // Size: 0x100 - - public class CardInfoNotes + header.OffsetSizeTable[i] = new NCCH_Meta { - public byte[] Reserved0; // Size: 0xF8; - public ulong MediaSizeUsed; - public ulong Reserved1; - public uint Unknown; - public byte[] Reserved2; //Size: 0xC; - public ulong CVerTitleId; - public ushort CVerTitleVersion; - public byte[] Reserved3; //Size: 0xCD6; - } + Offset = BitConverter.ToUInt32(data, 0x120 + (8 * i)), + Size = BitConverter.ToUInt32(data, 0x124 + (8 * i)), + }; } - public class NCCH_Meta + header.flags = new byte[8]; + Array.Copy(data, 0x188, header.flags, 0, 8); + header.NCCHIdTable = new ulong[8]; + for (int i = 0; i < 8; i++) { - public uint Offset; - public uint Size; + header.NCCHIdTable[i] = BitConverter.ToUInt64(data, 0x190 + (8 * i)); + } + return header; + } + + public void ExtractFilesFromNCSD(string NCSD_PATH, string outputDirectory, RichTextBox TB_Progress = null, ProgressBar PB_Show = null) + { + if (!Directory.Exists(outputDirectory)) + Directory.CreateDirectory(outputDirectory); + + UpdateTB(TB_Progress, "Extracting game data (CXI) from .3DS file..."); + byte[] headerBytes = new byte[0x200]; + using (var fs = new FileStream(NCSD_PATH, FileMode.Open, FileAccess.Read)) + { + _ = fs.Read(headerBytes, 0, headerBytes.Length); } - public ulong GetWritableAddress() + Header = CreateHeaderFromBytes(headerBytes); + string ncchPath = ExtractCXIfromNCSD(NCSD_PATH, outputDirectory, Header.OffsetSizeTable[0].Size, PB_Show); + UpdateTB(TB_Progress, "CXI extracted, extracting files from CXI..."); + var ncch = new NCCH(); + ncch.ExtractNCCHFromFile(ncchPath, outputDirectory, TB_Progress, PB_Show); + File.Delete(ncchPath); + } + + private static string ExtractCXIfromNCSD(string NCSD_PATH, string outputDirectory, uint ncchSize, ProgressBar PB_Show = null) + { + byte[] buffer = new byte[MEDIA_UNIT_SIZE * 10]; + string outputFile = Path.Combine(outputDirectory, "game.cxi"); + if (PB_Show.InvokeRequired) { - const ulong MEDIA_UNIT_SIZE = 0x200; - return Card2 - ? Align(header.OffsetSizeTable[NCCH_Array.Count - 1].Offset * NCCH.MEDIA_UNIT_SIZE - + header.OffsetSizeTable[NCCH_Array.Count - 1].Size * NCCH.MEDIA_UNIT_SIZE + 0x1000, 0x10000) / MEDIA_UNIT_SIZE - : 0x00000000FFFFFFFF; + PB_Show.Invoke((MethodInvoker)delegate { PB_Show.Minimum = 0; PB_Show.Step = 1; PB_Show.Value = 0; PB_Show.Maximum = Convert.ToInt32(ncchSize); }); } - public void BuildHeader() + else { PB_Show.Minimum = 0; PB_Show.Step = 1; PB_Show.Value = 0; PB_Show.Maximum = Convert.ToInt32(ncchSize); } + + using FileStream inputFileStream = new(NCSD_PATH, FileMode.Open, FileAccess.Read), + outputFileStream = new(outputFile, FileMode.Append, FileAccess.Write); + inputFileStream.Seek(0x4000, SeekOrigin.Begin); + for (int i = 0; i < ncchSize; i++) { - Data = new byte[0x4000]; - Array.Copy(header.Signature, Data, 0x100); - Array.Copy(BitConverter.GetBytes(header.Magic), 0, Data, 0x100, 4); - Array.Copy(BitConverter.GetBytes(header.MediaSize), 0, Data, 0x104, 4); - Array.Copy(BitConverter.GetBytes(header.TitleId), 0, Data, 0x108, 8); - for (int i = 0; i < header.OffsetSizeTable.Length; i++) - { - Array.Copy(BitConverter.GetBytes(header.OffsetSizeTable[i].Offset), 0, Data, 0x120 + 8 * i, 4); - Array.Copy(BitConverter.GetBytes(header.OffsetSizeTable[i].Size), 0, Data, 0x124 + 8 * i, 4); - } - Array.Copy(header.flags, 0, Data, 0x188, header.flags.Length); - for (int i = 0; i < header.NCCHIdTable.Length; i++) + inputFileStream.Read(buffer, 0, buffer.Length); + outputFileStream.Write(buffer, 0, buffer.Length); + if (PB_Show.InvokeRequired) { - Array.Copy(BitConverter.GetBytes(header.NCCHIdTable[i]), 0, Data, 0x190 + 8 * i, 8); + PB_Show.Invoke((MethodInvoker)PB_Show.PerformStep); } - //CardInfoHeader - Array.Copy(BitConverter.GetBytes(cardinfoheader.WritableAddress), 0, Data, 0x200, 4); - Array.Copy(BitConverter.GetBytes(cardinfoheader.CardInfoBitmask), 0, Data, 0x204, 4); - Array.Copy(cardinfoheader.CIN.Reserved0, 0, Data, 0x208, cardinfoheader.CIN.Reserved0.Length); - Array.Copy(BitConverter.GetBytes(cardinfoheader.CIN.MediaSizeUsed), 0, Data, 0x300, 8); - Array.Copy(BitConverter.GetBytes(cardinfoheader.CIN.Reserved1), 0, Data, 0x308, 8); - Array.Copy(BitConverter.GetBytes(cardinfoheader.CIN.Unknown), 0, Data, 0x310, 4); - Array.Copy(cardinfoheader.CIN.Reserved2, 0, Data, 0x314, cardinfoheader.CIN.Reserved2.Length); - Array.Copy(BitConverter.GetBytes(cardinfoheader.CIN.CVerTitleId), 0, Data, 0x320, 8); - Array.Copy(BitConverter.GetBytes(cardinfoheader.CIN.CVerTitleVersion), 0, Data, 0x328, 2); - Array.Copy(cardinfoheader.CIN.Reserved3, 0, Data, 0x32A, cardinfoheader.CIN.Reserved3.Length); - Array.Copy(BitConverter.GetBytes(cardinfoheader.NCCH0TitleId), 0, Data, 0x1000, 8); - Array.Copy(BitConverter.GetBytes(cardinfoheader.Reserved0), 0, Data, 0x1008, 8); - Array.Copy(cardinfoheader.InitialData, 0, Data, 0x1010, cardinfoheader.InitialData.Length); - Array.Copy(cardinfoheader.Reserved1, 0, Data, 0x1040, cardinfoheader.Reserved1.Length); - Array.Copy(cardinfoheader.NCCH0Header, 0, Data, 0x1100, cardinfoheader.NCCH0Header.Length); - Array.Copy(Enumerable.Repeat((byte)0xFF, 0x2E00).ToArray(), 0, Data, 0x1200, 0x2E00); + else { PB_Show.PerformStep(); } } - internal static ulong Align(ulong input, ulong alignsize) + + return outputFile; + } + + internal static ulong Align(ulong input, ulong alignsize) + { + ulong output = input; + if (output % alignsize != 0) { - ulong output = input; - if (output % alignsize != 0) + output += alignsize - (output % alignsize); + } + return output; + } + + internal static void UpdateTB(RichTextBox RTB, string progress) + { + try + { + if (RTB.InvokeRequired) + { + RTB.Invoke((MethodInvoker)delegate + { + RTB.AppendText(Environment.NewLine + progress); + RTB.SelectionStart = RTB.Text.Length; + RTB.ScrollToCaret(); + }); + } + else { - output += alignsize - output % alignsize; + RTB.SelectionStart = RTB.Text.Length; + RTB.ScrollToCaret(); + RTB.AppendText(progress + Environment.NewLine); } - return output; } + catch { } } -} +} \ No newline at end of file diff --git a/pk3DS.Core/CTR/RomFS.cs b/pk3DS.Core/CTR/RomFS.cs index f66c860bb9..1143b19b58 100644 --- a/pk3DS.Core/CTR/RomFS.cs +++ b/pk3DS.Core/CTR/RomFS.cs @@ -5,785 +5,1025 @@ using System.Text; using System.Windows.Forms; -namespace pk3DS.Core.CTR +namespace pk3DS.Core.CTR; + +public class RomFS { - public class RomFS + // Get Info + public readonly string FileName; + public readonly bool isTempFile; + public readonly byte[] SuperBlockHash; + public readonly uint SuperBlockLen; + + public RomFS(string fn) { - // Get Info - public readonly string FileName; - public readonly bool isTempFile; - public readonly byte[] SuperBlockHash; - public readonly uint SuperBlockLen; + FileName = fn; + isTempFile = true; + using var fs = File.OpenRead(fn); + fs.Seek(0x8, SeekOrigin.Begin); + uint mhlen = (uint)(fs.ReadByte() | (fs.ReadByte() << 8) | (fs.ReadByte() << 16) | (fs.ReadByte() << 24)); + SuperBlockLen = mhlen + 0x50; + if (SuperBlockLen % 0x200 != 0) + SuperBlockLen += 0x200 - (SuperBlockLen % 0x200); + byte[] superblock = new byte[SuperBlockLen]; + fs.Seek(0, SeekOrigin.Begin); + fs.Read(superblock, 0, superblock.Length); + SuperBlockHash = SHA256.HashData(superblock); + } - public RomFS(string fn) + // Build + internal const int PADDING_ALIGN = 16; + internal static string ROOT_DIR; + internal const string TempFile = "tempRomFS.bin"; + internal static string OutFile; + internal const uint ROMFS_UNUSED_ENTRY = 0xFFFFFFFF; + + internal static void UpdateTB(RichTextBox RTB, string progress) + { + try { - FileName = fn; - isTempFile = true; - using (var fs = File.OpenRead(fn)) + if (RTB.InvokeRequired) { - fs.Seek(0x8, SeekOrigin.Begin); - uint mhlen = (uint)(fs.ReadByte() | (fs.ReadByte() << 8) | (fs.ReadByte() << 16) | (fs.ReadByte() << 24)); - SuperBlockLen = mhlen + 0x50; - if (SuperBlockLen % 0x200 != 0) - SuperBlockLen += 0x200 - SuperBlockLen % 0x200; - byte[] superblock = new byte[SuperBlockLen]; - fs.Seek(0, SeekOrigin.Begin); - fs.Read(superblock, 0, superblock.Length); - using (SHA256 sha = SHA256.Create()) + RTB.Invoke((MethodInvoker)delegate { - SuperBlockHash = sha.ComputeHash(superblock); - } + RTB.AppendText(Environment.NewLine + progress); + RTB.SelectionStart = RTB.Text.Length; + RTB.ScrollToCaret(); + }); + } + else + { + RTB.SelectionStart = RTB.Text.Length; + RTB.ScrollToCaret(); + RTB.AppendText(progress + Environment.NewLine); } } + catch { } + } - // Build - internal const int PADDING_ALIGN = 16; - internal static string ROOT_DIR; - internal const string TempFile = "tempRomFS.bin"; - internal static string OutFile; - internal const uint ROMFS_UNUSED_ENTRY = 0xFFFFFFFF; + public void ExtractRomFS(string outputDirectory, RichTextBox TB_Progress = null, ProgressBar PB_Show = null) + { + byte[] ivfcHeaderBytes = new byte[0x5C]; + using (var file = new FileStream(FileName, FileMode.Open, FileAccess.Read)) + { + _ = file.Read(ivfcHeaderBytes, 0, ivfcHeaderBytes.Length); + } + var ivfc = GetIVFCInfoFromBytes(ivfcHeaderBytes); - internal static void updateTB(RichTextBox RTB, string progress) + ulong romfsDataOffset = Align(ivfc.Levels[0].HashOffset + ivfc.MasterHashSize, ivfc.Levels[2].BlockSize); + byte[] romfsInfoHeaderBytes = new byte[0x28]; + using (var file = new FileStream(FileName, FileMode.Open, FileAccess.Read)) { - try - { - if (RTB.InvokeRequired) - RTB.Invoke((MethodInvoker)delegate - { - RTB.AppendText(Environment.NewLine + progress); - RTB.SelectionStart = RTB.Text.Length; - RTB.ScrollToCaret(); - }); - else - { - RTB.SelectionStart = RTB.Text.Length; - RTB.ScrollToCaret(); - RTB.AppendText(progress + Environment.NewLine); - } - } - catch { } + file.Seek(Convert.ToInt64(romfsDataOffset), SeekOrigin.Begin); + _ = file.Read(romfsInfoHeaderBytes, 0, romfsInfoHeaderBytes.Length); } - public static void BuildRomFS(string infile, string outfile, RichTextBox TB_Progress = null, ProgressBar PB_Show = null) + Romfs_InfoHeader infoHeader = GetRomfsInfoHeaderFromBytes(romfsInfoHeaderBytes, Convert.ToUInt32(romfsDataOffset)); + + byte[] directoryMetadataBlock = new byte[infoHeader.Sections[1].Size]; + byte[] fileMetadataBlock = new byte[infoHeader.Sections[3].Size]; + using (var file = new FileStream(FileName, FileMode.Open, FileAccess.Read)) { - OutFile = outfile; - ROOT_DIR = infile; - if (File.Exists(TempFile)) File.Delete(TempFile); + file.Seek(Convert.ToInt64(infoHeader.Sections[1].Offset), SeekOrigin.Begin); + _ = file.Read(directoryMetadataBlock, 0, directoryMetadataBlock.Length); + + file.Seek(Convert.ToInt64(infoHeader.Sections[3].Offset), SeekOrigin.Begin); + _ = file.Read(fileMetadataBlock, 0, fileMetadataBlock.Length); + } - FileNameTable FNT = new FileNameTable(ROOT_DIR); - RomfsFile[] RomFiles = new RomfsFile[FNT.NumFiles]; - LayoutManager.Input[] In = new LayoutManager.Input[FNT.NumFiles]; - updateTB(TB_Progress, "Creating Layout..."); - for (int i = 0; i < FNT.NumFiles; i++) + if (!Directory.Exists(outputDirectory)) + { + Directory.CreateDirectory(outputDirectory); + } + + VisitDirectory(0, outputDirectory, directoryMetadataBlock, fileMetadataBlock, infoHeader.DataOffset, TB_Progress, PB_Show); + } + + private static IVFCInfo GetIVFCInfoFromBytes(byte[] headerBytes) + { + var ivfc = new IVFCInfo(); + uint magic1 = BitConverter.ToUInt32(headerBytes, 0x00); + uint magic2 = BitConverter.ToUInt32(headerBytes, 0x04); + if (magic1 != 0x43465649 || magic2 != 0x10000) + { + throw new ArgumentException("Bad IVFC Header"); + } + ivfc.MasterHashSize = BitConverter.ToUInt32(headerBytes, 0x08); + ivfc.Levels = new IVFCLevel[3]; + for (int i = 0; i < 3; i++) + { + ivfc.Levels[i] = new IVFCLevel { - In[i] = new LayoutManager.Input { FilePath = FNT.NameEntryTable[i].FullName, AlignmentSize = 0x10 }; - } - LayoutManager.Output[] Out = LayoutManager.Create(In); - for (int i = 0; i < Out.Length; i++) + HashOffset = BitConverter.ToUInt64(headerBytes, 0x0C + (i * 0x18)), + DataLength = BitConverter.ToUInt64(headerBytes, 0x14 + (i * 0x18)), + BlockSize = 1U << BitConverter.ToInt32(headerBytes, 0x1C + (i * 0x18)), + }; + } + return ivfc; + } + + private static Romfs_InfoHeader GetRomfsInfoHeaderFromBytes(byte[] headerBytes, uint bodyOffset) + { + var infoHeader = new Romfs_InfoHeader + { + HeaderLength = BitConverter.ToUInt32(headerBytes, 0x00), + Sections = new Romfs_SectionHeader[4], + }; + for (int i = 0; i < 4; i++) + { + infoHeader.Sections[i] = new Romfs_SectionHeader { - RomFiles[i] = new RomfsFile - { - Offset = Out[i].Offset, - PathName = Out[i].FilePath.Replace(Path.GetFullPath(ROOT_DIR), "").Replace("\\", "/"), - FullName = Out[i].FilePath, - Size = Out[i].Size - }; - } - using (MemoryStream memoryStream = new MemoryStream()) + Offset = BitConverter.ToUInt32(headerBytes, 0x04 + (i * 0x08)) + bodyOffset, + Size = BitConverter.ToUInt32(headerBytes, 0x08 + (i * 0x08)), + }; + } + infoHeader.DataOffset = BitConverter.ToUInt32(headerBytes, 0x24) + bodyOffset; + return infoHeader; + } + + private void VisitDirectory( + uint directoryOffset, + string rootPath, + byte[] directoryMetadataBlock, + byte[] fileMetadataBlock, + ulong dataOffset, + RichTextBox TB_Progress = null, + ProgressBar PB_Show = null) + { + Romfs_DirEntry entry = GetDirEntryFromMetadataBytes(directoryMetadataBlock, Convert.ToInt32(directoryOffset)); + + string currentPath = Path.Combine(rootPath, entry.Name); + Directory.CreateDirectory(currentPath); + + if (entry.FileOffset != 0xFFFFFFFF) + { + VisitFile(entry.FileOffset, currentPath, fileMetadataBlock, dataOffset, TB_Progress, PB_Show); + } + + if (entry.ChildOffset != 0xFFFFFFFF) + { + VisitDirectory(entry.ChildOffset, currentPath, directoryMetadataBlock, fileMetadataBlock, dataOffset, TB_Progress, PB_Show); + } + + if (entry.SiblingOffset != 0xFFFFFFFF) + { + VisitDirectory(entry.SiblingOffset, rootPath, directoryMetadataBlock, fileMetadataBlock, dataOffset, TB_Progress, PB_Show); + } + } + + private void VisitFile( + uint fileOffset, + string rootPath, + byte[] fileMetadataBlock, + ulong dataOffset, + RichTextBox TB_Progress = null, + ProgressBar PB_Show = null) + { + Romfs_FileEntry entry = GetFileEntryFromMetadataBytes(fileMetadataBlock, Convert.ToInt32(fileOffset)); + string currentPath = Path.Combine(rootPath, entry.Name); + UpdateTB_Progress($"Extracting {currentPath} from romfs", TB_Progress); + ExtractFileFromRomFS(entry, currentPath, dataOffset, PB_Show); + + if (entry.SiblingOffset != 0xFFFFFFFF) + { + VisitFile(entry.SiblingOffset, rootPath, fileMetadataBlock, dataOffset, TB_Progress, PB_Show); + } + } + + private static Romfs_DirEntry GetDirEntryFromMetadataBytes(byte[] directoryMetadataBlock, int directoryOffset) + { + var entry = new Romfs_DirEntry + { + ParentOffset = BitConverter.ToUInt32(directoryMetadataBlock, directoryOffset), + SiblingOffset = BitConverter.ToUInt32(directoryMetadataBlock, directoryOffset + 0x04), + ChildOffset = BitConverter.ToUInt32(directoryMetadataBlock, directoryOffset + 0x08), + FileOffset = BitConverter.ToUInt32(directoryMetadataBlock, directoryOffset + 0x0C), + }; + uint nameLength = BitConverter.ToUInt32(directoryMetadataBlock, directoryOffset + 0x14); + entry.Name = ""; + if (nameLength != 0xFFFFFFFF) + { + byte[] fileNameBytes = new byte[nameLength]; + Array.Copy(directoryMetadataBlock, directoryOffset + 0x18, fileNameBytes, 0, fileNameBytes.Length); + entry.Name = Encoding.Unicode.GetString(fileNameBytes); + } + return entry; + } + + private static Romfs_FileEntry GetFileEntryFromMetadataBytes(byte[] fileMetadataBlock, int fileOffset) + { + var entry = new Romfs_FileEntry + { + ParentDirOffset = BitConverter.ToUInt32(fileMetadataBlock, fileOffset), + SiblingOffset = BitConverter.ToUInt32(fileMetadataBlock, fileOffset + 0x04), + DataOffset = BitConverter.ToUInt64(fileMetadataBlock, fileOffset + 0x08), + DataSize = BitConverter.ToUInt64(fileMetadataBlock, fileOffset + 0x10), + NameSize = BitConverter.ToUInt32(fileMetadataBlock, fileOffset + 0x1C), + Name = "", + }; + if (entry.NameSize != 0xFFFFFFFF) + { + byte[] fileNameBytes = new byte[entry.NameSize]; + Array.Copy(fileMetadataBlock, fileOffset + 0x20, fileNameBytes, 0, fileNameBytes.Length); + entry.Name = Encoding.Unicode.GetString(fileNameBytes); + } + return entry; + } + + private void ExtractFileFromRomFS(Romfs_FileEntry entry, string path, ulong dataOffset, ProgressBar PB_Show = null) + { + ulong offsetInRomFS = dataOffset + entry.DataOffset; + byte[] buffer = new byte[0x2000]; + + using FileStream romfsFileStream = new(FileName, FileMode.Open, FileAccess.Read), + outputFileStream = new(path, FileMode.Append, FileAccess.Write); + romfsFileStream.Seek(Convert.ToInt64(offsetInRomFS), SeekOrigin.Begin); + int remainingSize = Convert.ToInt32(entry.DataSize); + var max = remainingSize / buffer.Length; + if (PB_Show.InvokeRequired) + { + PB_Show.Invoke((MethodInvoker)delegate { PB_Show.Minimum = 0; PB_Show.Step = 1; PB_Show.Value = 0; PB_Show.Maximum = max; }); + } + else { PB_Show.Minimum = 0; PB_Show.Step = 1; PB_Show.Value = 0; PB_Show.Maximum = max; } + + while (remainingSize > 0) + { + int sizeToReadWrite = buffer.Length > remainingSize ? remainingSize : buffer.Length; + romfsFileStream.Read(buffer, 0, sizeToReadWrite); + outputFileStream.Write(buffer, 0, sizeToReadWrite); + remainingSize -= sizeToReadWrite; + if (PB_Show.InvokeRequired) { - updateTB(TB_Progress, "Creating RomFS MetaData..."); - BuildRomFSHeader(memoryStream, RomFiles, ROOT_DIR); - MakeRomFSData(RomFiles, memoryStream, TB_Progress, PB_Show); + PB_Show.Invoke((MethodInvoker)PB_Show.PerformStep); } + else { PB_Show.PerformStep(); } } + } - internal static ulong Align(ulong input, ulong alignsize) + public static void BuildRomFS(string infile, string outfile, RichTextBox TB_Progress = null, ProgressBar PB_Show = null) + { + OutFile = outfile; + ROOT_DIR = infile; + if (File.Exists(TempFile)) File.Delete(TempFile); + + var FNT = new FileNameTable(ROOT_DIR); + var RomFiles = new RomfsFile[FNT.NumFiles]; + var In = new LayoutManager.Input[FNT.NumFiles]; + UpdateTB(TB_Progress, "Creating Layout..."); + for (int i = 0; i < FNT.NumFiles; i++) { - ulong output = input; - if (output % alignsize != 0) + In[i] = new LayoutManager.Input { FilePath = FNT.NameEntryTable[i].FullName, AlignmentSize = 0x10 }; + } + var Out = LayoutManager.Create(In); + for (int i = 0; i < Out.Length; i++) + { + RomFiles[i] = new RomfsFile { - output += alignsize - output % alignsize; - } - return output; + Offset = Out[i].Offset, + PathName = Out[i].FilePath.Replace(Path.GetFullPath(ROOT_DIR), "").Replace("\\", "/"), + FullName = Out[i].FilePath, + Size = Out[i].Size, + }; + } + + using var memoryStream = new MemoryStream(); + UpdateTB(TB_Progress, "Creating RomFS MetaData..."); + BuildRomFSHeader(memoryStream, RomFiles, ROOT_DIR); + MakeRomFSData(RomFiles, memoryStream, TB_Progress, PB_Show); + } + + internal static ulong Align(ulong input, ulong alignsize) + { + ulong output = input; + if (output % alignsize != 0) + { + output += alignsize - (output % alignsize); } - internal static void MakeRomFSData(RomfsFile[] RomFiles, MemoryStream metadata, RichTextBox TB_Progress = null, ProgressBar PB_Show = null) + return output; + } + + internal static void MakeRomFSData(RomfsFile[] RomFiles, MemoryStream metadata, RichTextBox TB_Progress = null, ProgressBar PB_Show = null) + { + UpdateTB(TB_Progress, "Computing IVFC Header Data..."); + var ivfc = new IVFCInfo { Levels = new IVFCLevel[3] }; + for (int i = 0; i < ivfc.Levels.Length; i++) { - updateTB(TB_Progress, "Computing IVFC Header Data..."); - IVFCInfo ivfc = new IVFCInfo { Levels = new IVFCLevel[3] }; - for (int i = 0; i < ivfc.Levels.Length; i++) + ivfc.Levels[i] = new IVFCLevel { BlockSize = 0x1000 }; + } + ivfc.Levels[2].DataLength = RomfsFile.GetDataBlockLength(RomFiles, (ulong)metadata.Length); + ivfc.Levels[1].DataLength = Align(ivfc.Levels[2].DataLength, ivfc.Levels[2].BlockSize) / ivfc.Levels[2].BlockSize * 0x20; //0x20 per SHA256 hash + ivfc.Levels[0].DataLength = Align(ivfc.Levels[1].DataLength, ivfc.Levels[1].BlockSize) / ivfc.Levels[1].BlockSize * 0x20; //0x20 per SHA256 hash + ulong MasterHashLen = Align(ivfc.Levels[0].DataLength, ivfc.Levels[0].BlockSize) / ivfc.Levels[0].BlockSize * 0x20; + ulong lofs = 0; + foreach (IVFCLevel t in ivfc.Levels) + { + t.HashOffset = lofs; + lofs += Align(t.DataLength, t.BlockSize); + } + const uint IVFC_MAGIC = 0x43465649; //IVFC + const uint RESERVED = 0x0; + const uint HeaderLen = 0x5C; + const uint MEDIA_UNIT_SIZE = 0x200; + var OutFileStream = new FileStream(TempFile, FileMode.Create, FileAccess.ReadWrite); + try + { + OutFileStream.Seek(0, SeekOrigin.Begin); + OutFileStream.Write(BitConverter.GetBytes(IVFC_MAGIC), 0, 0x4); + OutFileStream.Write(BitConverter.GetBytes(0x10000), 0, 0x4); + OutFileStream.Write(BitConverter.GetBytes(MasterHashLen), 0, 0x4); + foreach (IVFCLevel t in ivfc.Levels) { - ivfc.Levels[i] = new IVFCLevel { BlockSize = 0x1000 }; + OutFileStream.Write(BitConverter.GetBytes(t.HashOffset), 0, 0x8); + OutFileStream.Write(BitConverter.GetBytes(t.DataLength), 0, 0x8); + OutFileStream.Write(BitConverter.GetBytes((int)Math.Log(t.BlockSize, 2)), 0, 0x4); + OutFileStream.Write(BitConverter.GetBytes(RESERVED), 0, 0x4); } - ivfc.Levels[2].DataLength = RomfsFile.GetDataBlockLength(RomFiles, (ulong)metadata.Length); - ivfc.Levels[1].DataLength = Align(ivfc.Levels[2].DataLength, ivfc.Levels[2].BlockSize) / ivfc.Levels[2].BlockSize * 0x20; //0x20 per SHA256 hash - ivfc.Levels[0].DataLength = Align(ivfc.Levels[1].DataLength, ivfc.Levels[1].BlockSize) / ivfc.Levels[1].BlockSize * 0x20; //0x20 per SHA256 hash - ulong MasterHashLen = Align(ivfc.Levels[0].DataLength, ivfc.Levels[0].BlockSize) / ivfc.Levels[0].BlockSize * 0x20; - ulong lofs = 0; - foreach (IVFCLevel t in ivfc.Levels) + OutFileStream.Write(BitConverter.GetBytes(HeaderLen), 0, 0x4); + //IVFC Header is Written. + OutFileStream.Seek((long)Align(MasterHashLen + 0x60, ivfc.Levels[0].BlockSize), SeekOrigin.Begin); + byte[] metadataArray = metadata.ToArray(); + OutFileStream.Write(metadataArray, 0, metadataArray.Length); + long baseOfs = OutFileStream.Position; + UpdateTB(TB_Progress, "Writing Level 2 Data..."); + if (PB_Show.InvokeRequired) { - t.HashOffset = lofs; - lofs += Align(t.DataLength, t.BlockSize); + PB_Show.Invoke((MethodInvoker)delegate { PB_Show.Minimum = 0; PB_Show.Step = 1; PB_Show.Value = 0; PB_Show.Maximum = RomFiles.Length; }); } - const uint IVFC_MAGIC = 0x43465649; //IVFC - const uint RESERVED = 0x0; - const uint HeaderLen = 0x5C; - const uint MEDIA_UNIT_SIZE = 0x200; - byte[] SuperBlockHash = new byte[0x20]; - FileStream OutFileStream = new FileStream(TempFile, FileMode.Create, FileAccess.ReadWrite); - try + else { PB_Show.Minimum = 0; PB_Show.Step = 1; PB_Show.Value = 0; PB_Show.Maximum = RomFiles.Length; } + + foreach (RomfsFile t in RomFiles) { - OutFileStream.Seek(0, SeekOrigin.Begin); - OutFileStream.Write(BitConverter.GetBytes(IVFC_MAGIC), 0, 0x4); - OutFileStream.Write(BitConverter.GetBytes(0x10000), 0, 0x4); - OutFileStream.Write(BitConverter.GetBytes(MasterHashLen), 0, 0x4); - foreach (IVFCLevel t in ivfc.Levels) + OutFileStream.Seek(baseOfs + (long)t.Offset, SeekOrigin.Begin); + using (var inStream = new FileStream(t.FullName, FileMode.Open, FileAccess.Read)) { - OutFileStream.Write(BitConverter.GetBytes(t.HashOffset), 0, 0x8); - OutFileStream.Write(BitConverter.GetBytes(t.DataLength), 0, 0x8); - OutFileStream.Write(BitConverter.GetBytes((int)Math.Log(t.BlockSize, 2)), 0, 0x4); - OutFileStream.Write(BitConverter.GetBytes(RESERVED), 0, 0x4); + while (inStream.Position < inStream.Length) + { + byte[] buffer = new byte[inStream.Length - inStream.Position > 0x100000 ? 0x100000 : inStream.Length - inStream.Position]; + _ = inStream.Read(buffer, 0, buffer.Length); + OutFileStream.Write(buffer, 0, buffer.Length); + } } - OutFileStream.Write(BitConverter.GetBytes(HeaderLen), 0, 0x4); - //IVFC Header is Written. - OutFileStream.Seek((long)Align(MasterHashLen + 0x60, ivfc.Levels[0].BlockSize), SeekOrigin.Begin); - byte[] metadataArray = metadata.ToArray(); - OutFileStream.Write(metadataArray, 0, metadataArray.Length); - long baseOfs = OutFileStream.Position; - updateTB(TB_Progress, "Writing Level 2 Data..."); if (PB_Show.InvokeRequired) - PB_Show.Invoke((MethodInvoker)delegate { PB_Show.Minimum = 0; PB_Show.Step = 1; PB_Show.Value = 0; PB_Show.Maximum = RomFiles.Length; }); - else { PB_Show.Minimum = 0; PB_Show.Step = 1; PB_Show.Value = 0; PB_Show.Maximum = RomFiles.Length; } - - foreach (RomfsFile t in RomFiles) { - OutFileStream.Seek(baseOfs + (long)t.Offset, SeekOrigin.Begin); - using (FileStream inStream = new FileStream(t.FullName, FileMode.Open, FileAccess.Read)) - { - while (inStream.Position < inStream.Length) - { - byte[] buffer = new byte[inStream.Length - inStream.Position > 0x100000 ? 0x100000 : inStream.Length - inStream.Position]; - inStream.Read(buffer, 0, buffer.Length); - OutFileStream.Write(buffer, 0, buffer.Length); - } - } - if (PB_Show.InvokeRequired) - PB_Show.Invoke((MethodInvoker)PB_Show.PerformStep); - else { PB_Show.PerformStep(); } + PB_Show.Invoke((MethodInvoker)PB_Show.PerformStep); } - long hashBaseOfs = (long)Align((ulong)OutFileStream.Position, ivfc.Levels[2].BlockSize); - long hOfs = (long)Align(MasterHashLen, ivfc.Levels[0].BlockSize); - long cOfs = hashBaseOfs + (long)ivfc.Levels[1].HashOffset; - SHA256Managed sha = new SHA256Managed(); - for (int i = ivfc.Levels.Length - 1; i >= 0; i--) + else { PB_Show.PerformStep(); } + } + long hashBaseOfs = (long)Align((ulong)OutFileStream.Position, ivfc.Levels[2].BlockSize); + long hOfs = (long)Align(MasterHashLen, ivfc.Levels[0].BlockSize); + long cOfs = hashBaseOfs + (long)ivfc.Levels[1].HashOffset; + for (int i = ivfc.Levels.Length - 1; i >= 0; i--) + { + UpdateTB(TB_Progress, "Computing Level " + i + " Hashes..."); + byte[] buffer = new byte[(int)ivfc.Levels[i].BlockSize]; + + var count = (int)(ivfc.Levels[i].DataLength / ivfc.Levels[i].BlockSize); + if (PB_Show.InvokeRequired) { - updateTB(TB_Progress, "Computing Level " + i + " Hashes..."); - byte[] buffer = new byte[(int)ivfc.Levels[i].BlockSize]; + PB_Show.Invoke((MethodInvoker)delegate { PB_Show.Minimum = 0; PB_Show.Step = 1; PB_Show.Value = 0; PB_Show.Maximum = count; }); + } + else { PB_Show.Minimum = 0; PB_Show.Step = 1; PB_Show.Value = 0; PB_Show.Maximum = count; } - var count = (int) (ivfc.Levels[i].DataLength/ivfc.Levels[i].BlockSize); + for (long ofs = 0; ofs < (long)ivfc.Levels[i].DataLength; ofs += ivfc.Levels[i].BlockSize) + { + OutFileStream.Seek(hOfs, SeekOrigin.Begin); + OutFileStream.Read(buffer, 0, (int)ivfc.Levels[i].BlockSize); + hOfs = OutFileStream.Position; + byte[] hash = SHA256.HashData(buffer); + OutFileStream.Seek(cOfs, SeekOrigin.Begin); + OutFileStream.Write(hash, 0, hash.Length); + cOfs = OutFileStream.Position; if (PB_Show.InvokeRequired) - PB_Show.Invoke((MethodInvoker)delegate { PB_Show.Minimum = 0; PB_Show.Step = 1; PB_Show.Value = 0; PB_Show.Maximum = count; }); - else { PB_Show.Minimum = 0; PB_Show.Step = 1; PB_Show.Value = 0; PB_Show.Maximum = count; } - - for (long ofs = 0; ofs < (long)ivfc.Levels[i].DataLength; ofs += ivfc.Levels[i].BlockSize) - { - OutFileStream.Seek(hOfs, SeekOrigin.Begin); - OutFileStream.Read(buffer, 0, (int)ivfc.Levels[i].BlockSize); - hOfs = OutFileStream.Position; - byte[] hash = sha.ComputeHash(buffer); - OutFileStream.Seek(cOfs, SeekOrigin.Begin); - OutFileStream.Write(hash, 0, hash.Length); - cOfs = OutFileStream.Position; - if (PB_Show.InvokeRequired) - PB_Show.Invoke((MethodInvoker)PB_Show.PerformStep); - else { PB_Show.PerformStep(); } - } - - if (i <= 0) - continue; - - if (i == 2) { - long len = OutFileStream.Position; - if (len % 0x1000 != 0) - { - len = (long)Align((ulong)len, 0x1000); - byte[] buf = new byte[len - OutFileStream.Position]; - OutFileStream.Write(buf, 0, buf.Length); - } + PB_Show.Invoke((MethodInvoker)PB_Show.PerformStep); } - - hOfs = hashBaseOfs + (long)ivfc.Levels[i - 1].HashOffset; - if (i > 1) - cOfs = hashBaseOfs + (long)ivfc.Levels[i - 2].HashOffset; - else - cOfs = (long)Align(HeaderLen, PADDING_ALIGN); + else { PB_Show.PerformStep(); } } - OutFileStream.Seek(0, SeekOrigin.Begin); - uint SuperBlockLen = (uint)Align(MasterHashLen + 0x60, MEDIA_UNIT_SIZE); - byte[] MasterHashes = new byte[SuperBlockLen]; - OutFileStream.Read(MasterHashes, 0, (int)SuperBlockLen); - SuperBlockHash = sha.ComputeHash(MasterHashes); - } - finally - { - OutFileStream.Dispose(); - } - if (OutFile == TempFile) - return; - if (File.Exists(OutFile)) File.Delete(OutFile); - File.Move(TempFile, OutFile); - } - internal static void WriteBinary(string tempFile, string outFile, RichTextBox TB_Progress = null, ProgressBar PB_Show = null) - { - using (FileStream fs = new FileStream(outFile, FileMode.Create)) - { - using (BinaryWriter writer = new BinaryWriter(fs)) + if (i <= 0) + continue; + + if (i == 2) { - using (FileStream fileStream = new FileStream(tempFile, FileMode.Open, FileAccess.Read)) + long len = OutFileStream.Position; + if (len % 0x1000 != 0) { - const uint BUFFER_SIZE = 0x400000; // 4MB Buffer - var steps = (int)(fileStream.Length / BUFFER_SIZE); - if (PB_Show.InvokeRequired) - PB_Show.Invoke((MethodInvoker)delegate { PB_Show.Minimum = 0; PB_Show.Step = 1; PB_Show.Value = 0; PB_Show.Maximum = steps; }); - else { PB_Show.Minimum = 0; PB_Show.Step = 1; PB_Show.Value = 0; PB_Show.Maximum = steps; } - - byte[] buffer = new byte[BUFFER_SIZE]; - while (true) - { - int count = fileStream.Read(buffer, 0, buffer.Length); - if (count != 0) - { - writer.Write(buffer, 0, count); - if (PB_Show.InvokeRequired) - PB_Show.Invoke((MethodInvoker)PB_Show.PerformStep); - else { PB_Show.PerformStep(); } - } - else - break; - } + len = (long)Align((ulong)len, 0x1000); + byte[] buf = new byte[len - OutFileStream.Position]; + OutFileStream.Write(buf, 0, buf.Length); } - writer.Flush(); } - } - File.Delete(TempFile); - updateTB(TB_Progress, "Wrote RomFS to path:" + Environment.NewLine + outFile); - } - internal static string ByteArrayToString(IEnumerable input) - { - StringBuilder sb = new StringBuilder(); - foreach (byte b in input) - sb.Append(b.ToString("X2") + " "); - return sb.ToString(); - } - - internal static void UpdateTB_Progress(string text, RichTextBox TB_Progress = null) - { - TB_Progress.Text += text + Environment.NewLine; - } - internal static void BuildRomFSHeader(MemoryStream romfs_stream, RomfsFile[] Entries, string DIR) - { - ROOT_DIR = DIR; - Romfs_MetaData MetaData = new Romfs_MetaData(); + hOfs = hashBaseOfs + (long)ivfc.Levels[i - 1].HashOffset; + if (i > 1) + cOfs = hashBaseOfs + (long)ivfc.Levels[i - 2].HashOffset; + else + cOfs = (long)Align(HeaderLen, PADDING_ALIGN); + } + OutFileStream.Seek(0, SeekOrigin.Begin); + uint SuperBlockLen = (uint)Align(MasterHashLen + 0x60, MEDIA_UNIT_SIZE); + byte[] MasterHashes = new byte[SuperBlockLen]; + OutFileStream.Read(MasterHashes, 0, (int)SuperBlockLen); - InitializeMetaData(MetaData); - CalcRomfsSize(MetaData); - PopulateRomfs(MetaData, Entries); - WriteMetaDataToStream(MetaData, romfs_stream); + //var SuperBlockHash = sha.ComputeHash(MasterHashes); + //Console.WriteLine(SuperBlockHash); } - internal static void InitializeMetaData(Romfs_MetaData MetaData) + finally { - MetaData.InfoHeader = new Romfs_InfoHeader(); - MetaData.DirTable = new Romfs_DirTable(); - MetaData.DirTableLen = 0; - MetaData.M_DirTableLen = 0; - MetaData.FileTable = new Romfs_FileTable(); - MetaData.FileTableLen = 0; - MetaData.DirTable.DirectoryTable = new List(); - MetaData.FileTable.FileTable = new List(); - MetaData.InfoHeader.HeaderLength = 0x28; - MetaData.InfoHeader.Sections = new Romfs_SectionHeader[4]; - MetaData.DirHashTable = new List(); - MetaData.FileHashTable = new List(); + OutFileStream.Dispose(); } - internal static void CalcRomfsSize(Romfs_MetaData MetaData) - { - MetaData.DirNum = 1; - DirectoryInfo Root_DI = new DirectoryInfo(ROOT_DIR); - CalcDirSize(MetaData, Root_DI); - MetaData.M_DirHashTableEntry = GetHashTableEntryCount(MetaData.DirNum); - MetaData.M_FileHashTableEntry = GetHashTableEntryCount(MetaData.FileNum); + if (OutFile == TempFile) + return; + if (File.Exists(OutFile)) File.Delete(OutFile); + File.Move(TempFile, OutFile); + } - uint MetaDataSize = (uint)Align(0x28 + MetaData.M_DirHashTableEntry * 4 + MetaData.M_DirTableLen + MetaData.M_FileHashTableEntry * 4 + MetaData.M_FileTableLen, PADDING_ALIGN); - for (int i = 0; i < MetaData.M_DirHashTableEntry; i++) - MetaData.DirHashTable.Add(ROMFS_UNUSED_ENTRY); + internal static void WriteBinary(string tempFile, string outFile, RichTextBox TB_Progress = null, ProgressBar PB_Show = null) + { + using var fs = new FileStream(outFile, FileMode.Create); + using var writer = new BinaryWriter(fs); + using var fileStream = new FileStream(tempFile, FileMode.Open, FileAccess.Read); - for (int i = 0; i < MetaData.M_FileHashTableEntry; i++) - MetaData.FileHashTable.Add(ROMFS_UNUSED_ENTRY); + const uint BUFFER_SIZE = 0x400000; // 4MB Buffer + var steps = (int)(fileStream.Length / BUFFER_SIZE); + if (PB_Show.InvokeRequired) + { + PB_Show.Invoke((MethodInvoker)delegate { PB_Show.Minimum = 0; PB_Show.Step = 1; PB_Show.Value = 0; PB_Show.Maximum = steps; }); + } + else { PB_Show.Minimum = 0; PB_Show.Step = 1; PB_Show.Value = 0; PB_Show.Maximum = steps; } - uint Pos = MetaData.InfoHeader.HeaderLength; - for (int i = 0; i < 4; i++) + byte[] buffer = new byte[BUFFER_SIZE]; + while (true) + { + int count = fileStream.Read(buffer, 0, buffer.Length); + if (count != 0) { - MetaData.InfoHeader.Sections[i].Offset = Pos; - uint size = 0; - switch (i) + writer.Write(buffer, 0, count); + if (PB_Show.InvokeRequired) { - case 0: - size = MetaData.M_DirHashTableEntry * 4; - break; - case 1: - size = MetaData.M_DirTableLen; - break; - case 2: - size = MetaData.M_FileHashTableEntry * 4; - break; - case 3: - size = MetaData.M_FileTableLen; - break; + PB_Show.Invoke((MethodInvoker)PB_Show.PerformStep); } - MetaData.InfoHeader.Sections[i].Size = size; - Pos += size; + else { PB_Show.PerformStep(); } } - MetaData.InfoHeader.DataOffset = MetaDataSize; - } - internal static uint GetHashTableEntryCount(uint Entries) - { - uint count = Entries; - if (Entries < 3) - count = 3; - else if (count < 19) - count |= 1; else { - while (count % 2 == 0 || count % 3 == 0 || count % 5 == 0 || count % 7 == 0 || count % 11 == 0 || count % 13 == 0 || count % 17 == 0) - { - count++; - } + break; } - return count; } - internal static void CalcDirSize(Romfs_MetaData MetaData, DirectoryInfo dir) - { - if (MetaData.M_DirTableLen == 0) - MetaData.M_DirTableLen = 0x18; - else - MetaData.M_DirTableLen += 0x18 + (uint)Align((ulong)dir.Name.Length * 2, 4); - FileInfo[] files = dir.GetFiles(); - foreach (FileInfo t in files) - MetaData.M_FileTableLen += 0x20 + (uint)Align((ulong)t.Name.Length * 2, 4); + writer.Flush(); + File.Delete(TempFile); + UpdateTB(TB_Progress, "Wrote RomFS to path:" + Environment.NewLine + outFile); + } - DirectoryInfo[] SubDirectories = dir.GetDirectories(); - foreach (DirectoryInfo t in SubDirectories) - CalcDirSize(MetaData, t); + internal static string ByteArrayToString(IEnumerable input) + { + var sb = new StringBuilder(); + foreach (byte b in input) + sb.Append(b.ToString("X2")).Append(' '); + + return sb.ToString(); + } - MetaData.FileNum += (uint)files.Length; - MetaData.DirNum += (uint)SubDirectories.Length; + internal static void UpdateTB_Progress(string text, RichTextBox TB_Progress = null) + { + if (TB_Progress.InvokeRequired) + { + TB_Progress.Invoke((MethodInvoker)delegate + { + TB_Progress.Text += text + Environment.NewLine; + }); } - internal static void PopulateRomfs(Romfs_MetaData MetaData, RomfsFile[] Entries) + else { - //Recursively Add All Directories to DirectoryTable - AddDir(MetaData, new DirectoryInfo(ROOT_DIR), 0, ROMFS_UNUSED_ENTRY); + TB_Progress.Text += text + Environment.NewLine; + } + } - //Iteratively Add All Files to FileTable - AddFiles(MetaData, Entries); + internal static void BuildRomFSHeader(MemoryStream romfs_stream, RomfsFile[] Entries, string DIR) + { + ROOT_DIR = DIR; + var MetaData = new Romfs_MetaData(); - //Set Weird Offsets, Build HashKeyPointers, Build HashTables - PopulateHashTables(MetaData); + InitializeMetaData(MetaData); + CalcRomfsSize(MetaData); + PopulateRomfs(MetaData, Entries); + WriteMetaDataToStream(MetaData, romfs_stream); + } - //Thats it. - } - internal static void PopulateHashTables(Romfs_MetaData MetaData) + internal static void InitializeMetaData(Romfs_MetaData MetaData) + { + MetaData.InfoHeader = new(); + MetaData.DirTable = new(); + MetaData.DirTableLen = 0; + MetaData.M_DirTableLen = 0; + MetaData.FileTable = new(); + MetaData.FileTableLen = 0; + MetaData.DirTable.DirectoryTable = []; + MetaData.FileTable.FileTable = []; + MetaData.InfoHeader.HeaderLength = 0x28; + MetaData.InfoHeader.Sections = new Romfs_SectionHeader[4]; + MetaData.DirHashTable = []; + MetaData.FileHashTable = []; + } + + internal static void CalcRomfsSize(Romfs_MetaData MetaData) + { + MetaData.DirNum = 1; + var Root_DI = new DirectoryInfo(ROOT_DIR); + CalcDirSize(MetaData, Root_DI); + + MetaData.M_DirHashTableEntry = GetHashTableEntryCount(MetaData.DirNum); + MetaData.M_FileHashTableEntry = GetHashTableEntryCount(MetaData.FileNum); + + uint MetaDataSize = (uint)Align(0x28 + (MetaData.M_DirHashTableEntry * 4) + MetaData.M_DirTableLen + (MetaData.M_FileHashTableEntry * 4) + MetaData.M_FileTableLen, PADDING_ALIGN); + for (int i = 0; i < MetaData.M_DirHashTableEntry; i++) + MetaData.DirHashTable.Add(ROMFS_UNUSED_ENTRY); + + for (int i = 0; i < MetaData.M_FileHashTableEntry; i++) + MetaData.FileHashTable.Add(ROMFS_UNUSED_ENTRY); + + uint Pos = MetaData.InfoHeader.HeaderLength; + for (int i = 0; i < 4; i++) { - for (int i = 0; i < MetaData.DirTable.DirectoryTable.Count; i++) - AddDirHashKey(MetaData, i); - for (int i = 0; i < MetaData.FileTable.FileTable.Count; i++) - AddFileHashKey(MetaData, i); + MetaData.InfoHeader.Sections[i].Offset = Pos; + uint size = i switch + { + 0 => MetaData.M_DirHashTableEntry * 4, + 1 => MetaData.M_DirTableLen, + 2 => MetaData.M_FileHashTableEntry * 4, + 3 => MetaData.M_FileTableLen, + _ => 0 + }; + MetaData.InfoHeader.Sections[i].Size = size; + Pos += size; } + MetaData.InfoHeader.DataOffset = MetaDataSize; + } - internal static void AddDirHashKey(Romfs_MetaData MetaData, int index) + internal static uint GetHashTableEntryCount(uint Entries) + { + uint count = Entries; + if (Entries < 3) { - uint parent = MetaData.DirTable.DirectoryTable[index].ParentOffset; - string Name = MetaData.DirTable.DirectoryTable[index].Name; - byte[] NArr = index == 0 ? Encoding.Unicode.GetBytes("") : Encoding.Unicode.GetBytes(Name); - uint hash = CalcPathHash(parent, NArr, 0, NArr.Length); - int ind2 = (int)(hash % MetaData.M_DirHashTableEntry); - if (MetaData.DirHashTable[ind2] == ROMFS_UNUSED_ENTRY) - { - MetaData.DirHashTable[ind2] = MetaData.DirTable.DirectoryTable[index].Offset; - } - else - { - int i = GetRomfsDirEntry(MetaData, MetaData.DirHashTable[ind2]); - int tempindex = index; - MetaData.DirHashTable[ind2] = MetaData.DirTable.DirectoryTable[index].Offset; - while (true) - { - if (MetaData.DirTable.DirectoryTable[tempindex].HashKeyPointer == ROMFS_UNUSED_ENTRY) - { - MetaData.DirTable.DirectoryTable[tempindex].HashKeyPointer = MetaData.DirTable.DirectoryTable[i].Offset; - break; - } - i = tempindex; - tempindex = GetRomfsDirEntry(MetaData, MetaData.DirTable.DirectoryTable[i].HashKeyPointer); - } - } + count = 3; } - internal static void AddFileHashKey(Romfs_MetaData MetaData, int index) + else if (count < 19) { - uint parent = MetaData.FileTable.FileTable[index].ParentDirOffset; - string Name = MetaData.FileTable.FileTable[index].Name; - byte[] NArr = Encoding.Unicode.GetBytes(Name); - uint hash = CalcPathHash(parent, NArr, 0, NArr.Length); - int ind2 = (int)(hash % MetaData.M_FileHashTableEntry); - if (MetaData.FileHashTable[ind2] == ROMFS_UNUSED_ENTRY) - { - MetaData.FileHashTable[ind2] = MetaData.FileTable.FileTable[index].Offset; - } - else - { - int i = GetRomfsFileEntry(MetaData, MetaData.FileHashTable[ind2]); - int tempindex = index; - MetaData.FileHashTable[ind2] = MetaData.FileTable.FileTable[index].Offset; - while (true) - { - if (MetaData.FileTable.FileTable[tempindex].HashKeyPointer == ROMFS_UNUSED_ENTRY) - { - MetaData.FileTable.FileTable[tempindex].HashKeyPointer = MetaData.FileTable.FileTable[i].Offset; - break; - } - i = tempindex; - tempindex = GetRomfsFileEntry(MetaData, MetaData.FileTable.FileTable[i].HashKeyPointer); - } - } + count |= 1; } - - internal static uint CalcPathHash(uint ParentOffset, byte[] NameArray, int start, int len) + else { - uint hash = ParentOffset ^ 123456789; - for (int i = 0; i < NameArray.Length; i += 2) + while (count % 2 == 0 || count % 3 == 0 || count % 5 == 0 || count % 7 == 0 || count % 11 == 0 || count % 13 == 0 || count % 17 == 0) { - hash = (hash >> 5) | (hash << 27); - hash ^= (ushort)(NameArray[start + i] | (NameArray[start + i + 1] << 8)); + count++; } - return hash; } + return count; + } + + internal static void CalcDirSize(Romfs_MetaData MetaData, DirectoryInfo dir) + { + if (MetaData.M_DirTableLen == 0) + MetaData.M_DirTableLen = 0x18; + else + MetaData.M_DirTableLen += 0x18 + (uint)Align((ulong)dir.Name.Length * 2, 4); + + FileInfo[] files = dir.GetFiles(); + foreach (FileInfo t in files) + MetaData.M_FileTableLen += 0x20 + (uint)Align((ulong)t.Name.Length * 2, 4); + + DirectoryInfo[] SubDirectories = dir.GetDirectories(); + foreach (DirectoryInfo t in SubDirectories) + CalcDirSize(MetaData, t); + + MetaData.FileNum += (uint)files.Length; + MetaData.DirNum += (uint)SubDirectories.Length; + } + + internal static void PopulateRomfs(Romfs_MetaData MetaData, RomfsFile[] Entries) + { + //Recursively Add All Directories to DirectoryTable + AddDir(MetaData, new DirectoryInfo(ROOT_DIR), 0, ROMFS_UNUSED_ENTRY); + + //Iteratively Add All Files to FileTable + AddFiles(MetaData, Entries); + + //Set Weird Offsets, Build HashKeyPointers, Build HashTables + PopulateHashTables(MetaData); + + //Thats it. + } + + internal static void PopulateHashTables(Romfs_MetaData MetaData) + { + for (int i = 0; i < MetaData.DirTable.DirectoryTable.Count; i++) + AddDirHashKey(MetaData, i); + for (int i = 0; i < MetaData.FileTable.FileTable.Count; i++) + AddFileHashKey(MetaData, i); + } - internal static void AddDir(Romfs_MetaData MetaData, DirectoryInfo Dir, uint parent, uint sibling) + internal static void AddDirHashKey(Romfs_MetaData MetaData, int index) + { + uint parent = MetaData.DirTable.DirectoryTable[index].ParentOffset; + string Name = MetaData.DirTable.DirectoryTable[index].Name; + byte[] NArr = index == 0 ? Encoding.Unicode.GetBytes("") : Encoding.Unicode.GetBytes(Name); + uint hash = CalcPathHash(parent, NArr, 0); + int ind2 = (int)(hash % MetaData.M_DirHashTableEntry); + if (MetaData.DirHashTable[ind2] == ROMFS_UNUSED_ENTRY) { - AddDir(MetaData, Dir, parent, sibling, false); - AddDir(MetaData, Dir, parent, sibling, true); + MetaData.DirHashTable[ind2] = MetaData.DirTable.DirectoryTable[index].Offset; } - - internal static void AddDir(Romfs_MetaData MetaData, DirectoryInfo Dir, uint parent, uint sibling, bool DoSubs) + else { - DirectoryInfo[] SubDirectories = Dir.GetDirectories(); - if (!DoSubs) - { - uint CurrentDir = MetaData.DirTableLen; - Romfs_DirEntry Entry = new Romfs_DirEntry { ParentOffset = parent }; - Entry.ChildOffset = Entry.HashKeyPointer = Entry.FileOffset = ROMFS_UNUSED_ENTRY; - Entry.SiblingOffset = sibling; - Entry.FullName = Dir.FullName; - Entry.Name = Entry.FullName == ROOT_DIR ? "" : Dir.Name; - Entry.Offset = CurrentDir; - MetaData.DirTable.DirectoryTable.Add(Entry); - MetaData.DirTableLen += CurrentDir == 0 ? 0x18 : 0x18 + (uint)Align((ulong)Dir.Name.Length * 2, 4); - // int ParentIndex = GetRomfsDirEntry(MetaData, Dir.FullName); - // uint poff = MetaData.DirTable.DirectoryTable[ParentIndex].Offset; - } - else + int i = GetRomfsDirEntry(MetaData, MetaData.DirHashTable[ind2]); + int tempindex = index; + MetaData.DirHashTable[ind2] = MetaData.DirTable.DirectoryTable[index].Offset; + while (true) { - int CurIndex = GetRomfsDirEntry(MetaData, Dir.FullName); - uint CurrentDir = MetaData.DirTable.DirectoryTable[CurIndex].Offset; - for (int i = 0; i < SubDirectories.Length; i++) + if (MetaData.DirTable.DirectoryTable[tempindex].HashKeyPointer == ROMFS_UNUSED_ENTRY) { - AddDir(MetaData, SubDirectories[i], CurrentDir, sibling, false); - if (i <= 0) - continue; - - string PrevFullName = SubDirectories[i - 1].FullName; - string ThisName = SubDirectories[i].FullName; - int PrevIndex = GetRomfsDirEntry(MetaData, PrevFullName); - int ThisIndex = GetRomfsDirEntry(MetaData, ThisName); - MetaData.DirTable.DirectoryTable[PrevIndex].SiblingOffset = - MetaData.DirTable.DirectoryTable[ThisIndex].Offset; + MetaData.DirTable.DirectoryTable[tempindex].HashKeyPointer = MetaData.DirTable.DirectoryTable[i].Offset; + break; } - foreach (DirectoryInfo t in SubDirectories) - AddDir(MetaData, t, CurrentDir, sibling, true); + i = tempindex; + tempindex = GetRomfsDirEntry(MetaData, MetaData.DirTable.DirectoryTable[i].HashKeyPointer); } + } + } - if (SubDirectories.Length <= 0) - return; - - int curindex = GetRomfsDirEntry(MetaData, Dir.FullName); - int childindex = GetRomfsDirEntry(MetaData, SubDirectories[0].FullName); - if (curindex > -1 && childindex > -1) - MetaData.DirTable.DirectoryTable[curindex].ChildOffset = - MetaData.DirTable.DirectoryTable[childindex].Offset; + internal static void AddFileHashKey(Romfs_MetaData MetaData, int index) + { + uint parent = MetaData.FileTable.FileTable[index].ParentDirOffset; + string Name = MetaData.FileTable.FileTable[index].Name; + byte[] NArr = Encoding.Unicode.GetBytes(Name); + uint hash = CalcPathHash(parent, NArr, 0); + int ind2 = (int)(hash % MetaData.M_FileHashTableEntry); + if (MetaData.FileHashTable[ind2] == ROMFS_UNUSED_ENTRY) + { + MetaData.FileHashTable[ind2] = MetaData.FileTable.FileTable[index].Offset; } - internal static void AddFiles(Romfs_MetaData MetaData, RomfsFile[] Entries) + else { - string PrevDirPath = ""; - for (int i = 0; i < Entries.Length; i++) + int i = GetRomfsFileEntry(MetaData, MetaData.FileHashTable[ind2]); + int tempindex = index; + MetaData.FileHashTable[ind2] = MetaData.FileTable.FileTable[index].Offset; + while (true) { - FileInfo file = new FileInfo(Entries[i].FullName); - Romfs_FileEntry Entry = new Romfs_FileEntry(); - string DirPath = Path.GetDirectoryName(Entries[i].FullName); - int ParentIndex = GetRomfsDirEntry(MetaData, DirPath); - Entry.FullName = Entries[i].FullName; - Entry.Offset = MetaData.FileTableLen; - Entry.ParentDirOffset = MetaData.DirTable.DirectoryTable[ParentIndex].Offset; - Entry.SiblingOffset = ROMFS_UNUSED_ENTRY; - if (DirPath == PrevDirPath) + if (MetaData.FileTable.FileTable[tempindex].HashKeyPointer == ROMFS_UNUSED_ENTRY) { - MetaData.FileTable.FileTable[i - 1].SiblingOffset = Entry.Offset; + MetaData.FileTable.FileTable[tempindex].HashKeyPointer = MetaData.FileTable.FileTable[i].Offset; + break; } - if (MetaData.DirTable.DirectoryTable[ParentIndex].FileOffset == ROMFS_UNUSED_ENTRY) - { - MetaData.DirTable.DirectoryTable[ParentIndex].FileOffset = Entry.Offset; - } - Entry.HashKeyPointer = ROMFS_UNUSED_ENTRY; - Entry.NameSize = (uint)file.Name.Length * 2; - Entry.Name = file.Name; - Entry.DataOffset = Entries[i].Offset; - Entry.DataSize = Entries[i].Size; - MetaData.FileTable.FileTable.Add(Entry); - MetaData.FileTableLen += 0x20 + (uint)Align((ulong)file.Name.Length * 2, 4); - PrevDirPath = DirPath; + i = tempindex; + tempindex = GetRomfsFileEntry(MetaData, MetaData.FileTable.FileTable[i].HashKeyPointer); } } + } - internal static void WriteMetaDataToStream(Romfs_MetaData MetaData, MemoryStream stream) + internal static uint CalcPathHash(uint ParentOffset, byte[] NameArray, int start) + { + uint hash = ParentOffset ^ 123456789; + for (int i = 0; i < NameArray.Length; i += 2) { - //First, InfoHeader. - stream.Write(BitConverter.GetBytes(MetaData.InfoHeader.HeaderLength), 0, 4); - foreach (Romfs_SectionHeader SH in MetaData.InfoHeader.Sections) - { - stream.Write(BitConverter.GetBytes(SH.Offset), 0, 4); - stream.Write(BitConverter.GetBytes(SH.Size), 0, 4); - } - stream.Write(BitConverter.GetBytes(MetaData.InfoHeader.DataOffset), 0, 4); + hash = (hash >> 5) | (hash << 27); + hash ^= (ushort)(NameArray[start + i] | (NameArray[start + i + 1] << 8)); + } + return hash; + } - //DirHashTable - foreach (uint u in MetaData.DirHashTable) - { - stream.Write(BitConverter.GetBytes(u), 0, 4); - } + internal static void AddDir(Romfs_MetaData MetaData, DirectoryInfo Dir, uint parent, uint sibling) + { + AddDir(MetaData, Dir, parent, sibling, false); + AddDir(MetaData, Dir, parent, sibling, true); + } - //DirTable - foreach (Romfs_DirEntry dir in MetaData.DirTable.DirectoryTable) + internal static void AddDir(Romfs_MetaData MetaData, DirectoryInfo Dir, uint parent, uint sibling, bool DoSubs) + { + DirectoryInfo[] SubDirectories = Dir.GetDirectories(); + if (!DoSubs) + { + uint CurrentDir = MetaData.DirTableLen; + var Entry = new Romfs_DirEntry { ParentOffset = parent }; + Entry.ChildOffset = Entry.HashKeyPointer = Entry.FileOffset = ROMFS_UNUSED_ENTRY; + Entry.SiblingOffset = sibling; + Entry.FullName = Dir.FullName; + Entry.Name = Entry.FullName == ROOT_DIR ? "" : Dir.Name; + Entry.Offset = CurrentDir; + MetaData.DirTable.DirectoryTable.Add(Entry); + MetaData.DirTableLen += CurrentDir == 0 ? 0x18 : 0x18 + (uint)Align((ulong)Dir.Name.Length * 2, 4); + // int ParentIndex = GetRomfsDirEntry(MetaData, Dir.FullName); + // uint poff = MetaData.DirTable.DirectoryTable[ParentIndex].Offset; + } + else + { + int CurIndex = GetRomfsDirEntry(MetaData, Dir.FullName); + uint CurrentDir = MetaData.DirTable.DirectoryTable[CurIndex].Offset; + for (int i = 0; i < SubDirectories.Length; i++) { - stream.Write(BitConverter.GetBytes(dir.ParentOffset), 0, 4); - stream.Write(BitConverter.GetBytes(dir.SiblingOffset), 0, 4); - stream.Write(BitConverter.GetBytes(dir.ChildOffset), 0, 4); - stream.Write(BitConverter.GetBytes(dir.FileOffset), 0, 4); - stream.Write(BitConverter.GetBytes(dir.HashKeyPointer), 0, 4); - uint nlen = (uint)dir.Name.Length * 2; - stream.Write(BitConverter.GetBytes(nlen), 0, 4); - byte[] NameArray = new byte[(int)Align(nlen, 4)]; - Array.Copy(Encoding.Unicode.GetBytes(dir.Name), 0, NameArray, 0, nlen); - stream.Write(NameArray, 0, NameArray.Length); + AddDir(MetaData, SubDirectories[i], CurrentDir, sibling, false); + if (i <= 0) + continue; + + string PrevFullName = SubDirectories[i - 1].FullName; + string ThisName = SubDirectories[i].FullName; + int PrevIndex = GetRomfsDirEntry(MetaData, PrevFullName); + int ThisIndex = GetRomfsDirEntry(MetaData, ThisName); + MetaData.DirTable.DirectoryTable[PrevIndex].SiblingOffset = + MetaData.DirTable.DirectoryTable[ThisIndex].Offset; } + foreach (DirectoryInfo t in SubDirectories) + AddDir(MetaData, t, CurrentDir, sibling, true); + } + + if (SubDirectories.Length == 0) + return; + + int curindex = GetRomfsDirEntry(MetaData, Dir.FullName); + int childindex = GetRomfsDirEntry(MetaData, SubDirectories[0].FullName); + if (curindex > -1 && childindex > -1) + MetaData.DirTable.DirectoryTable[curindex].ChildOffset = MetaData.DirTable.DirectoryTable[childindex].Offset; + } - //FileHashTable - foreach (uint u in MetaData.FileHashTable) + internal static void AddFiles(Romfs_MetaData MetaData, RomfsFile[] Entries) + { + string PrevDirPath = ""; + for (int i = 0; i < Entries.Length; i++) + { + var file = new FileInfo(Entries[i].FullName); + var Entry = new Romfs_FileEntry(); + string DirPath = Path.GetDirectoryName(Entries[i].FullName); + int ParentIndex = GetRomfsDirEntry(MetaData, DirPath); + Entry.FullName = Entries[i].FullName; + Entry.Offset = MetaData.FileTableLen; + Entry.ParentDirOffset = MetaData.DirTable.DirectoryTable[ParentIndex].Offset; + Entry.SiblingOffset = ROMFS_UNUSED_ENTRY; + if (DirPath == PrevDirPath) { - stream.Write(BitConverter.GetBytes(u), 0, 4); + MetaData.FileTable.FileTable[i - 1].SiblingOffset = Entry.Offset; } - - //FileTable - foreach (Romfs_FileEntry file in MetaData.FileTable.FileTable) + if (MetaData.DirTable.DirectoryTable[ParentIndex].FileOffset == ROMFS_UNUSED_ENTRY) { - stream.Write(BitConverter.GetBytes(file.ParentDirOffset), 0, 4); - stream.Write(BitConverter.GetBytes(file.SiblingOffset), 0, 4); - stream.Write(BitConverter.GetBytes(file.DataOffset), 0, 8); - stream.Write(BitConverter.GetBytes(file.DataSize), 0, 8); - stream.Write(BitConverter.GetBytes(file.HashKeyPointer), 0, 4); - uint nlen = (uint)file.Name.Length * 2; - stream.Write(BitConverter.GetBytes(nlen), 0, 4); - byte[] NameArray = new byte[(int)Align(nlen, 4)]; - Array.Copy(Encoding.Unicode.GetBytes(file.Name), 0, NameArray, 0, nlen); - stream.Write(NameArray, 0, NameArray.Length); + MetaData.DirTable.DirectoryTable[ParentIndex].FileOffset = Entry.Offset; } - - //Padding - while (stream.Position % PADDING_ALIGN != 0) - stream.Write(new byte[PADDING_ALIGN - stream.Position % 0x10], 0, (int)(PADDING_ALIGN - stream.Position % 0x10)); - //All Done. + Entry.HashKeyPointer = ROMFS_UNUSED_ENTRY; + Entry.NameSize = (uint)file.Name.Length * 2; + Entry.Name = file.Name; + Entry.DataOffset = Entries[i].Offset; + Entry.DataSize = Entries[i].Size; + MetaData.FileTable.FileTable.Add(Entry); + MetaData.FileTableLen += 0x20 + (uint)Align((ulong)file.Name.Length * 2, 4); + PrevDirPath = DirPath; } + } - //GetRomfs[...]Entry Functions are all O(n) - internal static int GetRomfsDirEntry(Romfs_MetaData MetaData, string FullName) + internal static void WriteMetaDataToStream(Romfs_MetaData MetaData, MemoryStream stream) + { + //First, InfoHeader. + stream.Write(BitConverter.GetBytes(MetaData.InfoHeader.HeaderLength), 0, 4); + foreach (Romfs_SectionHeader SH in MetaData.InfoHeader.Sections) { - for (int i = 0; i < MetaData.DirTable.DirectoryTable.Count; i++) - if (MetaData.DirTable.DirectoryTable[i].FullName == FullName) - return i; - - return -1; + stream.Write(BitConverter.GetBytes(SH.Offset), 0, 4); + stream.Write(BitConverter.GetBytes(SH.Size), 0, 4); } - internal static int GetRomfsDirEntry(Romfs_MetaData MetaData, uint Offset) - { - for (int i = 0; i < MetaData.DirTable.DirectoryTable.Count; i++) - if (MetaData.DirTable.DirectoryTable[i].Offset == Offset) - return i; + stream.Write(BitConverter.GetBytes(MetaData.InfoHeader.DataOffset), 0, 4); - return -1; - } - internal static int GetRomfsFileEntry(Romfs_MetaData MetaData, uint Offset) + //DirHashTable + foreach (uint u in MetaData.DirHashTable) { - for (int i = 0; i < MetaData.FileTable.FileTable.Count; i++) - if (MetaData.FileTable.FileTable[i].Offset == Offset) - return i; - - return -1; + stream.Write(BitConverter.GetBytes(u), 0, 4); } - #region Support Class/Struct - public class Romfs_MetaData + //DirTable + foreach (Romfs_DirEntry dir in MetaData.DirTable.DirectoryTable) { - public Romfs_InfoHeader InfoHeader; - public uint DirNum; - public uint FileNum; - public List DirHashTable; - public uint M_DirHashTableEntry; - public Romfs_DirTable DirTable; - public uint DirTableLen; - public uint M_DirTableLen; - public List FileHashTable; - public uint M_FileHashTableEntry; - public Romfs_FileTable FileTable; - public uint FileTableLen; - public uint M_FileTableLen; + stream.Write(BitConverter.GetBytes(dir.ParentOffset), 0, 4); + stream.Write(BitConverter.GetBytes(dir.SiblingOffset), 0, 4); + stream.Write(BitConverter.GetBytes(dir.ChildOffset), 0, 4); + stream.Write(BitConverter.GetBytes(dir.FileOffset), 0, 4); + stream.Write(BitConverter.GetBytes(dir.HashKeyPointer), 0, 4); + uint nlen = (uint)dir.Name.Length * 2; + stream.Write(BitConverter.GetBytes(nlen), 0, 4); + byte[] NameArray = new byte[(int)Align(nlen, 4)]; + Array.Copy(Encoding.Unicode.GetBytes(dir.Name), 0, NameArray, 0, nlen); + stream.Write(NameArray, 0, NameArray.Length); } - public struct Romfs_SectionHeader - { - public uint Offset; - public uint Size; - } - public struct Romfs_InfoHeader + + //FileHashTable + foreach (uint u in MetaData.FileHashTable) { - public uint HeaderLength; - public Romfs_SectionHeader[] Sections; - public uint DataOffset; + stream.Write(BitConverter.GetBytes(u), 0, 4); } - public class Romfs_DirTable + + //FileTable + foreach (Romfs_FileEntry file in MetaData.FileTable.FileTable) { - public List DirectoryTable; + stream.Write(BitConverter.GetBytes(file.ParentDirOffset), 0, 4); + stream.Write(BitConverter.GetBytes(file.SiblingOffset), 0, 4); + stream.Write(BitConverter.GetBytes(file.DataOffset), 0, 8); + stream.Write(BitConverter.GetBytes(file.DataSize), 0, 8); + stream.Write(BitConverter.GetBytes(file.HashKeyPointer), 0, 4); + uint nlen = (uint)file.Name.Length * 2; + stream.Write(BitConverter.GetBytes(nlen), 0, 4); + byte[] NameArray = new byte[(int)Align(nlen, 4)]; + Array.Copy(Encoding.Unicode.GetBytes(file.Name), 0, NameArray, 0, nlen); + stream.Write(NameArray, 0, NameArray.Length); } - public class Romfs_FileTable + + //Padding + while (stream.Position % PADDING_ALIGN != 0) + stream.Write(new byte[PADDING_ALIGN - (stream.Position % 0x10)], 0, (int)(PADDING_ALIGN - (stream.Position % 0x10))); + //All Done. + } + + //GetRomfs[...]Entry Functions are all O(n) + internal static int GetRomfsDirEntry(Romfs_MetaData MetaData, string FullName) + { + for (int i = 0; i < MetaData.DirTable.DirectoryTable.Count; i++) { - public List FileTable; + if (MetaData.DirTable.DirectoryTable[i].FullName == FullName) + return i; } - public class Romfs_DirEntry + + return -1; + } + + internal static int GetRomfsDirEntry(Romfs_MetaData MetaData, uint Offset) + { + for (int i = 0; i < MetaData.DirTable.DirectoryTable.Count; i++) { - public uint ParentOffset; - public uint SiblingOffset; - public uint ChildOffset; - public uint FileOffset; - public uint HashKeyPointer; - public string Name; - public string FullName; - public uint Offset; + if (MetaData.DirTable.DirectoryTable[i].Offset == Offset) + return i; } - public class Romfs_FileEntry + + return -1; + } + + internal static int GetRomfsFileEntry(Romfs_MetaData MetaData, uint Offset) + { + for (int i = 0; i < MetaData.FileTable.FileTable.Count; i++) { - public uint ParentDirOffset; - public uint SiblingOffset; - public ulong DataOffset; - public ulong DataSize; - public uint HashKeyPointer; - public uint NameSize; - public string Name; - public string FullName; - public uint Offset; + if (MetaData.FileTable.FileTable[i].Offset == Offset) + return i; } - public class RomfsFile - { - public string PathName; - public ulong Offset; - public ulong Size; - public string FullName; + return -1; + } - public static ulong GetDataBlockLength(RomfsFile[] files, ulong PreData) - { - return files.Length == 0 ? PreData : PreData + files[files.Length - 1].Offset + files[files.Length - 1].Size; - } - } - public class IVFCInfo + #region Support Class/Struct + public class Romfs_MetaData + { + public Romfs_InfoHeader InfoHeader; + public uint DirNum; + public uint FileNum; + public List DirHashTable; + public uint M_DirHashTableEntry; + public Romfs_DirTable DirTable; + public uint DirTableLen; + public uint M_DirTableLen; + public List FileHashTable; + public uint M_FileHashTableEntry; + public Romfs_FileTable FileTable; + public uint FileTableLen; + public uint M_FileTableLen; + } + + public struct Romfs_SectionHeader + { + public uint Offset; + public uint Size; + } + + public struct Romfs_InfoHeader + { + public uint HeaderLength; + public Romfs_SectionHeader[] Sections; + public uint DataOffset; + } + + public class Romfs_DirTable + { + public List DirectoryTable; + } + + public class Romfs_FileTable + { + public List FileTable; + } + + public class Romfs_DirEntry + { + public uint ParentOffset; + public uint SiblingOffset; + public uint ChildOffset; + public uint FileOffset; + public uint HashKeyPointer; + public string Name; + public string FullName; + public uint Offset; + } + + public class Romfs_FileEntry + { + public uint ParentDirOffset; + public uint SiblingOffset; + public ulong DataOffset; + public ulong DataSize; + public uint HashKeyPointer; + public uint NameSize; + public string Name; + public string FullName; + public uint Offset; + } + + public class RomfsFile + { + public string PathName; + public ulong Offset; + public ulong Size; + public string FullName; + + public static ulong GetDataBlockLength(RomfsFile[] files, ulong PreData) { - public IVFCLevel[] Levels; + return files.Length == 0 ? PreData : PreData + files[^1].Offset + files[^1].Size; } - public class IVFCLevel + } + + public class IVFCInfo + { + public uint MasterHashSize; + public IVFCLevel[] Levels; + } + + public class IVFCLevel + { + public ulong HashOffset; + public ulong DataLength; + public uint BlockSize; + } + + public class FileNameTable + { + public List NameEntryTable { get; } + public int NumFiles => NameEntryTable.Count; + + internal FileNameTable(string rootPath) { - public ulong HashOffset; - public ulong DataLength; - public uint BlockSize; + NameEntryTable = []; + AddDirectory(new DirectoryInfo(rootPath)); } - public class FileNameTable - { - public List NameEntryTable { get; } - public int NumFiles => NameEntryTable.Count; - internal FileNameTable(string rootPath) + internal void AddDirectory(DirectoryInfo dir) + { + NameEntryTable.AddRange(dir.GetFiles()); + foreach (DirectoryInfo subdir in dir.GetDirectories()) { - NameEntryTable = new List(); - AddDirectory(new DirectoryInfo(rootPath)); + AddDirectory(subdir); } + } + } - internal void AddDirectory(DirectoryInfo dir) + public static class LayoutManager + { + public static Output[] Create(IEnumerable Input) + { + List list = []; + ulong Len = 0; + foreach (Input input in Input) { - foreach (FileInfo fileInfo in dir.GetFiles()) - { - NameEntryTable.Add(fileInfo); - } - foreach (DirectoryInfo subdir in dir.GetDirectories()) - { - AddDirectory(subdir); - } + var output = new Output(); + var fileInfo = new FileInfo(input.FilePath); + ulong ofs = AlignInput(Len, input.AlignmentSize); + output.FilePath = input.FilePath; + output.Offset = ofs; + output.Size = (ulong)fileInfo.Length; + list.Add(output); + Len = ofs + (ulong)fileInfo.Length; } + return [.. list]; } - public static class LayoutManager + + private static ulong AlignInput(ulong input, ulong alignsize) { - public static Output[] Create(IEnumerable Input) - { - List list = new List(); - ulong Len = 0; - foreach (Input input in Input) - { - Output output = new Output(); - FileInfo fileInfo = new FileInfo(input.FilePath); - ulong ofs = AlignInput(Len, input.AlignmentSize); - output.FilePath = input.FilePath; - output.Offset = ofs; - output.Size = (ulong)fileInfo.Length; - list.Add(output); - Len = ofs + (ulong)fileInfo.Length; - } - return list.ToArray(); - } - private static ulong AlignInput(ulong input, ulong alignsize) - { - ulong output = input; - if (output % alignsize != 0) - output += alignsize - output % alignsize; + ulong output = input; + if (output % alignsize != 0) + output += alignsize - (output % alignsize); - return output; - } - public class Input - { - public string FilePath; - public uint AlignmentSize; - } - public class Output - { - public string FilePath; - public ulong Offset; - public ulong Size; - } + return output; + } + + public class Input + { + public string FilePath; + public uint AlignmentSize; + } + + public class Output + { + public string FilePath; + public ulong Offset; + public ulong Size; } - #endregion } -} + #endregion +} \ No newline at end of file diff --git a/pk3DS.Core/CTR/SARC.cs b/pk3DS.Core/CTR/SARC.cs new file mode 100644 index 0000000000..8bea1ba10d --- /dev/null +++ b/pk3DS.Core/CTR/SARC.cs @@ -0,0 +1,306 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Text; + +namespace pk3DS.Core.CTR; + +/// +/// Simple (?) ARChive +/// +public sealed class SARC : IDisposable +{ + private const string Identifier = nameof(SARC); + + public string Magic; + public ushort HeaderSize; + public ushort Endianness; + public uint FileSize; + public uint DataOffset; + public uint Unknown; + + public SFAT SFAT; + public SFNT SFNT; + + // Assigned Properties + public string FileName; + public string FilePath; + public string Extension; + public readonly bool Valid; + + /// + /// The required matches the first 4 bytes of the file data. + /// + public bool SigMatches => Magic == Identifier; + private readonly Stream stream; + private readonly BinaryReader br; + + /// + /// Initializes an empty . + /// + public SARC() + { + SFAT = new SFAT(); + SFNT = new SFNT(); + } + + /// + /// Initializes a from a file location. + /// + /// + public SARC(string path) + { + SetFileInfo(path); + + stream = File.OpenRead(path); + br = new BinaryReader(stream); + ReadSARC(); + Valid = true; + } + + /// + /// Initializes a from a provided stream. + /// + /// + public SARC(Stream fs) + { + stream = fs; + br = new BinaryReader(stream); + ReadSARC(); + Valid = true; + } + + /// + /// Initializes a from a provided array. + /// + /// + public SARC(byte[] data) + { + stream = new MemoryStream(data); + br = new BinaryReader(stream); + ReadSARC(); + Valid = true; + } + + /// + /// Reads the contents of the header and file info tables. + /// + private void ReadSARC() + { + Magic = new string(br.ReadChars(4)); + if (!SigMatches) + return; + + HeaderSize = br.ReadUInt16(); + Endianness = br.ReadUInt16(); + FileSize = br.ReadUInt32(); + DataOffset = br.ReadUInt32(); + Unknown = br.ReadUInt32(); + + SFAT = new SFAT(br); + SFNT = new SFNT(br); + } + + /// + /// Sets File information for the original file. + /// + /// + public void SetFileInfo(string path) + { + FileName = Path.GetFileNameWithoutExtension(path); + FilePath = Path.GetDirectoryName(path); + Extension = Path.GetExtension(path); + } + + /// + /// Gets the entry filename for a given . + /// + /// Entry to fetch data for + /// File Name + public string GetFileName(SFATEntry entry) => GetFileName(entry.FileNameOffset); + + /// + /// Gets the entry data for a given , + /// + /// Entry to fetch data for + /// Data array + public byte[] GetData(SFATEntry entry) => GetData(entry.FileDataStart, entry.FileDataLength); + + /// + /// Overwrites the entry data, assuming the size is the exact same. + /// + /// File entry to overwrite + /// Data to write + public void SetData(SFATEntry entry, byte[] data) + { + if (data.Length != entry.FileDataLength) + throw new ArgumentException(nameof(data.Length)); + SetData(entry.FileDataStart, data); + } + + /// + /// Exports the entry data for a given at a provided path with its assigned file name via the name table. + /// + /// Entry to export + /// Path to export to. If left null, will output to the FilePath, if it is assigned. + public string ExportFile(SFATEntry t, string outpath = null) + { + outpath ??= FilePath; + byte[] data = GetData(t); + string name = GetFileName(t); + + string dir = Path.GetDirectoryName(name) ?? throw new ArgumentException(name); + string location = Path.Combine(outpath, dir); + Directory.CreateDirectory(location); + + var filepath = Path.Combine(outpath, name); + File.WriteAllBytes(filepath, data); + return filepath; + } + + /// + /// Dumps the contents of the to a provided folder. If no location is provided, it will dump to the SARC's location. + /// + /// Path to create dump folder in + /// Folder to dump contents to + public IEnumerable Dump(string path = null, string folder = null) + { + path ??= FilePath; + ArgumentNullException.ThrowIfNull(path); + if (File.Exists(path)) + path = Path.GetDirectoryName(path); + ArgumentNullException.ThrowIfNull(path); + + folder ??= FileName ?? "sarc"; + string dir = Path.Combine(path, folder); + + Directory.CreateDirectory(dir); + + foreach (SFATEntry t in SFAT.Entries) + yield return ExportFile(t, dir); + } + + private string GetFileName(int offset) + { + stream.Seek(SFNT.StringOffset, SeekOrigin.Begin); + stream.Seek((offset & 0x00FFFFFF) * 4, SeekOrigin.Current); + var sb = new StringBuilder(); + for (char c = (char)stream.ReadByte(); c != 0; c = (char)stream.ReadByte()) + sb.Append(c); + + return sb.ToString().Replace('/', Path.DirectorySeparatorChar); + } + + public void SetFileName(int offset, string value) + { + var str = value.Replace(Path.DirectorySeparatorChar, '/'); + stream.Seek(SFNT.StringOffset, SeekOrigin.Begin); + stream.Seek((offset & 0x00FFFFFF) * 4, SeekOrigin.Current); + foreach (var b in str) + stream.WriteByte((byte)b); + stream.WriteByte((byte)'\0'); + } + + private byte[] GetData(int offset, int length) + { + byte[] fileBuffer = new byte[length]; + stream.Seek(offset + DataOffset, SeekOrigin.Begin); + stream.Read(fileBuffer, 0, length); + return fileBuffer; + } + + private void SetData(int offset, byte[] data) + { + stream.Seek(offset + DataOffset, SeekOrigin.Begin); + stream.Write(data, 0, data.Length); + } + + /// + /// Disposes of the and objects and frees the if originally loaded from that location. + /// + public void Dispose() + { + stream?.Dispose(); + br?.Dispose(); + } +} + +/// +/// File Access Table +/// +public class SFAT +{ + public const string Identifier = nameof(SFAT); + + /// + /// The required matches the first 4 bytes of the file data. + /// + public bool SigMatches => Magic == Identifier; + + public string Magic; + public ushort HeaderSize; + public ushort EntryCount; + public uint HashMult; + public List Entries; + + public SFAT() { } + + public SFAT(BinaryReader br) + { + Magic = new string(br.ReadChars(4)); + if (!SigMatches) + throw new FormatException(nameof(SFAT)); + + HeaderSize = br.ReadUInt16(); + EntryCount = br.ReadUInt16(); + HashMult = br.ReadUInt32(); + Entries = []; + + for (int i = 0; i < EntryCount; i++) + Entries.Add(new SFATEntry(br)); + } +} + +/// +/// File Name Table +/// +public class SFNT +{ + public const string Identifier = nameof(SFNT); + + /// + /// The required matches the first 4 bytes of the file data. + /// + public bool SigMatches => Magic == Identifier; + + public string Magic; + public ushort HeaderSize; + public ushort Unknown; + public uint StringOffset; + + public SFNT() { } + + public SFNT(BinaryReader br) + { + Magic = new string(br.ReadChars(4)); + if (!SigMatches) + throw new FormatException(nameof(SFNT)); + + HeaderSize = br.ReadUInt16(); + Unknown = br.ReadUInt16(); + StringOffset = (uint)br.BaseStream.Position; + } +} + +/// +/// File Access Table () Entry +/// +public class SFATEntry(BinaryReader br) +{ + public uint FileNameHash = br.ReadUInt32(); + public int FileNameOffset = br.ReadInt32(); + public int FileDataStart = br.ReadInt32(); + public int FileDataEnd = br.ReadInt32(); + + public int FileDataLength => FileDataEnd - FileDataStart; +} \ No newline at end of file diff --git a/pk3DS.Core/CTR/SMDH.cs b/pk3DS.Core/CTR/SMDH.cs index 7929e35661..a96584507b 100644 --- a/pk3DS.Core/CTR/SMDH.cs +++ b/pk3DS.Core/CTR/SMDH.cs @@ -1,31 +1,34 @@ -using System.Drawing; +using System; +using System.Drawing; using System.IO; using System.Text; -namespace pk3DS.Core.CTR +namespace pk3DS.Core.CTR; + +// System Menu Data Header +public class SMDH { - // System Menu Data Header - public class SMDH + public uint Magic; + public ushort Version; + public ushort Reserved2; + public ApplicationInfo[] AppInfo = new ApplicationInfo[16]; + public ApplicationSettings AppSettings; + public ulong Reserved8; + public SmallIcon SmallIcon; + public LargeIcon LargeIcon; + + public SMDH(byte[] data) { - public uint Magic; - public ushort Version; - public ushort Reserved2; - public ApplicationInfo[] AppInfo = new ApplicationInfo[16]; - public ApplicationSettings AppSettings; - public ulong Reserved8; - public SmallIcon SmallIcon; - public LargeIcon LargeIcon; - - public SMDH(byte[] data) - { Read(new BinaryReader(new MemoryStream(data))); } - public SMDH(string path) - { + + public SMDH(string path) + { Read(new BinaryReader(File.OpenRead(path))); } - public void Read(BinaryReader br) - { + + public void Read(BinaryReader br) + { // Check to see if the first 4 bytes (magic) is valid. if (br.BaseStream.Length != 0x36C0 || (Magic = br.ReadUInt32()) != 0x48444D53) return; // Abort @@ -41,93 +44,81 @@ public void Read(BinaryReader br) SmallIcon = new SmallIcon(br); LargeIcon = new LargeIcon(br); } - public byte[] Write() - { - using (var ms = new MemoryStream()) - using (var bw = new BinaryWriter(ms)) - { - bw.Write(Magic); - bw.Write(Version); - bw.Write(Reserved2); - for (int i = 0; i < 16; i++) AppInfo[i].Write(bw); - AppSettings.Write(bw); - bw.Write(Reserved8); - SmallIcon.Write(bw); - LargeIcon.Write(bw); - return ms.ToArray(); - } - } - } - // Thanks to Gericom for EveryFileExplorer's SMDH.cs as a basis for the object code (and AppSettings enumeration) - public class ApplicationInfo + public byte[] Write() { - public string ShortDescription; //0x80 - public string LongDescription; //0x100 - public string Publisher; //0x80 - public ApplicationInfo(BinaryReader br) - { - ShortDescription = Encoding.Unicode.GetString(br.ReadBytes(0x80)).TrimEnd('\0'); - LongDescription = Encoding.Unicode.GetString(br.ReadBytes(0x100)).TrimEnd('\0'); - Publisher = Encoding.Unicode.GetString(br.ReadBytes(0x80)).TrimEnd('\0'); + using var ms = new MemoryStream(); + using var bw = new BinaryWriter(ms); + bw.Write(Magic); + bw.Write(Version); + bw.Write(Reserved2); + for (int i = 0; i < 16; i++) AppInfo[i].Write(bw); + AppSettings.Write(bw); + bw.Write(Reserved8); + SmallIcon.Write(bw); + LargeIcon.Write(bw); + return ms.ToArray(); } - public void Write(BinaryWriter bw) - { - bw.Write(Encoding.Unicode.GetBytes(ShortDescription.PadRight(0x80/2, '\0'))); - bw.Write(Encoding.Unicode.GetBytes(LongDescription.PadRight(0x100/2, '\0'))); - bw.Write(Encoding.Unicode.GetBytes(Publisher.PadRight(0x80/2, '\0'))); +} + +// Thanks to Gericom for EveryFileExplorer's SMDH.cs as a basis for the object code (and AppSettings enumeration) +public class ApplicationInfo(BinaryReader br) +{ + public string ShortDescription = Encoding.Unicode.GetString(br.ReadBytes(0x80)).TrimEnd('\0'); //0x80 + public string LongDescription = Encoding.Unicode.GetString(br.ReadBytes(0x100)).TrimEnd('\0'); //0x100 + public string Publisher = Encoding.Unicode.GetString(br.ReadBytes(0x80)).TrimEnd('\0'); //0x80 + + public void Write(BinaryWriter bw) + { + bw.Write(Encoding.Unicode.GetBytes(ShortDescription.PadRight(0x80 / 2, '\0'))); + bw.Write(Encoding.Unicode.GetBytes(LongDescription.PadRight(0x100 / 2, '\0'))); + bw.Write(Encoding.Unicode.GetBytes(Publisher.PadRight(0x80 / 2, '\0'))); } +} + +public class ApplicationSettings(BinaryReader br) +{ + public readonly byte[] GameRatings = br.ReadBytes(0x10); //0x10 + public readonly RegionLockoutFlags RegionLockout = (RegionLockoutFlags)br.ReadUInt32(); + public readonly uint MatchMakerID = br.ReadUInt32(); + public readonly ulong MatchMakerBITID = br.ReadUInt64(); + public readonly AppSettingsFlags Flags = (AppSettingsFlags)br.ReadUInt32(); + public readonly ushort EULAVersion = br.ReadUInt16(); + public readonly ushort Reserved = br.ReadUInt16(); + public readonly float AnimationDefaultFrame = br.ReadSingle(); + public readonly uint StreetPassID = br.ReadUInt32(); + + [Flags] + public enum RegionLockoutFlags : uint + { + None, + Japan = 0x01, + NorthAmerica = 0x02, + Europe = 0x04, + Australia = 0x08, + China = 0x10, + Korea = 0x20, + Taiwan = 0x40, } - public class ApplicationSettings + [Flags] + public enum AppSettingsFlags : uint + { + None, + Visible = 1, + AutoBoot = 2, + Allow3D = 4, + ReqAcceptEULA = 8, + AutoSaveOnExit = 16, + UsesExtendedBanner = 32, + ReqRegionGameRating = 64, + UsesSaveData = 128, + RecordUsage = 256, + DisableSDSaveBackup = 512, + } + + public void Write(BinaryWriter bw) { - public readonly byte[] GameRatings; //0x10 - public readonly RegionLockoutFlags RegionLockout; - public readonly uint MatchMakerID; - public readonly ulong MatchMakerBITID; - public readonly AppSettingsFlags Flags; - public readonly ushort EULAVersion; - public readonly ushort Reserved; - public readonly float AnimationDefaultFrame; - public readonly uint StreetPassID; - - public enum RegionLockoutFlags : uint - { - Japan = 0x01, - NorthAmerica = 0x02, - Europe = 0x04, - Australia = 0x08, - China = 0x10, - Korea = 0x20, - Taiwan = 0x40 - } - public enum AppSettingsFlags : uint - { - Visible = 1, - AutoBoot = 2, - Allow3D = 4, - ReqAcceptEULA = 8, - AutoSaveOnExit = 16, - UsesExtendedBanner = 32, - ReqRegionGameRating = 64, - UsesSaveData = 128, - RecordUsage = 256, - DisableSDSaveBackup = 512 - } - public ApplicationSettings(BinaryReader br) - { - GameRatings = br.ReadBytes(0x10); - RegionLockout = (RegionLockoutFlags)br.ReadUInt32(); - MatchMakerID = br.ReadUInt32(); - MatchMakerBITID = br.ReadUInt64(); - Flags = (AppSettingsFlags)br.ReadUInt32(); - EULAVersion = br.ReadUInt16(); - Reserved = br.ReadUInt16(); - AnimationDefaultFrame = br.ReadSingle(); - StreetPassID = br.ReadUInt32(); - } - public void Write(BinaryWriter bw) - { bw.Write(GameRatings, 0, 0x10); bw.Write((uint)RegionLockout); bw.Write(MatchMakerID); @@ -138,49 +129,54 @@ public void Write(BinaryWriter bw) bw.Write(AnimationDefaultFrame); bw.Write(StreetPassID); } - } +} - public class SmallIcon // 24x24 +public class SmallIcon // 24x24 +{ + public Bitmap Icon; + public byte[] Bytes; + + public SmallIcon(BinaryReader br) { - public Bitmap Icon; - public byte[] Bytes; - public SmallIcon(BinaryReader br) - { Bytes = br.ReadBytes(0x480); - Icon = BCLIM.getIMG(24, 24, Bytes, 0x5); + Icon = ImageUtil.GetBitmap(Bytes, 24, 24); } - public void Write(BinaryWriter bw) - { + + public void Write(BinaryWriter bw) + { bw.Write(Bytes); } - public bool ChangeIcon(Bitmap img) - { + + public bool ChangeIcon(Bitmap img) + { if (img.Width != Icon.Width || img.Height != Icon.Height) return false; Icon = img; - Bytes = BCLIM.getPixelData(Icon, 0x5); + Bytes = ImageUtil.GetPixelData(Icon); return true; } - } +} - public class LargeIcon // 48x48 +public class LargeIcon // 48x48 +{ + public Bitmap Icon; + public byte[] Bytes; + + public LargeIcon(BinaryReader br) { - public Bitmap Icon; - public byte[] Bytes; - public LargeIcon(BinaryReader br) - { Bytes = br.ReadBytes(0x1200); - Icon = BCLIM.getIMG(48, 48, Bytes, 0x5); + Icon = ImageUtil.GetBitmap(Bytes, 48, 48); } - public void Write(BinaryWriter bw) - { + + public void Write(BinaryWriter bw) + { bw.Write(Bytes); } - public bool ChangeIcon(Bitmap img) - { + + public bool ChangeIcon(Bitmap img) + { if (img.Width != Icon.Width || img.Height != Icon.Height) return false; Icon = img; - Bytes = BCLIM.getPixelData(Icon, 0x5); + Bytes = ImageUtil.GetPixelData(Icon); return true; } - } -} +} \ No newline at end of file diff --git a/pk3DS.Core/CTR/mini.cs b/pk3DS.Core/CTR/mini.cs index 5a9923336a..4fa4c1bf74 100644 --- a/pk3DS.Core/CTR/mini.cs +++ b/pk3DS.Core/CTR/mini.cs @@ -2,232 +2,235 @@ using System.IO; using System.Linq; -namespace pk3DS.Core.CTR +namespace pk3DS.Core.CTR; + +// Mini Packing Util +public static class Mini { - // Mini Packing Util - public static class mini + public static byte[] AdjustMiniHeader(byte[] data, int headerLength) { - public static byte[] adjustMiniHeader(byte[] data, int headerLength) - { - // Adjust the header size of the mini file. - int count = BitConverter.ToUInt16(data, 2); - int[] start = new int[count]; - for (int i = 0; i < count; i++) - start[i] = BitConverter.ToInt32(data, 4 + i*4); - - int dataStart = start.Min(); - if (headerLength < dataStart) - throw new Exception("Specified Header length is too small!?"); - byte[] pack = data.Skip(dataStart).ToArray(); // pull out payload - byte[] newData = new byte[headerLength].Concat(pack).ToArray(); // append payload onto new header - Array.Copy(data, 0, newData, 0, dataStart); // copy in old header (then repoint) - - int diff = headerLength - dataStart; // shift pointer - for (int i = 0; i < count + 1; i++) - Array.Copy(BitConverter.GetBytes(BitConverter.ToInt32(data, 4 + i * 4) + diff), 0, newData, 4 + 4 * i, 4); + // Adjust the header size of the mini file. + int count = BitConverter.ToUInt16(data, 2); + int[] start = new int[count]; + for (int i = 0; i < count; i++) + start[i] = BitConverter.ToInt32(data, 4 + (i * 4)); + + int dataStart = start.Min(); + if (headerLength < dataStart) + throw new Exception("Specified Header length is too small!?"); + byte[] pack = data.Skip(dataStart).ToArray(); // pull out payload + byte[] newData = new byte[headerLength].Concat(pack).ToArray(); // append payload onto new header + Array.Copy(data, 0, newData, 0, dataStart); // copy in old header (then repoint) + + int diff = headerLength - dataStart; // shift pointer + for (int i = 0; i < count + 1; i++) + Array.Copy(BitConverter.GetBytes(BitConverter.ToInt32(data, 4 + (i * 4)) + diff), 0, newData, 4 + (4 * i), 4); + + return newData; + } - return newData; + public static void PackMini(string path, string ident, string fileName, string outExt = null, string outFolder = null, bool delete = true) + { + if (outFolder == null) + { + delete = false; + outFolder = path; } - public static void packMini(string path, string ident, string fileName, string outExt = null, string outFolder = null, bool delete = true) + outExt ??= ".bin"; + // Create new Binary with the relevant header bytes + byte[] data = new byte[4]; + data[0] = (byte)ident[0]; + data[1] = (byte)ident[1]; + string[] files = Directory.GetFiles(path); + Array.Copy(BitConverter.GetBytes((ushort)files.Length), 0, data, 2, 2); + + int count = files.Length; + int dataOffset = 4 + 4 + (count * 4); + + // Start the data filling. + using (var dataout = new MemoryStream()) + using (var offsetMap = new MemoryStream()) + using (var bd = new BinaryWriter(dataout)) + using (var bo = new BinaryWriter(offsetMap)) { - if (outFolder == null) - { - delete = false; - outFolder = path; - } - if (outExt == null) outExt = ".bin"; - // Create new Binary with the relevant header bytes - byte[] data = new byte[4]; - data[0] = (byte)ident[0]; - data[1] = (byte)ident[1]; - string[] files = Directory.GetFiles(path); - Array.Copy(BitConverter.GetBytes((ushort)files.Length), 0, data, 2, 2); - - int count = files.Length; - int dataOffset = 4 + 4 + count * 4; - - // Start the data filling. - using (MemoryStream dataout = new MemoryStream()) - using (MemoryStream offsetMap = new MemoryStream()) - using (BinaryWriter bd = new BinaryWriter(dataout)) - using (BinaryWriter bo = new BinaryWriter(offsetMap)) + // For each file... + for (int i = 0; i < count; i++) { - // For each file... - for (int i = 0; i < count; i++) - { - // Write File Offset - uint fileOffset = (uint)(dataout.Position + dataOffset); - bo.Write(fileOffset); - - // Write File to Stream - bd.Write(File.ReadAllBytes(files[i])); + // Write File Offset + uint fileOffset = (uint)(dataout.Position + dataOffset); + bo.Write(fileOffset); - // Pad the Data MemoryStream with Zeroes until len%4=0; - while (dataout.Length % 4 != 0) - bd.Write((byte)0); - // File Offset will be updated as the offset is based off of the Data length. + // Write File to Stream + bd.Write(File.ReadAllBytes(files[i])); - // Delete the File - File.Delete(files[i]); - } - // Cap the File - bo.Write((uint)(dataout.Position + dataOffset)); + // Pad the Data MemoryStream with Zeroes until len%4=0; + while (dataout.Length % 4 != 0) + bd.Write((byte)0); + // File Offset will be updated as the offset is based off of the Data length. - using (var newPack = File.Create(Path.Combine(outFolder, fileName + outExt))) - using (var header = new MemoryStream(data)) - { - header.WriteTo(newPack); - offsetMap.WriteTo(newPack); - dataout.WriteTo(newPack); - } + // Delete the File + File.Delete(files[i]); } - if (delete) - Directory.Delete(path, true); + // Cap the File + bo.Write((uint)(dataout.Position + dataOffset)); + + using var newPack = File.Create(Path.Combine(outFolder, fileName + outExt)); + using var header = new MemoryStream(data); + header.WriteTo(newPack); + offsetMap.WriteTo(newPack); + dataout.WriteTo(newPack); } - public static byte[] packMini(byte[][] fileData, string ident) - { - // Create new Binary with the relevant header bytes - byte[] data = new byte[4]; - data[0] = (byte)ident[0]; - data[1] = (byte)ident[1]; - Array.Copy(BitConverter.GetBytes((ushort)fileData.Length), 0, data, 2, 2); - - int count = fileData.Length; - int dataOffset = 4 + 4 + count * 4; - - // Start the data filling. - using (MemoryStream dataout = new MemoryStream()) - using (MemoryStream offsetMap = new MemoryStream()) - using (BinaryWriter bd = new BinaryWriter(dataout)) - using (BinaryWriter bo = new BinaryWriter(offsetMap)) - { - // For each file... - for (int i = 0; i < count; i++) - { - // Write File Offset - uint fileOffset = (uint)(dataout.Position + dataOffset); - bo.Write(fileOffset); + if (delete) + Directory.Delete(path, true); + } - // Write File to Stream - bd.Write(fileData[i]); + public static byte[] PackMini(byte[][] fileData, string ident) + { + // Create new Binary with the relevant header bytes + byte[] data = new byte[4]; + data[0] = (byte)ident[0]; + data[1] = (byte)ident[1]; + Array.Copy(BitConverter.GetBytes((ushort)fileData.Length), 0, data, 2, 2); + + int count = fileData.Length; + int dataOffset = 4 + 4 + (count * 4); + + // Start the data filling. + using var dataout = new MemoryStream(); + using var offsetMap = new MemoryStream(); + using var bd = new BinaryWriter(dataout); + using var bo = new BinaryWriter(offsetMap); + // For each file... + for (int i = 0; i < count; i++) + { + // Write File Offset + uint fileOffset = (uint)(dataout.Position + dataOffset); + bo.Write(fileOffset); - // Pad the Data MemoryStream with Zeroes until len%4=0; - while (dataout.Length % 4 != 0) - bd.Write((byte)0); - // File Offset will be updated as the offset is based off of the Data length. - } - // Cap the File - bo.Write((uint)(dataout.Position + dataOffset)); + // Write File to Stream + bd.Write(fileData[i]); - using (var newPack = new MemoryStream()) - using (var header = new MemoryStream(data)) - { - header.WriteTo(newPack); - offsetMap.WriteTo(newPack); - dataout.WriteTo(newPack); - return newPack.ToArray(); - } - } + // Pad the Data MemoryStream with Zeroes until len%4=0; + while (dataout.Length % 4 != 0) + bd.Write((byte)0); + // File Offset will be updated as the offset is based off of the Data length. } - public static bool packMini2(string path, string ident, string fileName) + // Cap the File + bo.Write((uint)(dataout.Position + dataOffset)); + + using var newPack = new MemoryStream(); + using var header = new MemoryStream(data); + header.WriteTo(newPack); + offsetMap.WriteTo(newPack); + dataout.WriteTo(newPack); + return newPack.ToArray(); + } + + public static bool PackMini2(string path, string ident, string fileName) + { + if (!Directory.Exists(path)) return false; + try { - if (!Directory.Exists(path)) return false; - try - { - string[] filesToPack = Directory.GetFiles(path); - byte[][] fileData = new byte[filesToPack.Length][]; - for (int i = 0; i < filesToPack.Length; i++) fileData[i] = File.ReadAllBytes(filesToPack[i]); - byte[] miniBytes = packMini(fileData, ident); - File.WriteAllBytes(fileName, miniBytes); - return true; - } - catch { return false; } + string[] filesToPack = Directory.GetFiles(path); + byte[][] fileData = new byte[filesToPack.Length][]; + for (int i = 0; i < filesToPack.Length; i++) fileData[i] = File.ReadAllBytes(filesToPack[i]); + byte[] miniBytes = PackMini(fileData, ident); + File.WriteAllBytes(fileName, miniBytes); + return true; } - public static void unpackMini(string path, string ident, string outFolder = null, bool delete = true) + catch { return false; } + } + + public static void UnpackMini(string path, string ident, string outFolder = null, bool delete = true) + { + outFolder ??= Path.GetDirectoryName(path); + if (!Directory.Exists(outFolder)) Directory.CreateDirectory(outFolder); + using (var s = new MemoryStream(File.ReadAllBytes(path))) + using (var br = new BinaryReader(s)) { - if (outFolder == null) outFolder = Path.GetDirectoryName(path); - if (!Directory.Exists(outFolder)) Directory.CreateDirectory(outFolder); - using (var s = new MemoryStream(File.ReadAllBytes(path))) - using (var br = new BinaryReader(s)) - { - string fx = new string(br.ReadChars(2)); + var fx = new string(br.ReadChars(2)); - if (fx != ident) return; + if (fx != ident) return; - ushort count = br.ReadUInt16(); - string namePad = "D" + Math.Ceiling(Math.Log10(count)); - uint[] offsets = new uint[count + 1]; - for (int i = 0; i < count; i++) - offsets[i] = br.ReadUInt32(); + ushort count = br.ReadUInt16(); + string namePad = "D" + Math.Ceiling(Math.Log10(count)); + uint[] offsets = new uint[count + 1]; + for (int i = 0; i < count; i++) + offsets[i] = br.ReadUInt32(); + + uint length = br.ReadUInt32(); + offsets[^1] = length; - uint length = br.ReadUInt32(); - offsets[offsets.Length - 1] = length; + for (int i = 0; i < count; i++) + { + br.BaseStream.Seek(offsets[i], SeekOrigin.Begin); + using var dataout = new MemoryStream(); + byte[] data = []; + s.CopyTo(dataout, (int)offsets[i]); + int len = (int)offsets[i + 1] - (int)offsets[i]; - for (int i = 0; i < count; i++) + if (len != 0) { - br.BaseStream.Seek(offsets[i], SeekOrigin.Begin); - using (MemoryStream dataout = new MemoryStream()) - { - byte[] data = new byte[0]; - s.CopyTo(dataout, (int)offsets[i]); - int len = (int)offsets[i + 1] - (int)offsets[i]; - - if (len != 0) - { - data = dataout.ToArray(); - Array.Resize(ref data, len); - } - string newFile = Path.Combine(outFolder, i.ToString(namePad) + ".bin"); - File.WriteAllBytes(newFile, data); - } + data = dataout.ToArray(); + Array.Resize(ref data, len); } + string newFile = Path.Combine(outFolder, i.ToString(namePad) + ".bin"); + File.WriteAllBytes(newFile, data); } - if (delete) - File.Delete(path); // File is unpacked. } - public static byte[][] unpackMini(byte[] fileData, string identifier) + if (delete) + File.Delete(path); // File is unpacked. + } + + /// + /// Unpacks a BinLinkerAccessor generated file into individual arrays. + /// + /// Packed data + /// Signature expected in the first two bytes (ASCII) + /// Unpacked array containing all files that were packed. + public static byte[][] UnpackMini(byte[] fileData, string identifier) + { + if (fileData == null || fileData.Length < 4) + return null; + + if (identifier[0] != fileData[0] || identifier[1] != fileData[1]) + return null; + + int count = BitConverter.ToUInt16(fileData, 2); int ctr = 4; + int start = BitConverter.ToInt32(fileData, ctr); ctr += 4; + byte[][] returnData = new byte[count][]; + for (int i = 0; i < count; i++) { - if (fileData == null || fileData.Length < 4) - return null; + int end = BitConverter.ToInt32(fileData, ctr); ctr += 4; + int len = end - start; + byte[] data = new byte[len]; + Buffer.BlockCopy(fileData, start, data, 0, len); + returnData[i] = data; + start = end; + } + return returnData; + } - if (identifier[0] != fileData[0] || identifier[1] != fileData[1]) - return null; + public static string GetIsMini(string path) + { + byte[] data = File.ReadAllBytes(path); + var fi = new FileInfo(path); + try + { + string fx = new(new[] { (char)data[0], (char)data[1] }); + ushort count = BitConverter.ToUInt16(data, 2); - int count = BitConverter.ToUInt16(fileData, 2); int ctr = 4; - int start = BitConverter.ToInt32(fileData, ctr); ctr += 4; - byte[][] returnData = new byte[count][]; + uint[] offsets = new uint[count + 1]; + uint length = 1338; for (int i = 0; i < count; i++) { - int end = BitConverter.ToInt32(fileData, ctr); ctr += 4; - int len = end - start; - byte[] data = new byte[len]; - Buffer.BlockCopy(fileData, start, data, 0, len); - returnData[i] = data; - start = end; + offsets[i] = BitConverter.ToUInt32(data, 4 + (i * 4)); + length = BitConverter.ToUInt32(data, 8 + (i * 4)); } - return returnData; - } - public static string getIsMini(string path) - { - byte[] data = File.ReadAllBytes(path); - var fi = new FileInfo(path); - try - { - string fx = new string(new[] { (char)data[0], (char)data[1] }); - ushort count = BitConverter.ToUInt16(data, 2); - - uint[] offsets = new uint[count + 1]; - uint length = 1338; - for (int i = 0; i < count; i++) - { - offsets[i] = BitConverter.ToUInt32(data, 4 + i * 4); - length = BitConverter.ToUInt32(data, 8 + i * 4); - } - offsets[offsets.Length - 1] = length; - return fi.Length == length ? fx : null; - } - catch { return null; } + offsets[^1] = length; + return fi.Length == length ? fx : null; } + catch { return null; } } -} +} \ No newline at end of file diff --git a/pk3DS.Core/Game/GARCFile.cs b/pk3DS.Core/Game/GARCFile.cs index bb359cb5e9..2a101bf589 100644 --- a/pk3DS.Core/Game/GARCFile.cs +++ b/pk3DS.Core/Game/GARCFile.cs @@ -2,72 +2,51 @@ using System.IO; using pk3DS.Core.CTR; -namespace pk3DS.Core +namespace pk3DS.Core; + +public class GARCFile(GARC.MemGARC g, GARCReference r, string p) { - public class GARCFile - { - private readonly GARC.MemGARC GARC; - private readonly GARCReference Reference; - private readonly string Path; + // Shorthand Alias + public byte[] GetFile(int file, int subfile = 0) { return g.GetFile(file, subfile); } + public byte[][] Files { get => g.Files; set => g.Files = value; } + public int FileCount => g.FileCount; - public GARCFile(GARC.MemGARC g, GARCReference r, string p) - { - GARC = g; - Reference = r; - Path = p; - } + public void Save() + { + File.WriteAllBytes(p, g.Data); + Console.WriteLine($"Wrote {r.Name} to {r.Reference}"); + } +} - // Shorthand Alias - public byte[] getFile(int file, int subfile = 0) { return GARC.getFile(file, subfile); } - public byte[][] Files { get { return GARC.Files; } set { GARC.Files = value; } } - public int FileCount => GARC.FileCount; +public class LazyGARCFile(GARC.LazyGARC g, GARCReference r, string p) +{ + public int FileCount => g.FileCount; - public void Save() - { - File.WriteAllBytes(Path, GARC.Data); - Console.WriteLine($"Wrote {Reference.Name} to {Reference.Reference}"); - } - } - public class lzGARCFile + public byte[][] Files { - private readonly GARC.lzGARC GARC; - private readonly GARCReference Reference; - private readonly string Path; - - public lzGARCFile(GARC.lzGARC g, GARCReference r, string p) + get { - GARC = g; - Reference = r; - Path = p; + byte[][] data = new byte[FileCount][]; + for (int i = 0; i < data.Length; i++) + data[i] = g[i]; + return data; } - - public int FileCount => GARC.FileCount; - - public byte[][] Files + set { - get - { - byte[][] data = new byte[FileCount][]; - for (int i = 0; i < data.Length; i ++) - data[i] = GARC[i]; - return data; - } - set - { - for (int i = 0; i < value.Length; i++) - GARC[i] = value[i]; - } + for (int i = 0; i < value.Length; i++) + g[i] = value[i]; } + } - public byte[] this[int file] - { - get { return GARC[file]; } - set { GARC[file] = value; } - } - public void Save() - { - File.WriteAllBytes(Path, GARC.Save()); - Console.WriteLine($"Wrote {Reference.Name} to {Reference.Reference}"); - } + public byte[] this[int file] + { + get => g[file]; + set => g[file] = value; } -} + + public void Save() + { + File.WriteAllBytes(p, g.Save()); + Console.WriteLine($"Wrote {r.Name} to {r.Reference}"); + } +} \ No newline at end of file diff --git a/pk3DS.Core/Game/GARCReference.cs b/pk3DS.Core/Game/GARCReference.cs index 58e3610e1c..79b92353a1 100644 --- a/pk3DS.Core/Game/GARCReference.cs +++ b/pk3DS.Core/Game/GARCReference.cs @@ -1,179 +1,197 @@ using System.IO; -using System.Linq; -namespace pk3DS.Core +namespace pk3DS.Core; + +public sealed class GARCReference { - public class GARCReference + public readonly int FileNumber; + public readonly string Name; + private int A => FileNumber / 100 % 10; + private int B => FileNumber / 10 % 10; + private int C => FileNumber / 1 % 10; + public readonly bool LanguageVariant; + public string Reference => Path.Combine("a", A.ToString(), B.ToString(), C.ToString()); + + private GARCReference(int file, string name, bool lv = false) { - public readonly int FileNumber; - public readonly string Name; - private int A => FileNumber / 100 % 10; - private int B => FileNumber / 10 % 10; - private int C => FileNumber / 1 % 10; - public readonly bool LanguageVariant; - public string Reference => Path.Combine("a", A.ToString(), B.ToString(), C.ToString()); - - private GARCReference(int file, string name, bool lv = false) - { - Name = name; - FileNumber = file; - LanguageVariant = lv; - } - public GARCReference getRelativeGARC(int offset, string name = "") - { - return new GARCReference(FileNumber + offset, name); - } - - public static readonly GARCReference[] GARCReference_XY = - { - new GARCReference(005, "movesprite"), - new GARCReference(012, "encdata"), - new GARCReference(038, "trdata"), - new GARCReference(039, "trclass"), - new GARCReference(040, "trpoke"), - new GARCReference(041, "mapGR"), - new GARCReference(042, "mapMatrix"), - new GARCReference(104, "wallpaper"), - new GARCReference(165, "titlescreen"), - new GARCReference(203, "maisonpkN"), - new GARCReference(204, "maisontrN"), - new GARCReference(205, "maisonpkS"), - new GARCReference(206, "maisontrS"), - new GARCReference(212, "move"), - new GARCReference(213, "eggmove"), - new GARCReference(214, "levelup"), - new GARCReference(215, "evolution"), - new GARCReference(216, "megaevo"), - new GARCReference(218, "personal"), - new GARCReference(220, "item"), - - // Varied - new GARCReference(072, "gametext", true), - new GARCReference(080, "storytext", true), - }; - public static readonly GARCReference[] GARCReference_AO = - { - new GARCReference(013, "encdata"), - new GARCReference(036, "trdata"), - new GARCReference(037, "trclass"), - new GARCReference(038, "trpoke"), - new GARCReference(039, "mapGR"), - new GARCReference(040, "mapMatrix"), - new GARCReference(103, "wallpaper"), - new GARCReference(152, "titlescreen"), - new GARCReference(182, "maisonpkN"), - new GARCReference(183, "maisontrN"), - new GARCReference(184, "maisonpkS"), - new GARCReference(185, "maisontrS"), - new GARCReference(189, "move"), - new GARCReference(190, "eggmove"), - new GARCReference(191, "levelup"), - new GARCReference(192, "evolution"), - new GARCReference(193, "megaevo"), - new GARCReference(195, "personal"), - new GARCReference(197, "item"), - - // Varied - new GARCReference(071, "gametext", true), - new GARCReference(079, "storytext", true), - }; - public static readonly GARCReference[] GARCReference_SMDEMO = - { - new GARCReference(011, "move"), - new GARCReference(012, "eggmove"), - new GARCReference(013, "levelup"), - new GARCReference(014, "evolution"), - new GARCReference(015, "megaevo"), - new GARCReference(017, "personal"), - new GARCReference(019, "item"), - - new GARCReference(076, "zonedata"), - new GARCReference(081, "encdata"), - - new GARCReference(101, "trclass"), - new GARCReference(102, "trdata"), - new GARCReference(103, "trpoke"), - - // Varied - new GARCReference(030, "gametext", true), - new GARCReference(040, "storytext", true), - }; - private static readonly GARCReference[] GARCReference_SM = - { - new GARCReference(011, "move"), - new GARCReference(012, "eggmove"), - new GARCReference(013, "levelup"), - new GARCReference(014, "evolution"), - new GARCReference(015, "megaevo"), - new GARCReference(017, "personal"), - new GARCReference(019, "item"), - - new GARCReference(077, "zonedata"), - new GARCReference(091, "worlddata"), - - new GARCReference(104, "trclass"), - new GARCReference(105, "trdata"), - new GARCReference(106, "trpoke"), - - new GARCReference(155, "encounterstatic"), - - new GARCReference(267, "pickup"), - - new GARCReference(277, "maisonpkN"), - new GARCReference(278, "maisontrN"), - new GARCReference(279, "maisonpkS"), - new GARCReference(280, "maisontrS"), - - // Varied - new GARCReference(030, "gametext", true), - new GARCReference(040, "storytext", true), - }; - private static readonly GARCReference[] GARCReference_USUM = - { - new GARCReference(011, "move"), - new GARCReference(012, "eggmove"), - new GARCReference(013, "levelup"), - new GARCReference(014, "evolution"), - new GARCReference(015, "megaevo"), - new GARCReference(017, "personal"), - new GARCReference(019, "item"), - - new GARCReference(077, "zonedata"), - new GARCReference(091, "worlddata"), - - new GARCReference(105, "trclass"), - new GARCReference(106, "trdata"), - new GARCReference(107, "trpoke"), - - new GARCReference(159, "encounterstatic"), - - new GARCReference(271, "pickup"), - - new GARCReference(281, "maisonpkN"), - new GARCReference(282, "maisontrN"), - new GARCReference(283, "maisonpkS"), - new GARCReference(284, "maisontrS"), - - // Varied - new GARCReference(030, "gametext", true), - new GARCReference(040, "storytext", true), - }; - - public static readonly GARCReference[] GARCReference_SN = GARCReference_SM.Concat( - new[] { - new GARCReference(082, "encdata"), - }).ToArray(); - public static readonly GARCReference[] GARCReference_MN = GARCReference_SM.Concat( - new[] { - new GARCReference(083, "encdata"), - }).ToArray(); - public static readonly GARCReference[] GARCReference_US = GARCReference_USUM.Concat( - new[] { - new GARCReference(082, "encdata"), - }).ToArray(); - public static readonly GARCReference[] GARCReference_UM = GARCReference_USUM.Concat( - new[] { - new GARCReference(083, "encdata"), - }).ToArray(); + Name = name; + FileNumber = file; + LanguageVariant = lv; } -} + + public GARCReference GetRelativeGARC(int offset, string name = "") + { + return new(FileNumber + offset, name); + } + + public static readonly GARCReference[] GARCReference_XY = + [ + new(005, "movesprite"), + new(012, "encdata"), + new(038, "trdata"), + new(039, "trclass"), + new(040, "trpoke"), + new(041, "mapGR"), + new(042, "mapMatrix"), + new(104, "wallpaper"), + new(165, "titlescreen"), + new(203, "maisonpkN"), + new(204, "maisontrN"), + new(205, "maisonpkS"), + new(206, "maisontrS"), + new(212, "move"), + new(213, "eggmove"), + new(214, "levelup"), + new(215, "evolution"), + new(216, "megaevo"), + new(218, "personal"), + new(220, "item"), + + // Varied + new(072, "gametext", true), + new(080, "storytext", true), + ]; + + public static readonly GARCReference[] GARCReference_AO = + [ + new(013, "encdata"), + new(036, "trdata"), + new(037, "trclass"), + new(038, "trpoke"), + new(039, "mapGR"), + new(040, "mapMatrix"), + new(103, "wallpaper"), + new(152, "titlescreen"), + new(182, "maisonpkN"), + new(183, "maisontrN"), + new(184, "maisonpkS"), + new(185, "maisontrS"), + new(189, "move"), + new(190, "eggmove"), + new(191, "levelup"), + new(192, "evolution"), + new(193, "megaevo"), + new(195, "personal"), + new(197, "item"), + + // Varied + new(071, "gametext", true), + new(079, "storytext", true), + ]; + + public static readonly GARCReference[] GARCReference_SMDEMO = + [ + new(011, "move"), + new(012, "eggmove"), + new(013, "levelup"), + new(014, "evolution"), + new(015, "megaevo"), + new(017, "personal"), + new(019, "item"), + + new(076, "zonedata"), + new(081, "encdata"), + + new(101, "trclass"), + new(102, "trdata"), + new(103, "trpoke"), + + // Varied + new(030, "gametext", true), + new(040, "storytext", true), + ]; + + private static readonly GARCReference[] GARCReference_SM = + [ + new(011, "move"), + new(012, "eggmove"), + new(013, "levelup"), + new(014, "evolution"), + new(015, "megaevo"), + new(017, "personal"), + new(019, "item"), + + new(077, "zonedata"), + new(091, "worlddata"), + + new(104, "trclass"), + new(105, "trdata"), + new(106, "trpoke"), + + new(155, "encounterstatic"), + + new(267, "pickup"), + + new(277, "maisonpkN"), + new(278, "maisontrN"), + new(279, "maisonpkS"), + new(280, "maisontrS"), + + // Varied + new(030, "gametext", true), + new(040, "storytext", true), + ]; + + private static readonly GARCReference[] GARCReference_USUM = + [ + new(011, "move"), + new(012, "eggmove"), + new(013, "levelup"), + new(014, "evolution"), + new(015, "megaevo"), + new(017, "personal"), + new(019, "item"), + + new(077, "zonedata"), + new(091, "worlddata"), + + new(105, "trclass"), + new(106, "trdata"), + new(107, "trpoke"), + + new(159, "encounterstatic"), + + new(271, "pickup"), + + new(281, "maisonpkN"), + new(282, "maisontrN"), + new(283, "maisonpkS"), + new(284, "maisontrS"), + + // Varied + new(030, "gametext", true), + new(040, "storytext", true), + ]; + + public static readonly GARCReference[] GARCReference_SN = + [ + .. GARCReference_SM, + .. new[] { + new GARCReference(082, "encdata"), + }, + ]; + + public static readonly GARCReference[] GARCReference_MN = + [ + .. GARCReference_SM, + .. new[] { + new GARCReference(083, "encdata"), + }, + ]; + + public static readonly GARCReference[] GARCReference_US = + [ + .. GARCReference_USUM, + .. new[] { + new GARCReference(082, "encdata"), + }, + ]; + + public static readonly GARCReference[] GARCReference_UM = + [ + .. GARCReference_USUM, + .. new[] { + new GARCReference(083, "encdata"), + }, + ]; +} \ No newline at end of file diff --git a/pk3DS.Core/Game/GameBackup.cs b/pk3DS.Core/Game/GameBackup.cs index 5db9fe292f..f9b154055a 100644 --- a/pk3DS.Core/Game/GameBackup.cs +++ b/pk3DS.Core/Game/GameBackup.cs @@ -2,223 +2,236 @@ using System.IO; using System.Linq; -namespace pk3DS.Core +namespace pk3DS.Core; + +public static class GameBackup { - public static class GameBackup + public const string bakpath = "backup"; + public const string bakexefs = "exefs"; + public const string baka = "a"; + public const string bakdll = "dll"; + + public static void BackupFiles(this GameConfig config, bool overwrite = false) { - public const string bakpath = "backup"; - public const string bakexefs = "exefs"; - public const string baka = "a"; - public const string bakdll = "dll"; + // Users may use pk3DS for multiple games, and even the same game but from different paths. + // A simple way is to create a backup for each unique game, but... some carts may be pre-patched. + // Just save the backup based on the folder name, as the user may move that parent folder. + // Store a text file in each backup to keep track of its origin in case they rename the folder. + + if (!Directory.Exists(bakpath)) + Directory.CreateDirectory(bakpath); + + var gamePath = new DirectoryInfo(config.RomFS).Parent; + string gameFolder = gamePath.Name; + string gameBackup = Path.Combine(bakpath, gameFolder); + if (!Directory.Exists(gameBackup)) + Directory.CreateDirectory(gameBackup); + + string bak_exefs = Path.Combine(gameBackup, bakexefs); + string bak_a = Path.Combine(gameBackup, baka); + string bak_dll = Path.Combine(gameBackup, bakdll); + if (!Directory.Exists(bak_exefs)) + Directory.CreateDirectory(bak_exefs); + if (!Directory.Exists(bak_a)) + Directory.CreateDirectory(bak_a); + if (!Directory.Exists(bak_dll)) + Directory.CreateDirectory(bak_dll); + + // Backup files + if (config.ExeFS != null) // exefs + BackupExeFS(config, overwrite, bak_exefs); + if (config.RomFS != null) // a + BackupGARC(config, overwrite, bak_a); + if (config.RomFS != null) // dll + BackupDLL(config, overwrite, bak_dll); + + File.WriteAllText(Path.Combine(gameBackup, "bakinfo.txt"), "Backup created from the following location:" + Environment.NewLine + gamePath.FullName); + } - public static void backupFiles(this GameConfig config, bool overwrite = false) + private static void BackupExeFS(GameConfig config, bool overwrite, string bak_exefs) + { + var files = Directory.GetFiles(config.ExeFS); + foreach (var f in files) { - // Users may use pk3DS for multiple games, and even the same game but from different paths. - // A simple way is to create a backup for each unique game, but... some carts may be pre-patched. - // Just save the backup based on the folder name, as the user may move that parent folder. - // Store a text file in each backup to keep track of its origin in case they rename the folder. - - if (!Directory.Exists(bakpath)) - Directory.CreateDirectory(bakpath); - - var gamePath = new DirectoryInfo(config.RomFS).Parent; - string gameFolder = gamePath.Name; - string gameBackup = Path.Combine(bakpath, gameFolder); - if (!Directory.Exists(gameBackup)) - Directory.CreateDirectory(gameBackup); - - string bak_exefs = Path.Combine(gameBackup, bakexefs); - string bak_a = Path.Combine(gameBackup, baka); - string bak_dll = Path.Combine(gameBackup, bakdll); - if (!Directory.Exists(bak_exefs)) - Directory.CreateDirectory(bak_exefs); - if (!Directory.Exists(bak_a)) - Directory.CreateDirectory(bak_a); - if (!Directory.Exists(bak_dll)) - Directory.CreateDirectory(bak_dll); - - // Backup files - if (config.ExeFS != null) // exefs - backupExeFS(config, overwrite, bak_exefs); - if (config.RomFS != null) // a - backupGARC(config, overwrite, bak_a); - if (config.RomFS != null) // dll - backupDLL(config, overwrite, bak_dll); - - File.WriteAllText(Path.Combine(gameBackup, "bakinfo.txt"), "Backup created from the following location:" + Environment.NewLine + gamePath.FullName); + string dest = Path.Combine(bak_exefs, Path.GetFileName(f)); + if (overwrite || !File.Exists(dest)) + File.Copy(f, dest); } - private static void backupExeFS(GameConfig config, bool overwrite, string bak_exefs) + } + + private static void BackupGARC(GameConfig config, bool overwrite, string bak_a) + { + var files = config.Files.Select(file => file.Name); + foreach (var f in files) { - var files = Directory.GetFiles(config.ExeFS); - foreach (var f in files) - { - string dest = Path.Combine(bak_exefs, Path.GetFileName(f)); - if (overwrite || !File.Exists(dest)) - File.Copy(f, dest); - } + string GARC = config.GetGARCFileName(f); + string name = f + $" ({GARC.Replace(Path.DirectorySeparatorChar.ToString(), "")})"; + string src = Path.Combine(config.RomFS, GARC); + string dest = Path.Combine(bak_a, name); + if (overwrite || !File.Exists(dest)) + File.Copy(src, dest); } - private static void backupGARC(GameConfig config, bool overwrite, string bak_a) + } + + private static void BackupDLL(GameConfig config, bool overwrite, string bak_dll) + { + string path = config.RomFS; + string[] files = Directory.GetFiles(path); + string[] CROs = files.Where(x => new FileInfo(x).Name.Contains("Dll")).ToArray(); + string[] CRSs = files.Where(x => new FileInfo(x).Extension.Contains("crs")).ToArray(); + string[] CRRs = Directory.Exists(Path.Combine(path, ".crr")) + ? Directory.GetFiles(Path.Combine(path, ".crr")) + : []; + + int count = CROs.Length + CRSs.Length + CRRs.Length; + if (count <= 0) + return; + + if (!Directory.Exists(bak_dll)) + Directory.CreateDirectory(bak_dll); + + foreach (string src in CROs.Concat(CRSs)) { - var files = config.Files.Select(file => file.Name); - foreach (var f in files) - { - string GARC = config.getGARCFileName(f); - string name = f + $" ({GARC.Replace(Path.DirectorySeparatorChar.ToString(), "")})"; - string src = Path.Combine(config.RomFS, GARC); - string dest = Path.Combine(bak_a, name); - if (overwrite || !File.Exists(dest)) - File.Copy(src, dest); - } + string dest = Path.Combine(bak_dll, Path.GetFileName(src)); + if (overwrite || !File.Exists(dest)) + File.Copy(src, dest); } - private static void backupDLL(GameConfig config, bool overwrite, string bak_dll) - { - string path = config.RomFS; - string[] files = Directory.GetFiles(path); - string[] CROs = files.Where(x => new FileInfo(x).Name.Contains("Dll")).ToArray(); - string[] CRSs = files.Where(x => new FileInfo(x).Extension.Contains("crs")).ToArray(); - string[] CRRs = Directory.Exists(Path.Combine(path, ".crr")) - ? Directory.GetFiles(Path.Combine(path, ".crr")) - : new string[0]; - - int count = CROs.Length + CRSs.Length + CRRs.Length; - if (count <= 0) - return; - - if (!Directory.Exists(bak_dll)) - Directory.CreateDirectory(bak_dll); - - foreach (string src in CROs.Concat(CRSs)) - { - string dest = Path.Combine(bak_dll, Path.GetFileName(src)); - if (overwrite || !File.Exists(dest)) - File.Copy(src, dest); - } - - if (CRRs.Length <= 0) - return; - // Separate folder for the .crr - string CRRBAKPATH = Path.Combine(bak_dll, ".crr"); - if (!Directory.Exists(CRRBAKPATH)) - Directory.CreateDirectory(CRRBAKPATH); + if (CRRs.Length == 0) + return; - foreach (string src in CRRs) - { - string dest = Path.Combine(CRRBAKPATH, Path.GetFileName(src)); - if (overwrite || !File.Exists(dest)) - File.Copy(src, dest); - } - } + // Separate folder for the .crr + string CRRBAKPATH = Path.Combine(bak_dll, ".crr"); + if (!Directory.Exists(CRRBAKPATH)) + Directory.CreateDirectory(CRRBAKPATH); - public static string[] restoreFiles(this GameConfig config) + foreach (string src in CRRs) { - // Do the same process as backing up, but copy files in the opposite direction. - - string gameFolder = new DirectoryInfo(config.RomFS).Parent.Name; - string gameBackup = Path.Combine(bakpath, gameFolder); - if (!Directory.Exists(gameBackup)) - return new[] {"Unable to find the backup folder for this game.", $"Expected:\n{gameBackup}"}; - - string bak_exefs = Path.Combine(gameBackup, bakexefs); - string bak_a = Path.Combine(gameBackup, baka); - string bak_dll = Path.Combine(gameBackup, bakdll); - - int[] count = new int[3]; - - // restore exefs - if (Directory.Exists(bak_exefs)) - count[0] = restoreExeFS(config, bak_exefs); - if (Directory.Exists(bak_a)) - count[1] = restoreGARC(config, bak_a); - if (Directory.Exists(bak_dll)) - count[2] = restoreDLL(config, bak_dll); - - string[] sources = { "ExeFS", "'a'", "CRO" }; - var info = count.Select((c, i) => $"{sources[i]}: {c}"); - var result = string.Join(Environment.NewLine, info); - return new[] {result}; + string dest = Path.Combine(CRRBAKPATH, Path.GetFileName(src)); + if (overwrite || !File.Exists(dest)) + File.Copy(src, dest); } - private static int restoreExeFS(GameConfig config, string bak_exefs) + } + + public static string[] RestoreFiles(this GameConfig config) + { + // Do the same process as backing up, but copy files in the opposite direction. + + string gameFolder = new DirectoryInfo(config.RomFS).Parent.Name; + string gameBackup = Path.Combine(bakpath, gameFolder); + if (!Directory.Exists(gameBackup)) + return ["Unable to find the backup folder for this game.", $"Expected:\n{gameBackup}"]; + + string bak_exefs = Path.Combine(gameBackup, bakexefs); + string bak_a = Path.Combine(gameBackup, baka); + string bak_dll = Path.Combine(gameBackup, bakdll); + + int[] count = new int[3]; + + // restore exefs + if (Directory.Exists(bak_exefs)) + count[0] = RestoreExeFS(config, bak_exefs); + if (Directory.Exists(bak_a)) + count[1] = RestoreGARC(config, bak_a); + if (Directory.Exists(bak_dll)) + count[2] = RestoreDLL(config, bak_dll); + + string[] sources = ["ExeFS", "'a'", "CRO"]; + var info = count.Select((c, i) => $"{sources[i]}: {c}"); + var result = string.Join(Environment.NewLine, info); + return [result]; + } + + private static int RestoreExeFS(GameConfig config, string bak_exefs) + { + int count = 0; + var files = Directory.GetFiles(config.ExeFS); + foreach (var src in files) { - int count = 0; - var files = Directory.GetFiles(config.ExeFS); - foreach (var src in files) + string dest = Path.Combine(bak_exefs, Path.GetFileName(src)); + if (File.Exists(dest)) { - string dest = Path.Combine(bak_exefs, Path.GetFileName(src)); - if (File.Exists(dest)) - { - try { File.Copy(dest, src, overwrite: true); count++; } - catch { Console.WriteLine("Unable to overwrite backup: " + dest); } - } - else - Console.WriteLine("Unable to find backup: " + dest); + try { File.Copy(dest, src, overwrite: true); count++; } + catch { Console.WriteLine("Unable to overwrite backup: " + dest); } + } + else + { + Console.WriteLine("Unable to find backup: " + dest); } - return count; } - private static int restoreGARC(GameConfig config, string bak_a) + return count; + } + + private static int RestoreGARC(GameConfig config, string bak_a) + { + int count = 0; + var files = config.Files.Select(file => file.Name); + foreach (var f in files) { - int count = 0; - var files = config.Files.Select(file => file.Name); - foreach (var f in files) + string GARC = config.GetGARCFileName(f); + string name = f + $" ({GARC.Replace(Path.DirectorySeparatorChar.ToString(), "")})"; + string src = Path.Combine(config.RomFS, GARC); + string dest = Path.Combine(bak_a, name); + if (File.Exists(dest)) { - string GARC = config.getGARCFileName(f); - string name = f + $" ({GARC.Replace(Path.DirectorySeparatorChar.ToString(), "")})"; - string src = Path.Combine(config.RomFS, GARC); - string dest = Path.Combine(bak_a, name); - if (File.Exists(dest)) - { - try { File.Copy(dest, src, overwrite: true); count++; } - catch { Console.WriteLine("Unable to overwrite backup: " + dest); } - } - else - Console.WriteLine("Unable to find backup: " + dest); + try { File.Copy(dest, src, overwrite: true); count++; } + catch { Console.WriteLine("Unable to overwrite backup: " + dest); } + } + else + { + Console.WriteLine("Unable to find backup: " + dest); } - return count; } - private static int restoreDLL(GameConfig config, string bak_dll) - { - int count = 0; + return count; + } + + private static int RestoreDLL(GameConfig config, string bak_dll) + { + int count = 0; - string path = config.RomFS; - string[] files = Directory.GetFiles(path); - string[] CROs = files.Where(x => new FileInfo(x).Name.Contains("Dll")).ToArray(); - string[] CRSs = files.Where(x => new FileInfo(x).Extension.Contains("crs")).ToArray(); - string[] CRRs = Directory.Exists(Path.Combine(path, ".crr")) - ? Directory.GetFiles(Path.Combine(path, ".crr")) - : new string[0]; + string path = config.RomFS; + string[] files = Directory.GetFiles(path); + string[] CROs = files.Where(x => new FileInfo(x).Name.Contains("Dll")).ToArray(); + string[] CRSs = files.Where(x => new FileInfo(x).Extension.Contains("crs")).ToArray(); + string[] CRRs = Directory.Exists(Path.Combine(path, ".crr")) + ? Directory.GetFiles(Path.Combine(path, ".crr")) + : []; - if (CROs.Length + CRSs.Length + CRRs.Length <= 0) - return 0; + if (CROs.Length + CRSs.Length + CRRs.Length <= 0) + return 0; - foreach (string src in CROs.Concat(CRSs)) + foreach (string src in CROs.Concat(CRSs)) + { + string dest = Path.Combine(bak_dll, Path.GetFileName(src)); + if (File.Exists(dest)) + { + try { File.Copy(dest, src, overwrite: true); count++; } + catch { Console.WriteLine("Unable to overwrite backup: " + dest); } + } + else { - string dest = Path.Combine(bak_dll, Path.GetFileName(src)); - if (File.Exists(dest)) - { - try { File.Copy(dest, src, overwrite: true); count++; } - catch { Console.WriteLine("Unable to overwrite backup: " + dest); } - } - else - Console.WriteLine("Unable to find backup: " + dest); + Console.WriteLine("Unable to find backup: " + dest); } + } - if (CRRs.Length <= 0) - return count; + if (CRRs.Length == 0) + return count; - // Separate folder for the .crr - string CRRBAKPATH = Path.Combine(bak_dll, ".crr"); - foreach (string src in CRRs) + // Separate folder for the .crr + string CRRBAKPATH = Path.Combine(bak_dll, ".crr"); + foreach (string src in CRRs) + { + string dest = Path.Combine(CRRBAKPATH, Path.GetFileName(src)); + if (File.Exists(dest)) { - string dest = Path.Combine(CRRBAKPATH, Path.GetFileName(src)); - if (File.Exists(dest)) - { - File.Copy(dest, src, true); - count++; - } - else - Console.WriteLine("Unable to find backup: " + dest); + File.Copy(dest, src, true); + count++; + } + else + { + Console.WriteLine("Unable to find backup: " + dest); } - return count; } + return count; } -} +} \ No newline at end of file diff --git a/pk3DS.Core/Game/GameConfig.cs b/pk3DS.Core/Game/GameConfig.cs index deae5d5bad..e7fdda6067 100644 --- a/pk3DS.Core/Game/GameConfig.cs +++ b/pk3DS.Core/Game/GameConfig.cs @@ -1,274 +1,296 @@ -using System.IO; +using System; +using System.IO; using System.Linq; using pk3DS.Core.CTR; using pk3DS.Core.Structures.PersonalInfo; using pk3DS.Core.Structures; -namespace pk3DS.Core +namespace pk3DS.Core; + +public class GameConfig { - public class GameConfig + private const int FILECOUNT_XY = 271; + private const int FILECOUNT_ORASDEMO = 301; + private const int FILECOUNT_ORAS = 299; + private const int FILECOUNT_SMDEMO = 239; + private const int FILECOUNT_SM = 311; + private const int FILECOUNT_USUM = 333; + public readonly GameVersion Version = GameVersion.Invalid; + + public GARCReference[] Files { get; private set; } + public TextVariableCode[] Variables { get; private set; } + public TextReference[] GameText { get; private set; } + public GameInfo Info { get; private set; } + + /// + /// Whether or not to remap characters in text files to proper unicode. Defaults to false. + /// + /// + /// This will enable the display of ♂ and ♀, but may interfere with text editing. Set this to true if you're not going to change any text, otherwise set it to false. + /// + public bool RemapCharacters { get; set; } = false; + + public GameConfig(int fileCount) { - private const int FILECOUNT_XY = 271; - private const int FILECOUNT_ORASDEMO = 301; - private const int FILECOUNT_ORAS = 299; - private const int FILECOUNT_SMDEMO = 239; - private const int FILECOUNT_SM = 311; // only a guess for now - private const int FILECOUNT_USUM = 333; // only a guess for now - public readonly GameVersion Version = GameVersion.Invalid; - - public GARCReference[] Files { get; private set; } - public TextVariableCode[] Variables { get; private set; } - public TextReference[] GameText { get; private set; } - public GameInfo Info { get; private set; } - - /// - /// Whether or not to remap characters in text files to proper unicode. Defaults to false. - /// - /// - /// This will enable the display of ♂ and ♀, but may interfere with text editing. Set this to true if you're not going to change any text, otherwise set it to false. - /// - public bool RemapCharacters { get; set; } = false; - - public GameConfig(int fileCount) - { - GameVersion game = GameVersion.Invalid; - switch (fileCount) - { - case FILECOUNT_XY: - game = GameVersion.XY; - break; - case FILECOUNT_ORASDEMO: - game = GameVersion.ORASDEMO; - break; - case FILECOUNT_ORAS: - game = GameVersion.ORAS; - break; - case FILECOUNT_SMDEMO: - game = GameVersion.SMDEMO; - break; - case FILECOUNT_SM: - game = GameVersion.SM; - break; - case FILECOUNT_USUM: - game = GameVersion.USUM; - break; - } - if (game == GameVersion.Invalid) - return; - - Version = game; - } - public GameConfig(GameVersion game) + GameVersion game = fileCount switch { - Version = game; - } + FILECOUNT_XY => GameVersion.XY, + FILECOUNT_ORASDEMO => GameVersion.ORASDEMO, + FILECOUNT_ORAS => GameVersion.ORAS, + FILECOUNT_SMDEMO => GameVersion.SMDEMO, + FILECOUNT_SM => GameVersion.SM, + FILECOUNT_USUM => GameVersion.USUM, + _ => GameVersion.Invalid, + }; + if (game == GameVersion.Invalid) + return; - private void getGameData(GameVersion game) - { - switch (game) - { - case GameVersion.XY: - Files = GARCReference.GARCReference_XY; - Variables = TextVariableCode.VariableCodes_XY; - GameText = TextReference.GameText_XY; - break; - - case GameVersion.ORASDEMO: - case GameVersion.ORAS: - Files = GARCReference.GARCReference_AO; - Variables = TextVariableCode.VariableCodes_AO; - GameText = TextReference.GameText_AO; - break; - - case GameVersion.SMDEMO: - Files = GARCReference.GARCReference_SMDEMO; - Variables = TextVariableCode.VariableCodes_SM; - GameText = TextReference.GameText_SMDEMO; - break; - case GameVersion.SN: - case GameVersion.MN: - case GameVersion.SM: - Files = GARCReference.GARCReference_SN; - if (new FileInfo(Path.Combine(RomFS, getGARCFileName("encdata"))).Length == 0) - Files = GARCReference.GARCReference_MN; - Variables = TextVariableCode.VariableCodes_SM; - GameText = TextReference.GameText_SM; - break; - case GameVersion.US: - case GameVersion.UM: - case GameVersion.USUM: - Files = GARCReference.GARCReference_US; - if (new FileInfo(Path.Combine(RomFS, getGARCFileName("encdata"))).Length == 0) - Files = GARCReference.GARCReference_UM; - Variables = TextVariableCode.VariableCodes_SM; - GameText = TextReference.GameText_USUM; - break; - } - } - public void Initialize(string romFSpath, string exeFSpath, int lang) - { - RomFS = romFSpath; - ExeFS = exeFSpath; - Language = lang; - getGameData(Version); - InitializeAll(); - } - public void InitializeAll() - { - InitializePersonal(); - InitializeLearnset(); - InitializeGameText(); - InitializeMoves(); - InitializeGameInfo(); - } - public void InitializePersonal() - { - GARCPersonal = getGARCData("personal"); - Personal = new PersonalTable(GARCPersonal.getFile(GARCPersonal.FileCount - 1), Version); - } - public void InitializeLearnset() - { - GARCLearnsets = getGARCData("levelup"); - switch (Generation) - { - case 6: - Learnsets = GARCLearnsets.Files.Select(file => new Learnset6(file)).ToArray(); - break; - case 7: - Learnsets = GARCLearnsets.Files.Select(file => new Learnset7(file)).ToArray(); - break; - } - } - public void InitializeGameText() - { - GARCGameText = getGARCData("gametext"); - GameTextStrings = GARCGameText.Files.Select(file => new TextFile(this, file, RemapCharacters).Lines).ToArray(); - } - public void InitializeMoves() - { - GARCMoves = getGARCData("move"); - switch (Generation) - { - case 6: - if (XY) - Moves = GARCMoves.Files.Select(file => new Move(file)).ToArray(); - if (ORAS) - Moves = mini.unpackMini(GARCMoves.getFile(0), "WD").Select(file => new Move(file)).ToArray(); - break; - case 7: - Moves = mini.unpackMini(GARCMoves.getFile(0), "WD").Select(file => new Move(file)).ToArray(); - break; - } - } - private void InitializeGameInfo() - { - Info = new GameInfo(this); - } - public lzGARCFile getlzGARCData(string file) - { - var gr = getGARCReference(file); - gr = gr.LanguageVariant ? gr.getRelativeGARC(Language, gr.Name) : gr; - return new lzGARCFile(getlzGARC(file), gr, getGARCPath(file)); - } - public GARCFile getGARCData(string file, bool skipRelative = false) - { - var gr = getGARCReference(file); - if (gr.LanguageVariant && !skipRelative) - gr = gr.getRelativeGARC(Language, gr.Name); - return getGARCByReference(gr); - } - public GARCFile getGARCByReference(GARCReference gr) + Version = game; + } + + public GameConfig(GameVersion game) + { + Version = game; + } + + private void GetGameData(GameVersion game) + { + switch (game) { - return new GARCFile(getMemGARC(gr.Name), gr, getGARCPath(gr.Name)); + case GameVersion.XY: + Files = GARCReference.GARCReference_XY; + Variables = TextVariableCode.VariableCodes_XY; + GameText = TextReference.GameText_XY; + break; + + case GameVersion.ORASDEMO: + case GameVersion.ORAS: + Files = GARCReference.GARCReference_AO; + Variables = TextVariableCode.VariableCodes_AO; + GameText = TextReference.GameText_AO; + break; + + case GameVersion.SMDEMO: + Files = GARCReference.GARCReference_SMDEMO; + Variables = TextVariableCode.VariableCodes_SM; + GameText = TextReference.GameText_SMDEMO; + break; + case GameVersion.SN: + case GameVersion.MN: + case GameVersion.SM: + Files = GARCReference.GARCReference_SN; + if (new FileInfo(Path.Combine(RomFS, GetGARCFileName("encdata"))).Length == 0) + Files = GARCReference.GARCReference_MN; + Variables = TextVariableCode.VariableCodes_SM; + GameText = TextReference.GameText_SM; + break; + case GameVersion.US: + case GameVersion.UM: + case GameVersion.USUM: + Files = GARCReference.GARCReference_US; + if (new FileInfo(Path.Combine(RomFS, GetGARCFileName("encdata"))).Length == 0) + Files = GARCReference.GARCReference_UM; + Variables = TextVariableCode.VariableCodes_SM; + GameText = TextReference.GameText_USUM; + break; } - private string getGARCPath(string file) + } + + public void Initialize(string romFSpath, string exeFSpath, int lang) + { + RomFS = romFSpath; + ExeFS = exeFSpath; + Language = lang; + GetGameData(Version); + InitializeAll(); + } + + public void InitializeAll() + { + InitializePersonal(); + InitializeLearnset(); + InitializeGameText(); + InitializeMoves(); + InitializeEvos(); + InitializeGameInfo(); + } + + public void InitializePersonal() + { + GARCPersonal = GetGARCData("personal"); + Personal = new PersonalTable(GARCPersonal.GetFile(GARCPersonal.FileCount - 1), Version); + } + + public void InitializeLearnset() + { + GARCLearnsets = GetGARCData("levelup"); + switch (Generation) { - var gr = getGARCReference(file); - gr = gr.LanguageVariant ? gr.getRelativeGARC(Language, gr.Name) : gr; - string subloc = gr.Reference; - return Path.Combine(RomFS, subloc); + case 6: + Learnsets = GARCLearnsets.Files.Select(file => new Learnset6(file)).ToArray(); + break; + case 7: + Learnsets = GARCLearnsets.Files.Select(file => new Learnset6(file)).ToArray(); + break; } + } + + public void InitializeGameText() + { + GARCGameText = GetGARCData("gametext"); + GameTextStrings = GARCGameText.Files.Select(file => new TextFile(this, file, RemapCharacters).Lines).ToArray(); + } - private GARC.MemGARC getMemGARC(string file) + public void InitializeMoves() + { + GARCMoves = GetGARCData("move"); + switch (Generation) { - return new GARC.MemGARC(File.ReadAllBytes(getGARCPath(file))); + case 6: + if (XY) + Moves = GARCMoves.Files.Select(file => new Move6(file)).ToArray(); + if (ORAS) + Moves = Mini.UnpackMini(GARCMoves.GetFile(0), "WD").Select(file => new Move6(file)).ToArray(); + break; + case 7: + Moves = Mini.UnpackMini(GARCMoves.GetFile(0), "WD").Select(file => new Move7(file)).ToArray(); + break; } - private GARC.lzGARC getlzGARC(string file) + } + public void InitializeEvos() + { + var g = GetGARCData("evolution"); + byte[][] d = g.Files; + switch (Generation) { - return new GARC.lzGARC(File.ReadAllBytes(getGARCPath(file))); + case 6: + Evolutions = d.Select(z => new EvolutionSet6(z)).ToArray(); + break; + case 7: + Evolutions = d.Select(z => new EvolutionSet7(z)).ToArray(); + break; } + } - public string RomFS, ExeFS; + private void InitializeGameInfo() + { + Info = new GameInfo(this); + } - public GARCReference getGARCReference(string name) { return Files.FirstOrDefault(f => f.Name == name); } - public TextVariableCode getVariableCode(string name) { return Variables.FirstOrDefault(v => v.Name == name); } - public TextVariableCode getVariableName(int value) { return Variables.FirstOrDefault(v => v.Code == value); } + public LazyGARCFile GetlzGARCData(string file) + { + var gr = GetGARCReference(file); + gr = gr.LanguageVariant ? gr.GetRelativeGARC(Language, gr.Name) : gr; + return new LazyGARCFile(GetlzGARC(file), gr, GetGARCPath(file)); + } - private TextReference getGameText(TextName name) { return GameText.FirstOrDefault(f => f.Name == name); } - public TextData getTextData(TextName file) => new TextData(getText(file)); - public string[] getText(TextName file) + public GARCFile GetGARCData(string file, bool skipRelative = false) + { + var gr = GetGARCReference(file); + if (gr.LanguageVariant && !skipRelative) + gr = gr.GetRelativeGARC(Language, gr.Name); + return GetGARCByReference(gr); + } + + public GARCFile GetGARCByReference(GARCReference gr) + { + try { - return (string[])GameTextStrings[getGameText(file).Index].Clone(); + return new(GetMemGARC(gr.Name), gr, GetGARCPath(gr.Name)); } - public bool setText(TextName file, string[] strings) + catch (FormatException f) { - GameTextStrings[getGameText(file).Index] = strings; - return true; + var message = $"{gr.Name} - ({gr.Reference}) is apparently corrupt. Please restore the backup for this file." + f.Message; + throw new FormatException(message, f); } + } - public string getGARCFileName(string requestedGARC) - { - var garc = getGARCReference(requestedGARC); - if (garc.LanguageVariant) - garc = garc.getRelativeGARC(Language); + private string GetGARCPath(string file) + { + var gr = GetGARCReference(file); + gr = gr.LanguageVariant ? gr.GetRelativeGARC(Language, gr.Name) : gr; + string subloc = gr.Reference; + return Path.Combine(RomFS, subloc); + } - return garc.Reference; - } + private GARC.MemGARC GetMemGARC(string file) + { + return new(File.ReadAllBytes(GetGARCPath(file))); + } - public int Language { get; set; } - - public GARCFile GARCPersonal, GARCLearnsets, GARCMoves, GARCGameText; - public PersonalTable Personal { get; private set; } - public Learnset[] Learnsets { get; private set; } - public string[][] GameTextStrings { get; private set; } - public Move[] Moves { get; private set; } - - public bool XY => Version == GameVersion.XY; - public bool ORAS => Version == GameVersion.ORAS || Version == GameVersion.ORASDEMO; - public bool SM => Version == GameVersion.SM || Version == GameVersion.SMDEMO; - public bool USUM => Version == GameVersion.USUM; - public int MaxSpeciesID => XY || ORAS ? 721 : SM ? 802 : 807; - public int GARCVersion => XY || ORAS ? GARC.VER_4 : GARC.VER_6; - public int Generation + private GARC.LazyGARC GetlzGARC(string file) + { + return new(File.ReadAllBytes(GetGARCPath(file))); + } + + public string RomFS, ExeFS; + + public GARCReference GetGARCReference(string name) { return Files?.FirstOrDefault(f => f.Name == name); } + public TextVariableCode GetVariableCode(string name) { return Variables?.FirstOrDefault(v => v.Name == name); } + public TextVariableCode GetVariableName(int value) { return Variables?.FirstOrDefault(v => v.Code == value); } + + private TextReference GetGameText(TextName name) { return GameText.FirstOrDefault(f => f.Name == name); } + public TextData GetTextData(TextName file) => new(GetText(file)); + + public string[] GetText(TextName file) + { + return (string[])GameTextStrings[GetGameText(file).Index].Clone(); + } + + public bool SetText(TextName file, string[] strings) + { + GameTextStrings[GetGameText(file).Index] = strings; + return true; + } + + public string GetGARCFileName(string requestedGARC) + { + var garc = GetGARCReference(requestedGARC); + if (garc.LanguageVariant) + garc = garc.GetRelativeGARC(Language); + + return garc.Reference; + } + + public int Language { get; set; } + + public GARCFile GARCPersonal, GARCLearnsets, GARCMoves, GARCGameText; + public PersonalTable Personal { get; private set; } + public Learnset[] Learnsets { get; private set; } + public string[][] GameTextStrings { get; private set; } + public Move[] Moves { get; private set; } + public EvolutionSet[] Evolutions { get; private set; } + + public bool XY => Version == GameVersion.XY; + public bool ORAS => Version is GameVersion.ORAS or GameVersion.ORASDEMO; + public bool SM => Version is GameVersion.SM or GameVersion.SMDEMO; + public bool USUM => Version == GameVersion.USUM; + public int MaxSpeciesID => XY || ORAS ? Legal.MaxSpeciesID_6 : SM ? Legal.MaxSpeciesID_7_SM : Legal.MaxSpeciesID_7_USUM; + public int GARCVersion => XY || ORAS ? GARC.VER_4 : GARC.VER_6; + + public int Generation + { + get { - get - { - if (XY || ORAS) - return 6; - if (SM || USUM) - return 7; - return -1; - } + if (XY || ORAS) + return 6; + if (SM || USUM) + return 7; + return -1; } + } - public bool IsRebuildable(int fileCount) + public bool IsRebuildable(int fileCount) + { + return fileCount switch { - switch (fileCount) - { - case FILECOUNT_XY: - return Version == GameVersion.XY; - case FILECOUNT_ORAS: - return Version == GameVersion.ORAS; - case FILECOUNT_ORASDEMO: - return Version == GameVersion.ORASDEMO; - case FILECOUNT_SMDEMO: - return Version == GameVersion.SMDEMO; - case FILECOUNT_SM: - return Version == GameVersion.SM; - case FILECOUNT_USUM: - return Version == GameVersion.USUM; - } - return false; - } + FILECOUNT_XY => Version == GameVersion.XY, + FILECOUNT_ORAS => Version == GameVersion.ORAS, + FILECOUNT_ORASDEMO => Version == GameVersion.ORASDEMO, + FILECOUNT_SMDEMO => Version == GameVersion.SMDEMO, + FILECOUNT_SM => Version == GameVersion.SM, + FILECOUNT_USUM => Version == GameVersion.USUM, + _ => false, + }; } -} +} \ No newline at end of file diff --git a/pk3DS.Core/Game/GameInfo.cs b/pk3DS.Core/Game/GameInfo.cs index af6ac1c02f..c362a28f57 100644 --- a/pk3DS.Core/Game/GameInfo.cs +++ b/pk3DS.Core/Game/GameInfo.cs @@ -1,60 +1,59 @@ -namespace pk3DS.Core +namespace pk3DS.Core; + +public class GameInfo { - public class GameInfo - { - public int MaxSpeciesID { get; private set; } - public int MaxItemID { get; private set; } - public int MaxMoveID { get; private set; } - public ushort[] HeldItems { get; private set; } - public int MaxAbilityID { get; private set; } + public int MaxSpeciesID { get; private set; } + public int MaxItemID { get; private set; } + public int MaxMoveID { get; private set; } + public ushort[] HeldItems { get; private set; } + public int MaxAbilityID { get; private set; } - public GameInfo(GameConfig gameConfig) + public GameInfo(GameConfig gameConfig) + { + switch (gameConfig.Version) { - switch (gameConfig.Version) - { - case GameVersion.XY: LoadXY(); break; - case GameVersion.ORASDEMO: - case GameVersion.ORAS: LoadAO(); break; - case GameVersion.SMDEMO: - case GameVersion.SM: LoadSM(); break; - case GameVersion.USUM: LoadUSUM(); break; - } + case GameVersion.XY: LoadXY(); break; + case GameVersion.ORASDEMO: + case GameVersion.ORAS: LoadAO(); break; + case GameVersion.SMDEMO: + case GameVersion.SM: LoadSM(); break; + case GameVersion.USUM: LoadUSUM(); break; } + } - private void LoadXY() - { - MaxSpeciesID = Legal.MaxSpeciesID_6; - MaxMoveID = Legal.MaxMoveID_6_XY; - MaxItemID = Legal.MaxItemID_6_XY; - HeldItems = Legal.HeldItem_XY; - MaxAbilityID = Legal.MaxAbilityID_6_XY; - } + private void LoadXY() + { + MaxSpeciesID = Legal.MaxSpeciesID_6; + MaxMoveID = Legal.MaxMoveID_6_XY; + MaxItemID = Legal.MaxItemID_6_XY; + HeldItems = Legal.HeldItem_XY; + MaxAbilityID = Legal.MaxAbilityID_6_XY; + } - private void LoadAO() - { - MaxSpeciesID = Legal.MaxSpeciesID_6; - MaxMoveID = Legal.MaxMoveID_6_AO; - MaxItemID = Legal.MaxItemID_6_AO; - HeldItems = Legal.HeldItem_AO; - MaxAbilityID = Legal.MaxAbilityID_6_AO; - } + private void LoadAO() + { + MaxSpeciesID = Legal.MaxSpeciesID_6; + MaxMoveID = Legal.MaxMoveID_6_AO; + MaxItemID = Legal.MaxItemID_6_AO; + HeldItems = Legal.HeldItem_AO; + MaxAbilityID = Legal.MaxAbilityID_6_AO; + } - private void LoadSM() - { - MaxSpeciesID = Legal.MaxSpeciesID_7; - MaxMoveID = Legal.MaxMoveID_7; - MaxItemID = Legal.MaxItemID_7; - HeldItems = Legal.HeldItems_SM; - MaxAbilityID = Legal.MaxAbilityID_7; - } + private void LoadSM() + { + MaxSpeciesID = Legal.MaxSpeciesID_7_SM; + MaxMoveID = Legal.MaxMoveID_7_SM; + MaxItemID = Legal.MaxItemID_7_SM; + HeldItems = Legal.HeldItems_SM; + MaxAbilityID = Legal.MaxAbilityID_7_SM; + } - private void LoadUSUM() - { - MaxSpeciesID = Legal.MaxSpeciesID_7_USUM; - MaxMoveID = Legal.MaxMoveID_7_USUM; - MaxItemID = Legal.MaxItemID_7_USUM; - HeldItems = Legal.HeldItems_SM; - MaxAbilityID = Legal.MaxAbilityID_7; - } + private void LoadUSUM() + { + MaxSpeciesID = Legal.MaxSpeciesID_7_USUM; + MaxMoveID = Legal.MaxMoveID_7_USUM; + MaxItemID = Legal.MaxItemID_7_USUM; + HeldItems = Legal.HeldItems_USUM; + MaxAbilityID = Legal.MaxAbilityID_7_USUM; } -} +} \ No newline at end of file diff --git a/pk3DS.Core/Game/GameRNG.cs b/pk3DS.Core/Game/GameRNG.cs index be4abf72eb..a5a18991f3 100644 --- a/pk3DS.Core/Game/GameRNG.cs +++ b/pk3DS.Core/Game/GameRNG.cs @@ -1,24 +1,24 @@ -namespace pk3DS.Core +namespace pk3DS.Core; + +public abstract class LCRNG32 { - public abstract class LCRNG32 + public static uint Advance(uint seed, int ctr) { - public static uint Advance(uint seed, int ctr) + for (int i = 0; i < ctr; i++) { - for (int i = 0; i < ctr; i++) - { - seed *= 0x41C64E6D; - seed += 0x00006073; - } - return seed; + seed *= 0x41C64E6D; + seed += 0x00006073; } - public static uint Reverse(uint seed, int ctr) + return seed; + } + + public static uint Reverse(uint seed, int ctr) + { + for (int i = 0; i < ctr; i++) { - for (int i = 0; i < ctr; i++) - { - seed *= 0xEEB9EB65; - seed += 0x0A3561A1; - } - return seed; + seed *= 0xEEB9EB65; + seed += 0x0A3561A1; } + return seed; } -} +} \ No newline at end of file diff --git a/pk3DS.Core/Game/GameVersion.cs b/pk3DS.Core/Game/GameVersion.cs index 530f11ce33..83794ac418 100644 --- a/pk3DS.Core/Game/GameVersion.cs +++ b/pk3DS.Core/Game/GameVersion.cs @@ -1,108 +1,138 @@ -namespace pk3DS.Core +namespace pk3DS.Core; + +public enum GameVersion { - public enum GameVersion - { - // Indicators - Invalid = -2, - Any = -1, - Unknown = 0, - - // Version IDs, also stored in PKM structure - /*Gen3*/ S = 1, R = 2, E = 3, FR = 4, LG = 5, CXD = 15, - /*Gen4*/ D = 10, P = 11, Pt = 12, HG = 7, SS = 8, - /*Gen5*/ W = 20, B = 21, W2 = 22, B2 = 23, - /*Gen6*/ X = 24, Y = 25, AS = 26, OR = 27, - /*Gen7*/ SN = 30, MN = 31, US = 32, UM = 33, - /* GO */ GO = 34, - /* VC1*/ RD = 35, GN = 36, BU = 37, YW = 38, // GN = Blue for international release - /* VC2*/ GD = 39, SV = 40, C = 41, // Crystal is unused - - // Not actually stored values, but assigned as properties. - - // Game Groupings (SaveFile type) - /*SAV1*/ RB, RBY, - /*SAV2*/ GS, GSC, - /*SAV3*/ RS, FRLG, RSBOX, COLO, XD, - /*SAV4*/ DP, HGSS, BATREV, - /*SAV5*/ BW, B2W2, - /*SAV6*/ XY, ORASDEMO, ORAS, - /*SAV7*/ SM, USUM, - - // Extra Game Groupings (Generation) - Gen1, Gen2, Gen3, Gen4, Gen5, Gen6, Gen7, - GBCartEraOnly, - Stadium, - Stadium2, - EventsGBGen1, - EventsGBGen2, - VCEvents, - - SMDEMO - } + // Indicators + Invalid = -2, + Any = -1, + Unknown = 0, + + // Version IDs, also stored in PKM structure + /*Gen3*/ + S = 1, R = 2, E = 3, FR = 4, LG = 5, + + /*Gen4*/ + HG = 7, SS = 8, D = 10, P = 11, Pt = 12, + + // Gen3 + CXD = 15, + + /*Gen5*/ + W = 20, B = 21, W2 = 22, B2 = 23, + + /*Gen6*/ + X = 24, Y = 25, AS = 26, OR = 27, + + /*Gen7*/ + SN = 30, MN = 31, US = 32, UM = 33, + + /* GO */ + GO = 34, + /* VC1*/ + RD = 35, GN = 36, BU = 37, YW = 38, // GN = Blue for international release + + /* VC2*/ + GD = 39, SV = 40, C = 41, // Crystal is unused + + // Not actually stored values, but assigned as properties. + + // Game Groupings (SaveFile type) + /*SAV1*/ + RB, RBY, + + /*SAV2*/ + GS, GSC, + + /*SAV3*/ + RS, FRLG, RSBOX, COLO, XD, + + /*SAV4*/ + DP, HGSS, BATREV, + + /*SAV5*/ + BW, B2W2, - public static partial class Extensions + /*SAV6*/ + XY, ORASDEMO, ORAS, + + /*SAV7*/ + SM, USUM, + + // Extra Game Groupings (Generation) + Gen1, Gen2, Gen3, Gen4, Gen5, Gen6, Gen7, + + GBCartEraOnly, + Stadium, + Stadium2, + EventsGBGen1, + EventsGBGen2, + VCEvents, + + SMDEMO, +} + +public static class Extensions +{ + public static bool Contains(this GameVersion g1, GameVersion g2) { - public static bool Contains(this GameVersion g1, GameVersion g2) + if (g1 == g2 || g1 == GameVersion.Any) + return true; + + switch (g1) { - if (g1 == g2 || g1 == GameVersion.Any) - return true; - - switch (g1) - { - case GameVersion.RB: - return g2 == GameVersion.RD || g2 == GameVersion.BU || g2 == GameVersion.GN; - case GameVersion.RBY: - return GameVersion.RB.Contains(g2) || g2 == GameVersion.YW; - case GameVersion.Gen1: - return GameVersion.RBY.Contains(g2) || g2 == GameVersion.Stadium || g2 == GameVersion.EventsGBGen1 || g2 == GameVersion.VCEvents; - case GameVersion.Stadium: - case GameVersion.EventsGBGen1: - case GameVersion.VCEvents: - goto case GameVersion.RBY; - - case GameVersion.GS: return g2 == GameVersion.GD || g2 == GameVersion.SV; - case GameVersion.GSC: - return GameVersion.GS.Contains(g2) || g2 == GameVersion.C; - case GameVersion.Gen2: - return GameVersion.GSC.Contains(g2) || g2 == GameVersion.Stadium2 || g2 == GameVersion.EventsGBGen2; - case GameVersion.Stadium2: - case GameVersion.EventsGBGen2: - goto case GameVersion.GSC; - case GameVersion.GBCartEraOnly: - return g2 == GameVersion.Stadium || g2 == GameVersion.Stadium2 || g2 == GameVersion.EventsGBGen1 || g2 == GameVersion.EventsGBGen2; - - case GameVersion.RS: return g2 == GameVersion.R || g2 == GameVersion.S; - case GameVersion.FRLG: return g2 == GameVersion.FR || g2 == GameVersion.LG; - case GameVersion.CXD: return g2 == GameVersion.COLO || g2 == GameVersion.XD; - case GameVersion.RSBOX: return GameVersion.RS.Contains(g2) || g2 == GameVersion.E || GameVersion.FRLG.Contains(g2); - case GameVersion.Gen3: - return GameVersion.RS.Contains(g2) || g2 == GameVersion.E || GameVersion.FRLG.Contains(g2) || GameVersion.CXD.Contains(g2) || g2 == GameVersion.RSBOX; - - case GameVersion.DP: return g2 == GameVersion.D || g2 == GameVersion.P; - case GameVersion.HGSS: return g2 == GameVersion.HG || g2 == GameVersion.SS; - case GameVersion.BATREV: return GameVersion.DP.Contains(g2) || g2 == GameVersion.Pt || GameVersion.HGSS.Contains(g2); - case GameVersion.Gen4: - return GameVersion.DP.Contains(g2) || g2 == GameVersion.Pt || GameVersion.HGSS.Contains(g2) || g2 == GameVersion.BATREV; - - case GameVersion.BW: return g2 == GameVersion.B || g2 == GameVersion.W; - case GameVersion.B2W2: return g2 == GameVersion.B2 || g2 == GameVersion.W2; - case GameVersion.Gen5: - return GameVersion.BW.Contains(g2) || GameVersion.B2W2.Contains(g2); - - case GameVersion.XY: return g2 == GameVersion.X || g2 == GameVersion.Y; - case GameVersion.ORAS: return g2 == GameVersion.OR || g2 == GameVersion.AS; - case GameVersion.Gen6: - return GameVersion.XY.Contains(g2) || GameVersion.ORAS.Contains(g2); - - case GameVersion.SM: - return g2 == GameVersion.SN || g2 == GameVersion.MN; - case GameVersion.USUM: - return g2 == GameVersion.US || g2 == GameVersion.UM; - case GameVersion.Gen7: - return GameVersion.SM.Contains(g2) || GameVersion.USUM.Contains(g2); - - default: return false; - } + case GameVersion.RB: + return g2 is GameVersion.RD or GameVersion.BU or GameVersion.GN; + case GameVersion.RBY: + return GameVersion.RB.Contains(g2) || g2 == GameVersion.YW; + case GameVersion.Gen1: + return GameVersion.RBY.Contains(g2) || g2 == GameVersion.Stadium || g2 == GameVersion.EventsGBGen1 || g2 == GameVersion.VCEvents; + case GameVersion.Stadium: + case GameVersion.EventsGBGen1: + case GameVersion.VCEvents: + goto case GameVersion.RBY; + + case GameVersion.GS: return g2 is GameVersion.GD or GameVersion.SV; + case GameVersion.GSC: + return GameVersion.GS.Contains(g2) || g2 == GameVersion.C; + case GameVersion.Gen2: + return GameVersion.GSC.Contains(g2) || g2 == GameVersion.Stadium2 || g2 == GameVersion.EventsGBGen2; + case GameVersion.Stadium2: + case GameVersion.EventsGBGen2: + goto case GameVersion.GSC; + case GameVersion.GBCartEraOnly: + return g2 is GameVersion.Stadium or GameVersion.Stadium2 or GameVersion.EventsGBGen1 or GameVersion.EventsGBGen2; + + case GameVersion.RS: return g2 is GameVersion.R or GameVersion.S; + case GameVersion.FRLG: return g2 is GameVersion.FR or GameVersion.LG; + case GameVersion.CXD: return g2 is GameVersion.COLO or GameVersion.XD; + case GameVersion.RSBOX: return GameVersion.RS.Contains(g2) || g2 == GameVersion.E || GameVersion.FRLG.Contains(g2); + case GameVersion.Gen3: + return GameVersion.RS.Contains(g2) || g2 == GameVersion.E || GameVersion.FRLG.Contains(g2) || GameVersion.CXD.Contains(g2) || g2 == GameVersion.RSBOX; + + case GameVersion.DP: return g2 is GameVersion.D or GameVersion.P; + case GameVersion.HGSS: return g2 is GameVersion.HG or GameVersion.SS; + case GameVersion.BATREV: return GameVersion.DP.Contains(g2) || g2 == GameVersion.Pt || GameVersion.HGSS.Contains(g2); + case GameVersion.Gen4: + return GameVersion.DP.Contains(g2) || g2 == GameVersion.Pt || GameVersion.HGSS.Contains(g2) || g2 == GameVersion.BATREV; + + case GameVersion.BW: return g2 is GameVersion.B or GameVersion.W; + case GameVersion.B2W2: return g2 is GameVersion.B2 or GameVersion.W2; + case GameVersion.Gen5: + return GameVersion.BW.Contains(g2) || GameVersion.B2W2.Contains(g2); + + case GameVersion.XY: return g2 is GameVersion.X or GameVersion.Y; + case GameVersion.ORAS: return g2 is GameVersion.OR or GameVersion.AS; + case GameVersion.Gen6: + return GameVersion.XY.Contains(g2) || GameVersion.ORAS.Contains(g2); + + case GameVersion.SM: + return g2 is GameVersion.SN or GameVersion.MN; + case GameVersion.USUM: + return g2 is GameVersion.US or GameVersion.UM; + case GameVersion.Gen7: + return GameVersion.SM.Contains(g2) || GameVersion.USUM.Contains(g2); + + default: return false; } } -} +} \ No newline at end of file diff --git a/pk3DS.Core/Game/TextReference.cs b/pk3DS.Core/Game/TextReference.cs index 00ecfd8590..f902f39a70 100644 --- a/pk3DS.Core/Game/TextReference.cs +++ b/pk3DS.Core/Game/TextReference.cs @@ -1,157 +1,161 @@ -namespace pk3DS.Core +namespace pk3DS.Core; + +public enum TextName { - public enum TextName - { - AbilityNames, - MoveNames, - MoveFlavor, + AbilityNames, + MoveNames, + MoveFlavor, - ItemNames, - ItemFlavor, + ItemNames, + ItemFlavor, - SpeciesNames, - Types, - Natures, - Forms, + SpeciesNames, + Types, + Natures, + Forms, - TrainerNames, - TrainerClasses, - TrainerText, - metlist_000000, - OPowerFlavor, - MaisonTrainerNames, - SuperTrainerNames, - BattleRoyalNames, - BattleTreeNames, + TrainerNames, + TrainerClasses, + TrainerText, + metlist_000000, + OPowerFlavor, + MaisonTrainerNames, + SuperTrainerNames, + BattleRoyalNames, + BattleTreeNames, - SpeciesClassifications, - PokedexEntry1, - PokedexEntry2 - } + SpeciesClassifications, + PokedexEntry1, + PokedexEntry2, +} - public class TextData - { - public readonly string[] Lines; - public bool Modified { get; private set; } - public TextData(string[] lines) => Lines = lines; +public class TextData(string[] lines) +{ + public readonly string[] Lines = lines; + public bool Modified { get; private set; } - public string this[int line] - { - get => Lines[line]; - set - { - if (Lines[line] == value) - return; - Modified = true; - Lines[line] = value; - } - } - } - public class TextReference + public string this[int line] { - public readonly int Index; - public readonly TextName Name; - private TextReference(int index, TextName name) + get => Lines[line]; + set { - Index = index; - Name = name; + if (Lines[line] == value) + return; + Modified = true; + Lines[line] = value; } - - public static readonly TextReference[] GameText_XY = - { - new TextReference(005, TextName.Forms), - new TextReference(013, TextName.MoveNames), - new TextReference(015, TextName.MoveFlavor), - new TextReference(017, TextName.Types), - new TextReference(020, TextName.TrainerClasses), - new TextReference(021, TextName.TrainerNames), - new TextReference(022, TextName.TrainerText), - new TextReference(034, TextName.AbilityNames), - new TextReference(047, TextName.Natures), - new TextReference(072, TextName.metlist_000000), - new TextReference(080, TextName.SpeciesNames), - new TextReference(096, TextName.ItemNames), - new TextReference(099, TextName.ItemFlavor), - new TextReference(130, TextName.MaisonTrainerNames), - new TextReference(131, TextName.SuperTrainerNames), - new TextReference(141, TextName.OPowerFlavor), - }; - public static readonly TextReference[] GameText_AO = - { - new TextReference(005, TextName.Forms), - new TextReference(014, TextName.MoveNames), - new TextReference(016, TextName.MoveFlavor), - new TextReference(018, TextName.Types), - new TextReference(021, TextName.TrainerClasses), - new TextReference(022, TextName.TrainerNames), - new TextReference(023, TextName.TrainerText), - new TextReference(037, TextName.AbilityNames), - new TextReference(051, TextName.Natures), - new TextReference(090, TextName.metlist_000000), - new TextReference(098, TextName.SpeciesNames), - new TextReference(114, TextName.ItemNames), - new TextReference(117, TextName.ItemFlavor), - new TextReference(153, TextName.MaisonTrainerNames), - new TextReference(154, TextName.SuperTrainerNames), - new TextReference(165, TextName.OPowerFlavor), - }; - public static readonly TextReference[] GameText_SMDEMO = - { - new TextReference(020, TextName.ItemFlavor), - new TextReference(021, TextName.ItemNames), - new TextReference(026, TextName.SpeciesNames), - new TextReference(030, TextName.metlist_000000), - new TextReference(044, TextName.Forms), - new TextReference(044, TextName.Natures), - new TextReference(046, TextName.AbilityNames), - new TextReference(049, TextName.TrainerText), - new TextReference(050, TextName.TrainerNames), - new TextReference(051, TextName.TrainerClasses), - new TextReference(052, TextName.Types), - new TextReference(054, TextName.MoveFlavor), - new TextReference(055, TextName.MoveNames), - }; - public static readonly TextReference[] GameText_SM = - { - new TextReference(035, TextName.ItemFlavor), - new TextReference(036, TextName.ItemNames), - new TextReference(055, TextName.SpeciesNames), - new TextReference(067, TextName.metlist_000000), - new TextReference(086, TextName.BattleRoyalNames), - new TextReference(087, TextName.Natures), - new TextReference(096, TextName.AbilityNames), - new TextReference(099, TextName.BattleTreeNames), - new TextReference(104, TextName.TrainerText), - new TextReference(105, TextName.TrainerNames), - new TextReference(106, TextName.TrainerClasses), - new TextReference(107, TextName.Types), - new TextReference(112, TextName.MoveFlavor), - new TextReference(113, TextName.MoveNames), - new TextReference(114, TextName.Forms), - new TextReference(116, TextName.SpeciesClassifications), - new TextReference(119, TextName.PokedexEntry1), - new TextReference(120, TextName.PokedexEntry2) - }; - public static readonly TextReference[] GameText_USUM = - { - new TextReference(039, TextName.ItemFlavor), - new TextReference(040, TextName.ItemNames), - new TextReference(060, TextName.SpeciesNames), - new TextReference(072, TextName.metlist_000000), - new TextReference(091, TextName.BattleRoyalNames), - new TextReference(092, TextName.Natures), - new TextReference(101, TextName.AbilityNames), - new TextReference(104, TextName.BattleTreeNames), - new TextReference(109, TextName.TrainerText), - new TextReference(110, TextName.TrainerNames), - new TextReference(111, TextName.TrainerClasses), - new TextReference(112, TextName.Types), - new TextReference(117, TextName.MoveFlavor), - new TextReference(118, TextName.MoveNames), - new TextReference(119, TextName.Forms), - new TextReference(121, TextName.SpeciesClassifications), - new TextReference(124, TextName.PokedexEntry1), - new TextReference(125, TextName.PokedexEntry2) - }; } } + +public sealed class TextReference +{ + public readonly int Index; + public readonly TextName Name; + + private TextReference(int index, TextName name) + { + Index = index; + Name = name; + } + + public static readonly TextReference[] GameText_XY = + [ + new(005, TextName.Forms), + new(013, TextName.MoveNames), + new(015, TextName.MoveFlavor), + new(017, TextName.Types), + new(020, TextName.TrainerClasses), + new(021, TextName.TrainerNames), + new(022, TextName.TrainerText), + new(034, TextName.AbilityNames), + new(047, TextName.Natures), + new(072, TextName.metlist_000000), + new(080, TextName.SpeciesNames), + new(096, TextName.ItemNames), + new(099, TextName.ItemFlavor), + new(130, TextName.MaisonTrainerNames), + new(131, TextName.SuperTrainerNames), + new(141, TextName.OPowerFlavor), + ]; + + public static readonly TextReference[] GameText_AO = + [ + new(005, TextName.Forms), + new(014, TextName.MoveNames), + new(016, TextName.MoveFlavor), + new(018, TextName.Types), + new(021, TextName.TrainerClasses), + new(022, TextName.TrainerNames), + new(023, TextName.TrainerText), + new(037, TextName.AbilityNames), + new(051, TextName.Natures), + new(090, TextName.metlist_000000), + new(098, TextName.SpeciesNames), + new(114, TextName.ItemNames), + new(117, TextName.ItemFlavor), + new(153, TextName.MaisonTrainerNames), + new(154, TextName.SuperTrainerNames), + new(165, TextName.OPowerFlavor), + ]; + + public static readonly TextReference[] GameText_SMDEMO = + [ + new(020, TextName.ItemFlavor), + new(021, TextName.ItemNames), + new(026, TextName.SpeciesNames), + new(030, TextName.metlist_000000), + new(044, TextName.Forms), + new(044, TextName.Natures), + new(046, TextName.AbilityNames), + new(049, TextName.TrainerText), + new(050, TextName.TrainerNames), + new(051, TextName.TrainerClasses), + new(052, TextName.Types), + new(054, TextName.MoveFlavor), + new(055, TextName.MoveNames), + ]; + + public static readonly TextReference[] GameText_SM = + [ + new(035, TextName.ItemFlavor), + new(036, TextName.ItemNames), + new(055, TextName.SpeciesNames), + new(067, TextName.metlist_000000), + new(086, TextName.BattleRoyalNames), + new(087, TextName.Natures), + new(096, TextName.AbilityNames), + new(099, TextName.BattleTreeNames), + new(104, TextName.TrainerText), + new(105, TextName.TrainerNames), + new(106, TextName.TrainerClasses), + new(107, TextName.Types), + new(112, TextName.MoveFlavor), + new(113, TextName.MoveNames), + new(114, TextName.Forms), + new(116, TextName.SpeciesClassifications), + new(119, TextName.PokedexEntry1), + new(120, TextName.PokedexEntry2), + ]; + + public static readonly TextReference[] GameText_USUM = + [ + new(039, TextName.ItemFlavor), + new(040, TextName.ItemNames), + new(060, TextName.SpeciesNames), + new(072, TextName.metlist_000000), + new(091, TextName.BattleRoyalNames), + new(092, TextName.Natures), + new(101, TextName.AbilityNames), + new(104, TextName.BattleTreeNames), + new(109, TextName.TrainerText), + new(110, TextName.TrainerNames), + new(111, TextName.TrainerClasses), + new(112, TextName.Types), + new(117, TextName.MoveFlavor), + new(118, TextName.MoveNames), + new(119, TextName.Forms), + new(121, TextName.SpeciesClassifications), + new(124, TextName.PokedexEntry1), + new(125, TextName.PokedexEntry2), + ]; +} \ No newline at end of file diff --git a/pk3DS.Core/Game/TextVariableCode.cs b/pk3DS.Core/Game/TextVariableCode.cs index 037e0ca1b9..b1a10637a5 100644 --- a/pk3DS.Core/Game/TextVariableCode.cs +++ b/pk3DS.Core/Game/TextVariableCode.cs @@ -1,167 +1,169 @@ -namespace pk3DS.Core +namespace pk3DS.Core; + +public sealed class TextVariableCode { - public class TextVariableCode - { - public readonly int Code; - public readonly string Name; - private TextVariableCode(int code, string name) - { - Code = code; - Name = name; - } + public readonly int Code; + public readonly string Name; - public static readonly TextVariableCode[] VariableCodes_XY = - { - new TextVariableCode(0xFF00, "COLOR"), - new TextVariableCode(0x0100, "TRNAME"), - new TextVariableCode(0x0101, "PKNAME"), - new TextVariableCode(0x0102, "PKNICK"), - new TextVariableCode(0x0103, "TYPE"), - new TextVariableCode(0x0105, "LOCATION"), - new TextVariableCode(0x0106, "ABILITY"), - new TextVariableCode(0x0107, "MOVE"), - new TextVariableCode(0x0108, "ITEM1"), - new TextVariableCode(0x0109, "ITEM2"), - new TextVariableCode(0x010A, "sTRBAG"), - new TextVariableCode(0x010B, "BOX"), - new TextVariableCode(0x010D, "EVSTAT"), - new TextVariableCode(0x0110, "OPOWER"), - new TextVariableCode(0x0127, "RIBBON"), - new TextVariableCode(0x0134, "MIINAME"), - new TextVariableCode(0x013E, "WEATHER"), - new TextVariableCode(0x0189, "TRNICK"), - new TextVariableCode(0x018A, "1stchrTR"), - new TextVariableCode(0x018B, "SHOUTOUT"), - new TextVariableCode(0x018E, "BERRY"), - new TextVariableCode(0x018F, "REMFEEL"), - new TextVariableCode(0x0190, "REMQUAL"), - new TextVariableCode(0x0191, "WEBSITE"), - new TextVariableCode(0x019C, "CHOICECOS"), - new TextVariableCode(0x01A1, "GSYNCID"), - new TextVariableCode(0x0192, "PRVIDSAY"), - new TextVariableCode(0x0193, "BTLTEST"), - new TextVariableCode(0x0195, "GENLOC"), - new TextVariableCode(0x0199, "CHOICEFOOD"), - new TextVariableCode(0x019A, "HOTELITEM"), - new TextVariableCode(0x019B, "TAXISTOP"), - new TextVariableCode(0x019F, "MAISTITLE"), - new TextVariableCode(0x1000, "ITEMPLUR0"), - new TextVariableCode(0x1001, "ITEMPLUR1"), - new TextVariableCode(0x1100, "GENDBR"), - new TextVariableCode(0x1101, "NUMBRNCH"), - new TextVariableCode(0x1302, "iCOLOR2"), - new TextVariableCode(0x1303, "iCOLOR3"), - new TextVariableCode(0x0200, "NUM1"), - new TextVariableCode(0x0201, "NUM2"), - new TextVariableCode(0x0202, "NUM3"), - new TextVariableCode(0x0203, "NUM4"), - new TextVariableCode(0x0204, "NUM5"), - new TextVariableCode(0x0205, "NUM6"), - new TextVariableCode(0x0206, "NUM7"), - new TextVariableCode(0x0207, "NUM8"), - new TextVariableCode(0x0208, "NUM9"), - }; - public static readonly TextVariableCode[] VariableCodes_AO = - { - new TextVariableCode(0xFF00, "COLOR"), - new TextVariableCode(0x0100, "TRNAME"), - new TextVariableCode(0x0101, "PKNAME"), - new TextVariableCode(0x0102, "PKNICK"), - new TextVariableCode(0x0103, "TYPE"), - new TextVariableCode(0x0105, "LOCATION"), - new TextVariableCode(0x0106, "ABILITY"), - new TextVariableCode(0x0107, "MOVE"), - new TextVariableCode(0x0108, "ITEM1"), - new TextVariableCode(0x0109, "ITEM2"), - new TextVariableCode(0x010A, "sTRBAG"), - new TextVariableCode(0x010B, "BOX"), - new TextVariableCode(0x010D, "EVSTAT"), - new TextVariableCode(0x0110, "OPOWER"), - new TextVariableCode(0x0127, "RIBBON"), - new TextVariableCode(0x0134, "MIINAME"), - new TextVariableCode(0x013E, "WEATHER"), - new TextVariableCode(0x0189, "TRNICK"), - new TextVariableCode(0x018A, "1stchrTR"), - new TextVariableCode(0x018B, "SHOUTOUT"), - new TextVariableCode(0x018E, "BERRY"), - new TextVariableCode(0x018F, "REMFEEL"), - new TextVariableCode(0x0190, "REMQUAL"), - new TextVariableCode(0x0191, "WEBSITE"), - new TextVariableCode(0x019C, "CHOICECOS"), - new TextVariableCode(0x01A1, "GSYNCID"), - new TextVariableCode(0x0192, "PRVIDSAY"), - new TextVariableCode(0x0193, "BTLTEST"), - new TextVariableCode(0x0195, "GENLOC"), - new TextVariableCode(0x0199, "CHOICEFOOD"), - new TextVariableCode(0x019A, "HOTELITEM"), - new TextVariableCode(0x019B, "TAXISTOP"), - new TextVariableCode(0x019F, "MAISTITLE"), - new TextVariableCode(0x1000, "ITEMPLUR0"), - new TextVariableCode(0x1001, "ITEMPLUR1"), - new TextVariableCode(0x1100, "GENDBR"), - new TextVariableCode(0x1101, "NUMBRNCH"), - new TextVariableCode(0x1302, "iCOLOR2"), - new TextVariableCode(0x1303, "iCOLOR3"), - new TextVariableCode(0x0200, "NUM1"), - new TextVariableCode(0x0201, "NUM2"), - new TextVariableCode(0x0202, "NUM3"), - new TextVariableCode(0x0203, "NUM4"), - new TextVariableCode(0x0204, "NUM5"), - new TextVariableCode(0x0205, "NUM6"), - new TextVariableCode(0x0206, "NUM7"), - new TextVariableCode(0x0207, "NUM8"), - new TextVariableCode(0x0208, "NUM9"), - }; - public static readonly TextVariableCode[] VariableCodes_SM = - { - new TextVariableCode(0xFF00, "COLOR"), - new TextVariableCode(0x0100, "TRNAME"), - new TextVariableCode(0x0101, "PKNAME"), - new TextVariableCode(0x0102, "PKNICK"), - new TextVariableCode(0x0103, "TYPE"), - new TextVariableCode(0x0105, "LOCATION"), - new TextVariableCode(0x0106, "ABILITY"), - new TextVariableCode(0x0107, "MOVE"), - new TextVariableCode(0x0108, "ITEM1"), - new TextVariableCode(0x0109, "ITEM2"), - new TextVariableCode(0x010A, "sTRBAG"), - new TextVariableCode(0x010B, "BOX"), - new TextVariableCode(0x010D, "EVSTAT"), - new TextVariableCode(0x0110, "OPOWER"), - new TextVariableCode(0x0127, "RIBBON"), - new TextVariableCode(0x0134, "MIINAME"), - new TextVariableCode(0x013E, "WEATHER"), - new TextVariableCode(0x0189, "TRNICK"), - new TextVariableCode(0x018A, "1stchrTR"), - new TextVariableCode(0x018B, "SHOUTOUT"), - new TextVariableCode(0x018E, "BERRY"), - new TextVariableCode(0x018F, "REMFEEL"), - new TextVariableCode(0x0190, "REMQUAL"), - new TextVariableCode(0x0191, "WEBSITE"), - new TextVariableCode(0x019C, "CHOICECOS"), - new TextVariableCode(0x01A1, "GSYNCID"), - new TextVariableCode(0x0192, "PRVIDSAY"), - new TextVariableCode(0x0193, "BTLTEST"), - new TextVariableCode(0x0195, "GENLOC"), - new TextVariableCode(0x0199, "CHOICEFOOD"), - new TextVariableCode(0x019A, "HOTELITEM"), - new TextVariableCode(0x019B, "TAXISTOP"), - new TextVariableCode(0x019F, "MAISTITLE"), - new TextVariableCode(0x1000, "ITEMPLUR0"), - new TextVariableCode(0x1001, "ITEMPLUR1"), - new TextVariableCode(0x1100, "GENDBR"), - new TextVariableCode(0x1101, "NUMBRNCH"), - new TextVariableCode(0x1302, "iCOLOR2"), - new TextVariableCode(0x1303, "iCOLOR3"), - new TextVariableCode(0x0200, "NUM1"), - new TextVariableCode(0x0201, "NUM2"), - new TextVariableCode(0x0202, "NUM3"), - new TextVariableCode(0x0203, "NUM4"), - new TextVariableCode(0x0204, "NUM5"), - new TextVariableCode(0x0205, "NUM6"), - new TextVariableCode(0x0206, "NUM7"), - new TextVariableCode(0x0207, "NUM8"), - new TextVariableCode(0x0208, "NUM9"), - }; + private TextVariableCode(int code, string name) + { + Code = code; + Name = name; } -} + + public static readonly TextVariableCode[] VariableCodes_XY = + [ + new(0xFF00, "COLOR"), + new(0x0100, "TRNAME"), + new(0x0101, "PKNAME"), + new(0x0102, "PKNICK"), + new(0x0103, "TYPE"), + new(0x0105, "LOCATION"), + new(0x0106, "ABILITY"), + new(0x0107, "MOVE"), + new(0x0108, "ITEM1"), + new(0x0109, "ITEM2"), + new(0x010A, "sTRBAG"), + new(0x010B, "BOX"), + new(0x010D, "EVSTAT"), + new(0x0110, "OPOWER"), + new(0x0127, "RIBBON"), + new(0x0134, "MIINAME"), + new(0x013E, "WEATHER"), + new(0x0189, "TRNICK"), + new(0x018A, "1stchrTR"), + new(0x018B, "SHOUTOUT"), + new(0x018E, "BERRY"), + new(0x018F, "REMFEEL"), + new(0x0190, "REMQUAL"), + new(0x0191, "WEBSITE"), + new(0x019C, "CHOICECOS"), + new(0x01A1, "GSYNCID"), + new(0x0192, "PRVIDSAY"), + new(0x0193, "BTLTEST"), + new(0x0195, "GENLOC"), + new(0x0199, "CHOICEFOOD"), + new(0x019A, "HOTELITEM"), + new(0x019B, "TAXISTOP"), + new(0x019F, "MAISTITLE"), + new(0x1000, "ITEMPLUR0"), + new(0x1001, "ITEMPLUR1"), + new(0x1100, "GENDBR"), + new(0x1101, "NUMBRNCH"), + new(0x1302, "iCOLOR2"), + new(0x1303, "iCOLOR3"), + new(0x0200, "NUM1"), + new(0x0201, "NUM2"), + new(0x0202, "NUM3"), + new(0x0203, "NUM4"), + new(0x0204, "NUM5"), + new(0x0205, "NUM6"), + new(0x0206, "NUM7"), + new(0x0207, "NUM8"), + new(0x0208, "NUM9"), + ]; + + public static readonly TextVariableCode[] VariableCodes_AO = + [ + new(0xFF00, "COLOR"), + new(0x0100, "TRNAME"), + new(0x0101, "PKNAME"), + new(0x0102, "PKNICK"), + new(0x0103, "TYPE"), + new(0x0105, "LOCATION"), + new(0x0106, "ABILITY"), + new(0x0107, "MOVE"), + new(0x0108, "ITEM1"), + new(0x0109, "ITEM2"), + new(0x010A, "sTRBAG"), + new(0x010B, "BOX"), + new(0x010D, "EVSTAT"), + new(0x0110, "OPOWER"), + new(0x0127, "RIBBON"), + new(0x0134, "MIINAME"), + new(0x013E, "WEATHER"), + new(0x0189, "TRNICK"), + new(0x018A, "1stchrTR"), + new(0x018B, "SHOUTOUT"), + new(0x018E, "BERRY"), + new(0x018F, "REMFEEL"), + new(0x0190, "REMQUAL"), + new(0x0191, "WEBSITE"), + new(0x019C, "CHOICECOS"), + new(0x01A1, "GSYNCID"), + new(0x0192, "PRVIDSAY"), + new(0x0193, "BTLTEST"), + new(0x0195, "GENLOC"), + new(0x0199, "CHOICEFOOD"), + new(0x019A, "HOTELITEM"), + new(0x019B, "TAXISTOP"), + new(0x019F, "MAISTITLE"), + new(0x1000, "ITEMPLUR0"), + new(0x1001, "ITEMPLUR1"), + new(0x1100, "GENDBR"), + new(0x1101, "NUMBRNCH"), + new(0x1302, "iCOLOR2"), + new(0x1303, "iCOLOR3"), + new(0x0200, "NUM1"), + new(0x0201, "NUM2"), + new(0x0202, "NUM3"), + new(0x0203, "NUM4"), + new(0x0204, "NUM5"), + new(0x0205, "NUM6"), + new(0x0206, "NUM7"), + new(0x0207, "NUM8"), + new(0x0208, "NUM9"), + ]; + + public static readonly TextVariableCode[] VariableCodes_SM = + [ + new(0xFF00, "COLOR"), + new(0x0100, "TRNAME"), + new(0x0101, "PKNAME"), + new(0x0102, "PKNICK"), + new(0x0103, "TYPE"), + new(0x0105, "LOCATION"), + new(0x0106, "ABILITY"), + new(0x0107, "MOVE"), + new(0x0108, "ITEM1"), + new(0x0109, "ITEM2"), + new(0x010A, "sTRBAG"), + new(0x010B, "BOX"), + new(0x010D, "EVSTAT"), + new(0x0110, "OPOWER"), + new(0x0127, "RIBBON"), + new(0x0134, "MIINAME"), + new(0x013E, "WEATHER"), + new(0x0189, "TRNICK"), + new(0x018A, "1stchrTR"), + new(0x018B, "SHOUTOUT"), + new(0x018E, "BERRY"), + new(0x018F, "REMFEEL"), + new(0x0190, "REMQUAL"), + new(0x0191, "WEBSITE"), + new(0x019C, "CHOICECOS"), + new(0x01A1, "GSYNCID"), + new(0x0192, "PRVIDSAY"), + new(0x0193, "BTLTEST"), + new(0x0195, "GENLOC"), + new(0x0199, "CHOICEFOOD"), + new(0x019A, "HOTELITEM"), + new(0x019B, "TAXISTOP"), + new(0x019F, "MAISTITLE"), + new(0x1000, "ITEMPLUR0"), + new(0x1001, "ITEMPLUR1"), + new(0x1100, "GENDBR"), + new(0x1101, "NUMBRNCH"), + new(0x1302, "iCOLOR2"), + new(0x1303, "iCOLOR3"), + new(0x0200, "NUM1"), + new(0x0201, "NUM2"), + new(0x0202, "NUM3"), + new(0x0203, "NUM4"), + new(0x0204, "NUM5"), + new(0x0205, "NUM6"), + new(0x0206, "NUM7"), + new(0x0207, "NUM8"), + new(0x0208, "NUM9"), + ]; +} \ No newline at end of file diff --git a/pk3DS.Core/ImageUtil.cs b/pk3DS.Core/ImageUtil.cs new file mode 100644 index 0000000000..351784d6f2 --- /dev/null +++ b/pk3DS.Core/ImageUtil.cs @@ -0,0 +1,174 @@ +using System; +using System.Drawing; +using System.Drawing.Imaging; +using System.Runtime.InteropServices; +using pk3DS.Core.CTR; +using pk3DS.Core.CTR.Images; +using static pk3DS.Core.CTR.Images.XLIMUtil; + +namespace pk3DS.Core; + +/// +/// Image Utility class using . +/// +public static class ImageUtil +{ + /// + /// Converts a to via the 32bit/pixel data. + /// + /// Image data + /// Crop the image area to the actual dimensions + /// Human visible data + public static Bitmap GetBitmap(this BXLIM bflim, bool crop = true) + { + if (bflim.Format is XLIMEncoding.ETC1 or XLIMEncoding.ETC1A4) + return GetBitmapETC(bflim, crop); + var data = bflim.GetImageData(crop); + return GetBitmap(data, bflim.Footer.Width, bflim.Footer.Height); + } + + public static Bitmap GetBitmap(byte[] data, int width, int height, PixelFormat format = PixelFormat.Format32bppArgb) + { + var bmp = new Bitmap(width, height, format); + var bmpData = bmp.LockBits(new Rectangle(0, 0, width, height), ImageLockMode.WriteOnly, format); + var ptr = bmpData.Scan0; + Marshal.Copy(data, 0, ptr, data.Length); + bmp.UnlockBits(bmpData); + return bmp; + } + + public static byte[] GetPixelData(Bitmap bitmap) + { + var argbData = new byte[bitmap.Width * bitmap.Height * 4]; + var bd = bitmap.LockBits(new Rectangle(0, 0, bitmap.Width, bitmap.Height), ImageLockMode.ReadOnly, bitmap.PixelFormat); + Marshal.Copy(bd.Scan0, argbData, 0, bitmap.Width * bitmap.Height * 4); + bitmap.UnlockBits(bd); + return argbData; + } + + public static Bitmap GetBitmapETC(BXLIM bxlim, bool crop = true) + { + bool etc1a4 = bxlim.Footer.Format == XLIMEncoding.ETC1A4; + byte[] data = bxlim.PixelData; + ETC1.CheckETC1Lib(); + + try + { + var width = Math.Max(NextLargestPow2(bxlim.Width), 16); + var height = Math.Max(NextLargestPow2(bxlim.Height), 16); + var img = new Bitmap(width, height); + img = DecodeETC(bxlim, img, data, etc1a4); + return crop ? CropBMP(bxlim, img) : img; + } + catch { return null; } + } + + public static Bitmap CropBMP(IXLIMHeader bclim, Bitmap img) + { + var cropRect = new Rectangle(0, 0, bclim.Width, bclim.Height); + var src = img; + var target = new Bitmap(cropRect.Width, cropRect.Height); + + using (Graphics g = Graphics.FromImage(target)) + { + g.DrawImage(src, new Rectangle(0, 0, target.Width, target.Height), + cropRect, + GraphicsUnit.Pixel); + } + Console.WriteLine($"Returning cropped {target.Width}"); + return target; + } + + private static Bitmap DecodeETC(IXLIMHeader bclim, Bitmap img, byte[] textureData, bool etc1A4) + { + /* http://jul.rustedlogic.net/thread.php?id=17312 + * Much of this code is taken/modified from Tharsis. Thank you to Tharsis's creator, xdaniel. + * https://github.com/xdanieldzd/Tharsis + */ + + /* Get compressed data & handle to it */ + + //textureData = switchEndianness(textureData, 0x10); + ushort[] input = new ushort[textureData.Length / sizeof(ushort)]; + Buffer.BlockCopy(textureData, 0, input, 0, textureData.Length); + GCHandle pInput = GCHandle.Alloc(input, GCHandleType.Pinned); + + /* Marshal data around, invoke ETC1.dll for conversion, etc */ + uint size1 = 0; + var w = (ushort)img.Width; + var h = (ushort)img.Height; + + ETC1.ConvertETC1(IntPtr.Zero, ref size1, IntPtr.Zero, w, h, etc1A4); // true = etc1a4, false = etc1 + uint[] output = new uint[size1]; + GCHandle pOutput = GCHandle.Alloc(output, GCHandleType.Pinned); + ETC1.ConvertETC1(pOutput.AddrOfPinnedObject(), ref size1, pInput.AddrOfPinnedObject(), w, h, etc1A4); + pOutput.Free(); + pInput.Free(); + + /* Unscramble if needed // could probably be done in ETC1Lib.dll, it's probably pretty ugly, but whatever... */ + /* Non-square code blocks could need some cleanup, verification, etc. as well... */ + uint[] finalized = new uint[output.Length]; + + // Act if it's square because BCLIM swizzling is stupid + Array.Copy(output, 0, finalized, 0, finalized.Length); + + byte[] tmp = new byte[finalized.Length]; + Buffer.BlockCopy(finalized, 0, tmp, 0, tmp.Length); + byte[] imgData = tmp; + + for (int i = 0; i < w; i++) + { + for (int j = 0; j < h; j++) + { + int k = (j + (i * img.Height)) * 4; + img.SetPixel(i, j, Color.FromArgb(imgData[k + 3], imgData[k], imgData[k + 1], imgData[k + 2])); + } + } + if (bclim is BFLIM) + return img; + + // Image is 13 instead of 12 + // 24 34 + img.RotateFlip(RotateFlipType.Rotate90FlipX); + if (w > h) + { + // Image is now in appropriate order, but the shifting is messed up. Let's fix that. + var img2 = new Bitmap(Math.Max(NextLargestPow2(bclim.Width), 16), Math.Max(NextLargestPow2(bclim.Height), 16)); + for (int y = 0; y < Math.Max(NextLargestPow2(bclim.Width), 16); y += 8) + { + for (int x = 0; x < Math.Max(NextLargestPow2(bclim.Height), 16); x++) + { + for (int j = 0; j < 8; j++) + // Treat every 8 vertical pixels as 1 pixel for purposes of calculation, add to offset later. + { + int x1 = (x + (y / 8 * h)) % img2.Width; // Reshift x + int y1 = (x + (y / 8 * h)) / img2.Width * 8; // Reshift y + img2.SetPixel(x1, y1 + j, img.GetPixel(x, y + j)); // Reswizzle + } + } + } + return img2; + } + + if (h > w) + { + var img2 = new Bitmap(Math.Max(NextLargestPow2(bclim.Width), 16), Math.Max(NextLargestPow2(bclim.Height), 16)); + for (int y = 0; y < Math.Max(NextLargestPow2(bclim.Width), 16); y += 8) + { + for (int x = 0; x < Math.Max(NextLargestPow2(bclim.Height), 16); x++) + { + for (int j = 0; j < 8; j++) + // Treat every 8 vertical pixels as 1 pixel for purposes of calculation, add to offset later. + { + int x1 = x % img2.Width; // Reshift x + int y1 = (x + (y / 8 * h)) / img2.Width * 8; // Reshift y + img2.SetPixel(x1, y1 + j, img.GetPixel(x, y + j)); // Reswizzle + } + } + } + return img2; + } + + return img; + } +} \ No newline at end of file diff --git a/pk3DS.Core/Legality/Legal.cs b/pk3DS.Core/Legality/Legal.cs index e51489ee8a..274707c9a6 100644 --- a/pk3DS.Core/Legality/Legal.cs +++ b/pk3DS.Core/Legality/Legal.cs @@ -1,230 +1,577 @@ -using System.Linq; +using System.Collections.Generic; +using System.Linq; -namespace pk3DS.Core +namespace pk3DS.Core; + +public static partial class Legal { - public static partial class Legal - { - public static readonly ushort[] Mega_XY = - { - 3,6,9,65,80, - 115,127,130,142,150,181, - 212,214,229,248,282, - 303,306,308,310,354,359,380,381, - 445,448,460, - }; - public static readonly ushort[] Mega_ORAS = Mega_XY.Concat(new ushort[] + public static readonly ushort[] Mega_XY = + [ + 003, 006, 009, 065, 080, 115, 127, 130, 142, 150, + 181, 212, 214, 229, 248, + 257, 282, 303, 306, 308, 310, 354, 359, 380, 381, + 445, 448, 460, + ]; + + public static readonly ushort[] Mega_ORAS = + [ + .. Mega_XY, + .. new ushort[] { - 15,18,94, - 208,254,257,260, - 302,319,323,334,362,373,376,384, - 428,475, + 015, 018, 094, + 208, + 254, 260, 302, 319, 323, 334, 362, 373, 376, 384, + 428, 475, 531, - 719 - }).ToArray(); - public static readonly int[] SpecialClasses_XY = + 719, + }, + ]; + + public static readonly int[] SpecialClasses_XY = + [ + #region Classes + 000, // Pokémon Trainer + 001, // Pokémon Trainer + 004, // Leader + 018, // Team Flare + 019, // Team Flare + 020, // Team Flare + 021, // Team Flare + 022, // Team Flare + 035, // Elite Four + 036, // Elite Four + 037, // Elite Four + 038, // Elite Four + 039, // Leader + 040, // Leader + 041, // Leader + 042, // Leader + 043, // Leader + 044, // Leader + 045, // Leader + 053, // Champion + 055, // Pokémon Trainer + 056, // Pokémon Trainer + 057, // Pokémon Trainer + 064, // Battle Chatelaine + 065, // Battle Chatelaine + 066, // Battle Chatelaine + 067, // Battle Chatelaine + 081, // Team Flare + 102, // Pokémon Trainer + 103, // Pokémon Trainer + 104, // Pokémon Trainer + 105, // Pokémon Professor + 139, // Marchioness + 140, // Marquis + 141, // Marchioness + 142, // Marquis + 143, // Marquis + 144, // Marchioness + 145, // Marchioness + 146, // Marquis + 151, // Grand Duchess + 160, // Pokémon Trainer + 161, // Pokémon Trainer + 170, // Pokémon Trainer + 171, // Pokémon Trainer + 172, // Pokémon Trainer + 173, // Team Flare + 174, // Team Flare + 175, // Team Flare Boss + 176, // Successor + 177, // Leader + #endregion + ]; + + public static readonly int[] SpecialClasses_ORAS = + [ + #region Classes + 064, // Battle Chatelaine + 065, // Battle Chatelaine + 066, // Battle Chatelaine + 067, // Battle Chatelaine + 127, // Pokémon Trainer + 128, // Pokémon Trainer + 174, // Aqua Leader + 175, // Aqua Admin + 178, // Magma Leader + 180, // Magma Admin + 182, // Magma Admin + 186, // Aqua Admin + 187, // Magma Admin + 192, // Pokémon Trainer + 194, // Elite Four + 195, // Elite Four + 196, // Elite Four + 197, // Elite Four + 198, // Champion + 200, // Leader + 201, // Leader + 202, // Leader + 203, // Leader + 204, // Leader + 205, // Leader + 206, // Leaders + 207, // Leader + 219, // Pokémon Trainer + 221, // Lorekeeper + 232, // Pokémon Trainer + 233, // Pokémon Trainer + 234, // Pokémon Trainer + 236, // Secret Base Expert + 267, // Pokémon Trainer + 268, // Sootopolitan + 270, // Pokémon Trainer + 271, // Pokémon Trainer + 272, // Pokémon Trainer + 273, // Elite Four + 274, // Elite Four + 275, // Elite Four + 276, // Elite Four + 277, // Champion + 278, // Pokémon Trainer + 279, // Pokémon Trainer + #endregion + ]; + + public static readonly int[] SpecialClasses_SM = + [ + #region Classes + 000, // Pokémon Trainer + 001, // Pokémon Trainer + 030, // Pokémon Trainer + 031, // Island Kahuna + 038, // Captain + 040, // Pokémon Trainer + 041, // Pokémon Trainer + 043, // Captain + 044, // Captain + 045, // Captain + 046, // Captain + 047, // Captain + 048, // Captain + 049, // Island Kahuna + 050, // Island Kahuna + 051, // Island Kahuna + 070, // Team Skull + 071, // Aether President + 072, // Aether Branch Chief + 076, // Team Skull Boss + 077, // Pokémon Trainer + 078, // Team Skull Admin + 079, // Pokémon Trainer + 080, // Elite Four + 081, // Pokémon Trainer + 082, // Aether President + 083, // Pokémon Trainer + 084, // Pokémon Trainer + 085, // Pokémon Trainer + 086, // Pokémon Trainer + 087, // Pokémon Trainer + 088, // Pokémon Trainer + 089, // Pokémon Trainer + 090, // Pokémon Trainer + 091, // Pokémon Trainer + 092, // Pro Wrestler + 093, // Pokémon Trainer + 097, // Pokémon Trainer + 098, // Pokémon Trainer + 099, // Pokémon Trainer + 100, // Pokémon Trainer + 101, // Pokémon Trainer + 102, // Pokémon Trainer + 103, // Pokémon Trainer + 104, // Pokémon Trainer + 105, // Pokémon Trainer + 106, // Pokémon Trainer + 107, // Elite Four + 108, // Pokémon Trainer + 109, // Elite Four + 110, // Elite Four + 111, // Pokémon Professor + 128, // Pokémon Trainer + 139, // GAME FREAK + 140, // Pokémon Trainer + 141, // Island Kahuna + 142, // Captain + 143, // Pokémon Trainer + 150, // Pokémon Trainer + 151, // Captain + 152, // Captain + 153, // Captain + 154, // Pokémon Professor + 164, // Island Kahuna + 166, // Pokémon Trainer + 167, // Pokémon Trainer + 168, // Pokémon Trainer + 169, // Pokémon Trainer + 170, // Pokémon Trainer + 171, // Pokémon Trainer + 165, // Pokémon Professor + 183, // Battle Legend + 184, // Battle Legend + 185, // Aether Foundation + #endregion + ]; + + public static readonly int[] SpecialClasses_USUM = + [ + #region Classes + 000, // Pokémon Trainer + 001, // Pokémon Trainer + 030, // Pokémon Trainer + 031, // Island Kahuna + 038, // Captain + 040, // Pokémon Trainer + 041, // Pokémon Trainer + 043, // Captain + 044, // Captain + 045, // Captain + 046, // Captain + 047, // Captain + 048, // Captain + 049, // Island Kahuna + 050, // Island Kahuna + 051, // Island Kahuna + 070, // Team Skull + 071, // Aether President + 072, // Aether Branch Chief + 076, // Team Skull Boss + 077, // Pokémon Trainer + 078, // Team Skull Admin + 079, // Pokémon Trainer + 080, // Elite Four + 081, // Pokémon Trainer + 082, // Aether President + 083, // Pokémon Trainer + 084, // Pokémon Trainer + 085, // Pokémon Trainer + 086, // Pokémon Trainer + 087, // Pokémon Trainer + 088, // Pokémon Trainer + 089, // Pokémon Trainer + 090, // Pokémon Trainer + 091, // Pokémon Trainer + 092, // Pro Wrestler + 093, // Pokémon Trainer + 097, // Pokémon Trainer + 098, // Pokémon Trainer + 099, // Pokémon Trainer + 100, // Pokémon Trainer + 101, // Pokémon Trainer + 102, // Pokémon Trainer + 103, // Pokémon Trainer + 104, // Pokémon Trainer + 105, // Pokémon Trainer + 106, // Pokémon Trainer + 107, // Elite Four + 108, // Pokémon Trainer + 109, // Elite Four + 110, // Elite Four + 111, // Pokémon Professor + 128, // Pokémon Trainer + 139, // GAME FREAK + 140, // Pokémon Trainer + 141, // Island Kahuna + 142, // Captain + 143, // Pokémon Trainer + 150, // Pokémon Trainer + 151, // Captain + 152, // Captain + 153, // Captain + 154, // Pokémon Professor + 164, // Island Kahuna + 166, // Pokémon Trainer + 167, // Pokémon Trainer + 168, // Pokémon Trainer + 169, // Pokémon Trainer + 170, // Pokémon Trainer + 171, // Pokémon Trainer + 165, // Pokémon Professor + 183, // Battle Legend + 184, // Battle Legend + 185, // Aether Foundation + 186, // Pokémon Trainer + 187, // Pokémon Trainer + 188, // Pokémon Trainer + 189, // Pokémon Trainer + 190, // Pokémon Trainer + 191, // Elite Four + 192, // Ultra Recon Squad + 193, // Ultra Recon Squad + 194, // Pokémon Trainer + 198, // Team Aqua + 199, // Team Galactic + 200, // Team Magma + 201, // Team Plasma + 202, // Team Flare + 205, // GAME FREAK + 206, // Team Rainbow Rocket + 207, // Pokémon Trainer + 219, // Pokémon Trainer + 220, // Aether President + 221, // Pokémon Trainer + 222, // Pokémon Trainer + #endregion + ]; + + public static readonly int[] Model_XY = + [ + #region Models + 018, // Aliana + 019, // Bryony + 020, // Celosia + 021, // Mable + 022, // Xerosic + 055, // Shauna + 056, // Tierno + 057, // Trevor + 081, // Lysandre + 102, // AZ + 103, // Calem + 104, // Serena + 105, // Sycamore + 175, // Lysandre (Mega Ring) + #endregion + ]; + + public static readonly int[] Model_AO = + [ + #region Models + 127, // Brendan + 128, // May + 174, // Archie + 178, // Maxie + 192, // Wally + 198, // Steven + 219, // Steven (Multi Battle) + 221, // Zinnia (Lorekeeper) + 267, // Zinnia + 272, // Wally (Mega Pendant) + 277, // Steven (Rematch) + 278, // Brendan (Mega Bracelet) + 279, // May (Mega Bracelet) + #endregion + ]; + + public static readonly int[] Z_Moves = + [ + 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, + 695, 696, 697, 698, 699, 700, 701, 702, 703, 719, 723, 724, 725, 726, 727, 728, + ]; + + public static readonly int[] ImportantTrainers_SM = + [ + 012, 013, 014, 023, 052, 074, 075, 076, 077, 078, 079, 089, 090, 129, 131, 132, 138, 144, 146, 149, 152, 153, 154, 155, 156, 158, 159, 160, 164, 167, 215, 216, 217, 218, 219, 220, 221, + 222, 235, 236, 238, 239, 240, 241, 349, 350, 351, 352, 356, 357, 358, 359, 360, 392, 396, 398, 400, 401, 403, 405, 409, 410, 412, 413, 414, 415, 416, 417, 418, 419, 435, 438, 439, 440, + 441, 447, 448, 449, 450, 451, 452, 467, 477, 478, 479, 480, 481, 482, 483, 484, + ]; + + public static readonly int[] ImportantTrainers_USUM = + [ + 012, 013, 014, 023, 052, 074, 075, 076, 077, 078, 079, 089, 090, 131, 132, 138, 144, 146, 149, 153, 154, 156, 159, 160, 215, 216, 217, 218, 219, 220, 221, 222, 235, 236, 238, 239, 240, + 241, 350, 351, 352, 356, 358, 359, 396, 398, 401, 405, 409, 410, 412, 415, 416, 417, 418, 419, 438, 439, 440, 441, 447, 448, 449, 450, 451, 452, 477, 478, 479, 480, 489, 490, 494, 495, + 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 541, 542, 543, 555, 556, 557, 558, 559, 560, 561, 562, 572, 573, 578, 580, 582, 583, 623, 630, 644, 645, 647, 648, 649, + 650, 651, 652, + ]; + + public static readonly int[][] BasicStarters = + [ + [001, 004, 007, 010, 013, 016, 029, 032, 041, 043, 060, 063, 066, 069, 074, 081, 092, 111, 116, 137, 147], + [152, 155, 158, 172, 173, 174, 175, 179, 187, 220, 239, 240, 246], + [252, 255, 258, 265, 270, 273, 280, 287, 293, 298, 304, 328, 355, 363, 371, 374], + [387, 390, 393, 396, 403, 406, 440, 443], + [495, 498, 501, 506, 519, 524, 532, 535, 540, 543, 551, 574, 577, 582, 599, 602, 607, 610, 633], + [650, 653, 656, 661, 664, 669, 679, 704], + [722, 725, 728, 731, 736, 761, 782, 789], + ]; + + public static readonly int[] BasicStarters_6 = [.. BasicStarters[0] + , .. BasicStarters[1], .. BasicStarters[2], .. BasicStarters[3], .. BasicStarters[4], .. BasicStarters[5]]; + + public static readonly int[] BasicStarters_7 = [.. BasicStarters_6, .. BasicStarters[6]]; + + public static readonly int[] FinalEvolutions_6 = + [ + 003, 006, 009, 012, 015, 018, 020, 022, 024, 026, 028, 031, 034, 036, 038, 040, 045, 047, 049, 051, 053, 055, 057, 059, 062, 065, 068, 071, 073, 076, 078, 080, 083, 085, 087, 089, 091, + 094, 097, 099, 101, 103, 105, 106, 107, 110, 115, 119, 121, 122, 124, 127, 128, 130, 131, 132, 134, 135, 136, 139, 141, 142, 143, 149, 154, 157, 160, 162, 164, 166, 168, 169, 171, 178, + 181, 182, 184, 185, 186, 189, 192, 195, 196, 197, 199, 201, 202, 203, 205, 206, 208, 210, 211, 212, 213, 214, 217, 219, 222, 224, 225, 226, 227, 229, 230, 232, 234, 235, 237, 241, 242, + 248, 254, 257, 260, 262, 264, 267, 269, 272, 275, 277, 279, 282, 284, 286, 289, 291, 292, 295, 297, 301, 302, 303, 306, 308, 310, 311, 312, 313, 314, 317, 319, 321, 323, 324, 326, 327, + 330, 332, 334, 335, 336, 337, 338, 340, 342, 344, 346, 348, 350, 351, 352, 354, 357, 358, 359, 362, 365, 367, 368, 369, 370, 373, 376, 389, 392, 395, 398, 400, 402, 405, 407, 409, 411, + 413, 414, 416, 417, 419, 421, 423, 424, 426, 428, 429, 430, 432, 435, 437, 441, 442, 445, 448, 450, 452, 454, 455, 457, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, + 473, 474, 475, 476, 477, 478, 479, 497, 500, 503, 505, 508, 510, 512, 514, 516, 518, 521, 523, 526, 528, 530, 531, 534, 537, 538, 539, 542, 545, 547, 549, 550, 553, 555, 556, 558, 560, + 561, 563, 565, 567, 569, 571, 573, 576, 579, 581, 584, 586, 587, 589, 591, 593, 594, 596, 598, 601, 604, 606, 609, 612, 614, 615, 617, 618, 620, 621, 623, 625, 626, 628, 630, 631, 632, + 635, 637, 652, 655, 658, 660, 663, 666, 668, 671, 673, 675, 676, 678, 681, 683, 685, 687, 689, 691, 693, 695, 697, 699, 700, 701, 702, 703, 706, 707, 709, 711, 713, 715, + ]; + + public static readonly int[] FinalEvolutions_7 = + [ + .. FinalEvolutions_6, + .. new[] { - #region Classes - 000, // Pokémon Trainer - 001, // Pokémon Trainer - 004, // Leader - 035, // Elite Four - 036, // Elite Four - 037, // Elite Four - 038, // Elite Four - 039, // Leader - 040, // Leader - 041, // Leader - 042, // Leader - 043, // Leader - 044, // Leader - 045, // Leader - 053, // Champion - 055, // Pokémon Trainer - 056, // Pokémon Trainer - 057, // Pokémon Trainer - 064, // Battle Chatelaine - 065, // Battle Chatelaine - 066, // Battle Chatelaine - 067, // Battle Chatelaine - 102, // Pokémon Trainer - 103, // Pokémon Trainer - 104, // Pokémon Trainer - 105, // Pokémon Professor - 151, // Grand Duchess - 160, // Pokémon Trainer - 161, // Pokémon Trainer - 170, // Pokémon Trainer - 171, // Pokémon Trainer - 172, // Pokémon Trainer - 173, // Team Flare - 174, // Team Flare - 175, // Team Flare Boss - 176, // Successor - 177, // Leader - #endregion - }; - public static readonly int[] SpecialClasses_ORAS = + 724, 727, 730, 733, 735, 738, 740, 741, 743, 745, 746, 748, 750, 752, 754, 756, 758, 760, 763, 764, 765, 766, 768, 770, 771, 774, 775, 776, 777, 779, 780, 781, 784, + }, + ]; + + public static readonly int[] Legendary_6 = + [ + #region Legendary + 144, // Articuno + 145, // Zapdos + 146, // Moltres + 150, // Mewtwo + 243, // Raikou + 244, // Entei + 245, // Suicune + 249, // Lugia + 250, // Ho-Oh + 377, // Regirock + 378, // Regice + 379, // Registeel + 380, // Latias + 381, // Latios + 382, // Kyogre + 383, // Groudon + 384, // Rayquaza + 480, // Uxie + 481, // Mesprit + 482, // Azelf + 483, // Dialga + 484, // Palkia + 485, // Heatran + 486, // Regigigas + 487, // Giratina + 488, // Cresselia + 638, // Cobalion + 639, // Terrakion + 640, // Virizion + 641, // Tornadus + 642, // Thundurus + 643, // Reshiram + 644, // Zekrom + 645, // Landorus + 646, // Kyurem + 716, // Xerneas + 717, // Yveltal + 718, // Zygarde + #endregion + ]; + + public static readonly int[] Legendary_SM = + [ + .. Legendary_6, + .. new[] { - #region Classes - 000, // Pokémon Trainer - 001, // Pokémon Trainer - 004, // Leader - 035, // Elite Four - 036, // Elite Four - 037, // Elite Four - 038, // Elite Four - 039, // Leader - 040, // Leader - 041, // Leader - 042, // Leader - 043, // Leader - 044, // Leader - 045, // Leader - 053, // Champion - 055, // Pokémon Trainer - 056, // Pokémon Trainer - 057, // Pokémon Trainer - 064, // Battle Chatelaine - 065, // Battle Chatelaine - 066, // Battle Chatelaine - 067, // Battle Chatelaine - 081, // Team Flare Boss - 102, // Pokémon Trainer - 103, // Pokémon Trainer - 104, // Pokémon Trainer - 105, // Pokémon Professor - 109, // Pokémon Trainer - 110, // Pokémon Trainer - 119, // Pokémon Trainer - 120, // Pokémon Trainer - 121, // Pokémon Trainer - 124, // Team Flare Boss - 125, // Successor - 126, // Leader - 127, // Pokémon Trainer - 128, // Pokémon Trainer - 174, // Aqua Leader - 178, // Magma Leader - 192, // Pokémon Trainer - 194, // Elite Four - 195, // Elite Four - 196, // Elite Four - 197, // Elite Four - 198, // Champion - 200, // Leader - 201, // Leader - 202, // Leader - 203, // Leader - 204, // Leader - 205, // Leader - 206, // Leaders - 207, // Leader - 219, // Pokémon Trainer - 232, // Pokémon Trainer - 233, // Pokémon Trainer - 234, // Pokémon Trainer - 267, // Pokémon Trainer - 268, // Sootopolitan - 270, // Pokémon Trainer - 271, // Pokémon Trainer - 272, // Pokémon Trainer - 273, // Elite Four - 274, // Elite Four - 275, // Elite Four - 276, // Elite Four - 277, // Champion - 278, // Pokémon Trainer - 279, // Pokémon Trainer + #region Legendary + 773, // Silvally + 785, // Tapu Koko + 786, // Tapu Lele + 787, // Tapu Bulu + 788, // Tapu Fini + 791, // Solgaleo + 792, // Lunala + 793, // Nihilego + 794, // Buzzwole + 795, // Pheromosa + 796, // Xurkitree + 797, // Celesteela + 798, // Kartana + 799, // Guzzlord + 800, // Necrozma #endregion - }; + }, + ]; - public static readonly int[] SpecialClasses_SM = - { - 030, // Pokémon Trainer: Hau - 031, // Island Kahuna: Hala - 038, // Captain: Ilima - 042, // Trial Guide: Ben - 044, // Captain: Lana - 045, // Captain: Mallow - 049, // Island Kahuna: Olivia - 051, // Island Kahuna: Hapu - 071, // Aether President: Lusamine - 072, // Aether Branch Chief: Faba - 076, // Team Skull Boss: Guzma - 078, // Team Skull Admin: Plumeria - 079, // Pokémon Trainer: Plumeria - 080, // Elite Four: Kahili - 081, // Pokémon Trainer: [~ 157] - 082, // Aether President: Lusamine - 083, // Pokémon Trainer: Red - 084, // Pokémon Trainer: Blue - 085, // Pokémon Trainer: Sina - 086, // Pokémon Trainer: Dexio - 088, // Pokémon Trainer: Anabel - 092, // Pro Wrestler: The Royal - 093, // Pokémon Trainer: Molayne - 099, // Pokémon Trainer: Molayne - 100, // Pokémon Trainer: Hau - 101, // Pokémon Trainer: Hau - 102, // Pokémon Trainer: Gladion - 103, // Pokémon Trainer: Gladion - 107, // Elite Four: Acerola - 109, // Elite Four: Hala - 110, // Elite Four: Olivia - 111, // Pokémon Professor: Kukui - 139, // GAME FREAK: Morimoto - 141, // Island Kahuna: Nanu - 142, // Captain: Sophocles - 143, // Pokémon Trainer: Ryuki - 153, // Captain: Mina - 162, // Aether Foundation: Faba - 164, // Island Kahuna: Hapu - 165, // Pokémon Professor: Kukui - 185, // Aether Foundation: Faba - }; - - public static readonly int[] Model_XY = + public static readonly int[] Legendary_USUM = + [ + .. Legendary_SM, + .. new[] { - 018, // Team Flare (Aliana) - 019, // Team Flare (Bryony) - 020, // Team Flare (Celosia) - 021, // Team Flare (Mable) - 022, // Team Flare (Xerosic) - 055, // Pokémon Trainer (Shauna) - 056, // Pokémon Trainer (Tierno) - 057, // Pokémon Trainer (Trevor) - 077, // Team Flare (Admin)* - 078, // Team Flare (Admin) - 079, // Team Flare (Grunt)* - 080, // Team Flare (Grunt) - 081, // Team Flare (Lysandre) - 102, // Pokémon Trainer (AZ) - 103, // Pokémon Trainer (Calem) - 104, // Pokémon Trainer (Serena) - 105, // Pokémon Profoessor (Sycamore) - 175, // Team Flare Boss (Lysandre) - // * = Female - }; - public static readonly int[] Model_AO = + #region Legendary + 804, // Naganadel + 805, // Stakataka + 806, // Blacephalon + #endregion + }, + ]; + + public static readonly int[] Mythical_6 = + [ + #region Mythical + 151, // Mew + 251, // Celebi + 385, // Jirachi + 386, // Deoxys + 489, // Phione + 490, // Manaphy + 491, // Darkrai + 492, // Shaymin + 493, // Arceus + 494, // Victini + 647, // Keldeo + 648, // Meloetta + 649, // Genesect + 719, // Diancie + 720, // Hoopa + 721, // Volcanion + #endregion + ]; + + public static readonly int[] Mythical_SM = + [ + .. Mythical_6, + .. new[] { - 127, // Pokémon Trainer (Brendan) - 128, // Pokémon Trainer (May) - 174, // Aqua Leader (Archie) - 178, // Magma Leader (Maxie) - 192, // Pokémon Trainer (Wally) - 219, // Pokémon Trainer (Steven) - 221, // Lorekeeper (Zinnia) - 267, // Pokémon Trainer (Zinnia) - 272, // Pokémon Trainer (Wally)* - 278, // Pokémon Trainer (Brendan)* - 279, // Pokémon Trainer (May)* - // * = has Mega Pendant/Bracelet - }; - public static readonly int[] Z_Moves = + #region Mythical + 801, // Magearna + 802, // Marshadow + #endregion + }, + ]; + + public static readonly int[] Mythical_USUM = + [ + .. Mythical_SM, + .. new[] { - 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, - 695, 696, 697, 698, 699, 700, 701, 702, 703, - 719, - }; - } -} + #region Mythical + 807, // Zeraora + #endregion + }, + ]; + + public static readonly HashSet BattleForms = + [ + 351, // Castform + 421, // Cherrim + 555, // Darmanitan + 648, // Meloetta + 681, // Aegislash + 716, // Xerneas + 746, // Wishiwashi + 778, // Mimikyu + ]; + + public static readonly HashSet BattleMegas = + [ + 003, 006, 009, 065, 080, 115, 127, 130, 142, 150, + 181, 212, 214, 229, 248, + 257, 282, 303, 306, 308, 310, 354, 359, 380, 381, + 445, 448, 460, + + // AO + 015, 018, 094, + 208, + 254, 260, 302, 319, 323, 334, 362, 373, 376, 384, + 428, 475, + 531, + 719, + + // USUM + 800, // Ultra Necrozma + ]; + + public static readonly HashSet BattlePrimals = [382, 383]; + public static readonly HashSet BattleExclusiveForms = [.. BattleForms.Concat(BattleMegas.Concat(BattlePrimals))]; +} \ No newline at end of file diff --git a/pk3DS.Core/Legality/Tables6.cs b/pk3DS.Core/Legality/Tables6.cs index 35d063b8ef..f3ec3a07b9 100644 --- a/pk3DS.Core/Legality/Tables6.cs +++ b/pk3DS.Core/Legality/Tables6.cs @@ -1,541 +1,558 @@ using System.Collections.Generic; using System.Linq; -namespace pk3DS.Core +namespace pk3DS.Core; + +public static partial class Legal { - public static partial class Legal - { - public const int MaxSpeciesID_6 = 721; - public const int MaxMoveID_6_XY = 617; - public const int MaxMoveID_6_AO = 621; - public const int MaxItemID_6_XY = 717; - public const int MaxItemID_6_AO = 775; - public const int MaxAbilityID_6_XY = 188; - public const int MaxAbilityID_6_AO = 191; - public const int MaxBallID_6 = 0x19; - public const int MaxGameID_6 = 27; // OR - - #region Met Locations - public static readonly int[] Met_XYc = {0, 60002, 30002,}; - - public static readonly int[] Met_XY_0 = - { - /* XY */ 2, 6, 8, 10, 12, 14, 16, 17, 18, 20, 22, 24, 26, 28, 30, 32, - 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 82, 84, 86, 88, - 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, - 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, /* ORAS */ 170, 172, - 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, - 218, 220, 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256, 258, 260, - 262, 264, 266, 268, 270, 272, 274, 276, 278, 280, 282, 284, 286, 288, 290, 292, 294, 296, 298, 300, 302, 304, - 306, 308, 310, 312, 314, 316, 318, 320, 322, 324, 326, 328, 330, 332, 334, 336, 338, 340, 342, 344, 346, 348, - 350, 352, 354, - }; - - public static readonly int[] Met_XY_3 = - { - 30001, 30003, 30004, 30005, 30006, 30007, 30008, 30009, 30010, 30011, - }; - - public static readonly int[] Met_XY_4 = - { - 40001, 40002, 40003, 40004, 40005, 40006, 40007, 40008, 40009, 40010, - 40011, 40012, 40013, 40014, 40015, 40016, 40017, 40018, 40019, 40020, 40021, 40022, 40023, 40024, 40025, - 40026, 40027, 40028, 40029, 40030, 40031, 40032, 40033, 40034, 40035, 40036, 40037, 40038, 40039, 40040, - 40041, 40042, 40043, 40044, 40045, 40046, 40047, 40048, 40049, 40050, 40051, 40052, 40053, 40054, 40055, - 40056, 40057, 40058, 40059, 40060, 40061, 40062, 40063, 40064, 40065, 40066, 40067, 40068, 40069, 40070, - 40071, 40072, 40073, 40074, 40075, 40076, 40077, 40078, 40079, - }; - - public static readonly int[] Met_XY_6 = {/* XY */ 60001, 60003, /* ORAS */ 60004,}; - - #endregion - - #region Inventory Pouch - - public static readonly ushort[] Pouch_Items_XY = - { - 001, 002, 003, 004, 005, 006, 007, 008, 009, 010, 011, 012, 013, 014, 015, 016, 055, 056, - 057, 058, 059, 060, 061, 062, 063, 064, 065, 066, 067, 068, 069, 070, 071, 072, 073, 074, 075, - 076, 077, 078, 079, 080, 081, 082, 083, 084, 085, 086, 087, 088, 089, 090, 091, 092, 093, 094, - 099, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 112, 116, 117, 118, 119, 135, 136, - 213, 214, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 492, 493, 494, 495, 496, 497, 498, 499, 500, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, - 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 571, - 572, 573, 576, 577, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 639, 640, 644, 646, - 647, 648, 649, 650, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, - 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, - 699, 704, 710, 711, 715, - }; - - public static readonly ushort[] Pouch_Items_AO = - { - 001, 002, 003, 004, 005, 006, 007, 008, 009, 010, 011, 012, 013, 014, 015, 016, 055, 056, - 057, 058, 059, 060, 061, 062, 063, 064, 068, 069, 070, 071, 072, 073, 074, 075, - 076, 077, 078, 079, 080, 081, 082, 083, 084, 085, 086, 087, 088, 089, 090, 091, 092, 093, 094, - 099, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 112, 116, 117, 118, 119, 135, 136, - 213, 214, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, - 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, - 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, - 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, - 492, 493, 494, 495, 496, 497, 498, 499, 500, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, - 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 571, - 572, 573, 576, 577, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 639, 640, 644, 646, - 647, 648, 649, 650, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, - 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, - 699, 704, 710, 711, 715, - - // ORAS - 534, 535, - 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 767, 768, 769, 770, - }; - - public static readonly ushort[] Pouch_Key_XY = - { - 216, 431, 442, 445, 446, 447, 450, 465, 466, 471, 628, - 629, 631, 632, 638, 641, 642, 643, 689, 695, 696, 697, 698, - 700, 701, 702, 703, 705, 706, 707, 712, 713, 714, - - // Illegal - 716, 717, // For the cheaters who want useless items... - }; - - public static readonly ushort[] Pouch_Key_AO = - { - 216, 445, 446, 447, 465, 466, 471, 628, - 629, 631, 632, 638, 697, - - // Illegal - 716, 717, 745, 746, 747, 748, 749, 750, // For the cheaters who want useless items... - - // ORAS - 457, 474, 503, - - 718, 719, - 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, - 730, 731, 732, 733, 734, 735, 736, 738, 739, - 740, 741, 742, 743, 744, - 751, 765, 766, 771, 772, 774, 775, - }; - - public static readonly ushort[] Pouch_TMHM_XY = - { - 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, - 418, 419, 618, 619, 620, 690, 691, 692, 693, 694, - - 420, 421, 422, 423, 424, - }; - - public static readonly ushort[] Pouch_TMHM_AO = - { - 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, - 418, 419, 618, 619, 620, 690, 691, 692, 693, 694, - - 420, 421, 422, 423, 424, - - // ORAS - 425, 737, - }; - - public static readonly ushort[] Pouch_Medicine_XY = - { - 017, 018, 019, 020, 021, 022, 023, 024, 025, 026, 027, 028, 029, 030, 031, 032, 033, - 034, 035, 036, 037, 038, 039, 040, 041, 042, 043, 044, 045, 046, 047, 048, 049, 050, 051, - 052, 053, 054, 134, 504, 565, 566, 567, 568, 569, 570, 571, 591, 645, 708, 709, - }; - - public static readonly ushort[] Pouch_Medicine_AO = - { - 017, 018, 019, 020, 021, 022, 023, 024, 025, 026, 027, 028, 029, 030, 031, 032, 033, - 034, 035, 036, 037, 038, 039, 040, 041, 042, 043, 044, 045, 046, 047, 048, 049, 050, 051, - 052, 053, 054, 134, 504, 565, 566, 567, 568, 569, 570, 571, 591, 645, 708, 709, - - //ORAS - 065, 066, 067 - }; - - public static readonly ushort[] Pouch_Berry_XY = - { - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, - 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, - 208, 209, 210, 211, 212, 686, 687, 688, - }; - - public static readonly ushort[] HeldItem_XY = new ushort[1].Concat(Pouch_Items_XY).Concat(Pouch_Medicine_XY).Concat(Pouch_Berry_XY).ToArray(); - public static readonly ushort[] HeldItem_AO = new ushort[1].Concat(Pouch_Items_AO).Concat(Pouch_Medicine_AO).Concat(Pouch_Berry_XY).ToArray(); - #endregion - - #region TMHM - - public static readonly int[] TMHM_AO = - { - 468, 337, 473, 347, 046, 092, 258, 339, 474, 237, - 241, 269, 058, 059, 063, 113, 182, 240, 355, 219, - 218, 076, 479, 085, 087, 089, 216, 091, 094, 247, - 280, 104, 115, 482, 053, 188, 201, 126, 317, 332, - 259, 263, 488, 156, 213, 168, 490, 496, 497, 315, - 211, 411, 412, 206, 503, 374, 451, 507, 510, 511, - 261, 512, 373, 153, 421, 371, 514, 416, 397, 148, - 444, 521, 086, 360, 014, 522, 244, 523, 524, 157, - 404, 525, 611, 398, 138, 447, 207, 214, 369, 164, - 430, 433, 528, 290, 555, 267, 399, 612, 605, 590, - - 15, 19, 57, 70, 127, 249, 291, - }; - - public static readonly int[] TMHM_XY = - { - 468, 337, 473, 347, 046, 092, 258, 339, 474, 237, - 241, 269, 058, 059, 063, 113, 182, 240, 355, 219, - 218, 076, 479, 085, 087, 089, 216, 091, 094, 247, - 280, 104, 115, 482, 053, 188, 201, 126, 317, 332, - 259, 263, 488, 156, 213, 168, 490, 496, 497, 315, - 211, 411, 412, 206, 503, 374, 451, 507, 510, 511, - 261, 512, 373, 153, 421, 371, 514, 416, 397, 148, - 444, 521, 086, 360, 014, 522, 244, 523, 524, 157, - 404, 525, 611, 398, 138, 447, 207, 214, 369, 164, - 430, 433, 528, 249, 555, 267, 399, 612, 605, 590, - - 15, 19, 57, 70, 127, - }; - - public static readonly int[] TypeTutor6 = {520, 519, 518, 338, 307, 308, 434, 620}; - - public static readonly int[][] Tutors_AO = - { - new[] {450, 343, 162, 530, 324, 442, 402, 529, 340, 067, 441, 253, 009, 007, 008}, - new[] {277, 335, 414, 492, 356, 393, 334, 387, 276, 527, 196, 401, 399, 428, 406, 304, 231}, - new[] {020, 173, 282, 235, 257, 272, 215, 366, 143, 220, 202, 409, 355, 264, 351, 352}, - new[] {380, 388, 180, 495, 270, 271, 478, 472, 283, 200, 278, 289, 446, 214, 285}, - }; - - #endregion - - public static readonly int[] EggLocations6 = {60002, 30002}; - public static readonly int[] ValidMet_XY = - { - 006, 008, 009, 010, 012, 013, 014, 016, 017, 018, 020, 021, 022, 024, 026, 028, 029, 030, 032, 034, 035, 036, - 038, 039, 040, 042, 043, 044, 046, 047, 048, 050, 051, 052, 054, 055, 056, 058, 060, 062, 063, 064, 066, 067, - 068, 069, 070, 072, 074, 075, 076, 078, 079, 082, 084, 085, 086, 088, 089, 090, 092, 093, 094, 096, 097, 098, - 100, 101, 102, 103, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 135, 136, - 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168 - }; - public static readonly int[] ValidMet_AO = - { - 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, - 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, - 244, 246, 248, 250, 252, 254, 256, 258, 260, 262, 264, 266, 268, 270, 272, 274, 276, 278, 280, 282, 284, 286, - 288, 290, 292, 294, 296, 298, 300, 302, 304, 306, 308, 310, 312, 314, 316, 318, 320, 322, 324, 326, 328, 330, - 332, 334, 336, 338, 340, 342, 344, 346, 348, 350, 352, 354 - }; - public static readonly int[] FriendSafari = - { - 190, 206, 216, 506, 294, 352, 531, 572, 113, 132, 133, 235, - 012, 046, 165, 415, 267, 284, 313, 314, 049, 127, 214, 666, - 262, 274, 624, 629, 215, 332, 342, 551, 302, 359, 510, 686, - 444, 611, 148, 372, 714, 621, 705, - 101, 417, 587, 702, 025, 125, 618, 694, 310, 404, 523, 596, - 175, 209, 281, 702, 039, 303, 682, 684, 035, 670, - 056, 067, 307, 619, 538, 539, 674, 236, 286, 297, 447, - 058, 077, 126, 513, 005, 218, 636, 668, 038, 654, 662, - 016, 021, 083, 084, 163, 520, 527, 581, 357, 627, 662, 701, - 353, 608, 708, 710, 356, 426, 442, 623, - 043, 114, 191, 511, 002, 541, 548, 586, 556, 651, 673, - 027, 194, 231, 328, 051, 105, 290, 323, 423, 536, 660, - 225, 361, 363, 459, 215, 614, 712, 087, 091, 131, 221, - 014, 044, 268, 336, 049, 168, 317, 569, 089, 452, 454, 544, - 063, 096, 326, 517, 202, 561, 677, 178, 203, 575, 578, - 299, 525, 557, 095, 219, 222, 247, 112, 213, 689, - 082, 303, 597, 205, 227, 375, 600, 437, 530, 707, - 098, 224, 400, 515, 008, 130, 195, 419, 061, 184, 657 - }; - public static readonly int[] CosplayPikachuMoves = { 309, 556, 577, 604, 560, 0 }; - public static readonly int[] WildPokeballs6 = { 0x01, 0x02, 0x03, 0x04, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F }; - - public static readonly int[] Ban_NoHidden6 = - { - //Not avaliable at Friend Safari or Horde Encounter - 669 + (2 << 11), //Flabébé-Orange - 670 + (2 << 11), //Floette-Orange - 671 + (2 << 11), //Florges-Orange - 669 + (4 << 11), //Flabébé-White - 670 + (4 << 11), //Floette-White - 671 + (4 << 11), //Florges-White - - 710 + (1 << 11), //Pumpkaboo-Small - 711 + (1 << 11), //Gourgeist-Small - 710 + (2 << 11), //Pumpkaboo-Large - 711 + (2 << 11), //Gourgeist-Large - //Super Size can be obtained as a Pumpkaboo from event distributions - }; - #region Ball Table - public static readonly int[] Inherit_Sport = - { - 010, 013, 046, 048, 123, 127, 265, 290, 314, 401, 415, - - 313, // Via Illumise - }; - public static readonly int[] Inherit_Safari = - { - 016, 019, 020, 021, 022, 023, 024, 025, 027, 029, 035, 039, 041, - 043, 046, 048, 050, 054, 055, 060, 063, 066, 069, 070, 074, 077, 079, 080, 083, 084, 088, 092, 095, 096, 098, - 099, 102, 104, 108, 109, 111, 113, 114, 115, 118, 122, 123, 125, 126, 127, 129, 131, 147, 161, 163, 165, 167, - 177, 179, 183, 187, 189, 190, 191, 193, 194, 198, 200, 202, 203, 204, 207, 209, 213, 214, 216, 223, 228, 229, - 231, 234, 235, 241, 246, 263, 264, 270, 271, 273, 283, 284, 285, 286, 288, 298, 299, 304, 305, 307, 308, 309, - 310, 314, 315, 316, 318, 324, 327, 328, 331, 332, 335, 336, 339, 341, 352, 353, 354, 355, 356, 357, 358, 363, - 364, 371, 372, 397, 399, 400, 403, 404, 406, 417, 418, 419, 433, 443, 447, 449, 451, 453, 455, - - 032, // Via Nidoran-F - 313, // Via Illumise - - 173, // Via Clefairy - 239, // Via Electabuzz - 240, // Via Magmar - 298, // Via Marill - 360, // Via Wobbuffet - 406, // Via Roselia - 433, // Via Chimecho - 439, // Via Mr. Mime - 440, // Via Chansey - }; - public static readonly int[] Inherit_Dream = - { - 010, 013, 016, 019, 021, 023, 027, 029, 037, 041, 043, 046, 048, 050, 052, 054, 056, 058, 060, 063, 066, 069, - 072, 074, 077, 079, 083, 084, 086, 088, 090, 092, 095, 096, 098, 102, 104, 108, 109, 111, 113, 114, 115, 116, - 118, 122, 123, 127, 129, 131, 133, 138, 140, 142, 143, 147, 161, 163, 165, 167, 170, 173, 174, 175, 177, 179, - 183, 185, 187, 190, 191, 193, 194, 198, 200, 202, 203, 204, 206, 207, 209, 211, 213, 214, 215, 216, 218, 220, - 222, 223, 225, 226, 227, 228, 231, 234, 235, 238, 239, 240, 241, 246, 261, 263, 265, 270, 273, 276, 278, 280, - 283, 285, 287, 290, 293, 296, 299, 300, 302, 303, 304, 307, 309, 311, 312, 314, 315, 316, 318, 320, 322, 324, - 325, 327, 328, 331, 333, 335, 336, 339, 341, 345, 347, 349, 351, 352, 353, 355, 357, 358, 359, 361, 363, 366, - 369, 370, 371, 396, 399, 401, 403, 408, 410, 412, 415, 417, 418, 420, 422, 425, 427, 431, 434, 441, 442, 443, - 447, 449, 451, 453, 455, 456, 459, 517, 519, 525, 529, 531, 533, 535, 545, 546, 548, 550, 553, 556, 558, 559, - 561, 564, 578, 580, 583, 587, 588, 594, 596, 605, 610, 616, 618, 621, 624, 631, 632, - - 032, // Via Nidoran-F - 313, // Via Illumise - - // Via Evolution - 524, // Roggenrola - 532, // Timburr - 543, // Venipede - 551, // Sandile - 557, // Dwebble - 577, // Solosis - 582, // Vanillite - 595, // Joltik - - // Via Incense Breeding - 298, 360, 406, 433, 438, 439, 440, 446, 458, - }; - public static readonly int[] Ban_DreamHidden = - { - 311, // Plusle - 312, // Minun - 352, // Kecleon - 355, // Duskull - - // Via Pre-Evolution - 356, // Dusclops - 477, // Dusknoir - }; - public static readonly int[] Ban_Gen3Ball = - { - 252, 255, 258, //1 - Treeko, Torchic, Mudkip - 253, 256, 259, //2 - 254, 257, 260, //3 - 387, 390, 393, //1 - Turtwig, Chimchar, Piplup - 388, 391, 394, //2 - 389, 392, 395, //3 - 495, 498, 501, //1 - Snivy, Tepig, Oshawott - 496, 499, 502, //2 - 497, 500, 503, //3 - 566, 567, 696, 697, 698, 699 // Fossil Only obtain - }; - public static readonly int[] Ban_Gen3BallHidden = - { - // can have HA and can be in gen 3 ball as eggs but can not at same time. - 152, 155, 158, //1 - Gen2 Starters - 153, 156, 159, //2 - 154, 157, 160, //3 - 585 + (1 << 11), //Deerling-Summer - 586 + (1 << 11), //Sawsbuck-Summer - 585 + (2 << 11), //Deerling-Autumn - 586 + (2 << 11), //Sawsbuck-Autumn - 585 + (3 << 11), //Deerling-Winter - 586 + (3 << 11), //Sawsbuck-Winter - 710 + (3 << 11), //Pumpkaboo-Super - 711 + (3 << 11), //Gourgeist-Super - }; - public static readonly int[] Ban_Gen4Ball_6 = - { - 152, 155, 158, //1 - Chikorita, Cyndaquil, Totodile - 153, 156, 159, //2 - 154, 157, 160, //3 - 252, 255, 258, //1 - Treeko, Torchic, Mudkip - 253, 256, 259, //2 - 254, 257, 260, //3 - 387, 390, 393, //1 - Turtwig, Chimchar, Piplup - 388, 391, 394, //2 - 389, 392, 395, //3 - 495, 498, 501, //1 - Snivy, Tepig, Oshawott - 496, 499, 502, //2 - 497, 500, 503, //3 - 566, 567, 696, 697, 698, 699 // Fossil Only obtain - }; - - public static readonly int[] WurmpleEvolutions = - { - 266, 267, // Silcoon Beautifly - 268, 269, // Cascoon Dustox - }; - #endregion - #region Memory Table - public static readonly int[] Memory_NotXY = - { - 65, // {0} was with {1} when (he/she) built a Secret Base. {4} that {3}. - 66, // {0} participated in a contest with {1} and impressed many people. {4} that {3}. - 67, // {0} participated in a contest with {1} and won the title. {4} that {3}. - 68, // {0} soared through the sky with {1} and went to many different places. {4} that {3}. + public const int MaxSpeciesID_6 = 721; + public const int MaxMoveID_6_XY = 617; + public const int MaxMoveID_6_AO = 621; + public const int MaxItemID_6_XY = 717; + public const int MaxItemID_6_AO = 775; + public const int MaxAbilityID_6_XY = 188; + public const int MaxAbilityID_6_AO = 191; + public const int MaxBallID_6 = 0x19; + public const int MaxGameID_6 = 27; // OR + + #region Met Locations + public static readonly int[] Met_XYc = [0, 60002, 30002]; + + public static readonly int[] Met_XY_0 = + [ + /* XY */ 2, 6, 8, 10, 12, 14, 16, 17, 18, 20, 22, 24, 26, 28, 30, 32, + 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 82, 84, 86, 88, + 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, + 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, /* ORAS */ 170, 172, + 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, + 218, 220, 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256, 258, 260, + 262, 264, 266, 268, 270, 272, 274, 276, 278, 280, 282, 284, 286, 288, 290, 292, 294, 296, 298, 300, 302, 304, + 306, 308, 310, 312, 314, 316, 318, 320, 322, 324, 326, 328, 330, 332, 334, 336, 338, 340, 342, 344, 346, 348, + 350, 352, 354, + ]; + + public static readonly int[] Met_XY_3 = + [ + 30001, 30003, 30004, 30005, 30006, 30007, 30008, 30009, 30010, 30011, + ]; + + public static readonly int[] Met_XY_4 = + [ + 40001, 40002, 40003, 40004, 40005, 40006, 40007, 40008, 40009, 40010, + 40011, 40012, 40013, 40014, 40015, 40016, 40017, 40018, 40019, 40020, 40021, 40022, 40023, 40024, 40025, + 40026, 40027, 40028, 40029, 40030, 40031, 40032, 40033, 40034, 40035, 40036, 40037, 40038, 40039, 40040, + 40041, 40042, 40043, 40044, 40045, 40046, 40047, 40048, 40049, 40050, 40051, 40052, 40053, 40054, 40055, + 40056, 40057, 40058, 40059, 40060, 40061, 40062, 40063, 40064, 40065, 40066, 40067, 40068, 40069, 40070, + 40071, 40072, 40073, 40074, 40075, 40076, 40077, 40078, 40079, + ]; + + public static readonly int[] Met_XY_6 = [ /* XY */ 60001, 60003, /* ORAS */ 60004]; + + #endregion + + #region Inventory Pouch + + public static readonly ushort[] Pouch_Items_XY = + [ + 001, 002, 003, 004, 005, 006, 007, 008, 009, 010, 011, 012, 013, 014, 015, 016, 055, 056, + 057, 058, 059, 060, 061, 062, 063, 064, 065, 066, 067, 068, 069, 070, 071, 072, 073, 074, 075, + 076, 077, 078, 079, 080, 081, 082, 083, 084, 085, 086, 087, 088, 089, 090, 091, 092, 093, 094, + 099, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 112, 116, 117, 118, 119, 135, 136, + 213, 214, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 571, + 572, 573, 576, 577, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 639, 640, 644, 646, + 647, 648, 649, 650, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, + 699, 704, 710, 711, 715, + ]; + + public static readonly ushort[] Pouch_Items_AO = + [ + 001, 002, 003, 004, 005, 006, 007, 008, 009, 010, 011, 012, 013, 014, 015, 016, 055, 056, + 057, 058, 059, 060, 061, 062, 063, 064, 068, 069, 070, 071, 072, 073, 074, 075, + 076, 077, 078, 079, 080, 081, 082, 083, 084, 085, 086, 087, 088, 089, 090, 091, 092, 093, 094, + 099, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 112, 116, 117, 118, 119, 135, 136, + 213, 214, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 492, 493, 494, 495, 496, 497, 498, 499, 500, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, + 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 571, + 572, 573, 576, 577, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 639, 640, 644, 646, + 647, 648, 649, 650, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, + 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, + 699, 704, 710, 711, 715, + + // ORAS + 534, 535, + 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 767, 768, 769, 770, + ]; + + public static readonly ushort[] Pouch_Key_XY = + [ + 216, 431, 442, 445, 446, 447, 450, 465, 466, 471, 628, + 629, 631, 632, 638, 641, 642, 643, 689, 695, 696, 697, 698, + 700, 701, 702, 703, 705, 706, 707, 712, 713, 714, + + // Illegal + 716, 717, // For the cheaters who want useless items... + ]; + + public static readonly ushort[] Pouch_Key_AO = + [ + 216, 445, 446, 447, 465, 466, 471, 628, + 629, 631, 632, 638, 697, + + // Illegal + 716, 717, 745, 746, 747, 748, 749, 750, // For the cheaters who want useless items... + + // ORAS + 457, 474, 503, + + 718, 719, + 720, 721, 722, 723, 724, 725, 726, 727, 728, 729, + 730, 731, 732, 733, 734, 735, 736, 738, 739, + 740, 741, 742, 743, 744, + 751, 765, 766, 771, 772, 774, 775, + ]; + + public static readonly ushort[] Pouch_TMHM_XY = + [ + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 618, 619, 620, 690, 691, 692, 693, 694, + + 420, 421, 422, 423, 424, + ]; + + public static readonly ushort[] Pouch_TMHM_AO = + [ + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 618, 619, 620, 690, 691, 692, 693, 694, + + 420, 421, 422, 423, 424, + + // ORAS + 425, 737, + ]; + + public static readonly ushort[] Pouch_Medicine_XY = + [ + 017, 018, 019, 020, 021, 022, 023, 024, 025, 026, 027, 028, 029, 030, 031, 032, 033, + 034, 035, 036, 037, 038, 039, 040, 041, 042, 043, 044, 045, 046, 047, 048, 049, 050, 051, + 052, 053, 054, 134, 504, 565, 566, 567, 568, 569, 570, 571, 591, 645, 708, 709, + ]; + + public static readonly ushort[] Pouch_Medicine_AO = + [ + 017, 018, 019, 020, 021, 022, 023, 024, 025, 026, 027, 028, 029, 030, 031, 032, 033, + 034, 035, 036, 037, 038, 039, 040, 041, 042, 043, 044, 045, 046, 047, 048, 049, 050, 051, + 052, 053, 054, 134, 504, 565, 566, 567, 568, 569, 570, 571, 591, 645, 708, 709, + + //ORAS + 065, 066, 067, + ]; + + public static readonly ushort[] Pouch_Berry_XY = + [ + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 686, 687, 688, + ]; + + public static readonly ushort[] HeldItem_XY = new ushort[1].Concat(Pouch_Items_XY).Concat(Pouch_Medicine_XY).Concat(Pouch_Berry_XY).ToArray(); + public static readonly ushort[] HeldItem_AO = new ushort[1].Concat(Pouch_Items_AO).Concat(Pouch_Medicine_AO).Concat(Pouch_Berry_XY).ToArray(); + #endregion + + #region TMHM + + public static readonly int[] TMHM_AO = + [ + 468, 337, 473, 347, 046, 092, 258, 339, 474, 237, + 241, 269, 058, 059, 063, 113, 182, 240, 355, 219, + 218, 076, 479, 085, 087, 089, 216, 091, 094, 247, + 280, 104, 115, 482, 053, 188, 201, 126, 317, 332, + 259, 263, 488, 156, 213, 168, 490, 496, 497, 315, + 211, 411, 412, 206, 503, 374, 451, 507, 510, 511, + 261, 512, 373, 153, 421, 371, 514, 416, 397, 148, + 444, 521, 086, 360, 014, 522, 244, 523, 524, 157, + 404, 525, 611, 398, 138, 447, 207, 214, 369, 164, + 430, 433, 528, 290, 555, 267, 399, 612, 605, 590, + + 15, 19, 57, 70, 127, 249, 291, + ]; + + public static readonly int[] TMHM_XY = + [ + 468, 337, 473, 347, 046, 092, 258, 339, 474, 237, + 241, 269, 058, 059, 063, 113, 182, 240, 355, 219, + 218, 076, 479, 085, 087, 089, 216, 091, 094, 247, + 280, 104, 115, 482, 053, 188, 201, 126, 317, 332, + 259, 263, 488, 156, 213, 168, 490, 496, 497, 315, + 211, 411, 412, 206, 503, 374, 451, 507, 510, 511, + 261, 512, 373, 153, 421, 371, 514, 416, 397, 148, + 444, 521, 086, 360, 014, 522, 244, 523, 524, 157, + 404, 525, 611, 398, 138, 447, 207, 214, 369, 164, + 430, 433, 528, 249, 555, 267, 399, 612, 605, 590, + + 15, 19, 57, 70, 127, + ]; + + public static readonly int[] TypeTutor6 = [520, 519, 518, 338, 307, 308, 434, 620]; + + public static readonly int[][] Tutors_AO = + [ + [450, 343, 162, 530, 324, 442, 402, 529, 340, 067, 441, 253, 009, 007, 008], + [277, 335, 414, 492, 356, 393, 334, 387, 276, 527, 196, 401, 399, 428, 406, 304, 231], + [020, 173, 282, 235, 257, 272, 215, 366, 143, 220, 202, 409, 355, 264, 351, 352], + [380, 388, 180, 495, 270, 271, 478, 472, 283, 200, 278, 289, 446, 214, 285], + ]; + + #endregion + + public static readonly int[] EggLocations6 = [60002, 30002]; + + public static readonly int[] ValidMet_XY = + [ + 006, 008, 009, 010, 012, 013, 014, 016, 017, 018, 020, 021, 022, 024, 026, 028, 029, 030, 032, 034, 035, 036, + 038, 039, 040, 042, 043, 044, 046, 047, 048, 050, 051, 052, 054, 055, 056, 058, 060, 062, 063, 064, 066, 067, + 068, 069, 070, 072, 074, 075, 076, 078, 079, 082, 084, 085, 086, 088, 089, 090, 092, 093, 094, 096, 097, 098, + 100, 101, 102, 103, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 135, 136, + 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, + ]; + + public static readonly int[] ValidMet_AO = + [ + 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, 194, 196, 198, + 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, 232, 234, 236, 238, 240, 242, + 244, 246, 248, 250, 252, 254, 256, 258, 260, 262, 264, 266, 268, 270, 272, 274, 276, 278, 280, 282, 284, 286, + 288, 290, 292, 294, 296, 298, 300, 302, 304, 306, 308, 310, 312, 314, 316, 318, 320, 322, 324, 326, 328, 330, + 332, 334, 336, 338, 340, 342, 344, 346, 348, 350, 352, 354, + ]; + + public static readonly int[] FriendSafari = + [ + 190, 206, 216, 506, 294, 352, 531, 572, 113, 132, 133, 235, + 012, 046, 165, 415, 267, 284, 313, 314, 049, 127, 214, 666, + 262, 274, 624, 629, 215, 332, 342, 551, 302, 359, 510, 686, + 444, 611, 148, 372, 714, 621, 705, + 101, 417, 587, 702, 025, 125, 618, 694, 310, 404, 523, 596, + 175, 209, 281, 702, 039, 303, 682, 684, 035, 670, + 056, 067, 307, 619, 538, 539, 674, 236, 286, 297, 447, + 058, 077, 126, 513, 005, 218, 636, 668, 038, 654, 662, + 016, 021, 083, 084, 163, 520, 527, 581, 357, 627, 662, 701, + 353, 608, 708, 710, 356, 426, 442, 623, + 043, 114, 191, 511, 002, 541, 548, 586, 556, 651, 673, + 027, 194, 231, 328, 051, 105, 290, 323, 423, 536, 660, + 225, 361, 363, 459, 215, 614, 712, 087, 091, 131, 221, + 014, 044, 268, 336, 049, 168, 317, 569, 089, 452, 454, 544, + 063, 096, 326, 517, 202, 561, 677, 178, 203, 575, 578, + 299, 525, 557, 095, 219, 222, 247, 112, 213, 689, + 082, 303, 597, 205, 227, 375, 600, 437, 530, 707, + 098, 224, 400, 515, 008, 130, 195, 419, 061, 184, 657, + ]; + + public static readonly int[] CosplayPikachuMoves = [309, 556, 577, 604, 560, 0]; + public static readonly int[] WildPokeballs6 = [0x01, 0x02, 0x03, 0x04, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, + ]; + + public static readonly int[] Ban_NoHidden6 = + [ + //Not avaliable at Friend Safari or Horde Encounter + 669 + (2 << 11), //Flabébé-Orange + 670 + (2 << 11), //Floette-Orange + 671 + (2 << 11), //Florges-Orange + 669 + (4 << 11), //Flabébé-White + 670 + (4 << 11), //Floette-White + 671 + (4 << 11), //Florges-White + + 710 + (1 << 11), //Pumpkaboo-Small + 711 + (1 << 11), //Gourgeist-Small + 710 + (2 << 11), //Pumpkaboo-Large + 711 + (2 << 11), //Gourgeist-Large + //Super Size can be obtained as a Pumpkaboo from event distributions + ]; + #region Ball Table + public static readonly int[] Inherit_Sport = + [ + 010, 013, 046, 048, 123, 127, 265, 290, 314, 401, 415, + + 313, // Via Illumise + ]; + + public static readonly int[] Inherit_Safari = + [ + 016, 019, 020, 021, 022, 023, 024, 025, 027, 029, 035, 039, 041, + 043, 046, 048, 050, 054, 055, 060, 063, 066, 069, 070, 074, 077, 079, 080, 083, 084, 088, 092, 095, 096, 098, + 099, 102, 104, 108, 109, 111, 113, 114, 115, 118, 122, 123, 125, 126, 127, 129, 131, 147, 161, 163, 165, 167, + 177, 179, 183, 187, 189, 190, 191, 193, 194, 198, 200, 202, 203, 204, 207, 209, 213, 214, 216, 223, 228, 229, + 231, 234, 235, 241, 246, 263, 264, 270, 271, 273, 283, 284, 285, 286, 288, 298, 299, 304, 305, 307, 308, 309, + 310, 314, 315, 316, 318, 324, 327, 328, 331, 332, 335, 336, 339, 341, 352, 353, 354, 355, 356, 357, 358, 363, + 364, 371, 372, 397, 399, 400, 403, 404, 406, 417, 418, 419, 433, 443, 447, 449, 451, 453, 455, + + 032, // Via Nidoran-F + 313, // Via Illumise + + 173, // Via Clefairy + 239, // Via Electabuzz + 240, // Via Magmar + 298, // Via Marill + 360, // Via Wobbuffet + 406, // Via Roselia + 433, // Via Chimecho + 439, // Via Mr. Mime + 440, // Via Chansey + ]; + + public static readonly int[] Inherit_Dream = + [ + 010, 013, 016, 019, 021, 023, 027, 029, 037, 041, 043, 046, 048, 050, 052, 054, 056, 058, 060, 063, 066, 069, + 072, 074, 077, 079, 083, 084, 086, 088, 090, 092, 095, 096, 098, 102, 104, 108, 109, 111, 113, 114, 115, 116, + 118, 122, 123, 127, 129, 131, 133, 138, 140, 142, 143, 147, 161, 163, 165, 167, 170, 173, 174, 175, 177, 179, + 183, 185, 187, 190, 191, 193, 194, 198, 200, 202, 203, 204, 206, 207, 209, 211, 213, 214, 215, 216, 218, 220, + 222, 223, 225, 226, 227, 228, 231, 234, 235, 238, 239, 240, 241, 246, 261, 263, 265, 270, 273, 276, 278, 280, + 283, 285, 287, 290, 293, 296, 299, 300, 302, 303, 304, 307, 309, 311, 312, 314, 315, 316, 318, 320, 322, 324, + 325, 327, 328, 331, 333, 335, 336, 339, 341, 345, 347, 349, 351, 352, 353, 355, 357, 358, 359, 361, 363, 366, + 369, 370, 371, 396, 399, 401, 403, 408, 410, 412, 415, 417, 418, 420, 422, 425, 427, 431, 434, 441, 442, 443, + 447, 449, 451, 453, 455, 456, 459, 517, 519, 525, 529, 531, 533, 535, 545, 546, 548, 550, 553, 556, 558, 559, + 561, 564, 578, 580, 583, 587, 588, 594, 596, 605, 610, 616, 618, 621, 624, 631, 632, + + 032, // Via Nidoran-F + 313, // Via Illumise + + // Via Evolution + 524, // Roggenrola + 532, // Timburr + 543, // Venipede + 551, // Sandile + 557, // Dwebble + 577, // Solosis + 582, // Vanillite + 595, // Joltik + + // Via Incense Breeding + 298, 360, 406, 433, 438, 439, 440, 446, 458, + ]; + + public static readonly int[] Ban_DreamHidden = + [ + 311, // Plusle + 312, // Minun + 352, // Kecleon + 355, // Duskull + + // Via Pre-Evolution + 356, // Dusclops + 477, // Dusknoir + ]; + + public static readonly int[] Ban_Gen3Ball = + [ + 252, 255, 258, //1 - Treeko, Torchic, Mudkip + 253, 256, 259, //2 + 254, 257, 260, //3 + 387, 390, 393, //1 - Turtwig, Chimchar, Piplup + 388, 391, 394, //2 + 389, 392, 395, //3 + 495, 498, 501, //1 - Snivy, Tepig, Oshawott + 496, 499, 502, //2 + 497, 500, 503, //3 + 566, 567, 696, 697, 698, 699, // Fossil Only obtain + ]; + + public static readonly int[] Ban_Gen3BallHidden = + [ + // can have HA and can be in gen 3 ball as eggs but can not at same time. + 152, 155, 158, //1 - Gen2 Starters + 153, 156, 159, //2 + 154, 157, 160, //3 + 585 + (1 << 11), //Deerling-Summer + 586 + (1 << 11), //Sawsbuck-Summer + 585 + (2 << 11), //Deerling-Autumn + 586 + (2 << 11), //Sawsbuck-Autumn + 585 + (3 << 11), //Deerling-Winter + 586 + (3 << 11), //Sawsbuck-Winter + 710 + (3 << 11), //Pumpkaboo-Super + 711 + (3 << 11), //Gourgeist-Super + ]; + + public static readonly int[] Ban_Gen4Ball_6 = + [ + 152, 155, 158, //1 - Chikorita, Cyndaquil, Totodile + 153, 156, 159, //2 + 154, 157, 160, //3 + 252, 255, 258, //1 - Treeko, Torchic, Mudkip + 253, 256, 259, //2 + 254, 257, 260, //3 + 387, 390, 393, //1 - Turtwig, Chimchar, Piplup + 388, 391, 394, //2 + 389, 392, 395, //3 + 495, 498, 501, //1 - Snivy, Tepig, Oshawott + 496, 499, 502, //2 + 497, 500, 503, //3 + 566, 567, 696, 697, 698, 699, // Fossil Only obtain + ]; + + public static readonly int[] WurmpleEvolutions = + [ + 266, 267, // Silcoon Beautifly + 268, 269, // Cascoon Dustox + ]; + #endregion + #region Memory Table + public static readonly int[] Memory_NotXY = + [ + 65, // {0} was with {1} when (he/she) built a Secret Base. {4} that {3}. + 66, // {0} participated in a contest with {1} and impressed many people. {4} that {3}. + 67, // {0} participated in a contest with {1} and won the title. {4} that {3}. + 68, // {0} soared through the sky with {1} and went to many different places. {4} that {3}. + 69, // {1} asked {0} to dive. Down it went, deep into the ocean, to explore the bottom of the sea. {4} that {3}. + ]; + + public static readonly int[] Memory_NotAO = + [ + 11, // {0} went clothes shopping with {1}. {4} that {3}. + 43, // {0} was impressed by the speed of the train it took with {1}. {4} that {3}. + 44, // {0} encountered {2} with {1} using the Poké Radar. {4} that {3}. + 56, // {0} was with {1} when (he/she) went to a boutique and tried on clothes, but (he/she) left the boutique without buying anything. {4} that {3}. + 57, // {0} went to a nice restaurant with {1} and ate until it got totally full. {4} that {3}. + 62, // {0} saw itself in a mirror in a mirror cave that it went to with {1}. {4} that {3}. + ]; + + public static readonly int[][] MoveSpecificMemories = + [ + [ + 20, // {0} surfed across the water, carrying {1} on its back. {4} that {3}. + 24, // {0} flew, carrying {1} on its back, to {2}. {4} that {3}. + 35, // {0} proudly used Strength at {1}’s instruction in... {2}. {4} that {3}. + 36, // {0} proudly used Cut at {1}’s instruction in... {2}. {4} that {3}. + 37, // {0} shattered rocks to its heart’s content at {1}’s instruction in... {2}. {4} that {3}. + 38, // {0} used Waterfall while carrying {1} on its back in... {2}. {4} that {3}. 69, // {1} asked {0} to dive. Down it went, deep into the ocean, to explore the bottom of the sea. {4} that {3}. - }; - public static readonly int[] Memory_NotAO = - { - 11, // {0} went clothes shopping with {1}. {4} that {3}. - 43, // {0} was impressed by the speed of the train it took with {1}. {4} that {3}. - 44, // {0} encountered {2} with {1} using the Poké Radar. {4} that {3}. - 56, // {0} was with {1} when (he/she) went to a boutique and tried on clothes, but (he/she) left the boutique without buying anything. {4} that {3}. - 57, // {0} went to a nice restaurant with {1} and ate until it got totally full. {4} that {3}. - 62, // {0} saw itself in a mirror in a mirror cave that it went to with {1}. {4} that {3}. - }; - public static readonly int[][] MoveSpecificMemories = - { - new[] { - 20, // {0} surfed across the water, carrying {1} on its back. {4} that {3}. - 24, // {0} flew, carrying {1} on its back, to {2}. {4} that {3}. - 35, // {0} proudly used Strength at {1}’s instruction in... {2}. {4} that {3}. - 36, // {0} proudly used Cut at {1}’s instruction in... {2}. {4} that {3}. - 37, // {0} shattered rocks to its heart’s content at {1}’s instruction in... {2}. {4} that {3}. - 38, // {0} used Waterfall while carrying {1} on its back in... {2}. {4} that {3}. - 69, // {1} asked {0} to dive. Down it went, deep into the ocean, to explore the bottom of the sea. {4} that {3}. - }, - new[] { 57, 19, 70, 15, 249, 127, 291}, // Move IDs - }; - public static readonly int[][] LocationsWithPKCenter = - { - new[] { - // Kalos locations with a PKMN CENTER - 18, // Santalune City - 22, // Lumiose City - 30, // Camphrier Town - 40, // Cyllage City - 44, // Ambrette Town - 52, // Geosenge Towny - 58, // Shalour City - 64, // Coumarine City - 70, // Laverre City - 76, // Dendemille Town - 86, // Anistar City - 90, // Couriway Town - 94, // Snowbelle City - 106, // Pokémon League (X/Y) - // Hoenn locations with a PKMN CENTER - 172, // Oldale Town - 174, // Dewford Town - 176, // Lavaridge Town - 178, // Fallarbor Town - 180, // Verdanturf Town - 182, // Pacifidlog Town - 184, // Petalburg City - 186, // Slateport City - 188, // Mauville City - 190, // Rustboro City - 192, // Fortree City - 194, // Lilycove City - 196, // Mossdeep City - 198, // Sootopolis City - 200, // Ever Grande City - 202, // Pokémon League (OR/AS) - }, - new[] {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, // Region matching - }; - public static readonly HashSet MemoryGeneral = new HashSet { 1, 2, 3, 4, 19, 24, 31, 32, 33, 35, 36, 37, 38, 39, 42, 52, 59 }; - public static readonly HashSet MemorySpecific = new HashSet { 6 }; - public static readonly HashSet MemoryMove = new HashSet { 12, 16, 48, 49 }; - public static readonly HashSet MemoryItem = new HashSet { 5, 15, 26, 34, 40, 51 }; - public static readonly HashSet MemorySpecies = new HashSet { 7, 9, 13, 14, 17, 21, 18, 25, 29, 44, 45, 50, 60 }; - #endregion - - public static readonly int[] MovePP_XY = - { - 00, - 35, 25, 10, 15, 20, 20, 15, 15, 15, 35, 30, 05, 10, 20, 30, 35, 35, 20, 15, 20, 20, 25, 20, 30, 05, 10, 15, 15, 15, 25, 20, 05, 35, 15, 20, 20, 10, 15, 30, 35, 20, 20, 30, 25, 40, 20, 15, 20, 20, 20, - 30, 25, 15, 30, 25, 05, 15, 10, 05, 20, 20, 20, 05, 35, 20, 25, 20, 20, 20, 15, 25, 15, 10, 20, 25, 10, 35, 30, 15, 10, 40, 10, 15, 30, 15, 20, 10, 15, 10, 05, 10, 10, 25, 10, 20, 40, 30, 30, 20, 20, - 15, 10, 40, 15, 10, 30, 10, 20, 10, 40, 40, 20, 30, 30, 20, 30, 10, 10, 20, 05, 10, 30, 20, 20, 20, 05, 15, 15, 20, 10, 15, 35, 20, 15, 10, 10, 30, 15, 40, 20, 15, 10, 05, 10, 30, 10, 15, 20, 15, 40, - 20, 10, 05, 15, 10, 10, 10, 15, 30, 30, 10, 10, 20, 10, 01, 01, 10, 25, 10, 05, 15, 25, 15, 10, 15, 30, 05, 40, 15, 10, 25, 10, 30, 10, 20, 10, 10, 10, 10, 10, 20, 05, 40, 05, 05, 15, 05, 10, 05, 10, - 10, 10, 10, 20, 20, 40, 15, 10, 20, 20, 25, 05, 15, 10, 05, 20, 15, 20, 25, 20, 05, 30, 05, 10, 20, 40, 05, 20, 40, 20, 15, 35, 10, 05, 05, 05, 15, 05, 20, 05, 05, 15, 20, 10, 05, 05, 15, 10, 15, 15, - 10, 10, 10, 20, 10, 10, 10, 10, 15, 15, 15, 10, 20, 20, 10, 20, 20, 20, 20, 20, 10, 10, 10, 20, 20, 05, 15, 10, 10, 15, 10, 20, 05, 05, 10, 10, 20, 05, 10, 20, 10, 20, 20, 20, 05, 05, 15, 20, 10, 15, - 20, 15, 10, 10, 15, 10, 05, 05, 10, 15, 10, 05, 20, 25, 05, 40, 15, 05, 40, 15, 20, 20, 05, 15, 20, 20, 15, 15, 05, 10, 30, 20, 30, 15, 05, 40, 15, 05, 20, 05, 15, 25, 25, 15, 20, 15, 20, 15, 20, 10, - 20, 20, 05, 05, 10, 05, 40, 10, 10, 05, 10, 10, 15, 10, 20, 15, 30, 10, 20, 05, 10, 10, 15, 10, 10, 05, 15, 05, 10, 10, 30, 20, 20, 10, 10, 05, 05, 10, 05, 20, 10, 20, 10, 15, 10, 20, 20, 20, 15, 15, - 10, 15, 15, 15, 10, 10, 10, 20, 10, 30, 05, 10, 15, 10, 10, 05, 20, 30, 10, 30, 15, 15, 15, 15, 30, 10, 20, 15, 10, 10, 20, 15, 05, 05, 15, 15, 05, 10, 05, 20, 05, 15, 20, 05, 20, 20, 20, 20, 10, 20, - 10, 15, 20, 15, 10, 10, 05, 10, 05, 05, 10, 05, 05, 10, 05, 05, 05, 15, 10, 10, 10, 10, 10, 10, 15, 20, 15, 10, 15, 10, 15, 10, 20, 10, 15, 10, 20, 20, 20, 20, 20, 15, 15, 15, 15, 15, 15, 20, 15, 10, - 15, 15, 15, 15, 10, 10, 10, 10, 10, 15, 15, 15, 15, 05, 05, 15, 05, 10, 10, 10, 20, 20, 20, 10, 10, 30, 15, 15, 10, 15, 25, 10, 15, 10, 10, 10, 20, 10, 10, 10, 10, 10, 15, 15, 05, 05, 10, 10, 10, 05, - 05, 10, 05, 05, 15, 10, 05, 05, 05, 10, 10, 10, 10, 20, 25, 10, 20, 30, 25, 20, 20, 15, 20, 15, 20, 20, 10, 10, 10, 10, 10, 20, 10, 30, 15, 10, 10, 10, 20, 20, 05, 05, 05, 20, 10, 10, 20, 15, 20, 20, - 10, 20, 30, 10, 10, 40, 40, 30, 20, 40, 20, 20, 10, 10, 10, 10, 05, 10, 10, 05, 05, - }; - public static readonly int[] UnreleasedItems_6 = - { - 005, // Safari Ball - 016, // Cherish Ball - 492, // Fast Ball - 493, // Level Ball - 494, // Lure Ball - 495, // Heavy Ball - 496, // Love Ball - 497, // Friend Ball - 498, // Moon Ball - 499, // Sport Ball - 500, // Park Ball - 548, // Fire Gem - 549, // Water Gem - 550, // Electric Gem - 551, // Grass Gem - 552, // Ice Gem - 553, // Fighting Gem - 554, // Poison Gem - 555, // Ground Gem - 556, // Flying Gem - 557, // Psychic Gem - 558, // Bug Gem - 559, // Rock Gem - 560, // Ghost Gem - 561, // Dragon Gem - 562, // Dark Gem - 563, // Steel Gem - 576, // Dream Ball - 584, // Relic Copper - 585, // Relic Silver - 587, // Relic Vase - 588, // Relic Band - 589, // Relic Statue - 590, // Relic Crown - 715, // Fairy Gem - }; - public static readonly bool[] ReleasedHeldItems_6 = Enumerable.Range(0, MaxItemID_6_AO+1).Select(i => HeldItem_AO.Contains((ushort)i) && !UnreleasedItems_6.Contains(i)).ToArray(); - } -} + ], + [57, 19, 70, 15, 249, 127, 291], // Move IDs + ]; + + public static readonly int[][] LocationsWithPKCenter = + [ + [ + // Kalos locations with a PKMN CENTER + 18, // Santalune City + 22, // Lumiose City + 30, // Camphrier Town + 40, // Cyllage City + 44, // Ambrette Town + 52, // Geosenge Towny + 58, // Shalour City + 64, // Coumarine City + 70, // Laverre City + 76, // Dendemille Town + 86, // Anistar City + 90, // Couriway Town + 94, // Snowbelle City + 106, // Pokémon League (X/Y) + // Hoenn locations with a PKMN CENTER + 172, // Oldale Town + 174, // Dewford Town + 176, // Lavaridge Town + 178, // Fallarbor Town + 180, // Verdanturf Town + 182, // Pacifidlog Town + 184, // Petalburg City + 186, // Slateport City + 188, // Mauville City + 190, // Rustboro City + 192, // Fortree City + 194, // Lilycove City + 196, // Mossdeep City + 198, // Sootopolis City + 200, // Ever Grande City + 202, // Pokémon League (OR/AS) + ], + [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], // Region matching + ]; + + public static readonly HashSet MemoryGeneral = + [1, 2, 3, 4, 19, 24, 31, 32, 33, 35, 36, 37, 38, 39, 42, 52, 59]; + public static readonly HashSet MemorySpecific = [6]; + public static readonly HashSet MemoryMove = [12, 16, 48, 49]; + public static readonly HashSet MemoryItem = [5, 15, 26, 34, 40, 51]; + public static readonly HashSet MemorySpecies = [7, 9, 13, 14, 17, 21, 18, 25, 29, 44, 45, 50, 60]; + #endregion + + public static readonly int[] MovePP_XY = + [ + 00, + 35, 25, 10, 15, 20, 20, 15, 15, 15, 35, 30, 05, 10, 20, 30, 35, 35, 20, 15, 20, 20, 25, 20, 30, 05, 10, 15, 15, 15, 25, 20, 05, 35, 15, 20, 20, 10, 15, 30, 35, 20, 20, 30, 25, 40, 20, 15, 20, 20, 20, + 30, 25, 15, 30, 25, 05, 15, 10, 05, 20, 20, 20, 05, 35, 20, 25, 20, 20, 20, 15, 25, 15, 10, 20, 25, 10, 35, 30, 15, 10, 40, 10, 15, 30, 15, 20, 10, 15, 10, 05, 10, 10, 25, 10, 20, 40, 30, 30, 20, 20, + 15, 10, 40, 15, 10, 30, 10, 20, 10, 40, 40, 20, 30, 30, 20, 30, 10, 10, 20, 05, 10, 30, 20, 20, 20, 05, 15, 15, 20, 10, 15, 35, 20, 15, 10, 10, 30, 15, 40, 20, 15, 10, 05, 10, 30, 10, 15, 20, 15, 40, + 20, 10, 05, 15, 10, 10, 10, 15, 30, 30, 10, 10, 20, 10, 01, 01, 10, 25, 10, 05, 15, 25, 15, 10, 15, 30, 05, 40, 15, 10, 25, 10, 30, 10, 20, 10, 10, 10, 10, 10, 20, 05, 40, 05, 05, 15, 05, 10, 05, 10, + 10, 10, 10, 20, 20, 40, 15, 10, 20, 20, 25, 05, 15, 10, 05, 20, 15, 20, 25, 20, 05, 30, 05, 10, 20, 40, 05, 20, 40, 20, 15, 35, 10, 05, 05, 05, 15, 05, 20, 05, 05, 15, 20, 10, 05, 05, 15, 10, 15, 15, + 10, 10, 10, 20, 10, 10, 10, 10, 15, 15, 15, 10, 20, 20, 10, 20, 20, 20, 20, 20, 10, 10, 10, 20, 20, 05, 15, 10, 10, 15, 10, 20, 05, 05, 10, 10, 20, 05, 10, 20, 10, 20, 20, 20, 05, 05, 15, 20, 10, 15, + 20, 15, 10, 10, 15, 10, 05, 05, 10, 15, 10, 05, 20, 25, 05, 40, 15, 05, 40, 15, 20, 20, 05, 15, 20, 20, 15, 15, 05, 10, 30, 20, 30, 15, 05, 40, 15, 05, 20, 05, 15, 25, 25, 15, 20, 15, 20, 15, 20, 10, + 20, 20, 05, 05, 10, 05, 40, 10, 10, 05, 10, 10, 15, 10, 20, 15, 30, 10, 20, 05, 10, 10, 15, 10, 10, 05, 15, 05, 10, 10, 30, 20, 20, 10, 10, 05, 05, 10, 05, 20, 10, 20, 10, 15, 10, 20, 20, 20, 15, 15, + 10, 15, 15, 15, 10, 10, 10, 20, 10, 30, 05, 10, 15, 10, 10, 05, 20, 30, 10, 30, 15, 15, 15, 15, 30, 10, 20, 15, 10, 10, 20, 15, 05, 05, 15, 15, 05, 10, 05, 20, 05, 15, 20, 05, 20, 20, 20, 20, 10, 20, + 10, 15, 20, 15, 10, 10, 05, 10, 05, 05, 10, 05, 05, 10, 05, 05, 05, 15, 10, 10, 10, 10, 10, 10, 15, 20, 15, 10, 15, 10, 15, 10, 20, 10, 15, 10, 20, 20, 20, 20, 20, 15, 15, 15, 15, 15, 15, 20, 15, 10, + 15, 15, 15, 15, 10, 10, 10, 10, 10, 15, 15, 15, 15, 05, 05, 15, 05, 10, 10, 10, 20, 20, 20, 10, 10, 30, 15, 15, 10, 15, 25, 10, 15, 10, 10, 10, 20, 10, 10, 10, 10, 10, 15, 15, 05, 05, 10, 10, 10, 05, + 05, 10, 05, 05, 15, 10, 05, 05, 05, 10, 10, 10, 10, 20, 25, 10, 20, 30, 25, 20, 20, 15, 20, 15, 20, 20, 10, 10, 10, 10, 10, 20, 10, 30, 15, 10, 10, 10, 20, 20, 05, 05, 05, 20, 10, 10, 20, 15, 20, 20, + 10, 20, 30, 10, 10, 40, 40, 30, 20, 40, 20, 20, 10, 10, 10, 10, 05, 10, 10, 05, 05, + ]; + + public static readonly int[] UnreleasedItems_6 = + [ + 005, // Safari Ball + 016, // Cherish Ball + 492, // Fast Ball + 493, // Level Ball + 494, // Lure Ball + 495, // Heavy Ball + 496, // Love Ball + 497, // Friend Ball + 498, // Moon Ball + 499, // Sport Ball + 500, // Park Ball + 548, // Fire Gem + 549, // Water Gem + 550, // Electric Gem + 551, // Grass Gem + 552, // Ice Gem + 553, // Fighting Gem + 554, // Poison Gem + 555, // Ground Gem + 556, // Flying Gem + 557, // Psychic Gem + 558, // Bug Gem + 559, // Rock Gem + 560, // Ghost Gem + 561, // Dragon Gem + 562, // Dark Gem + 563, // Steel Gem + 576, // Dream Ball + 584, // Relic Copper + 585, // Relic Silver + 587, // Relic Vase + 588, // Relic Band + 589, // Relic Statue + 590, // Relic Crown + 715, // Fairy Gem + ]; + + public static readonly bool[] ReleasedHeldItems_6 = Enumerable.Range(0, MaxItemID_6_AO + 1).Select(i => HeldItem_AO.Contains((ushort)i) && !UnreleasedItems_6.Contains(i)).ToArray(); +} \ No newline at end of file diff --git a/pk3DS.Core/Legality/Tables7.cs b/pk3DS.Core/Legality/Tables7.cs index 4b6e60bd2f..662376b4b1 100644 --- a/pk3DS.Core/Legality/Tables7.cs +++ b/pk3DS.Core/Legality/Tables7.cs @@ -1,242 +1,274 @@ using System.Collections.Generic; using System.Linq; -namespace pk3DS.Core +namespace pk3DS.Core; + +public static partial class Legal { - public static partial class Legal - { - internal const int MaxSpeciesID_7 = 802; - internal const int MaxMoveID_7 = 720; - internal const int MaxItemID_7 = 920; - internal const int MaxAbilityID_7 = 232; - internal const int MaxBallID_7 = 0x1A; // 26 - internal const int MaxGameID_7 = 41; // Crystal (VC?) - - internal const int MaxSpeciesID_7_USUM = 802; - internal const int MaxMoveID_7_USUM = 720; - internal const int MaxItemID_7_USUM = 920; - - #region Met Locations - - internal static readonly int[] Met_SMc = { 0, 60002, 30002, }; - - internal static readonly int[] Met_SM_0 = - { - 002, 004, // Invalid - 006, 008, 010, 012, 014, 016, 018, 020, 022, 024, 026, 028, 030, 032, 034, 036, 038, 040, 042, 044, 046, 048, - 050, 052, 054, 056, 058, 060, 062, 064, 066, 068, 070, 072, 074, 076, 078, 082, 084, 086, 088, 090, 092, 094, - 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, - 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192 - }; - - internal static readonly int[] Met_SM_3 = - { - 30001, 30003, 30004, 30005, 30006, 30007, 30008, 30009, 30010, 30011, 30012, 30013, 30014, 30015, 30016, - }; - - internal static readonly int[] Met_SM_4 = - { - 40001, 40002, 40003, 40004, 40005, 40006, 40007, 40008, 40009, 40010, - 40011, 40012, 40013, 40014, 40015, 40016, 40017, 40018, 40019, 40020, 40021, 40022, 40023, 40024, 40025, - 40026, 40027, 40028, 40029, 40030, 40031, 40032, 40033, 40034, 40035, 40036, 40037, 40038, 40039, 40040, - 40041, 40042, 40043, 40044, 40045, 40046, 40047, 40048, 40049, 40050, 40051, 40052, 40053, 40054, 40055, - 40056, 40057, 40058, 40059, 40060, 40061, 40062, 40063, 40064, 40065, 40066, 40067, 40068, 40069, 40070, - 40071, 40072, 40073, 40074, 40075, 40076, 40077, 40078, 40079, - - 40080, 40081, 40082, 40083, 40084, 40085, 40086, 40087, 40088, - }; - - internal static readonly int[] Met_SM_6 = {/* XY */ 60001, 60003, /* ORAS */ 60004, }; - - #endregion - - internal static readonly ushort[] Pouch_Regular_SM = // 00 - { - 068, 069, 070, 071, 072, 073, 074, 075, 076, 077, 078, 079, 080, 081, 082, 083, 084, 085, 086, 087, - 088, 089, 090, 091, 092, 093, 094, 099, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 116, 117, 118, 119, 135, 136, 137, 213, 214, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 499, 534, 535, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, - 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 571, 572, 573, 580, 581, 582, 583, - 584, 585, 586, 587, 588, 589, 590, 639, 640, 644, 646, 647, 648, 649, 650, 656, 657, 658, 659, - 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, - 680, 681, 682, 683, 684, 685, 699, 704, 710, 711, 715, 752, 753, 754, 755, 756, 757, 758, 759, 760, - 761, 762, 763, 764, 767, 768, 769, 770, 795, 796, 844, 849, 853, 854, 855, 856, 879, 880, 881, 882, - 883, 884, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, - }; - internal static readonly ushort[] Pouch_Ball_SM = { // 08 - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 492, 493, 494, 495, 496, 497, 498, 576, - 851 - }; - internal static readonly ushort[] Pouch_Battle_SM = { // 16 - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 577, - 846, - }; - internal static readonly ushort[] Pouch_Items_SM = Pouch_Regular_SM.Concat(Pouch_Ball_SM).Concat(Pouch_Battle_SM).ToArray(); - - internal static readonly ushort[] Pouch_Key_SM = { - 216, 465, 466, 628, 629, 631, 632, 633, 638, 696, - 705, 706, 765, 773, 797, - 841, 842, 843, 845, 847, 850, 857, 858, 860, - }; - internal static readonly ushort[] Pouch_TMHM_SM = { // 02 - 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, - 418, 419, 618, 619, 620, 690, 691, 692, 693, 694, - }; - internal static readonly ushort[] Pouch_Medicine_SM = { // 32 - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 65, 66, 67, 134, - 504, 565, 566, 567, 568, 569, 570, 591, 645, 708, 709, - 852, - }; - internal static readonly ushort[] Pouch_Berries_SM = { - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 686, 687, 688, - }; - internal static readonly ushort[] Pouch_ZCrystal_SM = { // Bead - 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, - }; - internal static readonly ushort[] Pouch_ZCrystalHeld_SM = { // Piece - 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 798, 799, 800, 801, 802, 803, 804, 805, 806, 836 - }; - internal static readonly ushort[] HeldItems_SM = new ushort[1].Concat(Pouch_Items_SM).Concat(Pouch_Berries_SM).Concat(Pouch_Medicine_SM).Concat(Pouch_ZCrystalHeld_SM).ToArray(); - internal static readonly int[] AlolanOriginForms = - { - 019, // Rattata - 020, // Raticate - 027, // Sandshrew - 028, // Sandslash - 037, // Vulpix - 038, // Ninetails - 050, // Diglett - 051, // Dugtrio - 052, // Meowth - 053, // Persian - 074, // Geodude - 075, // Graveler - 076, // Golem - 088, // Grimer - 089, // Muk - }; - - public static readonly int[] EvolveToAlolanForms = new[] - { - 026, // Raichu - 103, // Exeggutor - 105, // Marowak - }.Concat(AlolanOriginForms).ToArray(); - - #region Unreleased Items - internal static readonly int[] UnreleasedHeldItems_7 = - { - 005, // Safari Ball - 016, // Cherish Ball - 064, // Fluffy Tail - 065, // Blue Flute - 066, // Yellow Flute - 067, // Red Flute - 068, // Black Flute - 069, // White Flute - 070, // Shoal Salt - 071, // Shoal Shell - 099, // Root Fossil - 100, // Claw Fossil - 101, // Helix Fossil - 102, // Dome Fossil - 103, // Old Amber - 111, // Odd Keystone - 164, // Razz Berry - 166, // Nanab Berry - 167, // Wepear Berry - 175, // Cornn Berry - 176, // Magost Berry - 177, // Rabuta Berry - 178, // Nomel Berry - 179, // Spelon Berry - 180, // Pamtre Berry - 181, // Watmel Berry - 182, // Durin Berry - 183, // Belue Berry - 208, // Enigma Berry - 209, // Micle Berry - 210, // Custap Berry - 211, // Jaboca Berry - 212, // Rowap Berry - 215, // Macho Brace - 260, // Red Scarf - 261, // Blue Scarf - 262, // Pink Scarf - 263, // Green Scarf - 264, // Yellow Scarf - 548, // Fire Gem - 549, // Water Gem - 550, // Electric Gem - 551, // Grass Gem - 552, // Ice Gem - 553, // Fighting Gem - 554, // Poison Gem - 555, // Ground Gem - 556, // Flying Gem - 557, // Psychic Gem - 558, // Bug Gem - 559, // Rock Gem - 560, // Ghost Gem - 561, // Dragon Gem - 562, // Dark Gem - 563, // Steel Gem - 576, // Dream Ball - 584, // Relic Copper - 585, // Relic Silver - 586, // Relic Gold - 587, // Relic Vase - 588, // Relic Band - 589, // Relic Statue - 590, // Relic Crown - 710, // Jaw Fossil - 711, // Sail Fossil - 715, // Fairy Gem - }; - #endregion - internal static readonly bool[] ReleasedHeldItems_7 = Enumerable.Range(0, MaxItemID_7+1).Select(i => HeldItems_SM.Contains((ushort)i) && !UnreleasedHeldItems_7.Contains(i)).ToArray(); - - public static readonly HashSet Totem_Alolan = new HashSet - { - 020, // Raticate (Normal, Alolan, Totem) - 105, // Marowak (Normal, Alolan, Totem) - 778, // Mimikyu (Normal, Busted, Totem, Totem_Busted) - }; - public static readonly HashSet Totem_SM = new HashSet - { - 020, // Raticate - 735, // Gumshoos - //746, // Wishiwashi - 758, // Salazzle - 754, // Lurantis - 738, // Vikavolt - 778, // Mimikyu - 784, // Kommo-o - }; - public static readonly HashSet Totem_USUM = new HashSet - { - 020, // Raticate - 735, // Gumshoos - //746, // Wishiwashi - 758, // Salazzle - 754, // Lurantis - 738, // Vikavolt - 778, // Mimikyu - 784, // Kommo-o - 105, // Marowak - 752, // Araquanid - 777, // Togedemaru - 743, // Ribombee - }; - } -} + internal const int MaxSpeciesID_7_SM = 802; + internal const int MaxMoveID_7_SM = 719; + internal const int MaxItemID_7_SM = 920; + internal const int MaxAbilityID_7_SM = 232; + internal const int MaxBallID_7_SM = 0x1A; // 26 + internal const int MaxGameID_7 = 41; // Crystal (VC?) + + internal const int MaxSpeciesID_7_USUM = 807; + internal const int MaxMoveID_7_USUM = 728; + internal const int MaxItemID_7_USUM = 959; + internal const int MaxAbilityID_7_USUM = 233; + + #region Met Locations + + internal static readonly int[] Met_SMc = [0, 60002, 30002]; + + internal static readonly int[] Met_SM_0 = + [ + 002, 004, // Invalid + 006, 008, 010, 012, 014, 016, 018, 020, 022, 024, 026, 028, 030, 032, 034, 036, 038, 040, 042, 044, 046, 048, + 050, 052, 054, 056, 058, 060, 062, 064, 066, 068, 070, 072, 074, 076, 078, 082, 084, 086, 088, 090, 092, 094, + 100, 102, 104, 106, 108, 110, 112, 114, 116, 118, 120, 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, + 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, + ]; + + internal static readonly int[] Met_SM_3 = + [ + 30001, 30003, 30004, 30005, 30006, 30007, 30008, 30009, 30010, 30011, 30012, 30013, 30014, 30015, 30016, + ]; + + internal static readonly int[] Met_SM_4 = + [ + 40001, 40002, 40003, 40004, 40005, 40006, 40007, 40008, 40009, 40010, + 40011, 40012, 40013, 40014, 40015, 40016, 40017, 40018, 40019, 40020, 40021, 40022, 40023, 40024, 40025, + 40026, 40027, 40028, 40029, 40030, 40031, 40032, 40033, 40034, 40035, 40036, 40037, 40038, 40039, 40040, + 40041, 40042, 40043, 40044, 40045, 40046, 40047, 40048, 40049, 40050, 40051, 40052, 40053, 40054, 40055, + 40056, 40057, 40058, 40059, 40060, 40061, 40062, 40063, 40064, 40065, 40066, 40067, 40068, 40069, 40070, + 40071, 40072, 40073, 40074, 40075, 40076, 40077, 40078, 40079, + + 40080, 40081, 40082, 40083, 40084, 40085, 40086, 40087, 40088, + ]; + + internal static readonly int[] Met_SM_6 = [ /* XY */ 60001, 60003, /* ORAS */ 60004]; + + #endregion + + internal static readonly ushort[] Pouch_Regular_SM = // 00 + [ + 068, 069, 070, 071, 072, 073, 074, 075, 076, 077, 078, 079, 080, 081, 082, 083, 084, 085, 086, 087, + 088, 089, 090, 091, 092, 093, 094, 099, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 116, 117, 118, 119, 135, 136, 137, 213, 214, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 499, 534, 535, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 571, 572, 573, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 639, 640, 644, 646, 647, 648, 649, 650, 656, 657, 658, 659, + 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 699, 704, 710, 711, 715, 752, 753, 754, 755, 756, 757, 758, 759, 760, + 761, 762, 763, 764, 767, 768, 769, 770, 795, 796, 844, 849, 853, 854, 855, 856, 879, 880, 881, 882, + 883, 884, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, + ]; + + internal static readonly ushort[] Pouch_Ball_SM = + [ // 08 + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 492, 493, 494, 495, 496, 497, 498, 576, + 851, + ]; + + internal static readonly ushort[] Pouch_Battle_SM = + [ // 16 + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 577, + 846, + ]; + + internal static readonly ushort[] Pouch_Items_SM = [.. Pouch_Regular_SM, .. Pouch_Ball_SM, .. Pouch_Battle_SM]; + + internal static readonly ushort[] Pouch_Key_SM = + [ + 216, 465, 466, 628, 629, 631, 632, 633, 638, 696, + 705, 706, 765, 773, 797, + 841, 842, 843, 845, 847, 850, 857, 858, 860, + ]; + + internal static readonly ushort[] Pouch_TMHM_SM = + [ // 02 + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 618, 619, 620, 690, 691, 692, 693, 694, + ]; + + internal static readonly ushort[] Pouch_Medicine_SM = + [ // 32 + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 65, 66, 67, 134, + 504, 565, 566, 567, 568, 569, 570, 591, 645, 708, 709, + 852, + ]; + + internal static readonly ushort[] Pouch_Berries_SM = + [ + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 686, 687, 688, + ]; + + internal static readonly ushort[] Pouch_ZCrystal_SM = + [ // Bead + 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, + ]; + + internal static readonly ushort[] Pouch_ZCrystalHeld_SM = + [ // Piece + 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 798, 799, 800, 801, 802, 803, 804, 805, 806, 836, + ]; + + internal static readonly ushort[] Pouch_ZCrystal_USUM = + [ // Bead + 927, 928, 929, 930, 931, 932, + ]; + + internal static readonly ushort[] Pouch_ZCrystalHeld_USUM = + [ // Piece + 921, 922, 923, 924, 925, 926, + ]; + + internal static readonly ushort[] HeldItems_SM = new ushort[1].Concat(Pouch_Items_SM).Concat(Pouch_Berries_SM).Concat(Pouch_Medicine_SM).Concat(Pouch_ZCrystalHeld_SM).ToArray(); + internal static readonly ushort[] HeldItems_USUM = new ushort[1].Concat(HeldItems_SM).Concat(Pouch_ZCrystalHeld_USUM).ToArray(); + + internal static readonly int[] AlolanOriginForms = + [ + 019, // Rattata + 020, // Raticate + 027, // Sandshrew + 028, // Sandslash + 037, // Vulpix + 038, // Ninetales + 050, // Diglett + 051, // Dugtrio + 052, // Meowth + 053, // Persian + 074, // Geodude + 075, // Graveler + 076, // Golem + 088, // Grimer + 089, // Muk + ]; + + public static readonly int[] EvolveToAlolanForms = + [ + 026, // Raichu + 103, // Exeggutor + 105, + .. AlolanOriginForms, // Marowak + ]; + + #region Unreleased Items + internal static readonly int[] UnreleasedHeldItems_7 = + [ + 005, // Safari Ball + 016, // Cherish Ball + 064, // Fluffy Tail + 065, // Blue Flute + 066, // Yellow Flute + 067, // Red Flute + 068, // Black Flute + 069, // White Flute + 070, // Shoal Salt + 071, // Shoal Shell + 099, // Root Fossil + 100, // Claw Fossil + 101, // Helix Fossil + 102, // Dome Fossil + 103, // Old Amber + 111, // Odd Keystone + 164, // Razz Berry + 166, // Nanab Berry + 167, // Wepear Berry + 175, // Cornn Berry + 176, // Magost Berry + 177, // Rabuta Berry + 178, // Nomel Berry + 179, // Spelon Berry + 180, // Pamtre Berry + 181, // Watmel Berry + 182, // Durin Berry + 183, // Belue Berry + 208, // Enigma Berry + 209, // Micle Berry + 210, // Custap Berry + 211, // Jaboca Berry + 212, // Rowap Berry + 215, // Macho Brace + 260, // Red Scarf + 261, // Blue Scarf + 262, // Pink Scarf + 263, // Green Scarf + 264, // Yellow Scarf + 548, // Fire Gem + 549, // Water Gem + 550, // Electric Gem + 551, // Grass Gem + 552, // Ice Gem + 553, // Fighting Gem + 554, // Poison Gem + 555, // Ground Gem + 556, // Flying Gem + 557, // Psychic Gem + 558, // Bug Gem + 559, // Rock Gem + 560, // Ghost Gem + 561, // Dragon Gem + 562, // Dark Gem + 563, // Steel Gem + 576, // Dream Ball + 584, // Relic Copper + 585, // Relic Silver + 586, // Relic Gold + 587, // Relic Vase + 588, // Relic Band + 589, // Relic Statue + 590, // Relic Crown + 710, // Jaw Fossil + 711, // Sail Fossil + 715, // Fairy Gem + ]; + #endregion + internal static readonly bool[] ReleasedHeldItems_7 = Enumerable.Range(0, MaxItemID_7_SM + 1).Select(i => HeldItems_SM.Contains((ushort)i) && !UnreleasedHeldItems_7.Contains(i)).ToArray(); + + public static readonly HashSet Totem_Alolan = + [ + 020, // Raticate (Normal, Alolan, Totem) + 105, // Marowak (Normal, Alolan, Totem) + 778, // Mimikyu (Normal, Busted, Totem, Totem_Busted) + ]; + + public static readonly HashSet Totem_SM = + [ + 020, // Raticate + 735, // Gumshoos + //746, // Wishiwashi + 758, // Salazzle + 754, // Lurantis + 738, // Vikavolt + 778, // Mimikyu + 784, // Kommo-o + ]; + + public static readonly HashSet Totem_USUM = + [ + 020, // Raticate + 735, // Gumshoos + //746, // Wishiwashi + 758, // Salazzle + 754, // Lurantis + 738, // Vikavolt + 778, // Mimikyu + 784, // Kommo-o + 105, // Marowak + 752, // Araquanid + 777, // Togedemaru + 743, // Ribombee + ]; +} \ No newline at end of file diff --git a/pk3DS.Core/Properties/Resources.Designer.cs b/pk3DS.Core/Properties/Resources.Designer.cs index d9ae772ddc..ba65eab329 100644 --- a/pk3DS.Core/Properties/Resources.Designer.cs +++ b/pk3DS.Core/Properties/Resources.Designer.cs @@ -19,7 +19,7 @@ namespace pk3DS.Core.Properties { // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] public class Resources { @@ -160,6 +160,26 @@ public static byte[] ORAS { } } + /// + /// Looks up a localized resource of type System.Byte[]. + /// + public static byte[] SuMo { + get { + object obj = ResourceManager.GetObject("SuMo", resourceCulture); + return ((byte[])(obj)); + } + } + + /// + /// Looks up a localized resource of type System.Byte[]. + /// + public static byte[] USUM { + get { + object obj = ResourceManager.GetObject("USUM", resourceCulture); + return ((byte[])(obj)); + } + } + /// /// Looks up a localized resource of type System.Byte[]. /// diff --git a/pk3DS.Core/Properties/Resources.resx b/pk3DS.Core/Properties/Resources.resx index 1eca08555f..cca01c8316 100644 --- a/pk3DS.Core/Properties/Resources.resx +++ b/pk3DS.Core/Properties/Resources.resx @@ -139,6 +139,12 @@ ..\Resources\romdata\byte\PlainRegion\XY.bin;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ..\Resources\romdata\byte\PlainRegion\SuMo.bin;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ..\Resources\romdata\byte\PlainRegion\USUM.bin;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + ..\Resources\romdata\txt\3dsgames.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8 diff --git a/pk3DS.Core/Randomizers/EggMoveRandomizer.cs b/pk3DS.Core/Randomizers/EggMoveRandomizer.cs index d94f4d99d5..197ac98116 100644 --- a/pk3DS.Core/Randomizers/EggMoveRandomizer.cs +++ b/pk3DS.Core/Randomizers/EggMoveRandomizer.cs @@ -1,60 +1,53 @@ using pk3DS.Core.Structures; -namespace pk3DS.Core.Randomizers +namespace pk3DS.Core.Randomizers; + +public class EggMoveRandomizer(GameConfig config, EggMoves[] sets) : IRandomizer { - public class EggMoveRandomizer : IRandomizer + /* + * 3111 Egg Moves Learned by 290 Species (10.73 avg) + * 18 is the most + * 1000 moves learned were STAB (32.1%) + */ + private readonly MoveRandomizer moverand = new(config); + + public bool Expand = true; + public int ExpandTo = 18; + public bool STAB { set => moverand.rSTAB = value; } + public int[] BannedMoves { set => moverand.BannedMoves = value; } + public decimal STABPercent { set => moverand.rSTABPercent = value; } + + public void Execute() { - /* - * 3111 Egg Moves Learned by 290 Species (10.73 avg) - * 18 is the most - * 1000 moves learned were STAB (32.1%) - */ - private readonly MoveRandomizer moverand; - private readonly GameConfig Config; - private readonly EggMoves[] Sets; - public EggMoveRandomizer(GameConfig config, EggMoves[] sets) + if (sets[0] is EggMoves6) { - Config = config; - Sets = sets; - moverand = new MoveRandomizer(config); + for (int i = 0; i < sets.Length; i++) + Randomize(sets[i], i); } - - public bool Expand = true; - public int ExpandTo = 18; - public bool STAB { set => moverand.rSTAB = value; } - public int[] BannedMoves { set => moverand.BannedMoves = value; } - public decimal rSTABPercent { set => moverand.rSTABPercent = value; } - - public void Execute() + else if (sets[0] is EggMoves7) { - if (Sets[0] is EggMoves6) - for (int i = 0; i < Sets.Length; i++) - Randomize(Sets[i], i); - else if (Sets[0] is EggMoves7) + for (int i = 0; i <= config.MaxSpeciesID; i++) { - for (int i = 0; i <= Config.MaxSpeciesID; i++) - { - Randomize(Sets[i], i); - int formoff = ((EggMoves7) Sets[i]).FormTableIndex; - int count = Config.Personal[i].FormeCount; - for (int j = 1; j < count; j++) - Randomize(Sets[formoff + j - 1], Config.Personal.getFormeIndex(i, j)); - } + Randomize(sets[i], i); + int formoff = ((EggMoves7)sets[i]).FormTableIndex; + int count = config.Personal[i].FormeCount; + for (int j = 1; j < count; j++) + Randomize(sets[formoff + j - 1], config.Personal.GetFormIndex(i, j)); } } + } - private void Randomize(EggMoves eggMoves, int index) - { - int count = Expand ? ExpandTo : eggMoves.Count; - eggMoves.Moves = GetRandomMoves(count, index); - } + private void Randomize(EggMoves eggMoves, int index) + { + int count = Expand ? ExpandTo : eggMoves.Count; + eggMoves.Moves = GetRandomMoves(count, index); + } - private int[] GetRandomMoves(int count, int index) - { - count = Expand ? ExpandTo : count; - int[] moves = new int[count]; - moverand.GetRandomLearnset(index, count).CopyTo(moves, 0); - return moves; - } + private int[] GetRandomMoves(int count, int index) + { + count = Expand ? ExpandTo : count; + int[] moves = new int[count]; + moverand.GetRandomLearnset(index, count).CopyTo(moves, 0); + return moves; } -} +} \ No newline at end of file diff --git a/pk3DS.Core/Randomizers/EvolutionRandomizer.cs b/pk3DS.Core/Randomizers/EvolutionRandomizer.cs index 54e6153998..d7b70d9784 100644 --- a/pk3DS.Core/Randomizers/EvolutionRandomizer.cs +++ b/pk3DS.Core/Randomizers/EvolutionRandomizer.cs @@ -1,39 +1,116 @@ using pk3DS.Core.Structures; -namespace pk3DS.Core.Randomizers +namespace pk3DS.Core.Randomizers; + +public class EvolutionRandomizer : IRandomizer { - public class EvolutionRandomizer : IRandomizer + private readonly EvolutionSet[] Evolutions; + private readonly GameConfig Config; + + public readonly SpeciesRandomizer Randomizer; + public readonly FormRandomizer FormRandomizer; + + public EvolutionRandomizer(GameConfig config, EvolutionSet[] evolutions) { - private readonly EvolutionSet[] Evolutions; - private readonly GameConfig Config; + Config = config; + Evolutions = evolutions; + Randomizer = new SpeciesRandomizer(Config); + FormRandomizer = new FormRandomizer(config); + } - public readonly SpeciesRandomizer Randomizer; + public void Execute() + { + for (var i = 0; i < Evolutions.Length; i++) + { + var evo = Evolutions[i]; + Randomize(evo, i); + } + } - public EvolutionRandomizer(GameConfig config, EvolutionSet[] evolutions) + public void ExecuteTrade() + { + for (var i = 0; i < Evolutions.Length; i++) { - Config = config; - Evolutions = evolutions; - Randomizer = new SpeciesRandomizer(Config); + var evo = Evolutions[i]; + Trade(evo, i); } + } + public void ExecuteEvolveEveryLevel() + { + foreach (var evo in Evolutions) + MakeEvolveEveryLevel(evo); + } - public void Execute() + private void Randomize(EvolutionSet evo, int i) + { + var evos = evo.PossibleEvolutions; + foreach (EvolutionMethod v in evos) { - for (var i = 0; i < Evolutions.Length; i++) + if (v.Method > 0) { - var evo = Evolutions[i]; - Randomize(evo, i); + v.Species = Randomizer.GetRandomSpecies(v.Species, i); + v.Form = FormRandomizer.GetRandomForme(v.Species); } } + } - private void Randomize(EvolutionSet evo, int i) + private void Trade(EvolutionSet evo, int i) + { + var evos = evo.PossibleEvolutions; + foreach (EvolutionMethod v in evos) { - var evos = evo.PossibleEvolutions; - foreach (EvolutionMethod v in evos) + if (Config.Generation == 6 && v.Method == 5) // Gen 6 uses Argument rather than Level { - if (v.Method > 0) - v.Species = Randomizer.GetRandomSpecies(v.Species, i); + v.Argument = 30; + v.Method = 4; // trade -> level up } + else if (Config.Generation == 7 && v.Method == 5) + { + v.Level = 30; + v.Method = 4; // trade -> level up + } + + if (v.Method == 6) // trade with held item -> level up with held item + v.Method = 19; + + if (v.Method == 7) // trade for opposite -> level up with party + { + if (i == 588) + v.Argument = 616; // Karrablast with Shelmet + if (i == 616) + v.Argument = 588; // Shelmet with Karrablast + v.Method = 22; + } + } + } + + private void MakeEvolveEveryLevel(EvolutionSet evo) + { + var evos = evo.PossibleEvolutions; + foreach (EvolutionMethod v in evos) + { + switch (Config.Generation) + { + case 6: + v.Argument = 1; + v.Method = 4; + v.Species = 1; + break; + default: + v.Argument = 0; + v.Form = 0; + v.Level = 1; + v.Method = 4; + v.Species = 1; // will be randomized after + break; + } + } + + if (evos[1].Species != 0) // has other branched evolutions; remove them + { + for (int i = 1; i < evos.Length; i++) + evos[i] = new EvolutionMethod(); } } -} +} \ No newline at end of file diff --git a/pk3DS.Core/Randomizers/FormRandomizer.cs b/pk3DS.Core/Randomizers/FormRandomizer.cs index 8e7d3fdd15..f5b8c67bc0 100644 --- a/pk3DS.Core/Randomizers/FormRandomizer.cs +++ b/pk3DS.Core/Randomizers/FormRandomizer.cs @@ -1,39 +1,35 @@ using System.Linq; using pk3DS.Core.Structures.PersonalInfo; -namespace pk3DS.Core.Randomizers +namespace pk3DS.Core.Randomizers; + +public class FormRandomizer(GameConfig game) { - public class FormRandomizer - { - private readonly GameConfig Game; - public FormRandomizer(GameConfig game) - { - Game = game; - } + public bool AllowMega = false; + public bool AllowAlolanForm = true; - public bool AllowMega = false; - public bool AllowAlolanForm = true; + public int GetRandomForme(int species, PersonalInfo[] stats = null) + { + stats ??= game.Personal.Table; + if (stats[species].FormeCount <= 1) + return 0; - public int GetRandomForme(int species, PersonalInfo[] stats = null) + switch (species) { - if (stats == null) - stats = Game.Personal.Table; - if (stats[species].FormeCount <= 1) + case 658 when !AllowMega: return 0; - - switch (species) - { - case 664: case 665: case 666: // Vivillon evo chain - return 30; // save file specific - case 774: // Minior - return (int)(Util.rnd32() % 7); - } - - if (AllowAlolanForm && Legal.EvolveToAlolanForms.Contains(species)) - return (int)(Util.rnd32() % 2); - if (!Legal.Mega_ORAS.Contains((ushort)species) || AllowMega) - return (int)(Util.rnd32() % stats[species].FormeCount); // Slot-Random - return 0; + case 664: + case 665: + case 666: // Vivillon evo chain + return 30; // save file specific + case 774: // Minior + return (int)(Util.Random32() % 7); } + + if (AllowAlolanForm && Legal.EvolveToAlolanForms.Contains(species)) + return (int)(Util.Random32() % 2); + if (!Legal.BattleExclusiveForms.Contains(species) || AllowMega) + return (int)(Util.Random32() % stats[species].FormeCount); // Slot-Random + return 0; } -} +} \ No newline at end of file diff --git a/pk3DS.Core/Randomizers/GenericRandomizer.cs b/pk3DS.Core/Randomizers/GenericRandomizer.cs index 6afbdcd8b7..1c47c5f1c9 100644 --- a/pk3DS.Core/Randomizers/GenericRandomizer.cs +++ b/pk3DS.Core/Randomizers/GenericRandomizer.cs @@ -1,34 +1,27 @@ -namespace pk3DS.Core.Randomizers -{ - /// Cyclical Shuffled Randomizer - /// - /// The shuffled list is iterated over, and reshuffled when exhausted. - /// The list does not repeat values until the list is exhausted. - /// - public class GenericRandomizer - { - public GenericRandomizer(int[] randomValues) - { - RandomValues = randomValues; - } +namespace pk3DS.Core.Randomizers; - private readonly int[] RandomValues; - private int ctr; +/// Cyclical Shuffled Randomizer +/// +/// The shuffled list is iterated over, and reshuffled when exhausted. +/// The list does not repeat values until the list is exhausted. +/// +public class GenericRandomizer(int[] randomValues) +{ + private int ctr; - public void Reset() - { + public void Reset() + { ctr = 0; - Util.Shuffle(RandomValues); + Util.Shuffle(randomValues); } - public int Next() - { + public int Next() + { if (ctr == 0) - Util.Shuffle(RandomValues); + Util.Shuffle(randomValues); - int value = RandomValues[ctr++]; - ctr %= RandomValues.Length; + int value = randomValues[ctr++]; + ctr %= randomValues.Length; return value; } - } -} +} \ No newline at end of file diff --git a/pk3DS.Core/Randomizers/IRandomizer.cs b/pk3DS.Core/Randomizers/IRandomizer.cs index 48297a71d2..18f21449e2 100644 --- a/pk3DS.Core/Randomizers/IRandomizer.cs +++ b/pk3DS.Core/Randomizers/IRandomizer.cs @@ -1,7 +1,6 @@ -namespace pk3DS.Core.Randomizers +namespace pk3DS.Core.Randomizers; + +public interface IRandomizer { - public interface IRandomizer - { - void Execute(); - } -} + void Execute(); +} \ No newline at end of file diff --git a/pk3DS.Core/Randomizers/LearnsetRandomizer.cs b/pk3DS.Core/Randomizers/LearnsetRandomizer.cs index eda660c531..3fe8c4c190 100644 --- a/pk3DS.Core/Randomizers/LearnsetRandomizer.cs +++ b/pk3DS.Core/Randomizers/LearnsetRandomizer.cs @@ -3,112 +3,116 @@ using System.Collections.Generic; using System.Linq; -namespace pk3DS.Core.Randomizers +namespace pk3DS.Core.Randomizers; + +// https://twitter.com/Drayano60/status/807297858244411397 +// ORAS: 10682 moves learned on levelup/birth. +// 5593 are STAB. 52.3% are STAB. +// Steelix learns the most @ 25 (so many level 1)! +// Move relearner ingame glitch fixed (52 tested), but keep below 75 +public class LearnsetRandomizer : IRandomizer { - // https://twitter.com/Drayano60/status/807297858244411397 - // ORAS: 10682 moves learned on levelup/birth. - // 5593 are STAB. 52.3% are STAB. - // Steelix learns the most @ 25 (so many level 1)! - // Move relearner ingame glitch fixed (52 tested), but keep below 75 - public class LearnsetRandomizer : IRandomizer + private readonly MoveRandomizer moverand; + private readonly GameConfig Config; + private readonly Learnset[] Learnsets; + + public LearnsetRandomizer(GameConfig config, Learnset[] sets) { - private readonly MoveRandomizer moverand; - private readonly GameConfig Config; - private readonly Learnset[] Learnsets; + Config = config; + moverand = new MoveRandomizer(config); + Learnsets = sets; + STABPercent = 52.3m; + } - public LearnsetRandomizer(GameConfig config, Learnset[] sets) - { - Config = config; - moverand = new MoveRandomizer(config); - Learnsets = sets; - rSTABPercent = 52.3m; - } + public bool Expand = true; + public int ExpandTo = 25; + public bool Spread = true; + public int SpreadTo = 75; + public bool STABFirst = true; + public bool Learn4Level1 = false; + public bool OrderByPower = true; - public bool Expand = true; - public int ExpandTo = 25; - public bool Spread = true; - public int SpreadTo = 75; - public bool STABFirst = true; - public bool Learn4Level1 = false; - - public bool STAB { set => moverand.rSTAB = value; } - public IList BannedMoves { set => moverand.BannedMoves = value; } - public decimal rSTABPercent { set => moverand.rSTABPercent = value; } - - public void Execute() - { - for (var i = 0; i < Learnsets.Length; i++) - Randomize(Learnsets[i], i); - } + public bool STAB { set => moverand.rSTAB = value; } + public IList BannedMoves { set => moverand.BannedMoves = value; } + public decimal STABPercent { set => moverand.rSTABPercent = value; } - private void Randomize(Learnset set, int index) - { - int[] moves = GetRandomMoves(set.Count, index); - int[] levels = GetRandomLevels(set, moves.Length); + public void Execute() + { + for (var i = 0; i < Learnsets.Length; i++) + Randomize(Learnsets[i], i); + } - if (Learn4Level1) - for (int i = 0; i < Math.Min(4, levels.Length); ++i) - levels[i] = 1; + private void Randomize(Learnset set, int index) + { + int[] moves = GetRandomMoves(set.Count, index); + int[] levels = GetRandomLevels(set, moves.Length); - set.Moves = moves; - set.Levels = levels; + if (Learn4Level1) + { + for (int i = 0; i < Math.Min(4, levels.Length); ++i) + levels[i] = 1; } - private int[] GetRandomLevels(Learnset set, int count) - { - int[] levels = new int[count]; - if (count == 0) - return levels; - if (Spread) - { - levels[0] = 1; - decimal increment = SpreadTo / (decimal)count; - for (int i = 1; i < count; i++) - levels[i] = (int)(i * increment); - return levels; - } - if (levels.Length == count && levels.Length == set.Levels.Length) - return set.Levels; // don't modify - - var exist = set.Levels; - int lastlevel = Math.Min(1, exist.LastOrDefault()); - exist.CopyTo(levels, 0); - for (int i = exist.Length; i < levels.Length; i++) - levels[i] = Math.Max(100, lastlevel + (exist.Length - i + 1)); + set.Moves = moves; + set.Levels = levels; + } + private int[] GetRandomLevels(Learnset set, int count) + { + int[] levels = new int[count]; + if (count == 0) + return levels; + if (Spread) + { + levels[0] = 1; + decimal increment = SpreadTo / (decimal)count; + for (int i = 1; i < count; i++) + levels[i] = (int)(i * increment); return levels; } + if (levels.Length == count && levels.Length == set.Levels.Length) + return set.Levels; // don't modify - private int[] GetRandomMoves(int count, int index) - { - count = Expand ? ExpandTo : count; + var exist = set.Levels; + int lastlevel = Math.Min(1, exist.LastOrDefault()); + exist.CopyTo(levels, 0); + for (int i = exist.Length; i < levels.Length; i++) + levels[i] = Math.Max(100, lastlevel + (exist.Length - i + 1)); - int[] moves = new int[count]; - if (count == 0) - return moves; - moves[0] = STABFirst ? moverand.GetRandomFirstMove(index) : moverand.GetRandomFirstMoveAny(); - var rand = moverand.GetRandomLearnset(index, count - 1); + return levels; + } - // STAB Moves (if requested) come first; randomize the order of moves - Util.Shuffle(rand); - rand.CopyTo(moves, 1); - return moves; - } + private int[] GetRandomMoves(int count, int index) + { + count = Expand ? ExpandTo : count; - public int[] GetHighPoweredMoves(int species, int form, int count = 4) - { - int index = Config.Personal.getFormeIndex(species, form); - var moves = Learnsets[index].Moves.OrderByDescending(move => Config.Moves[move].Power).Distinct().Take(count).ToArray(); - Array.Resize(ref moves, count); + int[] moves = new int[count]; + if (count == 0) return moves; - } + moves[0] = STABFirst ? moverand.GetRandomFirstMove(index) : MoveRandomizer.GetRandomFirstMoveAny(); + var rand = moverand.GetRandomLearnset(index, count - 1); - public int[] GetCurrentMoves(int species, int form, int level, int count = 4) - { - int i = Config.Personal.getFormeIndex(species, form); - var moves = Learnsets[i].getCurrentMoves(level); - Array.Resize(ref moves, count); - return moves; - } + // STAB Moves (if requested) come first; randomize the order of moves + Util.Shuffle(rand); + if (OrderByPower) + moverand.ReorderMovesPower(rand); + rand.CopyTo(moves, 1); + return moves; + } + + public int[] GetHighPoweredMoves(int species, int form, int count = 4) + { + int index = Config.Personal.GetFormIndex(species, form); + var moves = Learnsets[index].Moves.OrderByDescending(move => Config.Moves[move].Power).Distinct().Take(count).ToArray(); + Array.Resize(ref moves, count); + return moves; + } + + public int[] GetCurrentMoves(int species, int form, int level, int count = 4) + { + int i = Config.Personal.GetFormIndex(species, form); + var moves = Learnsets[i].GetEncounterMoves(level); + Array.Resize(ref moves, count); + return moves; } -} +} \ No newline at end of file diff --git a/pk3DS.Core/Randomizers/MoveInfoRandomizer.cs b/pk3DS.Core/Randomizers/MoveInfoRandomizer.cs index 9d1d259132..b43030737c 100644 --- a/pk3DS.Core/Randomizers/MoveInfoRandomizer.cs +++ b/pk3DS.Core/Randomizers/MoveInfoRandomizer.cs @@ -1,11 +1,3 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; +namespace pk3DS.Core.Randomizers; -namespace pk3DS.Core.Randomizers -{ - public class MoveInfoRandomizer - { - } -} +public class MoveInfoRandomizer; \ No newline at end of file diff --git a/pk3DS.Core/Randomizers/MoveRandomizer.cs b/pk3DS.Core/Randomizers/MoveRandomizer.cs index 52257630b7..ad8a6514b6 100644 --- a/pk3DS.Core/Randomizers/MoveRandomizer.cs +++ b/pk3DS.Core/Randomizers/MoveRandomizer.cs @@ -4,140 +4,161 @@ using pk3DS.Core.Structures; using pk3DS.Core.Structures.PersonalInfo; -namespace pk3DS.Core.Randomizers +namespace pk3DS.Core.Randomizers; + +public class MoveRandomizer : IRandomizer { - public class MoveRandomizer : IRandomizer + //private readonly GameConfig Config; + //private readonly int MaxMoveID; + private readonly Move[] MoveData; + private readonly PersonalInfo[] SpeciesStat; + + private readonly GenericRandomizer RandMove; + + public MoveRandomizer(GameConfig config) { - private readonly GameConfig Config; - private readonly int MaxMoveID; - private readonly Move[] MoveData; - private readonly PersonalInfo[] SpeciesStat; + //Config = config; + var MaxMoveID = config.Info.MaxMoveID; + MoveData = config.Moves; + SpeciesStat = config.Personal.Table; + RandMove = new GenericRandomizer(Enumerable.Range(1, MaxMoveID - 1).ToArray()); + } - private readonly GenericRandomizer RandMove; + public void Execute() + { + } - public MoveRandomizer(GameConfig config) - { - Config = config; - MaxMoveID = config.Info.MaxMoveID; - MoveData = config.Moves; - SpeciesStat = config.Personal.Table; - RandMove = new GenericRandomizer(Enumerable.Range(1, MaxMoveID-1).ToArray()); - } + public bool rDMG = true; + public int rDMGCount = 2; + public bool rSTAB = true; + public int rSTABCount = 2; + public decimal rSTABPercent = 100; + public IList BannedMoves = []; - public void Execute() - { - throw new NotImplementedException(); - } + public static readonly int[] FixedDamageMoves = [49, 82]; - public bool rDMG = true; - public int rDMGCount = 2; - public bool rSTAB = true; - public int rSTABCount = 2; - public decimal rSTABPercent = 100; - public IList BannedMoves = new int[0]; + private int loopctr; - public static readonly int[] FixedDamageMoves = { 49, 82 }; + public int[] GetRandomLearnset(int index, int movecount) => GetRandomLearnset(SpeciesStat[index].Types, movecount); - private int loopctr = 0; + public int[] GetRandomLearnset(int[] Types, int movecount) + { + var oldSTABCount = rSTABCount; + rSTABCount = (int)(rSTABPercent * movecount / 100); + int[] moves = GetRandomMoveset(Types, movecount); + rSTABCount = oldSTABCount; + return moves; + } - public int[] GetRandomLearnset(int index, int movecount) => GetRandomLearnset(SpeciesStat[index].Types, movecount); - public int[] GetRandomLearnset(int[] Types, int movecount) - { - var oldSTABCount = rSTABCount; - rSTABCount = (int)(rSTABPercent * movecount / 100); - int[] moves = GetRandomMoveset(Types, movecount); - rSTABCount = oldSTABCount; - return moves; - } - public int[] GetRandomMoveset(int index, int movecount = 4) => GetRandomMoveset(SpeciesStat[index].Types, movecount); - public int[] GetRandomMoveset(int[] Types, int movecount = 4) - { - loopctr = 0; - const int maxLoop = 666; + public int[] GetRandomMoveset(int index, int movecount = 4) => GetRandomMoveset(SpeciesStat[index].Types, movecount); - int[] moves; - do { moves = GetRandomMoves(Types, movecount); } - while (!IsMovesetMeetingRequirements(moves, movecount) && loopctr++ <= maxLoop); + public int[] GetRandomMoveset(int[] Types, int movecount = 4) + { + loopctr = 0; + const int maxLoop = 666; - return moves; - } + int[] moves; + do { moves = GetRandomMoves(Types, movecount); } + while (!IsMovesetMeetingRequirements(moves, movecount) && loopctr++ <= maxLoop); - private int[] GetRandomMoves(int[] Types, int movecount = 4) + return moves; + } + + private int[] GetRandomMoves(int[] Types, int movecount = 4) + { + int i = 0; + int[] moves = new int[movecount]; + if (rSTAB) { - int i = 0; - int[] moves = new int[movecount]; - if (rSTAB) for (; i < rSTABCount; i++) moves[i] = GetRandomSTABMove(Types); - for (; i < moves.Length; i++) // remainder of moves - moves[i] = RandMove.Next(); - return moves; } - private int GetRandomSTABMove(int[] types) - { - int move; - do { move = RandMove.Next(); } - while (!types.Contains(MoveData[move].Type)); - return move; - } - private bool IsMovesetMeetingRequirements(int[] moves, int count) - { - if (rDMG && rDMGCount > moves.Count(move => MoveData[move].Category != 0)) - return false; - if (moves.Any(BannedMoves.Contains)) - return false; + for (; i < moves.Length; i++) // remainder of moves + moves[i] = RandMove.Next(); + return moves; + } - return moves.Distinct().Count() == count; - } + private int GetRandomSTABMove(int[] types) + { + int move; + do { move = RandMove.Next(); } + while (!types.Contains(MoveData[move].Type)); + return move; + } - private static readonly int[] firstMoves = - { - 1, // Pound - 40, // Poison Sting - 52, // Ember - 55, // Water Gun - 64, // Peck - 71, // Absorb - 84, // Thunder Shock - 98, // Quick Attack - 122, // Lick - 141, // Leech Life - - }; - private static readonly GenericRandomizer first = new GenericRandomizer(firstMoves); - public int GetRandomFirstMoveAny() - { - first.Reset(); - return first.Next(); - } - public int GetRandomFirstMove(int index) => GetRandomFirstMove(SpeciesStat[index].Types); - public int GetRandomFirstMove(int[] types) + private bool IsMovesetMeetingRequirements(int[] moves, int count) + { + if (rDMG && rDMGCount > moves.Count(move => MoveData[move].Category != 0)) + return false; + + if (moves.Any(BannedMoves.Contains)) + return false; + + return moves.Distinct().Count() == count; + } + + public void ReorderMovesPower(IList moves) + { + var data = moves.Select((Move, Index) => new { Index, Move, Data = MoveData[Move] }); + var powered = data.Where(z => z.Data.Power > 1).ToList(); + var indexes = powered.ConvertAll(z => z.Index); + var order = powered.OrderBy(z => z.Data.Power * Math.Max(1, (z.Data.HitMin + z.Data.HitMax) / 2m)).ToList(); + + for (var i = 0; i < order.Count; i++) + moves[indexes[i]] = order[i].Move; + } + + private static readonly int[] firstMoves = + [ + 1, // Pound + 40, // Poison Sting + 52, // Ember + 55, // Water Gun + 64, // Peck + 71, // Absorb + 84, // Thunder Shock + 98, // Quick Attack + 122, // Lick + 141, // Leech Life + + ]; + + private static readonly GenericRandomizer first = new(firstMoves); + + public static int GetRandomFirstMoveAny() + { + first.Reset(); + return first.Next(); + } + + public int GetRandomFirstMove(int index) => GetRandomFirstMove(SpeciesStat[index].Types); + + public int GetRandomFirstMove(int[] types) + { + first.Reset(); + int ctr = 0; + int move; + do { - first.Reset(); - int ctr = 0; - int move; - do - { - move = first.Next(); - if (++ctr == firstMoves.Length) - return move; - } while (!types.Contains(MoveData[move].Type)); - return move; - } + move = first.Next(); + if (++ctr == firstMoves.Length) + return move; + } while (!types.Contains(MoveData[move].Type)); + return move; + } - public bool SanitizeMovesetForBannedMoves(int[] moves, int index) + public bool SanitizeMovesetForBannedMoves(int[] moves, int index) + { + bool updated = false; + for (int m = 0; m < moves.Length; m++) { - bool updated = false; - for (int m = 0; m < moves.Length; m++) - { - if (!BannedMoves.Contains(moves[m])) - continue; - updated = true; - moves[m] = GetRandomFirstMove(index); - } - - return updated; + if (!BannedMoves.Contains(moves[m])) + continue; + updated = true; + moves[m] = GetRandomFirstMove(index); } + + return updated; } -} +} \ No newline at end of file diff --git a/pk3DS.Core/Randomizers/PersonalRandomizer.cs b/pk3DS.Core/Randomizers/PersonalRandomizer.cs index b59be51e5c..6d5cd723b6 100644 --- a/pk3DS.Core/Randomizers/PersonalRandomizer.cs +++ b/pk3DS.Core/Randomizers/PersonalRandomizer.cs @@ -2,176 +2,305 @@ using System.Collections.Generic; using System.IO; using System.Linq; +using pk3DS.Core.Structures; using pk3DS.Core.Structures.PersonalInfo; -namespace pk3DS.Core.Randomizers +namespace pk3DS.Core.Randomizers; + +public class PersonalRandomizer : IRandomizer { - public class PersonalRandomizer : IRandomizer + private readonly Random rnd = Util.Rand; + + private const decimal LearnTMPercent = 35; // Average Learnable TMs is 35.260. + private const decimal LearnTypeTutorPercent = 2; //136 special tutor moves learnable by species in Untouched ORAS. + private const decimal LearnMoveTutorPercent = 30; //10001 tutor moves learnable by 826 species in Untouched ORAS. + private const int tmcount = 100; + private const int eggGroupCount = 16; + + private readonly GameConfig Game; + private readonly PersonalInfo[] Table; + + // Randomization Settings + public int TypeCount; + public bool ModifyCatchRate = true; + public bool ModifyLearnsetTM = true; + public bool ModifyLearnsetHM = true; + public bool ModifyLearnsetTypeTutors = true; + public bool ModifyLearnsetMoveTutors = true; + public bool ModifyHeldItems = true; + + public bool ModifyAbilities = true; + public bool AllowWonderGuard = true; + + public bool ModifyStats = true; + public bool ShuffleStats = true; + public decimal StatDeviation = 25; + public bool[] StatsToRandomize = [true, true, true, true, true, true]; + + public bool ModifyTypes = true; + public decimal SameTypeChance = 50; + public bool ModifyEggGroup = true; + public decimal SameEggGroupChance = 50; + + //public bool Advanced { get; set; } = false; + public bool TMInheritance { get; set; } + public bool ModifyLearnsetSmartly { get; set; } + + public ushort[] MoveIDsTMs { private get; set; } + public Move[] Moves => Game.Moves; + public EvolutionSet[] Evos => Game.Evolutions; + + public PersonalRandomizer(PersonalInfo[] table, GameConfig game) { - private static readonly Random rnd = new Random(); - - private const decimal LearnTMPercent = 35; // Average Learnable TMs is 35.260. - private const decimal LearnTypeTutorPercent = 2; //136 special tutor moves learnable by species in Untouched ORAS. - private const decimal LearnMoveTutorPercent = 30; //10001 tutor moves learnable by 826 species in Untouched ORAS. - private const int tmcount = 100; - private const int eggGroupCount = 16; - - private readonly GameConfig Game; - private readonly PersonalInfo[] Table; - - // Randomization Settings - public int TypeCount; - public bool ModifyCatchRate = true; - public bool ModifyLearnsetTM = true; - public bool ModifyLearnsetHM = true; - public bool ModifyLearnsetTypeTutors = true; - public bool ModifyLearnsetMoveTutors = true; - public bool ModifyHeldItems = true; - - public bool ModifyAbilities = true; - public bool AllowWonderGuard = true; - - public bool ModifyStats = true; - public decimal StatDeviation = 25; - public bool[] StatsToRandomize = { true, true, true, true, true, true }; - - public bool ModifyTypes = true; - public decimal SameTypeChance = 50; - public bool ModifyEggGroup = true; - public decimal SameEggGroupChance = 50; - - public PersonalRandomizer(PersonalInfo[] table, GameConfig game) + Game = game; + Table = table; + if (File.Exists("bannedabilites.txt")) { - Game = game; - Table = table; - if (File.Exists("bannedabilites.txt")) - { - var data = File.ReadAllLines("bannedabilities.txt"); - var list = new List(BannedAbilities); - list.AddRange(data.Select(z => Convert.ToInt32(z))); - BannedAbilities = list; - } + var data = File.ReadAllLines("bannedabilities.txt"); + var list = new List(BannedAbilities); + list.AddRange(data.Select(z => Convert.ToInt32(z))); + BannedAbilities = list; } + } + + public void Execute() + { + for (var i = 1; i < Table.Length; i++) + Randomize(Table[i], i); - public void Execute() + if (TMInheritance) + PropagateTMs(Table, Evos); + } + + private void PropagateTMs(PersonalInfo[] table, EvolutionSet[] evos) + { + int specCount = Game.MaxSpeciesID; + var HandledIndexes = new HashSet(); + + for (int species = 1; species <= specCount; species++) { - for (var i = 0; i < Table.Length; i++) - Randomize(Table[i], i); + var entry = table[species]; + PropagateDown(entry, species, 0); + for (int form = 0; form < entry.FormeCount; form++) + PropagateDown(entry, species, form); } - public void Randomize(PersonalInfo z, int index) + void PropagateDown(PersonalInfo pi, int species, int form) { - // Fiddle with Learnsets - if (ModifyLearnsetTM || ModifyLearnsetHM) - RandomizeTMHM(z); - if (ModifyLearnsetTypeTutors) - RandomizeTypeTutors(z, index); - if (ModifyLearnsetMoveTutors) - RandomizeSpecialTutors(z); - if (ModifyStats) - RandomizeStats(z); - if (ModifyAbilities) - RandomizeAbilities(z); - if (ModifyEggGroup) - RandomizeEggGroups(z); - if (ModifyHeldItems) - RandomizeHeldItems(z); - if (ModifyTypes) - RandomizeTypes(z); - if (ModifyCatchRate) - z.CatchRate = rnd.Next(3, 251); // Random Catch Rate between 3 and 250. + int index = pi.FormeIndex(species, form); + if (index == species && form != 0) + return; + + if (index >= evos.Length) + index = species; + PropagateDownIndex(pi, index); } - private void RandomizeTMHM(PersonalInfo z) + void PropagateDownIndex(PersonalInfo pi, int index) { - var tms = z.TMHM; + if (HandledIndexes.Contains(index)) + return; - if (ModifyLearnsetTM) - for (int j = 0; j < tmcount; j++) - tms[j] = rnd.Next(0, 100) < LearnTMPercent; + var evoList = evos[index]; + foreach (var evo in evoList.PossibleEvolutions.Where(z => z.Species != 0)) + { + var espec = evo.Species; + var eform = evo.Form; + var evoIndex = table[espec].FormeIndex(espec, eform); + if (evoIndex >= table.Length) + continue; - if (ModifyLearnsetHM) - for (int j = tmcount; j < tms.Length; j++) - tms[j] = rnd.Next(0, 100) < LearnTMPercent; + if (!HandledIndexes.Contains(evoIndex)) + table[evoIndex].TMHM = pi.TMHM; + else // pre-evolution encountered! take the higher evolution's TM's since they have been propagated up already... + pi.TMHM = table[evoIndex].TMHM; - z.TMHM = tms; + HandledIndexes.Add(evoIndex); + PropagateDownIndex(pi, evoIndex); // recurse for the rest of the evo chain + } } - private void RandomizeTypeTutors(PersonalInfo z, int index) + } + + public void Randomize(PersonalInfo z, int index) + { + // Fiddle with Learnsets + if (ModifyLearnsetTM || ModifyLearnsetHM) { - var t = z.TypeTutors; - for (int i = 0; i < t.Length; i++) - t[i] = rnd.Next(0, 100) < LearnTypeTutorPercent; + if (!ModifyLearnsetSmartly) + RandomizeTMHMSimple(z); + else + RandomizeTMHMAdvanced(z); + } + if (ModifyLearnsetTypeTutors) + RandomizeTypeTutors(z, index); + if (ModifyLearnsetMoveTutors) + RandomizeSpecialTutors(z); + if (ModifyStats) + RandomizeStats(z); + if (ShuffleStats) + RandomShuffledStats(z); + if (ModifyAbilities) + RandomizeAbilities(z); + if (ModifyEggGroup) + RandomizeEggGroups(z); + if (ModifyHeldItems) + RandomizeHeldItems(z); + if (ModifyTypes) + RandomizeTypes(z); + if (ModifyCatchRate) + z.CatchRate = rnd.Next(3, 251); // Random Catch Rate between 3 and 250. + } - // Make sure Rayquaza can learn Dragon Ascent. - if (!Game.XY && (index == 384 || index == 814)) - t[7] = true; + private void RandomizeTMHMAdvanced(PersonalInfo z) + { + var tms = z.TMHM; + //var types = z.Types; - z.TypeTutors = t; - } - private void RandomizeSpecialTutors(PersonalInfo z) + bool CanLearn(Move _) { - var tutors = z.SpecialTutors; - foreach (bool[] tutor in tutors) - for (int i = 0; i < tutor.Length; i++) - tutor[i] = rnd.Next(0, 100) < LearnMoveTutorPercent; - z.SpecialTutors = tutors; + //var type = m.Type; + //bool typeMatch = types.Any(t => t == type); + // todo: how do I learn move? + return rnd.Next(0, 100) < LearnTMPercent; } - private void RandomizeAbilities(PersonalInfo z) + + if (ModifyLearnsetTM) { - var abils = z.Abilities; - for (int i = 0; i < abils.Length; i++) - abils[i] = GetRandomAbility(); - z.Abilities = abils; + for (int j = 0; j < tmcount; j++) + { + var moveID = MoveIDsTMs[j]; + var move = Moves[moveID]; + tms[j] = CanLearn(move); + } } - private void RandomizeEggGroups(PersonalInfo z) + if (ModifyLearnsetHM) { - var egg = z.EggGroups; - egg[0] = GetRandomEggGroup(); - egg[1] = rnd.Next(0, 100) < SameEggGroupChance ? egg[0] : GetRandomEggGroup(); - z.EggGroups = egg; + for (int j = tmcount; j < tms.Length; j++) + { + var moveID = MoveIDsTMs[j]; + var move = Moves[moveID]; + tms[j] = CanLearn(move); + } } - private void RandomizeHeldItems(PersonalInfo z) + + z.TMHM = tms; + } + + private void RandomizeTMHMSimple(PersonalInfo z) + { + var tms = z.TMHM; + + if (ModifyLearnsetTM) { - var item = z.Items; - for (int j = 0; j < item.Length; j++) - item[j] = GetRandomHeldItem(); - z.Items = item; + for (int j = 0; j < tmcount; j++) + tms[j] = rnd.Next(0, 100) < LearnTMPercent; } - private void RandomizeTypes(PersonalInfo z) + + if (ModifyLearnsetHM) { - var t = z.Types; - t[0] = GetRandomType(); - t[1] = rnd.Next(0, 100) < SameTypeChance ? t[0] : GetRandomType(); - z.Types = t; + for (int j = tmcount; j < tms.Length; j++) + tms[j] = rnd.Next(0, 100) < LearnTMPercent; } - private void RandomizeStats(PersonalInfo z) + + z.TMHM = tms; + } + + private void RandomizeTypeTutors(PersonalInfo z, int index) + { + var t = z.TypeTutors; + for (int i = 0; i < t.Length; i++) + t[i] = rnd.Next(0, 100) < LearnTypeTutorPercent; + + // Make sure Rayquaza can learn Dragon Ascent. + if (!Game.XY && index is 384 or 814) + t[7] = true; + + z.TypeTutors = t; + } + + private void RandomizeSpecialTutors(PersonalInfo z) + { + var tutors = z.SpecialTutors; + foreach (bool[] tutor in tutors) { - // Fiddle with Base Stats, don't muck with Shedinja. - var stats = z.Stats; - if (stats[0] == 1) - return; - for (int i = 0; i < stats.Length; i++) - { - if (!StatsToRandomize[i]) - continue; - var l = Math.Min(255, (int) (stats[i] * (1 - StatDeviation / 100))); - var h = Math.Min(255, (int) (stats[i] * (1 + StatDeviation / 100))); - stats[i] = Math.Max(5, rnd.Next(l, h)); - } - z.Stats = stats; + for (int i = 0; i < tutor.Length; i++) + tutor[i] = rnd.Next(0, 100) < LearnMoveTutorPercent; } - private int GetRandomType() => rnd.Next(0, TypeCount); - private int GetRandomEggGroup() => rnd.Next(1, eggGroupCount); - private int GetRandomHeldItem() => Game.Info.HeldItems[rnd.Next(1, Game.Info.HeldItems.Length)]; - private readonly IList BannedAbilities = new int[0]; - private int GetRandomAbility() + z.SpecialTutors = tutors; + } + + private void RandomizeAbilities(PersonalInfo z) + { + var abils = z.Abilities; + for (int i = 0; i < abils.Length; i++) + abils[i] = GetRandomAbility(); + z.Abilities = abils; + } + + private void RandomizeEggGroups(PersonalInfo z) + { + var egg = z.EggGroups; + egg[0] = GetRandomEggGroup(); + egg[1] = rnd.Next(0, 100) < SameEggGroupChance ? egg[0] : GetRandomEggGroup(); + z.EggGroups = egg; + } + + private void RandomizeHeldItems(PersonalInfo z) + { + var item = z.Items; + for (int j = 0; j < item.Length; j++) + item[j] = GetRandomHeldItem(); + z.Items = item; + } + + private void RandomizeTypes(PersonalInfo z) + { + var t = z.Types; + t[0] = GetRandomType(); + t[1] = rnd.Next(0, 100) < SameTypeChance ? t[0] : GetRandomType(); + z.Types = t; + } + + private void RandomizeStats(PersonalInfo z) + { + // Fiddle with Base Stats, don't muck with Shedinja. + var stats = z.Stats; + if (stats[0] == 1) + return; + for (int i = 0; i < stats.Length; i++) { - const int WonderGuard = 25; - int newabil; - do newabil = rnd.Next(1, Game.Info.MaxAbilityID + 1); - while (newabil == WonderGuard && !AllowWonderGuard || BannedAbilities.Contains(newabil)); - return newabil; + if (!StatsToRandomize[i]) + continue; + var l = Math.Min(255, (int)(stats[i] * (1 - (StatDeviation / 100)))); + var h = Math.Min(255, (int)(stats[i] * (1 + (StatDeviation / 100)))); + stats[i] = Math.Max(5, rnd.Next(l, h)); } + z.Stats = stats; + } + + private static void RandomShuffledStats(PersonalInfo z) + { + // Fiddle with Base Stats, don't muck with Shedinja. + var stats = z.Stats; + if (stats[0] == 1) + return; + + Util.Shuffle(stats); + z.Stats = stats; + } + + private int GetRandomType() => rnd.Next(0, TypeCount); + private int GetRandomEggGroup() => rnd.Next(1, eggGroupCount); + private int GetRandomHeldItem() => Game.Info.HeldItems[rnd.Next(1, Game.Info.HeldItems.Length)]; + private readonly IReadOnlyList BannedAbilities = []; + + private int GetRandomAbility() + { + const int WonderGuard = 25; + int newabil; + do newabil = rnd.Next(1, Game.Info.MaxAbilityID + 1); + while ((newabil == WonderGuard && !AllowWonderGuard) || BannedAbilities.Contains(newabil)); + return newabil; } -} +} \ No newline at end of file diff --git a/pk3DS.Core/Randomizers/SpeciesRandomizer.cs b/pk3DS.Core/Randomizers/SpeciesRandomizer.cs index 429dfbc4f9..4e14d5153b 100644 --- a/pk3DS.Core/Randomizers/SpeciesRandomizer.cs +++ b/pk3DS.Core/Randomizers/SpeciesRandomizer.cs @@ -3,214 +3,237 @@ using pk3DS.Core.Structures.PersonalInfo; -namespace pk3DS.Core.Randomizers +namespace pk3DS.Core.Randomizers; + +public class SpeciesRandomizer { - public class SpeciesRandomizer + //private readonly GameConfig Game; + private readonly PersonalInfo[] SpeciesStat; + private readonly int MaxSpeciesID; + + public SpeciesRandomizer(GameConfig config) { - private readonly GameConfig Game; - private readonly PersonalInfo[] SpeciesStat; - private readonly int MaxSpeciesID; + var Game = config; + MaxSpeciesID = Game.Info.MaxSpeciesID; + SpeciesStat = Game.Personal.Table; + } - public SpeciesRandomizer(GameConfig config) - { - Game = config; - MaxSpeciesID = Game.Info.MaxSpeciesID; - SpeciesStat = Game.Personal.Table; - } + /// + /// To be called after the allowed species are provided. + /// + public void Initialize() + { + var list = InitializeSpeciesList(); + RandSpec = new GenericRandomizer(list); + } - /// - /// To be called after the allowed species are provided. - /// - public void Initialize() - { - var list = InitializeSpeciesList(); - RandSpec = new GenericRandomizer(list); - } + #region Randomizer Settings + public bool G1 = true; + public bool G2 = true; + public bool G3 = true; + public bool G4 = true; + public bool G5 = true; + public bool G6 = true; + public bool G7 = false; + public bool L = false; + public bool E = false; + public bool Shedinja = false; + public bool rEXP = false; + public bool rBST = true; + public bool rType = false; + #endregion + + #region Random Species Filtering Parameters + private GenericRandomizer RandSpec; + private int loopctr; + private const int l = 10; // tweakable scalars + private const int h = 11; + #endregion + + internal int GetRandomSpecies(int oldSpecies, int bannedSpecies) + { + // Get a new random species + PersonalInfo oldpkm = SpeciesStat[oldSpecies]; + + loopctr = 0; // altering calculations to prevent infinite loops + int newSpecies; + while (!GetNewSpecies(bannedSpecies, oldpkm, out newSpecies)) + loopctr++; + return newSpecies; + } - #region Randomizer Settings - public bool G1 = true; - public bool G2 = true; - public bool G3 = true; - public bool G4 = true; - public bool G5 = true; - public bool G6 = true; - public bool G7 = false; - public bool L = false; - public bool E = false; - public bool Shedinja = false; - public bool rEXP = true; - public bool rBST = true; - public bool rType = false; - #endregion - - #region Random Species Filtering Parameters - private GenericRandomizer RandSpec; - private int loopctr; - private const int l = 10; // tweakable scalars - private const int h = 11; - #endregion - - internal int GetRandomSpecies(int oldSpecies, int bannedSpecies) - { - // Get a new random species - PersonalInfo oldpkm = SpeciesStat[oldSpecies]; - - loopctr = 0; // altering calculations to prevent infinite loops - int newSpecies; - while (!GetNewSpecies(bannedSpecies, oldpkm, out newSpecies)) - loopctr++; - return newSpecies; - } + public int GetRandomSpeciesType(int oldSpecies, int type) + { + // Get a new random species + PersonalInfo oldpkm = SpeciesStat[oldSpecies]; + + loopctr = 0; // altering calculations to prevent infinite loops + int newSpecies; + while (!GetNewSpecies(oldSpecies, oldpkm, out newSpecies) || !GetIsTypeMatch(newSpecies, type)) + loopctr++; + return newSpecies; + } - public int GetRandomSpeciesType(int oldSpecies, int type) - { - // Get a new random species - PersonalInfo oldpkm = SpeciesStat[oldSpecies]; - - loopctr = 0; // altering calculations to prevent infinite loops - int newSpecies; - while (!GetNewSpecies(oldSpecies, oldpkm, out newSpecies) || !GetIsTypeMatch(newSpecies, type)) - loopctr++; - return newSpecies; - } - private bool GetIsTypeMatch(int newSpecies, int type) => SpeciesStat[newSpecies].Types.Any(z => z == type) || loopctr > 9000; + private bool GetIsTypeMatch(int newSpecies, int type) => type == -1 || SpeciesStat[newSpecies].Types.Any(z => z == type) || loopctr > 9000; - public int GetRandomSpecies(int oldSpecies) - { - // Get a new random species - PersonalInfo oldpkm = SpeciesStat[oldSpecies]; + public int GetRandomSpecies(int oldSpecies) + { + // Get a new random species + PersonalInfo oldpkm = SpeciesStat[oldSpecies]; - loopctr = 0; // altering calculations to prevent infinite loops - int newSpecies; - while (!GetNewSpecies(oldSpecies, oldpkm, out newSpecies)) + loopctr = 0; // altering calculations to prevent infinite loops + int newSpecies; + while (!GetNewSpecies(oldSpecies, oldpkm, out newSpecies)) + { + if (loopctr > 0x0001_0000) { - if (loopctr > 0x0001_0000) - { - PersonalInfo pkm = SpeciesStat[newSpecies]; - if (IsSpeciesBSTBad(oldpkm, pkm) && loopctr > 0x0001_1000) // keep trying for at minimum BST - continue; - return newSpecies; // failed to find any match based on criteria, return random species that may or may not match criteria - } - loopctr++; + PersonalInfo pkm = SpeciesStat[newSpecies]; + if (IsSpeciesBSTBad(oldpkm, pkm) && loopctr > 0x0001_1000) // keep trying for at minimum BST + continue; + return newSpecies; // failed to find any match based on criteria, return random species that may or may not match criteria } - return newSpecies; + loopctr++; } + return newSpecies; + } - private bool IsSpeciesReplacementBad(int newSpecies, int currentSpecies) - { - return newSpecies == currentSpecies && loopctr < MaxSpeciesID * 10; - } - private bool IsSpeciesEXPRateBad(PersonalInfo oldpkm, PersonalInfo pkm) - { - if (!rEXP) - return false; - // Experience Growth Rate matches - return oldpkm.EXPGrowth != pkm.EXPGrowth; - } - private bool IsSpeciesTypeBad(PersonalInfo oldpkm, PersonalInfo pkm) - { - if (!rType) - return false; - // Type has to be somewhat similar - return !oldpkm.Types.Any(z => pkm.Types.Contains(z)); - } - private bool IsSpeciesBSTBad(PersonalInfo oldpkm, PersonalInfo pkm) - { - if (!rBST) - return false; - // Base stat total has to be close - int expand = loopctr / MaxSpeciesID; - int lo = pkm.BST * l / (h + expand); - int hi = pkm.BST * (h + expand) / l; - return lo > oldpkm.BST || oldpkm.BST > hi; - } + private bool IsSpeciesReplacementBad(int newSpecies, int currentSpecies) + { + return newSpecies == currentSpecies && loopctr < MaxSpeciesID * 10; + } - private int[] InitializeSpeciesList() - { - List list = new List(); - if (G1) AddGen1Species(list); - if (G2) AddGen2Species(list); - if (G3) AddGen3Species(list); - if (G4) AddGen4Species(list); - if (G5) AddGen5Species(list); - if (G6) AddGen6Species(list); - if (G7) AddGen7Species(list); - - return list.Count == 0 ? RandomSpeciesList : list.ToArray(); - } - private void AddGen1Species(List list) - { - list.AddRange(Enumerable.Range(1, 143)); // Bulbasaur - Snorlax - list.AddRange(Enumerable.Range(147, 3)); // Dratini - Dragonite + private bool IsSpeciesEXPRateBad(PersonalInfo oldpkm, PersonalInfo pkm) + { + if (!rEXP) + return false; + // Experience Growth Rate matches + return oldpkm.EXPGrowth != pkm.EXPGrowth; + } - if (L) - { - list.AddRange(Enumerable.Range(144, 3)); // Birds - list.Add(150); // Mewtwo - } - if (E) list.Add(151); // Mew - } - private void AddGen2Species(List list) - { - list.AddRange(Enumerable.Range(152, 91)); // Chikorita - Blissey - list.AddRange(Enumerable.Range(246, 3)); // Larvitar - Tyranitar + private bool IsSpeciesTypeBad(PersonalInfo oldpkm, PersonalInfo pkm) + { + if (!rType) + return false; + // Type has to be somewhat similar + return !oldpkm.Types.Any(z => pkm.Types.Contains(z)); + } - if (L) - { - list.AddRange(Enumerable.Range(243, 3)); // Dogs - list.AddRange(Enumerable.Range(249, 2)); // Lugia & Ho-Oh - } - if (E) list.Add(251); // Celebi - } - private void AddGen3Species(List list) - { - list.AddRange(Enumerable.Range(252, 40)); - list.AddRange(Enumerable.Range(293, 84)); - if (Shedinja) list.Add(292); // Shedinja - if (L) list.AddRange(Enumerable.Range(377, 8)); // Regi, Lati, Mascot - if (E) list.AddRange(Enumerable.Range(385, 2)); // Jirachi/Deoxys - } - private void AddGen4Species(List list) - { - list.AddRange(Enumerable.Range(387, 93)); - if (L) list.AddRange(Enumerable.Range(480, 9)); // - if (E) list.AddRange(Enumerable.Range(489, 5)); // - } - private void AddGen5Species(List list) + private bool IsSpeciesBSTBad(PersonalInfo oldpkm, PersonalInfo pkm) + { + if (!rBST) + return false; + // Base stat total has to be close to original BST + int expand = loopctr / MaxSpeciesID; + int lo = oldpkm.BST * l / (h + expand); + int hi = oldpkm.BST * (h + expand) / l; + return lo > pkm.BST || pkm.BST > hi; + } + + private int[] InitializeSpeciesList() + { + var list = new List(); + if (G1) AddGen1Species(list); + if (G2) AddGen2Species(list); + if (G3) AddGen3Species(list); + if (G4) AddGen4Species(list); + if (G5) AddGen5Species(list); + if (G6) AddGen6Species(list); + if (G7) AddGen7Species(list); + + return list.Count == 0 ? RandomSpeciesList : [.. list]; + } + + private void AddGen1Species(List list) + { + list.AddRange(Enumerable.Range(1, 143)); // Bulbasaur - Snorlax + list.AddRange(Enumerable.Range(147, 3)); // Dratini - Dragonite + + if (L) { - list.AddRange(Enumerable.Range(495, 143)); - if (L) list.AddRange(Enumerable.Range(638, 9)); list.Add(494); // - if (E) list.AddRange(Enumerable.Range(647, 3)); // + list.AddRange(Enumerable.Range(144, 3)); // Birds + list.Add(150); // Mewtwo } - private void AddGen6Species(List list) + if (E) list.Add(151); // Mew + } + + private void AddGen2Species(List list) + { + list.AddRange(Enumerable.Range(152, 91)); // Chikorita - Blissey + list.AddRange(Enumerable.Range(246, 3)); // Larvitar - Tyranitar + + if (L) { - list.AddRange(Enumerable.Range(650, 66)); - if (L) list.AddRange(Enumerable.Range(716, 3)); // - if (E) list.AddRange(Enumerable.Range(719, 3)); // + list.AddRange(Enumerable.Range(243, 3)); // Raikou, Entei, Suicune + list.AddRange(Enumerable.Range(249, 2)); // Lugia & Ho-Oh } - private void AddGen7Species(List list) + if (E) list.Add(251); // Celebi + } + + private void AddGen3Species(List list) + { + list.AddRange(Enumerable.Range(252, 40)); // Treecko - Ninjask + list.AddRange(Enumerable.Range(293, 84)); // Whismur - Metagross + if (Shedinja) list.Add(292); // Shedinja + if (L) list.AddRange(Enumerable.Range(377, 8)); // Regi, Lati, Mascot + if (E) list.AddRange(Enumerable.Range(385, 2)); // Jirachi/Deoxys + } + + private void AddGen4Species(List list) + { + list.AddRange(Enumerable.Range(387, 93)); // Turtwig - Rotom + if (L) list.AddRange(Enumerable.Range(480, 9)); // Sinnoh Legends + if (E) list.AddRange(Enumerable.Range(489, 5)); // Phione, Manaphy, Darkrai, Shaymin, Arceus + } + + private void AddGen5Species(List list) + { + list.AddRange(Enumerable.Range(495, 143)); // Snivy - Volcarona + if (L) list.AddRange(Enumerable.Range(638, 9)); // Unova Legends + if (E) list.Add(494); list.AddRange(Enumerable.Range(647, 3)); // Victini, Keldeo, Meloetta, Genesect + } + + private void AddGen6Species(List list) + { + list.AddRange(Enumerable.Range(650, 66)); // Chespin - Noivern + if (L) list.AddRange(Enumerable.Range(716, 3)); // Kalos Legends + if (E) list.AddRange(Enumerable.Range(719, 3)); // Diancie, Hoopa, Volcanion + } + + private void AddGen7Species(List list) + { + list.AddRange(Enumerable.Range(722, 50)); // Rowlet - Pyukumuku + list.AddRange(Enumerable.Range(774, 11)); // Minior - Kommo-o + + if (L) { - list.AddRange(Enumerable.Range(722, 67)); - if (L) list.AddRange(Enumerable.Range(785, 16)); // Tapus, Legends, UBs - if (E) list.AddRange(Enumerable.Range(801, 2)); // Magearna, Marshadow + list.AddRange(Enumerable.Range(772, 2)); // Type: Null, Silvally + list.AddRange(Enumerable.Range(785, 16)); // Tapus, Legends, UBs } + if (E) list.AddRange(Enumerable.Range(801, 2)); // Magearna, Marshadow - public int[] RandomSpeciesList => Enumerable.Range(1, MaxSpeciesID).ToArray(); - private bool GetNewSpecies(int currentSpecies, PersonalInfo oldpkm, out int newSpecies) + if (MaxSpeciesID == 807) // USUM { - newSpecies = RandSpec.Next(); - PersonalInfo pkm = SpeciesStat[newSpecies]; - - // Verify it meets specifications - if (IsSpeciesReplacementBad(newSpecies, currentSpecies)) // no A->A randomization - return false; - if (IsSpeciesEXPRateBad(oldpkm, pkm)) - return false; - if (IsSpeciesTypeBad(oldpkm, pkm)) - return false; - if (IsSpeciesBSTBad(oldpkm, pkm)) - return false; - return true; + if (L) list.AddRange(Enumerable.Range(803, 4)); // Poipole, Naganadel, Stakataka, Blacephalon + if (E) list.Add(807); // Zeraora } } -} + + public int[] RandomSpeciesList => Enumerable.Range(1, MaxSpeciesID).ToArray(); + + private bool GetNewSpecies(int currentSpecies, PersonalInfo oldpkm, out int newSpecies) + { + newSpecies = RandSpec.Next(); + PersonalInfo pkm = SpeciesStat[newSpecies]; + + // Verify it meets specifications + if (IsSpeciesReplacementBad(newSpecies, currentSpecies)) // no A->A randomization + return false; + if (IsSpeciesEXPRateBad(oldpkm, pkm)) + return false; + if (IsSpeciesTypeBad(oldpkm, pkm)) + return false; + if (IsSpeciesBSTBad(oldpkm, pkm)) + return false; + return true; + } +} \ No newline at end of file diff --git a/pk3DS.Core/Resources/romdata/byte/PlainRegion/SuMo.bin b/pk3DS.Core/Resources/romdata/byte/PlainRegion/SuMo.bin new file mode 100644 index 0000000000..9e426b3868 Binary files /dev/null and b/pk3DS.Core/Resources/romdata/byte/PlainRegion/SuMo.bin differ diff --git a/pk3DS.Core/Resources/romdata/byte/PlainRegion/USUM.bin b/pk3DS.Core/Resources/romdata/byte/PlainRegion/USUM.bin new file mode 100644 index 0000000000..7e122a4a24 Binary files /dev/null and b/pk3DS.Core/Resources/romdata/byte/PlainRegion/USUM.bin differ diff --git a/pk3DS.Core/Resources/romdata/txt/3dsgames.txt b/pk3DS.Core/Resources/romdata/txt/3dsgames.txt index c715534947..c39217bdca 100644 --- a/pk3DS.Core/Resources/romdata/txt/3dsgames.txt +++ b/pk3DS.Core/Resources/romdata/txt/3dsgames.txt @@ -3573,4 +3573,8 @@ 000400000011BB00 JXQE Johnny Dynamite 0004000000158C00 JT7E 3D Thunder Blade 0004000000158200 JT7P 3D Thunder Blade -000400000016AC00 JWXE Samurai Defender \ No newline at end of file +000400000016AC00 JWXE Samurai Defender +0004000000164800 BNDA Pokémon™ Sun +0004000000175E00 BNEA Pokémon™ Moon +00040000001B5000 A2AA Pokémon™ Ultra Sun +00040000001B5100 A2BA Pokémon™ Ultra Moon \ No newline at end of file diff --git a/pk3DS.Core/StructConverter.cs b/pk3DS.Core/StructConverter.cs index 1de1890c3f..b6f348b375 100644 --- a/pk3DS.Core/StructConverter.cs +++ b/pk3DS.Core/StructConverter.cs @@ -1,27 +1,26 @@ using System; using System.Runtime.InteropServices; -namespace pk3DS.Core +namespace pk3DS.Core; + +public static class StructConverter { - public static class StructConverter + public static T ToStructure(this byte[] bytes) where T : struct + { + var handle = GCHandle.Alloc(bytes, GCHandleType.Pinned); + try { return (T)Marshal.PtrToStructure(handle.AddrOfPinnedObject(), typeof(T)); } + finally { handle.Free(); } + } + + public static byte[] ToBytes(this T obj) where T : struct { - public static T ToStructure(this byte[] bytes) where T : struct - { - GCHandle handle = GCHandle.Alloc(bytes, GCHandleType.Pinned); - T obj = (T)Marshal.PtrToStructure(handle.AddrOfPinnedObject(), typeof(T)); - handle.Free(); - return obj; - } - public static byte[] ToBytes(this T obj) where T : struct - { - int size = Marshal.SizeOf(obj); - byte[] arr = new byte[size]; + int size = Marshal.SizeOf(obj); + byte[] arr = new byte[size]; - IntPtr ptr = Marshal.AllocHGlobal(size); - Marshal.StructureToPtr(obj, ptr, true); - Marshal.Copy(ptr, arr, 0, size); - Marshal.FreeHGlobal(ptr); - return arr; - } + IntPtr ptr = Marshal.AllocHGlobal(size); + Marshal.StructureToPtr(obj, ptr, true); + Marshal.Copy(ptr, arr, 0, size); + Marshal.FreeHGlobal(ptr); + return arr; } -} +} \ No newline at end of file diff --git a/pk3DS.Core/Structures/EggMoves.cs b/pk3DS.Core/Structures/EggMoves.cs index 31be253791..c2f21c69ca 100644 --- a/pk3DS.Core/Structures/EggMoves.cs +++ b/pk3DS.Core/Structures/EggMoves.cs @@ -1,85 +1,84 @@ using System.IO; -namespace pk3DS.Core.Structures +namespace pk3DS.Core.Structures; + +public abstract class EggMoves +{ + public int Count; + public int[] Moves; + public int FormTableIndex; + + public abstract byte[] Write(); +} + +public class EggMoves6 : EggMoves { - public abstract class EggMoves + public EggMoves6(byte[] data) { - public int Count; - public int[] Moves; - public int FormTableIndex; + if (data.Length < 2 || data.Length % 2 != 0) + { Count = 0; Moves = []; return; } - public abstract byte[] Write(); + using var br = new BinaryReader(new MemoryStream(data)); + Moves = new int[Count = br.ReadUInt16()]; + for (int i = 0; i < Count; i++) + Moves[i] = br.ReadUInt16(); } - public class EggMoves6 : EggMoves - { - public EggMoves6(byte[] data) - { - if (data.Length < 2 || data.Length % 2 != 0) - { Count = 0; Moves = new int[0]; return; } - using (BinaryReader br = new BinaryReader(new MemoryStream(data))) - { - Moves = new int[Count = br.ReadUInt16()]; - for (int i = 0; i < Count; i++) - Moves[i] = br.ReadUInt16(); - } - } - public static EggMoves[] getArray(byte[][] entries) - { - EggMoves[] data = new EggMoves[entries.Length]; - for (int i = 0; i < data.Length; i++) - data[i] = new EggMoves6(entries[i]); - return data; - } - public override byte[] Write() - { - Count = Moves.Length; - if (Count == 0) return new byte[0]; - using (MemoryStream ms = new MemoryStream()) - using (BinaryWriter bw = new BinaryWriter(ms)) - { - bw.Write((ushort)Count); - for (int i = 0; i < Count; i++) - bw.Write((ushort)Moves[i]); - return ms.ToArray(); - } - } + public static EggMoves[] GetArray(byte[][] entries) + { + var data = new EggMoves[entries.Length]; + for (int i = 0; i < data.Length; i++) + data[i] = new EggMoves6(entries[i]); + return data; } - public class EggMoves7 : EggMoves + + public override byte[] Write() { - public EggMoves7(byte[] data) - { - if (data.Length < 2 || data.Length % 2 != 0) - { Count = 0; Moves = new int[0]; return; } - using (BinaryReader br = new BinaryReader(new MemoryStream(data))) - { - FormTableIndex = br.ReadUInt16(); - Count = br.ReadUInt16(); - Moves = new int[Count]; - for (int i = 0; i < Count; i++) - Moves[i] = br.ReadUInt16(); - } - } - public static EggMoves[] getArray(byte[][] entries) - { - EggMoves[] data = new EggMoves[entries.Length]; - for (int i = 0; i < data.Length; i++) - data[i] = new EggMoves7(entries[i]); - return data; - } - public override byte[] Write() - { - Count = Moves.Length; - using (MemoryStream ms = new MemoryStream()) - using (BinaryWriter bw = new BinaryWriter(ms)) - { - bw.Write((ushort)FormTableIndex); - bw.Write((ushort)Count); - for (int i = 0; i < Count; i++) - bw.Write((ushort)Moves[i]); + Count = Moves.Length; + if (Count == 0) return []; + using var ms = new MemoryStream(); + using var bw = new BinaryWriter(ms); + bw.Write((ushort)Count); + for (int i = 0; i < Count; i++) + bw.Write((ushort)Moves[i]); - return ms.ToArray(); - } - } + return ms.ToArray(); } } + +public class EggMoves7 : EggMoves +{ + public EggMoves7(byte[] data) + { + if (data.Length < 2 || data.Length % 2 != 0) + { Count = 0; Moves = []; return; } + + using var br = new BinaryReader(new MemoryStream(data)); + FormTableIndex = br.ReadUInt16(); + Count = br.ReadUInt16(); + Moves = new int[Count]; + for (int i = 0; i < Count; i++) + Moves[i] = br.ReadUInt16(); + } + + public static EggMoves[] GetArray(byte[][] entries) + { + var data = new EggMoves[entries.Length]; + for (int i = 0; i < data.Length; i++) + data[i] = new EggMoves7(entries[i]); + return data; + } + + public override byte[] Write() + { + Count = Moves.Length; + using var ms = new MemoryStream(); + using var bw = new BinaryWriter(ms); + bw.Write((ushort)FormTableIndex); + bw.Write((ushort)Count); + for (int i = 0; i < Count; i++) + bw.Write((ushort)Moves[i]); + + return ms.ToArray(); + } +} \ No newline at end of file diff --git a/pk3DS.Core/Structures/EncounterStatic.cs b/pk3DS.Core/Structures/EncounterStatic.cs index d67e280845..a904dd4cf1 100644 --- a/pk3DS.Core/Structures/EncounterStatic.cs +++ b/pk3DS.Core/Structures/EncounterStatic.cs @@ -1,8 +1,7 @@ -namespace pk3DS.Core.Structures +namespace pk3DS.Core.Structures; + +public abstract class EncounterStatic { - public abstract class EncounterStatic - { - public abstract int Species { get; set; } - public abstract int HeldItem { get; set; } - } -} + public abstract int Species { get; set; } + public abstract int HeldItem { get; set; } +} \ No newline at end of file diff --git a/pk3DS.Core/Structures/Gen6/BattleStatusFlags.cs b/pk3DS.Core/Structures/Gen6/BattleStatusFlags.cs index 3005e3554c..6b5457b64a 100644 --- a/pk3DS.Core/Structures/Gen6/BattleStatusFlags.cs +++ b/pk3DS.Core/Structures/Gen6/BattleStatusFlags.cs @@ -1,48 +1,49 @@ using System; -namespace pk3DS.Core.Structures +namespace pk3DS.Core.Structures; + +[Flags] +public enum BattleStatusFlags : byte { - [Flags] - public enum BattleStatusFlags : byte - { - /// - /// Sleep - /// - SLP = 1 << 0, - - /// - /// Poison - /// - PSN = 1 << 1, - - /// - /// Burn - /// - BRN = 1 << 2, - - /// - /// Freeze - /// - FRZ = 1 << 3, - - /// - /// Paralysis - /// - PAR = 1 << 4, - - /// - /// Confusion - /// - CFZ = 1 << 5, - - /// - /// Infatuation - /// - INF = 1 << 6, - - /// - /// Guard Spec. - /// - GSP = 1 << 7, - } + None = 0, + + /// + /// Sleep + /// + SLP = 1 << 0, + + /// + /// Poison + /// + PSN = 1 << 1, + + /// + /// Burn + /// + BRN = 1 << 2, + + /// + /// Freeze + /// + FRZ = 1 << 3, + + /// + /// Paralysis + /// + PAR = 1 << 4, + + /// + /// Confusion + /// + CFZ = 1 << 5, + + /// + /// Infatuation + /// + INF = 1 << 6, + + /// + /// Guard Spec. + /// + GSP = 1 << 7, } \ No newline at end of file diff --git a/pk3DS.Core/Structures/Gen6/EncounterGift6.cs b/pk3DS.Core/Structures/Gen6/EncounterGift6.cs index 24237480df..51cd74cd68 100644 --- a/pk3DS.Core/Structures/Gen6/EncounterGift6.cs +++ b/pk3DS.Core/Structures/Gen6/EncounterGift6.cs @@ -1,110 +1,112 @@ using System.IO; -namespace pk3DS.Core.Structures +namespace pk3DS.Core.Structures; + +public class EncounterGift6 { - public class EncounterGift6 - { - // All - public byte[] Data; - public bool ORAS; + // All + public byte[] Data; + public bool ORAS; - public ushort Species; - public ushort u2; - public byte Form; - public byte Level; - public sbyte Ability; - public sbyte Nature; - public byte Shiny, u9, uA, uB; - public int HeldItem; - public sbyte Gender; - // ORAS - public byte u11; - public short MetLocation; - public ushort Move; - // All - public sbyte[] IVs = new sbyte[6]; - // ORAS - public byte[] ContestStats; - public byte u22; - // All - public byte uLast; + public ushort Species; + public ushort u2; + public byte Form; + public byte Level; + public sbyte Ability; + public sbyte Nature; + public byte Shiny, u9, uA, uB; + public int HeldItem; + public sbyte Gender; + // ORAS + public byte u11; + public short MetLocation; + public ushort Move; + // All + public sbyte[] IVs = new sbyte[6]; + // ORAS + public byte[] ContestStats; + public byte u22; + // All + public byte uLast; - public EncounterGift6(byte[] data, bool oras) - { - Data = data; - ORAS = oras; - using (BinaryReader br = new BinaryReader(new MemoryStream(Data))) - { - Species = br.ReadUInt16(); - u2 = br.ReadUInt16(); - Form = br.ReadByte(); - Level = br.ReadByte(); - Shiny = br.ReadByte(); - Ability = br.ReadSByte(); - Nature = br.ReadSByte(); - u9 = br.ReadByte(); - uA = br.ReadByte(); - uB = br.ReadByte(); - HeldItem = br.ReadInt32(); - Gender = br.ReadSByte(); + public bool ShinyLock + { + get => (Shiny & 2) != 0; + set => Shiny = (byte)((Shiny & ~2) | (value ? 2 : 0)); + } - if (ORAS) - { - u11 = br.ReadByte(); - MetLocation = br.ReadInt16(); - Move = br.ReadUInt16(); - } + public EncounterGift6(byte[] data, bool oras) + { + Data = data; + ORAS = oras; + using var br = new BinaryReader(new MemoryStream(Data)); + Species = br.ReadUInt16(); + u2 = br.ReadUInt16(); + Form = br.ReadByte(); + Level = br.ReadByte(); + Shiny = br.ReadByte(); + Ability = br.ReadSByte(); + Nature = br.ReadSByte(); + u9 = br.ReadByte(); + uA = br.ReadByte(); + uB = br.ReadByte(); + HeldItem = br.ReadInt32(); + Gender = br.ReadSByte(); - for (int i = 0; i < 6; i++) - IVs[i] = br.ReadSByte(); + if (ORAS) + { + u11 = br.ReadByte(); + MetLocation = br.ReadInt16(); + Move = br.ReadUInt16(); + } - if (ORAS) - { - ContestStats = br.ReadBytes(6); - u22 = br.ReadByte(); - } + for (int i = 0; i < 6; i++) + IVs[i] = br.ReadSByte(); - uLast = br.ReadByte(); - } - } - public byte[] Write() + if (ORAS) { - using (MemoryStream ms = new MemoryStream()) - using (BinaryWriter bw = new BinaryWriter(ms)) - { - bw.Write(Species); - bw.Write(u2); - bw.Write(Form); - bw.Write(Level); - bw.Write(Shiny); - bw.Write(Ability); - bw.Write(Nature); - bw.Write(u9); - bw.Write(uA); - bw.Write(uB); - bw.Write(HeldItem); - bw.Write(Gender); + ContestStats = br.ReadBytes(6); + u22 = br.ReadByte(); + } - if (ORAS) - { - bw.Write(u11); - bw.Write(MetLocation); - bw.Write(Move); - } + uLast = br.ReadByte(); + } - for (int i = 0; i < 6; i++) - bw.Write(IVs[i]); + public byte[] Write() + { + using var ms = new MemoryStream(); + using var bw = new BinaryWriter(ms); + bw.Write(Species); + bw.Write(u2); + bw.Write(Form); + bw.Write(Level); + bw.Write(Shiny); + bw.Write(Ability); + bw.Write(Nature); + bw.Write(u9); + bw.Write(uA); + bw.Write(uB); + bw.Write(HeldItem); + bw.Write(Gender); - if (ORAS) - { - bw.Write(ContestStats); - bw.Write(u22); - } + if (ORAS) + { + bw.Write(u11); + bw.Write(MetLocation); + bw.Write(Move); + } - bw.Write(uLast); + for (int i = 0; i < 6; i++) + bw.Write(IVs[i]); - return ms.ToArray(); - } + if (ORAS) + { + bw.Write(ContestStats); + bw.Write(u22); } + + bw.Write(uLast); + + return ms.ToArray(); } -} +} \ No newline at end of file diff --git a/pk3DS.Core/Structures/Gen6/EncounterStatic6.cs b/pk3DS.Core/Structures/Gen6/EncounterStatic6.cs index cad65d23f6..6412a6d489 100644 --- a/pk3DS.Core/Structures/Gen6/EncounterStatic6.cs +++ b/pk3DS.Core/Structures/Gen6/EncounterStatic6.cs @@ -1,48 +1,80 @@ using System; -namespace pk3DS.Core.Structures +namespace pk3DS.Core.Structures; + +public class EncounterStatic6(byte[] data) { - public class EncounterStatic6 + // All + public readonly byte[] Data = (byte[])data.Clone(); + + public ushort Species + { + get => BitConverter.ToUInt16(Data, 0x0); + set => BitConverter.GetBytes(value).CopyTo(Data, 0x0); + } + + public byte Form { - // All - public readonly byte[] Data; + get => Data[0x2]; + set => Data[0x2] = value; + } - public ushort Species + public byte Level + { + get => Data[0x3]; + set => Data[0x3] = value; + } + + public int HeldItem + { + get { - get { return BitConverter.ToUInt16(Data, 0x0); } - set { BitConverter.GetBytes(value).CopyTo(Data, 0x0); } + int item = BitConverter.ToInt16(Data, 0x4); + if (item < 0) item = 0; + return item; } - public byte Form { get { return Data[0x2]; } set { Data[0x2] = value; } } - public byte Level { get { return Data[0x3]; } set { Data[0x3] = value; } } - public int HeldItem + set { - get - { - int item = BitConverter.ToInt16(Data, 0x4); - if (item < 0) item = 0; - return item; - } - set - { - if (value == 0) value = -1; - BitConverter.GetBytes((short)value).CopyTo(Data, 0x4); - } + if (value == 0) value = -1; + BitConverter.GetBytes((short)value).CopyTo(Data, 0x4); } + } + + public bool Shiny + { + get => (Data[0x6] & 1) >> 1 == 1; + set => Data[0x6] = (byte)((Data[0x6] & ~1) | (value ? 1 : 0)); + } + + public bool ShinyLock + { + get => (Data[0x6] & 2) >> 1 == 1; + set => Data[0x6] = (byte)((Data[0x6] & ~2) | (value ? 2 : 0)); + } - public bool ShinyLock { get { return (Data[0x6] & 2) >> 1 == 1; } set { Data[0x6] = (byte)(Data[0x6] & ~2 | (value ? 2 : 0)); } } - public int Gender { get { return (Data[0x6] & 0xC) >> 2; } set { Data[0x6] = (byte)(Data[0x6] & ~0xC | ((value & 3) << 2)); } } - public int Ability { get { return (Data[0x6] & 0x70) >> 4; } set { Data[0x6] = (byte)(Data[0x6] & ~0x70 | ((value & 7) << 4)); } } + public int Gender + { + get => (Data[0x6] & 0xC) >> 2; + set => Data[0x6] = (byte)((Data[0x6] & ~0xC) | ((value & 3) << 2)); + } - public bool IV3 { get { return (Data[0x7] & 1) >> 0 == 1; } set { Data[0x7] = (byte)(Data[0x7] & ~1 | (value ? 1 : 0)); } } - public bool IV3_1 { get { return (Data[0x7] & 2) >> 1 == 1; } set { Data[0x7] = (byte)(Data[0x7] & ~2 | (value ? 2 : 0)); } } + public int Ability + { + get => (Data[0x6] & 0x70) >> 4; + set => Data[0x6] = (byte)((Data[0x6] & ~0x70) | ((value & 7) << 4)); + } - public EncounterStatic6(byte[] data) - { - Data = (byte[])data.Clone(); - } - public byte[] Write() - { - return (byte[])Data.Clone(); - } + public bool IV3 + { + get => (Data[0x7] & 1) >> 0 == 1; + set => Data[0x7] = (byte)((Data[0x7] & ~1) | (value ? 1 : 0)); } -} + + public bool IV3_1 + { + get => (Data[0x7] & 2) >> 1 == 1; + set => Data[0x7] = (byte)((Data[0x7] & ~2) | (value ? 2 : 0)); + } + + public byte[] Write() => (byte[])Data.Clone(); +} \ No newline at end of file diff --git a/pk3DS.Core/Structures/Gen6/Evolutions.cs b/pk3DS.Core/Structures/Gen6/Evolutions.cs index 4bf264447e..5049c87007 100644 --- a/pk3DS.Core/Structures/Gen6/Evolutions.cs +++ b/pk3DS.Core/Structures/Gen6/Evolutions.cs @@ -1,99 +1,100 @@ using System; using System.IO; -namespace pk3DS.Core.Structures +namespace pk3DS.Core.Structures; + +public class EvolutionMethod { - public class EvolutionMethod - { - public int Method; - public int Species; - public int Argument; - public int Form = -1; - public int Level; - } + public int Method; + public int Species; + public int Argument; + public int Form = -1; + public int Level; +} - public abstract class EvolutionSet - { - public EvolutionMethod[] PossibleEvolutions; - public abstract byte[] Write(); - } - public class EvolutionSet6 : EvolutionSet +public abstract class EvolutionSet +{ + public EvolutionMethod[] PossibleEvolutions; + public abstract byte[] Write(); +} + +public class EvolutionSet6 : EvolutionSet +{ + private const int ENTRY_SIZE = 6; + private const int ENTRY_COUNT = 8; + public const int SIZE = ENTRY_COUNT * ENTRY_SIZE; + + public EvolutionSet6(byte[] data) { - private const int ENTRY_SIZE = 6; - private const int ENTRY_COUNT = 8; - public const int SIZE = ENTRY_COUNT * ENTRY_SIZE; - public EvolutionSet6(byte[] data) + if (data.Length != SIZE) return; + //int[] argEvos = { 6, 8, 16, 17, 18, 19, 20, 21, 22, 29, 30, 31, 32, 33, 34 }; + PossibleEvolutions = new EvolutionMethod[ENTRY_COUNT]; + for (int i = 0; i < data.Length; i += ENTRY_SIZE) { - if (data.Length != SIZE) return; - //int[] argEvos = { 6, 8, 16, 17, 18, 19, 20, 21, 22, 29, 30, 31, 32, 33, 34 }; - PossibleEvolutions = new EvolutionMethod[ENTRY_COUNT]; - for (int i = 0; i < data.Length; i += ENTRY_SIZE) + PossibleEvolutions[i / ENTRY_SIZE] = new EvolutionMethod { - PossibleEvolutions[i / ENTRY_SIZE] = new EvolutionMethod - { - Method = BitConverter.ToUInt16(data, i + 0), - Argument = BitConverter.ToUInt16(data, i + 2), - Species = BitConverter.ToUInt16(data, i + 4), - // Copy - //Level = BitConverter.ToUInt16(data, i + 2), - }; + Method = BitConverter.ToUInt16(data, i + 0), + Argument = BitConverter.ToUInt16(data, i + 2), + Species = BitConverter.ToUInt16(data, i + 4), + // Copy + //Level = BitConverter.ToUInt16(data, i + 2), + }; - // Argument is used by both Level argument and Item/Move/etc. Clear if appropriate. - //if (argEvos.Contains(PossibleEvolutions[i / SIZE].Method)) - // PossibleEvolutions[i / SIZE].Level = 0; - } + // Argument is used by both Level argument and Item/Move/etc. Clear if appropriate. + //if (argEvos.Contains(PossibleEvolutions[i / SIZE].Method)) + // PossibleEvolutions[i / SIZE].Level = 0; } - public override byte[] Write() + } + + public override byte[] Write() + { + using var ms = new MemoryStream(); + using var bw = new BinaryWriter(ms); + foreach (var evo in PossibleEvolutions) { - using (MemoryStream ms = new MemoryStream()) - using (BinaryWriter bw = new BinaryWriter(ms)) - { - foreach (EvolutionMethod evo in PossibleEvolutions) - { - bw.Write((ushort)evo.Method); - bw.Write((ushort)evo.Argument); - bw.Write((ushort)evo.Species); - } - return ms.ToArray(); - } + bw.Write((ushort)evo.Method); + bw.Write((ushort)evo.Argument); + bw.Write((ushort)evo.Species); } + return ms.ToArray(); } - public class EvolutionSet7 : EvolutionSet +} + +public class EvolutionSet7 : EvolutionSet +{ + private const int ENTRY_SIZE = 8; + private const int ENTRY_COUNT = 8; + public const int SIZE = ENTRY_COUNT * ENTRY_SIZE; + + public EvolutionSet7(byte[] data) { - private const int ENTRY_SIZE = 8; - private const int ENTRY_COUNT = 8; - public const int SIZE = ENTRY_COUNT * ENTRY_SIZE; - public EvolutionSet7(byte[] data) + if (data.Length != SIZE) return; + PossibleEvolutions = new EvolutionMethod[ENTRY_COUNT]; + for (int i = 0; i < data.Length; i += ENTRY_SIZE) { - if (data.Length != SIZE) return; - PossibleEvolutions = new EvolutionMethod[ENTRY_COUNT]; - for (int i = 0; i < data.Length; i += ENTRY_SIZE) + PossibleEvolutions[i / ENTRY_SIZE] = new EvolutionMethod { - PossibleEvolutions[i / ENTRY_SIZE] = new EvolutionMethod - { - Method = BitConverter.ToUInt16(data, i + 0), - Argument = BitConverter.ToUInt16(data, i + 2), - Species = BitConverter.ToUInt16(data, i + 4), - Form = (sbyte)data[i + 6], - Level = data[i + 7], - }; - } + Method = BitConverter.ToUInt16(data, i + 0), + Argument = BitConverter.ToUInt16(data, i + 2), + Species = BitConverter.ToUInt16(data, i + 4), + Form = (sbyte)data[i + 6], + Level = data[i + 7], + }; } - public override byte[] Write() + } + + public override byte[] Write() + { + using var ms = new MemoryStream(); + using var bw = new BinaryWriter(ms); + foreach (EvolutionMethod evo in PossibleEvolutions) { - using (MemoryStream ms = new MemoryStream()) - using (BinaryWriter bw = new BinaryWriter(ms)) - { - foreach (EvolutionMethod evo in PossibleEvolutions) - { - bw.Write((ushort)evo.Method); - bw.Write((ushort)evo.Argument); - bw.Write((ushort)evo.Species); - bw.Write((sbyte)evo.Form); - bw.Write((byte)evo.Level); - } - return ms.ToArray(); - } + bw.Write((ushort)evo.Method); + bw.Write((ushort)evo.Argument); + bw.Write((ushort)evo.Species); + bw.Write((sbyte)evo.Form); + bw.Write((byte)evo.Level); } + return ms.ToArray(); } -} +} \ No newline at end of file diff --git a/pk3DS.Core/Structures/Gen6/HealValue.cs b/pk3DS.Core/Structures/Gen6/HealValue.cs deleted file mode 100644 index b0cb1246c6..0000000000 --- a/pk3DS.Core/Structures/Gen6/HealValue.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace pk3DS.Core.Structures -{ - public enum HealValue : byte - { - Full = 0xFF, - Half = 0xFE, - Quarter = 0xFD, - None = 0, - } -} diff --git a/pk3DS.Core/Structures/Gen6/Item6.cs b/pk3DS.Core/Structures/Gen6/Item6.cs index 05c2af9612..90f176aaf3 100644 --- a/pk3DS.Core/Structures/Gen6/Item6.cs +++ b/pk3DS.Core/Structures/Gen6/Item6.cs @@ -1,102 +1,187 @@ -using System.ComponentModel; +using System; +using System.ComponentModel; using System.Runtime.InteropServices; -namespace pk3DS.Core.Structures +namespace pk3DS.Core.Structures; + +[StructLayout(LayoutKind.Sequential)] +public struct Item { - [StructLayout(LayoutKind.Sequential)] - public struct Item - { - public Item(byte[] data) => this = data.ToStructure(); - public byte[] Write() => this.ToBytes(); - private const string Battle = "Battle"; - private const string Field = "Field"; - private const string Mart = "Mart"; - private const string Heal = "Heal"; - - #region Structure - private ushort Price; - [Category(Battle)] - public byte HeldEffect { get; set; } - public byte HeldArgument { get; set; } - public byte NaturalGiftEffect { get; set; } - public byte FlingEffect { get; set; } - public byte FlingPower { get; set; } - private byte NaturalGiftPower { get; set; } - public byte NaturalGiftTypeFlags { get; set; } - public byte KeyFlags { get; set; } - [Category(Field), Description("Routine # to call when used; 0=unusable.")] - public byte UseEffect { get; set; } - public byte _0xB { get; set; } // Battle Type - public byte _0xC { get; set; } // 0 or 1 - public byte _0xD { get; set; } // Classification (0-3 Battle, 4 Balls, 5 Mail) - public byte Consumable { get; set; } - public byte SortIndex { get; set; } - public BattleStatusFlags CureInflict { get; set; } // Bitflags - private byte Boost0; // Revive 1, Sacred Ash 3, Rare Candy 5, EvoStone 8, upper4 for BoostAtk - private byte Boost1; // DEF, SPA - private byte Boost2; // SPD, SPE - private byte Boost3; // ACC, CRIT - public byte FunctionFlags0 { get; set; } - public byte FunctionFlags1{ get; set; } - [Category(Field), Description("Adds EVs to the HP stat.")] - public sbyte EVHP { get; set; } - [Category(Field), Description("Adds EVs to the Attack stat.")] - public sbyte EVATK { get; set; } - [Category(Field), Description("Adds EVs to the Defense stat.")] - public sbyte EVDEF { get; set; } - [Category(Field), Description("Adds EVs to the Speed stat.")] - public sbyte EVSPE { get; set; } - [Category(Field), Description("Adds EVs to the Sp. Attack stat.")] - public sbyte EVSPA { get; set; } - [Category(Field), Description("Adds EVs to the Sp. Defense stat.")] - public sbyte EVSPD { get; set; } - [Category(Heal), Description("Determines the healing percent, or if a flat value is used."), RefreshProperties(RefreshProperties.All)] - public HealValue HealAmount { get; set; } - [Category(Field), Description("PP to be added to the move's current PP if used.")] - public byte PPGain { get; set; } - public sbyte Friendship1 { get; set; } - public sbyte Friendship2 { get; set; } - public sbyte Friendship3 { get; set; } - public byte _0x23, _0x24; - #endregion - - [Category(Mart), RefreshProperties(RefreshProperties.All)] - public int BuyPrice { get => Price * 10; set => Price = (ushort)(value / 10); } - [Category(Mart), ReadOnly(true)] - public int SellPrice { get => Price * 5; set => Price = (ushort)(value / 5); } - - [Category(Battle)] - public int NaturalGiftType { get => NaturalGiftTypeFlags & 0x1F; set => NaturalGiftTypeFlags = (byte)(NaturalGiftEffect & ~0x1F | value); } - [Category(Battle)] - public int U8Flags { get => NaturalGiftTypeFlags >> 5; set => NaturalGiftTypeFlags = (byte)(NaturalGiftEffect & 0x1F | (value << 5)); } - - [Category(Battle)] - public int FieldEffect { get => Boost0 & 0xF; set => Boost0 = (byte)(Boost0 & ~0xF | (value & 0xF)); } - [Category(Battle)] - public int BoostATK { get => Boost0 >> 4; set => Boost0 = (byte)(Boost0 & 0xF | (value << 4)); } - - [Category(Battle)] - public int BoostDEF { get => Boost1 & 0xF; set => Boost1 = (byte)(Boost1 & ~0xF | (value & 0xF)); } - [Category(Battle)] - public int BoostSPA { get => Boost1 >> 4; set => Boost1 = (byte)(Boost1 & 0xF | (value << 4)); } - - [Category(Battle)] - public int BoostSPD { get => Boost2 & 0xF; set => Boost2 = (byte)(Boost2 & ~0xF | (value & 0xF)); } - [Category(Battle)] - public int BoostSPE { get => Boost2 >> 4; set => Boost2 = (byte)(Boost2 & 0xF | (value << 4)); } - - [Category(Battle)] - public int BoostACC { get => Boost0 & 0xF; set => Boost0 = (byte)(Boost3 & ~0xF | (value & 0xF)); } - [Category(Battle)] - public int BoostCRIT { get => (Boost3 >> 4) & 3; set => Boost3 = (byte)(Boost3 & ~0x30 | ((value & 3) << 4)); } - [Category(Battle)] - public int BoostPP { get => (Boost3 >> 6) & 3; set => Boost3 = (byte)(Boost3 & 0x3F | ((value & 3) << 6)); } - - [Category(Heal), Description("Raw value of the Heal enum."), RefreshProperties(RefreshProperties.All)] - public int HealValue - { - get => (int) HealAmount; - set => HealAmount = (HealValue)value; - } + public Item(byte[] data) => this = data.ToStructure(); + public readonly byte[] Write() => this.ToBytes(); + private const string Battle = "Battle"; + private const string Field = "Field"; + private const string Mart = "Mart"; + private const string Heal = "Heal"; + + #region Structure + private ushort Price; + + [Category(Battle)] + public byte HeldEffect { get; set; } + + public byte HeldArgument { get; set; } + public byte NaturalGiftEffect { get; set; } + public byte FlingEffect { get; set; } + public byte FlingPower { get; set; } + public byte NaturalGiftPower { get; set; } + public ushort Packed { get; set; } + + [Category(Field), Description("Routine # to call when used; 0=unusable.")] + public byte EffectField { get; set; } + + [Category(Battle), Description("Routine # to call when used; 0=unusable.")] + public byte EffectBattle { get; set; } // Battle Type + + public byte Unk_0xC { get; set; } // 0 or 1 + public byte Unk_0xD { get; set; } // Classification (0-3 Battle, 4 Balls, 5 Mail) + private byte Consumable { get; set; } // 4 bits for use consume, 4 bits for use not consumed + public byte SortIndex { get; set; } + public BattleStatusFlags CureInflict { get; set; } // Bitflags + private byte Boost0; // Revive 1, Sacred Ash 3, Rare Candy 5, EvoStone 8, upper4 for BoostAtk + private byte Boost1; // DEF, SPA + private byte Boost2; // SPD, SPE + private byte Boost3; // ACC, CRIT PPUpFlags + public ItemFlags1 FunctionFlags0 { get; set; } + public ItemFlags2 FunctionFlags1 { get; set; } + + [Category(Field), Description("Adds EVs to the HP stat.")] + public sbyte EVHP { get; set; } + + [Category(Field), Description("Adds EVs to the Attack stat.")] + public sbyte EVATK { get; set; } + + [Category(Field), Description("Adds EVs to the Defense stat.")] + public sbyte EVDEF { get; set; } + + [Category(Field), Description("Adds EVs to the Speed stat.")] + public sbyte EVSPE { get; set; } + + [Category(Field), Description("Adds EVs to the Sp. Attack stat.")] + public sbyte EVSPA { get; set; } + + [Category(Field), Description("Adds EVs to the Sp. Defense stat.")] + public sbyte EVSPD { get; set; } + + [Category(Heal), Description("Determines the healing percent, or if a flat value is used."), RefreshProperties(RefreshProperties.All)] + public Heal HealAmount { get; set; } + + [Category(Field), Description("PP to be added to the move's current PP if used.")] + public byte PPGain { get; set; } + + public sbyte Friendship1 { get; set; } + public sbyte Friendship2 { get; set; } + public sbyte Friendship3 { get; set; } + public byte _0x23, _0x24; + #endregion + + [Category(Mart), RefreshProperties(RefreshProperties.All)] + public int BuyPrice { readonly get => Price * 10; set => Price = (ushort)(value / 10); } + + [Category(Mart), ReadOnly(true)] + public int SellPrice { readonly get => Price * 5; set => Price = (ushort)(value / 5); } + + [Category(Battle)] + public int NaturalGiftType { readonly get => Packed & 0x1F; set => Packed = (ushort)((NaturalGiftEffect & ~0x1F) | value); } + + [Category(Battle)] + public bool Flag1 { readonly get => ((Packed >> 5) & 1) == 1; set => Packed = (ushort)((Packed & ~(1 << 5)) | ((value ? 1 : 0) << 5)); } + + [Category(Battle)] + public bool Flag2 { readonly get => ((Packed >> 6) & 1) == 1; set => Packed = (ushort)((Packed & ~(1 << 6)) | ((value ? 1 : 0) << 6)); } + + [Category(Field)] + public int PocketField { readonly get => (Packed >> 7) & 0xF; set => Packed = (ushort)((Packed & 0xF87F) | ((value & 0xF) << 7)); } + + [Category(Battle)] + public BattlePocket PocketBattle { readonly get => (BattlePocket)(Packed >> 11); set => Packed = (ushort)((Packed & 0x077F) | (((byte)value & 0x1F) << 11)); } + + [Category(Field)] + public bool Revive { readonly get => ((Boost0 >> 0) & 1) == 0; set => Boost0 = (byte)((Boost0 & ~(1 << 0)) | ((value ? 1 : 0) << 0)); } + + [Category(Field)] + public bool ReviveAll { readonly get => ((Boost0 >> 1) & 1) == 1; set => Boost0 = (byte)((Boost0 & ~(1 << 1)) | ((value ? 1 : 0) << 1)); } + + [Category(Field)] + public bool LevelUp { readonly get => ((Boost0 >> 2) & 1) == 1; set => Boost0 = (byte)((Boost0 & ~(1 << 2)) | ((value ? 1 : 0) << 2)); } + + [Category(Field)] + public bool EvoStone { readonly get => ((Boost0 >> 3) & 1) == 1; set => Boost0 = (byte)((Boost0 & ~(1 << 3)) | ((value ? 1 : 0) << 3)); } + + [Category(Battle)] + public int BoostATK { readonly get => Boost0 >> 4; set => Boost0 = (byte)((Boost0 & 0xF) | (value << 4)); } + + [Category(Battle)] + public int BoostDEF { readonly get => Boost1 & 0xF; set => Boost1 = (byte)((Boost1 & ~0xF) | (value & 0xF)); } + + [Category(Battle)] + public int BoostSPA { readonly get => Boost1 >> 4; set => Boost1 = (byte)((Boost1 & 0xF) | (value << 4)); } + + [Category(Battle)] + public int BoostSPD { readonly get => Boost2 & 0xF; set => Boost2 = (byte)((Boost2 & ~0xF) | (value & 0xF)); } + + [Category(Battle)] + public int BoostSPE { readonly get => Boost2 >> 4; set => Boost2 = (byte)((Boost2 & 0xF) | (value << 4)); } + + [Category(Battle)] + public int BoostACC { readonly get => Boost3 & 0xF; set => Boost3 = (byte)((Boost3 & ~0xF) | (value & 0xF)); } + + [Category(Battle)] + public int BoostCRIT { readonly get => (Boost3 >> 4) & 3; set => Boost3 = (byte)((Boost3 & ~0x30) | ((value & 3) << 4)); } + + [Category(Battle)] + public int BoostPP1 { readonly get => (Boost3 >> 6) & 1; set => Boost3 = (byte)((Boost3 & 0xBF) | ((value & 1) << 6)); } + + [Category(Battle)] + public int BoostPPMax { readonly get => (Boost3 >> 7) & 1; set => Boost3 = (byte)((Boost3 & 0x7F) | ((value & 1) << 7)); } + + [Category(Heal), Description("Raw value of the Heal enum."), RefreshProperties(RefreshProperties.All)] + public int HealValue + { readonly get => (int)HealAmount; + set => HealAmount = (Heal)value; } + + [Category(Heal), Description("Item is consumed when used."), RefreshProperties(RefreshProperties.All)] + public bool UseConsume { readonly get => (Consumable & 0xF) != 0; set => Consumable = (byte)((Consumable & 0xF0) | (value ? 1 : 0)); } + + [Category(Heal), Description("Item is not consumed when used."), RefreshProperties(RefreshProperties.All)] + public bool UseKeep { readonly get => (Consumable & 0xF0) != 0; set => Consumable = (byte)((Consumable & 0x0F) | (value ? 0x10 : 0)); } +} + +[Flags] +public enum ItemFlags1 : byte +{ + None, + RestorePP = 1 << 0, + RestorePPAll = 1 << 1, + RestoreHP = 1 << 2, + AddEVHP = 1 << 3, + AddEVAtk = 1 << 4, + AddEVDef = 1 << 5, + AddEVSpe = 1 << 6, + AddEVSpA = 1 << 7, } + +[Flags] +public enum ItemFlags2 : byte +{ + None, + AddEVSpD = 1 << 0, + AddEVAbove100 = 1 << 1, + AddFriendship1 = 1 << 2, + AddFriendship2 = 1 << 3, + AddFriendship3 = 1 << 4, + Unused1 = 1 << 5, + Unused2 = 1 << 6, + Unused3 = 1 << 7, +} + +[Flags] +public enum BattlePocket : byte +{ + None, + Ball = 1 << 0, + Boosts = 1 << 1, + Restore = 1 << 2, + Misc = 1 << 3, +} \ No newline at end of file diff --git a/pk3DS.Core/Structures/Gen6/Maison6.cs b/pk3DS.Core/Structures/Gen6/Maison6.cs index f16a009771..2897be109c 100644 --- a/pk3DS.Core/Structures/Gen6/Maison6.cs +++ b/pk3DS.Core/Structures/Gen6/Maison6.cs @@ -1,91 +1,130 @@ using System; using System.IO; -namespace pk3DS.Core.Structures +namespace pk3DS.Core.Structures; + +public static class Maison6 { - public class Maison6 + public class Trainer { - public class Trainer + public ushort Class; + public ushort Count; + public ushort[] Choices; + + public Trainer() { } + + public Trainer(byte[] data) + { + Class = BitConverter.ToUInt16(data, 0); + Count = BitConverter.ToUInt16(data, 2); + Choices = new ushort[Count]; + for (int i = 0; i < Count; i++) + Choices[i] = BitConverter.ToUInt16(data, 4 + (2 * i)); + } + + public byte[] Write() { - public ushort Class; - public ushort Count; - public ushort[] Choices; + using var ms = new MemoryStream(); + using var bw = new BinaryWriter(ms); + bw.Write(Class); + bw.Write(Count); + foreach (ushort Choice in Choices) + bw.Write(Choice); + return ms.ToArray(); + } + } - public Trainer() { } - public Trainer(byte[] data) - { - Class = BitConverter.ToUInt16(data, 0); - Count = BitConverter.ToUInt16(data, 2); - Choices = new ushort[Count]; - for (int i = 0; i < Count; i++) - Choices[i] = BitConverter.ToUInt16(data, 4 + 2 * i); - } - public byte[] Write() - { - using (var ms = new MemoryStream()) - using (var bw = new BinaryWriter(ms)) - { - bw.Write(Class); - bw.Write(Count); - foreach (ushort Choice in Choices) - bw.Write(Choice); - return ms.ToArray(); - } - } + public class Pokemon + { + public ushort Species; + public readonly ushort[] Moves = new ushort[4]; + private readonly byte EV; + public readonly bool[] EVs = new bool[6]; + public byte Nature; + public ushort Item; + public ushort Form; + + public int Move1 + { + get => Moves[0]; + set => Moves[0] = (ushort)value; + } + public int Move2 + { + get => Moves[1]; + set => Moves[1] = (ushort)value; + } + public int Move3 + { + get => Moves[2]; + set => Moves[2] = (ushort)value; } - public class Pokemon + public int Move4 { - public ushort Species; - public readonly ushort[] Moves = new ushort[4]; - private readonly byte EV; - public readonly bool[] EVs = new bool[6]; - public byte Nature; - public ushort Item; - public ushort Form; + get => Moves[3]; + set => Moves[3] = (ushort)value; + } + public bool HP + { + get => EVs[0]; + set => EVs[0] = value; + } + public bool ATK + { + get => EVs[1]; + set => EVs[1] = value; + } + public bool DEF + { + get => EVs[2]; + set => EVs[2] = value; + } + public bool SPE + { + get => EVs[3]; + set => EVs[3] = value; + } + public bool SPA + { + get => EVs[4]; + set => EVs[4] = value; + } + public bool SPD + { + get => EVs[5]; + set => EVs[5] = value; + } - public int Move1 { get { return Moves[0]; } set { Moves[0] = (ushort)value; } } - public int Move2 { get { return Moves[1]; } set { Moves[1] = (ushort)value; } } - public int Move3 { get { return Moves[2]; } set { Moves[2] = (ushort)value; } } - public int Move4 { get { return Moves[3]; } set { Moves[3] = (ushort)value; } } - public bool HP { get { return EVs[0]; } set { EVs[0] = value; } } - public bool ATK { get { return EVs[1]; } set { EVs[1] = value; } } - public bool DEF { get { return EVs[2]; } set { EVs[2] = value; } } - public bool SPE { get { return EVs[3]; } set { EVs[3] = value; } } - public bool SPA { get { return EVs[4]; } set { EVs[4] = value; } } - public bool SPD { get { return EVs[5]; } set { EVs[5] = value; } } + public Pokemon(byte[] data) + { + Species = BitConverter.ToUInt16(data, 0); + for (int i = 0; i < 4; i++) + Moves[i] = BitConverter.ToUInt16(data, 2 + (2 * i)); + EV = data[0xA]; + for (int i = 0; i < 6; i++) + EVs[i] = ((EV >> i) & 1) == 1; + Nature = data[0xB]; + Item = BitConverter.ToUInt16(data, 0xC); + Form = BitConverter.ToUInt16(data, 0xE); + } - public Pokemon(byte[] data) - { - Species = BitConverter.ToUInt16(data, 0); - for (int i = 0; i < 4; i++) - Moves[i] = BitConverter.ToUInt16(data, 2 + 2*i); - EV = data[0xA]; - for (int i = 0; i < 6; i++) - EVs[i] = ((EV >> i) & 1) == 1; - Nature = data[0xB]; - Item = BitConverter.ToUInt16(data, 0xC); - Form = BitConverter.ToUInt16(data, 0xE); - } - public byte[] Write() - { - using (var ms = new MemoryStream()) - using (var bw = new BinaryWriter(ms)) - { - bw.Write(Species); - foreach (ushort Move in Moves) - bw.Write(Move); + public byte[] Write() + { + using var ms = new MemoryStream(); + using var bw = new BinaryWriter(ms); + bw.Write(Species); + foreach (ushort Move in Moves) + bw.Write(Move); - int ev = EV & 0xC0; - for (int i = 0; i < EVs.Length; i++) - ev |= EVs[i] ? 1 << i : 0; - bw.Write((byte)ev); + int ev = EV & 0xC0; + for (int i = 0; i < EVs.Length; i++) + ev |= EVs[i] ? 1 << i : 0; + bw.Write((byte)ev); - bw.Write(Nature); - bw.Write(Item); - bw.Write(Form); - return ms.ToArray(); - } - } + bw.Write(Nature); + bw.Write(Item); + bw.Write(Form); + return ms.ToArray(); } } -} +} \ No newline at end of file diff --git a/pk3DS.Core/Structures/Gen6/MegaEvolution6.cs b/pk3DS.Core/Structures/Gen6/MegaEvolution6.cs index fad23a8e73..6e495d91df 100644 --- a/pk3DS.Core/Structures/Gen6/MegaEvolution6.cs +++ b/pk3DS.Core/Structures/Gen6/MegaEvolution6.cs @@ -1,42 +1,44 @@ using System.IO; -namespace pk3DS.Core.Structures +namespace pk3DS.Core.Structures; + +public class MegaEvolutions { - public class MegaEvolutions + public ushort[] Form; + public ushort[] Method; + public ushort[] Argument; + public ushort[] u6; + + public MegaEvolutions(byte[] data) { - public ushort[] Form, Method, Argument, u6; - public MegaEvolutions(byte[] data) + if (data.Length < 0x10 || data.Length % 8 != 0) return; + Form = new ushort[data.Length / 8]; + Method = new ushort[data.Length / 8]; + Argument = new ushort[data.Length / 8]; + u6 = new ushort[data.Length / 8]; + using var br = new BinaryReader(new MemoryStream(data)); + for (int i = 0; i < Form.Length; i++) { - if (data.Length < 0x10 || data.Length % 8 != 0) return; - Form = new ushort[data.Length / 8]; - Method = new ushort[data.Length / 8]; - Argument = new ushort[data.Length / 8]; - u6 = new ushort[data.Length / 8]; - using (BinaryReader br = new BinaryReader(new MemoryStream(data))) - for (int i = 0; i < Form.Length; i++) - { - Form[i] = br.ReadUInt16(); - Method[i] = br.ReadUInt16(); - Argument[i] = br.ReadUInt16(); - u6[i] = br.ReadUInt16(); - } + Form[i] = br.ReadUInt16(); + Method[i] = br.ReadUInt16(); + Argument[i] = br.ReadUInt16(); + u6[i] = br.ReadUInt16(); } - public byte[] Write() + } + + public byte[] Write() + { + using var ms = new MemoryStream(); + using var bw = new BinaryWriter(ms); + for (int i = 0; i < Form.Length; i++) { - using (MemoryStream ms = new MemoryStream()) - using (BinaryWriter bw = new BinaryWriter(ms)) - { - for (int i = 0; i < Form.Length; i++) - { - if (Method[i] == 0) - { Form[i] = Argument[i] = 0; } // No method to evolve, clear information. - bw.Write(Form[i]); - bw.Write(Method[i]); - bw.Write(Argument[i]); - bw.Write(u6[i]); - } - return ms.ToArray(); - } + if (Method[i] == 0) + { Form[i] = Argument[i] = 0; } // No method to evolve, clear information. + bw.Write(Form[i]); + bw.Write(Method[i]); + bw.Write(Argument[i]); + bw.Write(u6[i]); } + return ms.ToArray(); } -} +} \ No newline at end of file diff --git a/pk3DS.Core/Structures/Gen6/Move6.cs b/pk3DS.Core/Structures/Gen6/Move6.cs deleted file mode 100644 index 2739463332..0000000000 --- a/pk3DS.Core/Structures/Gen6/Move6.cs +++ /dev/null @@ -1,119 +0,0 @@ -using System; -using System.IO; - -namespace pk3DS.Core.Structures -{ - public class Move - { - public byte Type, Quality, Category, Power, Accuracy, PP, Priority, InflictPercent, - HitMin, HitMax, TurnMin, TurnMax, CritStage, Flinch, Recoil, Targeting, - Stat1, Stat2, Stat3, - Stat1Stage, Stat2Stage, Stat3Stage, - Stat1Percent, Stat2Percent, Stat3Percent; - - public Heal Healing; - public ushort Inflict, Effect; - public byte _0xB, _0x1E, _0x1F, _0x20, _0x21; - public Move(byte[] data) - { - Type = data[0]; - Quality = data[1]; - Category = data[2]; - Power = data[3]; - Accuracy = data[4]; - PP = data[5]; - Priority = data[6]; - HitMin = (byte)(data[7] & 0xF); - HitMax = (byte)(data[7] >> 4); - Inflict = BitConverter.ToUInt16(data, 0x8); - InflictPercent = data[0xA]; - _0xB = data[0xB]; - TurnMin = data[0xC]; - TurnMax = data[0xD]; - CritStage = data[0xE]; - Flinch = data[0xF]; - Effect = BitConverter.ToUInt16(data, 0x10); - Recoil = data[0x12]; - Healing = new Heal(data[0x13]); - Targeting = data[0x14]; - Stat1 = data[0x15]; - Stat2 = data[0x16]; - Stat3 = data[0x17]; - Stat1Stage = data[0x18]; - Stat2Stage = data[0x19]; - Stat3Stage = data[0x1A]; - Stat1Percent = data[0x1B]; - Stat2Percent = data[0x1C]; - Stat3Percent = data[0x1D]; - _0x1E = data[0x1E]; - _0x1F = data[0x1F]; - _0x20 = data[0x20]; - _0x21 = data[0x21]; - } - public byte[] Write() - { - using (MemoryStream ms = new MemoryStream()) - using (BinaryWriter bw = new BinaryWriter(ms)) - { - bw.Write(Type); - bw.Write(Quality); - bw.Write(Category); - bw.Write(Power); - bw.Write(Accuracy); - bw.Write(PP); - bw.Write(Priority); - bw.Write((byte)(HitMin | (HitMax << 4))); - bw.Write(Inflict); - bw.Write(InflictPercent); - bw.Write(_0xB); - bw.Write(TurnMin); - bw.Write(TurnMax); - bw.Write(CritStage); - bw.Write(Flinch); - bw.Write(Effect); - bw.Write(Recoil); - bw.Write(Healing.Write()); - bw.Write(Targeting); - bw.Write(Stat1); - bw.Write(Stat2); - bw.Write(Stat3); - bw.Write(Stat1Stage); - bw.Write(Stat2Stage); - bw.Write(Stat3Stage); - bw.Write(Stat1Percent); - bw.Write(Stat2Percent); - bw.Write(Stat3Percent); - bw.Write(_0x1E); - bw.Write(_0x1F); - bw.Write(_0x20); - bw.Write(_0x21); - return ms.ToArray(); - } - } - public class Heal - { - public byte Val; - public bool Full, Half, Quarter, Value; - public Heal(byte val) - { - Val = val; - Full = Val == 0xFF; - Half = Val == 0xFE; - Quarter = Val == 0xFD; - Value = Val < 0xFD; - } - public byte Write() - { - if (Value) - return Val; - if (Full) - return 0xFF; - if (Half) - return 0xFE; - if (Quarter) - return 0xFD; - return Val; - } - } - } -} diff --git a/pk3DS.Core/Structures/Gen6/TrainerData6.cs b/pk3DS.Core/Structures/Gen6/TrainerData6.cs new file mode 100644 index 0000000000..830407ade7 --- /dev/null +++ b/pk3DS.Core/Structures/Gen6/TrainerData6.cs @@ -0,0 +1,143 @@ +using System; +using System.IO; +using System.Linq; + +namespace pk3DS.Core.Structures; + +public class TrainerData6 +{ + public bool isORAS; + public int Format, Class; + public bool Item, Moves; + public byte BattleType, NumPokemon, AI; + public ushort[] Items = new ushort[4]; + public byte u1, u2, u3; + public ushort uORAS; + public bool Healer; + public byte Money; + public ushort Prize; + public Pokemon[] Team; + + public TrainerData6(byte[] trData, byte[] trPoke, bool ORAS) + { + using var ms = new MemoryStream(trData); + using var br = new BinaryReader(ms); + isORAS = ORAS; + Format = ORAS ? br.ReadUInt16() : br.ReadByte(); + Class = ORAS ? br.ReadUInt16() : br.ReadByte(); + if (ORAS) uORAS = br.ReadUInt16(); + Item = ((Format >> 1) & 1) == 1; + Moves = (Format & 1) == 1; + BattleType = br.ReadByte(); + NumPokemon = br.ReadByte(); + for (int i = 0; i < 4; i++) + Items[i] = br.ReadUInt16(); + AI = br.ReadByte(); + u1 = br.ReadByte(); + u2 = br.ReadByte(); + u3 = br.ReadByte(); + Healer = br.ReadByte() != 0; + Money = br.ReadByte(); + Prize = br.ReadUInt16(); + + // Fetch Team + Team = new Pokemon[NumPokemon]; + byte[][] TeamData = new byte[NumPokemon][]; + int dataLen = trPoke.Length / NumPokemon; + for (int i = 0; i < TeamData.Length; i++) + TeamData[i] = trPoke.Skip(i * dataLen).Take(dataLen).ToArray(); + for (int i = 0; i < NumPokemon; i++) + Team[i] = new Pokemon(TeamData[i], Item, Moves); + } + + public byte[] Write() + { + using var ms = new MemoryStream(); + using var bw = new BinaryWriter(ms); + Format = Convert.ToByte(Moves) + (Convert.ToByte(Item) << 1); + if (isORAS) + { bw.Write((ushort)Format); bw.Write((ushort)Class); bw.Write((ushort)0); } + else + { bw.Write((byte)Format); bw.Write((byte)Class); } + + bw.Write(BattleType); + bw.Write(NumPokemon); + bw.Write(Items[0]); + bw.Write(Items[1]); + bw.Write(Items[2]); + bw.Write(Items[3]); + + bw.Write(AI); + bw.Write(u1); + bw.Write(u2); + bw.Write(u3); + bw.Write(Convert.ToByte(Healer)); + bw.Write(Money); + bw.Write(Prize); + + return ms.ToArray(); + } + + public byte[] WriteTeam() + { + return Team.Aggregate(Array.Empty(), (i, pkm) => [.. i, .. pkm.Write(Item, Moves)]); + } + + public class Pokemon + { + public byte IVs; + public byte PID; + public ushort Level; + public ushort Species; + public ushort Form; + public int Ability; + public int Gender; + public int uBit; + public ushort Item; + public ushort[] Moves = new ushort[4]; + + public Pokemon(byte[] data, bool HasItem, bool HasMoves) + { + using var br = new BinaryReader(new MemoryStream(data)); + IVs = br.ReadByte(); + PID = br.ReadByte(); + Level = br.ReadUInt16(); + Species = br.ReadUInt16(); + Form = br.ReadUInt16(); + + Ability = PID >> 4; + Gender = PID & 3; + uBit = (PID >> 3) & 1; + + if (HasItem) + Item = br.ReadUInt16(); + if (HasMoves) + { + for (int i = 0; i < 4; i++) + Moves[i] = br.ReadUInt16(); + } + } + + public byte[] Write(bool HasItem, bool HasMoves) + { + using var ms = new MemoryStream(); + using var bw = new BinaryWriter(ms); + bw.Write(IVs); + PID = (byte)(((Ability & 0xF) << 4) | ((uBit & 1) << 3) | (Gender & 0x7)); + bw.Write(PID); + bw.Write(Level); + bw.Write(Species); + bw.Write(Form); + + if (HasItem) + bw.Write(Item); + if (HasMoves) + { + foreach (ushort Move in Moves) + bw.Write(Move); + } + + return ms.ToArray(); + } + } +} \ No newline at end of file diff --git a/pk3DS.Core/Structures/Gen6/trdata6.cs b/pk3DS.Core/Structures/Gen6/trdata6.cs deleted file mode 100644 index b636fa6fdb..0000000000 --- a/pk3DS.Core/Structures/Gen6/trdata6.cs +++ /dev/null @@ -1,142 +0,0 @@ -using System; -using System.IO; -using System.Linq; - -namespace pk3DS.Core.Structures -{ - public class trdata6 - { - public bool isORAS; - public int Format, Class; - public bool Item, Moves; - public byte BattleType, NumPokemon, AI; - public ushort[] Items = new ushort[4]; - public byte u1, u2, u3; - public ushort uORAS; - public bool Healer; - public byte Money; - public ushort Prize; - public Pokemon[] Team; - public trdata6(byte[] trData, byte[] trPoke, bool ORAS) - { - using (BinaryReader br = new BinaryReader(new MemoryStream(trData))) - { - isORAS = ORAS; - Format = ORAS ? br.ReadUInt16() : br.ReadByte(); - Class = ORAS ? br.ReadUInt16() : br.ReadByte(); - if (ORAS) uORAS = br.ReadUInt16(); - Item = ((Format >> 1) & 1) == 1; - Moves = (Format & 1) == 1; - BattleType = br.ReadByte(); - NumPokemon = br.ReadByte(); - for (int i = 0; i < 4; i++) - Items[i] = br.ReadUInt16(); - AI = br.ReadByte(); - u1 = br.ReadByte(); - u2 = br.ReadByte(); - u3 = br.ReadByte(); - Healer = br.ReadByte() != 0; - Money = br.ReadByte(); - Prize = br.ReadUInt16(); - - // Fetch Team - Team = new Pokemon[NumPokemon]; - byte[][] TeamData = new byte[NumPokemon][]; - int dataLen = trPoke.Length / NumPokemon; - for (int i = 0; i < TeamData.Length; i++) - TeamData[i] = trPoke.Skip(i * dataLen).Take(dataLen).ToArray(); - for (int i = 0; i < NumPokemon; i++) - Team[i] = new Pokemon(TeamData[i], Item, Moves); - } - } - public byte[] Write() - { - using (MemoryStream ms = new MemoryStream()) - using (BinaryWriter bw = new BinaryWriter(ms)) - { - Format = Convert.ToByte(Moves) + (Convert.ToByte(Item) << 1); - if (isORAS) - { bw.Write((ushort)Format); bw.Write((ushort)Class); bw.Write((ushort)0); } - else - { bw.Write((byte)Format); bw.Write((byte)Class); } - - bw.Write(BattleType); - bw.Write(NumPokemon); - bw.Write(Items[0]); - bw.Write(Items[1]); - bw.Write(Items[2]); - bw.Write(Items[3]); - - bw.Write(AI); - bw.Write(u1); - bw.Write(u2); - bw.Write(u3); - bw.Write(Convert.ToByte(Healer)); - bw.Write(Money); - bw.Write(Prize); - - return ms.ToArray(); - } - } - public byte[] WriteTeam() - { - return Team.Aggregate(new byte[0], (i, pkm) => i.Concat(pkm.Write(Item, Moves)).ToArray()); - } - - public class Pokemon - { - public byte IVs; - public byte PID; - public ushort Level; - public ushort Species; - public ushort Form; - public int Ability; - public int Gender; - public int uBit; - public ushort Item; - public ushort[] Moves = new ushort[4]; - - public Pokemon(byte[] data, bool HasItem, bool HasMoves) - { - using (BinaryReader br = new BinaryReader(new MemoryStream(data))) - { - IVs = br.ReadByte(); - PID = br.ReadByte(); - Level = br.ReadUInt16(); - Species = br.ReadUInt16(); - Form = br.ReadUInt16(); - - Ability = PID >> 4; - Gender = PID & 3; - uBit = (PID >> 3) & 1; - - if (HasItem) - Item = br.ReadUInt16(); - if (HasMoves) - for (int i = 0; i < 4; i++) - Moves[i] = br.ReadUInt16(); - } - } - public byte[] Write(bool HasItem, bool HasMoves) - { - using (MemoryStream ms = new MemoryStream()) - using (BinaryWriter bw = new BinaryWriter(ms)) - { - bw.Write(IVs); - PID = (byte)(((Ability & 0xF) << 4) | ((uBit & 1) << 3) | (Gender & 0x7)); - bw.Write(PID); - bw.Write(Level); - bw.Write(Species); - bw.Write(Form); - - if (HasItem) - bw.Write(Item); - if (HasMoves) - foreach (ushort Move in Moves) - bw.Write(Move); - return ms.ToArray(); - } - } - } - } -} diff --git a/pk3DS.Core/Structures/Gen7/Area7.cs b/pk3DS.Core/Structures/Gen7/Area7.cs new file mode 100644 index 0000000000..a1510d5cbb --- /dev/null +++ b/pk3DS.Core/Structures/Gen7/Area7.cs @@ -0,0 +1,110 @@ +using System.Collections.Generic; +using System.Linq; +using System.Text; +using pk3DS.Core.CTR; +using pk3DS.Core.Structures; + +namespace pk3DS.Core; + +public class Area7 +{ + public string Name => string.Join(" / ", Zones.Select(z => z.Name)); + public int FileNumber; + public bool HasTables; + public readonly List Tables; + public ZoneData7[] Zones; + + public Area7() + { + Tables = []; + } + + public string GetSummary(string[] speciesList) + { + var sb = new StringBuilder(); + sb.AppendLine("=========="); + sb.Append("Map: ").AppendLine(Name); + sb.Append("Tables: ").Append(Tables.Count / 2).AppendLine(); + for (int i = 0; i < Tables.Count / 2; i++) + { + sb.Append("Table ").Append(i + 1).AppendLine(" (Day):"); + sb.AppendLine(Tables[i * 2].GetSummary(speciesList)); + sb.Append("Table ").Append(i + 1).AppendLine(" (Night):"); + sb.AppendLine(Tables[(i * 2) + 1].GetSummary(speciesList)); + } + sb.AppendLine("=========="); + return sb.ToString(); + } + + private const string PackIdentifier = "EA"; + + public static byte[] GetDayNightTableBinary(IList tables) + { + byte[][] tabs = new byte[tables.Count / 2][]; + for (int i = 0; i < tables.Count; i += 2) + { + var table0 = tables[i + 0].Data; // day + var table1 = tables[i + 1].Data; // night + var arr = new byte[4 + table0.Length + table1.Length]; + table0.CopyTo(arr, 4); + table1.CopyTo(arr, 4 + table0.Length); + tabs[i / 2] = arr; + } + return Mini.PackMini(tabs, PackIdentifier); + } + + public static Area7[] GetArray(LazyGARCFile ed, ZoneData7[] zd) + { + int fileCount = ed.FileCount; + var numAreas = fileCount / 11; + var areas = new Area7[numAreas]; + for (int i = 0; i < numAreas; i++) + { + areas[i] = new Area7 + { + FileNumber = 9 + (11 * i), + Zones = zd.Where(z => z.AreaIndex == i).ToArray(), + }; + var md = ed[areas[i].FileNumber]; + if (md.Length == 0) + { + areas[i].HasTables = false; + continue; + } + + byte[][] Tables = Mini.UnpackMini(md, PackIdentifier); + areas[i].HasTables = Tables.Any(t => t.Length > 0); + if (!areas[i].HasTables) + continue; + + foreach (var Table in Tables) + { + var DayTable = Table.Skip(4).Take(0x164).ToArray(); + var NightTable = Table.Skip(0x168).ToArray(); + areas[i].Tables.Add(new EncounterTable(DayTable)); + areas[i].Tables.Add(new EncounterTable(NightTable)); + } + } + return areas; + } + + /// + /// Gets an annotated Area array + /// + /// Encounter Data GARC + /// ZoneData GARC + /// WorldData GARC + /// Location strings + /// Annotated Area Array + public static Area7[] GetArray(LazyGARCFile ed, LazyGARCFile zd, LazyGARCFile wd, string[] locationList) + { + var Worlds = wd.Files.Select(f => Mini.UnpackMini(f, "WD")[0]).ToArray(); + + byte[][] zdfiles = zd.Files; + var worldData = zdfiles[1]; + var zoneData = zdfiles[0]; + var zones = ZoneData7.GetZoneData7Array(zoneData, worldData, locationList, Worlds); + var areas = GetArray(ed, zones); + return areas; + } +} \ No newline at end of file diff --git a/pk3DS.Core/Structures/Gen7/Encounter7.cs b/pk3DS.Core/Structures/Gen7/Encounter7.cs new file mode 100644 index 0000000000..f97e2eaffa --- /dev/null +++ b/pk3DS.Core/Structures/Gen7/Encounter7.cs @@ -0,0 +1,21 @@ +using System.Text; + +namespace pk3DS.Core; + +public class Encounter7(uint val) +{ + public uint Species = val & 0x7FF; + public uint Forme = (val >> 11) & 0x1F; + public uint RawValue => Species | (Forme << 11); + + public string GetSummary(string[] speciesList) + { + var sb = new StringBuilder(); + sb.Append(speciesList[Species]); + if (Forme != 0) + sb.Append(" (Forme ").Append(Forme).Append(')'); + return sb.ToString(); + } + + public uint Dump(EncounterTable t) => RawValue | (uint)(t.MinLevel << 16) | (uint)(t.MaxLevel << 24); +} \ No newline at end of file diff --git a/pk3DS.Core/Structures/Gen7/EncounterGift7.cs b/pk3DS.Core/Structures/Gen7/EncounterGift7.cs index 04bfc39d8d..0c45ebc8e1 100644 --- a/pk3DS.Core/Structures/Gen7/EncounterGift7.cs +++ b/pk3DS.Core/Structures/Gen7/EncounterGift7.cs @@ -1,87 +1,92 @@ using System; -namespace pk3DS.Core.Structures +namespace pk3DS.Core.Structures; + +public class EncounterGift7(byte[] data) : EncounterStatic { - public class EncounterGift7 : EncounterStatic + public const int SIZE = 0x14; + public readonly byte[] Data = data; + + public override int Species + { + get => BitConverter.ToUInt16(Data, 0x0); + set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x0); + } + + public int Form + { + get => Data[0x2]; + set => Data[0x2] = (byte)value; + } + + public int Level + { + get => Data[0x3]; + set => Data[0x3] = (byte)value; + } + + public int Gender + { + get => Data[0x4] & 1; + set => Data[0x4] = (byte)(value & 1); + } + + public bool ShinyLock + { + get => (Data[0x4] & 2) != 0; + set => Data[0x4] = (byte)((Data[0x4] & ~2) | (value ? 2 : 0)); + } + + public sbyte Ability + { + get => (sbyte)Data[0x6]; + set => Data[0x6] = (byte)value; + } + + public sbyte Nature + { + get => (sbyte)Data[0x7]; + set => Data[0x7] = (byte)value; + } + + public override int HeldItem + { + get => BitConverter.ToUInt16(Data, 0x8); + set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x8); + } + + public bool IsEgg + { + get => Data[0xA] == 1; + set => Data[0xA] = value ? (byte)1 : (byte)0; + } + + public int SpecialMove { - public const int SIZE = 0x14; - public readonly byte[] Data; - public EncounterGift7(byte[] data) - { - Data = data; - } - public override int Species - { - get => BitConverter.ToUInt16(Data, 0x0); - set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x0); - } - public int Form - { - get => Data[0x2]; - set => Data[0x2] = (byte)value; - } - public int Level - { - get => Data[0x3]; - set => Data[0x3] = (byte)value; - } - public int Gender - { - get => Data[0x4] & 1; - set => Data[0x4] = (byte)(value & 1); - } - public bool ShinyLock - { - get => (Data[0x4] & 2) != 0; - set => Data[0x4] = (byte)((Data[0x4] & ~2) | (value ? 2 : 0)); - } - public sbyte Ability - { - get => (sbyte)Data[0x6]; - set => Data[0x6] = (byte)value; - } - public sbyte Nature - { - get => (sbyte)Data[0x7]; - set => Data[0x7] = (byte)value; - } - public override int HeldItem - { - get => BitConverter.ToUInt16(Data, 0x8); - set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x8); - } - public bool IsEgg - { - get => Data[0xA] == 1; - set => Data[0xA] = (byte)(value ? 1 : 0); - } - public int SpecialMove - { - get => BitConverter.ToUInt16(Data, 0xC); - set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0xC); - } - public bool IV3 => (sbyte) Data[0xE] < 0 && (sbyte) Data[0xE] + 1 == -3; + get => BitConverter.ToUInt16(Data, 0xC); + set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0xC); + } - public string GetSummary() - { - var str = $"new EncounterStatic {{ Gift = true, Species = {Species:000}, Level = {Level:00}, Location = -01, "; - if (Ability > -1) - str += $"Ability = {1 << Ability}, "; - if (Nature > -1) - str += $"Nature = {Nature}, "; - if (Form != 0) - str += $"Form = {Form}, "; - if (ShinyLock) - str += "Shiny = false, "; - if (IV3) - str += "IV3 = true, "; - if (HeldItem != 0) - str += $"HeldItem = {HeldItem}, "; - if (SpecialMove != 0) - str += $"Moves = new[] {{{SpecialMove}}}, "; + public bool IV3 => (sbyte)Data[0xE] < 0 && (sbyte)Data[0xE] + 1 == -3; + + public string GetSummary() + { + var str = $"new EncounterStatic {{ Gift = true, Species = {Species:000}, Level = {Level:00}, Location = -01, "; + if (Ability > -1) + str += $"Ability = {1 << Ability}, "; + if (Nature > -1) + str += $"Nature = {Nature}, "; + if (Form != 0) + str += $"Form = {Form}, "; + if (ShinyLock) + str += "Shiny = false, "; + if (IV3) + str += "IV3 = true, "; + if (HeldItem != 0) + str += $"HeldItem = {HeldItem}, "; + if (SpecialMove != 0) + str += $"Moves = new[] {{{SpecialMove}}}, "; - str = str.Trim() + " },"; - return str; - } + return str.Trim() + " },"; } -} +} \ No newline at end of file diff --git a/pk3DS.Core/Structures/Gen7/EncounterStatic7.cs b/pk3DS.Core/Structures/Gen7/EncounterStatic7.cs index e89a04f17b..714168c251 100644 --- a/pk3DS.Core/Structures/Gen7/EncounterStatic7.cs +++ b/pk3DS.Core/Structures/Gen7/EncounterStatic7.cs @@ -1,146 +1,194 @@ using System; using System.Linq; -namespace pk3DS.Core.Structures +namespace pk3DS.Core.Structures; + +public class EncounterStatic7(byte[] data) : EncounterStatic { - public class EncounterStatic7 : EncounterStatic + public const int SIZE = 0x38; + public readonly byte[] Data = data; + + public override int Species { - public const int SIZE = 0x38; - public readonly byte[] Data; - public EncounterStatic7(byte[] data) - { - Data = data; - } - public override int Species - { - get => BitConverter.ToUInt16(Data, 0x0); - set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x0); - } - public int Form - { - get => Data[0x2]; - set => Data[0x2] = (byte)value; - } - public int Level + get => BitConverter.ToUInt16(Data, 0x0); + set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x0); + } + + public int Form + { + get => Data[0x2]; + set => Data[0x2] = (byte)value; + } + + public int Level + { + get => Data[0x3]; + set => Data[0x3] = (byte)value; + } + + public override int HeldItem + { + get { - get => Data[0x3]; - set => Data[0x3] = (byte)value; + int item = BitConverter.ToInt16(Data, 0x4); + if (item < 0) item = 0; + return item; } - public override int HeldItem + set { - get - { - int item = BitConverter.ToInt16(Data, 0x4); - if (item < 0) item = 0; - return item; - } - set - { - if (value == 0) value = -1; - BitConverter.GetBytes((short)value).CopyTo(Data, 0x4); - } + if (value == 0) value = -1; + BitConverter.GetBytes((short)value).CopyTo(Data, 0x4); } + } - public bool ShinyLock - { - get => (Data[0x6] & 2) >> 1 == 1; - set => Data[0x6] = (byte)(Data[0x6] & ~2 | (value ? 2 : 0)); - } - public int Gender + public bool Shiny + { + get => (Data[0x6] & 1) >> 1 == 1; + set => Data[0x6] = (byte)((Data[0x6] & ~1) | (value ? 1 : 0)); + } + + public bool ShinyLock + { + get => (Data[0x6] & 2) >> 1 == 1; + set => Data[0x6] = (byte)((Data[0x6] & ~2) | (value ? 2 : 0)); + } + + public int Gender + { + get => (Data[0x6] & 0xC) >> 2; + set => Data[0x6] = (byte)((Data[0x6] & ~0xC) | ((value & 3) << 2)); + } + + public int Ability + { + get => (Data[0x6] & 0x70) >> 4; + set => Data[0x6] = (byte)((Data[0x6] & ~0x70) | ((value & 7) << 4)); + } + + public bool Unk_7 + { + get => (Data[0x7] & 1) >> 0 == 1; + set => Data[0x7] = (byte)((Data[0x7] & ~1) | (value ? 1 : 0)); + } + + public bool Unk_7_1 + { + get => (Data[0x7] & 2) >> 1 == 1; + set => Data[0x7] = (byte)((Data[0x7] & ~2) | (value ? 2 : 0)); + } + + public int Map + { + get => BitConverter.ToInt16(Data, 0x8) - 1; + set => BitConverter.GetBytes((short)(value + 1)).CopyTo(Data, 0x8); + } + + public int[] RelearnMoves + { + get => + [ + BitConverter.ToUInt16(Data, 0xC), + BitConverter.ToUInt16(Data, 0xE), + BitConverter.ToUInt16(Data, 0x10), + BitConverter.ToUInt16(Data, 0x12), + ]; + set { - get => (Data[0x6] & 0xC) >> 2; - set => Data[0x6] = (byte)(Data[0x6] & ~0xC | ((value & 3) << 2)); - } - public int Ability - { get => (Data[0x6] & 0x70) >> 4; - set => Data[0x6] = (byte)(Data[0x6] & ~0x70 | ((value & 7) << 4)); + if (value.Length != 4) + return; + for (int i = 0; i < 4; i++) + BitConverter.GetBytes((ushort)value[i]).CopyTo(Data, 0xC + (i * 2)); } + } - public bool _7 - { get => (Data[0x7] & 1) >> 0 == 1; - set => Data[0x7] = (byte)(Data[0x7] & ~1 | (value ? 1 : 0)); - } - public bool _7_1 + public int Nature + { + get => Data[0x14]; + set => Data[0x14] = (byte)value; + } + + public int[] IVs + { + get => [(sbyte) Data[0x15], (sbyte) Data[0x16], (sbyte) Data[0x17], (sbyte) Data[0x18], (sbyte) Data[0x19], (sbyte) Data[0x1A], + ]; + set { - get => (Data[0x7] & 2) >> 1 == 1; - set => Data[0x7] = (byte)(Data[0x7] & ~2 | (value ? 2 : 0)); + if (value.Length != 6) + return; + for (int i = 0; i < 6; i++) + Data[i + 0x15] = (byte)Convert.ToSByte(value[i]); } - public int Map + } + + public int[] EVs + { + get => [Data[0x1B], Data[0x1C], Data[0x1D], Data[0x1E], Data[0x1F], Data[0x20]]; + set { - get => BitConverter.ToInt16(Data, 0x8) - 1; - set => BitConverter.GetBytes((short)(value + 1)).CopyTo(Data, 0x8); + if (value.Length != 6) + return; + for (int i = 0; i < 6; i++) + Data[i + 0x1B] = (byte)value[i]; } + } - public int[] RelearnMoves + public int Aura + { + get => Data[0x25]; + set => Data[0x25] = (byte)value; + } + + public int Allies + { + get => Data[0x27]; + set => Data[0x27] = (byte)value; + } + + public int Ally1 + { + get => Data[0x28]; + set => Data[0x28] = (byte)value; + } + + public int Ally2 + { + get => Data[0x2C]; + set => Data[0x2C] = (byte)value; + } + + public bool IV3 => (sbyte)Data[0x15] < 0 && (sbyte)Data[0x15] + 1 == -3; + + public string GetSummary() + { + var str = $"new EncounterStatic {{ Species = {Species:000}, Level = {Level:00}, Location = -01, "; + if (Ability != 0) + str += $"Ability = {1 << (Ability - 1)}, "; + if (ShinyLock) + str += "Shiny = false, "; + + if (IV3) { - get => new int[] - { - BitConverter.ToUInt16(Data, 0xC), - BitConverter.ToUInt16(Data, 0xE), - BitConverter.ToUInt16(Data, 0x10), - BitConverter.ToUInt16(Data, 0x12), - }; - set - { - if (value.Length != 4) - return; - for (int i = 0; i < 4; i++) - BitConverter.GetBytes((ushort)value[i]).CopyTo(Data, 0xC + i * 2); - } + str += "IV3 = true, "; } - public int Nature + else if (IVs.Any(z => z >= 0)) { - get => Data[0x14]; - set => Data[0x14] = (byte)value; + var iv = IVs.Select(z => z >= 0 ? $"{z:00}" : "-1"); + str += $"IVs = new[] {{{string.Join(",", iv)}}}, "; } - - public int[] IVs + if (RelearnMoves.Any(z => z != 0)) { - get => new int[] - { - (sbyte) Data[0x15], (sbyte) Data[0x16], (sbyte) Data[0x17], (sbyte) Data[0x18], (sbyte) Data[0x19], (sbyte) Data[0x1A] - }; - set - { - if (value.Length != 6) - return; - for (int i = 0; i < 6; i++) - Data[i + 0x15] = (byte)Convert.ToSByte(value[i]); - } + var mv = RelearnMoves.Select(z => $"{z:000}"); + str += $"Relearn = new[] {{{string.Join(",", mv)}}}, "; } - public bool IV3 => (sbyte) Data[0x15] < 0 && (sbyte) Data[0x15] + 1 == -3; + if (Form != 0) + str += $"Form = {Form}, "; + if (Gender != 0) + str += $"Gender = {Gender - 1}, "; + if (HeldItem != 0) + str += $"HeldItem = {HeldItem}, "; + if (Nature != 0) + str += $"Nature = {Nature - 1}, "; - public string GetSummary() - { - var str = $"new EncounterStatic {{ Species = {Species:000}, Level = {Level:00}, Location = -01, "; - if (Ability != 0) - str += $"Ability = {1 << (Ability - 1)}, "; - if (ShinyLock) - str += "Shiny = false, "; - - if (IV3) - str += "IV3 = true, "; - else if (IVs.Any(z => z >= 0)) - { - var iv = IVs.Select(z => z >= 0 ? $"{z:00}" : "-1"); - str += $"IVs = new[] {{{string.Join(",", iv)}}}, "; - } - if (RelearnMoves.Any(z => z != 0)) - { - var mv = RelearnMoves.Select(z => $"{z:000}"); - str += $"Relearn = new[] {{{string.Join(",", mv)}}}, "; - } - if (Form != 0) - str += $"Form = {Form}, "; - if (Gender != 0) - str += $"Gender = {Gender - 1}, "; - if (HeldItem != 0) - str += $"HeldItem = {HeldItem}, "; - if (Nature != 0) - str += $"Nature = {Nature - 1}, "; - - str = str.Trim() + " },"; - return str; - } + return str.Trim() + " },"; } -} +} \ No newline at end of file diff --git a/pk3DS.Core/Structures/Gen7/EncounterTable.cs b/pk3DS.Core/Structures/Gen7/EncounterTable.cs new file mode 100644 index 0000000000..2ef2c9420b --- /dev/null +++ b/pk3DS.Core/Structures/Gen7/EncounterTable.cs @@ -0,0 +1,146 @@ +using System; +using System.Linq; +using System.Text; + +namespace pk3DS.Core; + +public class EncounterTable +{ + public int MinLevel; + public int MaxLevel; + public readonly int[] Rates; + public readonly Encounter7[][] Encounter7s; + public readonly Encounter7[] AdditionalSOS; + + public readonly byte[] Data; + + public EncounterTable(byte[] t) + { + Rates = new int[10]; + Encounter7s = new Encounter7[9][]; + AdditionalSOS = new Encounter7[6]; + Data = (byte[])t.Clone(); + Reset(); + } + + public void Reset() + { + var t = Data; + MinLevel = t[0]; + MaxLevel = t[1]; + + for (int i = 0; i < Rates.Length; i++) + Rates[i] = t[2 + i]; + + for (int i = 0; i < Encounter7s.Length - 1; i++) + { + Encounter7s[i] = new Encounter7[10]; + var ofs = 0xC + (i * 4 * Encounter7s[i].Length); + for (int j = 0; j < Encounter7s[i].Length; j++) + Encounter7s[i][j] = new Encounter7(BitConverter.ToUInt32(t, ofs + (4 * j))); + } + + for (var i = 0; i < AdditionalSOS.Length; i++) + AdditionalSOS[i] = new Encounter7(BitConverter.ToUInt32(t, 0x14C + (4 * i))); + + Encounter7s[8] = AdditionalSOS; + } + + /// + /// Copies the first set of slots to all others, including weather if specified. + /// + /// Copy first set to weather slots (only first few get copied as Weather has less slots) + public void CopySlotsToSOS(bool PlusWeather = false) + { + int length = Encounter7s.Length - 2; // except weather + if (PlusWeather) + length++; // reinclude weather slots + var toBeCopiedTo = Encounter7s.Skip(1).Take(length); + + var first = Encounter7s[0]; + foreach (var slots in toBeCopiedTo) + { + for (int s = 0; s < slots.Length; s++) + { + slots[s].Species = first[s].Species; + slots[s].Forme = first[s].Forme; + } + } + } + + public void Write() + { + Data[0] = (byte)MinLevel; + Data[1] = (byte)MaxLevel; + for (int i = 0; i < Rates.Length; i++) + Data[2 + i] = (byte)Rates[i]; + + for (int i = 0; i < Encounter7s.Length - 1; i++) + { + var ofs = 0xC + (i * 4 * Encounter7s[i].Length); + for (int j = 0; j < Encounter7s[i].Length; j++) + BitConverter.GetBytes(Encounter7s[i][j].RawValue).CopyTo(Data, ofs + (4 * j)); + } + + for (int i = 0; i < AdditionalSOS.Length; i++) + BitConverter.GetBytes(AdditionalSOS[i].RawValue).CopyTo(Data, 0x14C + (4 * i)); + } + + public string GetAllies(int slotIndex, ReadOnlySpan speciesList) + { + string result = ""; + for (int i = 1; i < Encounter7s.Length; i++) + { + var ally = Encounter7s[i][slotIndex]; + if (ally?.Species is null or 0) + continue; + var name = speciesList[(int)ally.Species]; + if (result.Contains(name)) + continue; + result += result.Length == 0 ? name : ", " + name; + } + + if (result.Length == 0) + return "(None)"; + return result; + } + + public string GetSummary(string[] speciesList) + { + var sb = new StringBuilder(); + sb.Append("Encounters").Append(" (Levels ").Append(MinLevel).Append('-').Append(MaxLevel).Append("): "); + sb.AppendLine(); + AddSlotSetSummary(sb, speciesList); + + sb.Append("Additional SOS Weather encounters: "); + sb.AppendJoin(", ", AdditionalSOS + .Select(e => e.RawValue).Distinct().Select(e => new Encounter7(e)) + .Select(e => e.GetSummary(speciesList))).AppendLine(); + + return sb.ToString(); + } + + private void AddSlotSetSummary(StringBuilder sb, string[] speciesList) + { + var baseSlots = Encounter7s[0]; + for (int i = 0; i < baseSlots.Length; i++) + { + var species = baseSlots[i].Species; + if (species == 0) + continue; + + var rate = Rates[i]; + sb.Append($"\t({rate}%)\t{speciesList[species]}"); + var allies = GetAllies(i, speciesList); + if (allies.Length != 0) + sb.Append(" w/ ").Append(allies); + sb.AppendLine(); + } + } + + public void Reset(byte[] data) + { + Buffer.BlockCopy(data, 0, Data, 0, 0x164); + Reset(); + } +} \ No newline at end of file diff --git a/pk3DS.Core/Structures/Gen7/EncounterTrade7.cs b/pk3DS.Core/Structures/Gen7/EncounterTrade7.cs index ce4edb9751..9d2993f032 100644 --- a/pk3DS.Core/Structures/Gen7/EncounterTrade7.cs +++ b/pk3DS.Core/Structures/Gen7/EncounterTrade7.cs @@ -1,83 +1,83 @@ using System; -namespace pk3DS.Core.Structures +namespace pk3DS.Core.Structures; + +public class EncounterTrade7(byte[] data) : EncounterStatic { - public class EncounterTrade7 : EncounterStatic + public const int SIZE = 0x34; + + public readonly byte[] Data = data; + + public override int Species { - public const int SIZE = 0x34; + get => BitConverter.ToUInt16(Data, 0x0); + set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x0); + } - public readonly byte[] Data; - public EncounterTrade7(byte[] data) - { - Data = data; - } - public override int Species - { - get { return BitConverter.ToUInt16(Data, 0x0); } - set { BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x0); } - } - public int String1 - { - get { return BitConverter.ToUInt16(Data, 0x2); } - set { BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x2); } - } - public int Form { get { return Data[0x4]; } set { Data[0x4] = (byte)value; } } - public int Level { get { return Data[0x5]; } set { Data[0x5] = (byte)value; } } - public int[] IVs + public int String1 + { + get => BitConverter.ToUInt16(Data, 0x2); + set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x2); + } + + public int Form { get => Data[0x4]; set => Data[0x4] = (byte)value; } + public int Level { get => Data[0x5]; set => Data[0x5] = (byte)value; } + + public int[] IVs + { + get => + [ + (sbyte) Data[0x6], (sbyte) Data[0x7], (sbyte) Data[0x8], (sbyte) Data[0x9], (sbyte) Data[0xA], (sbyte) Data[0xB], + ]; + set { - get - { - return new int[] - { - (sbyte) Data[0x6], (sbyte) Data[0x7], (sbyte) Data[0x8], (sbyte) Data[0x9], (sbyte) Data[0xA], (sbyte) Data[0xB] - }; - } - set - { - if (value.Length != 6) - return; - for (int i = 0; i < 6; i++) - Data[i + 0x6] = (byte)Convert.ToSByte(value[i]); - } + if (value.Length != 6) + return; + for (int i = 0; i < 6; i++) + Data[i + 0x6] = (byte)Convert.ToSByte(value[i]); } - public int Ability { get { return Data[0xC]; } set { Data[0xC] = (byte)value; } } - public int Nature { get { return Data[0xD]; } set { Data[0xD] = (byte)value; } } - public int Gender { get { return Data[0xE]; } set { Data[0xE] = (byte)value; } } - public int TID { get { return BitConverter.ToUInt16(Data, 0x10); } set { BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x10); } } - public int SID { get { return BitConverter.ToUInt16(Data, 0x12); } set { BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x12); } } - public uint ID { get { return BitConverter.ToUInt32(Data, 0x10); } set { BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x10); } } - public override int HeldItem + } + + public int Ability { get => Data[0xC]; set => Data[0xC] = (byte)value; } + public int Nature { get => Data[0xD]; set => Data[0xD] = (byte)value; } + public int Gender { get => Data[0xE]; set => Data[0xE] = (byte)value; } + public int TID { get => BitConverter.ToUInt16(Data, 0x10); set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x10); } + public int SID { get => BitConverter.ToUInt16(Data, 0x12); set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x12); } + public uint ID { get => BitConverter.ToUInt32(Data, 0x10); set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x10); } + + public override int HeldItem + { + get { - get - { - int item = BitConverter.ToInt16(Data, 0x14); - if (item < 0) item = 0; - return item; - } - set - { - if (value == 0) value = -1; - BitConverter.GetBytes((short)value).CopyTo(Data, 0x14); - } + int item = BitConverter.ToInt16(Data, 0x14); + if (item < 0) item = 0; + return item; } - public int String2 + set { - get { return BitConverter.ToUInt16(Data, 0x18); } - set { BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x18); } + if (value == 0) value = -1; + BitConverter.GetBytes((short)value).CopyTo(Data, 0x14); } - public int trGender { get { return Data[0x1A]; } set { Data[0x1A] = (byte)value; } } + } - public ushort OT_Intensity { get { return BitConverter.ToUInt16(Data, 0x1C); } set { BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x1C); } } - public ushort OT_Memory { get { return BitConverter.ToUInt16(Data, 0x1E); } set { BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x1E); } } - public ushort OT_TextVar { get { return BitConverter.ToUInt16(Data, 0x20); } set { BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x20); } } - public ushort OT_Feeling { get { return BitConverter.ToUInt16(Data, 0x22); } set { BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x22); } } + public int String2 + { + get => BitConverter.ToUInt16(Data, 0x18); + set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x18); + } - // 0x24-0x2B are language IDs set depending on the game's current language; all default to -1 + public int OT_Gender { get => Data[0x1A]; set => Data[0x1A] = (byte)value; } - public int TradeRequestSpecies - { - get { return BitConverter.ToUInt16(Data, 0x2C); } - set { BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x2C); } - } + public ushort OT_Intensity { get => BitConverter.ToUInt16(Data, 0x1C); set => BitConverter.GetBytes(value).CopyTo(Data, 0x1C); } + public ushort OT_Memory { get => BitConverter.ToUInt16(Data, 0x1E); set => BitConverter.GetBytes(value).CopyTo(Data, 0x1E); } + public ushort OT_TextVar { get => BitConverter.ToUInt16(Data, 0x20); set => BitConverter.GetBytes(value).CopyTo(Data, 0x20); } + public ushort OT_Feeling { get => BitConverter.ToUInt16(Data, 0x22); set => BitConverter.GetBytes(value).CopyTo(Data, 0x22); } + + // 0x24-0x2B are language IDs set depending on the game's current language; all default to -1 + + public int TradeRequestSpecies + { + get => BitConverter.ToUInt16(Data, 0x2C); + set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x2C); } -} +} \ No newline at end of file diff --git a/pk3DS.Core/Structures/Gen7/Gen7SlotDumper.cs b/pk3DS.Core/Structures/Gen7/Gen7SlotDumper.cs new file mode 100644 index 0000000000..ab2f00a19d --- /dev/null +++ b/pk3DS.Core/Structures/Gen7/Gen7SlotDumper.cs @@ -0,0 +1,264 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using pk3DS.Core.Structures.PersonalInfo; + +namespace pk3DS.Core; + +public static class Gen7SlotDumper +{ + public static byte[][] GetRegularBinary(Area7[] areas, bool sm) + { + var dict = DumpAreas(areas, sm ? InaccessibleUnused_SM : InaccessibleUnused_USUM); + return GetLocationDump(dict).ToArray(); + } + public static byte[][] GetSOSBinary(Area7[] areas, PersonalTable personal, bool sm) + { + var dict = DumpAreas(areas, personal, sm ? InaccessibleUnused_SM : InaccessibleUnused_USUM); + return GetLocationDump(dict).ToArray(); + } + + private static Dictionary> DumpAreas(Area7[] areas, PersonalTable personal, IReadOnlyDictionary ignored) + { + var dict = new Dictionary>(); + for (var areaIndex = 0; areaIndex < areas.Length; areaIndex++) + { + var area = areas[areaIndex]; + for (var zoneIndex = 0; zoneIndex < area.Zones.Length; zoneIndex++) + { + var z = area.Zones[zoneIndex]; + int loc = z.ParentMap; + + var ignore = ignored.TryGetValue(z.Index, out var skip) ? skip : []; + if (!dict.ContainsKey(loc)) + dict.Add(loc, []); + + for (var index = 0; index < area.Tables.Count; index++) + { + var t = area.Tables[index]; + if (ignore.Contains((index >> 1) + 1)) // not zero indexed; bias +1 + { + Log(areaIndex, z.Index, index, z.Name); + continue; + } + + if (!dict.ContainsKey(loc)) + dict.Add(loc, []); + var table = dict[loc]; + var first = t.Encounter7s[0]; + if (first.All(sz => sz.Species == 731)) + { + Log(areaIndex, z.Index, index, z.Name, "Pikipek Table"); + continue; + } + + for (int i = 0; i < first.Length; i++) + { + // Only add the column SOS slots if the wild slot can SOS for help. + var wild = first[i]; + if (personal[(int)wild.Species].EscapeRate == 0) + continue; + + for (int j = 1; j < t.Encounter7s.Length - 1; j++) + table.Add(t.Encounter7s[j][i].Dump(t)); + } + + foreach (var s in t.AdditionalSOS) + table.Add(s.Dump(t)); + } + } + } + + return dict; + } + + private static Dictionary> DumpAreas(Area7[] areas, IReadOnlyDictionary ignored) + { + var dict = new Dictionary>(); + for (var areaIndex = 0; areaIndex < areas.Length; areaIndex++) + { + var area = areas[areaIndex]; + for (var zoneIndex = 0; zoneIndex < area.Zones.Length; zoneIndex++) + { + var z = area.Zones[zoneIndex]; + int loc = z.ParentMap; + + var ignore = ignored.TryGetValue(z.Index, out var skip) ? skip : []; + for (var index = 0; index < area.Tables.Count; index++) + { + if (ignore.Contains((index >> 1) + 1)) // not zero indexed; bias +1 + { + Log(areaIndex, z.Index, index, z.Name); + continue; + } + if (!dict.ContainsKey(loc)) + dict.Add(loc, []); + + var t = area.Tables[index]; + var first = t.Encounter7s[0]; + if (first.All(sz => sz.Species == 731)) + { + Log(areaIndex, z.Index, index, z.Name, "Pikipek Table"); + continue; + } + var table = dict[loc]; + foreach (var wild in first) + table.Add(wild.Dump(t)); + } + } + } + + return dict; + } + + private static void Log(int area, int zi, int ti, string zn, string msg = "Dictionary") + { + Console.WriteLine($"Skipped [{area}] {zi:00},{ti:00} ({(ti >> 1) + 1:00} {(ti % 2 == 0 ? "D" : "N")}) @ {zn}: {msg}"); + } + + public static bool IsZoneAccessible(int areaIndex, int zoneIndex, bool sm) + { + var dict = sm ? InaccessibleUnused_SM : InaccessibleUnused_USUM; + if (!dict.TryGetValue(areaIndex, out var zones)) + return false; + + return !zones.Contains((zoneIndex >> 1) + 1); + } + + private static IEnumerable GetLocationDump(Dictionary> dict) + { + foreach (var z in dict.OrderBy(z => z.Key)) + { + using var ms = new MemoryStream(); + using var bw = new BinaryWriter(ms); + bw.Write((ushort)z.Key); + foreach (var s in z.Value.Distinct()) + bw.Write(s); + yield return ms.ToArray(); + } + } + + public static readonly Dictionary InaccessibleUnused_USUM = new() + { + // Route 1 (Hau’oli Outskirts) + {000, [1, 2, 4, 5, 6, 7, 8, 9, 12, 13, 14, 15, 16, 17, 18] }, + + // Route 1 + {003, [3, 4, 5, 6, 7, 8, 10, 11, 18] }, + + // Melemele Sea + {010, [1, 2, 3, 9, 10, 12, 13, 14, 15, 16, 17, 18] }, + + // Route 1 (Hau’oli Outskirts) + {001, [1, 2, 3] }, + + // Route 3 + {006, [2, 5, 6, 7, 8, 9, 15] }, + + // Kala’e Bay + {008, [1, 3, 4, 10, 11, 12, 13, 14] }, + + // Hau’oli City (Beachfront) + {012, [2, 3, 4, 5, 6] }, + + // Hau’oli City (Shopping District) + {013, [1, 2, 7, 8] }, + + // Hau’oli City (Marina) + {014, [1, 2, 3, 4, 5, 6, 7, 8] }, + + // Hano Grand Resort + {086, [1, 2, 3, 4] }, + + // Memorial Hill + {097, [3, 4, 5, 6, 7, 8, 9] }, + + // Akala Outskirts + {098, [1, 2] }, + + // Tapu Village + {168, [2, 3, 4, 5, 6, 7, 8] }, + + // Route 14 + {169, [1] }, + + // Route 15 + {170, [5, 7, 8, 10] }, + + // Route 16 + {171, [1, 2, 3, 4, 6, 9, 10] }, + + // Malie City + {174, [1, 2, 3] }, + + // Ancient Poni Path + {265, [1, 2, 3, 4, 5, 6, 7, 8] }, + + // Poni Breaker Coast + {266, [9, 10, 11] }, + }; + + public static readonly Dictionary InaccessibleUnused_SM = new() + { + // Route 1 (Hau’oli Outskirts) + {000, [1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16] }, + + // Route 1 + {001, [4, 5, 6, 7, 8, 9, 14, 17] }, + + // Melemele Sea + {006, [1, 2, 3, 4, 10, 11, 12, 13, 14, 15, 16, 17] }, + + // Route 3 + {002, [2, 5, 6, 7, 8, 9, 15] }, + + // Kala’e Bay + {004, [1, 3, 4, 10, 11, 12, 13, 14] }, + + // Hau’oli City (Beachfront) + {007, [2, 3, 4, 5, 6] }, + + // Hau’oli City (Shopping District) + {008, [1, 2] }, + + // Hau’oli City (Marina) + {009, [1, 2, 3, 4, 5, 6, 7, 8] }, + + // Hano Grand Resort + {074, [1, 2, 3, 4] }, + + // Memorial Hill + {083, [3, 4, 5, 6, 7, 8, 9] }, + + // Akala Outskirts + {084, [1, 2] }, + + // Secluded Shore + {142, [1, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] }, + + // Route 12 + {149, [2, 3, 4, 5] }, + + // Tapu Village + {144, [2, 3, 4, 5, 6, 7, 8] }, + + // Route 14 + {145, [1] }, + + // Route 15 + {146, [5, 6, 7, 8, 10] }, + + // Route 16 + {147, [2, 3, 4, 9, 10] }, + + // Malie City + {150, [1, 2, 3] }, + + // Ancient Poni Path + {232, [1, 2, 3, 4, 5] }, + + // Poni Breaker Coast + {233, [6, 7, 8] }, + }; +} \ No newline at end of file diff --git a/pk3DS.Core/Structures/Gen7/Maison7.cs b/pk3DS.Core/Structures/Gen7/Maison7.cs index e837d27346..1e42f60236 100644 --- a/pk3DS.Core/Structures/Gen7/Maison7.cs +++ b/pk3DS.Core/Structures/Gen7/Maison7.cs @@ -1,91 +1,90 @@ using System; using System.IO; -namespace pk3DS.Core.Structures +namespace pk3DS.Core.Structures; + +public static class Maison7 { - public static class Maison7 + public class Trainer { - public class Trainer - { - public ushort Class; - public ushort Count; - public ushort[] Choices; + public ushort Class; + public ushort Count; + public ushort[] Choices; - public Trainer() { } - public Trainer(byte[] data) - { - Class = BitConverter.ToUInt16(data, 0); - Count = BitConverter.ToUInt16(data, 2); - Choices = new ushort[Count]; - for (int i = 0; i < Count; i++) - Choices[i] = BitConverter.ToUInt16(data, 4 + 2 * i); - } - public byte[] Write() - { - using (var ms = new MemoryStream()) - using (var bw = new BinaryWriter(ms)) - { - bw.Write(Class); - bw.Write(Count); - foreach (ushort Choice in Choices) - bw.Write(Choice); - return ms.ToArray(); - } - } + public Trainer() { } + + public Trainer(byte[] data) + { + Class = BitConverter.ToUInt16(data, 0); + Count = BitConverter.ToUInt16(data, 2); + Choices = new ushort[Count]; + for (int i = 0; i < Count; i++) + Choices[i] = BitConverter.ToUInt16(data, 4 + (2 * i)); } - public class Pokemon + + public byte[] Write() { - public ushort Species; - public readonly ushort[] Moves = new ushort[4]; - private readonly byte EV; - public readonly bool[] EVs = new bool[6]; - public byte Nature; - public ushort Item; - public ushort Form; + using var ms = new MemoryStream(); + using var bw = new BinaryWriter(ms); + bw.Write(Class); + bw.Write(Count); + foreach (ushort Choice in Choices) + bw.Write(Choice); + return ms.ToArray(); + } + } - public int Move1 { get => Moves[0]; set => Moves[0] = (ushort)value; } - public int Move2 { get => Moves[1]; set => Moves[1] = (ushort)value; } - public int Move3 { get => Moves[2]; set => Moves[2] = (ushort)value; } - public int Move4 { get => Moves[3]; set => Moves[3] = (ushort)value; } - public bool HP { get => EVs[0]; set => EVs[0] = value; } - public bool ATK { get => EVs[1]; set => EVs[1] = value; } - public bool DEF { get => EVs[2]; set => EVs[2] = value; } - public bool SPE { get => EVs[3]; set => EVs[3] = value; } - public bool SPA { get => EVs[4]; set => EVs[4] = value; } - public bool SPD { get => EVs[5]; set => EVs[5] = value; } + public class Pokemon + { + public ushort Species; + public readonly ushort[] Moves = new ushort[4]; + private readonly byte EV; + public readonly bool[] EVs = new bool[6]; + public byte Nature; + public ushort Item; + public ushort Form; + + public int Move1 { get => Moves[0]; set => Moves[0] = (ushort)value; } + public int Move2 { get => Moves[1]; set => Moves[1] = (ushort)value; } + public int Move3 { get => Moves[2]; set => Moves[2] = (ushort)value; } + public int Move4 { get => Moves[3]; set => Moves[3] = (ushort)value; } + public bool HP { get => EVs[0]; set => EVs[0] = value; } + public bool ATK { get => EVs[1]; set => EVs[1] = value; } + public bool DEF { get => EVs[2]; set => EVs[2] = value; } + public bool SPE { get => EVs[3]; set => EVs[3] = value; } + public bool SPA { get => EVs[4]; set => EVs[4] = value; } + public bool SPD { get => EVs[5]; set => EVs[5] = value; } + + public Pokemon(byte[] data) + { + Species = BitConverter.ToUInt16(data, 0); + for (int i = 0; i < 4; i++) + Moves[i] = BitConverter.ToUInt16(data, 2 + (2 * i)); + EV = data[0xA]; + for (int i = 0; i < 6; i++) + EVs[i] = ((EV >> i) & 1) == 1; + Nature = data[0xB]; + Item = BitConverter.ToUInt16(data, 0xC); + Form = BitConverter.ToUInt16(data, 0xE); + } - public Pokemon(byte[] data) - { - Species = BitConverter.ToUInt16(data, 0); - for (int i = 0; i < 4; i++) - Moves[i] = BitConverter.ToUInt16(data, 2 + 2 * i); - EV = data[0xA]; - for (int i = 0; i < 6; i++) - EVs[i] = ((EV >> i) & 1) == 1; - Nature = data[0xB]; - Item = BitConverter.ToUInt16(data, 0xC); - Form = BitConverter.ToUInt16(data, 0xE); - } - public byte[] Write() - { - using (var ms = new MemoryStream()) - using (var bw = new BinaryWriter(ms)) - { - bw.Write(Species); - foreach (ushort Move in Moves) - bw.Write(Move); + public byte[] Write() + { + using var ms = new MemoryStream(); + using var bw = new BinaryWriter(ms); + bw.Write(Species); + foreach (ushort Move in Moves) + bw.Write(Move); - int ev = EV & 0xC0; - for (int i = 0; i < EVs.Length; i++) - ev |= EVs[i] ? 1 << i : 0; - bw.Write((byte)ev); + int ev = EV & 0xC0; + for (int i = 0; i < EVs.Length; i++) + ev |= EVs[i] ? 1 << i : 0; + bw.Write((byte)ev); - bw.Write(Nature); - bw.Write(Item); - bw.Write(Form); - return ms.ToArray(); - } - } + bw.Write(Nature); + bw.Write(Item); + bw.Write(Form); + return ms.ToArray(); } } -} +} \ No newline at end of file diff --git a/pk3DS.Core/Structures/Gen7/TrainerAI.cs b/pk3DS.Core/Structures/Gen7/TrainerAI.cs new file mode 100644 index 0000000000..170f2137f1 --- /dev/null +++ b/pk3DS.Core/Structures/Gen7/TrainerAI.cs @@ -0,0 +1,19 @@ +using System; + +namespace pk3DS.Core.Structures; + +[Flags] +public enum TrainerAI : byte +{ + None = 0, + + Basic = 1 << 0, + Strong = 1 << 1, + Expert = 1 << 2, + + Doubles = 1 << 3, + NoWhiteout = 1 << 4, + BattleRoyal = 1 << 5, + PokeChange = 1 << 6, + UseItem = 1 << 7, +} \ No newline at end of file diff --git a/pk3DS.Core/Structures/Gen7/TrainerData7.cs b/pk3DS.Core/Structures/Gen7/TrainerData7.cs new file mode 100644 index 0000000000..d91e713d23 --- /dev/null +++ b/pk3DS.Core/Structures/Gen7/TrainerData7.cs @@ -0,0 +1,54 @@ +using System; +using System.Collections.Generic; + +namespace pk3DS.Core.Structures; + +public class TrainerData7 +{ + private readonly byte[] trdata; + public readonly List Pokemon = []; + + public int ID { get; set; } + public string Name { get; set; } + + public TrainerData7(byte[] tr = null, byte[] tp = null) + { + tr ??= new byte[0x14]; + tp ??= new byte[0x20]; + trdata = (byte[])tr.Clone(); + for (int i = 0; i < NumPokemon; i++) + { + byte[] poke = new byte[0x20]; + Array.Copy(tp, i * 0x20, poke, 0, 0x20); + Pokemon.Add(new TrainerPoke7(poke)); + } + } + + public int TrainerClass { get => BitConverter.ToUInt16(trdata, 0x00); set => BitConverter.GetBytes((ushort)value).CopyTo(trdata, 0x00); } + public BattleMode Mode { get => (BattleMode)trdata[2]; set => trdata[2] = (byte)value; } + public int NumPokemon { get => trdata[3]; set => trdata[3] = (byte)(value % 7); } + public int Item1 { get => BitConverter.ToUInt16(trdata, 0x04); set => BitConverter.GetBytes((ushort)value).CopyTo(trdata, 0x04); } + public int Item2 { get => BitConverter.ToUInt16(trdata, 0x06); set => BitConverter.GetBytes((ushort)value).CopyTo(trdata, 0x06); } + public int Item3 { get => BitConverter.ToUInt16(trdata, 0x08); set => BitConverter.GetBytes((ushort)value).CopyTo(trdata, 0x08); } + public int Item4 { get => BitConverter.ToUInt16(trdata, 0x0A); set => BitConverter.GetBytes((ushort)value).CopyTo(trdata, 0x0A); } + + public int AI { get => trdata[0x0C]; set => trdata[0x0C] = (byte)value; } + public bool Flag { get => trdata[0x0D] == 1; set => trdata[0x0D] = value ? (byte)1 : (byte)0; } + public int Money { get => trdata[0x11]; set => trdata[0x11] = (byte)value; } + + public void Write(out byte[] tr, out byte[] pk) + { + tr = trdata; + byte[] dat = new byte[TrainerPoke7.SIZE * NumPokemon]; + for (int i = 0; i < NumPokemon; i++) + Pokemon[i].Write().CopyTo(dat, TrainerPoke7.SIZE * i); + pk = dat; + } +} + +public enum BattleMode : byte +{ + Singles, + Doubles, + Multi, +} \ No newline at end of file diff --git a/pk3DS.Core/Structures/Gen7/TrainerPoke7.cs b/pk3DS.Core/Structures/Gen7/TrainerPoke7.cs new file mode 100644 index 0000000000..1d6ef29817 --- /dev/null +++ b/pk3DS.Core/Structures/Gen7/TrainerPoke7.cs @@ -0,0 +1,92 @@ +using System; + +namespace pk3DS.Core.Structures; + +public class TrainerPoke7 +{ + public const int SIZE = 0x20; + private readonly byte[] Data; + + public TrainerPoke7(byte[] d = null) + { + Data = (byte[])(d ?? new byte[SIZE]).Clone(); + if (Data.Length != 0x20) + throw new ArgumentException("Invalid trpoke7!"); + } + + public TrainerPoke7 Clone() + { + return new(Write()); + } + + public int Gender + { + get => Data[0] & 0x3; + set => Data[0] = (byte)((Data[0] & 0xFC) | (value & 0x3)); + } + + public int Ability + { + get => (Data[0] >> 4) & 0x3; + set => Data[0] = (byte)((Data[0] & 0xCF) | ((value & 0x3) << 4)); + } + + public int Nature { get => Data[1]; set => Data[1] = (byte)value; } + + public int EV_HP { get => Data[0x2]; set => Data[0x2] = (byte)value; } + public int EV_ATK { get => Data[0x3]; set => Data[0x3] = (byte)value; } + public int EV_DEF { get => Data[0x4]; set => Data[0x4] = (byte)value; } + public int EV_SPA { get => Data[0x5]; set => Data[0x5] = (byte)value; } + public int EV_SPD { get => Data[0x6]; set => Data[0x6] = (byte)value; } + public int EV_SPE { get => Data[0x7]; set => Data[0x7] = (byte)value; } + + private uint IV32 { get => BitConverter.ToUInt32(Data, 0x8); set => BitConverter.GetBytes(value).CopyTo(Data, 0x8); } + + public int IV_HP { get => (int)(IV32 >> 00) & 0x1F; set => IV32 = (uint)((IV32 & ~(0x1F << 00)) | (uint)((value > 31 ? 31 : value) << 00)); } + public int IV_ATK { get => (int)(IV32 >> 05) & 0x1F; set => IV32 = (uint)((IV32 & ~(0x1F << 05)) | (uint)((value > 31 ? 31 : value) << 05)); } + public int IV_DEF { get => (int)(IV32 >> 10) & 0x1F; set => IV32 = (uint)((IV32 & ~(0x1F << 10)) | (uint)((value > 31 ? 31 : value) << 10)); } + public int IV_SPA { get => (int)(IV32 >> 15) & 0x1F; set => IV32 = (uint)((IV32 & ~(0x1F << 15)) | (uint)((value > 31 ? 31 : value) << 15)); } + public int IV_SPD { get => (int)(IV32 >> 20) & 0x1F; set => IV32 = (uint)((IV32 & ~(0x1F << 20)) | (uint)((value > 31 ? 31 : value) << 20)); } + public int IV_SPE { get => (int)(IV32 >> 25) & 0x1F; set => IV32 = (uint)((IV32 & ~(0x1F << 25)) | (uint)((value > 31 ? 31 : value) << 25)); } + public bool Shiny { get => ((IV32 >> 30) & 1) == 1; set => IV32 = ((IV32 & ~0x40000000u) | (value ? 0x40000000u : 0)); } + + public int Level { get => Data[0xE]; set => Data[0xE] = (byte)value; } + public int Species { get => BitConverter.ToUInt16(Data, 0x10); set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x10); } + public int Form { get => Data[0x12]; set => Data[0x12] = (byte)value; } + + public int Item { get => BitConverter.ToUInt16(Data, 0x14); set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x14); } + public int Move1 { get => BitConverter.ToUInt16(Data, 0x18); set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x18); } + public int Move2 { get => BitConverter.ToUInt16(Data, 0x1A); set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x1A); } + public int Move3 { get => BitConverter.ToUInt16(Data, 0x1C); set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x1C); } + public int Move4 { get => BitConverter.ToUInt16(Data, 0x1E); set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x1E); } + + public int[] IVs + { + get => [IV_HP, IV_ATK, IV_DEF, IV_SPA, IV_SPD, IV_SPE]; + set + { + if (value?.Length != 6) return; + IV_HP = value[0]; IV_ATK = value[1]; IV_DEF = value[2]; + IV_SPA = value[3]; IV_SPD = value[4]; IV_SPE = value[5]; + } + } + + public int[] EVs + { + get => [EV_HP, EV_ATK, EV_DEF, EV_SPA, EV_SPD, EV_SPE]; + set + { + if (value?.Length != 6) return; + EV_HP = value[0]; EV_ATK = value[1]; EV_DEF = value[2]; + EV_SPA = value[3]; EV_SPD = value[4]; EV_SPE = value[5]; + } + } + + public int[] Moves + { + get => [Move1, Move2, Move3, Move4]; + set { if (value?.Length != 4) return; Move1 = value[0]; Move2 = value[1]; Move3 = value[2]; Move4 = value[3]; } + } + + public byte[] Write() => (byte[])Data.Clone(); +} \ No newline at end of file diff --git a/pk3DS.Core/Structures/Gen7/ZoneData7.cs b/pk3DS.Core/Structures/Gen7/ZoneData7.cs index 84da741e6f..25a3064eb7 100644 --- a/pk3DS.Core/Structures/Gen7/ZoneData7.cs +++ b/pk3DS.Core/Structures/Gen7/ZoneData7.cs @@ -1,68 +1,70 @@ using System; -namespace pk3DS.Core.Structures +namespace pk3DS.Core.Structures; + +public class ZoneData7 { - public class ZoneData7 + public const int SIZE = 0x54; + private readonly byte[] Data; + + public int WorldIndex; + public int AreaIndex; + public string Name { get; private set; } + public string LocationName { get; private set; } + public int Index { get; private set; } + + public ZoneData7(byte[] data) { - public const int SIZE = 0x54; - private readonly byte[] Data; + Data = (byte[])(data ?? new byte[SIZE]).Clone(); + } - public int WorldIndex; - public int AreaIndex; - public string Name { get; private set; } - public string LocationName { get; private set; } + public ZoneData7(byte[] data, int index) + { + Data = new byte[SIZE]; + Array.Copy(data, index * SIZE, Data, 0, SIZE); + } - public ZoneData7(byte[] data) - { - Data = (byte[])(data ?? new byte[SIZE]).Clone(); - } - public ZoneData7(byte[] data, int index) - { - Data = new byte[SIZE]; - Array.Copy(data, index * SIZE, Data, 0, SIZE); - } + // ZoneData Attributes + public int ParentMap + { + get => BitConverter.ToInt32(Data, 0x1C); + set => BitConverter.GetBytes(value).CopyTo(Data, 0x1C); + } - // ZoneData Attributes - public int ParentMap { - get => BitConverter.ToInt32(Data, 0x1C); - set => BitConverter.GetBytes(value).CopyTo(Data, 0x1C); - } - - // Info Tracking - public void SetZoneName(string[] locationList, int index) - { - LocationName = locationList[ParentMap]; - Name = $"{index:000} - {LocationName}"; - } + // Info Tracking + public void SetZoneName(string[] locationList, int index) + { + LocationName = locationList[ParentMap]; + Name = $"{index:000} - {LocationName}"; + Index = index; + } + public static ZoneData7[] GetArray(byte[] zoneData) + { + ZoneData7[] zd = new ZoneData7[zoneData.Length / SIZE]; + for (int i = 0; i < zd.Length; i++) + zd[i] = new ZoneData7(zoneData, i); + return zd; + } - public static ZoneData7[] GetArray(byte[] zoneData) + public static ZoneData7[] GetZoneData7Array(byte[] zoneData, byte[] worldData, string[] locationList, byte[][] worlds) + { + var zones = GetArray(zoneData); + for (int i = 0; i < zones.Length; i++) { - ZoneData7[] zd = new ZoneData7[zoneData.Length / SIZE]; - for (int i = 0; i < zd.Length; i++) - zd[i] = new ZoneData7(zoneData, i); - return zd; - } + zones[i].WorldIndex = BitConverter.ToUInt16(worldData, i * 0x2); + zones[i].SetZoneName(locationList, i); - public static ZoneData7[] GetZoneData7Array(byte[] zoneData, byte[] worldData, string[] locationList, byte[][] worlds) - { - var zones = ZoneData7.GetArray(zoneData); - for (int i = 0; i < zones.Length; i++) + var world = worlds[zones[i].WorldIndex]; + var mappingOffset = BitConverter.ToInt32(world, 0x8); + for (var ofs = mappingOffset; ofs < world.Length; ofs += 4) { - zones[i].WorldIndex = BitConverter.ToUInt16(worldData, i * 0x2); - zones[i].SetZoneName(locationList, i); - - var world = worlds[zones[i].WorldIndex]; - var mappingOffset = BitConverter.ToInt32(world, 0x8); - for (var ofs = mappingOffset; ofs < world.Length; ofs += 4) - { - if (BitConverter.ToUInt16(world, ofs) != i) - continue; - zones[i].AreaIndex = BitConverter.ToUInt16(world, ofs + 2); - break; - } + if (BitConverter.ToUInt16(world, ofs) != i) + continue; + zones[i].AreaIndex = BitConverter.ToUInt16(world, ofs + 2); + break; } - return zones; } + return zones; } -} +} \ No newline at end of file diff --git a/pk3DS.Core/Structures/Gen7/trdata7.cs b/pk3DS.Core/Structures/Gen7/trdata7.cs deleted file mode 100644 index 4a8b581a69..0000000000 --- a/pk3DS.Core/Structures/Gen7/trdata7.cs +++ /dev/null @@ -1,47 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace pk3DS.Core.Structures -{ - public class trdata7 - { - private readonly byte[] trdata; - public readonly List Pokemon = new List(); - - public int ID { get; set; } - public string Name { get; set; } - - public trdata7(byte[] tr = null, byte[] tp = null) - { - tr = tr ?? new byte[0x14]; - tp = tp ?? new byte[0x20]; - trdata = (byte[])tr.Clone(); - for (int i = 0; i < NumPokemon; i++) - { - byte[] poke = new byte[0x20]; - Array.Copy(tp, i * 0x20, poke, 0, 0x20); - Pokemon.Add(new trpoke7(poke)); - } - } - - public byte TrainerClass { get { return trdata[0]; } set { trdata[0] = value; } } - public int NumPokemon { get { return trdata[3]; } set { trdata[3] = (byte)(value%7); } } - public int Item1 { get { return BitConverter.ToUInt16(trdata, 0x04); } set { BitConverter.GetBytes((ushort)value).CopyTo(trdata, 0x04); } } - public int Item2 { get { return BitConverter.ToUInt16(trdata, 0x06); } set { BitConverter.GetBytes((ushort)value).CopyTo(trdata, 0x06); } } - public int Item3 { get { return BitConverter.ToUInt16(trdata, 0x08); } set { BitConverter.GetBytes((ushort)value).CopyTo(trdata, 0x08); } } - public int Item4 { get { return BitConverter.ToUInt16(trdata, 0x0A); } set { BitConverter.GetBytes((ushort)value).CopyTo(trdata, 0x0A); } } - - public int AI { get { return trdata[0x0C]; } set { trdata[0x0C] = (byte)value; } } - public bool Flag { get { return trdata[0x0D] == 1; } set { trdata[0x0D] = (byte)(value ? 1 : 0); } } - public int Money { get { return trdata[0x11]; } set { trdata[0x11] = (byte)value; } } - - public void Write(out byte[] tr, out byte[] pk) - { - tr = trdata; - byte[] dat = new byte[trpoke7.SIZE * NumPokemon]; - for (int i = 0; i < NumPokemon; i++) - Pokemon[i].Write().CopyTo(dat, trpoke7.SIZE*i); - pk = dat; - } - } -} diff --git a/pk3DS.Core/Structures/Gen7/trpoke7.cs b/pk3DS.Core/Structures/Gen7/trpoke7.cs deleted file mode 100644 index 039d68977f..0000000000 --- a/pk3DS.Core/Structures/Gen7/trpoke7.cs +++ /dev/null @@ -1,90 +0,0 @@ -using System; - -namespace pk3DS.Core.Structures -{ - public class trpoke7 - { - public const int SIZE = 0x20; - private readonly byte[] Data; - - public trpoke7(byte[] d = null) - { - Data = (byte[])(d ?? new byte[SIZE]).Clone(); - if (Data.Length != 0x20) - throw new ArgumentException("Invalid trpoke7!"); - } - - public trpoke7 Clone() - { - return new trpoke7(Write()); - } - - public int Gender - { - get { return Data[0] & 0x3; } - set { Data[0] = (byte)((Data[0] & 0xFC) | value & 0x3); } - } - public int Ability - { - get { return (Data[0] >> 4) & 0x3; } - set { Data[0] = (byte)((Data[0] & 0xCF) | ((value & 0x3) << 4)); } - } - - public int Nature { get { return Data[1]; } set { Data[1] = (byte)value; } } - - public int EV_HP { get { return Data[0x2]; } set { Data[0x2] = (byte)value; } } - public int EV_ATK { get { return Data[0x3]; } set { Data[0x3] = (byte)value; } } - public int EV_DEF { get { return Data[0x4]; } set { Data[0x4] = (byte)value; } } - public int EV_SPA { get { return Data[0x5]; } set { Data[0x5] = (byte)value; } } - public int EV_SPD { get { return Data[0x6]; } set { Data[0x6] = (byte)value; } } - public int EV_SPE { get { return Data[0x7]; } set { Data[0x7] = (byte)value; } } - - private uint IV32 { get { return BitConverter.ToUInt32(Data, 0x8); } set { BitConverter.GetBytes(value).CopyTo(Data, 0x8); } } - - public int IV_HP { get { return (int)(IV32 >> 00) & 0x1F; } set { IV32 = (uint)((IV32 & ~(0x1F << 00)) | (uint)((value > 31 ? 31 : value) << 00)); } } - public int IV_ATK { get { return (int)(IV32 >> 05) & 0x1F; } set { IV32 = (uint)((IV32 & ~(0x1F << 05)) | (uint)((value > 31 ? 31 : value) << 05)); } } - public int IV_DEF { get { return (int)(IV32 >> 10) & 0x1F; } set { IV32 = (uint)((IV32 & ~(0x1F << 10)) | (uint)((value > 31 ? 31 : value) << 10)); } } - public int IV_SPA { get { return (int)(IV32 >> 15) & 0x1F; } set { IV32 = (uint)((IV32 & ~(0x1F << 15)) | (uint)((value > 31 ? 31 : value) << 15)); } } - public int IV_SPD { get { return (int)(IV32 >> 20) & 0x1F; } set { IV32 = (uint)((IV32 & ~(0x1F << 20)) | (uint)((value > 31 ? 31 : value) << 20)); } } - public int IV_SPE { get { return (int)(IV32 >> 25) & 0x1F; } set { IV32 = (uint)((IV32 & ~(0x1F << 25)) | (uint)((value > 31 ? 31 : value) << 25)); } } - public bool Shiny { get { return ((IV32 >> 30) & 1) == 1; } set { IV32 = (uint)((IV32 & ~0x40000000) | (uint)(value ? 0x40000000 : 0)); } } - - public int Level { get { return Data[0xE]; } set { Data[0xE] = (byte)value; } } - public int Species { get { return BitConverter.ToUInt16(Data, 0x10); } set { BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x10); } } - public int Form { get { return Data[0x12]; } set { Data[0x12] = (byte)value; } } - - public int Item { get { return BitConverter.ToUInt16(Data, 0x14); } set { BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x14); } } - public int Move1 { get { return BitConverter.ToUInt16(Data, 0x18); } set { BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x18); } } - public int Move2 { get { return BitConverter.ToUInt16(Data, 0x1A); } set { BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x1A); } } - public int Move3 { get { return BitConverter.ToUInt16(Data, 0x1C); } set { BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x1C); } } - public int Move4 { get { return BitConverter.ToUInt16(Data, 0x1E); } set { BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x1E); } } - - public int[] IVs - { - get { return new[] { IV_HP, IV_ATK, IV_DEF, IV_SPA, IV_SPD, IV_SPE }; } - set - { - if (value?.Length != 6) return; - IV_HP = value[0]; IV_ATK = value[1]; IV_DEF = value[2]; - IV_SPA = value[3]; IV_SPD = value[4]; IV_SPE = value[5]; - } - } - public int[] EVs - { - get { return new[] { EV_HP, EV_ATK, EV_DEF, EV_SPA, EV_SPD, EV_SPE }; } - set - { - if (value?.Length != 6) return; - EV_HP = value[0]; EV_ATK = value[1]; EV_DEF = value[2]; - EV_SPA = value[3]; EV_SPD = value[4]; EV_SPE = value[5]; - } - } - public int[] Moves - { - get { return new[] { Move1, Move2, Move3, Move4 }; } - set { if (value?.Length != 4) return; Move1 = value[0]; Move2 = value[1]; Move3 = value[2]; Move4 = value[3]; } - } - - public byte[] Write() => (byte[])Data.Clone(); - } -} diff --git a/pk3DS.Core/Structures/Learnset.cs b/pk3DS.Core/Structures/Learnset.cs index c5098aefe8..13295f48af 100644 --- a/pk3DS.Core/Structures/Learnset.cs +++ b/pk3DS.Core/Structures/Learnset.cs @@ -1,100 +1,122 @@ -using System.IO; -using System.Linq; +using System; +using System.IO; -namespace pk3DS.Core.Structures +namespace pk3DS.Core.Structures; + +public abstract class Learnset { - public abstract class Learnset + public int Count; + public int[] Moves; + public int[] Levels; + + public abstract byte[] Write(); + + /// + /// Returns the moves a Pokémon can learn between the specified level range. + /// + /// Maximum level + /// Minimum level + /// Array of Move IDs + public int[] GetMoves(int maxLevel, int minLevel = 0) { - public int Count; - public int[] Moves; - public int[] Levels; + if (minLevel <= 1 && maxLevel >= 100) + return Moves; + if (minLevel > maxLevel) + return []; + int start = Array.FindIndex(Levels, z => z >= minLevel); + if (start < 0) + return []; + int end = Array.FindLastIndex(Levels, z => z <= maxLevel); + if (end < 0) + return []; + int[] result = new int[end - start + 1]; + Array.Copy(Moves, start, result, 0, result.Length); + return result; + } - public int[] getMoves(int level) - { - return Moves.TakeWhile((move, i) => Levels[i] <= level).Distinct().ToArray(); - } - public int[] getCurrentMoves(int level) + /// Returns the moves a Pokémon would have if it were encountered at the specified level. + /// In Generation 1, it is not possible to learn any moves lower than these encounter moves. + /// The level the Pokémon was encountered at. + /// Array of Move IDs + public int[] GetEncounterMoves(int level) + { + const int count = 4; + int[] moves = new int[count]; + int ctr = 0; + for (int i = 0; i < Moves.Length; i++) { - return getMoves(level).Reverse().Take(4).Reverse().ToArray(); + if (Levels[i] > level) + break; + int move = Moves[i]; + if (moves.AsSpan().Contains(move)) + continue; + + moves[ctr++] = move; + ctr &= 3; } - public abstract byte[] Write(); + return moves; } - public class Learnset6 : Learnset + + /// Returns the index of the lowest level move if the Pokémon were encountered at the specified level. + /// Helps determine the minimum level an encounter can be at. + /// The level the Pokémon was encountered at. + /// Array of Move IDs + public int GetMinMoveLevel(int level) { - public Learnset6(byte[] data) - { - if (data.Length < 4 || data.Length % 4 != 0) - { Count = 0; Levels = new int[0]; Moves = new int[0]; return; } - Count = data.Length / 4 - 1; - Moves = new int[Count]; - Levels = new int[Count]; - using (BinaryReader br = new BinaryReader(new MemoryStream(data))) - for (int i = 0; i < Count; i++) - { - Moves[i] = br.ReadInt16(); - Levels[i] = br.ReadInt16(); - } - } - public static Learnset[] getArray(byte[][] entries) - { - Learnset[] data = new Learnset[entries.Length]; - for (int i = 0; i < data.Length; i++) - data[i] = new Learnset6(entries[i]); - return data; - } - public override byte[] Write() - { - Count = (ushort)Moves.Length; - using (MemoryStream ms = new MemoryStream()) - using (BinaryWriter bw = new BinaryWriter(ms)) - { - for (int i = 0; i < Count; i++) - { - bw.Write((short)Moves[i]); - bw.Write((short)Levels[i]); - } - bw.Write(-1); - return ms.ToArray(); - } - } + if (Levels.Length == 0) + return 1; + + int end = Array.FindLastIndex(Levels, z => z <= level); + return Math.Max(end - 4, 1); } - public class Learnset7 : Learnset + + /// Returns the level that a Pokémon can learn the specified move. + /// Move ID + /// Level the move is learned at. If the result is below 0, it cannot be learned by levelup. + public int GetLevelLearnMove(int move) { - public Learnset7(byte[] data) - { - if (data.Length < 4 || data.Length % 4 != 0) - { Count = 0; Levels = new int[0]; Moves = new int[0]; return; } - Count = data.Length / 4 - 1; - Moves = new int[Count]; - Levels = new int[Count]; - using (BinaryReader br = new BinaryReader(new MemoryStream(data))) - for (int i = 0; i < Count; i++) - { - Moves[i] = br.ReadInt16(); - Levels[i] = br.ReadInt16(); - } - } - public static Learnset[] getArray(byte[][] entries) + int index = Array.IndexOf(Moves, move); + return index < 0 ? index : Levels[index]; + } +} + +public class Learnset6 : Learnset +{ + public Learnset6(byte[] data) + { + if (data.Length < 4 || data.Length % 4 != 0) + { Count = 0; Levels = []; Moves = []; return; } + Count = (data.Length / 4) - 1; + Moves = new int[Count]; + Levels = new int[Count]; + using var ms = new MemoryStream(data); + using var br = new BinaryReader(ms); + for (int i = 0; i < Count; i++) { - Learnset[] data = new Learnset[entries.Length]; - for (int i = 0; i < data.Length; i++) - data[i] = new Learnset7(entries[i]); - return data; + Moves[i] = br.ReadInt16(); + Levels[i] = br.ReadInt16(); } - public override byte[] Write() + } + + public override byte[] Write() + { + Count = (ushort)Moves.Length; + using var ms = new MemoryStream(); + using var bw = new BinaryWriter(ms); + for (int i = 0; i < Count; i++) { - Count = (ushort)Moves.Length; - using (MemoryStream ms = new MemoryStream()) - using (BinaryWriter bw = new BinaryWriter(ms)) - { - for (int i = 0; i < Count; i++) - { - bw.Write((short)Moves[i]); - bw.Write((short)Levels[i]); - } - bw.Write(-1); - return ms.ToArray(); - } + bw.Write((short)Moves[i]); + bw.Write((short)Levels[i]); } + bw.Write(-1); + return ms.ToArray(); } -} + + public static Learnset[] GetArray(byte[][] entries) + { + var data = new Learnset[entries.Length]; + for (int i = 0; i < data.Length; i++) + data[i] = new Learnset6(entries[i]); + return data; + } +} \ No newline at end of file diff --git a/pk3DS.Core/Structures/Moves/Heal.cs b/pk3DS.Core/Structures/Moves/Heal.cs new file mode 100644 index 0000000000..94a7054654 --- /dev/null +++ b/pk3DS.Core/Structures/Moves/Heal.cs @@ -0,0 +1,9 @@ +namespace pk3DS.Core.Structures; + +public enum Heal : byte +{ + None = 0, + Quarter = 253, + Half = 254, + Full = 255, +} \ No newline at end of file diff --git a/pk3DS.Core/Structures/Moves/Move.cs b/pk3DS.Core/Structures/Moves/Move.cs new file mode 100644 index 0000000000..ba20e86e41 --- /dev/null +++ b/pk3DS.Core/Structures/Moves/Move.cs @@ -0,0 +1,40 @@ +namespace pk3DS.Core.Structures; + +public abstract class Move +{ + protected readonly byte[] Data; + protected abstract int SIZE { get; } + protected Move(byte[] data = null) => Data = data ?? new byte[SIZE]; + + public byte[] Write() => Data; + + public abstract int Type { get; set; } + public abstract int Quality { get; set; } + public abstract int Category { get; set; } + public abstract int Power { get; set; } + public abstract int Accuracy { get; set; } + public abstract int PP { get; set; } + public abstract int Priority { get; set; } + public abstract int HitMin { get; set; } + public abstract int HitMax { get; set; } + public abstract int Inflict { get; set; } + public abstract int InflictPercent { get; set; } + public abstract MoveInflictDuration InflictCount { get; set; } + public abstract int TurnMin { get; set; } + public abstract int TurnMax { get; set; } + public abstract int CritStage { get; set; } + public abstract int Flinch { get; set; } + public abstract int EffectSequence { get; set; } + public abstract int Recoil { get; set; } + public abstract Heal Healing { get; set; } + public abstract MoveTarget Target { get; set; } + public abstract int Stat1 { get; set; } + public abstract int Stat2 { get; set; } + public abstract int Stat3 { get; set; } + public abstract int Stat1Stage { get; set; } + public abstract int Stat2Stage { get; set; } + public abstract int Stat3Stage { get; set; } + public abstract int Stat1Percent { get; set; } + public abstract int Stat2Percent { get; set; } + public abstract int Stat3Percent { get; set; } +} \ No newline at end of file diff --git a/pk3DS.Core/Structures/Moves/Move6.cs b/pk3DS.Core/Structures/Moves/Move6.cs new file mode 100644 index 0000000000..5a1088479c --- /dev/null +++ b/pk3DS.Core/Structures/Moves/Move6.cs @@ -0,0 +1,42 @@ +using System; + +namespace pk3DS.Core.Structures; + +public class Move6 : Move +{ + protected override int SIZE => 0x22; + public Move6() { } + public Move6(byte[] data = null) : base(data) { } + + public override int Type { get => Data[0x00]; set => Data[0x00] = (byte)value; } + public override int Quality { get => Data[0x01]; set => Data[0x01] = (byte)value; } + public override int Category { get => Data[0x02]; set => Data[0x02] = (byte)value; } + public override int Power { get => Data[0x03]; set => Data[0x03] = (byte)value; } + public override int Accuracy { get => Data[0x04]; set => Data[0x04] = (byte)value; } + public override int PP { get => Data[0x05]; set => Data[0x05] = (byte)value; } + public override int Priority { get => Data[0x06]; set => Data[0x06] = (byte)value; } + public override int HitMin { get => Data[0x07] & 0xF; set => Data[0x07] = (byte)(HitMax << 4 | value); } + public override int HitMax { get => Data[0x07] >> 4; set => Data[0x07] = (byte)(value << 4 | HitMin); } + public override int Inflict { get => BitConverter.ToUInt16(Data, 0x08); set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x08); } + public override int InflictPercent { get => Data[0x0A]; set => Data[0x0A] = (byte)value; } + public override MoveInflictDuration InflictCount { get => (MoveInflictDuration)Data[0x0B]; set => Data[0x0B] = (byte)value; } + public override int TurnMin { get => Data[0x0C]; set => Data[0x0C] = (byte)value; } + public override int TurnMax { get => Data[0x0D]; set => Data[0x0D] = (byte)value; } + public override int CritStage { get => Data[0x0E]; set => Data[0x0E] = (byte)value; } + public override int Flinch { get => Data[0x0F]; set => Data[0x0F] = (byte)value; } + public override int EffectSequence { get => BitConverter.ToUInt16(Data, 0x10); set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x10); } + public override int Recoil { get => Data[0x12]; set => Data[0x12] = (byte)value; } + public override Heal Healing { get => (Heal)Data[0x13]; set => Data[0x13] = (byte)value; } + public override MoveTarget Target { get => (MoveTarget)Data[0x14]; set => Data[0x14] = (byte)value; } + public override int Stat1 { get => Data[0x15]; set => Data[0x15] = (byte)value; } + public override int Stat2 { get => Data[0x16]; set => Data[0x16] = (byte)value; } + public override int Stat3 { get => Data[0x17]; set => Data[0x17] = (byte)value; } + public override int Stat1Stage { get => Data[0x18]; set => Data[0x18] = (byte)value; } + public override int Stat2Stage { get => Data[0x19]; set => Data[0x19] = (byte)value; } + public override int Stat3Stage { get => Data[0x1A]; set => Data[0x1A] = (byte)value; } + public override int Stat1Percent { get => Data[0x1B]; set => Data[0x1B] = (byte)value; } + public override int Stat2Percent { get => Data[0x1C]; set => Data[0x1C] = (byte)value; } + public override int Stat3Percent { get => Data[0x1D]; set => Data[0x1D] = (byte)value; } + + public MoveFlag6 Flags { get => (MoveFlag6)BitConverter.ToUInt32(Data, 0x1E); set => BitConverter.GetBytes((uint)value).CopyTo(Data, 0x1E); } +} \ No newline at end of file diff --git a/pk3DS.Core/Structures/Moves/Move7.cs b/pk3DS.Core/Structures/Moves/Move7.cs new file mode 100644 index 0000000000..23fa84df55 --- /dev/null +++ b/pk3DS.Core/Structures/Moves/Move7.cs @@ -0,0 +1,49 @@ +using System; + +namespace pk3DS.Core.Structures; + +public class Move7 : Move +{ + protected override int SIZE => 0x28; + public Move7() { } + public Move7(byte[] data = null) : base(data) { } + + public override int Type { get => Data[0x00]; set => Data[0x00] = (byte)value; } + public override int Quality { get => Data[0x01]; set => Data[0x01] = (byte)value; } + public override int Category { get => Data[0x02]; set => Data[0x02] = (byte)value; } + public override int Power { get => Data[0x03]; set => Data[0x03] = (byte)value; } + public override int Accuracy { get => Data[0x04]; set => Data[0x04] = (byte)value; } + public override int PP { get => Data[0x05]; set => Data[0x05] = (byte)value; } + public override int Priority { get => Data[0x06]; set => Data[0x06] = (byte)value; } + public override int HitMin { get => Data[0x07] & 0xF; set => Data[0x07] = (byte)(HitMax << 4 | value); } + public override int HitMax { get => Data[0x07] >> 4; set => Data[0x07] = (byte)(value << 4 | HitMin); } + public override int Inflict { get => BitConverter.ToUInt16(Data, 0x08); set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x08); } + public override int InflictPercent { get => Data[0x0A]; set => Data[0x0A] = (byte)value; } + public override MoveInflictDuration InflictCount { get => (MoveInflictDuration)Data[0x0B]; set => Data[0x0B] = (byte)value; } + public override int TurnMin { get => Data[0x0C]; set => Data[0x0C] = (byte)value; } + public override int TurnMax { get => Data[0x0D]; set => Data[0x0D] = (byte)value; } + public override int CritStage { get => Data[0x0E]; set => Data[0x0E] = (byte)value; } + public override int Flinch { get => Data[0x0F]; set => Data[0x0F] = (byte)value; } + public override int EffectSequence { get => BitConverter.ToUInt16(Data, 0x10); set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x10); } + public override int Recoil { get => Data[0x12]; set => Data[0x12] = (byte)value; } + public override Heal Healing { get => (Heal)Data[0x13]; set => Data[0x13] = (byte)value; } + public override MoveTarget Target { get => (MoveTarget)Data[0x14]; set => Data[0x14] = (byte)value; } + public override int Stat1 { get => Data[0x15]; set => Data[0x15] = (byte)value; } + public override int Stat2 { get => Data[0x16]; set => Data[0x16] = (byte)value; } + public override int Stat3 { get => Data[0x17]; set => Data[0x17] = (byte)value; } + public override int Stat1Stage { get => Data[0x18]; set => Data[0x18] = (byte)value; } + public override int Stat2Stage { get => Data[0x19]; set => Data[0x19] = (byte)value; } + public override int Stat3Stage { get => Data[0x1A]; set => Data[0x1A] = (byte)value; } + public override int Stat1Percent { get => Data[0x1B]; set => Data[0x1B] = (byte)value; } + public override int Stat2Percent { get => Data[0x1C]; set => Data[0x1C] = (byte)value; } + public override int Stat3Percent { get => Data[0x1D]; set => Data[0x1D] = (byte)value; } + + public int ZMove { get => BitConverter.ToUInt16(Data, 0x1E); set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x1E); } // 32 + public int ZPower { get => Data[0x20]; set => Data[0x20] = (byte)value; } // 33 + public int ZEffect { get => Data[0x21]; set => Data[0x21] = (byte)value; } // 34 + + public RefreshType RefreshAfflictType { get => (RefreshType)Data[0x22]; set => Data[0x22] = (byte)value; } // 35 + public int RefreshAfflictPercent { get => Data[0x23]; set => Data[0x23] = (byte)value; } // 36 + + public MoveFlag7 Flags { get => (MoveFlag7)BitConverter.ToUInt32(Data, 0x24); set => BitConverter.GetBytes((uint)value).CopyTo(Data, 0x24); } +} \ No newline at end of file diff --git a/pk3DS.Core/Structures/Moves/MoveFlag6.cs b/pk3DS.Core/Structures/Moves/MoveFlag6.cs new file mode 100644 index 0000000000..509b106ca8 --- /dev/null +++ b/pk3DS.Core/Structures/Moves/MoveFlag6.cs @@ -0,0 +1,45 @@ +using System; + +namespace pk3DS.Core.Structures; + +[Flags] +public enum MoveFlag6 : uint +{ + None, + + MakesContact = 1u << 00, // Makes contact. + Charge = 1u << 01, // The user is unable to make a move between turns. + Recharge = 1u << 02, // If this move is successful, the user must recharge on the following turn and cannot make a move. + Protect = 1u << 03, // Blocked by Detect, Protect, Spiky Shield, and if not a Status move, King's Shield. + Reflectable = 1u << 04, // Bounced back to the original user by Magic Coat or the Magic Bounce Ability. + Snatch = 1u << 05, // Can be stolen from the original user and instead used by another Pokemon using Snatch. + Mirror = 1u << 06, // Can be copied by Mirror Move. + Punch = 1u << 07, // Power is multiplied when used by a Pokemon with the Iron Fist Ability. + + Sound = 1u << 08, // Has no effect on Pokemon with the Soundproof Ability. + Gravity = 1u << 09, // Prevented from being executed or selected during Gravity's effect. + Defrost = 1u << 10, // Thaws the user if executed successfully while the user is frozen. + DistanceTriple = 1u << 11, // Can target a Pokemon positioned anywhere in a Triple Battle. + Heal = 1u << 12, // Prevented from being executed or selected during Heal Block's effect. + IgnoreSubstitute = 1u << 13, // Ignores a target's substitute. + FailSkyBattle = 1u << 14, // Prevented from being executed or selected in a Sky Battle. + AnimateAlly = 1u << 15, // Always animate the move when used on an ally. + + F17 = 1u << 16, // Dancer in future games + F18 = 1u << 17, + F19 = 1u << 18, + F20 = 1u << 19, + F21 = 1u << 20, + F22 = 1u << 21, + F23 = 1u << 22, + F24 = 1u << 23, + + F25 = 1u << 24, + F26 = 1u << 25, + F27 = 1u << 26, + F28 = 1u << 27, + F29 = 1u << 28, + F30 = 1u << 29, + F31 = 1u << 30, + F32 = 1u << 31, +} \ No newline at end of file diff --git a/pk3DS.Core/Structures/Moves/MoveFlag7.cs b/pk3DS.Core/Structures/Moves/MoveFlag7.cs new file mode 100644 index 0000000000..67e74447e9 --- /dev/null +++ b/pk3DS.Core/Structures/Moves/MoveFlag7.cs @@ -0,0 +1,45 @@ +using System; + +namespace pk3DS.Core.Structures; + +[Flags] +public enum MoveFlag7 : uint +{ + None, + + MakesContact = 1u << 00, // Makes contact. + Charge = 1u << 01, // The user is unable to make a move between turns. + Recharge = 1u << 02, // If this move is successful, the user must recharge on the following turn and cannot make a move. + Protect = 1u << 03, // Blocked by Detect, Protect, Spiky Shield, and if not a Status move, King's Shield. + Reflectable = 1u << 04, // Bounced back to the original user by Magic Coat or the Magic Bounce Ability. + Snatch = 1u << 05, // Can be stolen from the original user and instead used by another Pokemon using Snatch. + Mirror = 1u << 06, // Can be copied by Mirror Move. + Punch = 1u << 07, // Power is multiplied when used by a Pokemon with the Iron Fist Ability. + + Sound = 1u << 08, // Has no effect on Pokemon with the Soundproof Ability. + Gravity = 1u << 09, // Prevented from being executed or selected during Gravity's effect. + Defrost = 1u << 10, // Thaws the user if executed successfully while the user is frozen. + DistanceTriple = 1u << 11, // Can target a Pokemon positioned anywhere in a Triple Battle. + Heal = 1u << 12, // Prevented from being executed or selected during Heal Block's effect. + IgnoreSubstitute = 1u << 13, // Ignores a target's substitute. + FailSkyBattle = 1u << 14, // Prevented from being executed or selected in a Sky Battle. + AnimateAlly = 1u << 15, // Always animate the move when used on an ally. + + Dance = 1u << 16, // When used by a Pokemon, other Pokemon with the Dancer Ability can attempt to execute the same move. + F18 = 1u << 17, + F19 = 1u << 18, + F20 = 1u << 19, + F21 = 1u << 20, + F22 = 1u << 21, + F23 = 1u << 22, + F24 = 1u << 23, + + F25 = 1u << 24, + F26 = 1u << 25, + F27 = 1u << 26, + F28 = 1u << 27, + F29 = 1u << 28, + F30 = 1u << 29, + F31 = 1u << 30, + F32 = 1u << 31, +} \ No newline at end of file diff --git a/pk3DS.Core/Structures/Moves/MoveFlagExtensions.cs b/pk3DS.Core/Structures/Moves/MoveFlagExtensions.cs new file mode 100644 index 0000000000..f2e1973824 --- /dev/null +++ b/pk3DS.Core/Structures/Moves/MoveFlagExtensions.cs @@ -0,0 +1,14 @@ +namespace pk3DS.Core.Structures; + +public static class MoveFlagExtensions +{ + public static bool HasFlagFast(this MoveFlag6 value, MoveFlag6 flag) + { + return (value & flag) != 0; + } + + public static bool HasFlagFast(this MoveFlag7 value, MoveFlag7 flag) + { + return (value & flag) != 0; + } +} \ No newline at end of file diff --git a/pk3DS.Core/Structures/Moves/MoveInflictDuration.cs b/pk3DS.Core/Structures/Moves/MoveInflictDuration.cs new file mode 100644 index 0000000000..96c851cc32 --- /dev/null +++ b/pk3DS.Core/Structures/Moves/MoveInflictDuration.cs @@ -0,0 +1,10 @@ +namespace pk3DS.Core.Structures; + +public enum MoveInflictDuration +{ + None = 0, + Permanent, + TurnCountSwitch, + PermanentSwitch, + TurnCountNoSwitch, +} \ No newline at end of file diff --git a/pk3DS.Core/Structures/Moves/MoveTarget.cs b/pk3DS.Core/Structures/Moves/MoveTarget.cs new file mode 100644 index 0000000000..b8eaf3fb1b --- /dev/null +++ b/pk3DS.Core/Structures/Moves/MoveTarget.cs @@ -0,0 +1,22 @@ +namespace pk3DS.Core.Structures; + +public enum MoveTarget : byte +{ + // Specific target + AnyExceptSelf, + AllyOrSelf, + Ally, + Opponent, + AllAdjacent, + AllAdjacentOpponents, + AllAllies, + Self, + All, + RandomOpponent, + + // No pkm target + SideAll, + SideOpponent, + SideSelf, + Counter, +} \ No newline at end of file diff --git a/pk3DS.Core/Structures/Moves/RefreshType.cs b/pk3DS.Core/Structures/Moves/RefreshType.cs new file mode 100644 index 0000000000..f0be613e59 --- /dev/null +++ b/pk3DS.Core/Structures/Moves/RefreshType.cs @@ -0,0 +1,10 @@ +namespace pk3DS.Core.Structures; + +public enum RefreshType : byte +{ + None, + Disheveled, + Mud, + Dust, + Dry, +} \ No newline at end of file diff --git a/pk3DS.Core/Structures/PersonalInfo/PersonalInfo.cs b/pk3DS.Core/Structures/PersonalInfo/PersonalInfo.cs index bf14c04e1c..7e64b6832f 100644 --- a/pk3DS.Core/Structures/PersonalInfo/PersonalInfo.cs +++ b/pk3DS.Core/Structures/PersonalInfo/PersonalInfo.cs @@ -1,106 +1,104 @@ -namespace pk3DS.Core.Structures.PersonalInfo +namespace pk3DS.Core.Structures.PersonalInfo; + +public abstract class PersonalInfo { - public abstract class PersonalInfo - { - protected byte[] Data; - public abstract byte[] Write(); - public abstract int HP { get; set; } - public abstract int ATK { get; set; } - public abstract int DEF { get; set; } - public abstract int SPE { get; set; } - public abstract int SPA { get; set; } - public abstract int SPD { get; set; } + protected byte[] Data; + public abstract byte[] Write(); + public abstract int HP { get; set; } + public abstract int ATK { get; set; } + public abstract int DEF { get; set; } + public abstract int SPE { get; set; } + public abstract int SPA { get; set; } + public abstract int SPD { get; set; } - public int[] Stats + public int[] Stats + { + get => [HP, ATK, DEF, SPE, SPA, SPD]; + set { - get => new[] {HP, ATK, DEF, SPE, SPA, SPD}; - set - { - HP = value[0]; - ATK = value[1]; - DEF = value[2]; - SPE = value[3]; - SPA = value[4]; - SPD = value[5]; - } + HP = value[0]; + ATK = value[1]; + DEF = value[2]; + SPE = value[3]; + SPA = value[4]; + SPD = value[5]; } + } - public abstract int EV_HP { get; set; } - public abstract int EV_ATK { get; set; } - public abstract int EV_DEF { get; set; } - public abstract int EV_SPE { get; set; } - public abstract int EV_SPA { get; set; } - public abstract int EV_SPD { get; set; } + public abstract int EV_HP { get; set; } + public abstract int EV_ATK { get; set; } + public abstract int EV_DEF { get; set; } + public abstract int EV_SPE { get; set; } + public abstract int EV_SPA { get; set; } + public abstract int EV_SPD { get; set; } - public abstract int[] Types { get; set; } - public abstract int CatchRate { get; set; } - public virtual int EvoStage { get; set; } - public abstract int[] Items { get; set; } - public abstract int Gender { get; set; } - public abstract int HatchCycles { get; set; } - public abstract int BaseFriendship { get; set; } - public abstract int EXPGrowth { get; set; } - public abstract int[] EggGroups { get; set; } - public abstract int [] Abilities { get; set; } - public abstract int EscapeRate { get; set; } - public virtual int FormeCount { get; set; } - public virtual int FormStatsIndex { get; protected internal set; } - public virtual int FormeSprite { get; set; } - public abstract int BaseEXP { get; set; } - public abstract int Color { get; set; } + public abstract int[] Types { get; set; } + public abstract int CatchRate { get; set; } + public virtual int EvoStage { get; set; } + public abstract int[] Items { get; set; } + public abstract int Gender { get; set; } + public abstract int HatchCycles { get; set; } + public abstract int BaseFriendship { get; set; } + public abstract int EXPGrowth { get; set; } + public abstract int[] EggGroups { get; set; } + public abstract int[] Abilities { get; set; } + public abstract int EscapeRate { get; set; } + public virtual int FormeCount { get; set; } + public virtual int FormStatsIndex { get; protected internal set; } + public virtual int FormeSprite { get; set; } + public abstract int BaseEXP { get; set; } + public abstract int Color { get; set; } - public virtual int Height { get; set; } = 0; - public virtual int Weight { get; set; } = 0; + public virtual int Height { get; set; } = 0; + public virtual int Weight { get; set; } = 0; - public bool[] TMHM { get; set; } - public bool[] TypeTutors { get; set; } - public bool[][] SpecialTutors { get; set; } = new bool[0][]; + public bool[] TMHM { get; set; } + public bool[] TypeTutors { get; set; } + public bool[][] SpecialTutors { get; set; } = []; - protected static bool[] getBits(byte[] data) - { - bool[] r = new bool[8 * data.Length]; - for (int i = 0; i < r.Length; i++) - r[i] = (data[i/8] >> (i&7) & 0x1) == 1; - return r; - } - protected static byte[] setBits(bool[] bits) - { - byte[] data = new byte[bits.Length/8]; - for (int i = 0; i < bits.Length; i++) - data[i / 8] |= (byte)(bits[i] ? 1 << (i&0x7) : 0); - return data; - } + protected static bool[] GetBits(byte[] data) + { + bool[] r = new bool[8 * data.Length]; + for (int i = 0; i < r.Length; i++) + r[i] = (data[i / 8] >> (i & 7) & 0x1) == 1; + return r; + } - // Data Manipulation - public int FormeIndex(int species, int forme) - { - if (forme <= 0) // no forme requested - return species; - if (FormStatsIndex <= 0) // no formes present - return species; - if (forme > FormeCount) // beyond range of species' formes - return species; + protected static byte[] SetBits(bool[] bits) + { + byte[] data = new byte[bits.Length / 8]; + for (int i = 0; i < bits.Length; i++) + data[i / 8] |= (byte)(bits[i] ? 1 << (i & 0x7) : 0); + return data; + } - return FormStatsIndex + forme - 1; - } - public int RandomGender + // Data Manipulation + public int FormeIndex(int species, int forme) + { + if (forme <= 0) // no forme requested + return species; + if (FormStatsIndex <= 0) // no formes present + return species; + if (forme > FormeCount) // beyond range of species' formes + return species; + + return FormStatsIndex + forme - 1; + } + + public int RandomGender + { + get { - get + return Gender switch { - switch (Gender) - { - case 255: // Genderless - return 2; - case 254: // Female - return 1; - case 0: // Male - return 0; - default: - return (int)(Util.rnd32() % 2); - } - } + 255 => 2, // Genderless + 254 => 1, // Female + 0 => 0, // Male + _ => (int)(Util.Random32() % 2), + }; } - public bool HasFormes => FormeCount > 1; - public int BST => HP + ATK + DEF + SPE + SPA + SPD; } -} + + public bool HasFormes => FormeCount > 1; + public int BST => HP + ATK + DEF + SPE + SPA + SPD; +} \ No newline at end of file diff --git a/pk3DS.Core/Structures/PersonalInfo/PersonalInfoORAS.cs b/pk3DS.Core/Structures/PersonalInfo/PersonalInfoORAS.cs index 129bee726d..3cc1ab611c 100644 --- a/pk3DS.Core/Structures/PersonalInfo/PersonalInfoORAS.cs +++ b/pk3DS.Core/Structures/PersonalInfo/PersonalInfoORAS.cs @@ -1,37 +1,38 @@ using System.Linq; -namespace pk3DS.Core.Structures.PersonalInfo +namespace pk3DS.Core.Structures.PersonalInfo; + +public class PersonalInfoORAS : PersonalInfoXY { - public class PersonalInfoORAS : PersonalInfoXY + public new const int SIZE = 0x50; + + public PersonalInfoORAS(byte[] data) { - public new const int SIZE = 0x50; - public PersonalInfoORAS(byte[] data) - { - if (data.Length != SIZE) - return; - Data = data; + if (data.Length != SIZE) + return; + Data = data; - // Unpack TMHM & Tutors - TMHM = getBits(Data.Skip(0x28).Take(0x10).ToArray()); - TypeTutors = getBits(Data.Skip(0x38).Take(0x4).ToArray()); - // 0x3C-0x40 unknown - SpecialTutors = new[] - { - getBits(Data.Skip(0x40).Take(0x04).ToArray()), - getBits(Data.Skip(0x44).Take(0x04).ToArray()), - getBits(Data.Skip(0x48).Take(0x04).ToArray()), - getBits(Data.Skip(0x4C).Take(0x04).ToArray()), - }; - } - public override byte[] Write() - { - setBits(TMHM).CopyTo(Data, 0x28); - setBits(TypeTutors).CopyTo(Data, 0x38); - setBits(SpecialTutors[0]).CopyTo(Data, 0x40); - setBits(SpecialTutors[1]).CopyTo(Data, 0x44); - setBits(SpecialTutors[2]).CopyTo(Data, 0x48); - setBits(SpecialTutors[3]).CopyTo(Data, 0x4C); - return Data; - } + // Unpack TMHM & Tutors + TMHM = GetBits(Data.Skip(0x28).Take(0x10).ToArray()); + TypeTutors = GetBits(Data.Skip(0x38).Take(0x4).ToArray()); + // 0x3C-0x40 unknown + SpecialTutors = + [ + GetBits(Data.Skip(0x40).Take(0x04).ToArray()), + GetBits(Data.Skip(0x44).Take(0x04).ToArray()), + GetBits(Data.Skip(0x48).Take(0x04).ToArray()), + GetBits(Data.Skip(0x4C).Take(0x04).ToArray()), + ]; + } + + public override byte[] Write() + { + SetBits(TMHM).CopyTo(Data, 0x28); + SetBits(TypeTutors).CopyTo(Data, 0x38); + SetBits(SpecialTutors[0]).CopyTo(Data, 0x40); + SetBits(SpecialTutors[1]).CopyTo(Data, 0x44); + SetBits(SpecialTutors[2]).CopyTo(Data, 0x48); + SetBits(SpecialTutors[3]).CopyTo(Data, 0x4C); + return Data; } -} +} \ No newline at end of file diff --git a/pk3DS.Core/Structures/PersonalInfo/PersonalInfoSM.cs b/pk3DS.Core/Structures/PersonalInfo/PersonalInfoSM.cs index 37aaa852d3..674643a66c 100644 --- a/pk3DS.Core/Structures/PersonalInfo/PersonalInfoSM.cs +++ b/pk3DS.Core/Structures/PersonalInfo/PersonalInfoSM.cs @@ -1,37 +1,38 @@ using System; using System.Linq; -namespace pk3DS.Core.Structures.PersonalInfo +namespace pk3DS.Core.Structures.PersonalInfo; + +public class PersonalInfoSM : PersonalInfoXY { - public class PersonalInfoSM : PersonalInfoXY + public new const int SIZE = 0x54; + + public PersonalInfoSM(byte[] data) { - public new const int SIZE = 0x54; - public PersonalInfoSM(byte[] data) - { - if (data.Length != SIZE) - return; - Data = data; + if (data.Length != SIZE) + return; + Data = data; - TMHM = getBits(Data.Skip(0x28).Take(0x10).ToArray()); // 36-39 - TypeTutors = getBits(Data.Skip(0x38).Take(0x4).ToArray()); // 40 - SpecialTutors = new[] - { - getBits(Data.Skip(0x3C).Take(0x0A).ToArray()), - }; - } - public override byte[] Write() - { - setBits(TMHM).CopyTo(Data, 0x28); - setBits(TypeTutors).CopyTo(Data, 0x38); - setBits(SpecialTutors[0]).CopyTo(Data, 0x3C); - return Data; - } - - // No accessing for 3C-4B + TMHM = GetBits(Data.Skip(0x28).Take(0x10).ToArray()); // 36-39 + TypeTutors = GetBits(Data.Skip(0x38).Take(0x4).ToArray()); // 40 + SpecialTutors = + [ + GetBits(Data.Skip(0x3C).Take(0x0A).ToArray()), + ]; + } - public int SpecialZ_Item { get { return BitConverter.ToUInt16(Data, 0x4C); } set { BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x4C); } } - public int SpecialZ_BaseMove { get { return BitConverter.ToUInt16(Data, 0x4E); } set { BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x4E); } } - public int SpecialZ_ZMove { get { return BitConverter.ToUInt16(Data, 0x50); } set { BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x50); } } - public bool LocalVariant { get { return Data[0x52] == 1; } set { Data[0x52] = (byte)(value ? 1 : 0); } } + public override byte[] Write() + { + SetBits(TMHM).CopyTo(Data, 0x28); + SetBits(TypeTutors).CopyTo(Data, 0x38); + SetBits(SpecialTutors[0]).CopyTo(Data, 0x3C); + return Data; } -} + + // No accessing for 3C-4B + + public int SpecialZ_Item { get => BitConverter.ToUInt16(Data, 0x4C); set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x4C); } + public int SpecialZ_BaseMove { get => BitConverter.ToUInt16(Data, 0x4E); set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x4E); } + public int SpecialZ_ZMove { get => BitConverter.ToUInt16(Data, 0x50); set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x50); } + public bool LocalVariant { get => Data[0x52] == 1; set => Data[0x52] = value ? (byte)1 : (byte)0; } +} \ No newline at end of file diff --git a/pk3DS.Core/Structures/PersonalInfo/PersonalInfoXY.cs b/pk3DS.Core/Structures/PersonalInfo/PersonalInfoXY.cs index 141e5676d0..61ad232abe 100644 --- a/pk3DS.Core/Structures/PersonalInfo/PersonalInfoXY.cs +++ b/pk3DS.Core/Structures/PersonalInfo/PersonalInfoXY.cs @@ -1,98 +1,110 @@ using System; using System.Linq; -namespace pk3DS.Core.Structures.PersonalInfo +namespace pk3DS.Core.Structures.PersonalInfo; + +public class PersonalInfoXY : PersonalInfo { - public class PersonalInfoXY : PersonalInfo + protected PersonalInfoXY() { } // For ORAS + public const int SIZE = 0x40; + + public PersonalInfoXY(byte[] data) { - protected PersonalInfoXY() { } // For ORAS - public const int SIZE = 0x40; - public PersonalInfoXY(byte[] data) - { - if (data.Length != SIZE) - return; - Data = data; + if (data.Length != SIZE) + return; + Data = data; - // Unpack TMHM & Tutors - TMHM = getBits(Data.Skip(0x28).Take(0x10).ToArray()); - TypeTutors = getBits(Data.Skip(0x38).Take(0x4).ToArray()); - // 0x3C-0x40 unknown - } - public override byte[] Write() - { - setBits(TMHM).CopyTo(Data, 0x28); - setBits(TypeTutors).CopyTo(Data, 0x38); - return Data; - } + // Unpack TMHM & Tutors + TMHM = GetBits(Data.Skip(0x28).Take(0x10).ToArray()); + TypeTutors = GetBits(Data.Skip(0x38).Take(0x4).ToArray()); + // 0x3C-0x40 unknown + } - public override int HP { get { return Data[0x00]; } set { Data[0x00] = (byte)value; } } - public override int ATK { get { return Data[0x01]; } set { Data[0x01] = (byte)value; } } - public override int DEF { get { return Data[0x02]; } set { Data[0x02] = (byte)value; } } - public override int SPE { get { return Data[0x03]; } set { Data[0x03] = (byte)value; } } - public override int SPA { get { return Data[0x04]; } set { Data[0x04] = (byte)value; } } - public override int SPD { get { return Data[0x05]; } set { Data[0x05] = (byte)value; } } - public override int[] Types + public override byte[] Write() + { + SetBits(TMHM).CopyTo(Data, 0x28); + SetBits(TypeTutors).CopyTo(Data, 0x38); + return Data; + } + + public override int HP { get => Data[0x00]; set => Data[0x00] = (byte)value; } + public override int ATK { get => Data[0x01]; set => Data[0x01] = (byte)value; } + public override int DEF { get => Data[0x02]; set => Data[0x02] = (byte)value; } + public override int SPE { get => Data[0x03]; set => Data[0x03] = (byte)value; } + public override int SPA { get => Data[0x04]; set => Data[0x04] = (byte)value; } + public override int SPD { get => Data[0x05]; set => Data[0x05] = (byte)value; } + + public override int[] Types + { + get => [Data[0x06], Data[0x07]]; + set { - get { return new int[] { Data[0x06], Data[0x07] }; } - set - { - if (value?.Length != 2) return; - Data[0x06] = (byte)value[0]; - Data[0x07] = (byte)value[1]; - } + if (value?.Length != 2) return; + Data[0x06] = (byte)value[0]; + Data[0x07] = (byte)value[1]; } - public override int CatchRate { get { return Data[0x08]; } set { Data[0x08] = (byte)value; } } - public override int EvoStage { get { return Data[0x09]; } set { Data[0x09] = (byte)value; } } - private int EVYield { get { return BitConverter.ToUInt16(Data, 0x0A); } set { BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x0A); } } - public override int EV_HP { get { return EVYield >> 0 & 0x3; } set { EVYield = (EVYield & ~(0x3 << 0)) | (value & 0x3) << 0; } } - public override int EV_ATK { get { return EVYield >> 2 & 0x3; } set { EVYield = (EVYield & ~(0x3 << 2)) | (value & 0x3) << 2; } } - public override int EV_DEF { get { return EVYield >> 4 & 0x3; } set { EVYield = (EVYield & ~(0x3 << 4)) | (value & 0x3) << 4; } } - public override int EV_SPE { get { return EVYield >> 6 & 0x3; } set { EVYield = (EVYield & ~(0x3 << 6)) | (value & 0x3) << 6; } } - public override int EV_SPA { get { return EVYield >> 8 & 0x3; } set { EVYield = (EVYield & ~(0x3 << 8)) | (value & 0x3) << 8; } } - public override int EV_SPD { get { return EVYield >> 10 & 0x3; } set { EVYield = (EVYield & ~(0x3 << 10)) | (value & 0x3) << 10; } } - public override int[] Items + } + + public override int CatchRate { get => Data[0x08]; set => Data[0x08] = (byte)value; } + public override int EvoStage { get => Data[0x09]; set => Data[0x09] = (byte)value; } + private int EVYield { get => BitConverter.ToUInt16(Data, 0x0A); set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x0A); } + public override int EV_HP { get => EVYield >> 0 & 0x3; set => EVYield = (EVYield & ~(0x3 << 0)) | (value & 0x3) << 0; } + public override int EV_ATK { get => EVYield >> 2 & 0x3; set => EVYield = (EVYield & ~(0x3 << 2)) | (value & 0x3) << 2; } + public override int EV_DEF { get => EVYield >> 4 & 0x3; set => EVYield = (EVYield & ~(0x3 << 4)) | (value & 0x3) << 4; } + public override int EV_SPE { get => EVYield >> 6 & 0x3; set => EVYield = (EVYield & ~(0x3 << 6)) | (value & 0x3) << 6; } + public override int EV_SPA { get => EVYield >> 8 & 0x3; set => EVYield = (EVYield & ~(0x3 << 8)) | (value & 0x3) << 8; } + public override int EV_SPD { get => EVYield >> 10 & 0x3; set => EVYield = (EVYield & ~(0x3 << 10)) | (value & 0x3) << 10; } + public bool Telekenesis { get => (EVYield >> 12 & 1) == 0; set => EVYield = (EVYield & ~(0x1 << 12)) | (value ? 1 : 0) << 12; } + + public override int[] Items + { + get => [BitConverter.ToInt16(Data, 0xC), BitConverter.ToInt16(Data, 0xE), BitConverter.ToInt16(Data, 0x10)]; + set { - get { return new int[] { BitConverter.ToInt16(Data, 0xC), BitConverter.ToInt16(Data, 0xE), BitConverter.ToInt16(Data, 0x10) }; } - set - { - if (value?.Length != 3) return; - BitConverter.GetBytes((short)value[0]).CopyTo(Data, 0xC); - BitConverter.GetBytes((short)value[1]).CopyTo(Data, 0xE); - BitConverter.GetBytes((short)value[2]).CopyTo(Data, 0x10); - } + if (value?.Length != 3) return; + BitConverter.GetBytes((short)value[0]).CopyTo(Data, 0xC); + BitConverter.GetBytes((short)value[1]).CopyTo(Data, 0xE); + BitConverter.GetBytes((short)value[2]).CopyTo(Data, 0x10); } - public override int Gender { get { return Data[0x12]; } set { Data[0x12] = (byte)value; } } - public override int HatchCycles { get { return Data[0x13]; } set { Data[0x13] = (byte)value; } } - public override int BaseFriendship { get { return Data[0x14]; } set { Data[0x14] = (byte)value; } } - public override int EXPGrowth { get { return Data[0x15]; } set { Data[0x15] = (byte)value; } } - public override int[] EggGroups + } + + public override int Gender { get => Data[0x12]; set => Data[0x12] = (byte)value; } + public override int HatchCycles { get => Data[0x13]; set => Data[0x13] = (byte)value; } + public override int BaseFriendship { get => Data[0x14]; set => Data[0x14] = (byte)value; } + public override int EXPGrowth { get => Data[0x15]; set => Data[0x15] = (byte)value; } + + public override int[] EggGroups + { + get => [Data[0x16], Data[0x17]]; + set { - get { return new int[] { Data[0x16], Data[0x17] }; } - set - { - if (value?.Length != 2) return; - Data[0x16] = (byte)value[0]; - Data[0x17] = (byte)value[1]; - } + if (value?.Length != 2) return; + Data[0x16] = (byte)value[0]; + Data[0x17] = (byte)value[1]; } - public override int[] Abilities + } + + public override int[] Abilities + { + get => [Data[0x18], Data[0x19], Data[0x1A]]; + set { - get { return new int[] { Data[0x18], Data[0x19], Data[0x1A] }; } - set - { - if (value?.Length != 3) return; - Data[0x18] = (byte)value[0]; - Data[0x19] = (byte)value[1]; - Data[0x1A] = (byte)value[2]; - } + if (value?.Length != 3) return; + Data[0x18] = (byte)value[0]; + Data[0x19] = (byte)value[1]; + Data[0x1A] = (byte)value[2]; } - public override int EscapeRate { get { return Data[0x1B]; } set { Data[0x1B] = (byte)value; } } - public override int FormStatsIndex { get { return BitConverter.ToUInt16(Data, 0x1C); } protected internal set { BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x1C); } } - public override int FormeSprite { get { return BitConverter.ToUInt16(Data, 0x1E); } set { BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x1E); } } - public override int FormeCount { get { return Data[0x20]; } set { Data[0x20] = (byte)value; } } - public override int Color { get { return Data[0x21]; } set { Data[0x21] = (byte)value; } } - public override int BaseEXP { get { return BitConverter.ToUInt16(Data, 0x22); } set { BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x22); } } - public override int Height { get { return BitConverter.ToUInt16(Data, 0x24); } set { BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x24); } } - public override int Weight { get { return BitConverter.ToUInt16(Data, 0x26); } set { BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x26); } } } -} + + public override int EscapeRate { get => Data[0x1B]; set => Data[0x1B] = (byte)value; } + public override int FormStatsIndex { get => BitConverter.ToUInt16(Data, 0x1C); protected internal set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x1C); } + public override int FormeSprite { get => BitConverter.ToUInt16(Data, 0x1E); set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x1E); } + public override int FormeCount { get => Data[0x20]; set => Data[0x20] = (byte)value; } + public override int Color { get => Data[0x21] & 0x3F; set => Data[0x21] = (byte)((Data[0x21] & 0xC0) | (value & 0x3F)); } + public bool SpriteFlip { get => ((Data[0x21] >> 6) & 1) == 1; set => Data[0x21] = (byte)((Data[0x21] & ~0x40) | (value ? 0x40 : 0)); } + public bool SpriteForme { get => ((Data[0x21] >> 7) & 1) == 1; set => Data[0x21] = (byte)((Data[0x21] & ~0x80) | (value ? 0x80 : 0)); } + + public override int BaseEXP { get => BitConverter.ToUInt16(Data, 0x22); set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x22); } + public override int Height { get => BitConverter.ToUInt16(Data, 0x24); set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x24); } + public override int Weight { get => BitConverter.ToUInt16(Data, 0x26); set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x26); } +} \ No newline at end of file diff --git a/pk3DS.Core/Structures/PersonalInfo/PersonalTable.cs b/pk3DS.Core/Structures/PersonalInfo/PersonalTable.cs index 13fd975ab0..525adc09d7 100644 --- a/pk3DS.Core/Structures/PersonalInfo/PersonalTable.cs +++ b/pk3DS.Core/Structures/PersonalInfo/PersonalTable.cs @@ -1,146 +1,153 @@ using System; -namespace pk3DS.Core.Structures.PersonalInfo +namespace pk3DS.Core.Structures.PersonalInfo; + +public class PersonalTable { - public class PersonalTable + private static byte[][] SplitBytes(byte[] data, int size) { - private static byte[][] splitBytes(byte[] data, int size) + byte[][] r = new byte[data.Length / size][]; + for (int i = 0; i < data.Length; i += size) { - byte[][] r = new byte[data.Length / size][]; - for (int i = 0; i < data.Length; i += size) - { - r[i / size] = new byte[size]; - Array.Copy(data, i, r[i / size], 0, size); - } - return r; + r[i / size] = new byte[size]; + Array.Copy(data, i, r[i / size], 0, size); } - public PersonalTable(byte[] data, GameVersion format) - { - int size = 0; - switch (format) - { - case GameVersion.XY: size = PersonalInfoXY.SIZE; break; - case GameVersion.ORASDEMO: - case GameVersion.ORAS: size = PersonalInfoORAS.SIZE; break; - case GameVersion.SMDEMO: - case GameVersion.SM: - case GameVersion.USUM: size = PersonalInfoSM.SIZE; break; - } + return r; + } - if (size == 0) - { Table = null; return; } + public PersonalTable(byte[] data, GameVersion format) + { + int size = format switch + { + GameVersion.XY => PersonalInfoXY.SIZE, + GameVersion.ORASDEMO => PersonalInfoORAS.SIZE, + GameVersion.ORAS => PersonalInfoORAS.SIZE, + GameVersion.SMDEMO => PersonalInfoSM.SIZE, + GameVersion.SM => PersonalInfoSM.SIZE, + GameVersion.USUM => PersonalInfoSM.SIZE, + _ => 0, + }; - byte[][] entries = splitBytes(data, size); - PersonalInfo[] d = new PersonalInfo[data.Length / size]; + if (size == 0) + { Table = null; return; } - switch (format) - { - case GameVersion.XY: - for (int i = 0; i < d.Length; i++) - d[i] = new PersonalInfoXY(entries[i]); - break; - case GameVersion.ORASDEMO: - case GameVersion.ORAS: - for (int i = 0; i < d.Length; i++) - d[i] = new PersonalInfoORAS(entries[i]); - break; - case GameVersion.SMDEMO: - case GameVersion.SM: - case GameVersion.USUM: - for (int i = 0; i < d.Length; i++) - d[i] = new PersonalInfoSM(entries[i]); - break; - } - Table = d; - } + byte[][] entries = SplitBytes(data, size); + PersonalInfo[] d = new PersonalInfo[data.Length / size]; - public readonly PersonalInfo[] Table; - public PersonalInfo this[int index] + switch (format) { - get - { - if (index < Table.Length) - return Table[index]; - return Table[0]; - } - set - { - if (index < Table.Length) - return; - Table[index] = value; - } + case GameVersion.XY: + for (int i = 0; i < d.Length; i++) + d[i] = new PersonalInfoXY(entries[i]); + break; + case GameVersion.ORASDEMO: + case GameVersion.ORAS: + for (int i = 0; i < d.Length; i++) + d[i] = new PersonalInfoORAS(entries[i]); + break; + case GameVersion.SMDEMO: + case GameVersion.SM: + case GameVersion.USUM: + for (int i = 0; i < d.Length; i++) + d[i] = new PersonalInfoSM(entries[i]); + break; } + Table = d; + } - public int[] getAbilities(int species, int forme) - { - if (species >= Table.Length) - { species = 0; Console.WriteLine("Requested out of bounds SpeciesID"); } - return this[getFormeIndex(species, forme)].Abilities; - } - public int getFormeIndex(int species, int forme) + public readonly PersonalInfo[] Table; + + public PersonalInfo this[int index] + { + get { - if (species >= Table.Length) - { species = 0; Console.WriteLine("Requested out of bounds SpeciesID"); } - return this[species].FormeIndex(species, forme); + if (index < Table.Length) + return Table[index]; + return Table[0]; } - public PersonalInfo getFormeEntry(int species, int forme) + set { - return this[getFormeIndex(species, forme)]; + if (index < Table.Length) + return; + Table[index] = value; } + } - public string[][] getFormList(string[] species, int MaxSpecies) + public int[] GetAbilities(int species, int forme) + { + if (species >= Table.Length) + { species = 0; Console.WriteLine("Requested out of bounds SpeciesID"); } + return this[GetFormIndex(species, forme)].Abilities; + } + + public int GetFormIndex(int species, int forme) + { + if (species >= Table.Length) + { species = 0; Console.WriteLine("Requested out of bounds SpeciesID"); } + return this[species].FormeIndex(species, forme); + } + + public PersonalInfo GetFormEntry(int species, int forme) + { + return this[GetFormIndex(species, forme)]; + } + + public string[][] GetFormList(string[] species, int MaxSpecies) + { + string[][] FormList = new string[MaxSpecies + 1][]; + for (int i = 0; i <= MaxSpecies; i++) { - string[][] FormList = new string[MaxSpecies + 1][]; - for (int i = 0; i <= MaxSpecies; i++) + int FormCount = this[i].FormeCount; + FormList[i] = new string[FormCount]; + if (FormCount <= 0) continue; + FormList[i][0] = species[i]; + for (int j = 1; j < FormCount; j++) { - int FormCount = this[i].FormeCount; - FormList[i] = new string[FormCount]; - if (FormCount <= 0) continue; - FormList[i][0] = species[i]; - for (int j = 1; j < FormCount; j++) - { - FormList[i][j] = $"{species[i]} " + j; - } + FormList[i][j] = $"{species[i]} " + j; } - - return FormList; } - public string[] getPersonalEntryList(string[][] AltForms, string[] species, int MaxSpecies, out int[] baseForm, out int[] formVal) + + return FormList; + } + + public string[] GetPersonalEntryList(string[][] AltForms, string[] species, int MaxSpecies, out int[] baseForm, out int[] formVal) + { + string[] result = new string[Table.Length]; + baseForm = new int[result.Length]; + formVal = new int[result.Length]; + for (int i = 0; i <= MaxSpecies; i++) { - string[] result = new string[Table.Length]; - baseForm = new int[result.Length]; - formVal = new int[result.Length]; - for (int i = 0; i <= MaxSpecies; i++) + result[i] = species[i]; + if (AltForms[i].Length == 0) continue; + int altformpointer = this[i].FormStatsIndex; + if (altformpointer <= 0) continue; + for (int j = 1; j < AltForms[i].Length; j++) { - result[i] = species[i]; - if (AltForms[i].Length == 0) continue; - int altformpointer = this[i].FormStatsIndex; - if (altformpointer <= 0) continue; - for (int j = 1; j < AltForms[i].Length; j++) - { - int ptr = altformpointer + j - 1; - baseForm[ptr] = i; - formVal[ptr] = j; - result[ptr] = AltForms[i][j]; - } + int ptr = altformpointer + j - 1; + baseForm[ptr] = i; + formVal[ptr] = j; + result[ptr] = AltForms[i][j]; } - return result; } - public int[] getSpeciesForm(int PersonalEntry, GameConfig config) - { - if (PersonalEntry < config.MaxSpeciesID) return new[] { PersonalEntry, 0 }; + return result; + } - for (int i = 0; i < config.MaxSpeciesID; i++) + public int[] GetSpeciesForm(int PersonalEntry, GameConfig config) + { + if (PersonalEntry < config.MaxSpeciesID) return [PersonalEntry, 0]; + + for (int i = 0; i < config.MaxSpeciesID; i++) + { + int FormCount = this[i].FormeCount - 1; // Mons with no alt forms have a FormCount of 1. + var altformpointer = this[i].FormStatsIndex; + if (altformpointer <= 0) continue; + for (int j = 0; j < FormCount; j++) { - int FormCount = this[i].FormeCount - 1; // Mons with no alt forms have a FormCount of 1. - var altformpointer = this[i].FormStatsIndex; - if (altformpointer <= 0) continue; - for (int j = 0; j < FormCount; j++) - if (altformpointer + j == PersonalEntry) - return new[] { i, j }; + if (altformpointer + j == PersonalEntry) + return [i, j]; } - - return new[] { -1, -1 }; } + + return [-1, -1]; } -} +} \ No newline at end of file diff --git a/pk3DS.Core/Structures/Script.cs b/pk3DS.Core/Structures/Script.cs new file mode 100644 index 0000000000..67e6e3bc81 --- /dev/null +++ b/pk3DS.Core/Structures/Script.cs @@ -0,0 +1,57 @@ +using System; +using System.Linq; + +namespace pk3DS.Core; + +public class Script +{ + public int Length => BitConverter.ToInt32(Raw, 0x00); + public uint Magic => BitConverter.ToUInt32(Raw, 0x04); + // case 0x0A0AF1E0: code = read_code_block(f); break; + // case 0x0A0AF1EF: debug = read_debug_block(f); break; + public bool Debug => Magic == 0x0A0AF1EF; + + public ushort PtrOffset => BitConverter.ToUInt16(Raw, 0x08); + public ushort PtrCount => BitConverter.ToUInt16(Raw, 0x0A); + + public int ScriptInstructionStart => BitConverter.ToInt32(Raw, 0x0C); + public int ScriptMovementStart => BitConverter.ToInt32(Raw, 0x10); + public int FinalOffset => BitConverter.ToInt32(Raw, 0x14); + public int AllocatedMemory => BitConverter.ToInt32(Raw, 0x18); + + // Generated Attributes + public int CompressedLength => Length - ScriptInstructionStart; + public byte[] CompressedBytes => Raw.Skip(ScriptInstructionStart).ToArray(); + public int DecompressedLength => FinalOffset - ScriptInstructionStart; + public uint[] DecompressedInstructions => Scripts.QuickDecompress(CompressedBytes, DecompressedLength / 4); + + public uint[] ScriptCommands => DecompressedInstructions.Take((ScriptMovementStart - ScriptInstructionStart) / 4).ToArray(); + public uint[] MoveCommands => DecompressedInstructions.Skip((ScriptMovementStart - ScriptInstructionStart) / 4).ToArray(); + public string[] ParseScript => Scripts.ParseScript(ScriptCommands); + public string[] ParseMoves => Scripts.ParseMovement(MoveCommands); + + public string Info => "Data Start: 0x" + ScriptInstructionStart.ToString("X4") + + Environment.NewLine + "Movement Offset: 0x" + ScriptMovementStart.ToString("X4") + + Environment.NewLine + "Total Used Size: 0x" + FinalOffset.ToString("X4") + + Environment.NewLine + "Reserved Size: 0x" + AllocatedMemory.ToString("X4") + + Environment.NewLine + "Compressed Len: 0x" + CompressedLength.ToString("X4") + + Environment.NewLine + "Decompressed Len: 0x" + DecompressedLength.ToString("X4") + + Environment.NewLine + "Compression Ratio: " + + ((DecompressedLength - CompressedLength) / (decimal)DecompressedLength).ToString("p1"); + + public byte[] Raw; + + public Script(byte[] data = null) + { + Raw = data ?? []; + + // sub_51AAFC + if ((Raw[8] & 1) != 0) + throw new ArgumentException("Multi-environment script!?"); + } + + public byte[] Write() + { + return Raw; + } +} \ No newline at end of file diff --git a/pk3DS.Core/Structures/Scripts.cs b/pk3DS.Core/Structures/Scripts.cs new file mode 100644 index 0000000000..a503c60142 --- /dev/null +++ b/pk3DS.Core/Structures/Scripts.cs @@ -0,0 +1,869 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; + +namespace pk3DS.Core; + +// Big thanks to FireFly for figuring out the 7/6-bit compression routine for scripts. +public static class Scripts +{ + // Decompression - Deprecated: Use FireFly's method. + internal static byte[] DecompressScript(byte[] data) + { + data ??= []; // Bad Input + + using var mn = new MemoryStream(); + using var bw = new BinaryWriter(mn); + // Read away! + int pos = 0; + while (pos < data.Length) + { + // Read until the top bit is not set + byte[] cb = ReadCompressed(data, pos); + pos += cb.Length; + // Interpret the bytecode + byte[] db = DecompressBytes(cb); + // Write Bytes + bw.Write(db); + } + return mn.ToArray(); + } + + internal static byte[] ReadCompressed(byte[] data, int pos) + { + byte[] c1 = data.Skip(pos).TakeWhile(b => b >> 7 > 0).ToArray(); // Take while >= 0x80 + return [.. c1, .. data.Skip(pos + c1.Length).Take(1)]; // Take another + } + + internal static byte[] DecompressBytes(byte[] cb) + { + byte[] db = []; + + if ((cb[0] & 0x40) > 0) // Signed Parameter + { + // Check the next bytecode + if (cb.Length > 1 && cb[1] >> 7 > 0) // Many-bits-required command + { + // 2 Byte Signed Parameter + int cmd = (cb[0] & 0x3 << 14) | (cb[1] & 0x7F << 7) | cb[2]; // 16 Bits total + db = [.. db, .. BitConverter.GetBytes(cmd).Take(2)]; // 16 Bits + + int dev = ((cb[0] & 0x3F) - 0x40) >> 2; // Lowest 2 bits have already been used for the command + db = [.. db, .. BitConverter.GetBytes(dev).Take(2)]; // 16 Bits + } + else if (cb[0] >> 7 > 0) // Signed Command + { + // 3 Byte Signed Parameter + int cmd = (cb[0] << 7) | cb[1]; + db = [.. db, .. BitConverter.GetBytes(cmd).Take(1)]; // 8 Bits Total + + int dev = ((cb[0] & 0x3F) - 0x40) >> 1; // Lowest bit has already been used for the command + db = [.. db, .. BitConverter.GetBytes(dev).Take(3)]; // 24 Bits + } + else // Signed Value + { + // 4 Byte Signed Parameter + int dev = ((cb[0] & 0x3F) - 0x40) >> 0; // No bits have already been used; no command + db = [.. db, .. BitConverter.GetBytes(dev).Take(4)]; // 32 Bits + } + } + else if (cb[0] >> 7 > 0) // Manybit + { + Array.Reverse(cb); + int cmd = 0; + for (int i = 0; i < cb.Length; i++) + cmd |= (cb[i] & 0x7F) << (7 * i); + + db = [.. db, .. BitConverter.GetBytes((uint)cmd).Take(4)]; + } + else // Literal + { + db = [.. db, .. BitConverter.GetBytes((uint)cb[0]).Take(4)]; + } + return db; + } + // FireFly's (github.com/FireyFly) concise decompression (ported c->c#): + // https://github.com/FireyFly/poketools/blob/e74538a5b5e5dab1e78c1cd313c55d158f37534d/src/formats/script.c#L61 + internal static uint[] QuickDecompress(byte[] data, int count) + { + uint[] code = new uint[count]; + uint i = 0, j = 0, x = 0, f = 0; + while (i < code.Length) + { + int b = data[f++], + v = b & 0x7F; + if (++j == 1) // sign extension possible + x = (uint)((((v >> 6 == 0 ? 1 : 0) - 1) << 6) | v); // only for bit6 being set + else x = (x << 7) | (byte)v; // shift data into place + + if ((b & 0x80) != 0) continue; // more data to read + code[i++] = x; j = 0; // write finalized instruction + } + return code; + } + + // Compression + internal static byte[] CompressScript(byte[] data) + { + if (data == null || data.Length % 4 != 0) // Bad Input + return null; + using var mn = new MemoryStream(); + using var bw = new BinaryWriter(mn); + int pos = 0; + while (pos < data.Length) + { + byte[] db = data.Skip(pos += 4).Take(4).ToArray(); + byte[] cb = CompressBytes(db); + bw.Write(cb); + } + return mn.ToArray(); + } + + internal static byte[] CompressBytes(byte[] db) + { + short cmd = BitConverter.ToInt16(db, 0); + short val = BitConverter.ToInt16(db, 2); + + byte[] cb = []; + bool sign4 = val < 0 && cmd < 0 && db[0] >= 0xC0; // 4 byte signed + bool sign3 = val < 0 && cmd < 0 && db[0] < 0xC0; // 3 byte signed + bool sign2 = val < 0 && cmd > 0; // 2 byte signed + bool liter = cmd is >= 0 and < 0x40; // Literal + bool manyb = cmd >= 0x40; // manybit + + if (sign4) + { + int dev = 0x40 + BitConverter.ToInt32(db, 0); + if (dev < 0) // BADLOGIC + return cb; + cb = [(byte)((dev & 0x3F) | 0x40)]; + } + else if (sign3) + { + byte dev = (byte)(((db[1] << 1) + 0x40) | 0xC0 | db[0] >> 7); + byte low = db[0]; + cb = [dev, low]; + } + else if (sign2) + { + if (manyb) + { + byte dev = (byte)(((db[2] << 2) + 0x40) | 0xC0 | db[1] >> 7); + byte low1 = (byte)(0x80 | (db[0] >> 7) | (db[1] & 0x80)); + byte low0 = (byte)(db[0] & 0x80); + cb = [low0, low1, dev]; + } + else // Dunno if this ever naturally happens; the command reader may ignore db[1] if db[0] < 0x80... needs verification. + { + byte dev = (byte)(((db[1] << 2) + 0x40) | 0xC0 | db[0] >> 6); + byte low0 = (byte)(db[0] & 0x3F); + cb = [low0, dev]; + } + } + else if (manyb) + { + ulong bitStorage = 0; + + uint dv = BitConverter.ToUInt32(db, 0); + int ctr = 0; + while (dv != 0) // bits remaining + { + byte bits = (byte)((byte)dv & 0x7F); dv >>= 7; // Take off 7 bits at a time + bitStorage |= (byte)(bits << (ctr * 8)); // Write the 7 bits into storage + bitStorage |= (byte)(1 << (7 + (ctr++ * 8))); // continue reading flag + } + byte[] compressedBits = BitConverter.GetBytes(bitStorage); + + Array.Reverse(compressedBits); + // Trim off leading zero-bytes + cb = compressedBits.SkipWhile(v => v == 0).ToArray(); + } + else if (liter) + { + cb = [(byte)cmd]; + } + return cb; + } + + // General Utility + internal static string[] GetHexLines(byte[] data, int count = 4) + { + data ??= []; + // Generates an x-byte wide space separated string array; leftovers included at the end. + string[] s = new string[(data.Length / count) + (data.Length % count > 0 ? 1 : 0)]; + for (int i = 0; i < s.Length; i++) + s[i] = BitConverter.ToString(data.Skip(i * count).Take(count).ToArray()).Replace('-', ' '); + return s; + } + + internal static string[] GetHexLines(uint[] data) + { + data ??= []; + // Generates an 4-byte wide space separated string array. + string[] s = new string[data.Length]; + for (int i = 0; i < s.Length; i++) + s[i] = BitConverter.ToString(BitConverter.GetBytes(data[i])).Replace('-', ' '); + return s; + } + + internal static byte[] GetBytes(uint[] data) + { + return data.Aggregate(Array.Empty(), (current, t) => [.. current, .. BitConverter.GetBytes(t)]); + } + + // Interpreting + internal static string[] ParseScript(uint[] cmd, int sanity = -1) + { + // sub_148CBC Moon v1.0 + List parse = []; + int sanityMode = 0; + + int i = 0; // Current Offset of decompressed instructions + while (i < cmd.Length) // read away + { + // Read a Command + int line = i; + uint c = cmd[i++]; + + string op; + switch (c & 0x7FFF) + { + default: + throw new ArgumentException("Invalid Command ID"); + case 0x01: + case 0x02: + case 0x05: + case 0x06: + case 0x0F: + case 0x10: + case 0x13: + case 0x14: + case 0x6D: + case 0x72: + { + // Peek at next value + var next = (int)cmd[i++]; + // Check Value against negative and zero... ? + + op = UnkeA(c, next); + break; + } + case 0x03: + case 0x04: + case 0x07: + case 0x08: + case 0x11: + case 0x12: + case 0x15: + case 0x16: + case 0x6E: + case 0x73: + { + // Peek at next value + var next = (int)cmd[i++]; + // Check Value against negative... ? + + op = UnkeA(c, next); + break; + } + case 0x09: + case 0x17: + case 0x19: + case 0x1B: + case 0x21: + case 0x22: + case 0x23: + case 0x24: + case 0x25: + case 0x2A: + case 0x2B: + case 0x2E: // Begin + case 0x2F: + case 0x30: // Return + case 0x41: + case 0x42: + case 0x43: + case 0x48: + case 0x49: + case 0x4A: + case 0x4B: + case 0x4C: + case 0x4D: + case 0x4E: // Add? + case 0x4F: + case 0x50: + case 0x51: // Cmp? + case 0x52: + case 0x53: + case 0x54: + case 0x55: + case 0x56: + case 0x59: // ClearAll + case 0x5A: + case 0x5D: + case 0x5E: + case 0x5F: + case 0x60: + case 0x61: + case 0x62: + case 0x63: + case 0x64: + case 0x65: + case 0x66: + case 0x67: + case 0x68: + case 0x6B: + case 0x6C: + case 0x6F: + case 0x70: + case 0x71: + case 0x74: + case 0x7A: + case 0x83: + case 0x84: + case 0x86: + case 0x89: // LineNo? + case 0xAA: + case 0xAB: // PushConst2 + case 0xAC: // CmpConst2 + case 0xAD: + case 0xAE: + case 0xB7: + case 0xB8: + case 0xB9: + case 0xBA: + case 0xBB: + case 0xBC: // PushConst + case 0xBD: + case 0xBE: + case 0xBF: // AdjustStack + case 0xC0: + case 0xC1: + case 0xC2: + case 0xC3: + case 0xC4: + case 0xC5: + case 0xC6: + case 0xC7: + case 0xC8: // CmpLocal + case 0xC9: // CmpConst + case 0xCA: + case 0xCF: + case 0xD0: + case 0xD1: + case 0xD2: + case 0xD3: + case 0xD4: + { + // no sanity checks + var arg = (short)(c >> 16); + + op = UnkeA(c & 0xFF, arg); + + if ((c & 0xFF) == 0x30) // return + op += Environment.NewLine; + break; + } + case 0x0A: + case 0x0B: + case 0x0C: + case 0x0D: + case 0x0E: + case 0x18: + case 0x1A: + case 0x1C: + case 0x1D: + case 0x1E: + case 0x1F: + case 0x20: + case 0x26: + case 0x27: // PushConst + case 0x28: + case 0x29: + case 0x2C: + case 0x2D: + case 0x34: + case 0x44: + case 0x45: + case 0x46: + case 0x47: + case 0x57: + case 0x58: + case 0x5B: + case 0x5C: + case 0x69: + case 0x6A: + case 0x75: + case 0x76: + case 0x77: + case 0x78: + case 0x79: + case 0x85: + { + var next = (int)cmd[i++]; + // No sanity check needed + + op = UnkeA(c, next); + break; + } + + case 0x31: // CallFunc + case 0x33: + case 0x35: // Jump!= + case 0x36: // Jump== + case 0x37: + case 0x38: + case 0x39: + case 0x3A: + case 0x3B: + case 0x3C: + case 0x3D: + case 0x3E: + case 0x3F: + case 0x40: + case 0x81: // Jump + { + var delta = (int)cmd[i++]; + // sanity check range... + // negative.. weird + + int newOfs = (line * 4) + delta; + op = $"{Commands[c]} => 0x{newOfs:X4} ({delta})"; + break; + } + case 0x7B: + { + var next = (int)cmd[i++]; + sanityMode |= 1; // flag mode 1 + + op = UnkeA(c, next); + break; + } + case 0x82: // JumpIfElse + { + //var jOffset = (i * 4) - 4; // todo: this may be the correct jump start point... + var count = cmd[i++]; // switch case table + // sanity check + + // Populate If-Case Tree + var tree = new List(); + + // Cases + for (int j = 0; j < count; j++) + { + var jmp = (int)cmd[i++]; + var toOffset = ((i - 2) * 4) + jmp; + var ifValue = (int)cmd[i++]; + tree.Add($"\t{ifValue} => 0x{toOffset:X4} ({jmp})"); + } + // Default + { + int jmp = (int)cmd[i++]; + var toOffset = ((i - 2) * 4) + jmp; + tree.Add($"\t* => 0x{toOffset:X4} ({jmp})"); + } + + op = Commands[c] + Environment.NewLine + string.Join(Environment.NewLine, tree); + break; + } + case 0x87: + { + var next1 = (int)cmd[i++]; + var next2 = (int)cmd[i++]; + sanityMode |= 2; // flag mode 2 + + op = UnkeA(c, next1, next2); + break; + } + + case 0x8A: + case 0x8B: + case 0x8C: + case 0x8D: + case 0x9C: + case 0x9D: + { + var next1 = (int)cmd[i++]; + var next2 = (int)cmd[i++]; + + op = UnkeA(c, next1, next2); + break; + } + + case 0x8E: + case 0x8F: + case 0x90: + case 0x91: + { + var next1 = cmd[i++]; + var next2 = cmd[i++]; + var next3 = cmd[i++]; + + op = UnkeF(c, next1, next2, next3); + break; + } + + case 0x92: + case 0x93: + case 0x94: + case 0x95: + { + var next1 = (int)cmd[i++]; + var next2 = (int)cmd[i++]; + var next3 = (int)cmd[i++]; + var next4 = (int)cmd[i++]; + + op = UnkeA(c, next1, next2, next3, next4); + break; + } + + case 0x96: // float + case 0x97: + case 0x98: + case 0x99: + { + var next1 = cmd[i++]; + var next2 = cmd[i++]; + var next3 = cmd[i++]; + var next4 = cmd[i++]; + var next5 = cmd[i++]; + + op = UnkeF(c, next1, next2, next3, next4, next5); + break; + } + + case 0x9A: + { + var next1 = (int)cmd[i++]; + var next2 = (int)cmd[i++]; + // a bunch of sanity checking + + op = UnkeA(c, next1, next2); + break; + } + + case 0x9B: // Copy + { + var next1 = (int)cmd[i++]; + var next2 = (int)cmd[i++]; + // a bunch of sanity checking + + op = UnkeA(c, next1, next2); + break; + } + + case 0x9E: + { + var next1 = (int)cmd[i++]; + // perm check a1 + 0x14 + // can return error code 0x1C + + op = UnkeA(c, next1); + break; + } + + case 0x9F: + { + // perm check a1 + 0x14 + // same permission checking as 0x9E + // can return error code 0x1C + + op = UnkeA(c); + break; + } + + case 0xA1: // Goto + { + // minimal sanity checks + // can return error code 0x1C + int newPos = i + (int)(1 + (2 * (cmd[i] / 4)) + 1); + + op = UnkeA(c, newPos); + break; + } + + case 0xA2: // GetGlobal2 + case 0xA3: // GetGlobal + case 0xA6: + case 0xA7: + case 0xAF: // SetGlobal + case 0xB0: + case 0xB3: + case 0xB4: + case 0xCB: + case 0xCD: + { + // sanity check arg + var arg = (short)(c >> 16); + + op = UnkeA(c & 0xFF, arg); + break; + } + case 0xA4: // GetGlobal4 + case 0xA5: + case 0xA8: + case 0xA9: + case 0xB1: // SetLocal + case 0xB2: + case 0xB5: + case 0xB6: + case 0xCC: + case 0xCE: + { + // sanity check arg, slightly different + var arg = (short)(c >> 16); + + op = UnkeA(c & 0xFF, arg); + break; + } + } + parse.Add($"0x{line * 4:X4}: [{c & 0x7FF:X2}] {op}"); + } + + if (sanity >= 0 && sanity != sanityMode) + throw new ArgumentException(); + + return [.. parse]; + } + + internal static string[] ParseMovement(uint[] cmd) + { + return GetHexLines(cmd); + } + + internal static string UnkeA(uint c, params int[] arr) + { + string cmd = Commands[c]; + string parameters = arr.Length == 0 ? "" : string.Join(", ", arr.Select(z => $"{(Math.Abs(z) < 100 ? z.ToString() : "0x" + z.ToString("X4"))}")); + return $"{cmd}({parameters})"; + } + + private static readonly Func getFloat = val => BitConverter.ToSingle(BitConverter.GetBytes(val), 0); + + internal static string UnkeF(uint c, params uint[] arr) + { + string cmd = Commands[c]; + string parameters = arr.Length == 1 ? "" : string.Join(", ", arr.Select(z => getFloat(z))); + return $"{cmd}({parameters})"; + } + + internal static readonly Dictionary Commands = new() + {// { 0x00, "$00" }, // Invalid Code + { 0x01, "$01" }, + { 0x02, "$02" }, + { 0x03, "$03" }, + { 0x04, "$04" }, + { 0x05, "$05" }, + { 0x06, "$06" }, + { 0x07, "$07" }, + { 0x08, "$08" }, + { 0x09, "$09" }, + { 0x0A, "$0A" }, + { 0x0B, "$0B" }, + { 0x0C, "$0C" }, + { 0x0D, "$0D" }, + { 0x0E, "$0E" }, + { 0x0F, "$0F" }, + { 0x10, "$10" }, + { 0x11, "$11" }, + { 0x12, "$12" }, + { 0x13, "$13" }, + { 0x14, "$14" }, + { 0x15, "$15" }, + { 0x16, "$16" }, + { 0x17, "$17" }, + { 0x18, "$18" }, + { 0x19, "$19" }, + { 0x1A, "$1A" }, + { 0x1B, "$1B" }, + { 0x1C, "$1C" }, + { 0x1D, "$1D" }, + { 0x1E, "$1E" }, + { 0x1F, "$1F" }, + { 0x20, "$20" }, + { 0x21, "$21" }, + { 0x22, "$22" }, + { 0x23, "$23" }, + { 0x24, "$24" }, + { 0x25, "$25" }, + { 0x26, "$26" }, + { 0x27, "PushConst" }, + { 0x28, "$28" }, + { 0x29, "$29" }, + { 0x2A, "$2A" }, + { 0x2B, "$2B" }, + { 0x2C, "$2C" }, + { 0x2D, "$2D" }, + { 0x2E, "Begin" }, + { 0x2F, "$2F" }, + { 0x30, "Return" }, + { 0x31, "CallFunc" }, + { 0x32, "$32" }, + { 0x33, "$33" }, + { 0x34, "$34" }, + { 0x35, "BNE" }, + { 0x36, "BEQ" }, + { 0x37, "$37" }, + { 0x38, "$38" }, + { 0x39, "$39" }, + { 0x3A, "$3A" }, + { 0x3B, "$3B" }, + { 0x3C, "$3C" }, + { 0x3D, "$3D" }, + { 0x3E, "$3E" }, + { 0x3F, "$3F" }, + { 0x40, "$40" }, + { 0x41, "$41" }, + { 0x42, "$42" }, + { 0x43, "$43" }, + { 0x44, "$44" }, + { 0x45, "$45" }, + { 0x46, "$46" }, + { 0x47, "$47" }, + { 0x48, "$48" }, + { 0x49, "$49" }, + { 0x4A, "$4A" }, + { 0x4B, "$4B" }, + { 0x4C, "$4C" }, + { 0x4D, "$4D" }, + { 0x4E, "Add?" }, + { 0x4F, "$4F" }, + { 0x50, "$50" }, + { 0x51, "Cmp?" }, + { 0x52, "$52" }, + { 0x53, "$53" }, + { 0x54, "$54" }, + { 0x55, "$55" }, + { 0x56, "$56" }, + { 0x57, "$57" }, + { 0x58, "$58" }, + { 0x59, "ClearAll" }, + { 0x5A, "$5A" }, + { 0x5B, "$5B" }, + { 0x5C, "$5C" }, + { 0x5D, "$5D" }, + { 0x5E, "$5E" }, + { 0x5F, "$5F" }, + { 0x60, "$60" }, + { 0x61, "$61" }, + { 0x62, "$62" }, + { 0x63, "$63" }, + { 0x64, "$64" }, + { 0x65, "$65" }, + { 0x66, "$66" }, + { 0x67, "$67" }, + { 0x68, "$68" }, + { 0x69, "$69" }, + { 0x6A, "$6A" }, + { 0x6B, "$6B" }, + { 0x6C, "$6C" }, + { 0x6D, "$6D" }, + { 0x6E, "$6E" }, + { 0x6F, "$6F" }, + { 0x70, "$70" }, + { 0x71, "$71" }, + { 0x72, "$72" }, + { 0x73, "$73" }, + { 0x74, "$74" }, + { 0x75, "$75" }, + { 0x76, "$76" }, + { 0x77, "$77" }, + { 0x78, "$78" }, + { 0x79, "$79" }, + { 0x7A, "$7A" }, + { 0x7B, "$7B" }, + // { 0x7C, "$7C" }, // Invalid Code + // { 0x7D, "$7D" }, // Invalid Code + // { 0x7E, "$7E" }, // Invalid Code + // { 0x7F, "$7F" }, // Invalid Code + // { 0x80, "$80" }, // Invalid Code + { 0x81, "JMP" }, + { 0x82, "switch" }, + { 0x83, "$83" }, + { 0x84, "$84" }, + { 0x85, "$85" }, + { 0x86, "$86" }, + { 0x87, "DoCommand?" }, + // { 0x88, "$88" }, // Invalid Code + { 0x89, "LineNo?" }, + { 0x8A, "$8A" }, + { 0x8B, "$8B" }, + { 0x8C, "$8C" }, + { 0x8D, "$8D" }, + { 0x8E, "$8E" }, + { 0x8F, "$8F" }, + { 0x90, "$90" }, + { 0x91, "$91" }, + { 0x92, "$92" }, + { 0x93, "$93" }, + { 0x94, "$94" }, + { 0x95, "$95" }, + { 0x96, "$96" }, + { 0x97, "$97" }, + { 0x98, "$98" }, + { 0x99, "$99" }, + { 0x9A, "$9A" }, + { 0x9B, "Copy" }, + { 0x9C, "$9C" }, + { 0x9D, "$9D" }, + { 0x9E, "$9E" }, + { 0x9F, "$9F" }, + { 0xA0, "$A0" }, + { 0xA1, "$A1" }, + { 0xA2, "GetGlobal2" }, + { 0xA3, "GetGlobal" }, + { 0xA4, "GetGlobal4" }, + { 0xA5, "$A5" }, + { 0xA6, "$A6" }, + { 0xA7, "$A7" }, + { 0xA8, "$A8" }, + { 0xA9, "$A9" }, + { 0xAA, "$AA" }, + { 0xAB, "PushConst2" }, + { 0xAC, "CmpConst2" }, + { 0xAD, "$AD" }, + { 0xAE, "$AE" }, + { 0xAF, "SetGlobal" }, + { 0xB0, "$B0" }, + { 0xB1, "SetLocal" }, + { 0xB2, "$B2" }, + { 0xB3, "$B3" }, + { 0xB4, "$B4" }, + { 0xB5, "$B5" }, + { 0xB6, "$B6" }, + { 0xB7, "$B7" }, + { 0xB8, "$B8" }, + { 0xB9, "$B9" }, + { 0xBA, "$BA" }, + { 0xBB, "$BB" }, + { 0xBC, "PushConst" }, + { 0xBD, "GetGlobal3" }, + { 0xBE, "GetArg" }, + { 0xBF, "AdjustStack" }, + { 0xC0, "$C0" }, + { 0xC1, "$C1" }, + { 0xC2, "$C2" }, + { 0xC3, "$C3" }, + { 0xC4, "$C4" }, + { 0xC5, "$C5" }, + { 0xC6, "$C6" }, + { 0xC7, "$C7" }, + { 0xC8, "CmpLocal" }, + { 0xC9, "CmpConst" }, + { 0xCA, "$CA" }, + { 0xCB, "$CB" }, + { 0xCC, "$CC" }, + { 0xCD, "$CD" }, + { 0xCE, "$CE" }, + { 0xCF, "$CF" }, + { 0xD0, "$D0" }, + + { 0xD1, "$D1" }, + { 0xD2, "$D2" }, + { 0xD3, "$D3" }, + { 0xD4, "$D4" }, + { 0xD5, "Mode1" }, + { 0xD6, "Mode2" }, + }; +} \ No newline at end of file diff --git a/pk3DS.Core/Structures/TypeChart.cs b/pk3DS.Core/Structures/TypeChart.cs index 737333f902..2f225e49fb 100644 --- a/pk3DS.Core/Structures/TypeChart.cs +++ b/pk3DS.Core/Structures/TypeChart.cs @@ -2,50 +2,54 @@ using System.Drawing; using System.Drawing.Imaging; -namespace pk3DS.Core.Structures +namespace pk3DS.Core.Structures; + +public static class TypeChart { - public static class TypeChart + private static readonly uint[] Colors = + [ + 0xFF000000, + 0, // unused + 0xFFFF0000, + 0, // unused + 0xFFFFFFFF, + 0, 0, 0, // unused + 0xFF008000, + ]; + + public static Bitmap GetGrid(int itemsize, int itemsPerRow, byte[] vals) { - private static readonly uint[] Colors = { 0xFF000000, - 0, // unused - 0xFFFF0000, - 0, // unused - 0xFFFFFFFF, - 0, 0, 0, // unused - 0xFF008000 }; + // set up image + var width = itemsize * itemsPerRow; + var height = itemsize * vals.Length / itemsPerRow; + byte[] bmpData = new byte[4 * width * height]; - public static Bitmap getGrid(int itemsize, int itemsPerRow, byte[] vals) + // loop over area + for (int i = 0; i < vals.Length; i++) { - // set up image - int width = itemsize * itemsPerRow, - height = itemsize * vals.Length / itemsPerRow; - byte[] bmpData = new byte[4 * width * height]; + int X = i % itemsPerRow; + int Y = i / itemsPerRow; - // loop over area - for (int i = 0; i < vals.Length; i++) + // Plop into image + byte[] itemColor = BitConverter.GetBytes(Colors[vals[i]]); + for (int x = 0; x < itemsize * itemsize; x++) { - int X = i % itemsPerRow; - int Y = i / itemsPerRow; - - // Plop into image - byte[] itemColor = BitConverter.GetBytes(Colors[vals[i]]); - for (int x = 0; x < itemsize * itemsize; x++) - Buffer.BlockCopy(itemColor, 0, bmpData, - (Y * itemsize + x % itemsize) * width * 4 + (X * itemsize + x / itemsize) * 4, 4); + Buffer.BlockCopy(itemColor, 0, bmpData, (((Y * itemsize) + (x % itemsize)) * width * 4) + (((X * itemsize) + (x / itemsize)) * 4), 4); } - // slap on a grid - byte[] gridColor = BitConverter.GetBytes(0x17000000); - for (int i = 0; i < width * height; i++) - if (i % itemsize == 0 || i / (itemsize * itemsPerRow) % itemsize == 0) - Buffer.BlockCopy(gridColor, 0, bmpData, - i / (itemsize * itemsPerRow) * width * 4 + i % (itemsize * itemsPerRow) * 4, 4); - - // assemble image - Bitmap b = new Bitmap(width, height, PixelFormat.Format32bppArgb); - BitmapData bData = b.LockBits(new Rectangle(0, 0, width, height), ImageLockMode.WriteOnly, PixelFormat.Format32bppArgb); - System.Runtime.InteropServices.Marshal.Copy(bmpData, 0, bData.Scan0, bmpData.Length); - b.UnlockBits(bData); - return b; } + // slap on a grid + byte[] gridColor = BitConverter.GetBytes(0x17000000); + for (int i = 0; i < width * height; i++) + { + if (i % itemsize == 0 || i / (itemsize * itemsPerRow) % itemsize == 0) + Buffer.BlockCopy(gridColor, 0, bmpData, (i / (itemsize * itemsPerRow) * width * 4) + (i % (itemsize * itemsPerRow) * 4), 4); + } + + // assemble image + var b = new Bitmap(width, height, PixelFormat.Format32bppArgb); + var bData = b.LockBits(new Rectangle(0, 0, width, height), ImageLockMode.WriteOnly, PixelFormat.Format32bppArgb); + System.Runtime.InteropServices.Marshal.Copy(bmpData, 0, bData.Scan0, bmpData.Length); + b.UnlockBits(bData); + return b; } -} +} \ No newline at end of file diff --git a/pk3DS.Core/TableUtil.cs b/pk3DS.Core/TableUtil.cs index 29716d7f62..9211691e07 100644 --- a/pk3DS.Core/TableUtil.cs +++ b/pk3DS.Core/TableUtil.cs @@ -2,54 +2,57 @@ using System.Collections.Generic; using System.Linq; -namespace pk3DS.Core +namespace pk3DS.Core; + +public static class TableUtil { - public static class TableUtil + private const string sep = "\t"; + + public static string GetTable(IEnumerable arr, IList names, string name = null) where T : new() + { + var list = GetTableRaw(arr).ToArray(); + + // slap in name to column header + list[0] = $"Index{sep}{name ?? typeof(T).Name}{sep}{list[0]}"; + + // slap in row name to row + for (int i = 1; i < list.Length; i++) + list[i] = $"{i - 1}{sep}{names[i - 1]}{sep}{list[i]}"; + + return string.Join(Environment.NewLine, list); + } + + public static string GetTable(IEnumerable arr) where T : new() + { + return string.Join(Environment.NewLine, GetTableRaw(arr)); + } + + private static IEnumerable GetTableRaw(IEnumerable arr) where T : new() + { + return Table(arr).Select(row => string.Join(sep, row)); + } + + private static IEnumerable> Table(IEnumerable arr) where T : new() + { + var type = typeof(T); + yield return GetNames(type); + foreach (var z in arr) + yield return GetValues(z, type); + } + + private static IEnumerable GetNames(Type type) + { + foreach (var z in type.GetProperties()) + yield return z.Name; + foreach (var z in type.GetFields()) + yield return z.Name; + } + + private static IEnumerable GetValues(object obj, Type type) { - private const string sep = "\t"; - - public static string GetTable(IEnumerable arr, IList names, string name = null) where T : new() - { - var list = GetTableRaw(arr).ToArray(); - - // slap in name to column header - list[0] = $"Index{sep}{name ?? typeof(T).Name}{sep}{list[0]}"; - - // slap in row name to row - for (int i = 1; i < list.Length; i++) - list[i] = $"{i - 1}{sep}{names[i - 1]}{sep}{list[i]}"; - - return string.Join(Environment.NewLine, list); - } - public static string GetTable(IEnumerable arr) where T : new() - { - return string.Join(Environment.NewLine, GetTableRaw(arr)); - } - - private static IEnumerable GetTableRaw(IEnumerable arr) where T : new() - { - return Table(arr).Select(row => string.Join(sep, row)); - } - private static IEnumerable> Table(IEnumerable arr) where T : new() - { - var type = typeof(T); - yield return GetNames(type); - foreach (var z in arr) - yield return GetValues(z, type); - } - private static IEnumerable GetNames(Type type) - { - foreach (var z in type.GetProperties()) - yield return z.Name; - foreach (var z in type.GetFields()) - yield return z.Name; - } - private static IEnumerable GetValues(object obj, Type type) - { - foreach (var z in type.GetProperties()) - yield return z.GetValue(obj, null)?.ToString() ?? ""; - foreach (var z in type.GetFields()) - yield return z.GetValue(obj)?.ToString() ?? ""; - } + foreach (var z in type.GetProperties()) + yield return z.GetValue(obj, null)?.ToString() ?? ""; + foreach (var z in type.GetFields()) + yield return z.GetValue(obj)?.ToString() ?? ""; } -} +} \ No newline at end of file diff --git a/pk3DS.Core/TextFile.cs b/pk3DS.Core/TextFile.cs index 1a8b56eea3..132695d1f0 100644 --- a/pk3DS.Core/TextFile.cs +++ b/pk3DS.Core/TextFile.cs @@ -4,355 +4,410 @@ using System.Linq; using System.Text; -namespace pk3DS.Core +namespace pk3DS.Core; + +public class TextFile { - public class TextFile + // Text Formatting Config + private const ushort KEY_BASE = 0x7C89; + private const ushort KEY_ADVANCE = 0x2983; + private const ushort KEY_VARIABLE = 0x0010; + private const ushort KEY_TERMINATOR = 0x0000; + private const ushort KEY_TEXTRETURN = 0xBE00; + private const ushort KEY_TEXTCLEAR = 0xBE01; + private const ushort KEY_TEXTWAIT = 0xBE02; + private const ushort KEY_TEXTNULL = 0xBDFF; + private static readonly byte[] emptyTextFile = [0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, + ]; + + private GameConfig Config { get; } + public bool SETEMPTYTEXT { get; set; } + public bool RemapChars { get; set; } + + public TextFile(GameConfig config, byte[] data = null, bool remapChars = false) { - // Text Formatting Config - private const ushort KEY_BASE = 0x7C89; - private const ushort KEY_ADVANCE = 0x2983; - private const ushort KEY_VARIABLE = 0x0010; - private const ushort KEY_TERMINATOR = 0x0000; - private const ushort KEY_TEXTRETURN = 0xBE00; - private const ushort KEY_TEXTCLEAR = 0xBE01; - private const ushort KEY_TEXTWAIT = 0xBE02; - private const ushort KEY_TEXTNULL = 0xBDFF; - private const bool SETEMPTYTEXT = false; - private static readonly byte[] emptyTextFile = { 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 }; - - public TextFile(GameConfig config, byte[] data = null, bool remapChars = false) - { - Data = (byte[])(data ?? emptyTextFile).Clone(); + Data = (byte[])(data ?? emptyTextFile).Clone(); - if (InitialKey != 0) - throw new Exception("Invalid initial key! Not 0?"); - if (SectionDataOffset + TotalLength != Data.Length || TextSections != 1) - throw new Exception("Invalid Text File"); - if (SectionLength != TotalLength) - throw new Exception("Section size and overall size do not match."); + if (InitialKey != 0) + throw new Exception("Invalid initial key! Not 0?"); + if (SectionDataOffset + TotalLength != Data.Length || TextSections != 1) + throw new Exception("Invalid Text File"); + if (SectionLength != TotalLength) + throw new Exception("Section size and overall size do not match."); - Config = config; - RemapChars = remapChars; - } - private GameConfig Config { get; set; } - private bool RemapChars = true; - private ushort TextSections { get { return BitConverter.ToUInt16(Data, 0x0); } set { BitConverter.GetBytes(value).CopyTo(Data, 0x0); } } // Always 0x0001 - private ushort LineCount { get { return BitConverter.ToUInt16(Data, 0x2); } set { BitConverter.GetBytes(value).CopyTo(Data, 0x2); } } - private uint TotalLength { get { return BitConverter.ToUInt32(Data, 0x4); } set { BitConverter.GetBytes(value).CopyTo(Data, 0x4); } } - private uint InitialKey { get { return BitConverter.ToUInt32(Data, 0x8); } set { BitConverter.GetBytes(value).CopyTo(Data, 0x8); } } // Always 0x00000000 - private uint SectionDataOffset { get { return BitConverter.ToUInt32(Data, 0xC); } set { BitConverter.GetBytes(value).CopyTo(Data, 0xC); } } // Always 0x0010 - private uint SectionLength { get { return BitConverter.ToUInt32(Data, (int)SectionDataOffset); } set { BitConverter.GetBytes(value).CopyTo(Data, SectionDataOffset); } } - private LineInfo[] LineOffsets + Config = config; + RemapChars = remapChars; + } + + private ushort TextSections { get => BitConverter.ToUInt16(Data, 0x0); set => BitConverter.GetBytes(value).CopyTo(Data, 0x0); } // Always 0x0001 + private ushort LineCount { get => BitConverter.ToUInt16(Data, 0x2); set => BitConverter.GetBytes(value).CopyTo(Data, 0x2); } + private uint TotalLength { get => BitConverter.ToUInt32(Data, 0x4); set => BitConverter.GetBytes(value).CopyTo(Data, 0x4); } + private uint InitialKey { get => BitConverter.ToUInt32(Data, 0x8); set => BitConverter.GetBytes(value).CopyTo(Data, 0x8); } // Always 0x00000000 + private uint SectionDataOffset { get => BitConverter.ToUInt32(Data, 0xC); set => BitConverter.GetBytes(value).CopyTo(Data, 0xC); } // Always 0x0010 + private uint SectionLength { get => BitConverter.ToUInt32(Data, (int)SectionDataOffset); set => BitConverter.GetBytes(value).CopyTo(Data, SectionDataOffset); } + + private LineInfo[] LineOffsets + { + get { - get - { - LineInfo[] result = new LineInfo[LineCount]; - int sdo = (int)SectionDataOffset; - for (int i = 0; i < result.Length; i++) - result[i] = new LineInfo - { - Offset = BitConverter.ToInt32(Data, i * 8 + sdo + 4) + sdo, - Length = BitConverter.ToInt16(Data, i * 8 + sdo + 8) - }; - return result; - } - set + LineInfo[] result = new LineInfo[LineCount]; + int sdo = (int)SectionDataOffset; + for (int i = 0; i < result.Length; i++) { - if (value == null) - return; - int sdo = (int)SectionDataOffset; - for (int i = 0; i < value.Length; i++) + result[i] = new LineInfo { - BitConverter.GetBytes(value[i].Offset).CopyTo(Data, i * 8 + sdo + 4); - BitConverter.GetBytes(value[i].Length).CopyTo(Data, i * 8 + sdo + 8); - } + Offset = BitConverter.ToInt32(Data, (i * 8) + sdo + 4) + sdo, + Length = BitConverter.ToInt16(Data, (i * 8) + sdo + 8), + }; } - } - private class LineInfo - { - public int Offset, Length; - } - public string[] Lines + return result; + } + set { - get + if (value == null) + return; + int sdo = (int)SectionDataOffset; + for (int i = 0; i < value.Length; i++) { - ushort key = KEY_BASE; - string[] result = new string[LineCount]; - LineInfo[] lines = LineOffsets; - for (int i = 0; i < lines.Length; i++) - { - byte[] EncryptedLineData = new byte[lines[i].Length * 2]; - Array.Copy(Data, lines[i].Offset, EncryptedLineData, 0, EncryptedLineData.Length); - byte[] DecryptedLineData = cryptLineData(EncryptedLineData, key); - result[i] = getLineString(Config, DecryptedLineData); - key += KEY_ADVANCE; - } - return result; + BitConverter.GetBytes(value[i].Offset).CopyTo(Data, (i * 8) + sdo + 4); + BitConverter.GetBytes(value[i].Length).CopyTo(Data, (i * 8) + sdo + 8); } - set - { - if (value == null) - value = new string[0]; + } + } - ushort key = KEY_BASE; - LineInfo[] lines = new LineInfo[value.Length]; + private class LineInfo + { + public int Offset, Length; + } - // Get Line Data - byte[][] lineData = new byte[lines.Length][]; - int sdo = (int)SectionDataOffset; - int bytesUsed = 0; - for (int i = 0; i < lines.Length; i++) - { - string text = (value[i] ?? "").Trim(); - if (text.Length == 0 && SETEMPTYTEXT) - text = $"[~ {i}]"; - byte[] DecryptedLineData = getLineData(Config, text); - lineData[i] = cryptLineData(DecryptedLineData, key); - if (lineData[i].Length % 4 == 2) - Array.Resize(ref lineData[i], lineData[i].Length + 2); - key += KEY_ADVANCE; - lines[i] = new LineInfo { Offset = 4 + 8 * value.Length + bytesUsed, Length = DecryptedLineData.Length / 2 }; - bytesUsed += lineData[i].Length; - } + public byte[] this[int index] + { + get + { + ushort key = GetLineKey(index); + var line = LineOffsets[index]; + byte[] EncryptedLineData = new byte[line.Length * 2]; + Array.Copy(Data, line.Offset, EncryptedLineData, 0, EncryptedLineData.Length); - // Apply Line Data - Array.Resize(ref Data, sdo + 4 + 8 * value.Length + bytesUsed); - LineOffsets = lines; // Handled by LineInfo[] set {} - lineData.SelectMany(i => i).ToArray().CopyTo(Data, Data.Length - bytesUsed); - TotalLength = SectionLength = (uint)(Data.Length - sdo); - LineCount = (ushort)value.Length; - } + return CryptLineData(EncryptedLineData, key); } - public byte[] Data; + } + + private static ushort GetLineKey(int index) + { + ushort key = KEY_BASE; + for (int i = 0; i < index; i++) + key += KEY_ADVANCE; + return key; + } - private byte[] cryptLineData(byte[] data, ushort key) + public byte[][] LineData + { + get { - byte[] result = new byte[data.Length]; - for (int i = 0; i < result.Length; i += 2) + ushort key = KEY_BASE; + byte[][] result = new byte[LineCount][]; + LineInfo[] lines = LineOffsets; + for (int i = 0; i < lines.Length; i++) { - BitConverter.GetBytes((ushort)(BitConverter.ToUInt16(data, i) ^ key)).CopyTo(result, i); - key = (ushort)(key << 3 | key >> 13); + byte[] EncryptedLineData = new byte[lines[i].Length * 2]; + Array.Copy(Data, lines[i].Offset, EncryptedLineData, 0, EncryptedLineData.Length); + + result[i] = CryptLineData(EncryptedLineData, key); + key += KEY_ADVANCE; } return result; } - private byte[] getLineData(GameConfig config, string line) + set { - if (line == null) - return new byte[2]; - - MemoryStream ms = new MemoryStream(); - using (BinaryWriter bw = new BinaryWriter(ms)) + // rebuild LineInfo + LineInfo[] lines = new LineInfo[value.Length]; + int bytesUsed = 0; + for (int i = 0; i < lines.Length; i++) { - int i = 0; - while (i < line.Length) - { - ushort val = line[i++]; - val = TryRemapChar(val); - - if (val == '[') // Variable - { - // grab the string - int bracket = line.IndexOf("]", i, StringComparison.Ordinal); - if (bracket < 0) - throw new ArgumentException("Variable text is not capped properly: " + line); - string varText = line.Substring(i, bracket - i); - var varValues = getVariableValues(config, varText); - foreach (ushort v in varValues) bw.Write(v); - i += 1 + varText.Length; - } - else if (val == '\\') // Escaped Formatting - { - var escapeValues = getEscapeValues(line[i++]); - foreach (ushort v in escapeValues) bw.Write(v); - } - else - bw.Write(val); - } - bw.Write(KEY_TERMINATOR); // cap the line off - return ms.ToArray(); + lines[i] = new LineInfo { Offset = 4 + (8 * value.Length) + bytesUsed, Length = value[i].Length / 2 }; + bytesUsed += value[i].Length; } + + // Apply Line Data + int sdo = (int)SectionDataOffset; + Array.Resize(ref Data, sdo + 4 + (8 * value.Length) + bytesUsed); + LineOffsets = lines; + value.SelectMany(i => i).ToArray().CopyTo(Data, Data.Length - bytesUsed); + TotalLength = SectionLength = (uint)(Data.Length - sdo); + LineCount = (ushort)value.Length; } + } + + public string[] Lines + { + get => Array.ConvertAll(LineData, z => GetLineString(Config, z)); + set => LineData = ConvertLinesToData(value); + } - private ushort TryRemapChar(ushort val) + private byte[][] ConvertLinesToData(string[] value) + { + value ??= []; + ushort key = KEY_BASE; + + // Get Line Data + byte[][] lineData = new byte[value.Length][]; + for (int i = 0; i < value.Length; i++) { - if (!RemapChars) - return val; - switch (val) - { - case 0x202F: return 0xE07F; // nbsp - case 0x2026: return 0xE08D; // … - case 0x2642: return 0xE08E; // ♂ - case 0x2640: return 0xE08F; // ♀ - default: return val; - } + string text = (value[i] ?? "").Trim(); + if (text.Length == 0 && SETEMPTYTEXT) + text = $"[~ {i}]"; + byte[] DecryptedLineData = GetLineData(Config, text); + lineData[i] = CryptLineData(DecryptedLineData, key); + if (lineData[i].Length % 4 == 2) + Array.Resize(ref lineData[i], lineData[i].Length + 2); + key += KEY_ADVANCE; } - private ushort TryUnmapChar(ushort val) + + return lineData; + } + + public byte[] Data; + + private static byte[] CryptLineData(byte[] data, ushort key) + { + byte[] result = new byte[data.Length]; + for (int i = 0; i < result.Length; i += 2) { - if (!RemapChars) - return val; - switch (val) - { - case 0xE07F: return 0x202F; // nbsp - case 0xE08D: return 0x2026; // … - case 0xE08E: return 0x2642; // ♂ - case 0xE08F: return 0x2640; // ♀ - default: return val; - } + BitConverter.GetBytes((ushort)(BitConverter.ToUInt16(data, i) ^ key)).CopyTo(result, i); + key = (ushort)(key << 3 | key >> 13); } + return result; + } + + private byte[] GetLineData(GameConfig config, string line) + { + if (line == null) + return new byte[2]; - private string getLineString(GameConfig config, byte[] data) + var ms = new MemoryStream(); + using var bw = new BinaryWriter(ms); + int i = 0; + while (i < line.Length) { - if (data == null) - return null; + ushort val = line[i++]; + val = TryRemapChar(val); - var s = new StringBuilder(); - int i = 0; - while (i < data.Length) + switch (val) { - ushort val = BitConverter.ToUInt16(data, i); - if (val == KEY_TERMINATOR) break; - i += 2; - - switch (val) + // Variable + case '[': + { + // grab the string + int bracket = line.IndexOf(']', i); + if (bracket < 0) + throw new ArgumentException("Variable text is not capped properly: " + line); + string varText = line[i..bracket]; + var varValues = GetVariableValues(config, varText); + foreach (ushort v in varValues) bw.Write(v); + i += 1 + varText.Length; + break; + } + // Escaped Formatting + case '\\': { - case KEY_TERMINATOR: return s.ToString(); - case KEY_VARIABLE: s.Append(getVariableString(config, data, ref i)); break; - case '\n': s.Append(@"\n"); break; - case '\\': s.Append(@"\\"); break; - case '[': s.Append(@"\["); break; - default: s.Append((char)TryUnmapChar(val)); break; + var escapeValues = GetEscapeValues(line[i++]); + foreach (ushort v in escapeValues) bw.Write(v); + break; } + default: + bw.Write(val); + break; } - return s.ToString(); // Shouldn't get hit if the string is properly terminated. } - private string getVariableString(GameConfig config, byte[] data, ref int i) + bw.Write(KEY_TERMINATOR); // cap the line off + return ms.ToArray(); + } + + private ushort TryRemapChar(ushort val) + { + if (!RemapChars) + return val; + return val switch { - var s = new StringBuilder(); - ushort count = BitConverter.ToUInt16(data, i); i += 2; - ushort variable = BitConverter.ToUInt16(data, i); i += 2; + 0x202F => 0xE07F, // nbsp + 0x2026 => 0xE08D, // … + 0x2642 => 0xE08E, // ♂ + 0x2640 => 0xE08F, // ♀ + _ => val, + }; + } - switch (variable) - { - case KEY_TEXTRETURN: // "Waitbutton then scroll text; \r" - return "\\r"; - case KEY_TEXTCLEAR: // "Waitbutton then clear text;; \c" - return "\\c"; - case KEY_TEXTWAIT: // Dramatic pause for a text line. New! - ushort time = BitConverter.ToUInt16(data, i); i += 2; - return $"[WAIT {time}]"; - case KEY_TEXTNULL: // Empty Text line? Includes linenum so maybe for betatest finding used-unused lines? - ushort line = BitConverter.ToUInt16(data, i); i += 2; - return $"[~ {line}]"; - } + private ushort TryUnmapChar(ushort val) + { + if (!RemapChars) + return val; + return val switch + { + 0xE07F => 0x202F, // nbsp + 0xE08D => 0x2026, // … + 0xE08E => 0x2642, // ♂ + 0xE08F => 0x2640, // ♀ + _ => val, + }; + } - string varName = getVariableString(config, variable); + private string GetLineString(GameConfig config, byte[] data) + { + var s = new StringBuilder(); + int i = 0; + while (i < data.Length) + { + ushort val = BitConverter.ToUInt16(data, i); + if (val == KEY_TERMINATOR) + break; + i += 2; - s.Append("[VAR" + " " + varName); - if (count > 1) + switch (val) { - s.Append('('); - while (count > 1) - { - ushort arg = BitConverter.ToUInt16(data, i); i += 2; - s.Append(arg.ToString("X4")); - if (--count == 1) break; - s.Append(","); - } - s.Append(')'); + case KEY_VARIABLE: s.Append(GetVariableString(config, data, ref i)); break; + case '\n': s.Append(@"\n"); break; + case '\\': s.Append(@"\\"); break; + case '[': s.Append(@"\["); break; + default: s.Append((char)TryUnmapChar(val)); break; } - s.Append("]"); - return s.ToString(); } - private IEnumerable getEscapeValues(char esc) + return s.ToString(); // Shouldn't get hit if the string is properly terminated. + } + + private static string GetVariableString(GameConfig config, byte[] data, ref int i) + { + var s = new StringBuilder(); + ushort count = BitConverter.ToUInt16(data, i); i += 2; + ushort variable = BitConverter.ToUInt16(data, i); i += 2; + + switch (variable) { - var vals = new List(); - switch (esc) - { - case 'n': vals.Add('\n'); return vals; - case '\\': vals.Add('\\'); return vals; - case 'r': vals.AddRange(new ushort[] { KEY_VARIABLE, 1, KEY_TEXTRETURN }); return vals; - case 'c': vals.AddRange(new ushort[] { KEY_VARIABLE, 1, KEY_TEXTCLEAR }); return vals; - default: throw new Exception("Invalid terminated line: \\" + esc); - } + case KEY_TEXTRETURN: // "Waitbutton then scroll text; \r" + return "\\r"; + case KEY_TEXTCLEAR: // "Waitbutton then clear text;; \c" + return "\\c"; + case KEY_TEXTWAIT: // Dramatic pause for a text line. New! + ushort time = BitConverter.ToUInt16(data, i); i += 2; + return $"[WAIT {time}]"; + case KEY_TEXTNULL: // Empty Text line? Includes linenum so maybe for betatest finding used-unused lines? + ushort line = BitConverter.ToUInt16(data, i); i += 2; + return $"[~ {line}]"; } - private IEnumerable getVariableValues(GameConfig config, string variable) - { - string[] split = variable.Split(' '); - if (split.Length < 2) - throw new ArgumentException("Incorrectly formatted variable text: " + variable); - var vals = new List { KEY_VARIABLE }; - switch (split[0]) + string varName = GetVariableString(config, variable); + + s.Append("[VAR ").Append(varName); + if (count > 1) + { + s.Append('('); + while (count > 1) { - case "~": // Blank Text Line Variable (No text set - debug/quality testing variable?) - vals.Add(1); - vals.Add(KEY_TEXTNULL); - vals.Add(Convert.ToUInt16(split[1])); - break; - case "WAIT": // Event pause Variable. - vals.Add(1); - vals.Add(KEY_TEXTWAIT); - vals.Add(Convert.ToUInt16(split[1])); - break; - case "VAR": // Text Variable - vals.AddRange(getVariableParameters(config, split[1])); - break; - default: throw new Exception("Unknown variable method type: " + variable); + ushort arg = BitConverter.ToUInt16(data, i); i += 2; + s.Append(arg.ToString("X4")); + if (--count == 1) break; + s.Append(','); } - return vals; + s.Append(')'); } - private IEnumerable getVariableParameters(GameConfig config, string text) + s.Append(']'); + return s.ToString(); + } + + private static List GetEscapeValues(char esc) + { + var vals = new List(); + switch (esc) { - var vals = new List(); - int bracket = text.IndexOf('('); - bool noArgs = bracket < 0; - string variable = noArgs ? text : text.Substring(0, bracket); - ushort varVal = getVariableNumber(config, variable); + case 'n': vals.Add('\n'); return vals; + case '\\': vals.Add('\\'); return vals; + case '[': vals.Add('['); return vals; + case 'r': vals.AddRange([KEY_VARIABLE, 1, KEY_TEXTRETURN]); return vals; + case 'c': vals.AddRange([KEY_VARIABLE, 1, KEY_TEXTCLEAR]); return vals; + default: throw new Exception("Invalid terminated line: \\" + esc); + } + } - if (!noArgs) - { - string[] args = text.Substring(bracket + 1, text.Length - bracket - 2).Split(','); - vals.Add((ushort)(1 + args.Length)); - vals.Add(varVal); - vals.AddRange(args.Select(t => Convert.ToUInt16(t, 16))); - } - else - { + private static List GetVariableValues(GameConfig config, string variable) + { + string[] split = variable.Split(' '); + if (split.Length < 2) + throw new ArgumentException("Incorrectly formatted variable text: " + variable); + + var vals = new List { KEY_VARIABLE }; + switch (split[0]) + { + case "~": // Blank Text Line Variable (No text set - debug/quality testing variable?) vals.Add(1); - vals.Add(varVal); - } - return vals; + vals.Add(KEY_TEXTNULL); + vals.Add(Convert.ToUInt16(split[1])); + break; + case "WAIT": // Event pause Variable. + vals.Add(1); + vals.Add(KEY_TEXTWAIT); + vals.Add(Convert.ToUInt16(split[1])); + break; + case "VAR": // Text Variable + vals.AddRange(GetVariableParameters(config, split[1])); + break; + default: throw new Exception("Unknown variable method type: " + variable); } + return vals; + } - private ushort getVariableNumber(GameConfig config, string variable) - { - var v = config.getVariableCode(variable); - if (v != null) - return (ushort) v.Code; + private static List GetVariableParameters(GameConfig config, string text) + { + var vals = new List(); + int bracket = text.IndexOf('('); + bool noArgs = bracket < 0; + string variable = noArgs ? text : text[..bracket]; + ushort varVal = GetVariableNumber(config, variable); - try - { - return Convert.ToUInt16(variable, 16); - } - catch { throw new ArgumentException("Variable parse error: " + variable); } - } - private string getVariableString(GameConfig config, ushort variable) + if (!noArgs) { - var v = config.getVariableName(variable); - return v == null ? variable.ToString("X4") : v.Name; + string[] args = text.Substring(bracket + 1, text.Length - bracket - 2).Split(','); + vals.Add((ushort)(1 + args.Length)); + vals.Add(varVal); + vals.AddRange(args.Select(t => Convert.ToUInt16(t, 16))); } - - // Exposed Methods - public static string[] getStrings(GameConfig config, byte[] data, bool remapChars = false) + else { - TextFile t; - try { t = new TextFile(config, data, remapChars); } catch { return null; } - return t.Lines; + vals.Add(1); + vals.Add(varVal); } - public static byte[] getBytes(GameConfig config, string[] lines, bool remapChars = false) + return vals; + } + + private static ushort GetVariableNumber(GameConfig config, string variable) + { + var v = config.GetVariableCode(variable); + if (v != null) + return (ushort)v.Code; + + try { - return new TextFile (config, remapChars: remapChars) { Lines = lines }.Data; + return Convert.ToUInt16(variable, 16); } + catch { throw new ArgumentException("Variable parse error: " + variable); } + } + + private static string GetVariableString(GameConfig config, ushort variable) + { + var v = config.GetVariableName(variable); + return v == null ? variable.ToString("X4") : v.Name; + } + + // Exposed Methods + public static string[] GetStrings(GameConfig config, byte[] data, bool remapChars = false) + { + TextFile t; + try { t = new TextFile(config, data, remapChars); } catch { return []; } + return t.Lines; + } + + public static byte[] GetBytes(GameConfig config, string[] lines, bool remapChars = false) + { + return new TextFile(config, remapChars: remapChars) { Lines = lines }.Data; } -} +} \ No newline at end of file diff --git a/pk3DS.Core/Util.cs b/pk3DS.Core/Util.cs index f01690416a..db1da000de 100644 --- a/pk3DS.Core/Util.cs +++ b/pk3DS.Core/Util.cs @@ -2,213 +2,186 @@ using System.IO; using System.Linq; -namespace pk3DS.Core +namespace pk3DS.Core; + +public static class Util { - public static class Util - { - // Strings and Paths - public static FileInfo GetNewestFile(DirectoryInfo directory) - { - return directory.GetFiles() - .Union(directory.GetDirectories().Select(GetNewestFile)) - .OrderByDescending(f => f?.LastWriteTime ?? DateTime.MinValue) - .FirstOrDefault(); - } - public static string NormalizePath(string path) - { - return Path.GetFullPath(new Uri(path).LocalPath) - .TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar); - } - public static string CleanFileName(string fileName) - { - return Path.GetInvalidFileNameChars().Aggregate(fileName, (current, c) => current.Replace(c.ToString(), string.Empty)); - } - public static string TrimFromZero(string input) - { - int index = input.IndexOf('\0'); - if (index < 0) - return input; + // Strings and Paths + public static FileInfo GetNewestFile(DirectoryInfo directory) + { + return directory.GetFiles() + .Union(directory.GetDirectories().Select(GetNewestFile)).MaxBy(f => f?.LastWriteTime ?? DateTime.MinValue); + } - return input.Substring(0, index); - } + public static string NormalizePath(string path) + { + return Path.GetFullPath(new Uri(path).LocalPath) + .TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar); + } - // Randomization - public static Random rand = new Random(); - public static uint rnd32() - { - return (uint)rand.Next(1 << 30) << 2 | (uint)rand.Next(1 << 2); - } + public static string CleanFileName(string fileName) + { + return Path.GetInvalidFileNameChars().Aggregate(fileName, (current, c) => current.Replace(c.ToString(), string.Empty)); + } - // Data Retrieval - public static int ToInt32(string value) - { - string val = value?.Replace(" ", "").Replace("_", "").Trim(); - return string.IsNullOrWhiteSpace(val) ? 0 : int.Parse(val); + public static string TrimFromZero(string input) + { + int index = input.IndexOf('\0'); + if (index < 0) + return input; + + return input[..index]; + } + + // Randomization + public static Random Rand { get; private set; } = new(); + public static void ReseedRand(int seed) => Rand = new Random(seed); + public static uint Random32() => (uint)Rand.Next(1 << 30) << 2 | (uint)Rand.Next(1 << 2); + + // Data Retrieval + public static int ToInt32(string value) + { + string val = value?.Replace(" ", "").Replace("_", "").Trim(); + return string.IsNullOrWhiteSpace(val) ? 0 : int.Parse(val); + } + + public static uint ToUInt32(string value) + { + string val = value?.Replace(" ", "").Replace("_", "").Trim(); + return string.IsNullOrWhiteSpace(val) ? 0 : uint.Parse(val); + } + + // Data Manipulation + public static void Shuffle(T[] array) + { + int n = array.Length; + for (int i = 0; i < n; i++) + { + int r = i + (int)(Rand.NextDouble() * (n - i)); + (array[r], array[i]) = (array[i], array[r]); } - public static uint ToUInt32(string value) - { - string val = value?.Replace(" ", "").Replace("_", "").Trim(); - return string.IsNullOrWhiteSpace(val) ? 0 : uint.Parse(val); - } + } - // Data Manipulation - public static void Shuffle(T[] array) - { - int n = array.Length; - for (int i = 0; i < n; i++) - { - int r = i + (int)(rand.NextDouble() * (n - i)); - T t = array[r]; - array[r] = array[i]; - array[i] = t; - } - } + // GARCTool Utility + public static string GuessExtension(BinaryReader br, string defaultExt, bool bypass) + { + try + { + string ext = ""; + long position = br.BaseStream.Position; + byte[] magic = System.Text.Encoding.ASCII.GetBytes(br.ReadChars(4)); - // GARCTool Utility - public static string GuessExtension(BinaryReader br, string defaultExt, bool bypass) - { - try + // check for extensions { - string ext = ""; - long position = br.BaseStream.Position; - byte[] magic = System.Text.Encoding.ASCII.GetBytes(br.ReadChars(4)); + ushort count = BitConverter.ToUInt16(magic, 2); - // check for extensions + // check for 2char container extensions + try { - ushort count = BitConverter.ToUInt16(magic, 2); - - // check for 2char container extensions - try + br.BaseStream.Position = position + 4 + (4 * count); + if (br.ReadUInt32() == br.BaseStream.Length) { - br.BaseStream.Position = position + 4 + 4 * count; - if (br.ReadUInt32() == br.BaseStream.Length) - { - ext += (char)magic[0] + (char)magic[1]; - goto end; - } + ext += (char)magic[0] + (char)magic[1]; + goto end; } - catch { } - if (bypass) return defaultExt; + } + catch { } + if (bypass) return defaultExt; + + // check for darc + try + { + count = BitConverter.ToUInt16(magic, 0); + br.BaseStream.Position = position + 4 + (0x40 * count); + uint tableval = br.ReadUInt32(); + br.BaseStream.Position += 0x20 * tableval; + while (br.PeekChar() == 0) // seek forward + br.ReadByte(); + if (br.ReadUInt32() == 0x63726164) + return "darc"; + } + catch { } - // check for darc - try + // check for bclim + try + { + br.BaseStream.Position = br.BaseStream.Length - 0x28; + if (br.ReadUInt32() == 0x4D494C43) { - count = BitConverter.ToUInt16(magic, 0); - br.BaseStream.Position = position + 4 + 0x40 * count; - uint tableval = br.ReadUInt32(); - br.BaseStream.Position += 0x20 * tableval; - while (br.PeekChar() == 0) // seek forward - br.ReadByte(); - if (br.ReadUInt32() == 0x63726164) - return "darc"; + br.BaseStream.Position = br.BaseStream.Length - 0x4; + if (br.ReadUInt32() == br.BaseStream.Length - 0x28) + return "bclim"; } - catch { } + } + catch { } - // check for bclim - try + // generic check + { + if (magic[0] < 0x41) + return defaultExt; + for (int i = 0; i < magic.Length && i < 4; i++) { - br.BaseStream.Position = br.BaseStream.Length - 0x28; - if (br.ReadUInt32() == 0x4D494C43) + if ((magic[i] >= 'a' && magic[i] <= 'z') || (magic[i] >= 'A' && magic[i] <= 'Z') + || char.IsDigit((char)magic[i])) { - br.BaseStream.Position = br.BaseStream.Length - 0x4; - if (br.ReadUInt32() == br.BaseStream.Length - 0x28) - return "bclim"; + ext += (char)magic[i]; } - } - catch { } - - // generic check - { - if (magic[0] < 0x41) - return defaultExt; - for (int i = 0; i < magic.Length && i < 4; i++) + else { - if (magic[i] >= 'a' && magic[i] <= 'z' || magic[i] >= 'A' && magic[i] <= 'Z' - || char.IsDigit((char)magic[i])) - { - ext += (char)magic[i]; - } - else - break; + break; } } } - end: - { - // Return BaseStream position to the start. - br.BaseStream.Position = position; - if (ext.Length <= 1) - return defaultExt; - return ext; - } } - catch { return defaultExt; } - } - public static string GuessExtension(string path, bool bypass) - { - using (BinaryReader br = new BinaryReader(File.OpenRead(path))) - return GuessExtension(br, "bin", bypass); - } - public static uint Reverse(uint x) - { - uint y = 0; - for (int i = 0; i < 32; ++i) + end: { - y <<= 1; - y |= x & 1; - x >>= 1; + // Return BaseStream position to the start. + br.BaseStream.Position = position; + return ext.Length <= 1 ? defaultExt : ext; } - return y; - } - public static char[] Reverse(char[] charArray) - { - Array.Reverse(charArray); - return charArray; } + catch { return defaultExt; } + } - // Find Code off of Reference - public static int IndexOfBytes(byte[] array, byte[] pattern, int startIndex, int count) - { - int len = pattern.Length; - int endIndex = count > 0 ? startIndex + count : array.Length - pattern.Length; - int i = startIndex; - int j = 0; - while (true) + public static string GuessExtension(string path, bool bypass) + { + using var br = new BinaryReader(File.OpenRead(path)); + return GuessExtension(br, "bin", bypass); + } + + // Find Code off of Reference + public static int IndexOfBytes(byte[] array, byte[] pattern, int startIndex, int count) + { + int len = pattern.Length; + int endIndex = count > 0 ? startIndex + count : array.Length - pattern.Length; + int i = startIndex; + int j = 0; + while (true) + { + if (pattern[j] != array[i + j]) { - if (pattern[j] != array[i + j]) - { - if (++i == endIndex) - return -1; - j = 0; - } - else if (++j == len) - return i; + if (++i == endIndex) + return -1; + j = 0; } - } - - // Misc - public static string getHexString(byte[] data) - { - return BitConverter.ToString(data).Replace('-', ' '); - } - public static void resizeJagged(ref byte[][] array, int size, int lowLen) - { - int oldSize = array?.Length ?? 0; - Array.Resize(ref array, size); - - // Zero fill new data - for (int i = oldSize; i < size - oldSize; i++) + else if (++j == len) { - array[i] = new byte[lowLen]; + return i; } } - public static byte[] StringToByteArray(string hex) - { - return Enumerable.Range(0, hex.Length) - .Where(x => x % 2 == 0) - .Select(x => Convert.ToByte(hex.Substring(x, 2), 16)) - .ToArray(); - } - } -} + + // Misc + public static string GetHexString(byte[] data) + { + return BitConverter.ToString(data).Replace('-', ' '); + } + + public static byte[] StringToByteArray(string hex) + { + return Enumerable.Range(0, hex.Length) + .Where(x => x % 2 == 0) + .Select(x => Convert.ToByte(hex.Substring(x, 2), 16)) + .ToArray(); + } +} \ No newline at end of file diff --git a/pk3DS.Core/pk3DS.Core.csproj b/pk3DS.Core/pk3DS.Core.csproj index 3fc76e6ebe..4be6e75efc 100644 --- a/pk3DS.Core/pk3DS.Core.csproj +++ b/pk3DS.Core/pk3DS.Core.csproj @@ -1,19 +1,20 @@  - - net40 + true + net10.0-windows + true - - - True - - - - True - - - + + True + True + Resources.resx + + + + + PublicResXFileCodeGenerator + Resources.Designer.cs + - \ No newline at end of file diff --git a/pk3DS.WinForms/ARCUtil.cs b/pk3DS.WinForms/ARCUtil.cs new file mode 100644 index 0000000000..bf887732ed --- /dev/null +++ b/pk3DS.WinForms/ARCUtil.cs @@ -0,0 +1,755 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Text; +using pk3DS.Core.CTR; + +namespace pk3DS.WinForms; + +public static class ARC +{ + public static SARC AnalyzeSARC(string path) + { + try { return new SARC(path); } + catch { return new SARC(); } + } + + internal static ShuffleARC AnalyzeShuffle(string path) + { + var sharc = new ShuffleARC + { + FileName = Path.GetFileNameWithoutExtension(path), + FilePath = Path.GetDirectoryName(path), + Extension = Path.GetExtension(path), + }; + using var br = new BinaryReader(File.OpenRead(path)); + if (br.ReadUInt32() != 0xB) + { + br.BaseStream.Seek(0x100, SeekOrigin.Begin); + if (br.ReadUInt32() != 0xB) + { + sharc.valid = false; + return sharc; + } + sharc.add100 = true; + } + uint magic = br.ReadUInt32(); + if (magic.ToString("X8") != sharc.FileName) + { + Console.WriteLine("Sharc mismatch - " + magic.ToString("X8") + "," + sharc.FileName); + sharc.valid = false; + return sharc; + } + sharc.valid = true; + br.ReadUInt32(); + br.ReadUInt32(); + sharc.FileCount = br.ReadUInt32(); + br.ReadUInt32(); + sharc.Files = []; + for (int i = 0; i < sharc.FileCount; i++) + { + br.BaseStream.Seek(0x8, SeekOrigin.Current); + var sf = new ShuffleFile + { + Length = br.ReadUInt32(), + Offset = br.ReadUInt32() + (uint)(sharc.add100 ? 0x100 : 0), + }; + br.BaseStream.Seek(0x10, SeekOrigin.Current); + sharc.Files.Add(sf); + } + return sharc; + } + + internal static GAR AnalyzeGAR(string path) + { + var gar = new GAR + { + FileName = Path.GetFileNameWithoutExtension(path), + FilePath = Path.GetDirectoryName(path), + Extension = Path.GetExtension(path), + }; + using var br = new BinaryReader(File.OpenRead(path)); + long len = br.BaseStream.Length; + gar.Magic = br.ReadUInt32(); + gar.FileLength = br.ReadUInt32(); + if (gar.Magic != 0x02524147 || gar.FileLength != len) + { + gar.valid = false; + return gar; + } + gar.valid = true; + gar.Unknown = br.ReadUInt32(); + gar.HeaderLength = br.ReadUInt32(); + gar.FileMetaOffset = br.ReadUInt32(); + gar.FileOffsetsOffset = br.ReadUInt32(); + br.BaseStream.Seek(0x1C, SeekOrigin.Current); + gar.FileCountOffset = br.ReadUInt32(); + gar.CTXBOffset = br.ReadUInt32(); + br.BaseStream.Seek(gar.FileOffsetsOffset, SeekOrigin.Begin); + gar.DataOffset = br.ReadUInt32(); + gar.FileCount = (gar.DataOffset - gar.FileOffsetsOffset) / 4; + br.BaseStream.Seek(gar.FileMetaOffset, SeekOrigin.Begin); + gar.Files = []; + for (int i = 0; i < gar.FileCount; i++) + { + var gf = new GARFile + { + Length = br.ReadUInt32(), + NOffset = br.ReadUInt32(), + NWEOffset = br.ReadUInt32(), + }; + gar.Files.Add(gf); + } + for (int i = 0; i < gar.FileCount; i++) + { + br.BaseStream.Seek(gar.Files[i].NOffset, SeekOrigin.Begin); + var sb = new StringBuilder(); + for (char c = br.ReadChar(); c != (char)0; c = br.ReadChar()) + { + sb.Append(c); + } + gar.Files[i].Name = sb.ToString(); + br.BaseStream.Seek(gar.Files[i].NWEOffset, SeekOrigin.Begin); + sb = new StringBuilder(); + for (char c = br.ReadChar(); c != (char)0; c = br.ReadChar()) + { + sb.Append(c); + } + gar.Files[i].NameWithExtension = sb.ToString(); + } + br.BaseStream.Seek(gar.FileOffsetsOffset, SeekOrigin.Begin); + if (gar.Files.Count > 0) + { + gar.Files[0].Offset = gar.DataOffset; + br.ReadUInt32(); + } + for (int i = 1; i < gar.FileCount; i++) + { + gar.Files[i].Offset = br.ReadUInt32(); + } + return gar; + } + + internal static DARC Analyze(string path) + { + var darc = new DARC + { + FileName = Path.GetFileNameWithoutExtension(path), + FilePath = Path.GetDirectoryName(path), + Extension = Path.GetExtension(path), + }; + using var br = new BinaryReader(File.OpenRead(path)); + long len = br.BaseStream.Length; + darc.Magic = br.ReadUInt32(); + uint m = darc.Magic; + darc.HeaderOffset = 0; + while (m != 0x63726164 && darc.HeaderOffset < len - 4) + { + m = br.ReadUInt32(); + darc.HeaderOffset += 4; + } + if (darc.HeaderOffset >= len - 4) + { + darc.valid = false; + return darc; + } + darc.Magic = m; + darc.valid = true; + darc.BOM = br.ReadUInt16(); + darc.HeaderLength = br.ReadUInt16(); + darc.Unknown = br.ReadUInt32(); + darc.totalLength = br.ReadUInt32(); + darc.TableOffset = br.ReadUInt32(); //from start of file + darc.TableOffset += darc.HeaderOffset; + darc.TableLength = br.ReadUInt32(); + darc.DataOffset = br.ReadUInt32(); + var ft = new FileTable(); + br.BaseStream.Seek(darc.TableOffset + 8, SeekOrigin.Begin); + int count = br.ReadByte(); + ft.Files = []; + ft.FileNames = []; + br.BaseStream.Seek(darc.TableOffset, SeekOrigin.Begin); + for (int i = 0; i < count; i++) + { + var file = new DarcFile + { + NameOffset = br.ReadUInt16(), + Parent = br.ReadByte(), + Folder = br.ReadByte(), + Offset = br.ReadUInt32() + darc.HeaderOffset, + Length = br.ReadUInt32(), + }; + ft.Files.Add(file); + } + + uint NameTableOffset = (uint)br.BaseStream.Position; + foreach (var t in ft.Files) + { + br.BaseStream.Seek(NameTableOffset + t.NameOffset, SeekOrigin.Begin); + var stream = new MemoryStream(); + for (byte fb = br.ReadByte(), sb = br.ReadByte(); + fb != 0 || sb != 0; + fb = br.ReadByte(), sb = br.ReadByte()) + { + stream.WriteByte(fb); + stream.WriteByte(sb); + } + ft.FileNames.Add(Encoding.Unicode.GetString(stream.ToArray())); + stream.Close(); + } + darc.Files = ft; + darc.FileName = Path.GetFileNameWithoutExtension(path); + darc.FilePath = Path.GetDirectoryName(path); + darc.Extension = Path.GetExtension(path); + return darc; + } + + internal static FARC AnalyzeFARC(string path) + { + var farc = new FARC + { + FileName = Path.GetFileNameWithoutExtension(path), + FilePath = Path.GetDirectoryName(path), + Extension = Path.GetExtension(path), + }; + var br = new BinaryReader(File.OpenRead(path)); + long len = br.BaseStream.Length; + farc.Magic = br.ReadUInt32(); + uint m = farc.Magic; + farc.HeaderOffset = 0; + while (m != 0x43524146 && farc.HeaderOffset < len - 4) //FARC + { + m = br.ReadUInt32(); + farc.HeaderOffset += 4; + } + if (farc.HeaderOffset >= len - 4) + { + farc.valid = false; + return farc; + } + farc.Magic = m; + farc.valid = true; + br.BaseStream.Seek(farc.HeaderOffset + 0x24, SeekOrigin.Begin); + farc.SirOffset = br.ReadUInt32() + farc.HeaderOffset; + br.ReadUInt32(); //unk + farc.DataOffset = br.ReadUInt32() + farc.HeaderOffset; + br.BaseStream.Seek(farc.SirOffset, SeekOrigin.Begin); + farc.SirMagic = br.ReadUInt32(); + if (farc.SirMagic != 0x30524953) + { + farc.valid = false; + return farc; + } + farc.MetaPointer = farc.SirOffset + br.ReadUInt32(); + br.BaseStream.Seek(farc.MetaPointer, SeekOrigin.Begin); + farc.TableOffset = farc.SirOffset + br.ReadUInt32(); + farc.FileCount = br.ReadUInt32(); + br.BaseStream.Seek(farc.TableOffset, SeekOrigin.Begin); + var ft = new FARCFileTable + { + Files = [], + FileNames = [], + }; + for (int i = 0; i < farc.FileCount; i++) + { + var file = new FARCFile + { + NameOffset = br.ReadUInt32(), + Offset = br.ReadUInt32(), + Length = br.ReadUInt32(), + }; + br.ReadUInt32(); //align to 0x10 + ft.Files.Add(file); + } + for (int i = 0; i < farc.FileCount; i++) + { + br.BaseStream.Seek(ft.Files[i].NameOffset + farc.SirOffset, SeekOrigin.Begin); + var stream = new MemoryStream(); + int firstByte = 1, secondByte = 1; + while (firstByte != 0 || secondByte != 0) + { + firstByte = br.ReadByte(); + secondByte = br.ReadByte(); + stream.WriteByte((byte)firstByte); + stream.WriteByte((byte)secondByte); + } + ft.FileNames.Add(Encoding.Unicode.GetString(stream.ToArray())); + stream.Close(); + } + farc.Files = ft; + farc.FileName = Path.GetFileNameWithoutExtension(path); + farc.FilePath = Path.GetDirectoryName(path); + farc.Extension = Path.GetExtension(path); + return farc; + } + + internal static string Interpret(string path) + { + string fn = Path.GetFileName(path); + if (fn is "save0.bin" or "save1.bin" or "save2.bin") + { + return FixMajoraChecksum(path); + } + if (fn.StartsWith("message") && (fn.EndsWith("_US.bin") || fn.EndsWith("_UK.bin"))) + { + return ParseShuffleText(path); + } + var darc = Analyze(path); + var farc = new FARC(); + var gar = new GAR(); + var sarc = new SARC(); + var sharc = new ShuffleARC(); + if (!darc.valid) farc = AnalyzeFARC(path); + if (!farc.valid) gar = AnalyzeGAR(path); + if (!gar.valid) sharc = AnalyzeShuffle(path); + if (!sharc.valid) sarc = AnalyzeSARC(path); + + string ret = ""; + if (darc.valid) + { + ret += "Header Offset: " + darc.HeaderOffset + Environment.NewLine + "File Count: " + darc.Files.Files.Count + Environment.NewLine; + int extracted = 0; + int folder = 0; + for (int i = 0; i < darc.Files.Files.Count; i++) + { + if (darc.Files.Files[i].Folder > 0) { folder++; } + else + { + extracted++; + string dir = Path.GetDirectoryName(path) + Path.DirectorySeparatorChar + darc.FileName + Path.DirectorySeparatorChar; + if (!Directory.Exists(dir)) + { + Directory.CreateDirectory(dir); + } + string outPath = dir + darc.Files.FileNames[i]; + var fs = File.OpenRead(path); + fs.Seek(darc.Files.Files[i].Offset, SeekOrigin.Begin); + byte[] fileBuffer = new byte[darc.Files.Files[i].Length]; + fs.Read(fileBuffer, 0, fileBuffer.Length); + fs.Close(); + File.WriteAllBytes(outPath, fileBuffer); + } + } + ret += "Extracted " + extracted + " files"; + if (folder > 0) + { + ret += ", did not extract " + folder + " folders"; + } + ret += "." + Environment.NewLine + "Open a .DARC/.SARC/.FARC/.GAR/Shuffle Archive file (or drag/drop)."; + } + else if (farc.valid) + { + ret += "Header Offset: " + farc.HeaderOffset + Environment.NewLine; + int extracted = 0; + for (int i = 0; i < farc.Files.Files.Count; i++) + { + extracted++; + string dir = Path.GetDirectoryName(path) + Path.DirectorySeparatorChar + "FARC_" + farc.FileName + Path.DirectorySeparatorChar; + if (!Directory.Exists(dir)) + { + Directory.CreateDirectory(dir); + } + string outPath = dir + farc.Files.FileNames[i]; + var fs = File.OpenRead(farc.FilePath + "\\" + farc.FileName + farc.Extension); + fs.Seek(farc.Files.Files[i].Offset + farc.DataOffset, SeekOrigin.Begin); + byte[] fileBuffer = new byte[farc.Files.Files[i].Length]; + fs.Read(fileBuffer, 0, fileBuffer.Length); + fs.Close(); + File.WriteAllBytes(outPath, fileBuffer); + } + ret += "Extracted " + extracted + " files"; + ret += "." + Environment.NewLine + ".DARC/.FARC/.SARC/.GAR/Shuffle Archive file (or drag/drop)."; + } + else if (gar.valid) + { + ret += "New GAR with " + gar.FileCount + " files." + Environment.NewLine; + string dir = Path.GetDirectoryName(path) + Path.DirectorySeparatorChar + gar.FileName + Path.DirectorySeparatorChar; + if (!Directory.Exists(dir)) + { + Directory.CreateDirectory(dir); + } + for (int i = 0; i < gar.FileCount; i++) + { + var fs = File.OpenRead(path); + fs.Seek(gar.Files[i].Offset, SeekOrigin.Begin); + byte[] fileBuffer = new byte[gar.Files[i].Length]; + fs.Read(fileBuffer, 0, fileBuffer.Length); + fs.Close(); + File.WriteAllBytes(dir + gar.Files[i].NameWithExtension, fileBuffer); + ret += "Extracted " + gar.Files[i].NameWithExtension + " (Offset: " + gar.Files[i].Offset.ToString("X8") + ", Len: " + gar.Files[i].Length.ToString("X8") + ")." + Environment.NewLine; + } + ret += Environment.NewLine; + } + else if (sharc.valid) + { + UnpackShuffleARC(path, sharc); + } + else if (sarc.Valid) + { + UnpackSARC(sarc); + } + else + { + ret = "Not a valid .DARC/.FARC/.SARC/.GAR/Shuffle Archive file"; + } + return ret; + } + + private static bool UnpackShuffleARC(string path, ShuffleARC sharc) + { + Debug.WriteLine($"New Shuffle Archive with {sharc.FileCount} files."); + string dir = Path.GetDirectoryName(path) + Path.DirectorySeparatorChar + sharc.FileName + "_" + Path.DirectorySeparatorChar; + if (!Directory.Exists(dir)) + { + Console.WriteLine("Making dir: " + dir); + Directory.CreateDirectory(dir); + } + + string diglen = "".PadLeft((int)(Math.Log10(sharc.FileCount) + 1), '0'); + for (int i = 0; i < sharc.FileCount; i++) + { + var fs = File.OpenRead(path); + fs.Seek(sharc.Files[i].Offset, SeekOrigin.Begin); + byte[] fileBuffer = new byte[sharc.Files[i].Length]; + fs.Read(fileBuffer, 0, fileBuffer.Length); + fs.Close(); + uint check = 0; + for (int j = 0; j < fileBuffer.Length; j += 4) + check += BitConverter.ToUInt32(fileBuffer, j); + Console.WriteLine(i.ToString(diglen) + ": " + check.ToString("X8")); + File.WriteAllBytes(dir + i.ToString(diglen) + ".zip", fileBuffer); + Debug.WriteLine($"Extracted {i.ToString(diglen)} (Offset: {sharc.Files[i].Offset:X8}, Len: {sharc.Files[i].Length:X8})."); + } + return true; + } + + public static bool UnpackSARC(SARC sarc) + { + Debug.WriteLine($"New SARC with {sarc.SFAT.EntryCount} files."); + + string outfolder = $"{sarc.FileName}_sarc"; + string outpath = Path.Combine(sarc.FilePath, outfolder); + Directory.CreateDirectory(outpath); + + foreach (SFATEntry t in sarc.SFAT.Entries) + sarc.ExportFile(t, outpath); + + return true; + } + + // Unpacking + internal static string UnpackDARC(string path, string outFolder = null, bool delete = true) + { + int extracted = 0; + int folder = 0; + DARC darc = Analyze(path); + if (!darc.valid) return "Not a DARC?"; + + for (int i = 0; i < darc.Files.Files.Count; i++) + { + if (darc.Files.Files[i].Folder > 0) + { + folder++; + } + else + { + extracted++; + string dir = outFolder ?? Path.GetDirectoryName(path) + Path.DirectorySeparatorChar + darc.FileName + Path.DirectorySeparatorChar; + if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); } + + using var fs = File.OpenRead(path); + fs.Seek(darc.Files.Files[i].Offset, SeekOrigin.Begin); + byte[] fileBuffer = new byte[darc.Files.Files[i].Length]; + fs.Read(fileBuffer, 0, fileBuffer.Length); + File.WriteAllBytes(Path.Combine(dir, darc.Files.FileNames[i]), fileBuffer); + } + } + if (delete) + File.Delete(path); // File is unpacked. + + // Debug info string: + string s = ""; + s += "Header Offset: " + darc.HeaderOffset + Environment.NewLine; + s += "File Count: " + darc.Files.Files.Count + Environment.NewLine; + s += "Extracted " + extracted + " files"; + s += folder > 0 ? ", did not extract " + folder + " folders." : "."; + return s; + } + + internal static void RepackDARC(string path, string fileName, string outfolder = null, bool header = true) + { + var data = Array.Empty(); + string[] files = Directory.GetFiles(path); + int count = files.Length; + + outfolder ??= Directory.GetParent(path).FullName; + string donor = Path.Combine(outfolder, fileName); + + if (header && File.Exists(donor)) + { + data = [.. data, .. BitConverter.GetBytes(count)]; + foreach (string file in files) + { + // File Names are 0x40 characters + string fn = new FileInfo(file).Name; + byte[] bytes = Encoding.ASCII.GetBytes(fn); + Array.Resize(ref bytes, 0x40); + data = [.. data, .. bytes]; + } + + // Check the original file + byte[] donorBytes = File.ReadAllBytes(donor); + if (data.SequenceEqual(donorBytes.Take(data.Length))) + { + int headerLen = data.Length + (BitConverter.ToInt32(donorBytes, data.Length) * 0x20); + headerLen += 0x80 - (headerLen % 0x80); + data = donorBytes.Take(headerLen).ToArray(); + } + else + { + data = []; + } + } + if (data.Length == 0) + { + //var dr = Util.Prompt(MessageBoxButtons.YesNoCancel, "Donor DARC has no header. Export without header?"); + //if (dr != DialogResult.Yes) + return; + } + WinFormsUtil.Alert("Not finished."); + } + + // Generic Utility + internal static string FixMajoraChecksum(string path) + { + byte[] data = File.ReadAllBytes(path); + Array.Copy(BitConverter.GetBytes((ushort)0), 0, data, 0x1A88, 2); + var crc = new CRC16(); + ushort val = crc.ComputeChecksum(data); + val ^= 0x903B; + Array.Copy(BitConverter.GetBytes(val), 0, data, 0x1A88, 2); + File.WriteAllBytes(path, data); + return "Corrected Majora Checksum to " + val.ToString("X4"); + } + + internal static string ParseShuffleText(string path) + { + var st = new ShuffleText + { + FileName = Path.GetFileNameWithoutExtension(path), + FilePath = Path.GetDirectoryName(path), + Extension = Path.GetExtension(path), + }; + Console.WriteLine(st.FilePath); + var br = new BinaryReader(File.OpenRead(path)); + br.BaseStream.Seek(0xC, SeekOrigin.Begin); + uint StringDataLen = br.ReadUInt32(); + st.StringMetaOffset = br.ReadUInt32(); + st.StringMetaLen = br.ReadUInt32(); + st.StringCount = st.StringMetaLen / 4; + Console.WriteLine(st.StringCount); + br.BaseStream.Seek(st.StringMetaOffset, SeekOrigin.Begin); + st.offsets = []; + for (int i = 0; i < st.StringCount; i++) + { + st.offsets.Add(br.ReadUInt32()); + } + string ret = "Dumped Offsets."; + st.strings = []; + for (int i = 0; i < st.StringCount; i++) + { + br.BaseStream.Seek(st.offsets[i], SeekOrigin.Begin); + uint len = i < st.StringCount - 1 + ? st.offsets[i + 1] - st.offsets[i] + : StringDataLen + 0x40 - st.offsets[i]; + byte[] data = br.ReadBytes((int)len); + st.strings.Add(Encoding.Unicode.GetString(data).Replace((char)0, ' ').Replace((char)0xa, ' ')); + } + ret += Environment.NewLine + "Dumped Strings."; + var sb = new StringBuilder(); + foreach (string t in st.strings) + sb.AppendLine(t); + + string newfilename = st.FilePath + Path.DirectorySeparatorChar + st.FileName + ".txt"; + File.WriteAllText(newfilename, sb.ToString()); + return ret; + } +} + +public class FARC +{ + public uint Magic; + public uint SirMagic; + public uint SirOffset; + public uint HeaderOffset; + public uint MetaPointer; //from start of file + public uint NamesOffset; + public uint TableOffset; //from start of file + public uint DataOffset; //from start of file + public uint FileCount; + public FARCFileTable Files; + + public string FileName; + public string FilePath; + public string Extension; + public bool valid; +} + +public class FARCFileTable +{ + public List Files; + public List FileNames; +} + +public class FARCFile +{ + public uint NameOffset; + public uint Offset; + public uint Length; + + public string Name; +} + +public class ShuffleARC +{ + public uint magic; //0xB + public uint FileNameCheck; + public uint unk; + public uint unk2; + public uint FileCount; + public uint padding; + public List Files; + + public string FileName; + public string FilePath; + public string Extension; + public bool add100; + public bool valid; +} + +public class ShuffleFile +{ + public uint Offset; + public uint Length; +} + +public class ShuffleText +{ + public uint StringMetaOffset; + public uint StringMetaLen; + public uint StringCount; + public List offsets; + public List strings; + + public string FileName; + public string FilePath; + public string Extension; + public bool valid; +} + +public class GAR +{ + public uint Magic; //0x02524146 "GAR" + public uint FileLength; + public uint Unknown; + public uint HeaderLength; + public uint FileMetaOffset; + public uint FileOffsetsOffset; + public uint FileCountOffset; + public uint CTXBOffset; //Filecount = (CTXBOffset-FileCountOffset)/4; + public uint DataOffset; + + public uint FileCount; + public List Files; + + public string FileName; + public string FilePath; + public string Extension; + public bool valid; +} + +public class GARFile +{ + public string NameWithExtension; + public string Name; + public uint NOffset; + public uint NWEOffset; + public uint Offset; + public uint Length; +} + +public class DARC +{ + public uint HeaderOffset; // Where is header in file? + + public uint Magic; // 0x64617263 "darc" + public ushort BOM; // 0xFFFE + public ushort HeaderLength; // HeaderLength - 0x1C + public uint Unknown; // 0x10000000 + public uint totalLength; // Total Length of file + public uint TableOffset; // Offset from Start of File + public uint TableLength; // Table Length + public uint DataOffset; // Data Offset + + public FileTable Files; + + public string FileName; + public string FilePath; + public string Extension; + public bool valid; +} + +public class FileTable +{ + public List Files; + public List FileNames; +} + +public class DarcFile +{ + public ushort NameOffset; // + public byte Parent; + public byte Folder; + public uint Offset; + public uint Length; + + public string Name; +} + +public class CRC16 +{ + private const ushort polynomial = 0xA001; + private readonly ushort[] table = new ushort[256]; + + public ushort ComputeChecksum(byte[] bytes) + { + return bytes.Aggregate(0, (current, t) => (ushort)((current >> 8) ^ table[current ^ t])); + } + + public byte[] ComputeChecksumBytes(byte[] bytes) + { + ushort crc = ComputeChecksum(bytes); + return BitConverter.GetBytes(crc); + } + + public CRC16() + { + for (ushort i = 0; i < table.Length; ++i) + { + ushort value = 0; + ushort temp = i; + for (byte j = 0; j < 8; ++j) + { + if (((value ^ temp) & 0x0001) != 0) + value = (ushort)((value >> 1) ^ polynomial); + else + value >>= 1; + + temp >>= 1; + } + table[i] = value; + } + } +} \ No newline at end of file diff --git a/pk3DS.WinForms/GarcUtil.cs b/pk3DS.WinForms/GarcUtil.cs new file mode 100644 index 0000000000..947556b71b --- /dev/null +++ b/pk3DS.WinForms/GarcUtil.cs @@ -0,0 +1,135 @@ +using pk3DS.Core.CTR; +using System; +using System.IO; +using System.Media; +using System.Windows.Forms; + +namespace pk3DS.WinForms; + +/// +/// Windows-forms friendly wrapper for GARC functions +/// +public static class GarcUtil +{ + private static ProgressBar Progress; + private static Label Label; + + private static void GARC_FileCountDetermined(object sender, GARC.FileCountDeterminedEventArgs e) + { + Progress ??= new ProgressBar(); + if (Progress.InvokeRequired) + { + Progress.Invoke(() => { Progress.Minimum = 0; Progress.Step = 1; Progress.Value = 0; Progress.Maximum = e.Total; }); + } + else { Progress.Minimum = 0; Progress.Step = 1; Progress.Value = 0; Progress.Maximum = e.Total; } + Label ??= new Label(); + if (Label.InvokeRequired) + Label.Invoke(() => Label.Visible = true); + } + + private static void GARC_PackProgressed(object sender, GARC.PackProgressedEventArgs e) + { + if (Progress.InvokeRequired) + { + Progress.Invoke(Progress.PerformStep); + } + else { Progress.PerformStep(); } + string update = $"{e.Current / (float)e.Total:P2} - {e.Current}/{e.Total} - {e.CurrentFile}"; + if (Label.InvokeRequired) + { + Label.Invoke(() => Label.Text = update); + } + else { Label.Text = update; } + } + + private static void GARC_UnpackProgressed(object sender, GARC.UnpackProgressedEventArgs e) + { + #region Step + if (Progress.InvokeRequired) Progress.Invoke(Progress.PerformStep); + else Progress.PerformStep(); + + string update = $"{(double)e.Current / e.Total:P2} - {e.Current}/{e.Total}"; + if (Label.InvokeRequired) + { + Label.Invoke(() => Label.Text = update); + } + else { Label.Text = update; } + #endregion + } + + public static bool PackGARC(string folderPath, string garcPath, int version, int bytesPadding, ProgressBar pBar1 = null, Label label = null, bool supress = false) + { + Progress = pBar1; + Label = label; + GARC.FileCountDetermined += GARC_FileCountDetermined; + GARC.PackProgressed += GARC_PackProgressed; + try + { + var filectr = GARC.PackGARC(folderPath, garcPath, version, bytesPadding); + if (filectr > 0) + { + // We're done. + SystemSounds.Exclamation.Play(); + if (!supress) WinFormsUtil.Alert("Pack Successful!", filectr + " files packed to the GARC!"); + } + if (label != null) + { + if (label.InvokeRequired) + label.Invoke(() => label.Visible = false); + else + label.Visible = false; + } + + return true; + } + catch (DirectoryNotFoundException) + { + if (!supress) WinFormsUtil.Error("Folder does not exist."); + } + catch (Exception e) + { + WinFormsUtil.Error("Packing failed", e.ToString()); + } + finally + { + GARC.FileCountDetermined -= GARC_FileCountDetermined; + GARC.PackProgressed -= GARC_PackProgressed; + } + return false; + } + + public static bool UnpackGARC(string garcPath, string outPath, bool skipDecompression, ProgressBar pBar1 = null, Label label = null, bool supress = false) + { + Progress = pBar1; + Label = label; + GARC.FileCountDetermined += GARC_FileCountDetermined; + GARC.UnpackProgressed += GARC_UnpackProgressed; + try + { + var fileCount = GARC.GarcUnpack(garcPath, outPath, skipDecompression); + if (fileCount > 0) + { + SystemSounds.Exclamation.Play(); + if (!supress) WinFormsUtil.Alert("Unpack Successful!", fileCount + " files unpacked from the GARC!"); + } + + if (label == null) + return true; + if (label.InvokeRequired) + label.Invoke(() => label.Visible = false); + else + label.Visible = false; + return true; + } + catch (FileNotFoundException) + { + WinFormsUtil.Alert("File does not exist"); + } + finally + { + GARC.FileCountDetermined -= GARC_FileCountDetermined; + GARC.UnpackProgressed -= GARC_UnpackProgressed; + } + return false; + } +} \ No newline at end of file diff --git a/pk3DS.WinForms/Legality/Randomizer.cs b/pk3DS.WinForms/Legality/Randomizer.cs new file mode 100644 index 0000000000..4b2ded2fdd --- /dev/null +++ b/pk3DS.WinForms/Legality/Randomizer.cs @@ -0,0 +1,175 @@ +using pk3DS.Core; +using pk3DS.Core.Structures.PersonalInfo; +using System.Linq; + +namespace pk3DS.WinForms; + +public static class Randomizer +{ + internal static int GetRandomForme(int species, bool mega, bool alola, PersonalInfo[] stats = null) + { + if (stats == null) + return 0; + if (stats[species].FormeCount <= 1) + return 0; + if (species is 664 or 665 or 666) // vivillon + return 30; // save file specific + if (species == 774) // minior + return (int)(Util.Random32() % 7); + if (alola && Legal.EvolveToAlolanForms.Contains(species)) + return (int)(Util.Random32() % 2); + if (!Legal.Mega_ORAS.Contains((ushort)species) || mega) + return (int)(Util.Random32() % stats[species].FormeCount); // Slot-Random + return 0; + } + + /// + /// Multiplies the current level with a scaling factor, returning a modified level. + /// + /// Current Level. + /// Modification factor. + /// Boosted (or reduced) level. + internal static int GetModifiedLevel(int level, decimal factor) + { + int newlvl = (int)(level * factor); + if (newlvl < 1) + return 1; + if (newlvl > 100) + return 100; + return newlvl; + } + + internal static int[] GetRandomItemList() + { + if (Main.Config.ORAS) + return Items_HeldAO.Concat(Items_Ball).Where(i => i != 0).ToArray(); + if (Main.Config.XY) + return Items_HeldXY.Concat(Items_Ball).Where(i => i != 0).ToArray(); + if (Main.Config.SM || Main.Config.USUM) + return HeldItemsBuy_SM.Select(i => (int)i).Concat(Items_Ball).Where(i => i != 0).ToArray(); + return new int[1]; + } + #region Random Item List + private static readonly int[] Items_HeldXY = + [ + /* 000, */ 001, 002, 003, 004, 005, 006, 007, 008, 009, 010, 011, 012, 013, 014, 015, 017, 018, 019, 020, 021, 022, + 023, 024, 025, 026, 027, 028, 029, 030, 031, 032, 033, 034, 035, + 036, 037, 038, 039, 040, 041, 042, 043, 044, 045, 046, 047, 048, 049, 050, 051, 052, 053, 054, 055, 056, 057, + 058, 059, 060, 061, 062, 063, 064, 065, 066, 067, 068, 069, 070, + 071, 072, 073, 074, 075, 076, 077, 078, 079, 080, 081, 082, 083, 084, 085, 086, 087, 088, 089, 090, 091, 092, + 093, 094, 099, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 112, 116, 117, 118, 119, 134, 135, 136, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, + 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 504, 537, 538, 539, 540, 541, 542, 543, 544, + 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, + 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 577, 580, 581, 582, 583, 584, + 585, 586, 587, 588, 589, 590, 591, 639, 640, 644, 645, 646, 647, + 648, 649, 650, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, + 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, + 684, 685, 686, 687, 688, 699, 704, 708, 709, 710, 711, 715, + ]; + + private static readonly int[] Items_HeldAO = + [ + .. Items_HeldXY, + .. new[] + { + 534, 535, + 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 767, 768, 769, 770, + }, + ]; + + private static readonly int[] Items_Ball = + [ + 000, 001, 002, 003, 004, 005, 006, 007, 008, 009, 010, 011, 012, + 013, 014, 015, 016, 492, 493, 494, 495, 496, 497, 498, 499, 576, + ]; + #endregion + + #region Gen7 + + internal static readonly ushort[] Pouch_Regular_SM = // 00 + [ + 068, 069, 070, 071, 072, 073, 074, 075, 076, 077, 078, 079, 080, 081, 082, 083, 084, 085, 086, 087, + 088, 089, 090, 091, 092, 093, 094, 099, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, + 112, 116, 117, 118, 119, 135, 136, 137, 213, 214, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 499, 534, 535, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, + 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 571, 572, 573, 580, 581, 582, 583, + 584, 585, 586, 587, 588, 589, 590, 639, 640, 644, 645, 646, 647, 648, 649, 650, 656, 657, 658, 659, + 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, + 680, 681, 682, 683, 684, 685, 699, 704, 710, 711, 715, 752, 753, 754, 755, 756, 757, 758, 759, 760, + 761, 762, 763, 764, 767, 768, 769, 770, 795, 796, 844, 849, 853, 854, 855, 856, 879, 880, 881, 882, + 883, 884, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, + ]; + + internal static readonly ushort[] Pouch_Ball_SM = + [ // 08 + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 492, 493, 494, 495, 496, 497, 498, 576, + 851, + ]; + + internal static readonly ushort[] Pouch_Battle_SM = + [ // 16 + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 577, + 846, + ]; + + internal static readonly ushort[] Pouch_Items_SM = [.. Pouch_Regular_SM, .. Pouch_Ball_SM, .. Pouch_Battle_SM]; + + internal static readonly ushort[] Pouch_Key_SM = + [ + 216, 465, 466, 628, 629, 631, 632, 633, 638, 696, + 705, 706, 765, 773, 797, + 841, 842, 843, 845, 847, 850, 857, 858, 860, + ]; + + internal static readonly ushort[] Pouch_TMHM_SM = + [ // 02 + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, + 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, + 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, + 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, + 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, + 418, 419, 618, 619, 620, 690, 691, 692, 693, 694, + ]; + + internal static readonly ushort[] Pouch_Medicine_SM = + [ // 32 + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 65, 66, 67, 134, + 504, 565, 566, 567, 568, 569, 570, 591, 708, 709, + 852, + ]; + + internal static readonly ushort[] Pouch_Berries_SM = + [ + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 686, 687, 688, + ]; + + internal static readonly ushort[] Pouch_ZCrystal_SM = + [ // Bead + 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, + ]; + + internal static readonly ushort[] Pouch_ZCrystalHeld_SM = + [ // Piece + 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 798, 799, 800, 801, 802, 803, 804, 805, 806, 836, + ]; + + internal static readonly ushort[] HeldItems_SM = new ushort[1].Concat(Pouch_Items_SM).Concat(Pouch_Berries_SM).Concat(Pouch_Medicine_SM).Concat(Pouch_ZCrystalHeld_SM).ToArray(); + internal static readonly ushort[] HeldItemsBuy_SM = new ushort[1].Concat(Pouch_Items_SM).Concat(Pouch_Medicine_SM).ToArray(); + #endregion +} \ No newline at end of file diff --git a/pk3DS.WinForms/Main.Designer.cs b/pk3DS.WinForms/Main.Designer.cs new file mode 100644 index 0000000000..6cf7bb1ea5 --- /dev/null +++ b/pk3DS.WinForms/Main.Designer.cs @@ -0,0 +1,889 @@ +namespace pk3DS.WinForms; + +sealed partial class Main +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.TB_Path = new System.Windows.Forms.TextBox(); + this.L_Game = new System.Windows.Forms.Label(); + this.pBar1 = new System.Windows.Forms.ProgressBar(); + this.B_OPower = new System.Windows.Forms.Button(); + this.B_Pickup = new System.Windows.Forms.Button(); + this.B_Mart = new System.Windows.Forms.Button(); + this.B_MoveTutor = new System.Windows.Forms.Button(); + this.B_TMHM = new System.Windows.Forms.Button(); + this.RTB_Status = new System.Windows.Forms.RichTextBox(); + this.menuStrip1 = new System.Windows.Forms.MenuStrip(); + this.Menu_File = new System.Windows.Forms.ToolStripMenuItem(); + this.Menu_Open = new System.Windows.Forms.ToolStripMenuItem(); + this.Menu_Exit = new System.Windows.Forms.ToolStripMenuItem(); + this.Menu_Tools = new System.Windows.Forms.ToolStripMenuItem(); + this.Menu_Restore = new System.Windows.Forms.ToolStripMenuItem(); + this.Menu_Misc = new System.Windows.Forms.ToolStripMenuItem(); + this.unPackBCLIMToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.Menu_BLZ = new System.Windows.Forms.ToolStripMenuItem(); + this.Menu_LZ11 = new System.Windows.Forms.ToolStripMenuItem(); + this.Menu_Shuffler = new System.Windows.Forms.ToolStripMenuItem(); + this.Menu_Extract = new System.Windows.Forms.ToolStripMenuItem(); + this.Menu_Extract_CXI = new System.Windows.Forms.ToolStripMenuItem(); + this.Menu_Rebuild = new System.Windows.Forms.ToolStripMenuItem(); + this.Menu_RomFS = new System.Windows.Forms.ToolStripMenuItem(); + this.Menu_ExeFS = new System.Windows.Forms.ToolStripMenuItem(); + this.Menu_CRO = new System.Windows.Forms.ToolStripMenuItem(); + this.Menu_Trimmed3DS = new System.Windows.Forms.ToolStripMenuItem(); + this.Menu_3DS = new System.Windows.Forms.ToolStripMenuItem(); + this.Menu_Patch = new System.Windows.Forms.ToolStripMenuItem(); + this.Menu_SMDH = new System.Windows.Forms.ToolStripMenuItem(); + this.randomizationToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.setInt32SeedToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.Menu_Options = new System.Windows.Forms.ToolStripMenuItem(); + this.Menu_Language = new System.Windows.Forms.ToolStripMenuItem(); + this.CB_Lang = new System.Windows.Forms.ToolStripComboBox(); + this.Menu_About = new System.Windows.Forms.ToolStripMenuItem(); + this.Menu_GARCs = new System.Windows.Forms.ToolStripMenuItem(); + this.TC_RomFS = new System.Windows.Forms.TabControl(); + this.Tab_RomFS = new System.Windows.Forms.TabPage(); + this.FLP_RomFS = new System.Windows.Forms.FlowLayoutPanel(); + this.B_GameText = new System.Windows.Forms.Button(); + this.B_StoryText = new System.Windows.Forms.Button(); + this.B_Personal = new System.Windows.Forms.Button(); + this.B_Evolution = new System.Windows.Forms.Button(); + this.B_LevelUp = new System.Windows.Forms.Button(); + this.B_Wild = new System.Windows.Forms.Button(); + this.B_MegaEvo = new System.Windows.Forms.Button(); + this.B_EggMove = new System.Windows.Forms.Button(); + this.B_Trainer = new System.Windows.Forms.Button(); + this.B_Maison = new System.Windows.Forms.Button(); + this.B_Royal = new System.Windows.Forms.Button(); + this.B_Item = new System.Windows.Forms.Button(); + this.B_Move = new System.Windows.Forms.Button(); + this.B_TitleScreen = new System.Windows.Forms.Button(); + this.B_OWSE = new System.Windows.Forms.Button(); + this.Tab_ExeFS = new System.Windows.Forms.TabPage(); + this.FLP_ExeFS = new System.Windows.Forms.FlowLayoutPanel(); + this.B_TM = new System.Windows.Forms.Button(); + this.B_ShinyRate = new System.Windows.Forms.Button(); + this.Tab_CRO = new System.Windows.Forms.TabPage(); + this.FLP_CRO = new System.Windows.Forms.FlowLayoutPanel(); + this.B_TypeChart = new System.Windows.Forms.Button(); + this.B_Starter = new System.Windows.Forms.Button(); + this.B_Gift = new System.Windows.Forms.Button(); + this.B_Static = new System.Windows.Forms.Button(); + this.Tab_Output = new System.Windows.Forms.TabPage(); + this.L_Status = new System.Windows.Forms.Label(); + this.Menu_Extract_3DS = new System.Windows.Forms.ToolStripMenuItem(); + this.menuStrip1.SuspendLayout(); + this.TC_RomFS.SuspendLayout(); + this.Tab_RomFS.SuspendLayout(); + this.FLP_RomFS.SuspendLayout(); + this.Tab_ExeFS.SuspendLayout(); + this.FLP_ExeFS.SuspendLayout(); + this.Tab_CRO.SuspendLayout(); + this.FLP_CRO.SuspendLayout(); + this.Tab_Output.SuspendLayout(); + this.SuspendLayout(); + // + // TB_Path + // + this.TB_Path.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.TB_Path.Location = new System.Drawing.Point(158, 3); + this.TB_Path.Name = "TB_Path"; + this.TB_Path.ReadOnly = true; + this.TB_Path.Size = new System.Drawing.Size(214, 20); + this.TB_Path.TabIndex = 1; + // + // L_Game + // + this.L_Game.AutoSize = true; + this.L_Game.ForeColor = System.Drawing.Color.Red; + this.L_Game.Location = new System.Drawing.Point(157, 23); + this.L_Game.Name = "L_Game"; + this.L_Game.Size = new System.Drawing.Size(91, 13); + this.L_Game.TabIndex = 2; + this.L_Game.Text = "No Game Loaded"; + // + // pBar1 + // + this.pBar1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.pBar1.Location = new System.Drawing.Point(12, 225); + this.pBar1.Name = "pBar1"; + this.pBar1.Size = new System.Drawing.Size(360, 14); + this.pBar1.TabIndex = 6; + // + // B_OPower + // + this.B_OPower.Location = new System.Drawing.Point(215, 32); + this.B_OPower.Name = "B_OPower"; + this.B_OPower.Size = new System.Drawing.Size(100, 23); + this.B_OPower.TabIndex = 4; + this.B_OPower.Text = "O-Powers"; + this.B_OPower.UseVisualStyleBackColor = true; + this.B_OPower.Click += new System.EventHandler(this.B_OPower_Click); + // + // B_Pickup + // + this.B_Pickup.Location = new System.Drawing.Point(109, 32); + this.B_Pickup.Name = "B_Pickup"; + this.B_Pickup.Size = new System.Drawing.Size(100, 23); + this.B_Pickup.TabIndex = 0; + this.B_Pickup.Text = "Pickup Items"; + this.B_Pickup.UseVisualStyleBackColor = true; + this.B_Pickup.Click += new System.EventHandler(this.B_Pickup_Click); + // + // B_Mart + // + this.B_Mart.Location = new System.Drawing.Point(3, 32); + this.B_Mart.Name = "B_Mart"; + this.B_Mart.Size = new System.Drawing.Size(100, 23); + this.B_Mart.TabIndex = 2; + this.B_Mart.Text = "Poké Mart"; + this.B_Mart.UseVisualStyleBackColor = true; + this.B_Mart.Click += new System.EventHandler(this.B_Mart_Click); + // + // B_MoveTutor + // + this.B_MoveTutor.Location = new System.Drawing.Point(3, 3); + this.B_MoveTutor.Name = "B_MoveTutor"; + this.B_MoveTutor.Size = new System.Drawing.Size(100, 23); + this.B_MoveTutor.TabIndex = 3; + this.B_MoveTutor.Text = "Move Tutors"; + this.B_MoveTutor.UseVisualStyleBackColor = true; + this.B_MoveTutor.Click += new System.EventHandler(this.B_MoveTutor_Click); + // + // B_TMHM + // + this.B_TMHM.Location = new System.Drawing.Point(109, 3); + this.B_TMHM.Name = "B_TMHM"; + this.B_TMHM.Size = new System.Drawing.Size(100, 23); + this.B_TMHM.TabIndex = 1; + this.B_TMHM.Text = "TMs/HMs"; + this.B_TMHM.UseVisualStyleBackColor = true; + this.B_TMHM.Click += new System.EventHandler(this.B_TMHM_Click); + // + // RTB_Status + // + this.RTB_Status.Dock = System.Windows.Forms.DockStyle.Fill; + this.RTB_Status.Location = new System.Drawing.Point(0, 0); + this.RTB_Status.Name = "RTB_Status"; + this.RTB_Status.ReadOnly = true; + this.RTB_Status.Size = new System.Drawing.Size(352, 154); + this.RTB_Status.TabIndex = 7; + this.RTB_Status.Text = ""; + // + // menuStrip1 + // + this.menuStrip1.BackColor = System.Drawing.Color.Transparent; + this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.Menu_File, + this.Menu_Tools, + this.Menu_Options}); + this.menuStrip1.Location = new System.Drawing.Point(0, 0); + this.menuStrip1.Name = "menuStrip1"; + this.menuStrip1.Size = new System.Drawing.Size(384, 24); + this.menuStrip1.TabIndex = 9; + this.menuStrip1.Text = "menuStrip1"; + // + // Menu_File + // + this.Menu_File.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.Menu_Open, + this.Menu_Exit}); + this.Menu_File.Name = "Menu_File"; + this.Menu_File.Size = new System.Drawing.Size(37, 20); + this.Menu_File.Text = "File"; + // + // Menu_Open + // + this.Menu_Open.Name = "Menu_Open"; + this.Menu_Open.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O))); + this.Menu_Open.Size = new System.Drawing.Size(155, 22); + this.Menu_Open.Text = "&Open..."; + this.Menu_Open.Click += new System.EventHandler(this.B_Open_Click); + // + // Menu_Exit + // + this.Menu_Exit.Name = "Menu_Exit"; + this.Menu_Exit.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Q))); + this.Menu_Exit.Size = new System.Drawing.Size(155, 22); + this.Menu_Exit.Text = "&Exit"; + this.Menu_Exit.Click += new System.EventHandler(this.Menu_Exit_Click); + // + // Menu_Tools + // + this.Menu_Tools.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.Menu_Restore, + this.Menu_Misc, + this.Menu_Extract, + this.Menu_Rebuild, + this.Menu_SMDH, + this.randomizationToolStripMenuItem}); + this.Menu_Tools.Name = "Menu_Tools"; + this.Menu_Tools.Size = new System.Drawing.Size(46, 20); + this.Menu_Tools.Text = "Tools"; + // + // Menu_Restore + // + this.Menu_Restore.Enabled = false; + this.Menu_Restore.Name = "Menu_Restore"; + this.Menu_Restore.Size = new System.Drawing.Size(184, 22); + this.Menu_Restore.Text = "Restore Original Files"; + this.Menu_Restore.Click += new System.EventHandler(this.L_Game_Click); + // + // Menu_Misc + // + this.Menu_Misc.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.unPackBCLIMToolStripMenuItem, + this.Menu_BLZ, + this.Menu_LZ11, + this.Menu_Shuffler}); + this.Menu_Misc.Name = "Menu_Misc"; + this.Menu_Misc.Size = new System.Drawing.Size(184, 22); + this.Menu_Misc.Text = "Misc Tools"; + // + // unPackBCLIMToolStripMenuItem + // + this.unPackBCLIMToolStripMenuItem.Name = "unPackBCLIMToolStripMenuItem"; + this.unPackBCLIMToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.T))); + this.unPackBCLIMToolStripMenuItem.Size = new System.Drawing.Size(216, 22); + this.unPackBCLIMToolStripMenuItem.Text = "(un)Pack + BCLIM"; + this.unPackBCLIMToolStripMenuItem.Click += new System.EventHandler(this.L_SubTools_Click); + // + // Menu_BLZ + // + this.Menu_BLZ.Name = "Menu_BLZ"; + this.Menu_BLZ.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.B))); + this.Menu_BLZ.Size = new System.Drawing.Size(216, 22); + this.Menu_BLZ.Text = "(de)Compress BLZ"; + this.Menu_BLZ.Click += new System.EventHandler(this.Menu_BLZ_Click); + // + // Menu_LZ11 + // + this.Menu_LZ11.Name = "Menu_LZ11"; + this.Menu_LZ11.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.L))); + this.Menu_LZ11.Size = new System.Drawing.Size(216, 22); + this.Menu_LZ11.Text = "(de)Compress LZ11"; + this.Menu_LZ11.Click += new System.EventHandler(this.Menu_LZ11_Click); + // + // Menu_Shuffler + // + this.Menu_Shuffler.Enabled = false; + this.Menu_Shuffler.Name = "Menu_Shuffler"; + this.Menu_Shuffler.Size = new System.Drawing.Size(216, 22); + this.Menu_Shuffler.Text = "GARC Shuffler"; + this.Menu_Shuffler.Click += new System.EventHandler(this.Menu_Shuffler_Click); + // + // Menu_Extract + // + this.Menu_Extract.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.Menu_Extract_CXI, + this.Menu_Extract_3DS}); + this.Menu_Extract.Name = "Menu_Extract"; + this.Menu_Extract.Size = new System.Drawing.Size(184, 22); + this.Menu_Extract.Text = "Extract..."; + // + // Menu_Extract_CXI + // + this.Menu_Extract_CXI.Name = "Menu_Extract_CXI"; + this.Menu_Extract_CXI.Size = new System.Drawing.Size(180, 22); + this.Menu_Extract_CXI.Text = ".CXI"; + this.Menu_Extract_CXI.Click += new System.EventHandler(this.B_ExtractCXI_Click); + // + // Menu_Rebuild + // + this.Menu_Rebuild.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.Menu_RomFS, + this.Menu_ExeFS, + this.Menu_CRO, + this.Menu_Trimmed3DS, + this.Menu_3DS, + this.Menu_Patch}); + this.Menu_Rebuild.Name = "Menu_Rebuild"; + this.Menu_Rebuild.Size = new System.Drawing.Size(184, 22); + this.Menu_Rebuild.Text = "Rebuild..."; + // + // Menu_RomFS + // + this.Menu_RomFS.Enabled = false; + this.Menu_RomFS.Name = "Menu_RomFS"; + this.Menu_RomFS.Size = new System.Drawing.Size(180, 22); + this.Menu_RomFS.Text = "RomFS"; + this.Menu_RomFS.Click += new System.EventHandler(this.RebuildRomFS); + // + // Menu_ExeFS + // + this.Menu_ExeFS.Enabled = false; + this.Menu_ExeFS.Name = "Menu_ExeFS"; + this.Menu_ExeFS.Size = new System.Drawing.Size(180, 22); + this.Menu_ExeFS.Text = "ExeFS"; + this.Menu_ExeFS.Click += new System.EventHandler(this.RebuildExeFS); + // + // Menu_CRO + // + this.Menu_CRO.Enabled = false; + this.Menu_CRO.Name = "Menu_CRO"; + this.Menu_CRO.Size = new System.Drawing.Size(180, 22); + this.Menu_CRO.Text = "CRO"; + this.Menu_CRO.Click += new System.EventHandler(this.PatchCRO_CRR); + // + // Menu_Trimmed3DS + // + this.Menu_Trimmed3DS.Enabled = false; + this.Menu_Trimmed3DS.Name = "Menu_Trimmed3DS"; + this.Menu_Trimmed3DS.Size = new System.Drawing.Size(180, 22); + this.Menu_Trimmed3DS.Text = "Trimmed .3DS"; + this.Menu_Trimmed3DS.Click += new System.EventHandler(this.B_RebuildTrimmed3DS_Click); + // + // Menu_3DS + // + this.Menu_3DS.Enabled = false; + this.Menu_3DS.Name = "Menu_3DS"; + this.Menu_3DS.Size = new System.Drawing.Size(180, 22); + this.Menu_3DS.Text = ".3DS"; + this.Menu_3DS.Click += new System.EventHandler(this.B_Rebuild3DS_Click); + // + // Menu_Patch + // + this.Menu_Patch.Enabled = false; + this.Menu_Patch.Name = "Menu_Patch"; + this.Menu_Patch.Size = new System.Drawing.Size(180, 22); + this.Menu_Patch.Text = "Patch"; + this.Menu_Patch.Click += new System.EventHandler(this.B_Patch_Click); + // + // Menu_SMDH + // + this.Menu_SMDH.Name = "Menu_SMDH"; + this.Menu_SMDH.Size = new System.Drawing.Size(184, 22); + this.Menu_SMDH.Text = "SMDH Editor (Icon)"; + this.Menu_SMDH.Click += new System.EventHandler(this.Menu_SMDH_Click); + // + // randomizationToolStripMenuItem + // + this.randomizationToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.setInt32SeedToolStripMenuItem}); + this.randomizationToolStripMenuItem.Name = "randomizationToolStripMenuItem"; + this.randomizationToolStripMenuItem.Size = new System.Drawing.Size(184, 22); + this.randomizationToolStripMenuItem.Text = "Randomization"; + // + // setInt32SeedToolStripMenuItem + // + this.setInt32SeedToolStripMenuItem.Name = "setInt32SeedToolStripMenuItem"; + this.setInt32SeedToolStripMenuItem.Size = new System.Drawing.Size(146, 22); + this.setInt32SeedToolStripMenuItem.Text = "Set int32 seed"; + this.setInt32SeedToolStripMenuItem.Click += new System.EventHandler(this.SetInt32SeedToolStripMenuItem_Click); + // + // Menu_Options + // + this.Menu_Options.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.Menu_Language, + this.Menu_About, + this.Menu_GARCs}); + this.Menu_Options.Name = "Menu_Options"; + this.Menu_Options.Size = new System.Drawing.Size(61, 20); + this.Menu_Options.Text = "Options"; + // + // Menu_Language + // + this.Menu_Language.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.CB_Lang}); + this.Menu_Language.Name = "Menu_Language"; + this.Menu_Language.Size = new System.Drawing.Size(146, 22); + this.Menu_Language.Text = "Language"; + // + // CB_Lang + // + this.CB_Lang.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_Lang.Items.AddRange(new object[] { + "カタカナ", + "漢字", + "English", + "Français", + "Italiano", + "Deutsch", + "Español", + "한국", + "汉字简化方案", + "漢字簡化方案"}); + this.CB_Lang.Name = "CB_Lang"; + this.CB_Lang.Size = new System.Drawing.Size(121, 23); + this.CB_Lang.SelectedIndexChanged += new System.EventHandler(this.ChangeLanguage); + // + // Menu_About + // + this.Menu_About.Name = "Menu_About"; + this.Menu_About.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.B))); + this.Menu_About.ShowShortcutKeys = false; + this.Menu_About.Size = new System.Drawing.Size(146, 22); + this.Menu_About.Text = "A&bout pk3DS"; + this.Menu_About.Click += new System.EventHandler(this.L_About_Click); + // + // Menu_GARCs + // + this.Menu_GARCs.Name = "Menu_GARCs"; + this.Menu_GARCs.Size = new System.Drawing.Size(146, 22); + this.Menu_GARCs.Text = "About GARCs"; + this.Menu_GARCs.Click += new System.EventHandler(this.L_GARCInfo_Click); + // + // TC_RomFS + // + this.TC_RomFS.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.TC_RomFS.Controls.Add(this.Tab_RomFS); + this.TC_RomFS.Controls.Add(this.Tab_ExeFS); + this.TC_RomFS.Controls.Add(this.Tab_CRO); + this.TC_RomFS.Controls.Add(this.Tab_Output); + this.TC_RomFS.Location = new System.Drawing.Point(12, 39); + this.TC_RomFS.Name = "TC_RomFS"; + this.TC_RomFS.SelectedIndex = 0; + this.TC_RomFS.Size = new System.Drawing.Size(360, 180); + this.TC_RomFS.TabIndex = 11; + // + // Tab_RomFS + // + this.Tab_RomFS.Controls.Add(this.FLP_RomFS); + this.Tab_RomFS.Location = new System.Drawing.Point(4, 22); + this.Tab_RomFS.Name = "Tab_RomFS"; + this.Tab_RomFS.Padding = new System.Windows.Forms.Padding(3); + this.Tab_RomFS.Size = new System.Drawing.Size(352, 154); + this.Tab_RomFS.TabIndex = 0; + this.Tab_RomFS.Text = "RomFS"; + this.Tab_RomFS.UseVisualStyleBackColor = true; + // + // FLP_RomFS + // + this.FLP_RomFS.AutoScroll = true; + this.FLP_RomFS.Controls.Add(this.B_GameText); + this.FLP_RomFS.Controls.Add(this.B_StoryText); + this.FLP_RomFS.Controls.Add(this.B_Personal); + this.FLP_RomFS.Controls.Add(this.B_Evolution); + this.FLP_RomFS.Controls.Add(this.B_LevelUp); + this.FLP_RomFS.Controls.Add(this.B_Wild); + this.FLP_RomFS.Controls.Add(this.B_MegaEvo); + this.FLP_RomFS.Controls.Add(this.B_EggMove); + this.FLP_RomFS.Controls.Add(this.B_Trainer); + this.FLP_RomFS.Controls.Add(this.B_Maison); + this.FLP_RomFS.Controls.Add(this.B_Royal); + this.FLP_RomFS.Controls.Add(this.B_Item); + this.FLP_RomFS.Controls.Add(this.B_Move); + this.FLP_RomFS.Controls.Add(this.B_TitleScreen); + this.FLP_RomFS.Controls.Add(this.B_OWSE); + this.FLP_RomFS.Dock = System.Windows.Forms.DockStyle.Fill; + this.FLP_RomFS.Location = new System.Drawing.Point(3, 3); + this.FLP_RomFS.Name = "FLP_RomFS"; + this.FLP_RomFS.Size = new System.Drawing.Size(346, 148); + this.FLP_RomFS.TabIndex = 13; + // + // B_GameText + // + this.B_GameText.Location = new System.Drawing.Point(3, 3); + this.B_GameText.Name = "B_GameText"; + this.B_GameText.Size = new System.Drawing.Size(100, 23); + this.B_GameText.TabIndex = 0; + this.B_GameText.Text = "Game Text"; + this.B_GameText.UseVisualStyleBackColor = true; + this.B_GameText.Click += new System.EventHandler(this.B_GameText_Click); + // + // B_StoryText + // + this.B_StoryText.Location = new System.Drawing.Point(109, 3); + this.B_StoryText.Name = "B_StoryText"; + this.B_StoryText.Size = new System.Drawing.Size(100, 23); + this.B_StoryText.TabIndex = 1; + this.B_StoryText.Text = "Story Text"; + this.B_StoryText.UseVisualStyleBackColor = true; + this.B_StoryText.Click += new System.EventHandler(this.B_StoryText_Click); + // + // B_Personal + // + this.B_Personal.Location = new System.Drawing.Point(215, 3); + this.B_Personal.Name = "B_Personal"; + this.B_Personal.Size = new System.Drawing.Size(100, 23); + this.B_Personal.TabIndex = 3; + this.B_Personal.Text = "Personal Stats"; + this.B_Personal.UseVisualStyleBackColor = true; + this.B_Personal.Click += new System.EventHandler(this.B_Personal_Click); + // + // B_Evolution + // + this.B_Evolution.Location = new System.Drawing.Point(3, 32); + this.B_Evolution.Name = "B_Evolution"; + this.B_Evolution.Size = new System.Drawing.Size(100, 23); + this.B_Evolution.TabIndex = 6; + this.B_Evolution.Text = "Evolutions"; + this.B_Evolution.UseVisualStyleBackColor = true; + this.B_Evolution.Click += new System.EventHandler(this.B_Evolution_Click); + // + // B_LevelUp + // + this.B_LevelUp.Location = new System.Drawing.Point(109, 32); + this.B_LevelUp.Name = "B_LevelUp"; + this.B_LevelUp.Size = new System.Drawing.Size(100, 23); + this.B_LevelUp.TabIndex = 9; + this.B_LevelUp.Text = "Level Up Moves"; + this.B_LevelUp.UseVisualStyleBackColor = true; + this.B_LevelUp.Click += new System.EventHandler(this.B_LevelUp_Click); + // + // B_Wild + // + this.B_Wild.Location = new System.Drawing.Point(215, 32); + this.B_Wild.Name = "B_Wild"; + this.B_Wild.Size = new System.Drawing.Size(100, 23); + this.B_Wild.TabIndex = 4; + this.B_Wild.Text = "Wild Encounters"; + this.B_Wild.UseVisualStyleBackColor = true; + this.B_Wild.Click += new System.EventHandler(this.B_Wild_Click); + // + // B_MegaEvo + // + this.B_MegaEvo.Location = new System.Drawing.Point(3, 61); + this.B_MegaEvo.Name = "B_MegaEvo"; + this.B_MegaEvo.Size = new System.Drawing.Size(100, 23); + this.B_MegaEvo.TabIndex = 7; + this.B_MegaEvo.Text = "Mega Evolutions"; + this.B_MegaEvo.UseVisualStyleBackColor = true; + this.B_MegaEvo.Click += new System.EventHandler(this.B_MegaEvo_Click); + // + // B_EggMove + // + this.B_EggMove.Location = new System.Drawing.Point(109, 61); + this.B_EggMove.Name = "B_EggMove"; + this.B_EggMove.Size = new System.Drawing.Size(100, 23); + this.B_EggMove.TabIndex = 10; + this.B_EggMove.Text = "Egg Moves"; + this.B_EggMove.UseVisualStyleBackColor = true; + this.B_EggMove.Click += new System.EventHandler(this.B_EggMove_Click); + // + // B_Trainer + // + this.B_Trainer.Location = new System.Drawing.Point(215, 61); + this.B_Trainer.Name = "B_Trainer"; + this.B_Trainer.Size = new System.Drawing.Size(100, 23); + this.B_Trainer.TabIndex = 2; + this.B_Trainer.Text = "Trainers"; + this.B_Trainer.UseVisualStyleBackColor = true; + this.B_Trainer.Click += new System.EventHandler(this.B_Trainer_Click); + // + // B_Maison + // + this.B_Maison.Location = new System.Drawing.Point(3, 90); + this.B_Maison.Name = "B_Maison"; + this.B_Maison.Size = new System.Drawing.Size(100, 23); + this.B_Maison.TabIndex = 5; + this.B_Maison.Text = "Battle Maison"; + this.B_Maison.UseVisualStyleBackColor = true; + this.B_Maison.Click += new System.EventHandler(this.B_Maison_Click); + // + // B_Royal + // + this.B_Royal.Location = new System.Drawing.Point(109, 90); + this.B_Royal.Name = "B_Royal"; + this.B_Royal.Size = new System.Drawing.Size(100, 23); + this.B_Royal.TabIndex = 14; + this.B_Royal.Text = "Battle Royal/Tree"; + this.B_Royal.UseVisualStyleBackColor = true; + this.B_Royal.Click += new System.EventHandler(this.B_Maison_Click); + // + // B_Item + // + this.B_Item.Location = new System.Drawing.Point(215, 90); + this.B_Item.Name = "B_Item"; + this.B_Item.Size = new System.Drawing.Size(100, 23); + this.B_Item.TabIndex = 8; + this.B_Item.Text = "Item Stats"; + this.B_Item.UseVisualStyleBackColor = true; + this.B_Item.Click += new System.EventHandler(this.B_Item_Click); + // + // B_Move + // + this.B_Move.Location = new System.Drawing.Point(3, 119); + this.B_Move.Name = "B_Move"; + this.B_Move.Size = new System.Drawing.Size(100, 23); + this.B_Move.TabIndex = 11; + this.B_Move.Text = "Move Stats"; + this.B_Move.UseVisualStyleBackColor = true; + this.B_Move.Click += new System.EventHandler(this.B_Move_Click); + // + // B_TitleScreen + // + this.B_TitleScreen.Location = new System.Drawing.Point(109, 119); + this.B_TitleScreen.Name = "B_TitleScreen"; + this.B_TitleScreen.Size = new System.Drawing.Size(100, 23); + this.B_TitleScreen.TabIndex = 12; + this.B_TitleScreen.Text = "Title Screen"; + this.B_TitleScreen.UseVisualStyleBackColor = true; + this.B_TitleScreen.Click += new System.EventHandler(this.B_TitleScreen_Click); + // + // B_OWSE + // + this.B_OWSE.Location = new System.Drawing.Point(215, 119); + this.B_OWSE.Name = "B_OWSE"; + this.B_OWSE.Size = new System.Drawing.Size(100, 23); + this.B_OWSE.TabIndex = 13; + this.B_OWSE.Text = "OWSE [Dev]"; + this.B_OWSE.UseVisualStyleBackColor = true; + this.B_OWSE.Click += new System.EventHandler(this.B_OWSE_Click); + // + // Tab_ExeFS + // + this.Tab_ExeFS.Controls.Add(this.FLP_ExeFS); + this.Tab_ExeFS.Location = new System.Drawing.Point(4, 22); + this.Tab_ExeFS.Name = "Tab_ExeFS"; + this.Tab_ExeFS.Padding = new System.Windows.Forms.Padding(3); + this.Tab_ExeFS.Size = new System.Drawing.Size(352, 154); + this.Tab_ExeFS.TabIndex = 1; + this.Tab_ExeFS.Text = "ExeFS"; + this.Tab_ExeFS.UseVisualStyleBackColor = true; + // + // FLP_ExeFS + // + this.FLP_ExeFS.AutoScroll = true; + this.FLP_ExeFS.Controls.Add(this.B_MoveTutor); + this.FLP_ExeFS.Controls.Add(this.B_TMHM); + this.FLP_ExeFS.Controls.Add(this.B_TM); + this.FLP_ExeFS.Controls.Add(this.B_Mart); + this.FLP_ExeFS.Controls.Add(this.B_Pickup); + this.FLP_ExeFS.Controls.Add(this.B_OPower); + this.FLP_ExeFS.Controls.Add(this.B_ShinyRate); + this.FLP_ExeFS.Dock = System.Windows.Forms.DockStyle.Fill; + this.FLP_ExeFS.Location = new System.Drawing.Point(3, 3); + this.FLP_ExeFS.Name = "FLP_ExeFS"; + this.FLP_ExeFS.Size = new System.Drawing.Size(346, 148); + this.FLP_ExeFS.TabIndex = 11; + // + // B_TM + // + this.B_TM.Location = new System.Drawing.Point(215, 3); + this.B_TM.Name = "B_TM"; + this.B_TM.Size = new System.Drawing.Size(100, 23); + this.B_TM.TabIndex = 6; + this.B_TM.Text = "TMs"; + this.B_TM.UseVisualStyleBackColor = true; + this.B_TM.Click += new System.EventHandler(this.B_TMHM_Click); + // + // B_ShinyRate + // + this.B_ShinyRate.Location = new System.Drawing.Point(3, 61); + this.B_ShinyRate.Name = "B_ShinyRate"; + this.B_ShinyRate.Size = new System.Drawing.Size(100, 23); + this.B_ShinyRate.TabIndex = 5; + this.B_ShinyRate.Text = "Shiny Rate"; + this.B_ShinyRate.UseVisualStyleBackColor = true; + this.B_ShinyRate.Click += new System.EventHandler(this.B_ShinyRate_Click); + // + // Tab_CRO + // + this.Tab_CRO.Controls.Add(this.FLP_CRO); + this.Tab_CRO.Location = new System.Drawing.Point(4, 22); + this.Tab_CRO.Name = "Tab_CRO"; + this.Tab_CRO.Size = new System.Drawing.Size(352, 154); + this.Tab_CRO.TabIndex = 2; + this.Tab_CRO.Text = "CRO"; + this.Tab_CRO.UseVisualStyleBackColor = true; + // + // FLP_CRO + // + this.FLP_CRO.Controls.Add(this.B_TypeChart); + this.FLP_CRO.Controls.Add(this.B_Starter); + this.FLP_CRO.Controls.Add(this.B_Gift); + this.FLP_CRO.Controls.Add(this.B_Static); + this.FLP_CRO.Dock = System.Windows.Forms.DockStyle.Fill; + this.FLP_CRO.Location = new System.Drawing.Point(0, 0); + this.FLP_CRO.Name = "FLP_CRO"; + this.FLP_CRO.Padding = new System.Windows.Forms.Padding(3); + this.FLP_CRO.Size = new System.Drawing.Size(352, 154); + this.FLP_CRO.TabIndex = 1; + // + // B_TypeChart + // + this.B_TypeChart.Location = new System.Drawing.Point(6, 6); + this.B_TypeChart.Name = "B_TypeChart"; + this.B_TypeChart.Size = new System.Drawing.Size(100, 23); + this.B_TypeChart.TabIndex = 0; + this.B_TypeChart.Text = "Type Chart"; + this.B_TypeChart.UseVisualStyleBackColor = true; + this.B_TypeChart.Click += new System.EventHandler(this.B_TypeChart_Click); + // + // B_Starter + // + this.B_Starter.Location = new System.Drawing.Point(112, 6); + this.B_Starter.Name = "B_Starter"; + this.B_Starter.Size = new System.Drawing.Size(100, 23); + this.B_Starter.TabIndex = 1; + this.B_Starter.Text = "Starter Pokémon"; + this.B_Starter.UseVisualStyleBackColor = true; + this.B_Starter.Click += new System.EventHandler(this.B_Starter_Click); + // + // B_Gift + // + this.B_Gift.Location = new System.Drawing.Point(218, 6); + this.B_Gift.Name = "B_Gift"; + this.B_Gift.Size = new System.Drawing.Size(100, 23); + this.B_Gift.TabIndex = 2; + this.B_Gift.Text = "Gift Pokémon"; + this.B_Gift.UseVisualStyleBackColor = true; + this.B_Gift.Click += new System.EventHandler(this.B_Gift_Click); + // + // B_Static + // + this.B_Static.Location = new System.Drawing.Point(6, 35); + this.B_Static.Name = "B_Static"; + this.B_Static.Size = new System.Drawing.Size(100, 23); + this.B_Static.TabIndex = 3; + this.B_Static.Text = "Static Encounters"; + this.B_Static.UseVisualStyleBackColor = true; + this.B_Static.Click += new System.EventHandler(this.B_Static_Click); + // + // Tab_Output + // + this.Tab_Output.Controls.Add(this.RTB_Status); + this.Tab_Output.Location = new System.Drawing.Point(4, 22); + this.Tab_Output.Name = "Tab_Output"; + this.Tab_Output.Size = new System.Drawing.Size(352, 154); + this.Tab_Output.TabIndex = 3; + this.Tab_Output.Text = "Output"; + this.Tab_Output.UseVisualStyleBackColor = true; + // + // L_Status + // + this.L_Status.Location = new System.Drawing.Point(203, 37); + this.L_Status.Name = "L_Status"; + this.L_Status.Size = new System.Drawing.Size(163, 20); + this.L_Status.TabIndex = 14; + this.L_Status.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // Menu_Extract_3DS + // + this.Menu_Extract_3DS.Name = "Menu_Extract_3DS"; + this.Menu_Extract_3DS.Size = new System.Drawing.Size(180, 22); + this.Menu_Extract_3DS.Text = ".3DS"; + this.Menu_Extract_3DS.Click += new System.EventHandler(this.B_Extract3DS_Click); + // + // Main + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(384, 252); + this.Controls.Add(this.L_Status); + this.Controls.Add(this.TC_RomFS); + this.Controls.Add(this.pBar1); + this.Controls.Add(this.L_Game); + this.Controls.Add(this.TB_Path); + this.Controls.Add(this.menuStrip1); + this.MaximizeBox = false; + this.MinimumSize = new System.Drawing.Size(400, 290); + this.Name = "Main"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "pk3DS"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.CloseForm); + this.menuStrip1.ResumeLayout(false); + this.menuStrip1.PerformLayout(); + this.TC_RomFS.ResumeLayout(false); + this.Tab_RomFS.ResumeLayout(false); + this.FLP_RomFS.ResumeLayout(false); + this.Tab_ExeFS.ResumeLayout(false); + this.FLP_ExeFS.ResumeLayout(false); + this.Tab_CRO.ResumeLayout(false); + this.FLP_CRO.ResumeLayout(false); + this.Tab_Output.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.TextBox TB_Path; + private System.Windows.Forms.Label L_Game; + private System.Windows.Forms.ProgressBar pBar1; + private System.Windows.Forms.Button B_Pickup; + private System.Windows.Forms.Button B_Mart; + private System.Windows.Forms.Button B_MoveTutor; + private System.Windows.Forms.Button B_TMHM; + public System.Windows.Forms.RichTextBox RTB_Status; + private System.Windows.Forms.Button B_OPower; + private System.Windows.Forms.MenuStrip menuStrip1; + private System.Windows.Forms.ToolStripMenuItem Menu_File; + private System.Windows.Forms.ToolStripMenuItem Menu_Open; + private System.Windows.Forms.ToolStripMenuItem Menu_Exit; + private System.Windows.Forms.ToolStripMenuItem Menu_Tools; + private System.Windows.Forms.ToolStripMenuItem Menu_Restore; + private System.Windows.Forms.ToolStripMenuItem Menu_Misc; + private System.Windows.Forms.ToolStripMenuItem unPackBCLIMToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem Menu_BLZ; + private System.Windows.Forms.ToolStripMenuItem Menu_LZ11; + private System.Windows.Forms.ToolStripMenuItem Menu_Rebuild; + private System.Windows.Forms.ToolStripMenuItem Menu_RomFS; + private System.Windows.Forms.ToolStripMenuItem Menu_ExeFS; + private System.Windows.Forms.ToolStripMenuItem Menu_3DS; + private System.Windows.Forms.ToolStripMenuItem Menu_Patch; + private System.Windows.Forms.ToolStripMenuItem Menu_Options; + private System.Windows.Forms.ToolStripMenuItem Menu_Language; + private System.Windows.Forms.ToolStripComboBox CB_Lang; + private System.Windows.Forms.ToolStripMenuItem Menu_About; + private System.Windows.Forms.ToolStripMenuItem Menu_GARCs; + private System.Windows.Forms.ToolStripMenuItem Menu_SMDH; + private System.Windows.Forms.ToolStripMenuItem Menu_CRO; + private System.Windows.Forms.ToolStripMenuItem Menu_Shuffler; + private System.Windows.Forms.TabControl TC_RomFS; + private System.Windows.Forms.TabPage Tab_RomFS; + private System.Windows.Forms.TabPage Tab_ExeFS; + private System.Windows.Forms.TabPage Tab_CRO; + private System.Windows.Forms.FlowLayoutPanel FLP_ExeFS; + private System.Windows.Forms.TabPage Tab_Output; + private System.Windows.Forms.Button B_Static; + private System.Windows.Forms.Button B_Gift; + private System.Windows.Forms.Button B_Starter; + private System.Windows.Forms.Button B_TypeChart; + private System.Windows.Forms.FlowLayoutPanel FLP_CRO; + private System.Windows.Forms.Button B_TitleScreen; + private System.Windows.Forms.Button B_Move; + private System.Windows.Forms.Button B_Item; + private System.Windows.Forms.Button B_Maison; + private System.Windows.Forms.Button B_Trainer; + private System.Windows.Forms.Button B_EggMove; + private System.Windows.Forms.Button B_MegaEvo; + private System.Windows.Forms.Button B_Wild; + private System.Windows.Forms.Button B_StoryText; + private System.Windows.Forms.Button B_LevelUp; + private System.Windows.Forms.Button B_Evolution; + private System.Windows.Forms.Button B_Personal; + private System.Windows.Forms.Button B_GameText; + private System.Windows.Forms.FlowLayoutPanel FLP_RomFS; + private System.Windows.Forms.Label L_Status; + private System.Windows.Forms.Button B_OWSE; + private System.Windows.Forms.Button B_ShinyRate; + private System.Windows.Forms.Button B_Royal; + private System.Windows.Forms.Button B_TM; + private System.Windows.Forms.ToolStripMenuItem randomizationToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem setInt32SeedToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem Menu_Extract; + private System.Windows.Forms.ToolStripMenuItem Menu_Extract_CXI; + private System.Windows.Forms.ToolStripMenuItem Menu_Trimmed3DS; + private System.Windows.Forms.ToolStripMenuItem Menu_Extract_3DS; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Main.cs b/pk3DS.WinForms/Main.cs new file mode 100644 index 0000000000..09262d515a --- /dev/null +++ b/pk3DS.WinForms/Main.cs @@ -0,0 +1,1582 @@ +/*----------------------------------------------------------------------------*/ +/*-- This program is free software: you can redistribute it and/or modify --*/ +/*-- it under the terms of the GNU General Public License as published by --*/ +/*-- the Free Software Foundation, either version 3 of the License, or --*/ +/*-- (at your option) any later version. --*/ +/*-- --*/ +/*-- This program is distributed in the hope that it will be useful, --*/ +/*-- but WITHOUT ANY WARRANTY; without even the implied warranty of --*/ +/*-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --*/ +/*-- GNU General Public License for more details. --*/ +/*-- --*/ +/*-- You should have received a copy of the GNU General Public License --*/ +/*-- along with this program. If not, see . --*/ +/*----------------------------------------------------------------------------*/ + +using pk3DS.Core; +using pk3DS.Core.CTR; +using pk3DS.Core.Structures.PersonalInfo; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Threading; +using System.Windows.Forms; + +namespace pk3DS.WinForms; + +public sealed partial class Main : Form +{ + public Main() + { + // Initialize the Main Form + InitializeComponent(); + + // Prepare DragDrop Functionality + AllowDrop = TB_Path.AllowDrop = true; + DragEnter += TabMain_DragEnter; + DragDrop += TabMain_DragDrop; + TB_Path.DragEnter += TabMain_DragEnter; + TB_Path.DragDrop += TabMain_DragDrop; + foreach (var t in TC_RomFS.TabPages.OfType()) + { + t.AllowDrop = true; + t.DragEnter += TabMain_DragEnter; + t.DragDrop += TabMain_DragDrop; + } + + // Reload Previous Editing Files if the file exists + var settings = Properties.Settings.Default; + CB_Lang.SelectedIndex = settings.Language; + var path = settings.GamePath; + if (!string.IsNullOrWhiteSpace(path)) + { + try + { + OpenQuick(path); + } + catch (Exception ex) + { + WinFormsUtil.Error($"Unable to automatically load the previously opened ROM dump located at -- {path}.", ex.Message); + ResetStatus(); + } + } + + string[] args = Environment.GetCommandLineArgs(); + string filename = args.Length > 0 ? Path.GetFileNameWithoutExtension(args[0]).ToLower() : ""; + skipBoth = filename.Contains("3DSkip"); + + const string randset = RandSettings.FileName; + if (File.Exists(randset)) + RandSettings.Load(File.ReadAllLines(randset)); + } + + internal static GameConfig Config; + public static string RomFSPath; + public static string ExeFSPath; + public static string ExHeaderPath; + private volatile int threads; + internal static volatile int Language; + internal static SMDH SMDH; + private uint HANSgameID; // for exporting RomFS/ExeFS with correct X8 gameID + private readonly bool skipBoth; + public static PersonalInfo[] SpeciesStat => Config.Personal.Table; + + // Main Form Methods + private void L_About_Click(object sender, EventArgs e) + { + new About().ShowDialog(); + } + + private void L_GARCInfo_Click(object sender, EventArgs e) + { + if (RomFSPath == null) + return; + + string s = "Game Type: " + Config.Version + Environment.NewLine; + s = Config.Files.Select(file => file.Name).Aggregate(s, (current, t) => current + string.Format(Environment.NewLine + "{0} - {1}", t, Config.GetGARCFileName(t))); + + var copyPrompt = WinFormsUtil.Prompt(MessageBoxButtons.YesNo, s, "Copy to Clipboard?"); + if (copyPrompt != DialogResult.Yes) + return; + + try { Clipboard.SetText(s); } + catch { WinFormsUtil.Alert("Unable to copy to Clipboard."); } + } + + private void L_Game_Click(object sender, EventArgs e) => new EnhancedRestore(Config).ShowDialog(); + + private void B_Open_Click(object sender, EventArgs e) + { + using var fbd = new FolderBrowserDialog(); + if (fbd.ShowDialog() == DialogResult.OK) + OpenQuick(fbd.SelectedPath); + } + + private void ChangeLanguage(object sender, EventArgs e) + { + if (InvokeRequired) + Invoke((MethodInvoker)delegate { Language = CB_Lang.SelectedIndex; }); + else Language = CB_Lang.SelectedIndex; + if (Config != null) + Config.Language = Language; + Menu_Options.DropDown.Close(); + if (!Tab_RomFS.Enabled || Config == null) + return; + + if ((Config.XY || Config.ORAS) && Language > 7) + { + WinFormsUtil.Alert("Language not available for games. Defaulting to English."); + if (InvokeRequired) + Invoke((MethodInvoker)delegate { CB_Lang.SelectedIndex = 2; }); + else CB_Lang.SelectedIndex = 2; + return; // set event re-triggers this method + } + + UpdateProgramTitle(); + Config.InitializeGameText(); + Properties.Settings.Default.Language = Language; + Properties.Settings.Default.Save(); + } + + private void Menu_Exit_Click(object sender, EventArgs e) + { + Close(); + } + + private void CloseForm(object sender, FormClosingEventArgs e) + { + if (Config == null) + return; + var g = Config.GARCGameText; + string[][] files = Config.GameTextStrings; + g.Files = files.Select(x => TextFile.GetBytes(Config, x)).ToArray(); + g.Save(); + + try + { + var text = RandSettings.Save(); + File.WriteAllLines(RandSettings.FileName, text, Encoding.Unicode); + } + catch + { + // ignored + } + } + + private void OpenQuick(string path) + { + if (ThreadActive()) + return; + + try + { + if (!Directory.Exists(path)) // File + OpenFile(path); + else // Directory + OpenDirectory(path); + } + catch (Exception ex) + { + WinFormsUtil.Error($"Failed to open -- {path}", ex.Message); + ResetStatus(); + } + } + + private void OpenFile(string path) + { + if (!File.Exists(path)) + return; + + var fi = new FileInfo(path); + if (fi.Name.Contains("code.bin")) // Compress/Decompress .code.bin + { + OpenExeFSCodeBinary(path, fi); + } + else if (fi.Name.Contains("exe", StringComparison.OrdinalIgnoreCase)) // Unpack exefs + { + OpenExeFSCombined(path, fi); + } + else if (fi.Name.Contains("rom", StringComparison.OrdinalIgnoreCase)) + { + WinFormsUtil.Alert("RomFS unpacking not implemented."); + } + else + { + var dr = WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Unpack sub-files?", "Cancel: Abort"); + if (dr == DialogResult.Cancel) + return; + bool recurse = dr == DialogResult.Yes; + ToolsUI.OpenARC(path, pBar1, recurse); + } + } + + private void OpenExeFSCombined(string path, FileInfo fi) + { + if (fi.Length % 0x200 != 0) + return; + var dir = Path.GetDirectoryName(path); + if (dir is null) + return; + + var prompt = WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Detected ExeFS.bin.", "Unpack?"); + if (prompt != DialogResult.Yes) + return; + + new Thread(() => + { + Interlocked.Increment(ref threads); + ExeFS.UnpackExeFS(path, dir); + Interlocked.Decrement(ref threads); + WinFormsUtil.Alert("Unpacked!"); + }).Start(); + } + + private void OpenExeFSCodeBinary(string path, FileInfo fi) + { + if (fi.Length % 0x200 == 0) + { + var prompt = WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Detected Decompressed code.bin.", "Compress? File will be replaced."); + if (prompt != DialogResult.Yes) + return; + new Thread(() => + { + Interlocked.Increment(ref threads); + new BLZCoder(["-en", path], pBar1); + Interlocked.Decrement(ref threads); + WinFormsUtil.Alert("Compressed!"); + }).Start(); + } + else + { + var prompt = WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Detected Compressed code.bin.", "Decompress? File will be replaced."); + if (prompt != DialogResult.Yes) + return; + new Thread(() => + { + Interlocked.Increment(ref threads); + new BLZCoder(["-d", path], pBar1); + Interlocked.Decrement(ref threads); + WinFormsUtil.Alert("Decompressed!"); + }).Start(); + } + } + + private void OpenDirectory(string path) + { + if (!Directory.Exists(path)) + return; + + // Check for ROMFS/EXEFS/EXHEADER + RomFSPath = ExeFSPath = null; // Reset + Config = null; + + string[] folders = Directory.GetDirectories(path); + int count = folders.Length; + + // Find RomFS folder + foreach (string f in folders.Where(f => new DirectoryInfo(f).Name.Contains("rom", StringComparison.OrdinalIgnoreCase) && Directory.Exists(f))) + CheckIfRomFS(f); + // Find ExeFS folder + foreach (string f in folders.Where(f => new DirectoryInfo(f).Name.Contains("exe", StringComparison.OrdinalIgnoreCase) && Directory.Exists(f))) + CheckIfExeFS(f); + + if (count > 3) + WinFormsUtil.Alert("pk3DS will function best if you keep your Game Files folder clean and free of unnecessary folders."); + + // Enable buttons if applicable + Tab_RomFS.Enabled = Menu_Restore.Enabled = Tab_CRO.Enabled = Menu_CRO.Enabled = Menu_Shuffler.Enabled = RomFSPath != null; + Tab_ExeFS.Enabled = RomFSPath != null && ExeFSPath != null; + if (RomFSPath != null && Config != null) + { + ToggleSubEditors(); + string newtext = $"Game Loaded: {Config.Version}"; + if (L_Game.Text != newtext && Directory.Exists("personal")) + { + Directory.Delete("personal", true); + } // Force reloading of personal data if the game is switched. + + L_Game.Text = newtext; + TB_Path.Text = path; + } + else if (ExeFSPath != null) + { + L_Game.Text = "ExeFS loaded - no RomFS"; + TB_Path.Text = path; + } + else + { + L_Game.Text = "No Game Loaded"; + TB_Path.Text = ""; + } + + if (RomFSPath != null) + { + // Trigger Data Loading + if (RTB_Status.Text.Length > 0) + RTB_Status.Clear(); + + UpdateStatus("Data found! Loading persistent data for subforms...", false); + try + { + if (Config is not null) + { + if (ExeFSPath is not null) + Config.Initialize(RomFSPath, ExeFSPath, Language); + Config.BackupFiles(); + } + } + catch (Exception ex) + { + WinFormsUtil.Error("Failed to load game data from romfs. Please double check your ROM dump is correct.", ex.Message); + ResetStatus(); + return; + } + } + + UpdateProgramTitle(); + + // Enable Rebuilding options if all files have been found + CheckIfExHeader(path); + Menu_ExeFS.Enabled = ExeFSPath != null; + Menu_RomFS.Enabled = Menu_Restore.Enabled = Menu_GARCs.Enabled = RomFSPath != null; + Menu_Patch.Enabled = RomFSPath != null && ExeFSPath != null; + Menu_3DS.Enabled = RomFSPath != null && ExeFSPath != null && ExHeaderPath != null; + Menu_Trimmed3DS.Enabled = RomFSPath != null && ExeFSPath != null && ExHeaderPath != null; + + // Change L_Game if RomFS and ExeFS exists to a better descriptor + SMDH = ExeFSPath != null + ? File.Exists(Path.Combine(ExeFSPath, "icon.bin")) ? new SMDH(Path.Combine(ExeFSPath, "icon.bin")) : null + : null; + HANSgameID = SMDH != null ? (SMDH.AppSettings?.StreetPassID ?? 0) : 0; + L_Game.Visible = SMDH == null && RomFSPath != null; + TB_Path.Select(TB_Path.TextLength, 0); + // Method finished. + System.Media.SystemSounds.Asterisk.Play(); + ResetStatus(); + Properties.Settings.Default.GamePath = path; + Properties.Settings.Default.Save(); + } + + private void B_ExtractCXI_Click(object sender, EventArgs e) + { + const string l1 = "Extracting a CXI requires multiple GB of disc space and takes some time to complete."; + const string l2 = "If you want to continue, press OK to select your CXI and then select your output directory. For best results, make sure the output directory is an empty directory."; + var prompt = WinFormsUtil.Prompt(MessageBoxButtons.OKCancel, l1, l2); + if (prompt != DialogResult.OK) + return; + + using var ofd = new OpenFileDialog { Title = "Select CXI", Filter = "CXI files (*.cxi)|*.cxi" }; + if (ofd.ShowDialog() != DialogResult.OK) + return; + + using var fbd = new FolderBrowserDialog(); + DialogResult result = fbd.ShowDialog(); + if (result != DialogResult.OK) + return; + + var inputCXI = ofd.FileName; + ExtractNCCH(inputCXI, fbd.SelectedPath); + } + + private void B_Extract3DS_Click(object sender, EventArgs e) + { + const string l1 = "Extracting a 3DS file requires multiple GB of disc space and takes some time to complete."; + const string l2 = "If you want to continue, press OK to select your CXI and then select your output directory. For best results, make sure the output directory is an empty directory."; + var prompt = WinFormsUtil.Prompt(MessageBoxButtons.OKCancel, l1, l2); + if (prompt != DialogResult.OK) + return; + + using var ofd = new OpenFileDialog { Title = "Select 3DS", Filter = "3DS files (*.3ds)|*.3ds" }; + if (ofd.ShowDialog() != DialogResult.OK) + return; + + using var fbd = new FolderBrowserDialog(); + DialogResult result = fbd.ShowDialog(); + if (result != DialogResult.OK) + return; + + var input3DS = ofd.FileName; + ExtractNCSD(input3DS, fbd.SelectedPath); + } + + private void ExtractNCCH(string ncchPath, string outputDirectory) + { + if (!File.Exists(ncchPath)) + return; + + var ncch = new NCCH(); + + new Thread(() => + { + Interlocked.Increment(ref threads); + ncch.ExtractNCCHFromFile(ncchPath, outputDirectory, RTB_Status, pBar1); + Interlocked.Decrement(ref threads); + WinFormsUtil.Alert("Extraction complete!"); + }).Start(); + } + + private void ExtractNCSD(string ncsdPath, string outputDirectory) + { + if (!File.Exists(ncsdPath)) + return; + + var ncsd = new NCSD(); + new Thread(() => + { + Interlocked.Increment(ref threads); + ncsd.ExtractFilesFromNCSD(ncsdPath, outputDirectory, RTB_Status, pBar1); + Interlocked.Decrement(ref threads); + WinFormsUtil.Alert("Extraction complete!"); + }).Start(); + } + + private void ToggleSubEditors() + { + // Hide all buttons + foreach (var f in from TabPage t in TC_RomFS.TabPages from f in t.Controls.OfType() select f) + { + for (int i = f.Controls.Count - 1; i >= 0; i--) + f.Controls.Remove(f.Controls[i]); + } + + B_MoveTutor.Visible = Config.ORAS; // Default false unless loaded + + Control[] romfs, exefs, cro; + + switch (Config.Generation) + { + case 6: + romfs = [B_GameText, B_StoryText, B_Personal, B_Evolution, B_LevelUp, B_Wild, B_MegaEvo, B_EggMove, B_Trainer, B_Item, B_Move, B_Maison, B_TitleScreen, B_OWSE, + ]; + exefs = [B_MoveTutor, B_TMHM, B_Mart, B_Pickup, B_OPower, B_ShinyRate]; + cro = [B_TypeChart, B_Starter, B_Gift, B_Static]; + B_MoveTutor.Visible = Config.ORAS; // Default false unless loaded + break; + case 7: + romfs = [B_GameText, B_StoryText, B_Personal, B_Evolution, B_LevelUp, B_Wild, B_MegaEvo, B_EggMove, B_Trainer, B_Item, B_Move, B_Royal, B_Pickup, B_OWSE, + ]; + exefs = [B_TM, B_TypeChart, B_ShinyRate]; + cro = [B_Mart, B_MoveTutor]; + B_MoveTutor.Visible = Config.USUM; + + if (Config.Version != GameVersion.SMDEMO) + romfs = [.. romfs, .. new[] { B_Static }]; + break; + default: + romfs = exefs = cro = [new Label { Text = "No editors available." }]; + break; + } + + FLP_RomFS.Controls.AddRange(romfs); + FLP_ExeFS.Controls.AddRange(exefs); + FLP_CRO.Controls.AddRange(cro); + } + + private void UpdateProgramTitle() => Text = GetProgramTitle(); + + private static string GetProgramTitle() + { + // 0 - JP + // 1 - EN + // 2 - FR + // 3 - DE + // 4 - IT + // 5 - ES + // 6 - CHS + // 7 - KO + // 8 - + // 11 - CHT + if (SMDH?.AppSettings == null) + return "pk3DS"; + int[] AILang = [0, 0, 1, 2, 4, 3, 5, 7, 8, 9, 6, 11]; + return "pk3DS - " + SMDH.AppInfo[AILang[Language]].ShortDescription; + } + + private static GameConfig CheckGameType(string[] files) + { + try + { + if (files.Length > 1000) + return null; + var parent = Directory.GetParent(files[0]); + if (parent is null) + return null; + + string[] fileArr = Directory.GetFiles(Path.Combine(parent.FullName, "a"), "*", SearchOption.AllDirectories); + int fileCount = fileArr.Count(file => Path.GetFileName(file).Length == 1); + return new GameConfig(fileCount); + } + catch { } + return null; + } + + private static bool CheckIfRomFS(string path) + { + string[] top = Directory.GetDirectories(path); + var fi = new FileInfo(top[top.Length > 1 ? 1 : 0]); + // Check to see if the folder is romfs + if (fi.Name == "a") + { + string[] files = Directory.GetFiles(path, "*", SearchOption.AllDirectories); + var cfg = CheckGameType(files); + + if (cfg == null) + { + RomFSPath = null; + Config = null; + WinFormsUtil.Error("File count does not match expected game count.", "Files: " + files.Length); + return false; + } + + RomFSPath = path; + Config = cfg; + return true; + } + WinFormsUtil.Error("Folder does not contain an 'a' folder in the top level."); + RomFSPath = null; + return false; + } + + private bool CheckIfExeFS(string path) + { + string[] files = Directory.GetFiles(path); + if (files.Length == 1 && string.Equals(Path.GetFileName(files[0]), "exefs.bin", StringComparison.OrdinalIgnoreCase)) + { + // Prompt if the user wants to unpack the ExeFS. + if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Detected ExeFS binary.", "Unpack?")) + return false; + + // User wanted to unpack. Unpack. + if (!ExeFS.UnpackExeFS(files[0], path)) + return false; // on unpack fail + + // Remove ExeFS binary after unpacking + File.Delete(files[0]); + + files = Directory.GetFiles(path); + // unpack successful, continue onward! + } + + if (files.Length != 3 && files.Length != 4) + return false; + + var fi = new FileInfo(files[0]); + if (!fi.Name.Contains("code")) + { + if (new FileInfo(files[1]).Name != "code.bin") + return false; + + File.Move(files[1], Path.Combine(Path.GetDirectoryName(files[1]), ".code.bin")); + files = Directory.GetFiles(path); + fi = new FileInfo(files[0]); + } + if (fi.Length % 0x200 != 0 && WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Detected Compressed code binary.", "Decompress? File will be replaced.") == DialogResult.Yes) + new Thread(() => { Interlocked.Increment(ref threads); new BLZCoder(["-d", files[0]], pBar1); Interlocked.Decrement(ref threads); WinFormsUtil.Alert("Decompressed!"); }).Start(); + + ExeFSPath = path; + return true; + } + + private static bool CheckIfExHeader(string path) + { + ExHeaderPath = null; + // Input folder path should contain the ExHeader. + string[] files = Directory.GetFiles(path); + foreach (string fp in from s in files let f = new FileInfo(s) where (f.Name.StartsWith("exh", StringComparison.OrdinalIgnoreCase) || f.Name.StartsWith("decryptedexh", StringComparison.OrdinalIgnoreCase)) && f.Length == 0x800 select s) + ExHeaderPath = fp; + + return ExHeaderPath != null; + } + + private bool ThreadActive() + { + if (threads <= 0) + return false; + WinFormsUtil.Alert("Please wait for all operations to finish first."); return true; + } + + private void TabMain_DragEnter(object sender, DragEventArgs e) + { + if (e.Data?.GetDataPresent(DataFormats.FileDrop) is true) + e.Effect = DragDropEffects.Copy; + } + + private void TabMain_DragDrop(object sender, DragEventArgs e) + { + if (e.Data?.GetData(DataFormats.FileDrop) is not string[] { Length: not 0 } files) + return; + string path = files[0]; // open first D&D + OpenQuick(path); + } + + // RomFS Subform Items + private void RebuildRomFS(object sender, EventArgs e) + { + if (ThreadActive()) + return; + if (RomFSPath == null) + return; + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Rebuild RomFS?") != DialogResult.Yes) + return; + + var sfd = new SaveFileDialog + { + FileName = HANSgameID != 0 ? HANSgameID.ToString("X8") + ".romfs" : "romfs.bin", + Filter = "HANS RomFS|*.romfs|Binary File|*.bin|All Files|*.*", + }; + sfd.FilterIndex = HANSgameID != 0 ? 0 : sfd.Filter.Length - 1; + + if (sfd.ShowDialog() == DialogResult.OK) + { + new Thread(() => + { + UpdateStatus(Environment.NewLine + "Building RomFS binary. Please wait until the program finishes."); + + Interlocked.Increment(ref threads); + RomFS.BuildRomFS(RomFSPath, sfd.FileName, RTB_Status, pBar1); + Interlocked.Decrement(ref threads); + + UpdateStatus("RomFS binary saved." + Environment.NewLine); + WinFormsUtil.Alert("Wrote RomFS binary:", sfd.FileName); + }).Start(); + } + } + + private void B_GameText_Click(object sender, EventArgs e) + { + if (ThreadActive()) + return; + new Thread(() => + { + var g = Config.GARCGameText; + string[][] files = Config.GameTextStrings; + Invoke(() => new TextEditor(files, "gametext").ShowDialog()); + g.Files = TryWriteText(files, g); + g.Save(); + }).Start(); + } + + private void B_StoryText_Click(object sender, EventArgs e) + { + if (ThreadActive()) + return; + new Thread(() => + { + var g = Config.GetGARCData("storytext"); + string[][] files = g.Files.Select(file => new TextFile(Config, file).Lines).ToArray(); + Invoke(() => new TextEditor(files, "storytext").ShowDialog()); + g.Files = TryWriteText(files, g); + g.Save(); + }).Start(); + } + + private static byte[][] TryWriteText(string[][] files, GARCFile g) + { + byte[][] data = new byte[files.Length][]; + var errata = new List(); + for (int i = 0; i < data.Length; i++) + { + try + { + data[i] = TextFile.GetBytes(Config, files[i]); + } + catch (Exception ex) + { + errata.Add($"File {i:000} | {ex.Message}"); + // revert changes + data[i] = g.GetFile(i); + } + } + if (errata.Count == 0) + return data; + + string[] options = + [ + "Cancel: Discard all changes", + "Yes: Save changes, dump errata/failed text", + "No: Save changes, don't dump errata/failed text", + ]; + var dr = WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Errors found while attempting to save text." + + Environment.NewLine + "Example: " + errata[0], + string.Join(Environment.NewLine, options)); + if (dr == DialogResult.Cancel) + return g.Files; // discard + if (dr == DialogResult.No) + return data; + + const string txt_errata = "text_errata.txt"; + const string txt_failed = "text_failed.txt"; + File.WriteAllLines(txt_errata, errata); + TextEditor.ExportTextFile(txt_failed, true, files); + + WinFormsUtil.Alert("Saved text files to path: " + Application.StartupPath, + txt_errata + Environment.NewLine + txt_failed); + + return data; + } + + private void B_Maison_Click(object sender, EventArgs e) + { + if (ThreadActive()) + return; + DialogResult dr; + switch (Config.Generation) + { + case 6: + dr = WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Edit Super Maison instead of Normal Maison?", "Yes = Super, No = Normal, Cancel = Abort"); + break; + case 7: + dr = WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Edit Battle Royal instead of Battle Tree?", "Yes = Royal, No = Tree, Cancel = Abort"); + break; + default: + return; + } + if (dr == DialogResult.Cancel) + return; + + new Thread(() => + { + bool super = dr == DialogResult.Yes; + string c = super ? "S" : "N"; + var trdata = Config.GetGARCData("maisontr" + c); + var trpoke = Config.GetGARCData("maisonpk" + c); + byte[][] trd = trdata.Files; + byte[][] trp = trpoke.Files; + switch (Config.Generation) + { + case 6: + Invoke(() => new MaisonEditor6(trd, trp, super).ShowDialog()); + break; + case 7: + Invoke(() => new MaisonEditor7(trd, trp, super).ShowDialog()); + break; + } + trdata.Files = trd; + trpoke.Files = trp; + trdata.Save(); + trpoke.Save(); + }).Start(); + } + + private void B_Personal_Click(object sender, EventArgs e) + { + if (ThreadActive()) + return; + new Thread(() => + { + byte[][] d = Config.GARCPersonal.Files; + switch (Config.Generation) + { + case 6: + Invoke(() => new PersonalEditor6(d).ShowDialog()); + break; + case 7: + Invoke(() => new PersonalEditor7(d).ShowDialog()); + break; + } + // Set Master Table back + for (int i = 0; i < d.Length - 1; i++) + d[i].CopyTo(d[^1], i * d[i].Length); + + Config.GARCPersonal.Files = d; + Config.GARCPersonal.Save(); + Config.InitializePersonal(); + }).Start(); + } + + private void B_Trainer_Click(object sender, EventArgs e) + { + if (ThreadActive()) + return; + new Thread(() => + { + var trclass = Config.GetGARCData("trclass"); + var trdata = Config.GetGARCData("trdata"); + var trpoke = Config.GetGARCData("trpoke"); + byte[][] trc = trclass.Files; + byte[][] trd = trdata.Files; + byte[][] trp = trpoke.Files; + + switch (Config.Generation) + { + case 6: + Invoke(() => new RSTE(trd, trp).ShowDialog()); + break; + case 7: + Invoke(() => new SMTE(trd, trp).ShowDialog()); + break; + } + trclass.Files = trc; + trdata.Files = trd; + trpoke.Files = trp; + trclass.Save(); + trdata.Save(); + trpoke.Save(); + }).Start(); + } + + private void B_Wild_Click(object sender, EventArgs e) + { + if (ThreadActive()) + return; + new Thread(() => + { + string[] files; + Action action; + switch (Config.Generation) + { + case 6: + files = ["encdata"]; + if (Config.ORAS) + action = () => new RSWE().ShowDialog(); + else if (Config.XY) + action = () => new XYWE().ShowDialog(); + else return; + + Invoke((MethodInvoker)delegate { Enabled = false; }); + FileGet(files, false); + Invoke(action); + FileSet(files); + Invoke((MethodInvoker)delegate { Enabled = true; }); + break; + case 7: + Invoke((MethodInvoker)delegate { Enabled = false; }); + Interlocked.Increment(ref threads); + + files = ["encdata", "zonedata", "worlddata"]; + UpdateStatus($"GARC Get: {files[0]}... "); + var ed = Config.GetlzGARCData(files[0]); + UpdateStatus($"GARC Get: {files[1]}... "); + var zd = Config.GetlzGARCData(files[1]); + UpdateStatus($"GARC Get: {files[2]}... "); + var wd = Config.GetlzGARCData(files[2]); + UpdateStatus("Running SMWE... "); + action = () => new SMWE(ed, zd, wd).ShowDialog(); + Invoke(action); + + UpdateStatus($"GARC Set: {files[0]}... "); + ed.Save(); + ResetStatus(); + Interlocked.Decrement(ref threads); + Invoke((MethodInvoker)delegate { Enabled = true; }); + break; + default: + return; + } + }).Start(); + } + + private void B_OWSE_Click(object sender, EventArgs e) + { + if (ThreadActive()) + return; + if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "The OverWorld/Script Editor is not recommended for most users and is still a work-in-progress.", "Continue anyway?")) + return; + switch (Config.Generation) + { + case 6: + RunOWSE6(); + return; + case 7: + RunOWSE7(); + return; + } + } + + private void RunOWSE6() + { + Enabled = false; + new Thread(() => + { + bool reload = ModifierKeys is Keys.Control or (Keys.Alt | Keys.Control); + string[] files = ["encdata", "storytext", "mapGR", "mapMatrix"]; + if (reload || files.Sum(t => Directory.Exists(t) ? 0 : 1) != 0) // Dev bypass if all exist already + FileGet(files, false); + + // Don't set any data back. Just view. + { + var g = Config.GetGARCData("storytext"); + string[][] tfiles = g.Files.Select(file => new TextFile(Config, file).Lines).ToArray(); + Invoke(() => new OWSE().Show()); + Invoke(() => new TextEditor(tfiles, "storytext").Show()); + while (Application.OpenForms.Count > 1) + Thread.Sleep(200); + } + Invoke((MethodInvoker)delegate { Enabled = true; }); + FileSet(files); + }).Start(); + } + + private void RunOWSE7() + { + Enabled = false; + new Thread(() => + { + var files = new[] { "encdata", "zonedata", "worlddata" }; + UpdateStatus($"GARC Get: {files[0]}... "); + var ed = Config.GetlzGARCData(files[0]); + UpdateStatus($"GARC Get: {files[1]}... "); + var zd = Config.GetlzGARCData(files[1]); + UpdateStatus($"GARC Get: {files[2]}... "); + //var wd = Config.GetlzGARCData(files[2]); + + var g = Config.GetGARCData("storytext"); + string[][] tfiles = g.Files.Select(file => new TextFile(Config, file).Lines).ToArray(); + Invoke(() => new TextEditor(tfiles, "storytext").Show()); + Invoke(() => new OWSE7(ed, zd).Show()); + while (Application.OpenForms.Count > 1) + Thread.Sleep(200); + Invoke((MethodInvoker)delegate { Enabled = true; }); + }).Start(); + } + + private void B_Evolution_Click(object sender, EventArgs e) + { + if (ThreadActive()) + return; + new Thread(() => + { + var g = Config.GetGARCData("evolution"); + byte[][] d = g.Files; + switch (Config.Generation) + { + case 6: + Invoke(() => new EvolutionEditor6(d).ShowDialog()); + break; + case 7: + Invoke(() => new EvolutionEditor7(d).ShowDialog()); + break; + } + g.Files = d; + Config.InitializeEvos(); + g.Save(); + }).Start(); + } + + private void B_MegaEvo_Click(object sender, EventArgs e) + { + if (ThreadActive()) + return; + new Thread(() => + { + var g = Config.GetGARCData("megaevo"); + byte[][] d = g.Files; + switch (Config.Generation) + { + case 6: + Invoke(() => new MegaEvoEditor6(d).ShowDialog()); + break; + case 7: + Invoke(() => new MegaEvoEditor7(d).ShowDialog()); + break; + } + g.Files = d; + g.Save(); + }).Start(); + } + + private void B_Item_Click(object sender, EventArgs e) + { + if (ThreadActive()) + return; + new Thread(() => + { + var g = Config.GetGARCData("item"); + byte[][] d = g.Files; + switch (Config.Generation) + { + case 6: + Invoke(() => new ItemEditor6(d).ShowDialog()); + break; + case 7: + Invoke(() => new ItemEditor7(d).ShowDialog()); + break; + } + g.Files = d; + g.Save(); + }).Start(); + } + + private void B_Move_Click(object sender, EventArgs e) + { + if (ThreadActive()) + return; + new Thread(() => + { + var g = Config.GARCMoves; + byte[][] Moves; + switch (Config.Generation) + { + case 6: + bool isMini = Config.ORAS; + Moves = isMini ? Mini.UnpackMini(g.GetFile(0), "WD") : g.Files; + Invoke(() => new MoveEditor6(Moves).ShowDialog()); + g.Files = isMini ? [Mini.PackMini(Moves, "WD")] : Moves; + break; + case 7: + Moves = Mini.UnpackMini(g.GetFile(0), "WD"); + Invoke(() => new MoveEditor7(Moves).ShowDialog()); + g.Files = [Mini.PackMini(Moves, "WD")]; + break; + } + g.Save(); + Config.InitializeMoves(); + }).Start(); + } + + private void B_LevelUp_Click(object sender, EventArgs e) + { + if (ThreadActive()) + return; + new Thread(() => + { + byte[][] d = Config.GARCLearnsets.Files; + switch (Config.Generation) + { + case 6: + Invoke(() => new LevelUpEditor6(d).ShowDialog()); + break; + case 7: + Invoke(() => new LevelUpEditor7(d).ShowDialog()); + break; + } + Config.GARCLearnsets.Files = d; + Config.GARCLearnsets.Save(); + Config.InitializeLearnset(); + }).Start(); + } + + private void B_EggMove_Click(object sender, EventArgs e) + { + if (ThreadActive()) + return; + new Thread(() => + { + var g = Config.GetGARCData("eggmove"); + byte[][] d = g.Files; + switch (Config.Generation) + { + case 6: + Invoke(() => new EggMoveEditor6(d).ShowDialog()); + break; + case 7: + Invoke(() => new EggMoveEditor7(d).ShowDialog()); + break; + } + g.Files = d; + g.Save(); + }).Start(); + } + + private void B_TitleScreen_Click(object sender, EventArgs e) + { + if (ThreadActive()) + return; + new Thread(() => + { + string[] files = ["titlescreen"]; + FileGet(files); // Compressed files exist, handled in the other form since there's so many + Invoke(() => new TitleScreenEditor6().ShowDialog()); + FileSet(files); + }).Start(); + } + // RomFS File Requesting Method Wrapper + private void FileGet(string[] files, bool skipDecompression = true, bool skipGet = false) + { + if (skipGet || skipBoth) + return; + foreach (string toEdit in files) + { + string GARC = Config.GetGARCFileName(toEdit); + UpdateStatus($"GARC Get: {toEdit} @ {GARC}... "); + ThreadGet(Path.Combine(RomFSPath, GARC), toEdit, true, skipDecompression); + while (threads > 0) Thread.Sleep(50); + ResetStatus(); + } + } + + private void FileSet(IEnumerable files, bool keep = false) + { + if (skipBoth) + return; + foreach (string toEdit in files) + { + string GARC = Config.GetGARCFileName(toEdit); + UpdateStatus($"GARC Set: {toEdit} @ {GARC}... "); + ThreadSet(Path.Combine(RomFSPath, GARC), toEdit, 4); // 4 bytes for Gen6 + while (threads > 0) Thread.Sleep(50); + if (!keep && Directory.Exists(toEdit)) Directory.Delete(toEdit, true); + ResetStatus(); + } + } + + // ExeFS Subform Items + private void RebuildExeFS(object sender, EventArgs e) + { + if (ExeFSPath == null) + return; + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Rebuild ExeFS?") != DialogResult.Yes) + return; + + string[] files = Directory.GetFiles(ExeFSPath); + int file = 0; + if (files[1].Contains("code")) + file = 1; + + var sfd = new SaveFileDialog + { + FileName = HANSgameID != 0 ? HANSgameID.ToString("X8") + ".exefs" : "exefs.bin", + Filter = "HANS ExeFS|*.exefs|Binary File|*.bin|All Files|*.*", + }; + sfd.FilterIndex = HANSgameID != 0 ? 0 : sfd.Filter.Length - 1; + + if (sfd.ShowDialog() == DialogResult.OK) + { + new Thread(() => + { + Interlocked.Increment(ref threads); + new BLZCoder(["-en", files[file]], pBar1); + WinFormsUtil.Alert("Compressed!"); + ExeFS.PackExeFS(Directory.GetFiles(ExeFSPath), sfd.FileName); + Interlocked.Decrement(ref threads); + }).Start(); + } + } + + private void B_Pickup_Click(object sender, EventArgs e) + { + if (ThreadActive()) + return; + switch (Config.Generation) + { + case 6: + if (ExeFSPath != null) new PickupEditor6().Show(); + break; + case 7: + var pickup = Config.GetlzGARCData("pickup"); + Invoke(() => new PickupEditor7(pickup).ShowDialog()); + break; + } + } + + private void B_TMHM_Click(object sender, EventArgs e) + { + if (ThreadActive()) + return; + if (ExeFSPath == null) + return; + switch (Config.Generation) + { + case 6: new TMHMEditor6().Show(); break; + case 7: new TMEditor7().Show(); break; + } + } + + private void B_Mart_Click(object sender, EventArgs e) + { + if (ThreadActive()) + return; + switch (Config.Generation) + { + case 6: + if (ExeFSPath != null) new MartEditor6().Show(); + break; + + case 7: + if (ThreadActive()) + return; + if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "CRO Editing causes crashes if you do not patch the RO module.", "In order to patch the RO module, your device must be running Custom Firmware (for example, Luma3DS).", "Continue anyway?")) + return; + if (RomFSPath != null) (Config.USUM ? new MartEditor7UU() : (Form)new MartEditor7()).Show(); + break; + } + } + + private void B_MoveTutor_Click(object sender, EventArgs e) + { + if (ThreadActive()) + return; + switch (Config.Generation) + { + case 6: + if (ExeFSPath != null) new TutorEditor6().Show(); + break; + case 7: + if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "CRO Editing causes crashes if you do not patch the RO module.", "In order to patch the RO module, your device must be running Custom Firmware (for example, Luma3DS).", "Continue anyway?")) + return; + if (RomFSPath != null) new TutorEditor7().Show(); + break; + } + } + + private void B_OPower_Click(object sender, EventArgs e) + { + if (ThreadActive()) + return; + if (ExeFSPath != null) new OPower().Show(); + } + + private void B_ShinyRate_Click(object sender, EventArgs e) + { + if (ThreadActive()) + return; + if (ExeFSPath != null) new ShinyRate().ShowDialog(); + } + + // CRO Subform Items + private void PatchCRO_CRR(object sender, EventArgs e) + { + if (ThreadActive()) + return; + if (RomFSPath == null) + return; + if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Rebuilding CRO/CRR is not necessary if you patch the RO module.", "Continue?")) + return; + new Thread(() => + { + Interlocked.Increment(ref threads); + CRO.E_HashCRR(Path.Combine(RomFSPath, ".crr", "static.crr"), RomFSPath, true, /* true // don't patch crr for now */ false, RTB_Status, pBar1); + Interlocked.Decrement(ref threads); + + WinFormsUtil.Alert("CRO's and CRR have been updated.", + "If you have made any modifications, it is required that the RSA Verification check be patched on the system in order for the modified CROs to load (ie, no file redirection like NTR's layeredFS)."); + }).Start(); + } + + private void B_Starter_Click(object sender, EventArgs e) + { + if (ThreadActive()) + return; + if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "CRO Editing causes crashes if you do not patch the RO module.", "In order to patch the RO module, your device must be running Custom Firmware (for example, Luma3DS).", "Continue anyway?")) + return; + string CRO = Path.Combine(RomFSPath, "DllPoke3Select.cro"); + string CRO2 = Path.Combine(RomFSPath, "DllField.cro"); + if (!File.Exists(CRO)) + { + WinFormsUtil.Error("File Missing!", "DllPoke3Select.cro was not found in your RomFS folder!"); + return; + } + if (!File.Exists(CRO2)) + { + WinFormsUtil.Error("File Missing!", "DllField.cro was not found in your RomFS folder!"); + return; + } + new StarterEditor6().ShowDialog(); + } + + private void B_TypeChart_Click(object sender, EventArgs e) + { + if (ThreadActive()) + return; + + switch (Config.Generation) + { + case 6: + if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "CRO Editing causes crashes if you do not patch the RO module.", "In order to patch the RO module, your device must be running Custom Firmware (for example, Luma3DS).", "Continue anyway?")) + return; + string CRO = Path.Combine(RomFSPath, "DllBattle.cro"); + if (!File.Exists(CRO)) + { + WinFormsUtil.Error("File Missing!", "DllBattle.cro was not found in your RomFS folder!"); + return; + } + new TypeChart6().ShowDialog(); + break; + case 7: + new TypeChart7().ShowDialog(); + break; + } + } + + private void B_Gift_Click(object sender, EventArgs e) + { + if (ThreadActive()) + return; + if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "CRO Editing causes crashes if you do not patch the RO module.", "In order to patch the RO module, your device must be running Custom Firmware (for example, Luma3DS).", "Continue anyway?")) + return; + string CRO = Path.Combine(RomFSPath, "DllField.cro"); + if (!File.Exists(CRO)) + { + WinFormsUtil.Error("File Missing!", "DllField.cro was not found in your RomFS folder!"); + return; + } + new GiftEditor6().ShowDialog(); + } + + private void B_Static_Click(object sender, EventArgs e) + { + if (ThreadActive()) + return; + + if (Config.Generation == 7) + { + new Thread(() => + { + var esg = Config.GetGARCData("encounterstatic"); + byte[][] es = esg.Files; + + Invoke(() => new StaticEncounterEditor7(es).ShowDialog()); + esg.Files = es; + esg.Save(); + }).Start(); + return; + } + + if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "CRO Editing causes crashes if you do not patch the RO module.", "In order to patch the RO module, your device must be running Custom Firmware (for example, Luma3DS).", "Continue anyway?")) + return; + string CRO = Path.Combine(RomFSPath, "DllField.cro"); + if (!File.Exists(CRO)) + { + WinFormsUtil.Error("File Missing!", "DllField.cro was not found in your RomFS folder!"); + return; + } + new StaticEncounterEditor6().ShowDialog(); + } + + // CXI Building + private void B_RebuildTrimmed3DS_Click(object sender, EventArgs e) + { + if (ThreadActive()) + return; + + var sfd = new SaveFileDialog + { + FileName = "newROM.3ds", + Filter = "Binary File|*.*", + }; + if (sfd.ShowDialog() != DialogResult.OK) + return; + string path = sfd.FileName; + + new Thread(() => + { + Interlocked.Increment(ref threads); + var exh = new Exheader(ExHeaderPath); + CTRUtil.BuildROM(true, "Nintendo", ExeFSPath, RomFSPath, ExHeaderPath, exh.GetSerial(), path, + true, pBar1, RTB_Status); + Interlocked.Decrement(ref threads); + }).Start(); + } + + // 3DS Building + private void B_Rebuild3DS_Click(object sender, EventArgs e) + { + if (ThreadActive()) + return; + + var sfd = new SaveFileDialog + { + FileName = "newROM.3ds", + Filter = "Binary File|*.*", + }; + if (sfd.ShowDialog() != DialogResult.OK) + return; + string path = sfd.FileName; + + new Thread(() => + { + Interlocked.Increment(ref threads); + var exh = new Exheader(ExHeaderPath); + CTRUtil.BuildROM(true, "Nintendo", ExeFSPath, RomFSPath, ExHeaderPath, exh.GetSerial(), path, + false, pBar1, RTB_Status); + Interlocked.Decrement(ref threads); + }).Start(); + } + + // Extra Tools + private void L_SubTools_Click(object sender, EventArgs e) + { + new ToolsUI().ShowDialog(); + } + + private void B_Patch_Click(object sender, EventArgs e) + { + new Patch().ShowDialog(); + } + + private void Menu_BLZ_Click(object sender, EventArgs e) + { + var ofd = new OpenFileDialog(); + if (DialogResult.OK != ofd.ShowDialog()) + return; + + string path = ofd.FileName; + var fi = new FileInfo(path); + if (fi.Length > 15 * 1024 * 1024) // 15MB + { WinFormsUtil.Error("File too big!", fi.Length + " bytes."); return; } + + if (ModifierKeys != Keys.Control && fi.Length % 0x200 == 0 && WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Detected Decompressed Binary.", "Compress? File will be replaced.") == DialogResult.Yes) + new Thread(() => { Interlocked.Increment(ref threads); new BLZCoder(["-en", path], pBar1); Interlocked.Decrement(ref threads); WinFormsUtil.Alert("Compressed!"); }).Start(); + else if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Detected Compressed Binary", "Decompress? File will be replaced.") == DialogResult.Yes) + new Thread(() => { Interlocked.Increment(ref threads); new BLZCoder(["-d", path], pBar1); Interlocked.Decrement(ref threads); WinFormsUtil.Alert("Decompressed!"); }).Start(); + } + + private void Menu_LZ11_Click(object sender, EventArgs e) + { + var ofd = new OpenFileDialog(); + if (DialogResult.OK != ofd.ShowDialog()) + return; + + string path = ofd.FileName; + var fi = new FileInfo(path); + if (fi.Length > 15 * 1024 * 1024) // 15MB + { WinFormsUtil.Error("File too big!", fi.Length + " bytes."); return; } + + byte[] data = File.ReadAllBytes(path); + string predict = data[0] == 0x11 ? "compressed" : "decompressed"; + var dr = WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, $"Detected {predict} file. Do what?", + "Yes = Decompress\nNo = Compress\nCancel = Abort"); + new Thread(() => + { + Interlocked.Increment(ref threads); + if (dr == DialogResult.Yes) + { + try + { + LZSS.Decompress(path, Path.Combine(Directory.GetParent(path).FullName, "dec_" + Path.GetFileNameWithoutExtension(path) + ".bin")); + } + catch (Exception err) { WinFormsUtil.Alert("Tried decompression, may have worked:", err.ToString()); } + WinFormsUtil.Alert("File Decompressed!", path); + } + if (dr == DialogResult.No) + { + LZSS.Compress(path, Path.Combine(Directory.GetParent(path).FullName, Path.GetFileNameWithoutExtension(path).Replace("_dec", "") + ".lz")); + WinFormsUtil.Alert("File Compressed!", path); + } + Interlocked.Decrement(ref threads); + }).Start(); + } + + private void Menu_SMDH_Click(object sender, EventArgs e) + { + new Icon().ShowDialog(); + } + + private void Menu_Shuffler_Click(object sender, EventArgs e) + { + new Shuffler().ShowDialog(); + } + + // GARC Requests + internal static string GetGARCFileName(string requestedGARC, int lang) + { + var garc = Config.GetGARCReference(requestedGARC); + if (garc.LanguageVariant) + garc = garc.GetRelativeGARC(lang); + + return garc.Reference; + } + + private bool GetGARC(string infile, string outfolder, bool PB, bool bypassExt = false) + { + if (skipBoth && Directory.Exists(outfolder)) + { + UpdateStatus("Skipped - Exists!", false); + Interlocked.Decrement(ref threads); + return true; + } + try + { + bool success = GarcUtil.UnpackGARC(infile, outfolder, bypassExt, PB ? pBar1 : null, L_Status, true); + UpdateStatus(string.Format(success ? "Success!" : "Failed!"), false); + Interlocked.Decrement(ref threads); + return success; + } + catch (Exception e) { WinFormsUtil.Error("Could not get the GARC:", e.ToString()); Interlocked.Decrement(ref threads); return false; } + } + + private bool SetGARC(string outfile, string infolder, int padBytes, bool PB) + { + if (skipBoth || (ModifierKeys == Keys.Control && WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Cancel writing data back to GARC?") == DialogResult.Yes)) + { Interlocked.Decrement(ref threads); UpdateStatus("Aborted!", false); return false; } + + try + { + bool success = GarcUtil.PackGARC(infolder, outfile, Config.GARCVersion, padBytes, PB ? pBar1 : null, L_Status, true); + Interlocked.Decrement(ref threads); + UpdateStatus(string.Format(success ? "Success!" : "Failed!"), false); + return success; + } + catch (Exception e) { WinFormsUtil.Error("Could not set the GARC back:", e.ToString()); Interlocked.Decrement(ref threads); return false; } + } + + private void ThreadGet(string infile, string outfolder, bool PB = true, bool bypassExt = false) + { + Interlocked.Increment(ref threads); + if (Directory.Exists(outfolder)) + { + try { Directory.Delete(outfolder, true); } + catch { } + } + + new Thread(() => GetGARC(infile, outfolder, PB, bypassExt)).Start(); + } + + private void ThreadSet(string outfile, string infolder, int padBytes, bool PB = true) + { + Interlocked.Increment(ref threads); + new Thread(() => SetGARC(outfile, infolder, padBytes, PB)).Start(); + } + + // Update RichTextBox + private void UpdateStatus(string status, bool preBreak = true) + { + string newtext = (preBreak ? Environment.NewLine : "") + status; + try + { + if (RTB_Status.InvokeRequired) + { + RTB_Status.Invoke((MethodInvoker)delegate + { + RTB_Status.AppendText(newtext); + RTB_Status.SelectionStart = RTB_Status.Text.Length; + RTB_Status.ScrollToCaret(); + L_Status.Text = RTB_Status.Lines[^1].Split([" @"], StringSplitOptions.None)[0]; + }); + } + else + { + RTB_Status.AppendText(newtext); + RTB_Status.SelectionStart = RTB_Status.Text.Length; + RTB_Status.ScrollToCaret(); + L_Status.Text = RTB_Status.Lines[^1].Split([" @"], StringSplitOptions.None)[0]; + } + } + catch { } + } + + private void ResetStatus() + { + try + { + if (L_Status.InvokeRequired) + { + L_Status.Invoke((MethodInvoker)(() => L_Status.Text = "")); + } + else + { + L_Status.Text = ""; + } + } + catch { } + } + + private void SetInt32SeedToolStripMenuItem_Click(object sender, EventArgs e) + { + if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Reseed RNG?", "If yes, copy the 32 bit (not hex) integer seed to the clipboard before hitting Yes.")) + return; + + string val = string.Empty; + try { val = Clipboard.GetText(); } + catch { } + if (int.TryParse(val, out int seed)) + { + Util.ReseedRand(seed); + WinFormsUtil.Alert($"Reseeded RNG to seed: {seed}"); + return; + } + WinFormsUtil.Alert("Unable to set seed."); + } +} \ No newline at end of file diff --git a/pk3DS/Main.resx b/pk3DS.WinForms/Main.resx similarity index 100% rename from pk3DS/Main.resx rename to pk3DS.WinForms/Main.resx diff --git a/pk3DS.WinForms/Misc/About.Designer.cs b/pk3DS.WinForms/Misc/About.Designer.cs new file mode 100644 index 0000000000..729292befb --- /dev/null +++ b/pk3DS.WinForms/Misc/About.Designer.cs @@ -0,0 +1,95 @@ +namespace pk3DS.WinForms; + +partial class About +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.B_Close = new System.Windows.Forms.Button(); + this.RTB = new System.Windows.Forms.RichTextBox(); + this.L_Thanks = new System.Windows.Forms.Label(); + this.SuspendLayout(); + // + // B_Close + // + this.B_Close.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.B_Close.Location = new System.Drawing.Point(412, 340); + this.B_Close.Name = "B_Close"; + this.B_Close.Size = new System.Drawing.Size(75, 23); + this.B_Close.TabIndex = 0; + this.B_Close.Text = "Close"; + this.B_Close.UseVisualStyleBackColor = true; + this.B_Close.Click += new System.EventHandler(this.B_Close_Click); + // + // RTB + // + this.RTB.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.RTB.Location = new System.Drawing.Point(7, 9); + this.RTB.Name = "RTB"; + this.RTB.ReadOnly = true; + this.RTB.Size = new System.Drawing.Size(480, 322); + this.RTB.TabIndex = 1; + this.RTB.Text = ""; + this.RTB.WordWrap = false; + // + // L_Thanks + // + this.L_Thanks.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.L_Thanks.AutoSize = true; + this.L_Thanks.Location = new System.Drawing.Point(12, 345); + this.L_Thanks.Name = "L_Thanks"; + this.L_Thanks.Size = new System.Drawing.Size(147, 13); + this.L_Thanks.TabIndex = 2; + this.L_Thanks.Text = "Thanks to all the researchers!"; + // + // About + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(494, 372); + this.Controls.Add(this.L_Thanks); + this.Controls.Add(this.RTB); + this.Controls.Add(this.B_Close); + this.MaximizeBox = false; + this.MaximumSize = new System.Drawing.Size(910, 710); + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size(510, 410); + this.Name = "About"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "About"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button B_Close; + private System.Windows.Forms.RichTextBox RTB; + private System.Windows.Forms.Label L_Thanks; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Misc/About.cs b/pk3DS.WinForms/Misc/About.cs new file mode 100644 index 0000000000..cdb7f5ae0c --- /dev/null +++ b/pk3DS.WinForms/Misc/About.cs @@ -0,0 +1,18 @@ +using System; +using System.Windows.Forms; + +namespace pk3DS.WinForms; + +public partial class About : Form +{ + public About() + { + InitializeComponent(); + RTB.Text = Properties.Resources.changelog; + } + + private void B_Close_Click(object sender, EventArgs e) + { + Close(); + } +} \ No newline at end of file diff --git a/pk3DS/Misc/About.resx b/pk3DS.WinForms/Misc/About.resx similarity index 100% rename from pk3DS/Misc/About.resx rename to pk3DS.WinForms/Misc/About.resx diff --git a/pk3DS.WinForms/Misc/ErrorWindow.Designer.cs b/pk3DS.WinForms/Misc/ErrorWindow.Designer.cs new file mode 100644 index 0000000000..2d5f116c20 --- /dev/null +++ b/pk3DS.WinForms/Misc/ErrorWindow.Designer.cs @@ -0,0 +1,131 @@ +namespace pk3DS.WinForms; + +partial class ErrorWindow +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.B_Continue = new System.Windows.Forms.Button(); + this.B_Abort = new System.Windows.Forms.Button(); + this.B_CopyToClipboard = new System.Windows.Forms.Button(); + this.L_ProvideInfo = new System.Windows.Forms.Label(); + this.L_Message = new System.Windows.Forms.Label(); + this.T_ExceptionDetails = new System.Windows.Forms.TextBox(); + this.SuspendLayout(); + // + // B_Continue + // + this.B_Continue.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.B_Continue.Location = new System.Drawing.Point(332, 203); + this.B_Continue.Name = "B_Continue"; + this.B_Continue.Size = new System.Drawing.Size(75, 23); + this.B_Continue.TabIndex = 11; + this.B_Continue.Text = "Continue"; + this.B_Continue.UseVisualStyleBackColor = true; + this.B_Continue.Click += new System.EventHandler(this.B_Continue_Click); + // + // B_Abort + // + this.B_Abort.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.B_Abort.Location = new System.Drawing.Point(413, 203); + this.B_Abort.Name = "B_Abort"; + this.B_Abort.Size = new System.Drawing.Size(75, 23); + this.B_Abort.TabIndex = 10; + this.B_Abort.Text = "Abort"; + this.B_Abort.UseVisualStyleBackColor = true; + this.B_Abort.Click += new System.EventHandler(this.B_Abort_Click); + // + // B_CopyToClipboard + // + this.B_CopyToClipboard.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.B_CopyToClipboard.Location = new System.Drawing.Point(13, 203); + this.B_CopyToClipboard.Name = "B_CopyToClipboard"; + this.B_CopyToClipboard.Size = new System.Drawing.Size(164, 23); + this.B_CopyToClipboard.TabIndex = 9; + this.B_CopyToClipboard.Text = "Copy to Clipboard"; + this.B_CopyToClipboard.UseVisualStyleBackColor = true; + this.B_CopyToClipboard.Click += new System.EventHandler(this.B_CopyToClipboard_Click); + // + // L_ProvideInfo + // + this.L_ProvideInfo.AutoSize = true; + this.L_ProvideInfo.Location = new System.Drawing.Point(10, 38); + this.L_ProvideInfo.Name = "L_ProvideInfo"; + this.L_ProvideInfo.Size = new System.Drawing.Size(269, 13); + this.L_ProvideInfo.TabIndex = 8; + this.L_ProvideInfo.Text = "Please provide this information when reporting this error:"; + // + // L_Message + // + this.L_Message.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.L_Message.Location = new System.Drawing.Point(10, 11); + this.L_Message.Name = "L_Message"; + this.L_Message.Size = new System.Drawing.Size(478, 27); + this.L_Message.TabIndex = 7; + this.L_Message.Text = "An unknown error has occurred."; + // + // T_ExceptionDetails + // + this.T_ExceptionDetails.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.T_ExceptionDetails.Location = new System.Drawing.Point(13, 54); + this.T_ExceptionDetails.Multiline = true; + this.T_ExceptionDetails.Name = "T_ExceptionDetails"; + this.T_ExceptionDetails.ReadOnly = true; + this.T_ExceptionDetails.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; + this.T_ExceptionDetails.Size = new System.Drawing.Size(475, 143); + this.T_ExceptionDetails.TabIndex = 6; + // + // ErrorWindow + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(499, 236); + this.Controls.Add(this.B_Continue); + this.Controls.Add(this.B_Abort); + this.Controls.Add(this.B_CopyToClipboard); + this.Controls.Add(this.L_ProvideInfo); + this.Controls.Add(this.L_Message); + this.Controls.Add(this.T_ExceptionDetails); + this.MinimumSize = new System.Drawing.Size(515, 275); + this.Name = "ErrorWindow"; + this.Text = "Error"; + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button B_Continue; + private System.Windows.Forms.Button B_Abort; + private System.Windows.Forms.Button B_CopyToClipboard; + private System.Windows.Forms.Label L_ProvideInfo; + private System.Windows.Forms.Label L_Message; + private System.Windows.Forms.TextBox T_ExceptionDetails; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Misc/ErrorWindow.cs b/pk3DS.WinForms/Misc/ErrorWindow.cs new file mode 100644 index 0000000000..c7cb62bf05 --- /dev/null +++ b/pk3DS.WinForms/Misc/ErrorWindow.cs @@ -0,0 +1,118 @@ +using System; +using System.Text; +using System.Windows.Forms; + +namespace pk3DS.WinForms; + +public partial class ErrorWindow : Form +{ + public static DialogResult ShowErrorDialog(string friendlyMessage, Exception ex, bool allowContinue) + { + var lang = System.Threading.Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName; + var dialog = new ErrorWindow(lang) + { + ShowContinue = allowContinue, + Message = friendlyMessage, + Error = ex, + }; + var dialogResult = dialog.ShowDialog(); + if (dialogResult == DialogResult.Abort) + { + Environment.Exit(1); + } + return dialogResult; + } + + public ErrorWindow() + { + InitializeComponent(); + } + + public ErrorWindow(string lang) : this() + { + WinFormsUtil.TranslateInterface(this, lang); + } + + /// + /// Gets or sets whether or not the "Continue" button is visible. + /// + /// For UI exceptions, continuing could be safe. + /// For application exceptions, continuing is not possible, so the button should not be shown. + public bool ShowContinue + { + get => B_Continue.Visible; + set => B_Continue.Visible = value; + } + + /// + /// Friendly, context-specific method shown to the user. + /// + /// This property is intended to be a user-friendly context-specific message about what went wrong. + /// For example: "An error occurred while attempting to automatically load the save file." + public string Message + { + get => L_Message.Text; + set => L_Message.Text = value; + } + + public Exception Error + { + get => _error; + set + { + _error = value; + UpdateExceptionDetailsMessage(); + } + } + + private Exception _error; + + private void UpdateExceptionDetailsMessage() + { + var details = new StringBuilder(); + details.AppendLine("Exception Details:"); + details.AppendLine(Error.ToString()); + details.AppendLine(); + + details.AppendLine("Loaded Assemblies:"); + details.AppendLine("--------------------"); + try + { + foreach (var item in AppDomain.CurrentDomain.GetAssemblies()) + { + details.AppendLine(item.FullName); + details.AppendLine(item.Location); + details.AppendLine(); + } + } + catch (Exception ex) + { + details.AppendLine("An error occurred while listing the Loaded Assemblies:"); + details.AppendLine(ex.ToString()); + } + details.AppendLine("--------------------"); + + // Include message in case it contains important information, like a file path. + details.AppendLine("User Message:"); + details.AppendLine(Message); + + T_ExceptionDetails.Text = details.ToString(); + } + + private void B_CopyToClipboard_Click(object sender, EventArgs e) + { + Clipboard.SetText(T_ExceptionDetails.Text); + } + + private void B_Continue_Click(object sender, EventArgs e) + { + DialogResult = DialogResult.OK; + Close(); + } + + private void B_Abort_Click(object sender, EventArgs e) + { + DialogResult = DialogResult.Abort; + Close(); + } +} \ No newline at end of file diff --git a/pk3DS/Misc/ErrorWindow.resx b/pk3DS.WinForms/Misc/ErrorWindow.resx similarity index 100% rename from pk3DS/Misc/ErrorWindow.resx rename to pk3DS.WinForms/Misc/ErrorWindow.resx diff --git a/pk3DS.WinForms/Misc/Patch.Designer.cs b/pk3DS.WinForms/Misc/Patch.Designer.cs new file mode 100644 index 0000000000..92f7365aa4 --- /dev/null +++ b/pk3DS.WinForms/Misc/Patch.Designer.cs @@ -0,0 +1,171 @@ +namespace pk3DS.WinForms; + +partial class Patch +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.CHKLB_GARCs = new System.Windows.Forms.CheckedListBox(); + this.textBox1 = new System.Windows.Forms.TextBox(); + this.label1 = new System.Windows.Forms.Label(); + this.B_PatchCIA = new System.Windows.Forms.Button(); + this.CHK_Lang = new System.Windows.Forms.CheckBox(); + this.RTB_GARCs = new System.Windows.Forms.RichTextBox(); + this.label2 = new System.Windows.Forms.Label(); + this.B_CheckAll = new System.Windows.Forms.Button(); + this.B_CheckNone = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // CHKLB_GARCs + // + this.CHKLB_GARCs.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.CHKLB_GARCs.FormattingEnabled = true; + this.CHKLB_GARCs.Location = new System.Drawing.Point(12, 12); + this.CHKLB_GARCs.Name = "CHKLB_GARCs"; + this.CHKLB_GARCs.Size = new System.Drawing.Size(150, 259); + this.CHKLB_GARCs.TabIndex = 0; + // + // textBox1 + // + this.textBox1.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.textBox1.Location = new System.Drawing.Point(168, 28); + this.textBox1.Name = "textBox1"; + this.textBox1.ReadOnly = true; + this.textBox1.Size = new System.Drawing.Size(104, 20); + this.textBox1.TabIndex = 1; + this.textBox1.Text = "a/#/* -> a#/*"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(168, 12); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(109, 13); + this.label1.TabIndex = 2; + this.label1.Text = "ExeFS Path Override:"; + // + // B_PatchCIA + // + this.B_PatchCIA.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.B_PatchCIA.Location = new System.Drawing.Point(168, 278); + this.B_PatchCIA.Name = "B_PatchCIA"; + this.B_PatchCIA.Size = new System.Drawing.Size(104, 23); + this.B_PatchCIA.TabIndex = 3; + this.B_PatchCIA.Text = "Redirect [CIA]"; + this.B_PatchCIA.UseVisualStyleBackColor = true; + this.B_PatchCIA.Click += new System.EventHandler(this.B_PatchCIA_Click); + // + // CHK_Lang + // + this.CHK_Lang.AutoSize = true; + this.CHK_Lang.Location = new System.Drawing.Point(171, 54); + this.CHK_Lang.Name = "CHK_Lang"; + this.CHK_Lang.Size = new System.Drawing.Size(110, 17); + this.CHK_Lang.TabIndex = 4; + this.CHK_Lang.Text = "Patch Languages"; + this.CHK_Lang.UseVisualStyleBackColor = true; + // + // RTB_GARCs + // + this.RTB_GARCs.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.RTB_GARCs.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.RTB_GARCs.Location = new System.Drawing.Point(168, 90); + this.RTB_GARCs.Name = "RTB_GARCs"; + this.RTB_GARCs.Size = new System.Drawing.Size(75, 181); + this.RTB_GARCs.TabIndex = 5; + this.RTB_GARCs.Text = ""; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(165, 74); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(72, 13); + this.label2.TabIndex = 6; + this.label2.Text = "Extra GARCs:"; + // + // B_CheckAll + // + this.B_CheckAll.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.B_CheckAll.Location = new System.Drawing.Point(12, 278); + this.B_CheckAll.Name = "B_CheckAll"; + this.B_CheckAll.Size = new System.Drawing.Size(75, 23); + this.B_CheckAll.TabIndex = 7; + this.B_CheckAll.Text = "Check All"; + this.B_CheckAll.UseVisualStyleBackColor = true; + this.B_CheckAll.Click += new System.EventHandler(this.B_CheckAll_Click); + // + // B_CheckNone + // + this.B_CheckNone.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.B_CheckNone.Location = new System.Drawing.Point(87, 278); + this.B_CheckNone.Name = "B_CheckNone"; + this.B_CheckNone.Size = new System.Drawing.Size(75, 23); + this.B_CheckNone.TabIndex = 8; + this.B_CheckNone.Text = "Check None"; + this.B_CheckNone.UseVisualStyleBackColor = true; + this.B_CheckNone.Click += new System.EventHandler(this.B_CheckNone_Click); + // + // Patch + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(284, 312); + this.Controls.Add(this.B_CheckNone); + this.Controls.Add(this.B_CheckAll); + this.Controls.Add(this.label2); + this.Controls.Add(this.RTB_GARCs); + this.Controls.Add(this.CHK_Lang); + this.Controls.Add(this.B_PatchCIA); + this.Controls.Add(this.label1); + this.Controls.Add(this.textBox1); + this.Controls.Add(this.CHKLB_GARCs); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "Patch"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Patch Manager"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.SavePatch); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.CheckedListBox CHKLB_GARCs; + private System.Windows.Forms.TextBox textBox1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Button B_PatchCIA; + private System.Windows.Forms.CheckBox CHK_Lang; + private System.Windows.Forms.RichTextBox RTB_GARCs; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Button B_CheckAll; + private System.Windows.Forms.Button B_CheckNone; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Misc/Patch.cs b/pk3DS.WinForms/Misc/Patch.cs new file mode 100644 index 0000000000..f9f27d5dc5 --- /dev/null +++ b/pk3DS.WinForms/Misc/Patch.cs @@ -0,0 +1,173 @@ +using System; +using System.Collections.Specialized; +using System.IO; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace pk3DS.WinForms; + +public partial class Patch : Form +{ + public Patch() + { + InitializeComponent(); + RTB_GARCs.Clear(); + CHKLB_GARCs.Items.Clear(); + foreach (string s in Main.Config.Files.Select(file => file.Name)) + CHKLB_GARCs.Items.Add(s); + + if (File.Exists("patch.ini")) + RTB_GARCs.Lines = File.ReadAllLines("patch.txt", Encoding.Unicode); + } + + internal static bool PatchExeFS(string path, string[] oldstr, string[] newstr, string oldROM, string newROM, ref string result, string outPath = null) + { + int ctr = 0; + if (oldstr.Length != newstr.Length) + { + result = "Input replacements do not match output replacements."; + return false; + } + + string text = File.ReadAllText(path, Encoding.Unicode); + if (!text.Contains(newROM)) + { + result = "ExeFS\\.code.bin is not a patchable ExeFS (no rom2: found)."; + return false; + } + for (int i = 0; i < oldstr.Length; i++) + { + string oldString = (oldROM + oldstr[i]).Replace(Path.DirectorySeparatorChar, '/'); + string patchedStr = (newROM + oldstr[i]).Replace(Path.DirectorySeparatorChar, '/'); + string newString = (newROM + newstr[i]).Replace(Path.DirectorySeparatorChar, '/'); + + bool old = text.Contains(oldString); + bool patched = text.Contains(patchedStr); + if (!old && !patched) + result += "Does not contain " + oldstr + Environment.NewLine; + else + ctr++; + + if (old) + text = text.Replace(oldString, newString); + if (patched) + text = text.Replace(patchedStr, newString + "\0"); + } + + if (ctr == 0) + { result = "Did not find the old path strings to replace."; return false; } + result += $"Redirected {ctr} file paths."; + Directory.CreateDirectory(Directory.GetParent(outPath).Name); + File.WriteAllText(outPath ?? path, text, Encoding.Unicode); + return true; + } + + internal static string ExportGARCs(string[] garcPaths, string[] newPaths, string parentRomFS, string patchFolder) + { + // Stuff files into new patch folder + for (int i = 0; i < garcPaths.Length; i++) + { + if ((garcPaths[i] ?? "").Length == 0) continue; + string oldPath = parentRomFS + garcPaths[i]; + string newPath = patchFolder + newPaths[i]; + string folder = Path.GetDirectoryName(newPath); + Directory.CreateDirectory(folder); + File.Copy(oldPath, newPath); + } + return patchFolder; + } + + private void B_PatchCIA_Click(object sender, EventArgs e) + { + string patchFolder = $"Patch ({DateTime.Now:yy-MM-dd@HH-mm-ss})"; + try + { + string[] garcs = GetGARCs(); + string[] garcPaths = GetPaths(garcs); + + const string oldROM = "rom:"; + const string newROM = "rom2:"; + const string oldA = "\\a\\"; + const string newA = "\\a"; + + string[] newPaths = (string[])garcPaths.Clone(); + + // Patch the reference + for (int i = 0; i < newPaths.Length; i++) + { + int posA = newPaths[i].LastIndexOf(oldA, StringComparison.Ordinal); + newPaths[i] = posA == -1 ? null : newPaths[i].Remove(posA, oldA.Length).Insert(posA, newA); + } + string result = ""; + string ExeFS = Directory.GetFiles(Main.ExeFSPath)[0]; + if (!File.Exists(ExeFS) || !Path.GetFileNameWithoutExtension(ExeFS).Contains("code")) { throw new Exception("No .code.bin detected."); } + if (!PatchExeFS(ExeFS, garcPaths, newPaths, oldROM, newROM, ref result, Path.Combine(patchFolder, ".code.bin"))) + throw new Exception(result); + + WinFormsUtil.Alert("Patch contents saved to:" + Environment.NewLine + ExportGARCs(garcPaths, newPaths, Main.RomFSPath, patchFolder), result); + } + catch (Exception ex) + { + WinFormsUtil.Error("Could not create patch:", ex.ToString()); + if (Directory.Exists(patchFolder)) Directory.Delete(patchFolder, true); + } + } + + private string[] GetGARCs() + { + var sc = new StringCollection(); + foreach (int indexChecked in CHKLB_GARCs.CheckedIndices) + sc.Add(CHKLB_GARCs.Items[indexChecked].ToString()); + + string[] rtbLines = RTB_GARCs.Lines; + foreach (string s in rtbLines.Where(s => s.Length == 7 && !sc.Contains(s.Replace('/', Path.DirectorySeparatorChar)))) + sc.Add(s.Replace('/', Path.DirectorySeparatorChar)); + + string[] garcs = new string[sc.Count]; + sc.CopyTo(garcs, 0); + return garcs.Distinct().ToArray(); + } + + private string[] GetPaths(string[] sc) + { + bool languages = CHK_Lang.Checked; + var paths = new StringCollection(); + foreach (string s in sc) + { + if (!languages || (s != "gametext" && s != "storytext")) + { + paths.Add(Main.GetGARCFileName(s, Main.Language)); + } + else + { + for (int l = 0; l < 8; l++) + paths.Add(Main.GetGARCFileName(s, l)); + } + } + + string[] garcs = new string[paths.Count]; + paths.CopyTo(garcs, 0); + return garcs; + } + + private void B_CheckAll_Click(object sender, EventArgs e) + { + for (int i = 0; i < CHKLB_GARCs.Items.Count; i++) + CHKLB_GARCs.SetItemChecked(i, true); + } + + private void B_CheckNone_Click(object sender, EventArgs e) + { + for (int i = 0; i < CHKLB_GARCs.Items.Count; i++) + CHKLB_GARCs.SetItemChecked(i, false); + } + + private void SavePatch(object sender, FormClosingEventArgs e) + { + if (RTB_GARCs.Text.Length > 0) + { + try { File.WriteAllLines("patch.ini", RTB_GARCs.Lines, Encoding.Unicode); } catch { } + } + } +} \ No newline at end of file diff --git a/pk3DS/Misc/Patch.resx b/pk3DS.WinForms/Misc/Patch.resx similarity index 100% rename from pk3DS/Misc/Patch.resx rename to pk3DS.WinForms/Misc/Patch.resx diff --git a/pk3DS/Program.cs b/pk3DS.WinForms/Program.cs similarity index 84% rename from pk3DS/Program.cs rename to pk3DS.WinForms/Program.cs index 43626fadba..93cdfe4d3a 100644 --- a/pk3DS/Program.cs +++ b/pk3DS.WinForms/Program.cs @@ -1,17 +1,20 @@ using System; -using System.Threading; using System.Windows.Forms; -namespace pk3DS +#if !DEBUG +using System.Threading; +#endif + +namespace pk3DS.WinForms; + +internal static class Program { - static class Program + /// + /// The main entry point for the application. + /// + [STAThread] + private static void Main() { - /// - /// The main entry point for the application. - /// - [STAThread] - private static void Main() - { #if !DEBUG // Add the event handler for handling UI thread exceptions to the event. Application.ThreadException += UIThreadException; @@ -23,12 +26,13 @@ private static void Main() AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; #endif - // Run the application - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new Main()); - } + // Run the application + Application.EnableVisualStyles(); + Application.SetCompatibleTextRenderingDefault(false); + Application.Run(new Main()); + } +#if !DEBUG // Handle the UI exceptions by showing a dialog box, and asking the user whether or not they wish to abort execution. private static void UIThreadException(object sender, ThreadExceptionEventArgs t) { @@ -43,7 +47,7 @@ private static void UIThreadException(object sender, ThreadExceptionEventArgs t) try { // Todo: make this translatable - MessageBox.Show("A fatal error has occurred in PKHeX, and the details could not be displayed. Please report this to the author.", "PKHeX Error", MessageBoxButtons.OK, MessageBoxIcon.Stop); + MessageBox.Show("A fatal error has occurred in pk3DS, and the details could not be displayed. Please report this to the author.", "pk3DS Error", MessageBoxButtons.OK, MessageBoxIcon.Stop); } finally { @@ -81,5 +85,5 @@ private static void CurrentDomain_UnhandledException(object sender, UnhandledExc } } } - } -} +#endif +} \ No newline at end of file diff --git a/pk3DS/Properties/Resources.Designer.cs b/pk3DS.WinForms/Properties/Resources.Designer.cs similarity index 99% rename from pk3DS/Properties/Resources.Designer.cs rename to pk3DS.WinForms/Properties/Resources.Designer.cs index eacf7a17df..38af0a2a01 100644 --- a/pk3DS/Properties/Resources.Designer.cs +++ b/pk3DS.WinForms/Properties/Resources.Designer.cs @@ -8,7 +8,7 @@ // //------------------------------------------------------------------------------ -namespace pk3DS.Properties { +namespace pk3DS.WinForms.Properties { using System; @@ -19,7 +19,7 @@ namespace pk3DS.Properties { // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] internal class Resources { @@ -39,7 +39,7 @@ internal Resources() { internal static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("pk3DS.Properties.Resources", typeof(Resources).Assembly); + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("pk3DS.WinForms.Properties.Resources", typeof(Resources).Assembly); resourceMan = temp; } return resourceMan; diff --git a/pk3DS/Properties/Resources.resx b/pk3DS.WinForms/Properties/Resources.resx similarity index 100% rename from pk3DS/Properties/Resources.resx rename to pk3DS.WinForms/Properties/Resources.resx diff --git a/pk3DS/Properties/Settings.Designer.cs b/pk3DS.WinForms/Properties/Settings.Designer.cs similarity index 96% rename from pk3DS/Properties/Settings.Designer.cs rename to pk3DS.WinForms/Properties/Settings.Designer.cs index b53e0198c9..983acb6073 100644 --- a/pk3DS/Properties/Settings.Designer.cs +++ b/pk3DS.WinForms/Properties/Settings.Designer.cs @@ -8,11 +8,11 @@ // //------------------------------------------------------------------------------ -namespace pk3DS.Properties { +namespace pk3DS.WinForms.Properties { [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.9.0.0")] internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); diff --git a/pk3DS/Properties/Settings.settings b/pk3DS.WinForms/Properties/Settings.settings similarity index 100% rename from pk3DS/Properties/Settings.settings rename to pk3DS.WinForms/Properties/Settings.settings diff --git a/pk3DS/Resources/changelog.txt b/pk3DS.WinForms/Resources/changelog.txt similarity index 100% rename from pk3DS/Resources/changelog.txt rename to pk3DS.WinForms/Resources/changelog.txt diff --git a/pk3DS/Resources/img/F.png b/pk3DS.WinForms/Resources/img/F.png similarity index 100% rename from pk3DS/Resources/img/F.png rename to pk3DS.WinForms/Resources/img/F.png diff --git a/pk3DS/Resources/img/N.png b/pk3DS.WinForms/Resources/img/N.png similarity index 100% rename from pk3DS/Resources/img/N.png rename to pk3DS.WinForms/Resources/img/N.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/0.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/0.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/0.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/0.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/10.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/10.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/10.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/10.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/100.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/100.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/100.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/100.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/101.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/101.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/101.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/101.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/102.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/102.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/102.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/102.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/103-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/103-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/103-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/103-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/103.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/103.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/103.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/103.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/104.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/104.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/104.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/104.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/105-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/105-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/105-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/105-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/105.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/105.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/105.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/105.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/106.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/106.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/106.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/106.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/107.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/107.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/107.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/107.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/108.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/108.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/108.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/108.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/109.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/109.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/109.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/109.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/11.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/11.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/11.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/11.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/110.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/110.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/110.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/110.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/111.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/111.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/111.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/111.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/112.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/112.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/112.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/112.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/113.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/113.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/113.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/113.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/114.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/114.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/114.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/114.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/115-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/115-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/115-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/115-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/115.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/115.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/115.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/115.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/116.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/116.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/116.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/116.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/117.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/117.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/117.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/117.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/118.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/118.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/118.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/118.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/119.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/119.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/119.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/119.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/12.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/12.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/12.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/12.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/120.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/120.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/120.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/120.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/121.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/121.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/121.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/121.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/122.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/122.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/122.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/122.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/123.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/123.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/123.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/123.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/124.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/124.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/124.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/124.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/125.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/125.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/125.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/125.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/126.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/126.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/126.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/126.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/127-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/127-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/127-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/127-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/127.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/127.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/127.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/127.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/128.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/128.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/128.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/128.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/129.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/129.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/129.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/129.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/13.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/13.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/13.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/13.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/130-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/130-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/130-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/130-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/130.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/130.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/130.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/130.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/131.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/131.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/131.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/131.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/132.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/132.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/132.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/132.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/133.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/133.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/133.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/133.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/134.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/134.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/134.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/134.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/135.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/135.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/135.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/135.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/136.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/136.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/136.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/136.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/137.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/137.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/137.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/137.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/138.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/138.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/138.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/138.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/139.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/139.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/139.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/139.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/14.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/14.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/14.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/14.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/140.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/140.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/140.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/140.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/141.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/141.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/141.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/141.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/142-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/142-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/142-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/142-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/142.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/142.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/142.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/142.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/143.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/143.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/143.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/143.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/144.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/144.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/144.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/144.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/145.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/145.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/145.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/145.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/146.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/146.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/146.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/146.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/147.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/147.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/147.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/147.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/148.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/148.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/148.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/148.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/149.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/149.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/149.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/149.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/15-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/15-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/15-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/15-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/15.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/15.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/15.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/15.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/150-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/150-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/150-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/150-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/150-2.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/150-2.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/150-2.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/150-2.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/150.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/150.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/150.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/150.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/151.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/151.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/151.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/151.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/152.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/152.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/152.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/152.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/153.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/153.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/153.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/153.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/154.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/154.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/154.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/154.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/155.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/155.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/155.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/155.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/156.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/156.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/156.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/156.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/157.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/157.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/157.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/157.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/158.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/158.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/158.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/158.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/159.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/159.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/159.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/159.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/159b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/159b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/159b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/159b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/16.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/16.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/16.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/16.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/160.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/160.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/160.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/160.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/161.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/161.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/161.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/161.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/162.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/162.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/162.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/162.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/163.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/163.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/163.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/163.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/164.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/164.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/164.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/164.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/165.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/165.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/165.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/165.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/166.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/166.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/166.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/166.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/167.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/167.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/167.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/167.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/168.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/168.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/168.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/168.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/169.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/169.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/169.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/169.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/17.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/17.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/17.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/17.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/170.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/170.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/170.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/170.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/171.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/171.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/171.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/171.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/172.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/172.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/172.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/172.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/172_1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/172_1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/172_1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/172_1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/173.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/173.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/173.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/173.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/173b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/173b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/173b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/173b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/174.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/174.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/174.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/174.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/174b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/174b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/174b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/174b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/175.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/175.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/175.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/175.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/176.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/176.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/176.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/176.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/177.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/177.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/177.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/177.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/178.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/178.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/178.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/178.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/179.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/179.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/179.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/179.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/18-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/18-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/18-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/18-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/18.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/18.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/18.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/18.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/180.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/180.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/180.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/180.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/181-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/181-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/181-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/181-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/181.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/181.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/181.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/181.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/182.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/182.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/182.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/182.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/183.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/183.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/183.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/183.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/184.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/184.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/184.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/184.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/185.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/185.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/185.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/185.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/186.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/186.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/186.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/186.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/186b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/186b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/186b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/186b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/187.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/187.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/187.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/187.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/188.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/188.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/188.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/188.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/189.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/189.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/189.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/189.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/19-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/19-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/19-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/19-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/19.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/19.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/19.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/19.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/190.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/190.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/190.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/190.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/191.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/191.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/191.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/191.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/192.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/192.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/192.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/192.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/193.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/193.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/193.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/193.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/194.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/194.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/194.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/194.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/195.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/195.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/195.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/195.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/196.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/196.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/196.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/196.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/197.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/197.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/197.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/197.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/198.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/198.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/198.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/198.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/199.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/199.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/199.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/199.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/2.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/2.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/2.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/2.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/20-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/20-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/20-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/20-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/20.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/20.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/20.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/20.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/200.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/200.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/200.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/200.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-10.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-10.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-10.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-10.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-10b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-10b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-10b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-10b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-11.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-11.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-11.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-11.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-11b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-11b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-11b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-11b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-12.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-12.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-12.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-12.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-12b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-12b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-12b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-12b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-13.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-13.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-13.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-13.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-13b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-13b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-13b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-13b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-14.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-14.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-14.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-14.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-15.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-15.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-15.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-15.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-15b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-15b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-15b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-15b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-16.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-16.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-16.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-16.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-16b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-16b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-16b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-16b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-17.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-17.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-17.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-17.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-17b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-17b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-17b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-17b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-18.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-18.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-18.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-18.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-18b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-18b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-18b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-18b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-19.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-19.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-19.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-19.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-19b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-19b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-19b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-19b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-1b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-1b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-1b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-1b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-2.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-2.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-2.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-2.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-20.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-20.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-20.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-20.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-21.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-21.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-21.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-21.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-21b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-21b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-21b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-21b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-22.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-22.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-22.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-22.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-23.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-23.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-23.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-23.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-24.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-24.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-24.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-24.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-25.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-25.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-25.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-25.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-25b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-25b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-25b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-25b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-26.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-26.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-26.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-26.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-27.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-27.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-27.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-27.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-27b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-27b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-27b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-27b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-2b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-2b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-2b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-2b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-3.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-3.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-3.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-3.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-3b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-3b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-3b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-3b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-4.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-4.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-4.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-4.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-4b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-4b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-4b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-4b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-5.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-5.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-5.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-5.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-5b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-5b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-5b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-5b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-6.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-6.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-6.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-6.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-6b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-6b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-6b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-6b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-7.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-7.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-7.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-7.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-7b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-7b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-7b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-7b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-8.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-8.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-8.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-8.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-9.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-9.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-9.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-9.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201-9b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201-9b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201-9b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201-9b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/201.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/201.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/201.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/201.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/202.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/202.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/202.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/202.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/203.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/203.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/203.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/203.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/204.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/204.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/204.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/204.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/205.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/205.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/205.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/205.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/206.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/206.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/206.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/206.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/207.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/207.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/207.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/207.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/208-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/208-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/208-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/208-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/208.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/208.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/208.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/208.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/209.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/209.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/209.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/209.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/21.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/21.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/21.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/21.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/210.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/210.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/210.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/210.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/211.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/211.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/211.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/211.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/212-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/212-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/212-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/212-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/212.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/212.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/212.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/212.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/213.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/213.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/213.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/213.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/214-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/214-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/214-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/214-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/214.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/214.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/214.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/214.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/215.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/215.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/215.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/215.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/215b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/215b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/215b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/215b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/216.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/216.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/216.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/216.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/216b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/216b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/216b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/216b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/217.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/217.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/217.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/217.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/218.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/218.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/218.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/218.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/219.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/219.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/219.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/219.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/22.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/22.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/22.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/22.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/220.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/220.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/220.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/220.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/221.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/221.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/221.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/221.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/222.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/222.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/222.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/222.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/223.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/223.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/223.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/223.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/224.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/224.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/224.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/224.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/225.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/225.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/225.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/225.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/226.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/226.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/226.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/226.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/227.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/227.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/227.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/227.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/228.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/228.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/228.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/228.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/229-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/229-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/229-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/229-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/229.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/229.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/229.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/229.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/23.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/23.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/23.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/23.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/230.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/230.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/230.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/230.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/231.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/231.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/231.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/231.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/232.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/232.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/232.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/232.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/233.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/233.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/233.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/233.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/234.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/234.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/234.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/234.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/235.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/235.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/235.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/235.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/236.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/236.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/236.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/236.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/237.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/237.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/237.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/237.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/238.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/238.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/238.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/238.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/239.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/239.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/239.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/239.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/24.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/24.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/24.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/24.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/240.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/240.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/240.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/240.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/241.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/241.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/241.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/241.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/242.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/242.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/242.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/242.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/243.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/243.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/243.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/243.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/244.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/244.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/244.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/244.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/244b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/244b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/244b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/244b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/245.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/245.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/245.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/245.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/246.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/246.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/246.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/246.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/247.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/247.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/247.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/247.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/248-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/248-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/248-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/248-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/248.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/248.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/248.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/248.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/249.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/249.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/249.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/249.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/25-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/25-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/25-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/25-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/25-1c.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/25-1c.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/25-1c.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/25-1c.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/25-2.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/25-2.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/25-2.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/25-2.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/25-2c.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/25-2c.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/25-2c.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/25-2c.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/25-3.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/25-3.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/25-3.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/25-3.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/25-3c.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/25-3c.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/25-3c.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/25-3c.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/25-4.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/25-4.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/25-4.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/25-4.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/25-4c.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/25-4c.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/25-4c.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/25-4c.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/25-5.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/25-5.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/25-5.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/25-5.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/25-5c.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/25-5c.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/25-5c.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/25-5c.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/25-6.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/25-6.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/25-6.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/25-6.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/25-6c.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/25-6c.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/25-6c.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/25-6c.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/25-7c.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/25-7c.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/25-7c.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/25-7c.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/25.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/25.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/25.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/25.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/250.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/250.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/250.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/250.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/251.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/251.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/251.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/251.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/252.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/252.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/252.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/252.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/253.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/253.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/253.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/253.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/254-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/254-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/254-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/254-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/254.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/254.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/254.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/254.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/255.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/255.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/255.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/255.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/256.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/256.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/256.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/256.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/257-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/257-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/257-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/257-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/257.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/257.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/257.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/257.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/258.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/258.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/258.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/258.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/259.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/259.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/259.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/259.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/26-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/26-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/26-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/26-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/26.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/26.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/26.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/26.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/260-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/260-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/260-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/260-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/260.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/260.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/260.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/260.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/261.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/261.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/261.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/261.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/262.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/262.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/262.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/262.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/263.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/263.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/263.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/263.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/264.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/264.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/264.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/264.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/265.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/265.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/265.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/265.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/266.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/266.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/266.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/266.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/267.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/267.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/267.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/267.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/268.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/268.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/268.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/268.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/269.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/269.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/269.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/269.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/27-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/27-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/27-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/27-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/27.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/27.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/27.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/27.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/270.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/270.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/270.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/270.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/271.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/271.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/271.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/271.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/272.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/272.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/272.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/272.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/273.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/273.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/273.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/273.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/274.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/274.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/274.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/274.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/275.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/275.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/275.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/275.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/276.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/276.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/276.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/276.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/277.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/277.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/277.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/277.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/278.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/278.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/278.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/278.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/279.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/279.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/279.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/279.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/28-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/28-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/28-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/28-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/28.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/28.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/28.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/28.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/280.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/280.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/280.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/280.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/281.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/281.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/281.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/281.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/282-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/282-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/282-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/282-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/282.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/282.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/282.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/282.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/283.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/283.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/283.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/283.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/284.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/284.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/284.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/284.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/285.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/285.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/285.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/285.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/286.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/286.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/286.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/286.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/287.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/287.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/287.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/287.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/288.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/288.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/288.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/288.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/289.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/289.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/289.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/289.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/29.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/29.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/29.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/29.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/290.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/290.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/290.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/290.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/291.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/291.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/291.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/291.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/292.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/292.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/292.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/292.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/293.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/293.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/293.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/293.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/294.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/294.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/294.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/294.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/295.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/295.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/295.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/295.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/296.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/296.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/296.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/296.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/297.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/297.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/297.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/297.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/298.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/298.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/298.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/298.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/299.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/299.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/299.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/299.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/3-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/3-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/3-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/3-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/3.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/3.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/3.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/3.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/30.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/30.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/30.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/30.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/300.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/300.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/300.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/300.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/301.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/301.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/301.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/301.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/302-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/302-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/302-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/302-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/302.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/302.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/302.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/302.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/303-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/303-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/303-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/303-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/303.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/303.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/303.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/303.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/304.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/304.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/304.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/304.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/305.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/305.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/305.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/305.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/306-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/306-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/306-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/306-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/306.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/306.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/306.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/306.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/307.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/307.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/307.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/307.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/308-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/308-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/308-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/308-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/308.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/308.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/308.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/308.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/309.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/309.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/309.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/309.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/31.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/31.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/31.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/31.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/310-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/310-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/310-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/310-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/310.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/310.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/310.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/310.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/311.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/311.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/311.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/311.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/312.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/312.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/312.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/312.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/313.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/313.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/313.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/313.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/314.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/314.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/314.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/314.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/315.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/315.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/315.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/315.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/315b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/315b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/315b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/315b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/316.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/316.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/316.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/316.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/317.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/317.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/317.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/317.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/318.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/318.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/318.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/318.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/319-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/319-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/319-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/319-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/319.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/319.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/319.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/319.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/32.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/32.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/32.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/32.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/320.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/320.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/320.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/320.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/321.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/321.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/321.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/321.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/322.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/322.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/322.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/322.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/323-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/323-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/323-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/323-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/323.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/323.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/323.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/323.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/324.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/324.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/324.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/324.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/325.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/325.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/325.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/325.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/326.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/326.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/326.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/326.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/327.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/327.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/327.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/327.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/328.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/328.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/328.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/328.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/329.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/329.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/329.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/329.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/33.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/33.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/33.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/33.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/330.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/330.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/330.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/330.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/331.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/331.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/331.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/331.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/332.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/332.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/332.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/332.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/333.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/333.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/333.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/333.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/334-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/334-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/334-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/334-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/334.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/334.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/334.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/334.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/335.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/335.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/335.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/335.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/335b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/335b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/335b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/335b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/336.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/336.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/336.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/336.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/336b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/336b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/336b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/336b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/337.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/337.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/337.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/337.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/338.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/338.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/338.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/338.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/339.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/339.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/339.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/339.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/34.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/34.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/34.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/34.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/340.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/340.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/340.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/340.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/341.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/341.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/341.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/341.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/342.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/342.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/342.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/342.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/343.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/343.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/343.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/343.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/344.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/344.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/344.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/344.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/345.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/345.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/345.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/345.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/346.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/346.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/346.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/346.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/347.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/347.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/347.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/347.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/348.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/348.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/348.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/348.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/349.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/349.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/349.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/349.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/35.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/35.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/35.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/35.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/350.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/350.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/350.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/350.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/351-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/351-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/351-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/351-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/351-2.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/351-2.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/351-2.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/351-2.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/351-3.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/351-3.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/351-3.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/351-3.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/351-3b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/351-3b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/351-3b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/351-3b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/351.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/351.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/351.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/351.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/352.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/352.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/352.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/352.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/353.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/353.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/353.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/353.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/354-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/354-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/354-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/354-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/354.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/354.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/354.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/354.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/355.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/355.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/355.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/355.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/356.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/356.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/356.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/356.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/357.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/357.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/357.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/357.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/358.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/358.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/358.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/358.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/359-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/359-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/359-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/359-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/359-1b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/359-1b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/359-1b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/359-1b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/359.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/359.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/359.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/359.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/359b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/359b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/359b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/359b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/35b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/35b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/35b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/35b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/36.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/36.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/36.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/36.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/360.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/360.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/360.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/360.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/361.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/361.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/361.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/361.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/362-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/362-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/362-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/362-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/362.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/362.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/362.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/362.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/363.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/363.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/363.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/363.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/364.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/364.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/364.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/364.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/365.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/365.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/365.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/365.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/366.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/366.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/366.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/366.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/367.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/367.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/367.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/367.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/368.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/368.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/368.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/368.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/369.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/369.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/369.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/369.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/36b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/36b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/36b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/36b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/37-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/37-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/37-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/37-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/37.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/37.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/37.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/37.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/370.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/370.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/370.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/370.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/371.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/371.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/371.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/371.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/372.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/372.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/372.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/372.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/373-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/373-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/373-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/373-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/373.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/373.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/373.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/373.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/374.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/374.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/374.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/374.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/375.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/375.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/375.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/375.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/376-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/376-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/376-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/376-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/376.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/376.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/376.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/376.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/377.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/377.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/377.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/377.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/377b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/377b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/377b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/377b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/378.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/378.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/378.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/378.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/379.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/379.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/379.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/379.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/38-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/38-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/38-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/38-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/38.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/38.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/38.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/38.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/380-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/380-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/380-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/380-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/380.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/380.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/380.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/380.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/381-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/381-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/381-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/381-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/381.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/381.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/381.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/381.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/382-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/382-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/382-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/382-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/382.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/382.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/382.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/382.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/383-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/383-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/383-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/383-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/383.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/383.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/383.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/383.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/384-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/384-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/384-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/384-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/384.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/384.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/384.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/384.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/385.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/385.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/385.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/385.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/386-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/386-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/386-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/386-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/386-2.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/386-2.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/386-2.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/386-2.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/386-3.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/386-3.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/386-3.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/386-3.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/386.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/386.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/386.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/386.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/387.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/387.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/387.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/387.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/388.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/388.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/388.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/388.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/389.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/389.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/389.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/389.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/389b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/389b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/389b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/389b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/39.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/39.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/39.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/39.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/390.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/390.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/390.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/390.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/391.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/391.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/391.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/391.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/392.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/392.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/392.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/392.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/393.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/393.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/393.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/393.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/394.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/394.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/394.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/394.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/395.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/395.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/395.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/395.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/396.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/396.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/396.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/396.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/397.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/397.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/397.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/397.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/398.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/398.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/398.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/398.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/399.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/399.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/399.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/399.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/39b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/39b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/39b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/39b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/4.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/4.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/4.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/4.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/40.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/40.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/40.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/40.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/400.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/400.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/400.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/400.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/401.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/401.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/401.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/401.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/402.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/402.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/402.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/402.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/403.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/403.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/403.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/403.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/404.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/404.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/404.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/404.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/405.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/405.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/405.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/405.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/406.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/406.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/406.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/406.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/406b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/406b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/406b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/406b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/407.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/407.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/407.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/407.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/407b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/407b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/407b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/407b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/408.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/408.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/408.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/408.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/409.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/409.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/409.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/409.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/40b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/40b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/40b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/40b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/41.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/41.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/41.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/41.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/410.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/410.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/410.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/410.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/411.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/411.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/411.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/411.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/412-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/412-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/412-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/412-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/412-2.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/412-2.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/412-2.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/412-2.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/412.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/412.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/412.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/412.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/413-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/413-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/413-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/413-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/413-2.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/413-2.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/413-2.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/413-2.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/413.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/413.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/413.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/413.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/414.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/414.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/414.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/414.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/415.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/415.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/415.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/415.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/416.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/416.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/416.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/416.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/417.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/417.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/417.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/417.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/418.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/418.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/418.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/418.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/419.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/419.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/419.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/419.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/42.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/42.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/42.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/42.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/420.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/420.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/420.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/420.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/421-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/421-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/421-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/421-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/421.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/421.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/421.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/421.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/422-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/422-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/422-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/422-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/422.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/422.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/422.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/422.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/423-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/423-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/423-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/423-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/423.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/423.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/423.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/423.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/424.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/424.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/424.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/424.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/425.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/425.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/425.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/425.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/426.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/426.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/426.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/426.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/427.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/427.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/427.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/427.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/428-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/428-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/428-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/428-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/428.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/428.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/428.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/428.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/429.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/429.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/429.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/429.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/43.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/43.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/43.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/43.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/430.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/430.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/430.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/430.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/431.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/431.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/431.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/431.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/432.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/432.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/432.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/432.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/433.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/433.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/433.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/433.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/434.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/434.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/434.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/434.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/435.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/435.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/435.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/435.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/436.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/436.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/436.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/436.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/437.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/437.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/437.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/437.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/438.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/438.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/438.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/438.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/439.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/439.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/439.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/439.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/44.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/44.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/44.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/44.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/440.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/440.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/440.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/440.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/441.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/441.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/441.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/441.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/442.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/442.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/442.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/442.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/443.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/443.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/443.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/443.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/444.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/444.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/444.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/444.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/445-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/445-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/445-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/445-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/445.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/445.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/445.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/445.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/446.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/446.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/446.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/446.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/447.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/447.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/447.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/447.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/448-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/448-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/448-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/448-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/448.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/448.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/448.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/448.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/449.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/449.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/449.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/449.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/45.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/45.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/45.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/45.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/450.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/450.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/450.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/450.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/451.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/451.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/451.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/451.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/452.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/452.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/452.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/452.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/453.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/453.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/453.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/453.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/454.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/454.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/454.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/454.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/455.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/455.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/455.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/455.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/456.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/456.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/456.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/456.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/457.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/457.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/457.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/457.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/458.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/458.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/458.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/458.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/459.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/459.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/459.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/459.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/46.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/46.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/46.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/46.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/460-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/460-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/460-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/460-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/460.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/460.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/460.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/460.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/461.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/461.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/461.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/461.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/462.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/462.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/462.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/462.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/463.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/463.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/463.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/463.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/464.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/464.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/464.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/464.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/465.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/465.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/465.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/465.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/466.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/466.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/466.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/466.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/467.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/467.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/467.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/467.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/467b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/467b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/467b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/467b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/468.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/468.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/468.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/468.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/468b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/468b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/468b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/468b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/469.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/469.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/469.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/469.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/47.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/47.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/47.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/47.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/470.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/470.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/470.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/470.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/471.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/471.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/471.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/471.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/472.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/472.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/472.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/472.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/473.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/473.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/473.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/473.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/474.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/474.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/474.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/474.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/475-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/475-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/475-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/475-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/475.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/475.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/475.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/475.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/476.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/476.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/476.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/476.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/477.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/477.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/477.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/477.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/478.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/478.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/478.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/478.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/479-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/479-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/479-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/479-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/479-2.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/479-2.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/479-2.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/479-2.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/479-2b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/479-2b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/479-2b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/479-2b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/479-3.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/479-3.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/479-3.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/479-3.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/479-4.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/479-4.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/479-4.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/479-4.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/479-5.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/479-5.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/479-5.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/479-5.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/479.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/479.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/479.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/479.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/48.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/48.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/48.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/48.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/480.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/480.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/480.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/480.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/481.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/481.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/481.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/481.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/482.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/482.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/482.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/482.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/483.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/483.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/483.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/483.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/484.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/484.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/484.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/484.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/485.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/485.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/485.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/485.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/486.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/486.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/486.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/486.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/487-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/487-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/487-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/487-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/487.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/487.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/487.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/487.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/488.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/488.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/488.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/488.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/489.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/489.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/489.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/489.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/49.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/49.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/49.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/49.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/490.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/490.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/490.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/490.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/491.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/491.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/491.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/491.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/492-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/492-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/492-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/492-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/492-1b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/492-1b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/492-1b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/492-1b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/492.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/492.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/492.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/492.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/493-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/493-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/493-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/493-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/493-10.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/493-10.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/493-10.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/493-10.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/493-11.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/493-11.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/493-11.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/493-11.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/493-12.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/493-12.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/493-12.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/493-12.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/493-13.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/493-13.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/493-13.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/493-13.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/493-14.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/493-14.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/493-14.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/493-14.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/493-15.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/493-15.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/493-15.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/493-15.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/493-16.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/493-16.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/493-16.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/493-16.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/493-17.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/493-17.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/493-17.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/493-17.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/493-18.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/493-18.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/493-18.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/493-18.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/493-2.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/493-2.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/493-2.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/493-2.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/493-3.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/493-3.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/493-3.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/493-3.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/493-4.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/493-4.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/493-4.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/493-4.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/493-5.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/493-5.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/493-5.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/493-5.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/493-6.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/493-6.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/493-6.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/493-6.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/493-7.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/493-7.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/493-7.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/493-7.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/493-8.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/493-8.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/493-8.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/493-8.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/493-9.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/493-9.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/493-9.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/493-9.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/493.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/493.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/493.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/493.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/494.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/494.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/494.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/494.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/495.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/495.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/495.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/495.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/496.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/496.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/496.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/496.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/497.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/497.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/497.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/497.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/498.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/498.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/498.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/498.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/499.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/499.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/499.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/499.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/5.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/5.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/5.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/5.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/50-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/50-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/50-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/50-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/50.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/50.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/50.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/50.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/500.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/500.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/500.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/500.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/500b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/500b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/500b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/500b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/501.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/501.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/501.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/501.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/502.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/502.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/502.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/502.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/503.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/503.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/503.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/503.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/504.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/504.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/504.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/504.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/505.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/505.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/505.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/505.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/506.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/506.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/506.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/506.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/507.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/507.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/507.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/507.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/508.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/508.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/508.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/508.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/509.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/509.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/509.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/509.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/51-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/51-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/51-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/51-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/51.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/51.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/51.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/51.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/510.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/510.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/510.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/510.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/511.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/511.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/511.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/511.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/512.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/512.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/512.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/512.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/513.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/513.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/513.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/513.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/513b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/513b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/513b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/513b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/514.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/514.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/514.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/514.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/514b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/514b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/514b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/514b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/515.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/515.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/515.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/515.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/516.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/516.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/516.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/516.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/517.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/517.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/517.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/517.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/518.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/518.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/518.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/518.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/519.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/519.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/519.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/519.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/52-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/52-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/52-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/52-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/52.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/52.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/52.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/52.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/520.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/520.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/520.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/520.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/521.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/521.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/521.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/521.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/521_1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/521_1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/521_1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/521_1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/521f.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/521f.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/521f.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/521f.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/522.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/522.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/522.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/522.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/523.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/523.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/523.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/523.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/524.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/524.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/524.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/524.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/525.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/525.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/525.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/525.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/526.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/526.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/526.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/526.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/527.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/527.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/527.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/527.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/528.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/528.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/528.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/528.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/529.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/529.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/529.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/529.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/529b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/529b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/529b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/529b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/53-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/53-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/53-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/53-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/53.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/53.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/53.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/53.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/530.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/530.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/530.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/530.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/530b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/530b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/530b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/530b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/531-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/531-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/531-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/531-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/531.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/531.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/531.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/531.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/532.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/532.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/532.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/532.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/533.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/533.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/533.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/533.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/534.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/534.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/534.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/534.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/535.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/535.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/535.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/535.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/536.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/536.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/536.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/536.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/537.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/537.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/537.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/537.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/538.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/538.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/538.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/538.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/539.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/539.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/539.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/539.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/539b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/539b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/539b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/539b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/54.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/54.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/54.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/54.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/540.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/540.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/540.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/540.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/541.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/541.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/541.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/541.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/542.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/542.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/542.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/542.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/543.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/543.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/543.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/543.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/544.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/544.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/544.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/544.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/545.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/545.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/545.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/545.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/546.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/546.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/546.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/546.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/547.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/547.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/547.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/547.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/548.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/548.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/548.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/548.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/549.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/549.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/549.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/549.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/549b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/549b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/549b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/549b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/55.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/55.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/55.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/55.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/550-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/550-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/550-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/550-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/550.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/550.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/550.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/550.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/551.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/551.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/551.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/551.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/552.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/552.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/552.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/552.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/553.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/553.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/553.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/553.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/554.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/554.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/554.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/554.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/555-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/555-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/555-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/555-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/555.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/555.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/555.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/555.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/556.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/556.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/556.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/556.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/557.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/557.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/557.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/557.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/558.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/558.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/558.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/558.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/559.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/559.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/559.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/559.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/56.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/56.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/56.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/56.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/560.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/560.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/560.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/560.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/561.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/561.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/561.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/561.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/562.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/562.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/562.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/562.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/563.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/563.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/563.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/563.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/564.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/564.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/564.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/564.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/565.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/565.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/565.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/565.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/566.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/566.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/566.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/566.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/567.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/567.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/567.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/567.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/568.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/568.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/568.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/568.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/569.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/569.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/569.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/569.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/569b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/569b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/569b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/569b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/57.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/57.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/57.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/57.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/570.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/570.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/570.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/570.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/571.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/571.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/571.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/571.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/572.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/572.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/572.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/572.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/573.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/573.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/573.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/573.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/574.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/574.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/574.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/574.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/575.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/575.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/575.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/575.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/576.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/576.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/576.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/576.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/577.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/577.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/577.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/577.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/577b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/577b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/577b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/577b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/578.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/578.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/578.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/578.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/579.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/579.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/579.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/579.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/58.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/58.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/58.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/58.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/580.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/580.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/580.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/580.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/581.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/581.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/581.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/581.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/582.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/582.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/582.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/582.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/583.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/583.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/583.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/583.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/584.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/584.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/584.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/584.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/584b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/584b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/584b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/584b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/585-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/585-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/585-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/585-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/585-2.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/585-2.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/585-2.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/585-2.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/585-3.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/585-3.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/585-3.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/585-3.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/585.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/585.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/585.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/585.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/586-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/586-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/586-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/586-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/586-2.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/586-2.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/586-2.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/586-2.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/586-3.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/586-3.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/586-3.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/586-3.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/586.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/586.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/586.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/586.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/587.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/587.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/587.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/587.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/588.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/588.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/588.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/588.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/589.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/589.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/589.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/589.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/59.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/59.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/59.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/59.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/590.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/590.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/590.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/590.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/591.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/591.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/591.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/591.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/591b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/591b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/591b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/591b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/592-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/592-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/592-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/592-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/592.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/592.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/592.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/592.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/593-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/593-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/593-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/593-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/593.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/593.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/593.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/593.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/594.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/594.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/594.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/594.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/595.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/595.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/595.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/595.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/596.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/596.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/596.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/596.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/597.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/597.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/597.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/597.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/598.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/598.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/598.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/598.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/599.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/599.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/599.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/599.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/599b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/599b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/599b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/599b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/6-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/6-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/6-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/6-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/6-2.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/6-2.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/6-2.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/6-2.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/6.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/6.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/6.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/6.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/60.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/60.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/60.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/60.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/600.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/600.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/600.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/600.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/600b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/600b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/600b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/600b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/601.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/601.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/601.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/601.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/601b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/601b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/601b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/601b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/602.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/602.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/602.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/602.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/603.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/603.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/603.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/603.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/604.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/604.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/604.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/604.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/605.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/605.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/605.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/605.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/606.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/606.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/606.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/606.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/607.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/607.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/607.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/607.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/607b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/607b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/607b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/607b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/608.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/608.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/608.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/608.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/609.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/609.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/609.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/609.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/61.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/61.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/61.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/61.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/610.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/610.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/610.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/610.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/611.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/611.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/611.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/611.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/612.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/612.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/612.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/612.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/613.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/613.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/613.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/613.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/614.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/614.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/614.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/614.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/615.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/615.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/615.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/615.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/616.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/616.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/616.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/616.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/617.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/617.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/617.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/617.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/618.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/618.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/618.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/618.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/619.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/619.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/619.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/619.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/61b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/61b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/61b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/61b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/62.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/62.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/62.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/62.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/620.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/620.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/620.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/620.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/621.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/621.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/621.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/621.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/622.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/622.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/622.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/622.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/622b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/622b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/622b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/622b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/623.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/623.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/623.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/623.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/623b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/623b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/623b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/623b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/624.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/624.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/624.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/624.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/625.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/625.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/625.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/625.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/626-2.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/626-2.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/626-2.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/626-2.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/626-4.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/626-4.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/626-4.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/626-4.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/626-4b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/626-4b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/626-4b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/626-4b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/626-9.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/626-9.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/626-9.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/626-9.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/626.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/626.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/626.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/626.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/627.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/627.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/627.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/627.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/628.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/628.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/628.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/628.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/629.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/629.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/629.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/629.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/62b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/62b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/62b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/62b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/63.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/63.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/63.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/63.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/630.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/630.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/630.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/630.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/631.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/631.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/631.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/631.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/632.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/632.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/632.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/632.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/633.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/633.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/633.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/633.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/634.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/634.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/634.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/634.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/635.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/635.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/635.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/635.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/636.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/636.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/636.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/636.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/637.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/637.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/637.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/637.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/638.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/638.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/638.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/638.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/639.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/639.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/639.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/639.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/64.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/64.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/64.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/64.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/640.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/640.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/640.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/640.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/641-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/641-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/641-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/641-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/641.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/641.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/641.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/641.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/642-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/642-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/642-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/642-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/642.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/642.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/642.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/642.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/643.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/643.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/643.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/643.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/644.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/644.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/644.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/644.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/645-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/645-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/645-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/645-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/645.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/645.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/645.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/645.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/646-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/646-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/646-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/646-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/646-1b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/646-1b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/646-1b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/646-1b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/646-2.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/646-2.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/646-2.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/646-2.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/646-2b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/646-2b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/646-2b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/646-2b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/646.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/646.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/646.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/646.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/646b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/646b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/646b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/646b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/647-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/647-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/647-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/647-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/647-1b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/647-1b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/647-1b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/647-1b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/647.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/647.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/647.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/647.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/648-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/648-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/648-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/648-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/648.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/648.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/648.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/648.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/648b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/648b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/648b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/648b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/649-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/649-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/649-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/649-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/649-2.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/649-2.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/649-2.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/649-2.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/649-3.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/649-3.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/649-3.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/649-3.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/649-4.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/649-4.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/649-4.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/649-4.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/649.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/649.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/649.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/649.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/65-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/65-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/65-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/65-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/65.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/65.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/65.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/65.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/650.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/650.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/650.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/650.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/651.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/651.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/651.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/651.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/652.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/652.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/652.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/652.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/653.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/653.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/653.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/653.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/654.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/654.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/654.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/654.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/655.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/655.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/655.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/655.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/656.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/656.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/656.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/656.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/657.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/657.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/657.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/657.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/658-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/658-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/658-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/658-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/658-2.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/658-2.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/658-2.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/658-2.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/658.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/658.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/658.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/658.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/658b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/658b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/658b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/658b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/659.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/659.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/659.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/659.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/66.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/66.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/66.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/66.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/660.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/660.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/660.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/660.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/661.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/661.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/661.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/661.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/662.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/662.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/662.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/662.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/663.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/663.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/663.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/663.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/664-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/664-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/664-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/664-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/664-10.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/664-10.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/664-10.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/664-10.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/664-11.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/664-11.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/664-11.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/664-11.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/664-12.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/664-12.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/664-12.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/664-12.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/664-13.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/664-13.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/664-13.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/664-13.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/664-14.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/664-14.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/664-14.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/664-14.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/664-15.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/664-15.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/664-15.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/664-15.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/664-16.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/664-16.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/664-16.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/664-16.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/664-17.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/664-17.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/664-17.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/664-17.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/664-18.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/664-18.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/664-18.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/664-18.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/664-19.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/664-19.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/664-19.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/664-19.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/664-2.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/664-2.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/664-2.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/664-2.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/664-3.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/664-3.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/664-3.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/664-3.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/664-4.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/664-4.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/664-4.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/664-4.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/664-5.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/664-5.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/664-5.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/664-5.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/664-6.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/664-6.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/664-6.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/664-6.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/664-7.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/664-7.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/664-7.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/664-7.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/664-8.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/664-8.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/664-8.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/664-8.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/664-9.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/664-9.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/664-9.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/664-9.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/664.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/664.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/664.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/664.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/665-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/665-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/665-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/665-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/665-10.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/665-10.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/665-10.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/665-10.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/665-11.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/665-11.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/665-11.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/665-11.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/665-12.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/665-12.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/665-12.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/665-12.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/665-13.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/665-13.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/665-13.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/665-13.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/665-14.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/665-14.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/665-14.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/665-14.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/665-15.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/665-15.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/665-15.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/665-15.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/665-16.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/665-16.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/665-16.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/665-16.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/665-17.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/665-17.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/665-17.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/665-17.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/665-18.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/665-18.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/665-18.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/665-18.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/665-19.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/665-19.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/665-19.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/665-19.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/665-2.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/665-2.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/665-2.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/665-2.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/665-3.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/665-3.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/665-3.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/665-3.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/665-4.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/665-4.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/665-4.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/665-4.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/665-5.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/665-5.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/665-5.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/665-5.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/665-6.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/665-6.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/665-6.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/665-6.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/665-7.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/665-7.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/665-7.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/665-7.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/665-8.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/665-8.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/665-8.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/665-8.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/665-9.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/665-9.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/665-9.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/665-9.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/665.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/665.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/665.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/665.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/666-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/666-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/666-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/666-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/666-10.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/666-10.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/666-10.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/666-10.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/666-11.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/666-11.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/666-11.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/666-11.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/666-12.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/666-12.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/666-12.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/666-12.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/666-13.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/666-13.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/666-13.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/666-13.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/666-14.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/666-14.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/666-14.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/666-14.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/666-15.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/666-15.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/666-15.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/666-15.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/666-16.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/666-16.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/666-16.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/666-16.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/666-17.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/666-17.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/666-17.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/666-17.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/666-18.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/666-18.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/666-18.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/666-18.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/666-19.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/666-19.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/666-19.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/666-19.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/666-2.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/666-2.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/666-2.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/666-2.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/666-3.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/666-3.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/666-3.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/666-3.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/666-4.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/666-4.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/666-4.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/666-4.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/666-5.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/666-5.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/666-5.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/666-5.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/666-6.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/666-6.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/666-6.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/666-6.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/666-7.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/666-7.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/666-7.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/666-7.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/666-8.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/666-8.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/666-8.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/666-8.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/666-9.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/666-9.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/666-9.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/666-9.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/666.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/666.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/666.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/666.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/667.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/667.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/667.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/667.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/668.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/668.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/668.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/668.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/668_1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/668_1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/668_1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/668_1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/668f.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/668f.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/668f.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/668f.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/669-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/669-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/669-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/669-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/669-2.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/669-2.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/669-2.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/669-2.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/669-3.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/669-3.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/669-3.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/669-3.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/669-4.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/669-4.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/669-4.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/669-4.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/669.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/669.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/669.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/669.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/67.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/67.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/67.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/67.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/670-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/670-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/670-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/670-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/670-2.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/670-2.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/670-2.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/670-2.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/670-3.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/670-3.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/670-3.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/670-3.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/670-4.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/670-4.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/670-4.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/670-4.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/670-5.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/670-5.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/670-5.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/670-5.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/670.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/670.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/670.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/670.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/671-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/671-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/671-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/671-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/671-2.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/671-2.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/671-2.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/671-2.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/671-3.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/671-3.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/671-3.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/671-3.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/671-4.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/671-4.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/671-4.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/671-4.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/671.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/671.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/671.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/671.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/672.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/672.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/672.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/672.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/673.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/673.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/673.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/673.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/674.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/674.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/674.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/674.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/675.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/675.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/675.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/675.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/676-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/676-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/676-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/676-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/676-2.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/676-2.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/676-2.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/676-2.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/676-3.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/676-3.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/676-3.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/676-3.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/676-4.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/676-4.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/676-4.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/676-4.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/676-5.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/676-5.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/676-5.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/676-5.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/676-6.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/676-6.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/676-6.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/676-6.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/676-7.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/676-7.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/676-7.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/676-7.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/676-8.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/676-8.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/676-8.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/676-8.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/676-9.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/676-9.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/676-9.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/676-9.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/676.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/676.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/676.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/676.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/677.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/677.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/677.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/677.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/678-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/678-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/678-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/678-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/678.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/678.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/678.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/678.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/679.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/679.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/679.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/679.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/68.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/68.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/68.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/68.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/680.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/680.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/680.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/680.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/681-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/681-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/681-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/681-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/681.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/681.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/681.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/681.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/682.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/682.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/682.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/682.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/683.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/683.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/683.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/683.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/684.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/684.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/684.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/684.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/685.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/685.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/685.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/685.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/686.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/686.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/686.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/686.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/687.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/687.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/687.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/687.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/688.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/688.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/688.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/688.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/689.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/689.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/689.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/689.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/689b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/689b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/689b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/689b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/69.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/69.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/69.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/69.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/690.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/690.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/690.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/690.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/691.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/691.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/691.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/691.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/692.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/692.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/692.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/692.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/692b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/692b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/692b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/692b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/693.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/693.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/693.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/693.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/693b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/693b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/693b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/693b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/694.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/694.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/694.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/694.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/695.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/695.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/695.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/695.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/696.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/696.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/696.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/696.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/697.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/697.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/697.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/697.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/698.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/698.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/698.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/698.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/699.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/699.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/699.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/699.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/7.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/7.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/7.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/7.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/70.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/70.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/70.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/70.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/700.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/700.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/700.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/700.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/700b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/700b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/700b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/700b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/701.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/701.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/701.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/701.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/702.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/702.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/702.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/702.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/703.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/703.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/703.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/703.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/704.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/704.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/704.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/704.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/705.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/705.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/705.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/705.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/706.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/706.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/706.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/706.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/707.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/707.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/707.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/707.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/707b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/707b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/707b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/707b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/708.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/708.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/708.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/708.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/709.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/709.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/709.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/709.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/71.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/71.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/71.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/71.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/710-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/710-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/710-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/710-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/710-2.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/710-2.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/710-2.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/710-2.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/710-3.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/710-3.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/710-3.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/710-3.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/710.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/710.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/710.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/710.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/711-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/711-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/711-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/711-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/711-2.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/711-2.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/711-2.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/711-2.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/711-3.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/711-3.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/711-3.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/711-3.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/711.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/711.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/711.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/711.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/712.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/712.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/712.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/712.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/713.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/713.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/713.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/713.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/714.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/714.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/714.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/714.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/715.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/715.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/715.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/715.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/716-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/716-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/716-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/716-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/716.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/716.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/716.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/716.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/717.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/717.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/717.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/717.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/718-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/718-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/718-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/718-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/718-2.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/718-2.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/718-2.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/718-2.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/718-3.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/718-3.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/718-3.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/718-3.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/718-4.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/718-4.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/718-4.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/718-4.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/718.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/718.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/718.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/718.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/718b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/718b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/718b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/718b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/719-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/719-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/719-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/719-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/719.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/719.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/719.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/719.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/72.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/72.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/72.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/72.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/720-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/720-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/720-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/720-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/720.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/720.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/720.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/720.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/721.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/721.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/721.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/721.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/722.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/722.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/722.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/722.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/723.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/723.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/723.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/723.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/724.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/724.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/724.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/724.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/725.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/725.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/725.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/725.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/726.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/726.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/726.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/726.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/727.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/727.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/727.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/727.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/728.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/728.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/728.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/728.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/729.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/729.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/729.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/729.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/73.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/73.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/73.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/73.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/730.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/730.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/730.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/730.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/731.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/731.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/731.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/731.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/732.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/732.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/732.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/732.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/733.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/733.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/733.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/733.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/734.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/734.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/734.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/734.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/735.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/735.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/735.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/735.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/736.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/736.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/736.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/736.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/737.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/737.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/737.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/737.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/738.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/738.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/738.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/738.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/739.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/739.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/739.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/739.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/74-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/74-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/74-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/74-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/74.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/74.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/74.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/74.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/740.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/740.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/740.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/740.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/741-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/741-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/741-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/741-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/741-2.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/741-2.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/741-2.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/741-2.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/741-3.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/741-3.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/741-3.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/741-3.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/741.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/741.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/741.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/741.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/742.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/742.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/742.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/742.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/743.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/743.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/743.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/743.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/744-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/744-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/744-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/744-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/744.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/744.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/744.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/744.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/745-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/745-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/745-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/745-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/745-2.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/745-2.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/745-2.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/745-2.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/745.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/745.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/745.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/745.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/746-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/746-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/746-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/746-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/746.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/746.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/746.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/746.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/747.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/747.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/747.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/747.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/748.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/748.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/748.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/748.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/749.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/749.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/749.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/749.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/75-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/75-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/75-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/75-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/75.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/75.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/75.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/75.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/750.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/750.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/750.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/750.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/751.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/751.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/751.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/751.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/752.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/752.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/752.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/752.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/753.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/753.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/753.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/753.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/754.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/754.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/754.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/754.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/755.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/755.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/755.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/755.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/756.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/756.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/756.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/756.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/757.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/757.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/757.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/757.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/758.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/758.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/758.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/758.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/759.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/759.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/759.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/759.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/76-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/76-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/76-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/76-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/76.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/76.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/76.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/76.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/760.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/760.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/760.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/760.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/761.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/761.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/761.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/761.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/762.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/762.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/762.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/762.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/763.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/763.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/763.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/763.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/764.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/764.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/764.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/764.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/765.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/765.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/765.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/765.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/766.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/766.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/766.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/766.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/767.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/767.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/767.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/767.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/768.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/768.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/768.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/768.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/769.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/769.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/769.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/769.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/77.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/77.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/77.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/77.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/770.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/770.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/770.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/770.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/771.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/771.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/771.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/771.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/772.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/772.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/772.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/772.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/773.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/773.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/773.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/773.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/774-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/774-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/774-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/774-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/774-10.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/774-10.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/774-10.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/774-10.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/774-11.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/774-11.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/774-11.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/774-11.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/774-12.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/774-12.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/774-12.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/774-12.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/774-13.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/774-13.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/774-13.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/774-13.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/774-2.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/774-2.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/774-2.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/774-2.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/774-3.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/774-3.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/774-3.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/774-3.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/774-4.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/774-4.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/774-4.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/774-4.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/774-5.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/774-5.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/774-5.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/774-5.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/774-6.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/774-6.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/774-6.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/774-6.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/774-7.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/774-7.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/774-7.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/774-7.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/774-8.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/774-8.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/774-8.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/774-8.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/774-9.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/774-9.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/774-9.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/774-9.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/774.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/774.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/774.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/774.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/775.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/775.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/775.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/775.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/776.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/776.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/776.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/776.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/777.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/777.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/777.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/777.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/778.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/778.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/778.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/778.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/779.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/779.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/779.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/779.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/78.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/78.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/78.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/78.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/780.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/780.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/780.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/780.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/781.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/781.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/781.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/781.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/782.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/782.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/782.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/782.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/783.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/783.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/783.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/783.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/784.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/784.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/784.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/784.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/785.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/785.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/785.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/785.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/786.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/786.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/786.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/786.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/787.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/787.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/787.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/787.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/788.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/788.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/788.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/788.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/789.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/789.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/789.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/789.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/79.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/79.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/79.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/79.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/790.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/790.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/790.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/790.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/791.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/791.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/791.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/791.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/792.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/792.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/792.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/792.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/793.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/793.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/793.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/793.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/794.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/794.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/794.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/794.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/795.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/795.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/795.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/795.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/796.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/796.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/796.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/796.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/797.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/797.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/797.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/797.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/798.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/798.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/798.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/798.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/799.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/799.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/799.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/799.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/8.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/8.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/8.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/8.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/80-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/80-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/80-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/80-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/80.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/80.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/80.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/80.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/800-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/800-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/800-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/800-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/800-2.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/800-2.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/800-2.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/800-2.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/800-3.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/800-3.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/800-3.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/800-3.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/800.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/800.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/800.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/800.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/801-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/801-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/801-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/801-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/801.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/801.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/801.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/801.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/802.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/802.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/802.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/802.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/803.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/803.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/803.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/803.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/804.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/804.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/804.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/804.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/805.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/805.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/805.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/805.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/806.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/806.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/806.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/806.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/807.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/807.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/807.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/807.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/81.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/81.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/81.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/81.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/82.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/82.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/82.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/82.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/83.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/83.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/83.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/83.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/84.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/84.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/84.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/84.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/85.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/85.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/85.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/85.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/86.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/86.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/86.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/86.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/87.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/87.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/87.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/87.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/88-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/88-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/88-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/88-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/88.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/88.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/88.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/88.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/89-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/89-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/89-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/89-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/89.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/89.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/89.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/89.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/9-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/9-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/9-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/9-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/9.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/9.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/9.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/9.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/90.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/90.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/90.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/90.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/91.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/91.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/91.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/91.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/92.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/92.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/92.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/92.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/93.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/93.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/93.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/93.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/94-1.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/94-1.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/94-1.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/94-1.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/94.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/94.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/94.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/94.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/95.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/95.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/95.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/95.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/96.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/96.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/96.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/96.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/97.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/97.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/97.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/97.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/98.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/98.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/98.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/98.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/99.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/99.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/99.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/99.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/99b.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/99b.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/99b.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/99b.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/_.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/_.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/_.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/_.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/egg.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/egg.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/egg.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/egg.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/empty.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/empty.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/empty.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/empty.png diff --git a/pk3DS/Resources/img/Pokemon Sprites/unknown.png b/pk3DS.WinForms/Resources/img/Pokemon Sprites/unknown.png similarity index 100% rename from pk3DS/Resources/img/Pokemon Sprites/unknown.png rename to pk3DS.WinForms/Resources/img/Pokemon Sprites/unknown.png diff --git a/pk3DS/Resources/img/T1.png b/pk3DS.WinForms/Resources/img/T1.png similarity index 100% rename from pk3DS/Resources/img/T1.png rename to pk3DS.WinForms/Resources/img/T1.png diff --git a/pk3DS/Resources/img/T2.png b/pk3DS.WinForms/Resources/img/T2.png similarity index 100% rename from pk3DS/Resources/img/T2.png rename to pk3DS.WinForms/Resources/img/T2.png diff --git a/pk3DS/Resources/img/W.png b/pk3DS.WinForms/Resources/img/W.png similarity index 100% rename from pk3DS/Resources/img/W.png rename to pk3DS.WinForms/Resources/img/W.png diff --git a/pk3DS/Resources/img/fly.png b/pk3DS.WinForms/Resources/img/fly.png similarity index 100% rename from pk3DS/Resources/img/fly.png rename to pk3DS.WinForms/Resources/img/fly.png diff --git a/pk3DS/Resources/img/item/helditem.png b/pk3DS.WinForms/Resources/img/item/helditem.png similarity index 100% rename from pk3DS/Resources/img/item/helditem.png rename to pk3DS.WinForms/Resources/img/item/helditem.png diff --git a/pk3DS/Resources/img/item/item_1.png b/pk3DS.WinForms/Resources/img/item/item_1.png similarity index 100% rename from pk3DS/Resources/img/item/item_1.png rename to pk3DS.WinForms/Resources/img/item/item_1.png diff --git a/pk3DS/Resources/img/item/item_10.png b/pk3DS.WinForms/Resources/img/item/item_10.png similarity index 100% rename from pk3DS/Resources/img/item/item_10.png rename to pk3DS.WinForms/Resources/img/item/item_10.png diff --git a/pk3DS/Resources/img/item/item_100.png b/pk3DS.WinForms/Resources/img/item/item_100.png similarity index 100% rename from pk3DS/Resources/img/item/item_100.png rename to pk3DS.WinForms/Resources/img/item/item_100.png diff --git a/pk3DS/Resources/img/item/item_101.png b/pk3DS.WinForms/Resources/img/item/item_101.png similarity index 100% rename from pk3DS/Resources/img/item/item_101.png rename to pk3DS.WinForms/Resources/img/item/item_101.png diff --git a/pk3DS/Resources/img/item/item_102.png b/pk3DS.WinForms/Resources/img/item/item_102.png similarity index 100% rename from pk3DS/Resources/img/item/item_102.png rename to pk3DS.WinForms/Resources/img/item/item_102.png diff --git a/pk3DS/Resources/img/item/item_103.png b/pk3DS.WinForms/Resources/img/item/item_103.png similarity index 100% rename from pk3DS/Resources/img/item/item_103.png rename to pk3DS.WinForms/Resources/img/item/item_103.png diff --git a/pk3DS/Resources/img/item/item_104.png b/pk3DS.WinForms/Resources/img/item/item_104.png similarity index 100% rename from pk3DS/Resources/img/item/item_104.png rename to pk3DS.WinForms/Resources/img/item/item_104.png diff --git a/pk3DS/Resources/img/item/item_105.png b/pk3DS.WinForms/Resources/img/item/item_105.png similarity index 100% rename from pk3DS/Resources/img/item/item_105.png rename to pk3DS.WinForms/Resources/img/item/item_105.png diff --git a/pk3DS/Resources/img/item/item_106.png b/pk3DS.WinForms/Resources/img/item/item_106.png similarity index 100% rename from pk3DS/Resources/img/item/item_106.png rename to pk3DS.WinForms/Resources/img/item/item_106.png diff --git a/pk3DS/Resources/img/item/item_107.png b/pk3DS.WinForms/Resources/img/item/item_107.png similarity index 100% rename from pk3DS/Resources/img/item/item_107.png rename to pk3DS.WinForms/Resources/img/item/item_107.png diff --git a/pk3DS/Resources/img/item/item_108.png b/pk3DS.WinForms/Resources/img/item/item_108.png similarity index 100% rename from pk3DS/Resources/img/item/item_108.png rename to pk3DS.WinForms/Resources/img/item/item_108.png diff --git a/pk3DS/Resources/img/item/item_109.png b/pk3DS.WinForms/Resources/img/item/item_109.png similarity index 100% rename from pk3DS/Resources/img/item/item_109.png rename to pk3DS.WinForms/Resources/img/item/item_109.png diff --git a/pk3DS/Resources/img/item/item_11.png b/pk3DS.WinForms/Resources/img/item/item_11.png similarity index 100% rename from pk3DS/Resources/img/item/item_11.png rename to pk3DS.WinForms/Resources/img/item/item_11.png diff --git a/pk3DS/Resources/img/item/item_110.png b/pk3DS.WinForms/Resources/img/item/item_110.png similarity index 100% rename from pk3DS/Resources/img/item/item_110.png rename to pk3DS.WinForms/Resources/img/item/item_110.png diff --git a/pk3DS/Resources/img/item/item_112.png b/pk3DS.WinForms/Resources/img/item/item_112.png similarity index 100% rename from pk3DS/Resources/img/item/item_112.png rename to pk3DS.WinForms/Resources/img/item/item_112.png diff --git a/pk3DS/Resources/img/item/item_116.png b/pk3DS.WinForms/Resources/img/item/item_116.png similarity index 100% rename from pk3DS/Resources/img/item/item_116.png rename to pk3DS.WinForms/Resources/img/item/item_116.png diff --git a/pk3DS/Resources/img/item/item_117.png b/pk3DS.WinForms/Resources/img/item/item_117.png similarity index 100% rename from pk3DS/Resources/img/item/item_117.png rename to pk3DS.WinForms/Resources/img/item/item_117.png diff --git a/pk3DS/Resources/img/item/item_118.png b/pk3DS.WinForms/Resources/img/item/item_118.png similarity index 100% rename from pk3DS/Resources/img/item/item_118.png rename to pk3DS.WinForms/Resources/img/item/item_118.png diff --git a/pk3DS/Resources/img/item/item_119.png b/pk3DS.WinForms/Resources/img/item/item_119.png similarity index 100% rename from pk3DS/Resources/img/item/item_119.png rename to pk3DS.WinForms/Resources/img/item/item_119.png diff --git a/pk3DS/Resources/img/item/item_12.png b/pk3DS.WinForms/Resources/img/item/item_12.png similarity index 100% rename from pk3DS/Resources/img/item/item_12.png rename to pk3DS.WinForms/Resources/img/item/item_12.png diff --git a/pk3DS/Resources/img/item/item_13.png b/pk3DS.WinForms/Resources/img/item/item_13.png similarity index 100% rename from pk3DS/Resources/img/item/item_13.png rename to pk3DS.WinForms/Resources/img/item/item_13.png diff --git a/pk3DS/Resources/img/item/item_134.png b/pk3DS.WinForms/Resources/img/item/item_134.png similarity index 100% rename from pk3DS/Resources/img/item/item_134.png rename to pk3DS.WinForms/Resources/img/item/item_134.png diff --git a/pk3DS/Resources/img/item/item_135.png b/pk3DS.WinForms/Resources/img/item/item_135.png similarity index 100% rename from pk3DS/Resources/img/item/item_135.png rename to pk3DS.WinForms/Resources/img/item/item_135.png diff --git a/pk3DS/Resources/img/item/item_136.png b/pk3DS.WinForms/Resources/img/item/item_136.png similarity index 100% rename from pk3DS/Resources/img/item/item_136.png rename to pk3DS.WinForms/Resources/img/item/item_136.png diff --git a/pk3DS/Resources/img/item/item_14.png b/pk3DS.WinForms/Resources/img/item/item_14.png similarity index 100% rename from pk3DS/Resources/img/item/item_14.png rename to pk3DS.WinForms/Resources/img/item/item_14.png diff --git a/pk3DS/Resources/img/item/item_149.png b/pk3DS.WinForms/Resources/img/item/item_149.png similarity index 100% rename from pk3DS/Resources/img/item/item_149.png rename to pk3DS.WinForms/Resources/img/item/item_149.png diff --git a/pk3DS/Resources/img/item/item_15.png b/pk3DS.WinForms/Resources/img/item/item_15.png similarity index 100% rename from pk3DS/Resources/img/item/item_15.png rename to pk3DS.WinForms/Resources/img/item/item_15.png diff --git a/pk3DS/Resources/img/item/item_150.png b/pk3DS.WinForms/Resources/img/item/item_150.png similarity index 100% rename from pk3DS/Resources/img/item/item_150.png rename to pk3DS.WinForms/Resources/img/item/item_150.png diff --git a/pk3DS/Resources/img/item/item_151.png b/pk3DS.WinForms/Resources/img/item/item_151.png similarity index 100% rename from pk3DS/Resources/img/item/item_151.png rename to pk3DS.WinForms/Resources/img/item/item_151.png diff --git a/pk3DS/Resources/img/item/item_152.png b/pk3DS.WinForms/Resources/img/item/item_152.png similarity index 100% rename from pk3DS/Resources/img/item/item_152.png rename to pk3DS.WinForms/Resources/img/item/item_152.png diff --git a/pk3DS/Resources/img/item/item_153.png b/pk3DS.WinForms/Resources/img/item/item_153.png similarity index 100% rename from pk3DS/Resources/img/item/item_153.png rename to pk3DS.WinForms/Resources/img/item/item_153.png diff --git a/pk3DS/Resources/img/item/item_154.png b/pk3DS.WinForms/Resources/img/item/item_154.png similarity index 100% rename from pk3DS/Resources/img/item/item_154.png rename to pk3DS.WinForms/Resources/img/item/item_154.png diff --git a/pk3DS/Resources/img/item/item_155.png b/pk3DS.WinForms/Resources/img/item/item_155.png similarity index 100% rename from pk3DS/Resources/img/item/item_155.png rename to pk3DS.WinForms/Resources/img/item/item_155.png diff --git a/pk3DS/Resources/img/item/item_156.png b/pk3DS.WinForms/Resources/img/item/item_156.png similarity index 100% rename from pk3DS/Resources/img/item/item_156.png rename to pk3DS.WinForms/Resources/img/item/item_156.png diff --git a/pk3DS/Resources/img/item/item_157.png b/pk3DS.WinForms/Resources/img/item/item_157.png similarity index 100% rename from pk3DS/Resources/img/item/item_157.png rename to pk3DS.WinForms/Resources/img/item/item_157.png diff --git a/pk3DS/Resources/img/item/item_158.png b/pk3DS.WinForms/Resources/img/item/item_158.png similarity index 100% rename from pk3DS/Resources/img/item/item_158.png rename to pk3DS.WinForms/Resources/img/item/item_158.png diff --git a/pk3DS/Resources/img/item/item_159.png b/pk3DS.WinForms/Resources/img/item/item_159.png similarity index 100% rename from pk3DS/Resources/img/item/item_159.png rename to pk3DS.WinForms/Resources/img/item/item_159.png diff --git a/pk3DS/Resources/img/item/item_16.png b/pk3DS.WinForms/Resources/img/item/item_16.png similarity index 100% rename from pk3DS/Resources/img/item/item_16.png rename to pk3DS.WinForms/Resources/img/item/item_16.png diff --git a/pk3DS/Resources/img/item/item_160.png b/pk3DS.WinForms/Resources/img/item/item_160.png similarity index 100% rename from pk3DS/Resources/img/item/item_160.png rename to pk3DS.WinForms/Resources/img/item/item_160.png diff --git a/pk3DS/Resources/img/item/item_161.png b/pk3DS.WinForms/Resources/img/item/item_161.png similarity index 100% rename from pk3DS/Resources/img/item/item_161.png rename to pk3DS.WinForms/Resources/img/item/item_161.png diff --git a/pk3DS/Resources/img/item/item_162.png b/pk3DS.WinForms/Resources/img/item/item_162.png similarity index 100% rename from pk3DS/Resources/img/item/item_162.png rename to pk3DS.WinForms/Resources/img/item/item_162.png diff --git a/pk3DS/Resources/img/item/item_163.png b/pk3DS.WinForms/Resources/img/item/item_163.png similarity index 100% rename from pk3DS/Resources/img/item/item_163.png rename to pk3DS.WinForms/Resources/img/item/item_163.png diff --git a/pk3DS/Resources/img/item/item_164.png b/pk3DS.WinForms/Resources/img/item/item_164.png similarity index 100% rename from pk3DS/Resources/img/item/item_164.png rename to pk3DS.WinForms/Resources/img/item/item_164.png diff --git a/pk3DS/Resources/img/item/item_165.png b/pk3DS.WinForms/Resources/img/item/item_165.png similarity index 100% rename from pk3DS/Resources/img/item/item_165.png rename to pk3DS.WinForms/Resources/img/item/item_165.png diff --git a/pk3DS/Resources/img/item/item_166.png b/pk3DS.WinForms/Resources/img/item/item_166.png similarity index 100% rename from pk3DS/Resources/img/item/item_166.png rename to pk3DS.WinForms/Resources/img/item/item_166.png diff --git a/pk3DS/Resources/img/item/item_167.png b/pk3DS.WinForms/Resources/img/item/item_167.png similarity index 100% rename from pk3DS/Resources/img/item/item_167.png rename to pk3DS.WinForms/Resources/img/item/item_167.png diff --git a/pk3DS/Resources/img/item/item_168.png b/pk3DS.WinForms/Resources/img/item/item_168.png similarity index 100% rename from pk3DS/Resources/img/item/item_168.png rename to pk3DS.WinForms/Resources/img/item/item_168.png diff --git a/pk3DS/Resources/img/item/item_169.png b/pk3DS.WinForms/Resources/img/item/item_169.png similarity index 100% rename from pk3DS/Resources/img/item/item_169.png rename to pk3DS.WinForms/Resources/img/item/item_169.png diff --git a/pk3DS/Resources/img/item/item_17.png b/pk3DS.WinForms/Resources/img/item/item_17.png similarity index 100% rename from pk3DS/Resources/img/item/item_17.png rename to pk3DS.WinForms/Resources/img/item/item_17.png diff --git a/pk3DS/Resources/img/item/item_170.png b/pk3DS.WinForms/Resources/img/item/item_170.png similarity index 100% rename from pk3DS/Resources/img/item/item_170.png rename to pk3DS.WinForms/Resources/img/item/item_170.png diff --git a/pk3DS/Resources/img/item/item_171.png b/pk3DS.WinForms/Resources/img/item/item_171.png similarity index 100% rename from pk3DS/Resources/img/item/item_171.png rename to pk3DS.WinForms/Resources/img/item/item_171.png diff --git a/pk3DS/Resources/img/item/item_172.png b/pk3DS.WinForms/Resources/img/item/item_172.png similarity index 100% rename from pk3DS/Resources/img/item/item_172.png rename to pk3DS.WinForms/Resources/img/item/item_172.png diff --git a/pk3DS/Resources/img/item/item_173.png b/pk3DS.WinForms/Resources/img/item/item_173.png similarity index 100% rename from pk3DS/Resources/img/item/item_173.png rename to pk3DS.WinForms/Resources/img/item/item_173.png diff --git a/pk3DS/Resources/img/item/item_174.png b/pk3DS.WinForms/Resources/img/item/item_174.png similarity index 100% rename from pk3DS/Resources/img/item/item_174.png rename to pk3DS.WinForms/Resources/img/item/item_174.png diff --git a/pk3DS/Resources/img/item/item_175.png b/pk3DS.WinForms/Resources/img/item/item_175.png similarity index 100% rename from pk3DS/Resources/img/item/item_175.png rename to pk3DS.WinForms/Resources/img/item/item_175.png diff --git a/pk3DS/Resources/img/item/item_176.png b/pk3DS.WinForms/Resources/img/item/item_176.png similarity index 100% rename from pk3DS/Resources/img/item/item_176.png rename to pk3DS.WinForms/Resources/img/item/item_176.png diff --git a/pk3DS/Resources/img/item/item_177.png b/pk3DS.WinForms/Resources/img/item/item_177.png similarity index 100% rename from pk3DS/Resources/img/item/item_177.png rename to pk3DS.WinForms/Resources/img/item/item_177.png diff --git a/pk3DS/Resources/img/item/item_178.png b/pk3DS.WinForms/Resources/img/item/item_178.png similarity index 100% rename from pk3DS/Resources/img/item/item_178.png rename to pk3DS.WinForms/Resources/img/item/item_178.png diff --git a/pk3DS/Resources/img/item/item_179.png b/pk3DS.WinForms/Resources/img/item/item_179.png similarity index 100% rename from pk3DS/Resources/img/item/item_179.png rename to pk3DS.WinForms/Resources/img/item/item_179.png diff --git a/pk3DS/Resources/img/item/item_18.png b/pk3DS.WinForms/Resources/img/item/item_18.png similarity index 100% rename from pk3DS/Resources/img/item/item_18.png rename to pk3DS.WinForms/Resources/img/item/item_18.png diff --git a/pk3DS/Resources/img/item/item_180.png b/pk3DS.WinForms/Resources/img/item/item_180.png similarity index 100% rename from pk3DS/Resources/img/item/item_180.png rename to pk3DS.WinForms/Resources/img/item/item_180.png diff --git a/pk3DS/Resources/img/item/item_181.png b/pk3DS.WinForms/Resources/img/item/item_181.png similarity index 100% rename from pk3DS/Resources/img/item/item_181.png rename to pk3DS.WinForms/Resources/img/item/item_181.png diff --git a/pk3DS/Resources/img/item/item_182.png b/pk3DS.WinForms/Resources/img/item/item_182.png similarity index 100% rename from pk3DS/Resources/img/item/item_182.png rename to pk3DS.WinForms/Resources/img/item/item_182.png diff --git a/pk3DS/Resources/img/item/item_183.png b/pk3DS.WinForms/Resources/img/item/item_183.png similarity index 100% rename from pk3DS/Resources/img/item/item_183.png rename to pk3DS.WinForms/Resources/img/item/item_183.png diff --git a/pk3DS/Resources/img/item/item_184.png b/pk3DS.WinForms/Resources/img/item/item_184.png similarity index 100% rename from pk3DS/Resources/img/item/item_184.png rename to pk3DS.WinForms/Resources/img/item/item_184.png diff --git a/pk3DS/Resources/img/item/item_185.png b/pk3DS.WinForms/Resources/img/item/item_185.png similarity index 100% rename from pk3DS/Resources/img/item/item_185.png rename to pk3DS.WinForms/Resources/img/item/item_185.png diff --git a/pk3DS/Resources/img/item/item_186.png b/pk3DS.WinForms/Resources/img/item/item_186.png similarity index 100% rename from pk3DS/Resources/img/item/item_186.png rename to pk3DS.WinForms/Resources/img/item/item_186.png diff --git a/pk3DS/Resources/img/item/item_187.png b/pk3DS.WinForms/Resources/img/item/item_187.png similarity index 100% rename from pk3DS/Resources/img/item/item_187.png rename to pk3DS.WinForms/Resources/img/item/item_187.png diff --git a/pk3DS/Resources/img/item/item_188.png b/pk3DS.WinForms/Resources/img/item/item_188.png similarity index 100% rename from pk3DS/Resources/img/item/item_188.png rename to pk3DS.WinForms/Resources/img/item/item_188.png diff --git a/pk3DS/Resources/img/item/item_189.png b/pk3DS.WinForms/Resources/img/item/item_189.png similarity index 100% rename from pk3DS/Resources/img/item/item_189.png rename to pk3DS.WinForms/Resources/img/item/item_189.png diff --git a/pk3DS/Resources/img/item/item_19.png b/pk3DS.WinForms/Resources/img/item/item_19.png similarity index 100% rename from pk3DS/Resources/img/item/item_19.png rename to pk3DS.WinForms/Resources/img/item/item_19.png diff --git a/pk3DS/Resources/img/item/item_190.png b/pk3DS.WinForms/Resources/img/item/item_190.png similarity index 100% rename from pk3DS/Resources/img/item/item_190.png rename to pk3DS.WinForms/Resources/img/item/item_190.png diff --git a/pk3DS/Resources/img/item/item_191.png b/pk3DS.WinForms/Resources/img/item/item_191.png similarity index 100% rename from pk3DS/Resources/img/item/item_191.png rename to pk3DS.WinForms/Resources/img/item/item_191.png diff --git a/pk3DS/Resources/img/item/item_192.png b/pk3DS.WinForms/Resources/img/item/item_192.png similarity index 100% rename from pk3DS/Resources/img/item/item_192.png rename to pk3DS.WinForms/Resources/img/item/item_192.png diff --git a/pk3DS/Resources/img/item/item_193.png b/pk3DS.WinForms/Resources/img/item/item_193.png similarity index 100% rename from pk3DS/Resources/img/item/item_193.png rename to pk3DS.WinForms/Resources/img/item/item_193.png diff --git a/pk3DS/Resources/img/item/item_194.png b/pk3DS.WinForms/Resources/img/item/item_194.png similarity index 100% rename from pk3DS/Resources/img/item/item_194.png rename to pk3DS.WinForms/Resources/img/item/item_194.png diff --git a/pk3DS/Resources/img/item/item_195.png b/pk3DS.WinForms/Resources/img/item/item_195.png similarity index 100% rename from pk3DS/Resources/img/item/item_195.png rename to pk3DS.WinForms/Resources/img/item/item_195.png diff --git a/pk3DS/Resources/img/item/item_196.png b/pk3DS.WinForms/Resources/img/item/item_196.png similarity index 100% rename from pk3DS/Resources/img/item/item_196.png rename to pk3DS.WinForms/Resources/img/item/item_196.png diff --git a/pk3DS/Resources/img/item/item_197.png b/pk3DS.WinForms/Resources/img/item/item_197.png similarity index 100% rename from pk3DS/Resources/img/item/item_197.png rename to pk3DS.WinForms/Resources/img/item/item_197.png diff --git a/pk3DS/Resources/img/item/item_198.png b/pk3DS.WinForms/Resources/img/item/item_198.png similarity index 100% rename from pk3DS/Resources/img/item/item_198.png rename to pk3DS.WinForms/Resources/img/item/item_198.png diff --git a/pk3DS/Resources/img/item/item_199.png b/pk3DS.WinForms/Resources/img/item/item_199.png similarity index 100% rename from pk3DS/Resources/img/item/item_199.png rename to pk3DS.WinForms/Resources/img/item/item_199.png diff --git a/pk3DS/Resources/img/item/item_2.png b/pk3DS.WinForms/Resources/img/item/item_2.png similarity index 100% rename from pk3DS/Resources/img/item/item_2.png rename to pk3DS.WinForms/Resources/img/item/item_2.png diff --git a/pk3DS/Resources/img/item/item_20.png b/pk3DS.WinForms/Resources/img/item/item_20.png similarity index 100% rename from pk3DS/Resources/img/item/item_20.png rename to pk3DS.WinForms/Resources/img/item/item_20.png diff --git a/pk3DS/Resources/img/item/item_200.png b/pk3DS.WinForms/Resources/img/item/item_200.png similarity index 100% rename from pk3DS/Resources/img/item/item_200.png rename to pk3DS.WinForms/Resources/img/item/item_200.png diff --git a/pk3DS/Resources/img/item/item_201.png b/pk3DS.WinForms/Resources/img/item/item_201.png similarity index 100% rename from pk3DS/Resources/img/item/item_201.png rename to pk3DS.WinForms/Resources/img/item/item_201.png diff --git a/pk3DS/Resources/img/item/item_202.png b/pk3DS.WinForms/Resources/img/item/item_202.png similarity index 100% rename from pk3DS/Resources/img/item/item_202.png rename to pk3DS.WinForms/Resources/img/item/item_202.png diff --git a/pk3DS/Resources/img/item/item_203.png b/pk3DS.WinForms/Resources/img/item/item_203.png similarity index 100% rename from pk3DS/Resources/img/item/item_203.png rename to pk3DS.WinForms/Resources/img/item/item_203.png diff --git a/pk3DS/Resources/img/item/item_204.png b/pk3DS.WinForms/Resources/img/item/item_204.png similarity index 100% rename from pk3DS/Resources/img/item/item_204.png rename to pk3DS.WinForms/Resources/img/item/item_204.png diff --git a/pk3DS/Resources/img/item/item_205.png b/pk3DS.WinForms/Resources/img/item/item_205.png similarity index 100% rename from pk3DS/Resources/img/item/item_205.png rename to pk3DS.WinForms/Resources/img/item/item_205.png diff --git a/pk3DS/Resources/img/item/item_206.png b/pk3DS.WinForms/Resources/img/item/item_206.png similarity index 100% rename from pk3DS/Resources/img/item/item_206.png rename to pk3DS.WinForms/Resources/img/item/item_206.png diff --git a/pk3DS/Resources/img/item/item_207.png b/pk3DS.WinForms/Resources/img/item/item_207.png similarity index 100% rename from pk3DS/Resources/img/item/item_207.png rename to pk3DS.WinForms/Resources/img/item/item_207.png diff --git a/pk3DS/Resources/img/item/item_208.png b/pk3DS.WinForms/Resources/img/item/item_208.png similarity index 100% rename from pk3DS/Resources/img/item/item_208.png rename to pk3DS.WinForms/Resources/img/item/item_208.png diff --git a/pk3DS/Resources/img/item/item_209.png b/pk3DS.WinForms/Resources/img/item/item_209.png similarity index 100% rename from pk3DS/Resources/img/item/item_209.png rename to pk3DS.WinForms/Resources/img/item/item_209.png diff --git a/pk3DS/Resources/img/item/item_21.png b/pk3DS.WinForms/Resources/img/item/item_21.png similarity index 100% rename from pk3DS/Resources/img/item/item_21.png rename to pk3DS.WinForms/Resources/img/item/item_21.png diff --git a/pk3DS/Resources/img/item/item_210.png b/pk3DS.WinForms/Resources/img/item/item_210.png similarity index 100% rename from pk3DS/Resources/img/item/item_210.png rename to pk3DS.WinForms/Resources/img/item/item_210.png diff --git a/pk3DS/Resources/img/item/item_211.png b/pk3DS.WinForms/Resources/img/item/item_211.png similarity index 100% rename from pk3DS/Resources/img/item/item_211.png rename to pk3DS.WinForms/Resources/img/item/item_211.png diff --git a/pk3DS/Resources/img/item/item_212.png b/pk3DS.WinForms/Resources/img/item/item_212.png similarity index 100% rename from pk3DS/Resources/img/item/item_212.png rename to pk3DS.WinForms/Resources/img/item/item_212.png diff --git a/pk3DS/Resources/img/item/item_213.png b/pk3DS.WinForms/Resources/img/item/item_213.png similarity index 100% rename from pk3DS/Resources/img/item/item_213.png rename to pk3DS.WinForms/Resources/img/item/item_213.png diff --git a/pk3DS/Resources/img/item/item_214.png b/pk3DS.WinForms/Resources/img/item/item_214.png similarity index 100% rename from pk3DS/Resources/img/item/item_214.png rename to pk3DS.WinForms/Resources/img/item/item_214.png diff --git a/pk3DS/Resources/img/item/item_215.png b/pk3DS.WinForms/Resources/img/item/item_215.png similarity index 100% rename from pk3DS/Resources/img/item/item_215.png rename to pk3DS.WinForms/Resources/img/item/item_215.png diff --git a/pk3DS/Resources/img/item/item_217.png b/pk3DS.WinForms/Resources/img/item/item_217.png similarity index 100% rename from pk3DS/Resources/img/item/item_217.png rename to pk3DS.WinForms/Resources/img/item/item_217.png diff --git a/pk3DS/Resources/img/item/item_218.png b/pk3DS.WinForms/Resources/img/item/item_218.png similarity index 100% rename from pk3DS/Resources/img/item/item_218.png rename to pk3DS.WinForms/Resources/img/item/item_218.png diff --git a/pk3DS/Resources/img/item/item_219.png b/pk3DS.WinForms/Resources/img/item/item_219.png similarity index 100% rename from pk3DS/Resources/img/item/item_219.png rename to pk3DS.WinForms/Resources/img/item/item_219.png diff --git a/pk3DS/Resources/img/item/item_22.png b/pk3DS.WinForms/Resources/img/item/item_22.png similarity index 100% rename from pk3DS/Resources/img/item/item_22.png rename to pk3DS.WinForms/Resources/img/item/item_22.png diff --git a/pk3DS/Resources/img/item/item_220.png b/pk3DS.WinForms/Resources/img/item/item_220.png similarity index 100% rename from pk3DS/Resources/img/item/item_220.png rename to pk3DS.WinForms/Resources/img/item/item_220.png diff --git a/pk3DS/Resources/img/item/item_221.png b/pk3DS.WinForms/Resources/img/item/item_221.png similarity index 100% rename from pk3DS/Resources/img/item/item_221.png rename to pk3DS.WinForms/Resources/img/item/item_221.png diff --git a/pk3DS/Resources/img/item/item_222.png b/pk3DS.WinForms/Resources/img/item/item_222.png similarity index 100% rename from pk3DS/Resources/img/item/item_222.png rename to pk3DS.WinForms/Resources/img/item/item_222.png diff --git a/pk3DS/Resources/img/item/item_223.png b/pk3DS.WinForms/Resources/img/item/item_223.png similarity index 100% rename from pk3DS/Resources/img/item/item_223.png rename to pk3DS.WinForms/Resources/img/item/item_223.png diff --git a/pk3DS/Resources/img/item/item_224.png b/pk3DS.WinForms/Resources/img/item/item_224.png similarity index 100% rename from pk3DS/Resources/img/item/item_224.png rename to pk3DS.WinForms/Resources/img/item/item_224.png diff --git a/pk3DS/Resources/img/item/item_225.png b/pk3DS.WinForms/Resources/img/item/item_225.png similarity index 100% rename from pk3DS/Resources/img/item/item_225.png rename to pk3DS.WinForms/Resources/img/item/item_225.png diff --git a/pk3DS/Resources/img/item/item_226.png b/pk3DS.WinForms/Resources/img/item/item_226.png similarity index 100% rename from pk3DS/Resources/img/item/item_226.png rename to pk3DS.WinForms/Resources/img/item/item_226.png diff --git a/pk3DS/Resources/img/item/item_227.png b/pk3DS.WinForms/Resources/img/item/item_227.png similarity index 100% rename from pk3DS/Resources/img/item/item_227.png rename to pk3DS.WinForms/Resources/img/item/item_227.png diff --git a/pk3DS/Resources/img/item/item_228.png b/pk3DS.WinForms/Resources/img/item/item_228.png similarity index 100% rename from pk3DS/Resources/img/item/item_228.png rename to pk3DS.WinForms/Resources/img/item/item_228.png diff --git a/pk3DS/Resources/img/item/item_229.png b/pk3DS.WinForms/Resources/img/item/item_229.png similarity index 100% rename from pk3DS/Resources/img/item/item_229.png rename to pk3DS.WinForms/Resources/img/item/item_229.png diff --git a/pk3DS/Resources/img/item/item_23.png b/pk3DS.WinForms/Resources/img/item/item_23.png similarity index 100% rename from pk3DS/Resources/img/item/item_23.png rename to pk3DS.WinForms/Resources/img/item/item_23.png diff --git a/pk3DS/Resources/img/item/item_230.png b/pk3DS.WinForms/Resources/img/item/item_230.png similarity index 100% rename from pk3DS/Resources/img/item/item_230.png rename to pk3DS.WinForms/Resources/img/item/item_230.png diff --git a/pk3DS/Resources/img/item/item_231.png b/pk3DS.WinForms/Resources/img/item/item_231.png similarity index 100% rename from pk3DS/Resources/img/item/item_231.png rename to pk3DS.WinForms/Resources/img/item/item_231.png diff --git a/pk3DS/Resources/img/item/item_232.png b/pk3DS.WinForms/Resources/img/item/item_232.png similarity index 100% rename from pk3DS/Resources/img/item/item_232.png rename to pk3DS.WinForms/Resources/img/item/item_232.png diff --git a/pk3DS/Resources/img/item/item_233.png b/pk3DS.WinForms/Resources/img/item/item_233.png similarity index 100% rename from pk3DS/Resources/img/item/item_233.png rename to pk3DS.WinForms/Resources/img/item/item_233.png diff --git a/pk3DS/Resources/img/item/item_234.png b/pk3DS.WinForms/Resources/img/item/item_234.png similarity index 100% rename from pk3DS/Resources/img/item/item_234.png rename to pk3DS.WinForms/Resources/img/item/item_234.png diff --git a/pk3DS/Resources/img/item/item_235.png b/pk3DS.WinForms/Resources/img/item/item_235.png similarity index 100% rename from pk3DS/Resources/img/item/item_235.png rename to pk3DS.WinForms/Resources/img/item/item_235.png diff --git a/pk3DS/Resources/img/item/item_236.png b/pk3DS.WinForms/Resources/img/item/item_236.png similarity index 100% rename from pk3DS/Resources/img/item/item_236.png rename to pk3DS.WinForms/Resources/img/item/item_236.png diff --git a/pk3DS/Resources/img/item/item_237.png b/pk3DS.WinForms/Resources/img/item/item_237.png similarity index 100% rename from pk3DS/Resources/img/item/item_237.png rename to pk3DS.WinForms/Resources/img/item/item_237.png diff --git a/pk3DS/Resources/img/item/item_238.png b/pk3DS.WinForms/Resources/img/item/item_238.png similarity index 100% rename from pk3DS/Resources/img/item/item_238.png rename to pk3DS.WinForms/Resources/img/item/item_238.png diff --git a/pk3DS/Resources/img/item/item_239.png b/pk3DS.WinForms/Resources/img/item/item_239.png similarity index 100% rename from pk3DS/Resources/img/item/item_239.png rename to pk3DS.WinForms/Resources/img/item/item_239.png diff --git a/pk3DS/Resources/img/item/item_24.png b/pk3DS.WinForms/Resources/img/item/item_24.png similarity index 100% rename from pk3DS/Resources/img/item/item_24.png rename to pk3DS.WinForms/Resources/img/item/item_24.png diff --git a/pk3DS/Resources/img/item/item_240.png b/pk3DS.WinForms/Resources/img/item/item_240.png similarity index 100% rename from pk3DS/Resources/img/item/item_240.png rename to pk3DS.WinForms/Resources/img/item/item_240.png diff --git a/pk3DS/Resources/img/item/item_241.png b/pk3DS.WinForms/Resources/img/item/item_241.png similarity index 100% rename from pk3DS/Resources/img/item/item_241.png rename to pk3DS.WinForms/Resources/img/item/item_241.png diff --git a/pk3DS/Resources/img/item/item_242.png b/pk3DS.WinForms/Resources/img/item/item_242.png similarity index 100% rename from pk3DS/Resources/img/item/item_242.png rename to pk3DS.WinForms/Resources/img/item/item_242.png diff --git a/pk3DS/Resources/img/item/item_243.png b/pk3DS.WinForms/Resources/img/item/item_243.png similarity index 100% rename from pk3DS/Resources/img/item/item_243.png rename to pk3DS.WinForms/Resources/img/item/item_243.png diff --git a/pk3DS/Resources/img/item/item_244.png b/pk3DS.WinForms/Resources/img/item/item_244.png similarity index 100% rename from pk3DS/Resources/img/item/item_244.png rename to pk3DS.WinForms/Resources/img/item/item_244.png diff --git a/pk3DS/Resources/img/item/item_245.png b/pk3DS.WinForms/Resources/img/item/item_245.png similarity index 100% rename from pk3DS/Resources/img/item/item_245.png rename to pk3DS.WinForms/Resources/img/item/item_245.png diff --git a/pk3DS/Resources/img/item/item_246.png b/pk3DS.WinForms/Resources/img/item/item_246.png similarity index 100% rename from pk3DS/Resources/img/item/item_246.png rename to pk3DS.WinForms/Resources/img/item/item_246.png diff --git a/pk3DS/Resources/img/item/item_247.png b/pk3DS.WinForms/Resources/img/item/item_247.png similarity index 100% rename from pk3DS/Resources/img/item/item_247.png rename to pk3DS.WinForms/Resources/img/item/item_247.png diff --git a/pk3DS/Resources/img/item/item_248.png b/pk3DS.WinForms/Resources/img/item/item_248.png similarity index 100% rename from pk3DS/Resources/img/item/item_248.png rename to pk3DS.WinForms/Resources/img/item/item_248.png diff --git a/pk3DS/Resources/img/item/item_249.png b/pk3DS.WinForms/Resources/img/item/item_249.png similarity index 100% rename from pk3DS/Resources/img/item/item_249.png rename to pk3DS.WinForms/Resources/img/item/item_249.png diff --git a/pk3DS/Resources/img/item/item_25.png b/pk3DS.WinForms/Resources/img/item/item_25.png similarity index 100% rename from pk3DS/Resources/img/item/item_25.png rename to pk3DS.WinForms/Resources/img/item/item_25.png diff --git a/pk3DS/Resources/img/item/item_250.png b/pk3DS.WinForms/Resources/img/item/item_250.png similarity index 100% rename from pk3DS/Resources/img/item/item_250.png rename to pk3DS.WinForms/Resources/img/item/item_250.png diff --git a/pk3DS/Resources/img/item/item_251.png b/pk3DS.WinForms/Resources/img/item/item_251.png similarity index 100% rename from pk3DS/Resources/img/item/item_251.png rename to pk3DS.WinForms/Resources/img/item/item_251.png diff --git a/pk3DS/Resources/img/item/item_252.png b/pk3DS.WinForms/Resources/img/item/item_252.png similarity index 100% rename from pk3DS/Resources/img/item/item_252.png rename to pk3DS.WinForms/Resources/img/item/item_252.png diff --git a/pk3DS/Resources/img/item/item_253.png b/pk3DS.WinForms/Resources/img/item/item_253.png similarity index 100% rename from pk3DS/Resources/img/item/item_253.png rename to pk3DS.WinForms/Resources/img/item/item_253.png diff --git a/pk3DS/Resources/img/item/item_254.png b/pk3DS.WinForms/Resources/img/item/item_254.png similarity index 100% rename from pk3DS/Resources/img/item/item_254.png rename to pk3DS.WinForms/Resources/img/item/item_254.png diff --git a/pk3DS/Resources/img/item/item_255.png b/pk3DS.WinForms/Resources/img/item/item_255.png similarity index 100% rename from pk3DS/Resources/img/item/item_255.png rename to pk3DS.WinForms/Resources/img/item/item_255.png diff --git a/pk3DS/Resources/img/item/item_256.png b/pk3DS.WinForms/Resources/img/item/item_256.png similarity index 100% rename from pk3DS/Resources/img/item/item_256.png rename to pk3DS.WinForms/Resources/img/item/item_256.png diff --git a/pk3DS/Resources/img/item/item_257.png b/pk3DS.WinForms/Resources/img/item/item_257.png similarity index 100% rename from pk3DS/Resources/img/item/item_257.png rename to pk3DS.WinForms/Resources/img/item/item_257.png diff --git a/pk3DS/Resources/img/item/item_258.png b/pk3DS.WinForms/Resources/img/item/item_258.png similarity index 100% rename from pk3DS/Resources/img/item/item_258.png rename to pk3DS.WinForms/Resources/img/item/item_258.png diff --git a/pk3DS/Resources/img/item/item_259.png b/pk3DS.WinForms/Resources/img/item/item_259.png similarity index 100% rename from pk3DS/Resources/img/item/item_259.png rename to pk3DS.WinForms/Resources/img/item/item_259.png diff --git a/pk3DS/Resources/img/item/item_26.png b/pk3DS.WinForms/Resources/img/item/item_26.png similarity index 100% rename from pk3DS/Resources/img/item/item_26.png rename to pk3DS.WinForms/Resources/img/item/item_26.png diff --git a/pk3DS/Resources/img/item/item_260.png b/pk3DS.WinForms/Resources/img/item/item_260.png similarity index 100% rename from pk3DS/Resources/img/item/item_260.png rename to pk3DS.WinForms/Resources/img/item/item_260.png diff --git a/pk3DS/Resources/img/item/item_261.png b/pk3DS.WinForms/Resources/img/item/item_261.png similarity index 100% rename from pk3DS/Resources/img/item/item_261.png rename to pk3DS.WinForms/Resources/img/item/item_261.png diff --git a/pk3DS/Resources/img/item/item_262.png b/pk3DS.WinForms/Resources/img/item/item_262.png similarity index 100% rename from pk3DS/Resources/img/item/item_262.png rename to pk3DS.WinForms/Resources/img/item/item_262.png diff --git a/pk3DS/Resources/img/item/item_263.png b/pk3DS.WinForms/Resources/img/item/item_263.png similarity index 100% rename from pk3DS/Resources/img/item/item_263.png rename to pk3DS.WinForms/Resources/img/item/item_263.png diff --git a/pk3DS/Resources/img/item/item_264.png b/pk3DS.WinForms/Resources/img/item/item_264.png similarity index 100% rename from pk3DS/Resources/img/item/item_264.png rename to pk3DS.WinForms/Resources/img/item/item_264.png diff --git a/pk3DS/Resources/img/item/item_265.png b/pk3DS.WinForms/Resources/img/item/item_265.png similarity index 100% rename from pk3DS/Resources/img/item/item_265.png rename to pk3DS.WinForms/Resources/img/item/item_265.png diff --git a/pk3DS/Resources/img/item/item_266.png b/pk3DS.WinForms/Resources/img/item/item_266.png similarity index 100% rename from pk3DS/Resources/img/item/item_266.png rename to pk3DS.WinForms/Resources/img/item/item_266.png diff --git a/pk3DS/Resources/img/item/item_267.png b/pk3DS.WinForms/Resources/img/item/item_267.png similarity index 100% rename from pk3DS/Resources/img/item/item_267.png rename to pk3DS.WinForms/Resources/img/item/item_267.png diff --git a/pk3DS/Resources/img/item/item_268.png b/pk3DS.WinForms/Resources/img/item/item_268.png similarity index 100% rename from pk3DS/Resources/img/item/item_268.png rename to pk3DS.WinForms/Resources/img/item/item_268.png diff --git a/pk3DS/Resources/img/item/item_269.png b/pk3DS.WinForms/Resources/img/item/item_269.png similarity index 100% rename from pk3DS/Resources/img/item/item_269.png rename to pk3DS.WinForms/Resources/img/item/item_269.png diff --git a/pk3DS/Resources/img/item/item_27.png b/pk3DS.WinForms/Resources/img/item/item_27.png similarity index 100% rename from pk3DS/Resources/img/item/item_27.png rename to pk3DS.WinForms/Resources/img/item/item_27.png diff --git a/pk3DS/Resources/img/item/item_270.png b/pk3DS.WinForms/Resources/img/item/item_270.png similarity index 100% rename from pk3DS/Resources/img/item/item_270.png rename to pk3DS.WinForms/Resources/img/item/item_270.png diff --git a/pk3DS/Resources/img/item/item_271.png b/pk3DS.WinForms/Resources/img/item/item_271.png similarity index 100% rename from pk3DS/Resources/img/item/item_271.png rename to pk3DS.WinForms/Resources/img/item/item_271.png diff --git a/pk3DS/Resources/img/item/item_272.png b/pk3DS.WinForms/Resources/img/item/item_272.png similarity index 100% rename from pk3DS/Resources/img/item/item_272.png rename to pk3DS.WinForms/Resources/img/item/item_272.png diff --git a/pk3DS/Resources/img/item/item_273.png b/pk3DS.WinForms/Resources/img/item/item_273.png similarity index 100% rename from pk3DS/Resources/img/item/item_273.png rename to pk3DS.WinForms/Resources/img/item/item_273.png diff --git a/pk3DS/Resources/img/item/item_274.png b/pk3DS.WinForms/Resources/img/item/item_274.png similarity index 100% rename from pk3DS/Resources/img/item/item_274.png rename to pk3DS.WinForms/Resources/img/item/item_274.png diff --git a/pk3DS/Resources/img/item/item_275.png b/pk3DS.WinForms/Resources/img/item/item_275.png similarity index 100% rename from pk3DS/Resources/img/item/item_275.png rename to pk3DS.WinForms/Resources/img/item/item_275.png diff --git a/pk3DS/Resources/img/item/item_276.png b/pk3DS.WinForms/Resources/img/item/item_276.png similarity index 100% rename from pk3DS/Resources/img/item/item_276.png rename to pk3DS.WinForms/Resources/img/item/item_276.png diff --git a/pk3DS/Resources/img/item/item_277.png b/pk3DS.WinForms/Resources/img/item/item_277.png similarity index 100% rename from pk3DS/Resources/img/item/item_277.png rename to pk3DS.WinForms/Resources/img/item/item_277.png diff --git a/pk3DS/Resources/img/item/item_278.png b/pk3DS.WinForms/Resources/img/item/item_278.png similarity index 100% rename from pk3DS/Resources/img/item/item_278.png rename to pk3DS.WinForms/Resources/img/item/item_278.png diff --git a/pk3DS/Resources/img/item/item_279.png b/pk3DS.WinForms/Resources/img/item/item_279.png similarity index 100% rename from pk3DS/Resources/img/item/item_279.png rename to pk3DS.WinForms/Resources/img/item/item_279.png diff --git a/pk3DS/Resources/img/item/item_28.png b/pk3DS.WinForms/Resources/img/item/item_28.png similarity index 100% rename from pk3DS/Resources/img/item/item_28.png rename to pk3DS.WinForms/Resources/img/item/item_28.png diff --git a/pk3DS/Resources/img/item/item_280.png b/pk3DS.WinForms/Resources/img/item/item_280.png similarity index 100% rename from pk3DS/Resources/img/item/item_280.png rename to pk3DS.WinForms/Resources/img/item/item_280.png diff --git a/pk3DS/Resources/img/item/item_281.png b/pk3DS.WinForms/Resources/img/item/item_281.png similarity index 100% rename from pk3DS/Resources/img/item/item_281.png rename to pk3DS.WinForms/Resources/img/item/item_281.png diff --git a/pk3DS/Resources/img/item/item_282.png b/pk3DS.WinForms/Resources/img/item/item_282.png similarity index 100% rename from pk3DS/Resources/img/item/item_282.png rename to pk3DS.WinForms/Resources/img/item/item_282.png diff --git a/pk3DS/Resources/img/item/item_283.png b/pk3DS.WinForms/Resources/img/item/item_283.png similarity index 100% rename from pk3DS/Resources/img/item/item_283.png rename to pk3DS.WinForms/Resources/img/item/item_283.png diff --git a/pk3DS/Resources/img/item/item_284.png b/pk3DS.WinForms/Resources/img/item/item_284.png similarity index 100% rename from pk3DS/Resources/img/item/item_284.png rename to pk3DS.WinForms/Resources/img/item/item_284.png diff --git a/pk3DS/Resources/img/item/item_285.png b/pk3DS.WinForms/Resources/img/item/item_285.png similarity index 100% rename from pk3DS/Resources/img/item/item_285.png rename to pk3DS.WinForms/Resources/img/item/item_285.png diff --git a/pk3DS/Resources/img/item/item_286.png b/pk3DS.WinForms/Resources/img/item/item_286.png similarity index 100% rename from pk3DS/Resources/img/item/item_286.png rename to pk3DS.WinForms/Resources/img/item/item_286.png diff --git a/pk3DS/Resources/img/item/item_287.png b/pk3DS.WinForms/Resources/img/item/item_287.png similarity index 100% rename from pk3DS/Resources/img/item/item_287.png rename to pk3DS.WinForms/Resources/img/item/item_287.png diff --git a/pk3DS/Resources/img/item/item_288.png b/pk3DS.WinForms/Resources/img/item/item_288.png similarity index 100% rename from pk3DS/Resources/img/item/item_288.png rename to pk3DS.WinForms/Resources/img/item/item_288.png diff --git a/pk3DS/Resources/img/item/item_289.png b/pk3DS.WinForms/Resources/img/item/item_289.png similarity index 100% rename from pk3DS/Resources/img/item/item_289.png rename to pk3DS.WinForms/Resources/img/item/item_289.png diff --git a/pk3DS/Resources/img/item/item_29.png b/pk3DS.WinForms/Resources/img/item/item_29.png similarity index 100% rename from pk3DS/Resources/img/item/item_29.png rename to pk3DS.WinForms/Resources/img/item/item_29.png diff --git a/pk3DS/Resources/img/item/item_290.png b/pk3DS.WinForms/Resources/img/item/item_290.png similarity index 100% rename from pk3DS/Resources/img/item/item_290.png rename to pk3DS.WinForms/Resources/img/item/item_290.png diff --git a/pk3DS/Resources/img/item/item_291.png b/pk3DS.WinForms/Resources/img/item/item_291.png similarity index 100% rename from pk3DS/Resources/img/item/item_291.png rename to pk3DS.WinForms/Resources/img/item/item_291.png diff --git a/pk3DS/Resources/img/item/item_292.png b/pk3DS.WinForms/Resources/img/item/item_292.png similarity index 100% rename from pk3DS/Resources/img/item/item_292.png rename to pk3DS.WinForms/Resources/img/item/item_292.png diff --git a/pk3DS/Resources/img/item/item_293.png b/pk3DS.WinForms/Resources/img/item/item_293.png similarity index 100% rename from pk3DS/Resources/img/item/item_293.png rename to pk3DS.WinForms/Resources/img/item/item_293.png diff --git a/pk3DS/Resources/img/item/item_294.png b/pk3DS.WinForms/Resources/img/item/item_294.png similarity index 100% rename from pk3DS/Resources/img/item/item_294.png rename to pk3DS.WinForms/Resources/img/item/item_294.png diff --git a/pk3DS/Resources/img/item/item_295.png b/pk3DS.WinForms/Resources/img/item/item_295.png similarity index 100% rename from pk3DS/Resources/img/item/item_295.png rename to pk3DS.WinForms/Resources/img/item/item_295.png diff --git a/pk3DS/Resources/img/item/item_296.png b/pk3DS.WinForms/Resources/img/item/item_296.png similarity index 100% rename from pk3DS/Resources/img/item/item_296.png rename to pk3DS.WinForms/Resources/img/item/item_296.png diff --git a/pk3DS/Resources/img/item/item_297.png b/pk3DS.WinForms/Resources/img/item/item_297.png similarity index 100% rename from pk3DS/Resources/img/item/item_297.png rename to pk3DS.WinForms/Resources/img/item/item_297.png diff --git a/pk3DS/Resources/img/item/item_298.png b/pk3DS.WinForms/Resources/img/item/item_298.png similarity index 100% rename from pk3DS/Resources/img/item/item_298.png rename to pk3DS.WinForms/Resources/img/item/item_298.png diff --git a/pk3DS/Resources/img/item/item_299.png b/pk3DS.WinForms/Resources/img/item/item_299.png similarity index 100% rename from pk3DS/Resources/img/item/item_299.png rename to pk3DS.WinForms/Resources/img/item/item_299.png diff --git a/pk3DS/Resources/img/item/item_3.png b/pk3DS.WinForms/Resources/img/item/item_3.png similarity index 100% rename from pk3DS/Resources/img/item/item_3.png rename to pk3DS.WinForms/Resources/img/item/item_3.png diff --git a/pk3DS/Resources/img/item/item_30.png b/pk3DS.WinForms/Resources/img/item/item_30.png similarity index 100% rename from pk3DS/Resources/img/item/item_30.png rename to pk3DS.WinForms/Resources/img/item/item_30.png diff --git a/pk3DS/Resources/img/item/item_300.png b/pk3DS.WinForms/Resources/img/item/item_300.png similarity index 100% rename from pk3DS/Resources/img/item/item_300.png rename to pk3DS.WinForms/Resources/img/item/item_300.png diff --git a/pk3DS/Resources/img/item/item_301.png b/pk3DS.WinForms/Resources/img/item/item_301.png similarity index 100% rename from pk3DS/Resources/img/item/item_301.png rename to pk3DS.WinForms/Resources/img/item/item_301.png diff --git a/pk3DS/Resources/img/item/item_302.png b/pk3DS.WinForms/Resources/img/item/item_302.png similarity index 100% rename from pk3DS/Resources/img/item/item_302.png rename to pk3DS.WinForms/Resources/img/item/item_302.png diff --git a/pk3DS/Resources/img/item/item_303.png b/pk3DS.WinForms/Resources/img/item/item_303.png similarity index 100% rename from pk3DS/Resources/img/item/item_303.png rename to pk3DS.WinForms/Resources/img/item/item_303.png diff --git a/pk3DS/Resources/img/item/item_304.png b/pk3DS.WinForms/Resources/img/item/item_304.png similarity index 100% rename from pk3DS/Resources/img/item/item_304.png rename to pk3DS.WinForms/Resources/img/item/item_304.png diff --git a/pk3DS/Resources/img/item/item_305.png b/pk3DS.WinForms/Resources/img/item/item_305.png similarity index 100% rename from pk3DS/Resources/img/item/item_305.png rename to pk3DS.WinForms/Resources/img/item/item_305.png diff --git a/pk3DS/Resources/img/item/item_306.png b/pk3DS.WinForms/Resources/img/item/item_306.png similarity index 100% rename from pk3DS/Resources/img/item/item_306.png rename to pk3DS.WinForms/Resources/img/item/item_306.png diff --git a/pk3DS/Resources/img/item/item_307.png b/pk3DS.WinForms/Resources/img/item/item_307.png similarity index 100% rename from pk3DS/Resources/img/item/item_307.png rename to pk3DS.WinForms/Resources/img/item/item_307.png diff --git a/pk3DS/Resources/img/item/item_308.png b/pk3DS.WinForms/Resources/img/item/item_308.png similarity index 100% rename from pk3DS/Resources/img/item/item_308.png rename to pk3DS.WinForms/Resources/img/item/item_308.png diff --git a/pk3DS/Resources/img/item/item_309.png b/pk3DS.WinForms/Resources/img/item/item_309.png similarity index 100% rename from pk3DS/Resources/img/item/item_309.png rename to pk3DS.WinForms/Resources/img/item/item_309.png diff --git a/pk3DS/Resources/img/item/item_31.png b/pk3DS.WinForms/Resources/img/item/item_31.png similarity index 100% rename from pk3DS/Resources/img/item/item_31.png rename to pk3DS.WinForms/Resources/img/item/item_31.png diff --git a/pk3DS/Resources/img/item/item_310.png b/pk3DS.WinForms/Resources/img/item/item_310.png similarity index 100% rename from pk3DS/Resources/img/item/item_310.png rename to pk3DS.WinForms/Resources/img/item/item_310.png diff --git a/pk3DS/Resources/img/item/item_311.png b/pk3DS.WinForms/Resources/img/item/item_311.png similarity index 100% rename from pk3DS/Resources/img/item/item_311.png rename to pk3DS.WinForms/Resources/img/item/item_311.png diff --git a/pk3DS/Resources/img/item/item_312.png b/pk3DS.WinForms/Resources/img/item/item_312.png similarity index 100% rename from pk3DS/Resources/img/item/item_312.png rename to pk3DS.WinForms/Resources/img/item/item_312.png diff --git a/pk3DS/Resources/img/item/item_313.png b/pk3DS.WinForms/Resources/img/item/item_313.png similarity index 100% rename from pk3DS/Resources/img/item/item_313.png rename to pk3DS.WinForms/Resources/img/item/item_313.png diff --git a/pk3DS/Resources/img/item/item_314.png b/pk3DS.WinForms/Resources/img/item/item_314.png similarity index 100% rename from pk3DS/Resources/img/item/item_314.png rename to pk3DS.WinForms/Resources/img/item/item_314.png diff --git a/pk3DS/Resources/img/item/item_315.png b/pk3DS.WinForms/Resources/img/item/item_315.png similarity index 100% rename from pk3DS/Resources/img/item/item_315.png rename to pk3DS.WinForms/Resources/img/item/item_315.png diff --git a/pk3DS/Resources/img/item/item_316.png b/pk3DS.WinForms/Resources/img/item/item_316.png similarity index 100% rename from pk3DS/Resources/img/item/item_316.png rename to pk3DS.WinForms/Resources/img/item/item_316.png diff --git a/pk3DS/Resources/img/item/item_317.png b/pk3DS.WinForms/Resources/img/item/item_317.png similarity index 100% rename from pk3DS/Resources/img/item/item_317.png rename to pk3DS.WinForms/Resources/img/item/item_317.png diff --git a/pk3DS/Resources/img/item/item_318.png b/pk3DS.WinForms/Resources/img/item/item_318.png similarity index 100% rename from pk3DS/Resources/img/item/item_318.png rename to pk3DS.WinForms/Resources/img/item/item_318.png diff --git a/pk3DS/Resources/img/item/item_319.png b/pk3DS.WinForms/Resources/img/item/item_319.png similarity index 100% rename from pk3DS/Resources/img/item/item_319.png rename to pk3DS.WinForms/Resources/img/item/item_319.png diff --git a/pk3DS/Resources/img/item/item_32.png b/pk3DS.WinForms/Resources/img/item/item_32.png similarity index 100% rename from pk3DS/Resources/img/item/item_32.png rename to pk3DS.WinForms/Resources/img/item/item_32.png diff --git a/pk3DS/Resources/img/item/item_320.png b/pk3DS.WinForms/Resources/img/item/item_320.png similarity index 100% rename from pk3DS/Resources/img/item/item_320.png rename to pk3DS.WinForms/Resources/img/item/item_320.png diff --git a/pk3DS/Resources/img/item/item_321.png b/pk3DS.WinForms/Resources/img/item/item_321.png similarity index 100% rename from pk3DS/Resources/img/item/item_321.png rename to pk3DS.WinForms/Resources/img/item/item_321.png diff --git a/pk3DS/Resources/img/item/item_322.png b/pk3DS.WinForms/Resources/img/item/item_322.png similarity index 100% rename from pk3DS/Resources/img/item/item_322.png rename to pk3DS.WinForms/Resources/img/item/item_322.png diff --git a/pk3DS/Resources/img/item/item_323.png b/pk3DS.WinForms/Resources/img/item/item_323.png similarity index 100% rename from pk3DS/Resources/img/item/item_323.png rename to pk3DS.WinForms/Resources/img/item/item_323.png diff --git a/pk3DS/Resources/img/item/item_324.png b/pk3DS.WinForms/Resources/img/item/item_324.png similarity index 100% rename from pk3DS/Resources/img/item/item_324.png rename to pk3DS.WinForms/Resources/img/item/item_324.png diff --git a/pk3DS/Resources/img/item/item_325.png b/pk3DS.WinForms/Resources/img/item/item_325.png similarity index 100% rename from pk3DS/Resources/img/item/item_325.png rename to pk3DS.WinForms/Resources/img/item/item_325.png diff --git a/pk3DS/Resources/img/item/item_326.png b/pk3DS.WinForms/Resources/img/item/item_326.png similarity index 100% rename from pk3DS/Resources/img/item/item_326.png rename to pk3DS.WinForms/Resources/img/item/item_326.png diff --git a/pk3DS/Resources/img/item/item_327.png b/pk3DS.WinForms/Resources/img/item/item_327.png similarity index 100% rename from pk3DS/Resources/img/item/item_327.png rename to pk3DS.WinForms/Resources/img/item/item_327.png diff --git a/pk3DS/Resources/img/item/item_33.png b/pk3DS.WinForms/Resources/img/item/item_33.png similarity index 100% rename from pk3DS/Resources/img/item/item_33.png rename to pk3DS.WinForms/Resources/img/item/item_33.png diff --git a/pk3DS/Resources/img/item/item_34.png b/pk3DS.WinForms/Resources/img/item/item_34.png similarity index 100% rename from pk3DS/Resources/img/item/item_34.png rename to pk3DS.WinForms/Resources/img/item/item_34.png diff --git a/pk3DS/Resources/img/item/item_35.png b/pk3DS.WinForms/Resources/img/item/item_35.png similarity index 100% rename from pk3DS/Resources/img/item/item_35.png rename to pk3DS.WinForms/Resources/img/item/item_35.png diff --git a/pk3DS/Resources/img/item/item_36.png b/pk3DS.WinForms/Resources/img/item/item_36.png similarity index 100% rename from pk3DS/Resources/img/item/item_36.png rename to pk3DS.WinForms/Resources/img/item/item_36.png diff --git a/pk3DS/Resources/img/item/item_37.png b/pk3DS.WinForms/Resources/img/item/item_37.png similarity index 100% rename from pk3DS/Resources/img/item/item_37.png rename to pk3DS.WinForms/Resources/img/item/item_37.png diff --git a/pk3DS/Resources/img/item/item_38.png b/pk3DS.WinForms/Resources/img/item/item_38.png similarity index 100% rename from pk3DS/Resources/img/item/item_38.png rename to pk3DS.WinForms/Resources/img/item/item_38.png diff --git a/pk3DS/Resources/img/item/item_39.png b/pk3DS.WinForms/Resources/img/item/item_39.png similarity index 100% rename from pk3DS/Resources/img/item/item_39.png rename to pk3DS.WinForms/Resources/img/item/item_39.png diff --git a/pk3DS/Resources/img/item/item_4.png b/pk3DS.WinForms/Resources/img/item/item_4.png similarity index 100% rename from pk3DS/Resources/img/item/item_4.png rename to pk3DS.WinForms/Resources/img/item/item_4.png diff --git a/pk3DS/Resources/img/item/item_40.png b/pk3DS.WinForms/Resources/img/item/item_40.png similarity index 100% rename from pk3DS/Resources/img/item/item_40.png rename to pk3DS.WinForms/Resources/img/item/item_40.png diff --git a/pk3DS/Resources/img/item/item_41.png b/pk3DS.WinForms/Resources/img/item/item_41.png similarity index 100% rename from pk3DS/Resources/img/item/item_41.png rename to pk3DS.WinForms/Resources/img/item/item_41.png diff --git a/pk3DS/Resources/img/item/item_42.png b/pk3DS.WinForms/Resources/img/item/item_42.png similarity index 100% rename from pk3DS/Resources/img/item/item_42.png rename to pk3DS.WinForms/Resources/img/item/item_42.png diff --git a/pk3DS/Resources/img/item/item_43.png b/pk3DS.WinForms/Resources/img/item/item_43.png similarity index 100% rename from pk3DS/Resources/img/item/item_43.png rename to pk3DS.WinForms/Resources/img/item/item_43.png diff --git a/pk3DS/Resources/img/item/item_44.png b/pk3DS.WinForms/Resources/img/item/item_44.png similarity index 100% rename from pk3DS/Resources/img/item/item_44.png rename to pk3DS.WinForms/Resources/img/item/item_44.png diff --git a/pk3DS/Resources/img/item/item_45.png b/pk3DS.WinForms/Resources/img/item/item_45.png similarity index 100% rename from pk3DS/Resources/img/item/item_45.png rename to pk3DS.WinForms/Resources/img/item/item_45.png diff --git a/pk3DS/Resources/img/item/item_46.png b/pk3DS.WinForms/Resources/img/item/item_46.png similarity index 100% rename from pk3DS/Resources/img/item/item_46.png rename to pk3DS.WinForms/Resources/img/item/item_46.png diff --git a/pk3DS/Resources/img/item/item_47.png b/pk3DS.WinForms/Resources/img/item/item_47.png similarity index 100% rename from pk3DS/Resources/img/item/item_47.png rename to pk3DS.WinForms/Resources/img/item/item_47.png diff --git a/pk3DS/Resources/img/item/item_48.png b/pk3DS.WinForms/Resources/img/item/item_48.png similarity index 100% rename from pk3DS/Resources/img/item/item_48.png rename to pk3DS.WinForms/Resources/img/item/item_48.png diff --git a/pk3DS/Resources/img/item/item_49.png b/pk3DS.WinForms/Resources/img/item/item_49.png similarity index 100% rename from pk3DS/Resources/img/item/item_49.png rename to pk3DS.WinForms/Resources/img/item/item_49.png diff --git a/pk3DS/Resources/img/item/item_5.png b/pk3DS.WinForms/Resources/img/item/item_5.png similarity index 100% rename from pk3DS/Resources/img/item/item_5.png rename to pk3DS.WinForms/Resources/img/item/item_5.png diff --git a/pk3DS/Resources/img/item/item_50.png b/pk3DS.WinForms/Resources/img/item/item_50.png similarity index 100% rename from pk3DS/Resources/img/item/item_50.png rename to pk3DS.WinForms/Resources/img/item/item_50.png diff --git a/pk3DS/Resources/img/item/item_504.png b/pk3DS.WinForms/Resources/img/item/item_504.png similarity index 100% rename from pk3DS/Resources/img/item/item_504.png rename to pk3DS.WinForms/Resources/img/item/item_504.png diff --git a/pk3DS/Resources/img/item/item_51.png b/pk3DS.WinForms/Resources/img/item/item_51.png similarity index 100% rename from pk3DS/Resources/img/item/item_51.png rename to pk3DS.WinForms/Resources/img/item/item_51.png diff --git a/pk3DS/Resources/img/item/item_52.png b/pk3DS.WinForms/Resources/img/item/item_52.png similarity index 100% rename from pk3DS/Resources/img/item/item_52.png rename to pk3DS.WinForms/Resources/img/item/item_52.png diff --git a/pk3DS/Resources/img/item/item_53.png b/pk3DS.WinForms/Resources/img/item/item_53.png similarity index 100% rename from pk3DS/Resources/img/item/item_53.png rename to pk3DS.WinForms/Resources/img/item/item_53.png diff --git a/pk3DS/Resources/img/item/item_534.png b/pk3DS.WinForms/Resources/img/item/item_534.png similarity index 100% rename from pk3DS/Resources/img/item/item_534.png rename to pk3DS.WinForms/Resources/img/item/item_534.png diff --git a/pk3DS/Resources/img/item/item_535.png b/pk3DS.WinForms/Resources/img/item/item_535.png similarity index 100% rename from pk3DS/Resources/img/item/item_535.png rename to pk3DS.WinForms/Resources/img/item/item_535.png diff --git a/pk3DS/Resources/img/item/item_537.png b/pk3DS.WinForms/Resources/img/item/item_537.png similarity index 100% rename from pk3DS/Resources/img/item/item_537.png rename to pk3DS.WinForms/Resources/img/item/item_537.png diff --git a/pk3DS/Resources/img/item/item_538.png b/pk3DS.WinForms/Resources/img/item/item_538.png similarity index 100% rename from pk3DS/Resources/img/item/item_538.png rename to pk3DS.WinForms/Resources/img/item/item_538.png diff --git a/pk3DS/Resources/img/item/item_539.png b/pk3DS.WinForms/Resources/img/item/item_539.png similarity index 100% rename from pk3DS/Resources/img/item/item_539.png rename to pk3DS.WinForms/Resources/img/item/item_539.png diff --git a/pk3DS/Resources/img/item/item_54.png b/pk3DS.WinForms/Resources/img/item/item_54.png similarity index 100% rename from pk3DS/Resources/img/item/item_54.png rename to pk3DS.WinForms/Resources/img/item/item_54.png diff --git a/pk3DS/Resources/img/item/item_540.png b/pk3DS.WinForms/Resources/img/item/item_540.png similarity index 100% rename from pk3DS/Resources/img/item/item_540.png rename to pk3DS.WinForms/Resources/img/item/item_540.png diff --git a/pk3DS/Resources/img/item/item_541.png b/pk3DS.WinForms/Resources/img/item/item_541.png similarity index 100% rename from pk3DS/Resources/img/item/item_541.png rename to pk3DS.WinForms/Resources/img/item/item_541.png diff --git a/pk3DS/Resources/img/item/item_542.png b/pk3DS.WinForms/Resources/img/item/item_542.png similarity index 100% rename from pk3DS/Resources/img/item/item_542.png rename to pk3DS.WinForms/Resources/img/item/item_542.png diff --git a/pk3DS/Resources/img/item/item_543.png b/pk3DS.WinForms/Resources/img/item/item_543.png similarity index 100% rename from pk3DS/Resources/img/item/item_543.png rename to pk3DS.WinForms/Resources/img/item/item_543.png diff --git a/pk3DS/Resources/img/item/item_544.png b/pk3DS.WinForms/Resources/img/item/item_544.png similarity index 100% rename from pk3DS/Resources/img/item/item_544.png rename to pk3DS.WinForms/Resources/img/item/item_544.png diff --git a/pk3DS/Resources/img/item/item_545.png b/pk3DS.WinForms/Resources/img/item/item_545.png similarity index 100% rename from pk3DS/Resources/img/item/item_545.png rename to pk3DS.WinForms/Resources/img/item/item_545.png diff --git a/pk3DS/Resources/img/item/item_546.png b/pk3DS.WinForms/Resources/img/item/item_546.png similarity index 100% rename from pk3DS/Resources/img/item/item_546.png rename to pk3DS.WinForms/Resources/img/item/item_546.png diff --git a/pk3DS/Resources/img/item/item_547.png b/pk3DS.WinForms/Resources/img/item/item_547.png similarity index 100% rename from pk3DS/Resources/img/item/item_547.png rename to pk3DS.WinForms/Resources/img/item/item_547.png diff --git a/pk3DS/Resources/img/item/item_548.png b/pk3DS.WinForms/Resources/img/item/item_548.png similarity index 100% rename from pk3DS/Resources/img/item/item_548.png rename to pk3DS.WinForms/Resources/img/item/item_548.png diff --git a/pk3DS/Resources/img/item/item_549.png b/pk3DS.WinForms/Resources/img/item/item_549.png similarity index 100% rename from pk3DS/Resources/img/item/item_549.png rename to pk3DS.WinForms/Resources/img/item/item_549.png diff --git a/pk3DS/Resources/img/item/item_55.png b/pk3DS.WinForms/Resources/img/item/item_55.png similarity index 100% rename from pk3DS/Resources/img/item/item_55.png rename to pk3DS.WinForms/Resources/img/item/item_55.png diff --git a/pk3DS/Resources/img/item/item_550.png b/pk3DS.WinForms/Resources/img/item/item_550.png similarity index 100% rename from pk3DS/Resources/img/item/item_550.png rename to pk3DS.WinForms/Resources/img/item/item_550.png diff --git a/pk3DS/Resources/img/item/item_551.png b/pk3DS.WinForms/Resources/img/item/item_551.png similarity index 100% rename from pk3DS/Resources/img/item/item_551.png rename to pk3DS.WinForms/Resources/img/item/item_551.png diff --git a/pk3DS/Resources/img/item/item_552.png b/pk3DS.WinForms/Resources/img/item/item_552.png similarity index 100% rename from pk3DS/Resources/img/item/item_552.png rename to pk3DS.WinForms/Resources/img/item/item_552.png diff --git a/pk3DS/Resources/img/item/item_553.png b/pk3DS.WinForms/Resources/img/item/item_553.png similarity index 100% rename from pk3DS/Resources/img/item/item_553.png rename to pk3DS.WinForms/Resources/img/item/item_553.png diff --git a/pk3DS/Resources/img/item/item_554.png b/pk3DS.WinForms/Resources/img/item/item_554.png similarity index 100% rename from pk3DS/Resources/img/item/item_554.png rename to pk3DS.WinForms/Resources/img/item/item_554.png diff --git a/pk3DS/Resources/img/item/item_555.png b/pk3DS.WinForms/Resources/img/item/item_555.png similarity index 100% rename from pk3DS/Resources/img/item/item_555.png rename to pk3DS.WinForms/Resources/img/item/item_555.png diff --git a/pk3DS/Resources/img/item/item_556.png b/pk3DS.WinForms/Resources/img/item/item_556.png similarity index 100% rename from pk3DS/Resources/img/item/item_556.png rename to pk3DS.WinForms/Resources/img/item/item_556.png diff --git a/pk3DS/Resources/img/item/item_557.png b/pk3DS.WinForms/Resources/img/item/item_557.png similarity index 100% rename from pk3DS/Resources/img/item/item_557.png rename to pk3DS.WinForms/Resources/img/item/item_557.png diff --git a/pk3DS/Resources/img/item/item_558.png b/pk3DS.WinForms/Resources/img/item/item_558.png similarity index 100% rename from pk3DS/Resources/img/item/item_558.png rename to pk3DS.WinForms/Resources/img/item/item_558.png diff --git a/pk3DS/Resources/img/item/item_559.png b/pk3DS.WinForms/Resources/img/item/item_559.png similarity index 100% rename from pk3DS/Resources/img/item/item_559.png rename to pk3DS.WinForms/Resources/img/item/item_559.png diff --git a/pk3DS/Resources/img/item/item_56.png b/pk3DS.WinForms/Resources/img/item/item_56.png similarity index 100% rename from pk3DS/Resources/img/item/item_56.png rename to pk3DS.WinForms/Resources/img/item/item_56.png diff --git a/pk3DS/Resources/img/item/item_560.png b/pk3DS.WinForms/Resources/img/item/item_560.png similarity index 100% rename from pk3DS/Resources/img/item/item_560.png rename to pk3DS.WinForms/Resources/img/item/item_560.png diff --git a/pk3DS/Resources/img/item/item_561.png b/pk3DS.WinForms/Resources/img/item/item_561.png similarity index 100% rename from pk3DS/Resources/img/item/item_561.png rename to pk3DS.WinForms/Resources/img/item/item_561.png diff --git a/pk3DS/Resources/img/item/item_562.png b/pk3DS.WinForms/Resources/img/item/item_562.png similarity index 100% rename from pk3DS/Resources/img/item/item_562.png rename to pk3DS.WinForms/Resources/img/item/item_562.png diff --git a/pk3DS/Resources/img/item/item_563.png b/pk3DS.WinForms/Resources/img/item/item_563.png similarity index 100% rename from pk3DS/Resources/img/item/item_563.png rename to pk3DS.WinForms/Resources/img/item/item_563.png diff --git a/pk3DS/Resources/img/item/item_564.png b/pk3DS.WinForms/Resources/img/item/item_564.png similarity index 100% rename from pk3DS/Resources/img/item/item_564.png rename to pk3DS.WinForms/Resources/img/item/item_564.png diff --git a/pk3DS/Resources/img/item/item_565.png b/pk3DS.WinForms/Resources/img/item/item_565.png similarity index 100% rename from pk3DS/Resources/img/item/item_565.png rename to pk3DS.WinForms/Resources/img/item/item_565.png diff --git a/pk3DS/Resources/img/item/item_566.png b/pk3DS.WinForms/Resources/img/item/item_566.png similarity index 100% rename from pk3DS/Resources/img/item/item_566.png rename to pk3DS.WinForms/Resources/img/item/item_566.png diff --git a/pk3DS/Resources/img/item/item_567.png b/pk3DS.WinForms/Resources/img/item/item_567.png similarity index 100% rename from pk3DS/Resources/img/item/item_567.png rename to pk3DS.WinForms/Resources/img/item/item_567.png diff --git a/pk3DS/Resources/img/item/item_568.png b/pk3DS.WinForms/Resources/img/item/item_568.png similarity index 100% rename from pk3DS/Resources/img/item/item_568.png rename to pk3DS.WinForms/Resources/img/item/item_568.png diff --git a/pk3DS/Resources/img/item/item_569.png b/pk3DS.WinForms/Resources/img/item/item_569.png similarity index 100% rename from pk3DS/Resources/img/item/item_569.png rename to pk3DS.WinForms/Resources/img/item/item_569.png diff --git a/pk3DS/Resources/img/item/item_57.png b/pk3DS.WinForms/Resources/img/item/item_57.png similarity index 100% rename from pk3DS/Resources/img/item/item_57.png rename to pk3DS.WinForms/Resources/img/item/item_57.png diff --git a/pk3DS/Resources/img/item/item_570.png b/pk3DS.WinForms/Resources/img/item/item_570.png similarity index 100% rename from pk3DS/Resources/img/item/item_570.png rename to pk3DS.WinForms/Resources/img/item/item_570.png diff --git a/pk3DS/Resources/img/item/item_571.png b/pk3DS.WinForms/Resources/img/item/item_571.png similarity index 100% rename from pk3DS/Resources/img/item/item_571.png rename to pk3DS.WinForms/Resources/img/item/item_571.png diff --git a/pk3DS/Resources/img/item/item_572.png b/pk3DS.WinForms/Resources/img/item/item_572.png similarity index 100% rename from pk3DS/Resources/img/item/item_572.png rename to pk3DS.WinForms/Resources/img/item/item_572.png diff --git a/pk3DS/Resources/img/item/item_573.png b/pk3DS.WinForms/Resources/img/item/item_573.png similarity index 100% rename from pk3DS/Resources/img/item/item_573.png rename to pk3DS.WinForms/Resources/img/item/item_573.png diff --git a/pk3DS/Resources/img/item/item_577.png b/pk3DS.WinForms/Resources/img/item/item_577.png similarity index 100% rename from pk3DS/Resources/img/item/item_577.png rename to pk3DS.WinForms/Resources/img/item/item_577.png diff --git a/pk3DS/Resources/img/item/item_58.png b/pk3DS.WinForms/Resources/img/item/item_58.png similarity index 100% rename from pk3DS/Resources/img/item/item_58.png rename to pk3DS.WinForms/Resources/img/item/item_58.png diff --git a/pk3DS/Resources/img/item/item_580.png b/pk3DS.WinForms/Resources/img/item/item_580.png similarity index 100% rename from pk3DS/Resources/img/item/item_580.png rename to pk3DS.WinForms/Resources/img/item/item_580.png diff --git a/pk3DS/Resources/img/item/item_581.png b/pk3DS.WinForms/Resources/img/item/item_581.png similarity index 100% rename from pk3DS/Resources/img/item/item_581.png rename to pk3DS.WinForms/Resources/img/item/item_581.png diff --git a/pk3DS/Resources/img/item/item_582.png b/pk3DS.WinForms/Resources/img/item/item_582.png similarity index 100% rename from pk3DS/Resources/img/item/item_582.png rename to pk3DS.WinForms/Resources/img/item/item_582.png diff --git a/pk3DS/Resources/img/item/item_583.png b/pk3DS.WinForms/Resources/img/item/item_583.png similarity index 100% rename from pk3DS/Resources/img/item/item_583.png rename to pk3DS.WinForms/Resources/img/item/item_583.png diff --git a/pk3DS/Resources/img/item/item_584.png b/pk3DS.WinForms/Resources/img/item/item_584.png similarity index 100% rename from pk3DS/Resources/img/item/item_584.png rename to pk3DS.WinForms/Resources/img/item/item_584.png diff --git a/pk3DS/Resources/img/item/item_585.png b/pk3DS.WinForms/Resources/img/item/item_585.png similarity index 100% rename from pk3DS/Resources/img/item/item_585.png rename to pk3DS.WinForms/Resources/img/item/item_585.png diff --git a/pk3DS/Resources/img/item/item_586.png b/pk3DS.WinForms/Resources/img/item/item_586.png similarity index 100% rename from pk3DS/Resources/img/item/item_586.png rename to pk3DS.WinForms/Resources/img/item/item_586.png diff --git a/pk3DS/Resources/img/item/item_587.png b/pk3DS.WinForms/Resources/img/item/item_587.png similarity index 100% rename from pk3DS/Resources/img/item/item_587.png rename to pk3DS.WinForms/Resources/img/item/item_587.png diff --git a/pk3DS/Resources/img/item/item_588.png b/pk3DS.WinForms/Resources/img/item/item_588.png similarity index 100% rename from pk3DS/Resources/img/item/item_588.png rename to pk3DS.WinForms/Resources/img/item/item_588.png diff --git a/pk3DS/Resources/img/item/item_589.png b/pk3DS.WinForms/Resources/img/item/item_589.png similarity index 100% rename from pk3DS/Resources/img/item/item_589.png rename to pk3DS.WinForms/Resources/img/item/item_589.png diff --git a/pk3DS/Resources/img/item/item_59.png b/pk3DS.WinForms/Resources/img/item/item_59.png similarity index 100% rename from pk3DS/Resources/img/item/item_59.png rename to pk3DS.WinForms/Resources/img/item/item_59.png diff --git a/pk3DS/Resources/img/item/item_590.png b/pk3DS.WinForms/Resources/img/item/item_590.png similarity index 100% rename from pk3DS/Resources/img/item/item_590.png rename to pk3DS.WinForms/Resources/img/item/item_590.png diff --git a/pk3DS/Resources/img/item/item_591.png b/pk3DS.WinForms/Resources/img/item/item_591.png similarity index 100% rename from pk3DS/Resources/img/item/item_591.png rename to pk3DS.WinForms/Resources/img/item/item_591.png diff --git a/pk3DS/Resources/img/item/item_6.png b/pk3DS.WinForms/Resources/img/item/item_6.png similarity index 100% rename from pk3DS/Resources/img/item/item_6.png rename to pk3DS.WinForms/Resources/img/item/item_6.png diff --git a/pk3DS/Resources/img/item/item_60.png b/pk3DS.WinForms/Resources/img/item/item_60.png similarity index 100% rename from pk3DS/Resources/img/item/item_60.png rename to pk3DS.WinForms/Resources/img/item/item_60.png diff --git a/pk3DS/Resources/img/item/item_61.png b/pk3DS.WinForms/Resources/img/item/item_61.png similarity index 100% rename from pk3DS/Resources/img/item/item_61.png rename to pk3DS.WinForms/Resources/img/item/item_61.png diff --git a/pk3DS/Resources/img/item/item_62.png b/pk3DS.WinForms/Resources/img/item/item_62.png similarity index 100% rename from pk3DS/Resources/img/item/item_62.png rename to pk3DS.WinForms/Resources/img/item/item_62.png diff --git a/pk3DS/Resources/img/item/item_63.png b/pk3DS.WinForms/Resources/img/item/item_63.png similarity index 100% rename from pk3DS/Resources/img/item/item_63.png rename to pk3DS.WinForms/Resources/img/item/item_63.png diff --git a/pk3DS/Resources/img/item/item_639.png b/pk3DS.WinForms/Resources/img/item/item_639.png similarity index 100% rename from pk3DS/Resources/img/item/item_639.png rename to pk3DS.WinForms/Resources/img/item/item_639.png diff --git a/pk3DS/Resources/img/item/item_64.png b/pk3DS.WinForms/Resources/img/item/item_64.png similarity index 100% rename from pk3DS/Resources/img/item/item_64.png rename to pk3DS.WinForms/Resources/img/item/item_64.png diff --git a/pk3DS/Resources/img/item/item_640.png b/pk3DS.WinForms/Resources/img/item/item_640.png similarity index 100% rename from pk3DS/Resources/img/item/item_640.png rename to pk3DS.WinForms/Resources/img/item/item_640.png diff --git a/pk3DS/Resources/img/item/item_644.png b/pk3DS.WinForms/Resources/img/item/item_644.png similarity index 100% rename from pk3DS/Resources/img/item/item_644.png rename to pk3DS.WinForms/Resources/img/item/item_644.png diff --git a/pk3DS/Resources/img/item/item_645.png b/pk3DS.WinForms/Resources/img/item/item_645.png similarity index 100% rename from pk3DS/Resources/img/item/item_645.png rename to pk3DS.WinForms/Resources/img/item/item_645.png diff --git a/pk3DS/Resources/img/item/item_646.png b/pk3DS.WinForms/Resources/img/item/item_646.png similarity index 100% rename from pk3DS/Resources/img/item/item_646.png rename to pk3DS.WinForms/Resources/img/item/item_646.png diff --git a/pk3DS/Resources/img/item/item_647.png b/pk3DS.WinForms/Resources/img/item/item_647.png similarity index 100% rename from pk3DS/Resources/img/item/item_647.png rename to pk3DS.WinForms/Resources/img/item/item_647.png diff --git a/pk3DS/Resources/img/item/item_648.png b/pk3DS.WinForms/Resources/img/item/item_648.png similarity index 100% rename from pk3DS/Resources/img/item/item_648.png rename to pk3DS.WinForms/Resources/img/item/item_648.png diff --git a/pk3DS/Resources/img/item/item_649.png b/pk3DS.WinForms/Resources/img/item/item_649.png similarity index 100% rename from pk3DS/Resources/img/item/item_649.png rename to pk3DS.WinForms/Resources/img/item/item_649.png diff --git a/pk3DS/Resources/img/item/item_65.png b/pk3DS.WinForms/Resources/img/item/item_65.png similarity index 100% rename from pk3DS/Resources/img/item/item_65.png rename to pk3DS.WinForms/Resources/img/item/item_65.png diff --git a/pk3DS/Resources/img/item/item_650.png b/pk3DS.WinForms/Resources/img/item/item_650.png similarity index 100% rename from pk3DS/Resources/img/item/item_650.png rename to pk3DS.WinForms/Resources/img/item/item_650.png diff --git a/pk3DS/Resources/img/item/item_652.png b/pk3DS.WinForms/Resources/img/item/item_652.png similarity index 100% rename from pk3DS/Resources/img/item/item_652.png rename to pk3DS.WinForms/Resources/img/item/item_652.png diff --git a/pk3DS/Resources/img/item/item_653.png b/pk3DS.WinForms/Resources/img/item/item_653.png similarity index 100% rename from pk3DS/Resources/img/item/item_653.png rename to pk3DS.WinForms/Resources/img/item/item_653.png diff --git a/pk3DS/Resources/img/item/item_654.png b/pk3DS.WinForms/Resources/img/item/item_654.png similarity index 100% rename from pk3DS/Resources/img/item/item_654.png rename to pk3DS.WinForms/Resources/img/item/item_654.png diff --git a/pk3DS/Resources/img/item/item_655.png b/pk3DS.WinForms/Resources/img/item/item_655.png similarity index 100% rename from pk3DS/Resources/img/item/item_655.png rename to pk3DS.WinForms/Resources/img/item/item_655.png diff --git a/pk3DS/Resources/img/item/item_656.png b/pk3DS.WinForms/Resources/img/item/item_656.png similarity index 100% rename from pk3DS/Resources/img/item/item_656.png rename to pk3DS.WinForms/Resources/img/item/item_656.png diff --git a/pk3DS/Resources/img/item/item_657.png b/pk3DS.WinForms/Resources/img/item/item_657.png similarity index 100% rename from pk3DS/Resources/img/item/item_657.png rename to pk3DS.WinForms/Resources/img/item/item_657.png diff --git a/pk3DS/Resources/img/item/item_658.png b/pk3DS.WinForms/Resources/img/item/item_658.png similarity index 100% rename from pk3DS/Resources/img/item/item_658.png rename to pk3DS.WinForms/Resources/img/item/item_658.png diff --git a/pk3DS/Resources/img/item/item_659.png b/pk3DS.WinForms/Resources/img/item/item_659.png similarity index 100% rename from pk3DS/Resources/img/item/item_659.png rename to pk3DS.WinForms/Resources/img/item/item_659.png diff --git a/pk3DS/Resources/img/item/item_66.png b/pk3DS.WinForms/Resources/img/item/item_66.png similarity index 100% rename from pk3DS/Resources/img/item/item_66.png rename to pk3DS.WinForms/Resources/img/item/item_66.png diff --git a/pk3DS/Resources/img/item/item_660.png b/pk3DS.WinForms/Resources/img/item/item_660.png similarity index 100% rename from pk3DS/Resources/img/item/item_660.png rename to pk3DS.WinForms/Resources/img/item/item_660.png diff --git a/pk3DS/Resources/img/item/item_661.png b/pk3DS.WinForms/Resources/img/item/item_661.png similarity index 100% rename from pk3DS/Resources/img/item/item_661.png rename to pk3DS.WinForms/Resources/img/item/item_661.png diff --git a/pk3DS/Resources/img/item/item_662.png b/pk3DS.WinForms/Resources/img/item/item_662.png similarity index 100% rename from pk3DS/Resources/img/item/item_662.png rename to pk3DS.WinForms/Resources/img/item/item_662.png diff --git a/pk3DS/Resources/img/item/item_663.png b/pk3DS.WinForms/Resources/img/item/item_663.png similarity index 100% rename from pk3DS/Resources/img/item/item_663.png rename to pk3DS.WinForms/Resources/img/item/item_663.png diff --git a/pk3DS/Resources/img/item/item_664.png b/pk3DS.WinForms/Resources/img/item/item_664.png similarity index 100% rename from pk3DS/Resources/img/item/item_664.png rename to pk3DS.WinForms/Resources/img/item/item_664.png diff --git a/pk3DS/Resources/img/item/item_665.png b/pk3DS.WinForms/Resources/img/item/item_665.png similarity index 100% rename from pk3DS/Resources/img/item/item_665.png rename to pk3DS.WinForms/Resources/img/item/item_665.png diff --git a/pk3DS/Resources/img/item/item_666.png b/pk3DS.WinForms/Resources/img/item/item_666.png similarity index 100% rename from pk3DS/Resources/img/item/item_666.png rename to pk3DS.WinForms/Resources/img/item/item_666.png diff --git a/pk3DS/Resources/img/item/item_667.png b/pk3DS.WinForms/Resources/img/item/item_667.png similarity index 100% rename from pk3DS/Resources/img/item/item_667.png rename to pk3DS.WinForms/Resources/img/item/item_667.png diff --git a/pk3DS/Resources/img/item/item_668.png b/pk3DS.WinForms/Resources/img/item/item_668.png similarity index 100% rename from pk3DS/Resources/img/item/item_668.png rename to pk3DS.WinForms/Resources/img/item/item_668.png diff --git a/pk3DS/Resources/img/item/item_669.png b/pk3DS.WinForms/Resources/img/item/item_669.png similarity index 100% rename from pk3DS/Resources/img/item/item_669.png rename to pk3DS.WinForms/Resources/img/item/item_669.png diff --git a/pk3DS/Resources/img/item/item_67.png b/pk3DS.WinForms/Resources/img/item/item_67.png similarity index 100% rename from pk3DS/Resources/img/item/item_67.png rename to pk3DS.WinForms/Resources/img/item/item_67.png diff --git a/pk3DS/Resources/img/item/item_670.png b/pk3DS.WinForms/Resources/img/item/item_670.png similarity index 100% rename from pk3DS/Resources/img/item/item_670.png rename to pk3DS.WinForms/Resources/img/item/item_670.png diff --git a/pk3DS/Resources/img/item/item_671.png b/pk3DS.WinForms/Resources/img/item/item_671.png similarity index 100% rename from pk3DS/Resources/img/item/item_671.png rename to pk3DS.WinForms/Resources/img/item/item_671.png diff --git a/pk3DS/Resources/img/item/item_672.png b/pk3DS.WinForms/Resources/img/item/item_672.png similarity index 100% rename from pk3DS/Resources/img/item/item_672.png rename to pk3DS.WinForms/Resources/img/item/item_672.png diff --git a/pk3DS/Resources/img/item/item_673.png b/pk3DS.WinForms/Resources/img/item/item_673.png similarity index 100% rename from pk3DS/Resources/img/item/item_673.png rename to pk3DS.WinForms/Resources/img/item/item_673.png diff --git a/pk3DS/Resources/img/item/item_674.png b/pk3DS.WinForms/Resources/img/item/item_674.png similarity index 100% rename from pk3DS/Resources/img/item/item_674.png rename to pk3DS.WinForms/Resources/img/item/item_674.png diff --git a/pk3DS/Resources/img/item/item_675.png b/pk3DS.WinForms/Resources/img/item/item_675.png similarity index 100% rename from pk3DS/Resources/img/item/item_675.png rename to pk3DS.WinForms/Resources/img/item/item_675.png diff --git a/pk3DS/Resources/img/item/item_676.png b/pk3DS.WinForms/Resources/img/item/item_676.png similarity index 100% rename from pk3DS/Resources/img/item/item_676.png rename to pk3DS.WinForms/Resources/img/item/item_676.png diff --git a/pk3DS/Resources/img/item/item_677.png b/pk3DS.WinForms/Resources/img/item/item_677.png similarity index 100% rename from pk3DS/Resources/img/item/item_677.png rename to pk3DS.WinForms/Resources/img/item/item_677.png diff --git a/pk3DS/Resources/img/item/item_678.png b/pk3DS.WinForms/Resources/img/item/item_678.png similarity index 100% rename from pk3DS/Resources/img/item/item_678.png rename to pk3DS.WinForms/Resources/img/item/item_678.png diff --git a/pk3DS/Resources/img/item/item_679.png b/pk3DS.WinForms/Resources/img/item/item_679.png similarity index 100% rename from pk3DS/Resources/img/item/item_679.png rename to pk3DS.WinForms/Resources/img/item/item_679.png diff --git a/pk3DS/Resources/img/item/item_68.png b/pk3DS.WinForms/Resources/img/item/item_68.png similarity index 100% rename from pk3DS/Resources/img/item/item_68.png rename to pk3DS.WinForms/Resources/img/item/item_68.png diff --git a/pk3DS/Resources/img/item/item_680.png b/pk3DS.WinForms/Resources/img/item/item_680.png similarity index 100% rename from pk3DS/Resources/img/item/item_680.png rename to pk3DS.WinForms/Resources/img/item/item_680.png diff --git a/pk3DS/Resources/img/item/item_681.png b/pk3DS.WinForms/Resources/img/item/item_681.png similarity index 100% rename from pk3DS/Resources/img/item/item_681.png rename to pk3DS.WinForms/Resources/img/item/item_681.png diff --git a/pk3DS/Resources/img/item/item_682.png b/pk3DS.WinForms/Resources/img/item/item_682.png similarity index 100% rename from pk3DS/Resources/img/item/item_682.png rename to pk3DS.WinForms/Resources/img/item/item_682.png diff --git a/pk3DS/Resources/img/item/item_683.png b/pk3DS.WinForms/Resources/img/item/item_683.png similarity index 100% rename from pk3DS/Resources/img/item/item_683.png rename to pk3DS.WinForms/Resources/img/item/item_683.png diff --git a/pk3DS/Resources/img/item/item_684.png b/pk3DS.WinForms/Resources/img/item/item_684.png similarity index 100% rename from pk3DS/Resources/img/item/item_684.png rename to pk3DS.WinForms/Resources/img/item/item_684.png diff --git a/pk3DS/Resources/img/item/item_685.png b/pk3DS.WinForms/Resources/img/item/item_685.png similarity index 100% rename from pk3DS/Resources/img/item/item_685.png rename to pk3DS.WinForms/Resources/img/item/item_685.png diff --git a/pk3DS/Resources/img/item/item_686.png b/pk3DS.WinForms/Resources/img/item/item_686.png similarity index 100% rename from pk3DS/Resources/img/item/item_686.png rename to pk3DS.WinForms/Resources/img/item/item_686.png diff --git a/pk3DS/Resources/img/item/item_687.png b/pk3DS.WinForms/Resources/img/item/item_687.png similarity index 100% rename from pk3DS/Resources/img/item/item_687.png rename to pk3DS.WinForms/Resources/img/item/item_687.png diff --git a/pk3DS/Resources/img/item/item_688.png b/pk3DS.WinForms/Resources/img/item/item_688.png similarity index 100% rename from pk3DS/Resources/img/item/item_688.png rename to pk3DS.WinForms/Resources/img/item/item_688.png diff --git a/pk3DS/Resources/img/item/item_69.png b/pk3DS.WinForms/Resources/img/item/item_69.png similarity index 100% rename from pk3DS/Resources/img/item/item_69.png rename to pk3DS.WinForms/Resources/img/item/item_69.png diff --git a/pk3DS/Resources/img/item/item_699.png b/pk3DS.WinForms/Resources/img/item/item_699.png similarity index 100% rename from pk3DS/Resources/img/item/item_699.png rename to pk3DS.WinForms/Resources/img/item/item_699.png diff --git a/pk3DS/Resources/img/item/item_7.png b/pk3DS.WinForms/Resources/img/item/item_7.png similarity index 100% rename from pk3DS/Resources/img/item/item_7.png rename to pk3DS.WinForms/Resources/img/item/item_7.png diff --git a/pk3DS/Resources/img/item/item_70.png b/pk3DS.WinForms/Resources/img/item/item_70.png similarity index 100% rename from pk3DS/Resources/img/item/item_70.png rename to pk3DS.WinForms/Resources/img/item/item_70.png diff --git a/pk3DS/Resources/img/item/item_704.png b/pk3DS.WinForms/Resources/img/item/item_704.png similarity index 100% rename from pk3DS/Resources/img/item/item_704.png rename to pk3DS.WinForms/Resources/img/item/item_704.png diff --git a/pk3DS/Resources/img/item/item_708.png b/pk3DS.WinForms/Resources/img/item/item_708.png similarity index 100% rename from pk3DS/Resources/img/item/item_708.png rename to pk3DS.WinForms/Resources/img/item/item_708.png diff --git a/pk3DS/Resources/img/item/item_709.png b/pk3DS.WinForms/Resources/img/item/item_709.png similarity index 100% rename from pk3DS/Resources/img/item/item_709.png rename to pk3DS.WinForms/Resources/img/item/item_709.png diff --git a/pk3DS/Resources/img/item/item_71.png b/pk3DS.WinForms/Resources/img/item/item_71.png similarity index 100% rename from pk3DS/Resources/img/item/item_71.png rename to pk3DS.WinForms/Resources/img/item/item_71.png diff --git a/pk3DS/Resources/img/item/item_710.png b/pk3DS.WinForms/Resources/img/item/item_710.png similarity index 100% rename from pk3DS/Resources/img/item/item_710.png rename to pk3DS.WinForms/Resources/img/item/item_710.png diff --git a/pk3DS/Resources/img/item/item_711.png b/pk3DS.WinForms/Resources/img/item/item_711.png similarity index 100% rename from pk3DS/Resources/img/item/item_711.png rename to pk3DS.WinForms/Resources/img/item/item_711.png diff --git a/pk3DS/Resources/img/item/item_715.png b/pk3DS.WinForms/Resources/img/item/item_715.png similarity index 100% rename from pk3DS/Resources/img/item/item_715.png rename to pk3DS.WinForms/Resources/img/item/item_715.png diff --git a/pk3DS/Resources/img/item/item_72.png b/pk3DS.WinForms/Resources/img/item/item_72.png similarity index 100% rename from pk3DS/Resources/img/item/item_72.png rename to pk3DS.WinForms/Resources/img/item/item_72.png diff --git a/pk3DS/Resources/img/item/item_73.png b/pk3DS.WinForms/Resources/img/item/item_73.png similarity index 100% rename from pk3DS/Resources/img/item/item_73.png rename to pk3DS.WinForms/Resources/img/item/item_73.png diff --git a/pk3DS/Resources/img/item/item_74.png b/pk3DS.WinForms/Resources/img/item/item_74.png similarity index 100% rename from pk3DS/Resources/img/item/item_74.png rename to pk3DS.WinForms/Resources/img/item/item_74.png diff --git a/pk3DS/Resources/img/item/item_75.png b/pk3DS.WinForms/Resources/img/item/item_75.png similarity index 100% rename from pk3DS/Resources/img/item/item_75.png rename to pk3DS.WinForms/Resources/img/item/item_75.png diff --git a/pk3DS/Resources/img/item/item_752.png b/pk3DS.WinForms/Resources/img/item/item_752.png similarity index 100% rename from pk3DS/Resources/img/item/item_752.png rename to pk3DS.WinForms/Resources/img/item/item_752.png diff --git a/pk3DS/Resources/img/item/item_753.png b/pk3DS.WinForms/Resources/img/item/item_753.png similarity index 100% rename from pk3DS/Resources/img/item/item_753.png rename to pk3DS.WinForms/Resources/img/item/item_753.png diff --git a/pk3DS/Resources/img/item/item_754.png b/pk3DS.WinForms/Resources/img/item/item_754.png similarity index 100% rename from pk3DS/Resources/img/item/item_754.png rename to pk3DS.WinForms/Resources/img/item/item_754.png diff --git a/pk3DS/Resources/img/item/item_755.png b/pk3DS.WinForms/Resources/img/item/item_755.png similarity index 100% rename from pk3DS/Resources/img/item/item_755.png rename to pk3DS.WinForms/Resources/img/item/item_755.png diff --git a/pk3DS/Resources/img/item/item_756.png b/pk3DS.WinForms/Resources/img/item/item_756.png similarity index 100% rename from pk3DS/Resources/img/item/item_756.png rename to pk3DS.WinForms/Resources/img/item/item_756.png diff --git a/pk3DS/Resources/img/item/item_757.png b/pk3DS.WinForms/Resources/img/item/item_757.png similarity index 100% rename from pk3DS/Resources/img/item/item_757.png rename to pk3DS.WinForms/Resources/img/item/item_757.png diff --git a/pk3DS/Resources/img/item/item_758.png b/pk3DS.WinForms/Resources/img/item/item_758.png similarity index 100% rename from pk3DS/Resources/img/item/item_758.png rename to pk3DS.WinForms/Resources/img/item/item_758.png diff --git a/pk3DS/Resources/img/item/item_759.png b/pk3DS.WinForms/Resources/img/item/item_759.png similarity index 100% rename from pk3DS/Resources/img/item/item_759.png rename to pk3DS.WinForms/Resources/img/item/item_759.png diff --git a/pk3DS/Resources/img/item/item_76.png b/pk3DS.WinForms/Resources/img/item/item_76.png similarity index 100% rename from pk3DS/Resources/img/item/item_76.png rename to pk3DS.WinForms/Resources/img/item/item_76.png diff --git a/pk3DS/Resources/img/item/item_760.png b/pk3DS.WinForms/Resources/img/item/item_760.png similarity index 100% rename from pk3DS/Resources/img/item/item_760.png rename to pk3DS.WinForms/Resources/img/item/item_760.png diff --git a/pk3DS/Resources/img/item/item_761.png b/pk3DS.WinForms/Resources/img/item/item_761.png similarity index 100% rename from pk3DS/Resources/img/item/item_761.png rename to pk3DS.WinForms/Resources/img/item/item_761.png diff --git a/pk3DS/Resources/img/item/item_762.png b/pk3DS.WinForms/Resources/img/item/item_762.png similarity index 100% rename from pk3DS/Resources/img/item/item_762.png rename to pk3DS.WinForms/Resources/img/item/item_762.png diff --git a/pk3DS/Resources/img/item/item_763.png b/pk3DS.WinForms/Resources/img/item/item_763.png similarity index 100% rename from pk3DS/Resources/img/item/item_763.png rename to pk3DS.WinForms/Resources/img/item/item_763.png diff --git a/pk3DS/Resources/img/item/item_764.png b/pk3DS.WinForms/Resources/img/item/item_764.png similarity index 100% rename from pk3DS/Resources/img/item/item_764.png rename to pk3DS.WinForms/Resources/img/item/item_764.png diff --git a/pk3DS/Resources/img/item/item_767.png b/pk3DS.WinForms/Resources/img/item/item_767.png similarity index 100% rename from pk3DS/Resources/img/item/item_767.png rename to pk3DS.WinForms/Resources/img/item/item_767.png diff --git a/pk3DS/Resources/img/item/item_768.png b/pk3DS.WinForms/Resources/img/item/item_768.png similarity index 100% rename from pk3DS/Resources/img/item/item_768.png rename to pk3DS.WinForms/Resources/img/item/item_768.png diff --git a/pk3DS/Resources/img/item/item_769.png b/pk3DS.WinForms/Resources/img/item/item_769.png similarity index 100% rename from pk3DS/Resources/img/item/item_769.png rename to pk3DS.WinForms/Resources/img/item/item_769.png diff --git a/pk3DS/Resources/img/item/item_77.png b/pk3DS.WinForms/Resources/img/item/item_77.png similarity index 100% rename from pk3DS/Resources/img/item/item_77.png rename to pk3DS.WinForms/Resources/img/item/item_77.png diff --git a/pk3DS/Resources/img/item/item_770.png b/pk3DS.WinForms/Resources/img/item/item_770.png similarity index 100% rename from pk3DS/Resources/img/item/item_770.png rename to pk3DS.WinForms/Resources/img/item/item_770.png diff --git a/pk3DS/Resources/img/item/item_776.png b/pk3DS.WinForms/Resources/img/item/item_776.png similarity index 100% rename from pk3DS/Resources/img/item/item_776.png rename to pk3DS.WinForms/Resources/img/item/item_776.png diff --git a/pk3DS/Resources/img/item/item_777.png b/pk3DS.WinForms/Resources/img/item/item_777.png similarity index 100% rename from pk3DS/Resources/img/item/item_777.png rename to pk3DS.WinForms/Resources/img/item/item_777.png diff --git a/pk3DS/Resources/img/item/item_778.png b/pk3DS.WinForms/Resources/img/item/item_778.png similarity index 100% rename from pk3DS/Resources/img/item/item_778.png rename to pk3DS.WinForms/Resources/img/item/item_778.png diff --git a/pk3DS/Resources/img/item/item_779.png b/pk3DS.WinForms/Resources/img/item/item_779.png similarity index 100% rename from pk3DS/Resources/img/item/item_779.png rename to pk3DS.WinForms/Resources/img/item/item_779.png diff --git a/pk3DS/Resources/img/item/item_78.png b/pk3DS.WinForms/Resources/img/item/item_78.png similarity index 100% rename from pk3DS/Resources/img/item/item_78.png rename to pk3DS.WinForms/Resources/img/item/item_78.png diff --git a/pk3DS/Resources/img/item/item_780.png b/pk3DS.WinForms/Resources/img/item/item_780.png similarity index 100% rename from pk3DS/Resources/img/item/item_780.png rename to pk3DS.WinForms/Resources/img/item/item_780.png diff --git a/pk3DS/Resources/img/item/item_781.png b/pk3DS.WinForms/Resources/img/item/item_781.png similarity index 100% rename from pk3DS/Resources/img/item/item_781.png rename to pk3DS.WinForms/Resources/img/item/item_781.png diff --git a/pk3DS/Resources/img/item/item_782.png b/pk3DS.WinForms/Resources/img/item/item_782.png similarity index 100% rename from pk3DS/Resources/img/item/item_782.png rename to pk3DS.WinForms/Resources/img/item/item_782.png diff --git a/pk3DS/Resources/img/item/item_783.png b/pk3DS.WinForms/Resources/img/item/item_783.png similarity index 100% rename from pk3DS/Resources/img/item/item_783.png rename to pk3DS.WinForms/Resources/img/item/item_783.png diff --git a/pk3DS/Resources/img/item/item_784.png b/pk3DS.WinForms/Resources/img/item/item_784.png similarity index 100% rename from pk3DS/Resources/img/item/item_784.png rename to pk3DS.WinForms/Resources/img/item/item_784.png diff --git a/pk3DS/Resources/img/item/item_785.png b/pk3DS.WinForms/Resources/img/item/item_785.png similarity index 100% rename from pk3DS/Resources/img/item/item_785.png rename to pk3DS.WinForms/Resources/img/item/item_785.png diff --git a/pk3DS/Resources/img/item/item_786.png b/pk3DS.WinForms/Resources/img/item/item_786.png similarity index 100% rename from pk3DS/Resources/img/item/item_786.png rename to pk3DS.WinForms/Resources/img/item/item_786.png diff --git a/pk3DS/Resources/img/item/item_787.png b/pk3DS.WinForms/Resources/img/item/item_787.png similarity index 100% rename from pk3DS/Resources/img/item/item_787.png rename to pk3DS.WinForms/Resources/img/item/item_787.png diff --git a/pk3DS/Resources/img/item/item_788.png b/pk3DS.WinForms/Resources/img/item/item_788.png similarity index 100% rename from pk3DS/Resources/img/item/item_788.png rename to pk3DS.WinForms/Resources/img/item/item_788.png diff --git a/pk3DS/Resources/img/item/item_789.png b/pk3DS.WinForms/Resources/img/item/item_789.png similarity index 100% rename from pk3DS/Resources/img/item/item_789.png rename to pk3DS.WinForms/Resources/img/item/item_789.png diff --git a/pk3DS/Resources/img/item/item_79.png b/pk3DS.WinForms/Resources/img/item/item_79.png similarity index 100% rename from pk3DS/Resources/img/item/item_79.png rename to pk3DS.WinForms/Resources/img/item/item_79.png diff --git a/pk3DS/Resources/img/item/item_790.png b/pk3DS.WinForms/Resources/img/item/item_790.png similarity index 100% rename from pk3DS/Resources/img/item/item_790.png rename to pk3DS.WinForms/Resources/img/item/item_790.png diff --git a/pk3DS/Resources/img/item/item_791.png b/pk3DS.WinForms/Resources/img/item/item_791.png similarity index 100% rename from pk3DS/Resources/img/item/item_791.png rename to pk3DS.WinForms/Resources/img/item/item_791.png diff --git a/pk3DS/Resources/img/item/item_792.png b/pk3DS.WinForms/Resources/img/item/item_792.png similarity index 100% rename from pk3DS/Resources/img/item/item_792.png rename to pk3DS.WinForms/Resources/img/item/item_792.png diff --git a/pk3DS/Resources/img/item/item_793.png b/pk3DS.WinForms/Resources/img/item/item_793.png similarity index 100% rename from pk3DS/Resources/img/item/item_793.png rename to pk3DS.WinForms/Resources/img/item/item_793.png diff --git a/pk3DS/Resources/img/item/item_794.png b/pk3DS.WinForms/Resources/img/item/item_794.png similarity index 100% rename from pk3DS/Resources/img/item/item_794.png rename to pk3DS.WinForms/Resources/img/item/item_794.png diff --git a/pk3DS/Resources/img/item/item_795.png b/pk3DS.WinForms/Resources/img/item/item_795.png similarity index 100% rename from pk3DS/Resources/img/item/item_795.png rename to pk3DS.WinForms/Resources/img/item/item_795.png diff --git a/pk3DS/Resources/img/item/item_796.png b/pk3DS.WinForms/Resources/img/item/item_796.png similarity index 100% rename from pk3DS/Resources/img/item/item_796.png rename to pk3DS.WinForms/Resources/img/item/item_796.png diff --git a/pk3DS/Resources/img/item/item_798.png b/pk3DS.WinForms/Resources/img/item/item_798.png similarity index 100% rename from pk3DS/Resources/img/item/item_798.png rename to pk3DS.WinForms/Resources/img/item/item_798.png diff --git a/pk3DS/Resources/img/item/item_799.png b/pk3DS.WinForms/Resources/img/item/item_799.png similarity index 100% rename from pk3DS/Resources/img/item/item_799.png rename to pk3DS.WinForms/Resources/img/item/item_799.png diff --git a/pk3DS/Resources/img/item/item_8.png b/pk3DS.WinForms/Resources/img/item/item_8.png similarity index 100% rename from pk3DS/Resources/img/item/item_8.png rename to pk3DS.WinForms/Resources/img/item/item_8.png diff --git a/pk3DS/Resources/img/item/item_80.png b/pk3DS.WinForms/Resources/img/item/item_80.png similarity index 100% rename from pk3DS/Resources/img/item/item_80.png rename to pk3DS.WinForms/Resources/img/item/item_80.png diff --git a/pk3DS/Resources/img/item/item_800.png b/pk3DS.WinForms/Resources/img/item/item_800.png similarity index 100% rename from pk3DS/Resources/img/item/item_800.png rename to pk3DS.WinForms/Resources/img/item/item_800.png diff --git a/pk3DS/Resources/img/item/item_801.png b/pk3DS.WinForms/Resources/img/item/item_801.png similarity index 100% rename from pk3DS/Resources/img/item/item_801.png rename to pk3DS.WinForms/Resources/img/item/item_801.png diff --git a/pk3DS/Resources/img/item/item_802.png b/pk3DS.WinForms/Resources/img/item/item_802.png similarity index 100% rename from pk3DS/Resources/img/item/item_802.png rename to pk3DS.WinForms/Resources/img/item/item_802.png diff --git a/pk3DS/Resources/img/item/item_803.png b/pk3DS.WinForms/Resources/img/item/item_803.png similarity index 100% rename from pk3DS/Resources/img/item/item_803.png rename to pk3DS.WinForms/Resources/img/item/item_803.png diff --git a/pk3DS/Resources/img/item/item_804.png b/pk3DS.WinForms/Resources/img/item/item_804.png similarity index 100% rename from pk3DS/Resources/img/item/item_804.png rename to pk3DS.WinForms/Resources/img/item/item_804.png diff --git a/pk3DS/Resources/img/item/item_805.png b/pk3DS.WinForms/Resources/img/item/item_805.png similarity index 100% rename from pk3DS/Resources/img/item/item_805.png rename to pk3DS.WinForms/Resources/img/item/item_805.png diff --git a/pk3DS/Resources/img/item/item_806.png b/pk3DS.WinForms/Resources/img/item/item_806.png similarity index 100% rename from pk3DS/Resources/img/item/item_806.png rename to pk3DS.WinForms/Resources/img/item/item_806.png diff --git a/pk3DS/Resources/img/item/item_81.png b/pk3DS.WinForms/Resources/img/item/item_81.png similarity index 100% rename from pk3DS/Resources/img/item/item_81.png rename to pk3DS.WinForms/Resources/img/item/item_81.png diff --git a/pk3DS/Resources/img/item/item_82.png b/pk3DS.WinForms/Resources/img/item/item_82.png similarity index 100% rename from pk3DS/Resources/img/item/item_82.png rename to pk3DS.WinForms/Resources/img/item/item_82.png diff --git a/pk3DS/Resources/img/item/item_83.png b/pk3DS.WinForms/Resources/img/item/item_83.png similarity index 100% rename from pk3DS/Resources/img/item/item_83.png rename to pk3DS.WinForms/Resources/img/item/item_83.png diff --git a/pk3DS/Resources/img/item/item_836.png b/pk3DS.WinForms/Resources/img/item/item_836.png similarity index 100% rename from pk3DS/Resources/img/item/item_836.png rename to pk3DS.WinForms/Resources/img/item/item_836.png diff --git a/pk3DS/Resources/img/item/item_84.png b/pk3DS.WinForms/Resources/img/item/item_84.png similarity index 100% rename from pk3DS/Resources/img/item/item_84.png rename to pk3DS.WinForms/Resources/img/item/item_84.png diff --git a/pk3DS/Resources/img/item/item_846.png b/pk3DS.WinForms/Resources/img/item/item_846.png similarity index 100% rename from pk3DS/Resources/img/item/item_846.png rename to pk3DS.WinForms/Resources/img/item/item_846.png diff --git a/pk3DS/Resources/img/item/item_849.png b/pk3DS.WinForms/Resources/img/item/item_849.png similarity index 100% rename from pk3DS/Resources/img/item/item_849.png rename to pk3DS.WinForms/Resources/img/item/item_849.png diff --git a/pk3DS/Resources/img/item/item_85.png b/pk3DS.WinForms/Resources/img/item/item_85.png similarity index 100% rename from pk3DS/Resources/img/item/item_85.png rename to pk3DS.WinForms/Resources/img/item/item_85.png diff --git a/pk3DS/Resources/img/item/item_851.png b/pk3DS.WinForms/Resources/img/item/item_851.png similarity index 100% rename from pk3DS/Resources/img/item/item_851.png rename to pk3DS.WinForms/Resources/img/item/item_851.png diff --git a/pk3DS/Resources/img/item/item_852.png b/pk3DS.WinForms/Resources/img/item/item_852.png similarity index 100% rename from pk3DS/Resources/img/item/item_852.png rename to pk3DS.WinForms/Resources/img/item/item_852.png diff --git a/pk3DS/Resources/img/item/item_853.png b/pk3DS.WinForms/Resources/img/item/item_853.png similarity index 100% rename from pk3DS/Resources/img/item/item_853.png rename to pk3DS.WinForms/Resources/img/item/item_853.png diff --git a/pk3DS/Resources/img/item/item_854.png b/pk3DS.WinForms/Resources/img/item/item_854.png similarity index 100% rename from pk3DS/Resources/img/item/item_854.png rename to pk3DS.WinForms/Resources/img/item/item_854.png diff --git a/pk3DS/Resources/img/item/item_855.png b/pk3DS.WinForms/Resources/img/item/item_855.png similarity index 100% rename from pk3DS/Resources/img/item/item_855.png rename to pk3DS.WinForms/Resources/img/item/item_855.png diff --git a/pk3DS/Resources/img/item/item_856.png b/pk3DS.WinForms/Resources/img/item/item_856.png similarity index 100% rename from pk3DS/Resources/img/item/item_856.png rename to pk3DS.WinForms/Resources/img/item/item_856.png diff --git a/pk3DS/Resources/img/item/item_86.png b/pk3DS.WinForms/Resources/img/item/item_86.png similarity index 100% rename from pk3DS/Resources/img/item/item_86.png rename to pk3DS.WinForms/Resources/img/item/item_86.png diff --git a/pk3DS/Resources/img/item/item_87.png b/pk3DS.WinForms/Resources/img/item/item_87.png similarity index 100% rename from pk3DS/Resources/img/item/item_87.png rename to pk3DS.WinForms/Resources/img/item/item_87.png diff --git a/pk3DS/Resources/img/item/item_879.png b/pk3DS.WinForms/Resources/img/item/item_879.png similarity index 100% rename from pk3DS/Resources/img/item/item_879.png rename to pk3DS.WinForms/Resources/img/item/item_879.png diff --git a/pk3DS/Resources/img/item/item_88.png b/pk3DS.WinForms/Resources/img/item/item_88.png similarity index 100% rename from pk3DS/Resources/img/item/item_88.png rename to pk3DS.WinForms/Resources/img/item/item_88.png diff --git a/pk3DS/Resources/img/item/item_880.png b/pk3DS.WinForms/Resources/img/item/item_880.png similarity index 100% rename from pk3DS/Resources/img/item/item_880.png rename to pk3DS.WinForms/Resources/img/item/item_880.png diff --git a/pk3DS/Resources/img/item/item_881.png b/pk3DS.WinForms/Resources/img/item/item_881.png similarity index 100% rename from pk3DS/Resources/img/item/item_881.png rename to pk3DS.WinForms/Resources/img/item/item_881.png diff --git a/pk3DS/Resources/img/item/item_882.png b/pk3DS.WinForms/Resources/img/item/item_882.png similarity index 100% rename from pk3DS/Resources/img/item/item_882.png rename to pk3DS.WinForms/Resources/img/item/item_882.png diff --git a/pk3DS/Resources/img/item/item_883.png b/pk3DS.WinForms/Resources/img/item/item_883.png similarity index 100% rename from pk3DS/Resources/img/item/item_883.png rename to pk3DS.WinForms/Resources/img/item/item_883.png diff --git a/pk3DS/Resources/img/item/item_884.png b/pk3DS.WinForms/Resources/img/item/item_884.png similarity index 100% rename from pk3DS/Resources/img/item/item_884.png rename to pk3DS.WinForms/Resources/img/item/item_884.png diff --git a/pk3DS/Resources/img/item/item_89.png b/pk3DS.WinForms/Resources/img/item/item_89.png similarity index 100% rename from pk3DS/Resources/img/item/item_89.png rename to pk3DS.WinForms/Resources/img/item/item_89.png diff --git a/pk3DS/Resources/img/item/item_9.png b/pk3DS.WinForms/Resources/img/item/item_9.png similarity index 100% rename from pk3DS/Resources/img/item/item_9.png rename to pk3DS.WinForms/Resources/img/item/item_9.png diff --git a/pk3DS/Resources/img/item/item_90.png b/pk3DS.WinForms/Resources/img/item/item_90.png similarity index 100% rename from pk3DS/Resources/img/item/item_90.png rename to pk3DS.WinForms/Resources/img/item/item_90.png diff --git a/pk3DS/Resources/img/item/item_904.png b/pk3DS.WinForms/Resources/img/item/item_904.png similarity index 100% rename from pk3DS/Resources/img/item/item_904.png rename to pk3DS.WinForms/Resources/img/item/item_904.png diff --git a/pk3DS/Resources/img/item/item_905.png b/pk3DS.WinForms/Resources/img/item/item_905.png similarity index 100% rename from pk3DS/Resources/img/item/item_905.png rename to pk3DS.WinForms/Resources/img/item/item_905.png diff --git a/pk3DS/Resources/img/item/item_906.png b/pk3DS.WinForms/Resources/img/item/item_906.png similarity index 100% rename from pk3DS/Resources/img/item/item_906.png rename to pk3DS.WinForms/Resources/img/item/item_906.png diff --git a/pk3DS/Resources/img/item/item_907.png b/pk3DS.WinForms/Resources/img/item/item_907.png similarity index 100% rename from pk3DS/Resources/img/item/item_907.png rename to pk3DS.WinForms/Resources/img/item/item_907.png diff --git a/pk3DS/Resources/img/item/item_908.png b/pk3DS.WinForms/Resources/img/item/item_908.png similarity index 100% rename from pk3DS/Resources/img/item/item_908.png rename to pk3DS.WinForms/Resources/img/item/item_908.png diff --git a/pk3DS/Resources/img/item/item_909.png b/pk3DS.WinForms/Resources/img/item/item_909.png similarity index 100% rename from pk3DS/Resources/img/item/item_909.png rename to pk3DS.WinForms/Resources/img/item/item_909.png diff --git a/pk3DS/Resources/img/item/item_91.png b/pk3DS.WinForms/Resources/img/item/item_91.png similarity index 100% rename from pk3DS/Resources/img/item/item_91.png rename to pk3DS.WinForms/Resources/img/item/item_91.png diff --git a/pk3DS/Resources/img/item/item_910.png b/pk3DS.WinForms/Resources/img/item/item_910.png similarity index 100% rename from pk3DS/Resources/img/item/item_910.png rename to pk3DS.WinForms/Resources/img/item/item_910.png diff --git a/pk3DS/Resources/img/item/item_911.png b/pk3DS.WinForms/Resources/img/item/item_911.png similarity index 100% rename from pk3DS/Resources/img/item/item_911.png rename to pk3DS.WinForms/Resources/img/item/item_911.png diff --git a/pk3DS/Resources/img/item/item_912.png b/pk3DS.WinForms/Resources/img/item/item_912.png similarity index 100% rename from pk3DS/Resources/img/item/item_912.png rename to pk3DS.WinForms/Resources/img/item/item_912.png diff --git a/pk3DS/Resources/img/item/item_913.png b/pk3DS.WinForms/Resources/img/item/item_913.png similarity index 100% rename from pk3DS/Resources/img/item/item_913.png rename to pk3DS.WinForms/Resources/img/item/item_913.png diff --git a/pk3DS/Resources/img/item/item_914.png b/pk3DS.WinForms/Resources/img/item/item_914.png similarity index 100% rename from pk3DS/Resources/img/item/item_914.png rename to pk3DS.WinForms/Resources/img/item/item_914.png diff --git a/pk3DS/Resources/img/item/item_915.png b/pk3DS.WinForms/Resources/img/item/item_915.png similarity index 100% rename from pk3DS/Resources/img/item/item_915.png rename to pk3DS.WinForms/Resources/img/item/item_915.png diff --git a/pk3DS/Resources/img/item/item_916.png b/pk3DS.WinForms/Resources/img/item/item_916.png similarity index 100% rename from pk3DS/Resources/img/item/item_916.png rename to pk3DS.WinForms/Resources/img/item/item_916.png diff --git a/pk3DS/Resources/img/item/item_917.png b/pk3DS.WinForms/Resources/img/item/item_917.png similarity index 100% rename from pk3DS/Resources/img/item/item_917.png rename to pk3DS.WinForms/Resources/img/item/item_917.png diff --git a/pk3DS/Resources/img/item/item_918.png b/pk3DS.WinForms/Resources/img/item/item_918.png similarity index 100% rename from pk3DS/Resources/img/item/item_918.png rename to pk3DS.WinForms/Resources/img/item/item_918.png diff --git a/pk3DS/Resources/img/item/item_919.png b/pk3DS.WinForms/Resources/img/item/item_919.png similarity index 100% rename from pk3DS/Resources/img/item/item_919.png rename to pk3DS.WinForms/Resources/img/item/item_919.png diff --git a/pk3DS/Resources/img/item/item_92.png b/pk3DS.WinForms/Resources/img/item/item_92.png similarity index 100% rename from pk3DS/Resources/img/item/item_92.png rename to pk3DS.WinForms/Resources/img/item/item_92.png diff --git a/pk3DS/Resources/img/item/item_920.png b/pk3DS.WinForms/Resources/img/item/item_920.png similarity index 100% rename from pk3DS/Resources/img/item/item_920.png rename to pk3DS.WinForms/Resources/img/item/item_920.png diff --git a/pk3DS/Resources/img/item/item_921.png b/pk3DS.WinForms/Resources/img/item/item_921.png similarity index 100% rename from pk3DS/Resources/img/item/item_921.png rename to pk3DS.WinForms/Resources/img/item/item_921.png diff --git a/pk3DS/Resources/img/item/item_922.png b/pk3DS.WinForms/Resources/img/item/item_922.png similarity index 100% rename from pk3DS/Resources/img/item/item_922.png rename to pk3DS.WinForms/Resources/img/item/item_922.png diff --git a/pk3DS/Resources/img/item/item_923.png b/pk3DS.WinForms/Resources/img/item/item_923.png similarity index 100% rename from pk3DS/Resources/img/item/item_923.png rename to pk3DS.WinForms/Resources/img/item/item_923.png diff --git a/pk3DS/Resources/img/item/item_924.png b/pk3DS.WinForms/Resources/img/item/item_924.png similarity index 100% rename from pk3DS/Resources/img/item/item_924.png rename to pk3DS.WinForms/Resources/img/item/item_924.png diff --git a/pk3DS/Resources/img/item/item_925.png b/pk3DS.WinForms/Resources/img/item/item_925.png similarity index 100% rename from pk3DS/Resources/img/item/item_925.png rename to pk3DS.WinForms/Resources/img/item/item_925.png diff --git a/pk3DS/Resources/img/item/item_926.png b/pk3DS.WinForms/Resources/img/item/item_926.png similarity index 100% rename from pk3DS/Resources/img/item/item_926.png rename to pk3DS.WinForms/Resources/img/item/item_926.png diff --git a/pk3DS/Resources/img/item/item_93.png b/pk3DS.WinForms/Resources/img/item/item_93.png similarity index 100% rename from pk3DS/Resources/img/item/item_93.png rename to pk3DS.WinForms/Resources/img/item/item_93.png diff --git a/pk3DS/Resources/img/item/item_94.png b/pk3DS.WinForms/Resources/img/item/item_94.png similarity index 100% rename from pk3DS/Resources/img/item/item_94.png rename to pk3DS.WinForms/Resources/img/item/item_94.png diff --git a/pk3DS/Resources/img/item/item_95.png b/pk3DS.WinForms/Resources/img/item/item_95.png similarity index 100% rename from pk3DS/Resources/img/item/item_95.png rename to pk3DS.WinForms/Resources/img/item/item_95.png diff --git a/pk3DS/Resources/img/item/item_96.png b/pk3DS.WinForms/Resources/img/item/item_96.png similarity index 100% rename from pk3DS/Resources/img/item/item_96.png rename to pk3DS.WinForms/Resources/img/item/item_96.png diff --git a/pk3DS/Resources/img/item/item_97.png b/pk3DS.WinForms/Resources/img/item/item_97.png similarity index 100% rename from pk3DS/Resources/img/item/item_97.png rename to pk3DS.WinForms/Resources/img/item/item_97.png diff --git a/pk3DS/Resources/img/item/item_98.png b/pk3DS.WinForms/Resources/img/item/item_98.png similarity index 100% rename from pk3DS/Resources/img/item/item_98.png rename to pk3DS.WinForms/Resources/img/item/item_98.png diff --git a/pk3DS/Resources/img/item/item_99.png b/pk3DS.WinForms/Resources/img/item/item_99.png similarity index 100% rename from pk3DS/Resources/img/item/item_99.png rename to pk3DS.WinForms/Resources/img/item/item_99.png diff --git a/pk3DS/Resources/img/moon.png b/pk3DS.WinForms/Resources/img/moon.png similarity index 100% rename from pk3DS/Resources/img/moon.png rename to pk3DS.WinForms/Resources/img/moon.png diff --git a/pk3DS/Resources/img/rare_icon.png b/pk3DS.WinForms/Resources/img/rare_icon.png similarity index 100% rename from pk3DS/Resources/img/rare_icon.png rename to pk3DS.WinForms/Resources/img/rare_icon.png diff --git a/pk3DS/Resources/img/slotDel.png b/pk3DS.WinForms/Resources/img/slotDel.png similarity index 100% rename from pk3DS/Resources/img/slotDel.png rename to pk3DS.WinForms/Resources/img/slotDel.png diff --git a/pk3DS/Resources/img/slotSet.png b/pk3DS.WinForms/Resources/img/slotSet.png similarity index 100% rename from pk3DS/Resources/img/slotSet.png rename to pk3DS.WinForms/Resources/img/slotSet.png diff --git a/pk3DS/Resources/img/slotView.png b/pk3DS.WinForms/Resources/img/slotView.png similarity index 100% rename from pk3DS/Resources/img/slotView.png rename to pk3DS.WinForms/Resources/img/slotView.png diff --git a/pk3DS/Resources/img/sun.png b/pk3DS.WinForms/Resources/img/sun.png similarity index 100% rename from pk3DS/Resources/img/sun.png rename to pk3DS.WinForms/Resources/img/sun.png diff --git a/pk3DS.WinForms/Subforms/EnhancedRestore.Designer.cs b/pk3DS.WinForms/Subforms/EnhancedRestore.Designer.cs new file mode 100644 index 0000000000..3c2157e2cd --- /dev/null +++ b/pk3DS.WinForms/Subforms/EnhancedRestore.Designer.cs @@ -0,0 +1,126 @@ +namespace pk3DS.WinForms; + +partial class EnhancedRestore +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.tabControl1 = new System.Windows.Forms.TabControl(); + this.tabPage1 = new System.Windows.Forms.TabPage(); + this.tabPage2 = new System.Windows.Forms.TabPage(); + this.tabPage3 = new System.Windows.Forms.TabPage(); + this.B_Go = new System.Windows.Forms.Button(); + this.B_All = new System.Windows.Forms.Button(); + this.tabControl1.SuspendLayout(); + this.SuspendLayout(); + // + // tabControl1 + // + this.tabControl1.Controls.Add(this.tabPage1); + this.tabControl1.Controls.Add(this.tabPage2); + this.tabControl1.Controls.Add(this.tabPage3); + this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.tabControl1.Location = new System.Drawing.Point(0, 0); + this.tabControl1.Name = "tabControl1"; + this.tabControl1.SelectedIndex = 0; + this.tabControl1.Size = new System.Drawing.Size(284, 261); + this.tabControl1.TabIndex = 0; + // + // tabPage1 + // + this.tabPage1.Location = new System.Drawing.Point(4, 22); + this.tabPage1.Name = "tabPage1"; + this.tabPage1.Padding = new System.Windows.Forms.Padding(3); + this.tabPage1.Size = new System.Drawing.Size(276, 235); + this.tabPage1.TabIndex = 0; + this.tabPage1.Text = "GARC"; + this.tabPage1.UseVisualStyleBackColor = true; + // + // tabPage2 + // + this.tabPage2.Location = new System.Drawing.Point(4, 22); + this.tabPage2.Name = "tabPage2"; + this.tabPage2.Padding = new System.Windows.Forms.Padding(3); + this.tabPage2.Size = new System.Drawing.Size(276, 235); + this.tabPage2.TabIndex = 1; + this.tabPage2.Text = "ExeFS"; + this.tabPage2.UseVisualStyleBackColor = true; + // + // tabPage3 + // + this.tabPage3.Location = new System.Drawing.Point(4, 22); + this.tabPage3.Name = "tabPage3"; + this.tabPage3.Size = new System.Drawing.Size(276, 235); + this.tabPage3.TabIndex = 2; + this.tabPage3.Text = "CRO"; + this.tabPage3.UseVisualStyleBackColor = true; + // + // B_Go + // + this.B_Go.Location = new System.Drawing.Point(206, -1); + this.B_Go.Name = "B_Go"; + this.B_Go.Size = new System.Drawing.Size(75, 23); + this.B_Go.TabIndex = 0; + this.B_Go.Text = "OK"; + this.B_Go.UseVisualStyleBackColor = true; + this.B_Go.Click += new System.EventHandler(this.B_Go_Click); + // + // B_All + // + this.B_All.Location = new System.Drawing.Point(156, -1); + this.B_All.Name = "B_All"; + this.B_All.Size = new System.Drawing.Size(45, 23); + this.B_All.TabIndex = 1; + this.B_All.Text = "All"; + this.B_All.UseVisualStyleBackColor = true; + this.B_All.Click += new System.EventHandler(this.B_All_Click); + // + // EnhancedRestore + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(284, 261); + this.Controls.Add(this.B_Go); + this.Controls.Add(this.B_All); + this.Controls.Add(this.tabControl1); + this.MaximizeBox = false; + this.Name = "EnhancedRestore"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "File Restore"; + this.tabControl1.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.TabControl tabControl1; + private System.Windows.Forms.TabPage tabPage1; + private System.Windows.Forms.TabPage tabPage2; + private System.Windows.Forms.TabPage tabPage3; + private System.Windows.Forms.Button B_Go; + private System.Windows.Forms.Button B_All; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/EnhancedRestore.cs b/pk3DS.WinForms/Subforms/EnhancedRestore.cs new file mode 100644 index 0000000000..b9f7228b40 --- /dev/null +++ b/pk3DS.WinForms/Subforms/EnhancedRestore.cs @@ -0,0 +1,160 @@ +using System; +using System.Collections.Generic; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Windows.Forms; + +using pk3DS.Core; + +namespace pk3DS.WinForms; + +public partial class EnhancedRestore : Form +{ + public EnhancedRestore(GameConfig config) + { + InitializeComponent(); + LoadBackupFileInfo(config); + } + + private void LoadBackupFileInfo(GameConfig config) + { + var gamePath = new DirectoryInfo(config.RomFS).Parent; + string gameFolder = gamePath.Name; + string gameBackup = Path.Combine(GameBackup.bakpath, gameFolder); + + string bak_a = Path.Combine(gameBackup, GameBackup.baka); + string bak_exefs = Path.Combine(gameBackup, GameBackup.bakexefs); + string bak_dll = Path.Combine(gameBackup, GameBackup.bakdll); + + var garcs = GetRestorableGarcs(config, bak_a); + var exefs = GetRestorableExeFS(config, bak_exefs); + var cros = GetRestorableCROs(config, bak_dll); + + var files = new[] { garcs, exefs, cros }; + + // load files to UI + for (int i = 0; i < files.Length; i++) + { + var tab = tabControl1.TabPages[i]; + var clb = new CheckedListBox + { + Dock = DockStyle.Fill, + CheckOnClick = true, + Margin = new Padding(0), + Padding = new Padding(0), + }; + foreach (var z in files[i]) + { + Items[i].Add(z); + clb.Items.Add(z.DisplayName, true); + } + List.Add(clb); + tab.Controls.Add(clb); + } + } + + private static IEnumerable GetRestorableCROs(GameConfig config, string bak_dll) + { + string path = config.RomFS; + string[] files = Directory.GetFiles(path); + string[] CROs = files.Where(x => new FileInfo(x).Name.Contains("Dll")).ToArray(); + string[] CRSs = files.Where(x => new FileInfo(x).Extension.Contains("crs")).ToArray(); + var CRRs = Directory.Exists(Path.Combine(path, ".crr")) + ? Directory.EnumerateFiles(Path.Combine(path, ".crr")) + : []; + string CRRBAKPATH = Path.Combine(bak_dll, ".crr"); + + foreach (string src in CROs.Concat(CRSs)) + { + string dest = Path.Combine(bak_dll, Path.GetFileName(src)); + if (File.Exists(dest)) + yield return new RestoreInfo(dest, src); + } + + // Separate folder for the .crr + foreach (string src in CRRs) + { + string dest = Path.Combine(CRRBAKPATH, Path.GetFileName(src)); + if (File.Exists(dest)) + yield return new RestoreInfo(dest, src); + } + } + + private static IEnumerable GetRestorableGarcs(GameConfig config, string bak_a) + { + var files = config.Files.Select(file => file.Name); + foreach (var f in files) + { + string GARC = config.GetGARCFileName(f); + string name = $"{f} ({GARC.Replace(Path.DirectorySeparatorChar.ToString(), "")})"; + + string src = Path.Combine(config.RomFS, GARC); + string dest = Path.Combine(bak_a, name); + + if (!File.Exists(dest)) + continue; + string dispname = Path.GetFileNameWithoutExtension(dest); + var split = dispname.Split(' '); + dispname = $"{split[1]} {split[0]}"; + yield return new RestoreInfo(dest, src, dispname); + } + } + + private static IEnumerable GetRestorableExeFS(GameConfig config, string bak_exefs) + { + var files = Directory.GetFiles(config.ExeFS); + foreach (var src in files) + { + string dest = Path.Combine(bak_exefs, Path.GetFileName(src)); + + if (File.Exists(dest)) + yield return new RestoreInfo(dest, src); + } + } + + private class RestoreInfo(string src, string dest, string disp = null) + { + public readonly string DisplayName = disp ?? Path.GetFileName(src); + public readonly string FileLocation = src; + public readonly string Destination = dest; + } + + private readonly List> Items = []; + private readonly List List = []; + + private void B_Go_Click(object sender, EventArgs e) + { + // restore files that are selected + int count = 0; + for (int i = 0; i < List.Count; i++) + { + for (int j = 0; j < List[i].Items.Count; j++) + { + if (!List[i].GetItemChecked(j)) + continue; + + var item = Items[i][j]; + string dest = item.Destination; + string src = item.FileLocation; + + try + { + if (File.Exists(src)) // only restore files that exist + File.Copy(src, dest, overwrite: true); count++; + } + catch { Debug.WriteLine("Unable to overwrite backup: " + dest); } + } + } + + WinFormsUtil.Alert($"Restored {count} file(s).", "The program will now close."); + Environment.Exit(-1); // do not call closing events that repackage personal/gametext + } + + private void B_All_Click(object sender, EventArgs e) + { + var clb = List[tabControl1.SelectedIndex]; + for (int i = 0; i < clb.Items.Count; i++) + clb.SetItemChecked(i, ModifierKeys != Keys.Control); + } +} \ No newline at end of file diff --git a/pk3DS/Subforms/EnhancedRestore.resx b/pk3DS.WinForms/Subforms/EnhancedRestore.resx similarity index 100% rename from pk3DS/Subforms/EnhancedRestore.resx rename to pk3DS.WinForms/Subforms/EnhancedRestore.resx diff --git a/pk3DS.WinForms/Subforms/FormUtil.cs b/pk3DS.WinForms/Subforms/FormUtil.cs new file mode 100644 index 0000000000..2ba68c6014 --- /dev/null +++ b/pk3DS.WinForms/Subforms/FormUtil.cs @@ -0,0 +1,24 @@ +using System.Windows.Forms; + +namespace pk3DS.WinForms; + +public static class FormUtil +{ + // Utility (Shared) + internal static void SetForms(int species, ComboBox cb, string[][] AltForms) + { + cb.Items.Clear(); + string[] forms = AltForms[species]; + if (forms.Length < 2) + { + cb.Items.Add(""); + cb.Enabled = false; + } + else + { + cb.Items.AddRange(forms); + cb.Enabled = true; + } + cb.SelectedIndex = 0; + } +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen6/EggMoveEditor6.Designer.cs b/pk3DS.WinForms/Subforms/Gen6/EggMoveEditor6.Designer.cs new file mode 100644 index 0000000000..afa43f50c3 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/EggMoveEditor6.Designer.cs @@ -0,0 +1,263 @@ +namespace pk3DS.WinForms; + +partial class EggMoveEditor6 +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.dgv = new System.Windows.Forms.DataGridView(); + this.CB_Species = new System.Windows.Forms.ComboBox(); + this.L_Species = new System.Windows.Forms.Label(); + this.B_RandAll = new System.Windows.Forms.Button(); + this.B_Dump = new System.Windows.Forms.Button(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.L_Moves = new System.Windows.Forms.Label(); + this.NUD_Moves = new System.Windows.Forms.NumericUpDown(); + this.CHK_Expand = new System.Windows.Forms.CheckBox(); + this.L_STAB = new System.Windows.Forms.Label(); + this.NUD_STAB = new System.Windows.Forms.NumericUpDown(); + this.CHK_STAB = new System.Windows.Forms.CheckBox(); + this.CHK_HMs = new System.Windows.Forms.CheckBox(); + this.PB_MonSprite = new System.Windows.Forms.PictureBox(); + ((System.ComponentModel.ISupportInitialize)(this.dgv)).BeginInit(); + this.groupBox1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Moves)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_STAB)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_MonSprite)).BeginInit(); + this.SuspendLayout(); + // + // dgv + // + this.dgv.AllowUserToResizeColumns = false; + this.dgv.AllowUserToResizeRows = false; + this.dgv.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dgv.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgv.Location = new System.Drawing.Point(12, 41); + this.dgv.Name = "dgv"; + this.dgv.Size = new System.Drawing.Size(282, 359); + this.dgv.TabIndex = 0; + // + // CB_Species + // + this.CB_Species.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Species.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Species.FormattingEnabled = true; + this.CB_Species.Location = new System.Drawing.Point(66, 12); + this.CB_Species.Name = "CB_Species"; + this.CB_Species.Size = new System.Drawing.Size(121, 21); + this.CB_Species.TabIndex = 1; + this.CB_Species.SelectedIndexChanged += new System.EventHandler(this.ChangeEntry); + // + // L_Species + // + this.L_Species.AutoSize = true; + this.L_Species.Location = new System.Drawing.Point(12, 15); + this.L_Species.Name = "L_Species"; + this.L_Species.Size = new System.Drawing.Size(48, 13); + this.L_Species.TabIndex = 2; + this.L_Species.Text = "Species:"; + // + // B_RandAll + // + this.B_RandAll.Location = new System.Drawing.Point(300, 10); + this.B_RandAll.Name = "B_RandAll"; + this.B_RandAll.Size = new System.Drawing.Size(95, 23); + this.B_RandAll.TabIndex = 4; + this.B_RandAll.Text = "Randomize!"; + this.B_RandAll.UseVisualStyleBackColor = true; + this.B_RandAll.Click += new System.EventHandler(this.B_RandAll_Click); + // + // B_Dump + // + this.B_Dump.Location = new System.Drawing.Point(248, 10); + this.B_Dump.Name = "B_Dump"; + this.B_Dump.Size = new System.Drawing.Size(46, 23); + this.B_Dump.TabIndex = 5; + this.B_Dump.Text = "Dump"; + this.B_Dump.UseVisualStyleBackColor = true; + this.B_Dump.Click += new System.EventHandler(this.B_Dump_Click); + // + // groupBox1 + // + this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupBox1.Controls.Add(this.L_Moves); + this.groupBox1.Controls.Add(this.NUD_Moves); + this.groupBox1.Controls.Add(this.CHK_Expand); + this.groupBox1.Controls.Add(this.L_STAB); + this.groupBox1.Controls.Add(this.NUD_STAB); + this.groupBox1.Controls.Add(this.CHK_STAB); + this.groupBox1.Controls.Add(this.CHK_HMs); + this.groupBox1.Location = new System.Drawing.Point(300, 39); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(95, 362); + this.groupBox1.TabIndex = 7; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Options"; + // + // L_Moves + // + this.L_Moves.AutoSize = true; + this.L_Moves.Location = new System.Drawing.Point(10, 130); + this.L_Moves.Name = "L_Moves"; + this.L_Moves.Size = new System.Drawing.Size(42, 13); + this.L_Moves.TabIndex = 10; + this.L_Moves.Text = "Moves:"; + // + // NUD_Moves + // + this.NUD_Moves.Location = new System.Drawing.Point(53, 128); + this.NUD_Moves.Maximum = new decimal(new int[] { + 30, + 0, + 0, + 0}); + this.NUD_Moves.Minimum = new decimal(new int[] { + 18, + 0, + 0, + 0}); + this.NUD_Moves.Name = "NUD_Moves"; + this.NUD_Moves.Size = new System.Drawing.Size(36, 20); + this.NUD_Moves.TabIndex = 9; + this.NUD_Moves.Value = new decimal(new int[] { + 18, + 0, + 0, + 0}); + // + // CHK_Expand + // + this.CHK_Expand.AutoSize = true; + this.CHK_Expand.Location = new System.Drawing.Point(5, 110); + this.CHK_Expand.Name = "CHK_Expand"; + this.CHK_Expand.Size = new System.Drawing.Size(86, 17); + this.CHK_Expand.TabIndex = 8; + this.CHK_Expand.Text = "Expand Pool"; + this.CHK_Expand.UseVisualStyleBackColor = true; + // + // L_STAB + // + this.L_STAB.AutoSize = true; + this.L_STAB.Location = new System.Drawing.Point(6, 74); + this.L_STAB.Name = "L_STAB"; + this.L_STAB.Size = new System.Drawing.Size(46, 13); + this.L_STAB.TabIndex = 3; + this.L_STAB.Text = "% STAB"; + // + // NUD_STAB + // + this.NUD_STAB.Location = new System.Drawing.Point(53, 72); + this.NUD_STAB.Minimum = new decimal(new int[] { + 5, + 0, + 0, + 0}); + this.NUD_STAB.Name = "NUD_STAB"; + this.NUD_STAB.Size = new System.Drawing.Size(36, 20); + this.NUD_STAB.TabIndex = 2; + this.NUD_STAB.Value = new decimal(new int[] { + 32, + 0, + 0, + 0}); + // + // CHK_STAB + // + this.CHK_STAB.AutoSize = true; + this.CHK_STAB.Location = new System.Drawing.Point(5, 54); + this.CHK_STAB.Name = "CHK_STAB"; + this.CHK_STAB.Size = new System.Drawing.Size(87, 17); + this.CHK_STAB.TabIndex = 1; + this.CHK_STAB.Text = "Bias by Type"; + this.CHK_STAB.UseVisualStyleBackColor = true; + // + // CHK_HMs + // + this.CHK_HMs.AutoSize = true; + this.CHK_HMs.Location = new System.Drawing.Point(5, 19); + this.CHK_HMs.Name = "CHK_HMs"; + this.CHK_HMs.Size = new System.Drawing.Size(76, 17); + this.CHK_HMs.TabIndex = 0; + this.CHK_HMs.Text = "Allow HMs"; + this.CHK_HMs.UseVisualStyleBackColor = true; + // + // PB_MonSprite + // + this.PB_MonSprite.Location = new System.Drawing.Point(193, 5); + this.PB_MonSprite.Name = "PB_MonSprite"; + this.PB_MonSprite.Size = new System.Drawing.Size(40, 30); + this.PB_MonSprite.TabIndex = 91; + this.PB_MonSprite.TabStop = false; + // + // EggMove + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(404, 412); + this.Controls.Add(this.PB_MonSprite); + this.Controls.Add(this.groupBox1); + this.Controls.Add(this.B_Dump); + this.Controls.Add(this.B_RandAll); + this.Controls.Add(this.L_Species); + this.Controls.Add(this.CB_Species); + this.Controls.Add(this.dgv); + this.MaximizeBox = false; + this.MinimumSize = new System.Drawing.Size(322, 450); + this.Name = "EggMove"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Egg Move Editor"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form_Closing); + ((System.ComponentModel.ISupportInitialize)(this.dgv)).EndInit(); + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Moves)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_STAB)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_MonSprite)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.DataGridView dgv; + private System.Windows.Forms.ComboBox CB_Species; + private System.Windows.Forms.Label L_Species; + private System.Windows.Forms.Button B_RandAll; + private System.Windows.Forms.Button B_Dump; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Label L_Moves; + private System.Windows.Forms.NumericUpDown NUD_Moves; + private System.Windows.Forms.CheckBox CHK_Expand; + private System.Windows.Forms.Label L_STAB; + private System.Windows.Forms.NumericUpDown NUD_STAB; + private System.Windows.Forms.CheckBox CHK_STAB; + private System.Windows.Forms.CheckBox CHK_HMs; + private System.Windows.Forms.PictureBox PB_MonSprite; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen6/EggMoveEditor6.cs b/pk3DS.WinForms/Subforms/Gen6/EggMoveEditor6.cs new file mode 100644 index 0000000000..ebdbbeecb8 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/EggMoveEditor6.cs @@ -0,0 +1,199 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Media; +using System.Text; +using System.Windows.Forms; +using pk3DS.Core.Structures; +using pk3DS.Core; +using pk3DS.Core.Randomizers; +using pk3DS.WinForms.Properties; + +namespace pk3DS.WinForms; + +public partial class EggMoveEditor6 : Form +{ + public EggMoveEditor6(byte[][] infiles) + { + InitializeComponent(); + files = infiles; + string[] specieslist = Main.Config.GetText(TextName.SpeciesNames); + specieslist[0] = movelist[0] = ""; + + string[] sortedspecies = (string[])specieslist.Clone(); + Array.Resize(ref sortedspecies, Main.Config.MaxSpeciesID); Array.Sort(sortedspecies); + SetupDGV(); + + var newlist = new List(); + for (int i = 1; i < Main.Config.MaxSpeciesID; i++) // add all species + newlist.Add(new ComboItem { Text = sortedspecies[i], Value = Array.IndexOf(specieslist, sortedspecies[i]) }); + + CB_Species.DisplayMember = "Text"; + CB_Species.ValueMember = "Value"; + CB_Species.DataSource = newlist; + CB_Species.SelectedIndex = 0; + RandSettings.GetFormSettings(this, groupBox1.Controls); + } + + private readonly byte[][] files; + private int entry = -1; + private readonly string[] movelist = Main.Config.GetText(TextName.MoveNames); + private bool dumping; + + private void SetupDGV() + { + string[] sortedmoves = (string[])movelist.Clone(); + Array.Sort(sortedmoves); + var dgvMove = new DataGridViewComboBoxColumn(); + { + dgvMove.HeaderText = "Move"; + dgvMove.DisplayIndex = 0; + for (int i = 0; i < movelist.Length; i++) + dgvMove.Items.Add(sortedmoves[i]); // add only the Names + + dgvMove.Width = 135; + dgvMove.FlatStyle = FlatStyle.Flat; + } + dgv.Columns.Add(dgvMove); + } + + private EggMoves6 pkm = new([]); + + private void GetList() + { + entry = WinFormsUtil.GetIndex(CB_Species); + + int[] specForm = Main.Config.Personal.GetSpeciesForm(entry, Main.Config); + string filename = "_" + specForm[0] + (entry > 721 ? "_" + (specForm[1] + 1) : ""); + PB_MonSprite.Image = (Bitmap)Resources.ResourceManager.GetObject(filename); + + dgv.Rows.Clear(); + byte[] input = files[entry]; + if (input.Length == 0) return; + pkm = new EggMoves6(input); + if (pkm.Count < 1) { files[entry] = []; return; } + dgv.Rows.Add(pkm.Count); + + // Fill Entries + for (int i = 0; i < pkm.Count; i++) + dgv.Rows[i].Cells[0].Value = movelist[pkm.Moves[i]]; + + dgv.CancelEdit(); + } + + private void SetList() + { + if (entry < 1 || dumping) return; + List moves = []; + for (int i = 0; i < dgv.Rows.Count - 1; i++) + { + int move = Array.IndexOf(movelist, dgv.Rows[i].Cells[0].Value); + if (move > 0 && !moves.Contains((ushort)move)) moves.Add(move); + } + pkm.Moves = [.. moves]; + + files[entry] = pkm.Write(); + } + + private void ChangeEntry(object sender, EventArgs e) + { + SetList(); + GetList(); + } + + private void B_RandAll_Click(object sender, EventArgs e) + { + ushort[] HMs = [15, 19, 57, 70, 127, 249, 291]; + if (CHK_HMs.Checked && Main.ExeFSPath != null) + TMHMEditor6.GetTMHMList(out _, out HMs); + + List banned = [165, 621]; // Struggle, Hyperspace Fury + if (!CHK_HMs.Checked) + banned.AddRange(HMs.Select(z => (int)z)); + + SetList(); + var sets = files.Select(z => new EggMoves6(z)).ToArray(); + var rand = new EggMoveRandomizer(Main.Config, sets) + { + Expand = CHK_Expand.Checked, + ExpandTo = (int)NUD_Moves.Value, + STAB = CHK_STAB.Checked, + STABPercent = NUD_STAB.Value, + BannedMoves = [.. banned], + }; + rand.Execute(); + sets.Select(z => z.Write()).ToArray().CopyTo(files, 0); + GetList(); + WinFormsUtil.Alert("All Pokémon's Egg Moves have been randomized!", "Press the Dump button to see the new Egg Moves!"); + } + + private void B_Dump_Click(object sender, EventArgs e) + { + if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Dump all Egg Moves to Text File?")) + return; + + dumping = true; + string result = ""; + for (int i = 0; i < CB_Species.Items.Count; i++) + { + CB_Species.SelectedIndex = i; // Get new Species + result += "======" + Environment.NewLine + entry + " " + CB_Species.Text + Environment.NewLine + "======" + Environment.NewLine; + for (int j = 0; j < dgv.Rows.Count - 1; j++) + result += dgv.Rows[j].Cells[0].Value + Environment.NewLine; + + result += Environment.NewLine; + } + var sfd = new SaveFileDialog { FileName = "Egg Moves.txt", Filter = "Text File|*.txt" }; + + SystemSounds.Asterisk.Play(); + if (sfd.ShowDialog() == DialogResult.OK) + { + string path = sfd.FileName; + File.WriteAllText(path, result, Encoding.Unicode); + } + dumping = false; + } + + private void Form_Closing(object sender, FormClosingEventArgs e) + { + SetList(); + RandSettings.SetFormSettings(this, groupBox1.Controls); + } + + public void CalcStats() + { + Move[] MoveData = Main.Config.Moves; + + int movectr = 0; + int max = 0; + int spec = 0; + int stab = 0; + int species = 0; + for (int i = 0; i < Main.Config.MaxSpeciesID; i++) + { + byte[] movedata = files[i]; + if (movedata.Length <= 2) continue; + int movecount = BitConverter.ToUInt16(movedata, 0); + if (movecount == 65535) + continue; + species++; + movectr += movecount; // Average Moves + if (max < movecount) { max = movecount; spec = i; } // Max Moves (and species) + for (int m = 1; m < movedata.Length / 2; m++) + { + int move = BitConverter.ToUInt16(movedata, m * 2); + if (move == 65535) + { + movectr--; + continue; + } + if (Main.Config.Personal[species].Types.Contains(MoveData[move].Type)) + stab++; + } + } + WinFormsUtil.Alert( + $"Moves Learned: {movectr}\r\nMost Learned: {max} @ {spec}\r\nSTAB Count: {stab}\r\nSpecies with EggMoves: {species}"); + } +} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/EggMoveEditor6.resx b/pk3DS.WinForms/Subforms/Gen6/EggMoveEditor6.resx similarity index 100% rename from pk3DS/Subforms/Gen6/EggMoveEditor6.resx rename to pk3DS.WinForms/Subforms/Gen6/EggMoveEditor6.resx diff --git a/pk3DS.WinForms/Subforms/Gen6/EvolutionEditor6.Designer.cs b/pk3DS.WinForms/Subforms/Gen6/EvolutionEditor6.Designer.cs new file mode 100644 index 0000000000..49dbae36e2 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/EvolutionEditor6.Designer.cs @@ -0,0 +1,765 @@ +namespace pk3DS.WinForms; + +partial class EvolutionEditor6 +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.CB_Species = new System.Windows.Forms.ComboBox(); + this.L_Species = new System.Windows.Forms.Label(); + this.B_Dump = new System.Windows.Forms.Button(); + this.CB_M1 = new System.Windows.Forms.ComboBox(); + this.L_M1 = new System.Windows.Forms.Label(); + this.CB_I1 = new System.Windows.Forms.ComboBox(); + this.CB_I2 = new System.Windows.Forms.ComboBox(); + this.L_M2 = new System.Windows.Forms.Label(); + this.CB_M2 = new System.Windows.Forms.ComboBox(); + this.CB_I3 = new System.Windows.Forms.ComboBox(); + this.L_M3 = new System.Windows.Forms.Label(); + this.CB_M3 = new System.Windows.Forms.ComboBox(); + this.CB_I4 = new System.Windows.Forms.ComboBox(); + this.L_M4 = new System.Windows.Forms.Label(); + this.CB_M4 = new System.Windows.Forms.ComboBox(); + this.CB_I5 = new System.Windows.Forms.ComboBox(); + this.L_M5 = new System.Windows.Forms.Label(); + this.CB_M5 = new System.Windows.Forms.ComboBox(); + this.CB_I8 = new System.Windows.Forms.ComboBox(); + this.L_M8 = new System.Windows.Forms.Label(); + this.CB_M8 = new System.Windows.Forms.ComboBox(); + this.CB_I7 = new System.Windows.Forms.ComboBox(); + this.L_M7 = new System.Windows.Forms.Label(); + this.CB_M7 = new System.Windows.Forms.ComboBox(); + this.CB_I6 = new System.Windows.Forms.ComboBox(); + this.L_M6 = new System.Windows.Forms.Label(); + this.CB_M6 = new System.Windows.Forms.ComboBox(); + this.PB_1 = new System.Windows.Forms.PictureBox(); + this.PB_2 = new System.Windows.Forms.PictureBox(); + this.PB_4 = new System.Windows.Forms.PictureBox(); + this.PB_3 = new System.Windows.Forms.PictureBox(); + this.PB_6 = new System.Windows.Forms.PictureBox(); + this.PB_5 = new System.Windows.Forms.PictureBox(); + this.PB_8 = new System.Windows.Forms.PictureBox(); + this.PB_7 = new System.Windows.Forms.PictureBox(); + this.B_RandAll = new System.Windows.Forms.Button(); + this.GB_Randomizer = new System.Windows.Forms.GroupBox(); + this.L_Protip = new System.Windows.Forms.Label(); + this.CHK_BST = new System.Windows.Forms.CheckBox(); + this.CHK_Type = new System.Windows.Forms.CheckBox(); + this.CHK_Exp = new System.Windows.Forms.CheckBox(); + this.B_Trade = new System.Windows.Forms.Button(); + this.CB_P8 = new System.Windows.Forms.ComboBox(); + this.CB_P7 = new System.Windows.Forms.ComboBox(); + this.CB_P6 = new System.Windows.Forms.ComboBox(); + this.CB_P5 = new System.Windows.Forms.ComboBox(); + this.CB_P4 = new System.Windows.Forms.ComboBox(); + this.CB_P3 = new System.Windows.Forms.ComboBox(); + this.CB_P2 = new System.Windows.Forms.ComboBox(); + this.CB_P1 = new System.Windows.Forms.ComboBox(); + this.B_EveryLevel = new System.Windows.Forms.Button(); + this.CHK_E = new System.Windows.Forms.CheckBox(); + this.CHK_L = new System.Windows.Forms.CheckBox(); + ((System.ComponentModel.ISupportInitialize)(this.PB_1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_8)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_7)).BeginInit(); + this.GB_Randomizer.SuspendLayout(); + this.SuspendLayout(); + // + // CB_Species + // + this.CB_Species.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Species.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Species.FormattingEnabled = true; + this.CB_Species.Location = new System.Drawing.Point(58, 12); + this.CB_Species.Name = "CB_Species"; + this.CB_Species.Size = new System.Drawing.Size(121, 21); + this.CB_Species.TabIndex = 1; + this.CB_Species.SelectedIndexChanged += new System.EventHandler(this.ChangeEntry); + // + // L_Species + // + this.L_Species.AutoSize = true; + this.L_Species.Location = new System.Drawing.Point(8, 15); + this.L_Species.Name = "L_Species"; + this.L_Species.Size = new System.Drawing.Size(48, 13); + this.L_Species.TabIndex = 2; + this.L_Species.Text = "Species:"; + // + // B_Dump + // + this.B_Dump.Location = new System.Drawing.Point(183, 11); + this.B_Dump.Name = "B_Dump"; + this.B_Dump.Size = new System.Drawing.Size(59, 23); + this.B_Dump.TabIndex = 5; + this.B_Dump.Text = "Dump"; + this.B_Dump.UseVisualStyleBackColor = true; + this.B_Dump.Click += new System.EventHandler(this.B_Dump_Click); + // + // CB_M1 + // + this.CB_M1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_M1.DropDownWidth = 200; + this.CB_M1.FormattingEnabled = true; + this.CB_M1.Location = new System.Drawing.Point(79, 64); + this.CB_M1.MaxDropDownItems = 10; + this.CB_M1.Name = "CB_M1"; + this.CB_M1.Size = new System.Drawing.Size(150, 21); + this.CB_M1.TabIndex = 6; + this.CB_M1.SelectedIndexChanged += new System.EventHandler(this.ChangeMethod); + // + // L_M1 + // + this.L_M1.AutoSize = true; + this.L_M1.Location = new System.Drawing.Point(18, 67); + this.L_M1.Name = "L_M1"; + this.L_M1.Size = new System.Drawing.Size(55, 13); + this.L_M1.TabIndex = 7; + this.L_M1.Text = "Method 1:"; + // + // CB_I1 + // + this.CB_I1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_I1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_I1.FormattingEnabled = true; + this.CB_I1.Location = new System.Drawing.Point(277, 64); + this.CB_I1.Name = "CB_I1"; + this.CB_I1.Size = new System.Drawing.Size(101, 21); + this.CB_I1.TabIndex = 9; + this.CB_I1.SelectedIndexChanged += new System.EventHandler(this.ChangeInto); + // + // CB_I2 + // + this.CB_I2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_I2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_I2.FormattingEnabled = true; + this.CB_I2.Location = new System.Drawing.Point(277, 118); + this.CB_I2.Name = "CB_I2"; + this.CB_I2.Size = new System.Drawing.Size(101, 21); + this.CB_I2.TabIndex = 15; + this.CB_I2.SelectedIndexChanged += new System.EventHandler(this.ChangeInto); + // + // L_M2 + // + this.L_M2.AutoSize = true; + this.L_M2.Location = new System.Drawing.Point(18, 121); + this.L_M2.Name = "L_M2"; + this.L_M2.Size = new System.Drawing.Size(55, 13); + this.L_M2.TabIndex = 13; + this.L_M2.Text = "Method 2:"; + // + // CB_M2 + // + this.CB_M2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_M2.DropDownWidth = 200; + this.CB_M2.FormattingEnabled = true; + this.CB_M2.Location = new System.Drawing.Point(79, 118); + this.CB_M2.MaxDropDownItems = 10; + this.CB_M2.Name = "CB_M2"; + this.CB_M2.Size = new System.Drawing.Size(150, 21); + this.CB_M2.TabIndex = 12; + this.CB_M2.SelectedIndexChanged += new System.EventHandler(this.ChangeMethod); + // + // CB_I3 + // + this.CB_I3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_I3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_I3.FormattingEnabled = true; + this.CB_I3.Location = new System.Drawing.Point(277, 172); + this.CB_I3.Name = "CB_I3"; + this.CB_I3.Size = new System.Drawing.Size(101, 21); + this.CB_I3.TabIndex = 21; + this.CB_I3.SelectedIndexChanged += new System.EventHandler(this.ChangeInto); + // + // L_M3 + // + this.L_M3.AutoSize = true; + this.L_M3.Location = new System.Drawing.Point(18, 175); + this.L_M3.Name = "L_M3"; + this.L_M3.Size = new System.Drawing.Size(55, 13); + this.L_M3.TabIndex = 19; + this.L_M3.Text = "Method 3:"; + // + // CB_M3 + // + this.CB_M3.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_M3.DropDownWidth = 200; + this.CB_M3.FormattingEnabled = true; + this.CB_M3.Location = new System.Drawing.Point(79, 172); + this.CB_M3.MaxDropDownItems = 10; + this.CB_M3.Name = "CB_M3"; + this.CB_M3.Size = new System.Drawing.Size(150, 21); + this.CB_M3.TabIndex = 18; + this.CB_M3.SelectedIndexChanged += new System.EventHandler(this.ChangeMethod); + // + // CB_I4 + // + this.CB_I4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_I4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_I4.FormattingEnabled = true; + this.CB_I4.Location = new System.Drawing.Point(277, 226); + this.CB_I4.Name = "CB_I4"; + this.CB_I4.Size = new System.Drawing.Size(101, 21); + this.CB_I4.TabIndex = 27; + this.CB_I4.SelectedIndexChanged += new System.EventHandler(this.ChangeInto); + // + // L_M4 + // + this.L_M4.AutoSize = true; + this.L_M4.Location = new System.Drawing.Point(18, 229); + this.L_M4.Name = "L_M4"; + this.L_M4.Size = new System.Drawing.Size(55, 13); + this.L_M4.TabIndex = 25; + this.L_M4.Text = "Method 4:"; + // + // CB_M4 + // + this.CB_M4.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_M4.DropDownWidth = 200; + this.CB_M4.FormattingEnabled = true; + this.CB_M4.Location = new System.Drawing.Point(79, 226); + this.CB_M4.MaxDropDownItems = 10; + this.CB_M4.Name = "CB_M4"; + this.CB_M4.Size = new System.Drawing.Size(150, 21); + this.CB_M4.TabIndex = 24; + this.CB_M4.SelectedIndexChanged += new System.EventHandler(this.ChangeMethod); + // + // CB_I5 + // + this.CB_I5.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_I5.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_I5.FormattingEnabled = true; + this.CB_I5.Location = new System.Drawing.Point(277, 280); + this.CB_I5.Name = "CB_I5"; + this.CB_I5.Size = new System.Drawing.Size(101, 21); + this.CB_I5.TabIndex = 33; + this.CB_I5.SelectedIndexChanged += new System.EventHandler(this.ChangeInto); + // + // L_M5 + // + this.L_M5.AutoSize = true; + this.L_M5.Location = new System.Drawing.Point(18, 283); + this.L_M5.Name = "L_M5"; + this.L_M5.Size = new System.Drawing.Size(55, 13); + this.L_M5.TabIndex = 31; + this.L_M5.Text = "Method 5:"; + // + // CB_M5 + // + this.CB_M5.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_M5.DropDownWidth = 200; + this.CB_M5.FormattingEnabled = true; + this.CB_M5.Location = new System.Drawing.Point(79, 280); + this.CB_M5.MaxDropDownItems = 10; + this.CB_M5.Name = "CB_M5"; + this.CB_M5.Size = new System.Drawing.Size(150, 21); + this.CB_M5.TabIndex = 30; + this.CB_M5.SelectedIndexChanged += new System.EventHandler(this.ChangeMethod); + // + // CB_I8 + // + this.CB_I8.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_I8.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_I8.FormattingEnabled = true; + this.CB_I8.Location = new System.Drawing.Point(277, 442); + this.CB_I8.Name = "CB_I8"; + this.CB_I8.Size = new System.Drawing.Size(101, 21); + this.CB_I8.TabIndex = 51; + this.CB_I8.SelectedIndexChanged += new System.EventHandler(this.ChangeInto); + // + // L_M8 + // + this.L_M8.AutoSize = true; + this.L_M8.Location = new System.Drawing.Point(18, 445); + this.L_M8.Name = "L_M8"; + this.L_M8.Size = new System.Drawing.Size(55, 13); + this.L_M8.TabIndex = 49; + this.L_M8.Text = "Method 8:"; + // + // CB_M8 + // + this.CB_M8.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_M8.DropDownWidth = 200; + this.CB_M8.FormattingEnabled = true; + this.CB_M8.Location = new System.Drawing.Point(79, 442); + this.CB_M8.MaxDropDownItems = 10; + this.CB_M8.Name = "CB_M8"; + this.CB_M8.Size = new System.Drawing.Size(150, 21); + this.CB_M8.TabIndex = 48; + this.CB_M8.SelectedIndexChanged += new System.EventHandler(this.ChangeMethod); + // + // CB_I7 + // + this.CB_I7.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_I7.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_I7.FormattingEnabled = true; + this.CB_I7.Location = new System.Drawing.Point(277, 388); + this.CB_I7.Name = "CB_I7"; + this.CB_I7.Size = new System.Drawing.Size(101, 21); + this.CB_I7.TabIndex = 45; + this.CB_I7.SelectedIndexChanged += new System.EventHandler(this.ChangeInto); + // + // L_M7 + // + this.L_M7.AutoSize = true; + this.L_M7.Location = new System.Drawing.Point(18, 391); + this.L_M7.Name = "L_M7"; + this.L_M7.Size = new System.Drawing.Size(55, 13); + this.L_M7.TabIndex = 43; + this.L_M7.Text = "Method 7:"; + // + // CB_M7 + // + this.CB_M7.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_M7.DropDownWidth = 200; + this.CB_M7.FormattingEnabled = true; + this.CB_M7.Location = new System.Drawing.Point(79, 388); + this.CB_M7.MaxDropDownItems = 10; + this.CB_M7.Name = "CB_M7"; + this.CB_M7.Size = new System.Drawing.Size(150, 21); + this.CB_M7.TabIndex = 42; + this.CB_M7.SelectedIndexChanged += new System.EventHandler(this.ChangeMethod); + // + // CB_I6 + // + this.CB_I6.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_I6.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_I6.FormattingEnabled = true; + this.CB_I6.Location = new System.Drawing.Point(277, 334); + this.CB_I6.Name = "CB_I6"; + this.CB_I6.Size = new System.Drawing.Size(101, 21); + this.CB_I6.TabIndex = 39; + this.CB_I6.SelectedIndexChanged += new System.EventHandler(this.ChangeInto); + // + // L_M6 + // + this.L_M6.AutoSize = true; + this.L_M6.Location = new System.Drawing.Point(18, 337); + this.L_M6.Name = "L_M6"; + this.L_M6.Size = new System.Drawing.Size(55, 13); + this.L_M6.TabIndex = 37; + this.L_M6.Text = "Method 6:"; + // + // CB_M6 + // + this.CB_M6.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_M6.DropDownWidth = 200; + this.CB_M6.FormattingEnabled = true; + this.CB_M6.Location = new System.Drawing.Point(79, 334); + this.CB_M6.MaxDropDownItems = 10; + this.CB_M6.Name = "CB_M6"; + this.CB_M6.Size = new System.Drawing.Size(150, 21); + this.CB_M6.TabIndex = 36; + this.CB_M6.SelectedIndexChanged += new System.EventHandler(this.ChangeMethod); + // + // PB_1 + // + this.PB_1.Location = new System.Drawing.Point(235, 64); + this.PB_1.Name = "PB_1"; + this.PB_1.Size = new System.Drawing.Size(40, 30); + this.PB_1.TabIndex = 54; + this.PB_1.TabStop = false; + // + // PB_2 + // + this.PB_2.Location = new System.Drawing.Point(235, 118); + this.PB_2.Name = "PB_2"; + this.PB_2.Size = new System.Drawing.Size(40, 30); + this.PB_2.TabIndex = 55; + this.PB_2.TabStop = false; + // + // PB_4 + // + this.PB_4.Location = new System.Drawing.Point(235, 226); + this.PB_4.Name = "PB_4"; + this.PB_4.Size = new System.Drawing.Size(40, 30); + this.PB_4.TabIndex = 57; + this.PB_4.TabStop = false; + // + // PB_3 + // + this.PB_3.Location = new System.Drawing.Point(235, 172); + this.PB_3.Name = "PB_3"; + this.PB_3.Size = new System.Drawing.Size(40, 30); + this.PB_3.TabIndex = 56; + this.PB_3.TabStop = false; + // + // PB_6 + // + this.PB_6.Location = new System.Drawing.Point(235, 334); + this.PB_6.Name = "PB_6"; + this.PB_6.Size = new System.Drawing.Size(40, 30); + this.PB_6.TabIndex = 59; + this.PB_6.TabStop = false; + // + // PB_5 + // + this.PB_5.Location = new System.Drawing.Point(235, 280); + this.PB_5.Name = "PB_5"; + this.PB_5.Size = new System.Drawing.Size(40, 30); + this.PB_5.TabIndex = 58; + this.PB_5.TabStop = false; + // + // PB_8 + // + this.PB_8.Location = new System.Drawing.Point(235, 442); + this.PB_8.Name = "PB_8"; + this.PB_8.Size = new System.Drawing.Size(40, 30); + this.PB_8.TabIndex = 61; + this.PB_8.TabStop = false; + // + // PB_7 + // + this.PB_7.Location = new System.Drawing.Point(235, 388); + this.PB_7.Name = "PB_7"; + this.PB_7.Size = new System.Drawing.Size(40, 30); + this.PB_7.TabIndex = 60; + this.PB_7.TabStop = false; + // + // B_RandAll + // + this.B_RandAll.Location = new System.Drawing.Point(251, 47); + this.B_RandAll.Name = "B_RandAll"; + this.B_RandAll.Size = new System.Drawing.Size(100, 23); + this.B_RandAll.TabIndex = 62; + this.B_RandAll.Text = "Randomize All"; + this.B_RandAll.UseVisualStyleBackColor = true; + this.B_RandAll.Click += new System.EventHandler(this.B_RandAll_Click); + // + // GB_Randomizer + // + this.GB_Randomizer.Controls.Add(this.CHK_E); + this.GB_Randomizer.Controls.Add(this.CHK_L); + this.GB_Randomizer.Controls.Add(this.L_Protip); + this.GB_Randomizer.Controls.Add(this.CHK_BST); + this.GB_Randomizer.Controls.Add(this.CHK_Type); + this.GB_Randomizer.Controls.Add(this.CHK_Exp); + this.GB_Randomizer.Controls.Add(this.B_RandAll); + this.GB_Randomizer.Location = new System.Drawing.Point(21, 494); + this.GB_Randomizer.Name = "GB_Randomizer"; + this.GB_Randomizer.Size = new System.Drawing.Size(357, 108); + this.GB_Randomizer.TabIndex = 63; + this.GB_Randomizer.TabStop = false; + this.GB_Randomizer.Text = "Randomizer Options"; + // + // L_Protip + // + this.L_Protip.AutoSize = true; + this.L_Protip.ForeColor = System.Drawing.Color.Red; + this.L_Protip.Location = new System.Drawing.Point(198, 9); + this.L_Protip.Name = "L_Protip"; + this.L_Protip.Size = new System.Drawing.Size(153, 13); + this.L_Protip.TabIndex = 66; + this.L_Protip.Text = "(Protip: Difficulty++ in Personal)"; + // + // CHK_BST + // + this.CHK_BST.AutoSize = true; + this.CHK_BST.Checked = true; + this.CHK_BST.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_BST.Location = new System.Drawing.Point(6, 53); + this.CHK_BST.Name = "CHK_BST"; + this.CHK_BST.Size = new System.Drawing.Size(179, 17); + this.CHK_BST.TabIndex = 65; + this.CHK_BST.Text = "Share a similar BST as Evolution"; + this.CHK_BST.UseVisualStyleBackColor = true; + // + // CHK_Type + // + this.CHK_Type.AutoSize = true; + this.CHK_Type.Checked = true; + this.CHK_Type.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_Type.Location = new System.Drawing.Point(6, 38); + this.CHK_Type.Name = "CHK_Type"; + this.CHK_Type.Size = new System.Drawing.Size(200, 17); + this.CHK_Type.TabIndex = 64; + this.CHK_Type.Text = "Share at least one Type as Evolution"; + this.CHK_Type.UseVisualStyleBackColor = true; + // + // CHK_Exp + // + this.CHK_Exp.AutoSize = true; + this.CHK_Exp.Checked = true; + this.CHK_Exp.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_Exp.Location = new System.Drawing.Point(6, 23); + this.CHK_Exp.Name = "CHK_Exp"; + this.CHK_Exp.Size = new System.Drawing.Size(222, 17); + this.CHK_Exp.TabIndex = 63; + this.CHK_Exp.Text = "Share the same EXP Growth as Evolution"; + this.CHK_Exp.UseVisualStyleBackColor = true; + // + // B_Trade + // + this.B_Trade.Location = new System.Drawing.Point(244, 11); + this.B_Trade.Name = "B_Trade"; + this.B_Trade.Size = new System.Drawing.Size(143, 23); + this.B_Trade.TabIndex = 116; + this.B_Trade.Text = "Remove Trade Evolutions"; + this.B_Trade.UseVisualStyleBackColor = true; + this.B_Trade.Click += new System.EventHandler(this.B_Trade_Click); + // + // CB_P8 + // + this.CB_P8.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_P8.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_P8.FormattingEnabled = true; + this.CB_P8.Location = new System.Drawing.Point(79, 465); + this.CB_P8.Name = "CB_P8"; + this.CB_P8.Size = new System.Drawing.Size(121, 21); + this.CB_P8.TabIndex = 52; + // + // CB_P7 + // + this.CB_P7.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_P7.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_P7.FormattingEnabled = true; + this.CB_P7.Location = new System.Drawing.Point(79, 411); + this.CB_P7.Name = "CB_P7"; + this.CB_P7.Size = new System.Drawing.Size(121, 21); + this.CB_P7.TabIndex = 46; + // + // CB_P6 + // + this.CB_P6.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_P6.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_P6.FormattingEnabled = true; + this.CB_P6.Location = new System.Drawing.Point(79, 357); + this.CB_P6.Name = "CB_P6"; + this.CB_P6.Size = new System.Drawing.Size(121, 21); + this.CB_P6.TabIndex = 40; + // + // CB_P5 + // + this.CB_P5.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_P5.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_P5.FormattingEnabled = true; + this.CB_P5.Location = new System.Drawing.Point(79, 303); + this.CB_P5.Name = "CB_P5"; + this.CB_P5.Size = new System.Drawing.Size(121, 21); + this.CB_P5.TabIndex = 34; + // + // CB_P4 + // + this.CB_P4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_P4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_P4.FormattingEnabled = true; + this.CB_P4.Location = new System.Drawing.Point(79, 249); + this.CB_P4.Name = "CB_P4"; + this.CB_P4.Size = new System.Drawing.Size(121, 21); + this.CB_P4.TabIndex = 28; + // + // CB_P3 + // + this.CB_P3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_P3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_P3.FormattingEnabled = true; + this.CB_P3.Location = new System.Drawing.Point(79, 195); + this.CB_P3.Name = "CB_P3"; + this.CB_P3.Size = new System.Drawing.Size(121, 21); + this.CB_P3.TabIndex = 22; + // + // CB_P2 + // + this.CB_P2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_P2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_P2.FormattingEnabled = true; + this.CB_P2.Location = new System.Drawing.Point(79, 141); + this.CB_P2.Name = "CB_P2"; + this.CB_P2.Size = new System.Drawing.Size(121, 21); + this.CB_P2.TabIndex = 16; + // + // CB_P1 + // + this.CB_P1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_P1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_P1.FormattingEnabled = true; + this.CB_P1.Location = new System.Drawing.Point(79, 87); + this.CB_P1.Name = "CB_P1"; + this.CB_P1.Size = new System.Drawing.Size(121, 21); + this.CB_P1.TabIndex = 10; + // + // B_EveryLevel + // + this.B_EveryLevel.Location = new System.Drawing.Point(222, 37); + this.B_EveryLevel.Name = "B_EveryLevel"; + this.B_EveryLevel.Size = new System.Drawing.Size(165, 23); + this.B_EveryLevel.TabIndex = 117; + this.B_EveryLevel.Text = "Random Evolution Every Level"; + this.B_EveryLevel.UseVisualStyleBackColor = true; + this.B_EveryLevel.Click += new System.EventHandler(this.B_EveryLevel_Click); + // + // CHK_E + // + this.CHK_E.AutoSize = true; + this.CHK_E.Location = new System.Drawing.Point(6, 83); + this.CHK_E.Name = "CHK_E"; + this.CHK_E.Size = new System.Drawing.Size(98, 17); + this.CHK_E.TabIndex = 478; + this.CHK_E.Text = "Event Legends"; + this.CHK_E.UseVisualStyleBackColor = true; + // + // CHK_L + // + this.CHK_L.AutoSize = true; + this.CHK_L.Location = new System.Drawing.Point(6, 68); + this.CHK_L.Name = "CHK_L"; + this.CHK_L.Size = new System.Drawing.Size(98, 17); + this.CHK_L.TabIndex = 477; + this.CHK_L.Text = "Game Legends"; + this.CHK_L.UseVisualStyleBackColor = true; + // + // EvolutionEditor6 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(394, 611); + this.Controls.Add(this.B_EveryLevel); + this.Controls.Add(this.B_Trade); + this.Controls.Add(this.GB_Randomizer); + this.Controls.Add(this.PB_8); + this.Controls.Add(this.PB_7); + this.Controls.Add(this.PB_6); + this.Controls.Add(this.PB_5); + this.Controls.Add(this.PB_4); + this.Controls.Add(this.PB_3); + this.Controls.Add(this.PB_2); + this.Controls.Add(this.PB_1); + this.Controls.Add(this.CB_P8); + this.Controls.Add(this.CB_I8); + this.Controls.Add(this.L_M8); + this.Controls.Add(this.CB_M8); + this.Controls.Add(this.CB_P7); + this.Controls.Add(this.CB_I7); + this.Controls.Add(this.L_M7); + this.Controls.Add(this.CB_M7); + this.Controls.Add(this.CB_P6); + this.Controls.Add(this.CB_I6); + this.Controls.Add(this.L_M6); + this.Controls.Add(this.CB_M6); + this.Controls.Add(this.CB_P5); + this.Controls.Add(this.CB_I5); + this.Controls.Add(this.L_M5); + this.Controls.Add(this.CB_M5); + this.Controls.Add(this.CB_P4); + this.Controls.Add(this.CB_I4); + this.Controls.Add(this.L_M4); + this.Controls.Add(this.CB_M4); + this.Controls.Add(this.CB_P3); + this.Controls.Add(this.CB_I3); + this.Controls.Add(this.L_M3); + this.Controls.Add(this.CB_M3); + this.Controls.Add(this.CB_P2); + this.Controls.Add(this.CB_I2); + this.Controls.Add(this.L_M2); + this.Controls.Add(this.CB_M2); + this.Controls.Add(this.CB_P1); + this.Controls.Add(this.CB_I1); + this.Controls.Add(this.L_M1); + this.Controls.Add(this.CB_M1); + this.Controls.Add(this.B_Dump); + this.Controls.Add(this.L_Species); + this.Controls.Add(this.CB_Species); + this.MaximizeBox = false; + this.MaximumSize = new System.Drawing.Size(410, 650); + this.MinimumSize = new System.Drawing.Size(410, 650); + this.Name = "EvolutionEditor6"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Evolution Editor"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form_Closing); + ((System.ComponentModel.ISupportInitialize)(this.PB_1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_7)).EndInit(); + this.GB_Randomizer.ResumeLayout(false); + this.GB_Randomizer.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.ComboBox CB_Species; + private System.Windows.Forms.Label L_Species; + private System.Windows.Forms.Button B_Dump; + private System.Windows.Forms.ComboBox CB_M1; + private System.Windows.Forms.Label L_M1; + private System.Windows.Forms.ComboBox CB_I1; + private System.Windows.Forms.ComboBox CB_I2; + private System.Windows.Forms.Label L_M2; + private System.Windows.Forms.ComboBox CB_M2; + private System.Windows.Forms.ComboBox CB_I3; + private System.Windows.Forms.Label L_M3; + private System.Windows.Forms.ComboBox CB_M3; + private System.Windows.Forms.ComboBox CB_I4; + private System.Windows.Forms.Label L_M4; + private System.Windows.Forms.ComboBox CB_M4; + private System.Windows.Forms.ComboBox CB_I5; + private System.Windows.Forms.Label L_M5; + private System.Windows.Forms.ComboBox CB_M5; + private System.Windows.Forms.ComboBox CB_I8; + private System.Windows.Forms.Label L_M8; + private System.Windows.Forms.ComboBox CB_M8; + private System.Windows.Forms.ComboBox CB_I7; + private System.Windows.Forms.Label L_M7; + private System.Windows.Forms.ComboBox CB_M7; + private System.Windows.Forms.ComboBox CB_I6; + private System.Windows.Forms.Label L_M6; + private System.Windows.Forms.ComboBox CB_M6; + private System.Windows.Forms.PictureBox PB_1; + private System.Windows.Forms.PictureBox PB_2; + private System.Windows.Forms.PictureBox PB_4; + private System.Windows.Forms.PictureBox PB_3; + private System.Windows.Forms.PictureBox PB_6; + private System.Windows.Forms.PictureBox PB_5; + private System.Windows.Forms.PictureBox PB_8; + private System.Windows.Forms.PictureBox PB_7; + private System.Windows.Forms.Button B_RandAll; + private System.Windows.Forms.GroupBox GB_Randomizer; + private System.Windows.Forms.CheckBox CHK_Exp; + private System.Windows.Forms.CheckBox CHK_Type; + private System.Windows.Forms.CheckBox CHK_BST; + private System.Windows.Forms.Label L_Protip; + private System.Windows.Forms.Button B_Trade; + private System.Windows.Forms.ComboBox CB_P8; + private System.Windows.Forms.ComboBox CB_P7; + private System.Windows.Forms.ComboBox CB_P6; + private System.Windows.Forms.ComboBox CB_P5; + private System.Windows.Forms.ComboBox CB_P4; + private System.Windows.Forms.ComboBox CB_P3; + private System.Windows.Forms.ComboBox CB_P2; + private System.Windows.Forms.ComboBox CB_P1; + private System.Windows.Forms.Button B_EveryLevel; + private System.Windows.Forms.CheckBox CHK_E; + private System.Windows.Forms.CheckBox CHK_L; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen6/EvolutionEditor6.cs b/pk3DS.WinForms/Subforms/Gen6/EvolutionEditor6.cs new file mode 100644 index 0000000000..8d2fb6ef0e --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/EvolutionEditor6.cs @@ -0,0 +1,283 @@ +using System; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Media; +using System.Text; +using System.Windows.Forms; +using pk3DS.Core; +using pk3DS.Core.Randomizers; +using pk3DS.Core.Structures; +using pk3DS.WinForms.Properties; + +namespace pk3DS.WinForms; + +public partial class EvolutionEditor6 : Form +{ + public EvolutionEditor6(byte[][] infiles) + { + files = infiles; + InitializeComponent(); + + specieslist[0] = movelist[0] = itemlist[0] = ""; + Array.Resize(ref specieslist, Main.Config.MaxSpeciesID + 1); + + string[] evolutionMethods = + [ + "", + "Level Up with Friendship", + "Level Up at Morning with Friendship", + "Level Up at Night with Friendship", + "Level Up", + "Trade", + "Trade with Held Item", + $"Trade for opposite {specieslist[588]}/{specieslist[616]}", // Shelmet&Karrablast + "Used Item", + "Level Up (Attack > Defense)", + "Level Up (Attack = Defense)", + "Level Up (Attack < Defense)", + "Level Up (Random < 5)", + "Level Up (Random > 5)", + $"Level Up ({specieslist[291]})", // Ninjask + $"Level Up ({specieslist[292]})", // Shedinja + "Level Up (Beauty)", + "Used Item (Male)", // Kirlia->Gallade + "Used Item (Female)", // Snorunt->Froslass + "Level Up with Held Item (Day)", + "Level Up with Held Item (Night)", + "Level Up with Move", + "Level Up with Party", + "Level Up Male", + "Level Up Female", + "Level Up at Electric", + "Level Up at Forest", + "Level Up at Cold", + "Level Up with 3DS Upside Down", + "Level Up with 50 Affection + MoveType", + $"{typelist[16]} Type in Party", + "Overworld Rain", + "Level Up (@) at Morning", + "Level Up (@) at Night", + "Level Up Female (SetForm 1)", + ]; + + mb = [CB_M1, CB_M2, CB_M3, CB_M4, CB_M5, CB_M6, CB_M7, CB_M8]; + pb = [CB_P1, CB_P2, CB_P3, CB_P4, CB_P5, CB_P6, CB_P7, CB_P8]; + rb = [CB_I1, CB_I2, CB_I3, CB_I4, CB_I5, CB_I6, CB_I7, CB_I8]; + pic = [PB_1, PB_2, PB_3, PB_4, PB_5, PB_6, PB_7, PB_8]; + + foreach (ComboBox cb in mb) { cb.Items.AddRange(evolutionMethods); } + foreach (ComboBox cb in rb) { cb.Items.AddRange(specieslist); } + + CB_Species.Items.Clear(); + CB_Species.Items.AddRange(specieslist); + + CB_Species.SelectedIndex = 1; + RandSettings.GetFormSettings(this, GB_Randomizer.Controls); + } + + private readonly byte[][] files; + private readonly ComboBox[] pb; + private readonly ComboBox[] rb; + private readonly ComboBox[] mb; + private readonly PictureBox[] pic; + private int entry = -1; + private readonly string[] specieslist = Main.Config.GetText(TextName.SpeciesNames); + private readonly string[] movelist = Main.Config.GetText(TextName.MoveNames); + private readonly string[] itemlist = Main.Config.GetText(TextName.ItemNames); + private readonly string[] typelist = Main.Config.GetText(TextName.Types); + private bool dumping; + private EvolutionSet6 evo = new(new byte[EvolutionSet6.SIZE]); + + private void GetList() + { + entry = Array.IndexOf(specieslist, CB_Species.Text); + byte[] input = files[entry]; + if (input.Length != EvolutionSet6.SIZE) + return; // error + evo = new EvolutionSet6(input); + + for (int i = 0; i < evo.PossibleEvolutions.Length; i++) + { + if (evo.PossibleEvolutions[i].Method > 34) return; // Invalid! + + mb[i].SelectedIndex = evo.PossibleEvolutions[i].Method; // Which will trigger the params cb to reload the valid params list + pb[i].SelectedIndex = evo.PossibleEvolutions[i].Argument; + rb[i].SelectedIndex = evo.PossibleEvolutions[i].Species; + } + } + + private void SetList() + { + if (entry < 1 || dumping) return; + + for (int i = 0; i < 8; i++) + { + evo.PossibleEvolutions[i].Method = mb[i].SelectedIndex; + evo.PossibleEvolutions[i].Argument = pb[i].SelectedIndex; + evo.PossibleEvolutions[i].Species = rb[i].SelectedIndex; + } + files[entry] = evo.Write(); + } + + private void ChangeEntry(object sender, EventArgs e) + { + SetList(); + GetList(); + } + + private void B_RandAll_Click(object sender, EventArgs e) + { + if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomize all resulting species?", "Evolution methods and parameters will stay the same.")) + return; + + SetList(); + // Set up advanced randomization options + var evos = files.Select(z => new EvolutionSet6(z)).ToArray(); + var evoRand = new EvolutionRandomizer(Main.Config, evos) + { + Randomizer = + { + rBST = CHK_BST.Checked, + rEXP = CHK_Exp.Checked, + rType = CHK_Type.Checked, + L = CHK_L.Checked, + E = CHK_E.Checked, + }, + }; + evoRand.Randomizer.Initialize(); + evoRand.Execute(); + evos.Select(z => z.Write()).ToArray().CopyTo(files, 0); + GetList(); + + WinFormsUtil.Alert("All Pokémon's Evolutions have been randomized!"); + } + + private void B_Trade_Click(object sender, EventArgs e) + { + if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Remove all trade evolutions?", "Evolution methods will be altered so that evolutions will be possible with only one game.")) + return; + + SetList(); + var evos = files.Select(z => new EvolutionSet6(z)).ToArray(); + var evoRand = new EvolutionRandomizer(Main.Config, evos); + evoRand.Randomizer.Initialize(); + evoRand.ExecuteTrade(); + evos.Select(z => z.Write()).ToArray().CopyTo(files, 0); + GetList(); + + WinFormsUtil.Alert("All trade evolutions have been removed!", "Trade evolutions will now occur after reaching a certain Level, or after leveling up while holding its appropriate trade item."); + } + + private void B_EveryLevel_Click(object sender, EventArgs e) + { + if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Modify evolutions?", "This will make it to where your Pokémon will evolve into something random every time it levels up.")) + return; + + SetList(); + var evos = files.Select(z => new EvolutionSet6(z)).ToArray(); + var evoRand = new EvolutionRandomizer(Main.Config, evos) + { + Randomizer = + { + rBST = CHK_BST.Checked, + rEXP = CHK_Exp.Checked, + rType = CHK_Type.Checked, + L = CHK_L.Checked, + E = CHK_E.Checked, + }, + }; + evoRand.Randomizer.Initialize(); + evoRand.ExecuteEvolveEveryLevel(); + evoRand.Execute(); // randomize right after + evos.Select(z => z.Write()).ToArray().CopyTo(files, 0); + GetList(); + SystemSounds.Asterisk.Play(); + } + + private void B_Dump_Click(object sender, EventArgs e) + { + if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Dump all Evolutions to Text File?")) + return; + + dumping = true; + string result = ""; + for (int i = 0; i < CB_Species.Items.Count; i++) + { + CB_Species.SelectedIndex = i; // Get new Species + result += "======" + Environment.NewLine + entry + " " + CB_Species.Text + Environment.NewLine + "======" + Environment.NewLine; + for (int j = 0; j < 8; j++) + { + int methodval = mb[j].SelectedIndex; + // int param = pb[j].SelectedIndex; + int poke = rb[j].SelectedIndex; + if (poke > 0 && methodval > 0) + result += mb[j].Text + (pb[j].Visible ? " [" + pb[j].Text + "]" : "") + " into " + rb[j].Text + Environment.NewLine; + } + + result += Environment.NewLine; + } + var sfd = new SaveFileDialog { FileName = "Evolutions.txt", Filter = "Text File|*.txt" }; + + SystemSounds.Asterisk.Play(); + if (sfd.ShowDialog() == DialogResult.OK) + { + string path = sfd.FileName; + File.WriteAllText(path, result, Encoding.Unicode); + } + dumping = false; + } + + private void Form_Closing(object sender, FormClosingEventArgs e) + { + SetList(); + RandSettings.SetFormSettings(this, GB_Randomizer.Controls); + } + + private void ChangeMethod(object sender, EventArgs e) + { + int op = Array.IndexOf(mb, sender as ComboBox); + ushort[] methodCase = + [ + 0,0,0,0,1,0,2,0,2,1,1,1,1,1,1,1,5,2,2,2,2,3,4,1,1,0,0,0, // 27, Past Methods + // New Methods + 1, // 28 - Dark Type Party + 6, // 29 - Affection + MoveType + 1, // 30 - UpsideDown 3DS + 1, // 31 - Overworld Rain + 1, // 32 - Level @ Day + 1, // 33 - Level @ Night + 1, // 34 - Gender Branch + ]; + + pb[op].Visible = pic[op].Visible = rb[op].Visible = mb[op].SelectedIndex > 0; + + pb[op].Items.Clear(); + int cv = methodCase[mb[op].SelectedIndex]; + switch (cv) + { + case 0: // No Parameter Required + { pb[op].Visible = false; pb[op].Items.Add(""); break; } + case 1: // Level + { for (int i = 0; i <= 100; i++) pb[op].Items.Add(i.ToString()); break; } + case 2: // Items + { pb[op].Items.AddRange(itemlist); break; } + case 3: // Moves + { pb[op].Items.AddRange(movelist); break; } + case 4: // Species + { pb[op].Items.AddRange(specieslist); break; } + case 5: // 0-255 (Beauty) + { for (int i = 0; i <= 255; i++) pb[op].Items.Add(i.ToString()); break; } + case 6: + { pb[op].Items.AddRange(typelist); break; } + } + pb[op].SelectedIndex = 0; + } + + private void ChangeInto(object sender, EventArgs e) + { + if (sender is not ComboBox cb) + return; + pic[Array.IndexOf(rb, cb)].Image = (Bitmap)Resources.ResourceManager.GetObject("_" + Array.IndexOf(specieslist, cb.Text)); + } +} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/EvolutionEditor6.resx b/pk3DS.WinForms/Subforms/Gen6/EvolutionEditor6.resx similarity index 100% rename from pk3DS/Subforms/Gen6/EvolutionEditor6.resx rename to pk3DS.WinForms/Subforms/Gen6/EvolutionEditor6.resx diff --git a/pk3DS.WinForms/Subforms/Gen6/Experimental/MapPermView.Designer.cs b/pk3DS.WinForms/Subforms/Gen6/Experimental/MapPermView.Designer.cs new file mode 100644 index 0000000000..9f4ca41279 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/Experimental/MapPermView.Designer.cs @@ -0,0 +1,199 @@ +namespace pk3DS.WinForms; + +partial class MapPermView +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.L_MapCoord = new System.Windows.Forms.Label(); + this.PAN_MAP = new System.Windows.Forms.Panel(); + this.PB_Map = new System.Windows.Forms.PictureBox(); + this.CHK_AutoDraw = new System.Windows.Forms.CheckBox(); + this.B_Redraw = new System.Windows.Forms.Button(); + this.L_Scale = new System.Windows.Forms.Label(); + this.NUD_Scale = new System.Windows.Forms.NumericUpDown(); + this.L_Flavor = new System.Windows.Forms.Label(); + this.NUD_Flavor = new System.Windows.Forms.NumericUpDown(); + this.PAN_MAP.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.PB_Map)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Scale)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Flavor)).BeginInit(); + this.SuspendLayout(); + // + // L_MapCoord + // + this.L_MapCoord.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.L_MapCoord.Location = new System.Drawing.Point(349, 2); + this.L_MapCoord.Name = "L_MapCoord"; + this.L_MapCoord.Size = new System.Drawing.Size(131, 28); + this.L_MapCoord.TabIndex = 20; + this.L_MapCoord.Text = "V:0x00000000\r\nX: 1 Y: 1"; + this.L_MapCoord.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // PAN_MAP + // + this.PAN_MAP.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.PAN_MAP.AutoScroll = true; + this.PAN_MAP.Controls.Add(this.PB_Map); + this.PAN_MAP.Location = new System.Drawing.Point(9, 31); + this.PAN_MAP.Name = "PAN_MAP"; + this.PAN_MAP.Size = new System.Drawing.Size(470, 430); + this.PAN_MAP.TabIndex = 19; + // + // PB_Map + // + this.PB_Map.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.PB_Map.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.PB_Map.Location = new System.Drawing.Point(0, 0); + this.PB_Map.Name = "PB_Map"; + this.PB_Map.Size = new System.Drawing.Size(470, 430); + this.PB_Map.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; + this.PB_Map.TabIndex = 2; + this.PB_Map.TabStop = false; + this.PB_Map.DoubleClick += new System.EventHandler(this.DclickMap); + this.PB_Map.MouseEnter += new System.EventHandler(this.FocusPanel); + this.PB_Map.MouseMove += new System.Windows.Forms.MouseEventHandler(this.HoverMap); + // + // CHK_AutoDraw + // + this.CHK_AutoDraw.AutoSize = true; + this.CHK_AutoDraw.Location = new System.Drawing.Point(267, 8); + this.CHK_AutoDraw.Name = "CHK_AutoDraw"; + this.CHK_AutoDraw.Size = new System.Drawing.Size(76, 17); + this.CHK_AutoDraw.TabIndex = 18; + this.CHK_AutoDraw.Text = "Auto-Draw"; + this.CHK_AutoDraw.UseVisualStyleBackColor = true; + // + // B_Redraw + // + this.B_Redraw.Location = new System.Drawing.Point(186, 5); + this.B_Redraw.Name = "B_Redraw"; + this.B_Redraw.Size = new System.Drawing.Size(75, 23); + this.B_Redraw.TabIndex = 17; + this.B_Redraw.Text = "Redraw"; + this.B_Redraw.UseVisualStyleBackColor = true; + this.B_Redraw.Click += new System.EventHandler(this.B_Redraw_Click); + // + // L_Scale + // + this.L_Scale.AutoSize = true; + this.L_Scale.Location = new System.Drawing.Point(100, 9); + this.L_Scale.Name = "L_Scale"; + this.L_Scale.Size = new System.Drawing.Size(37, 13); + this.L_Scale.TabIndex = 16; + this.L_Scale.Text = "Scale:"; + // + // NUD_Scale + // + this.NUD_Scale.Location = new System.Drawing.Point(143, 7); + this.NUD_Scale.Maximum = new decimal(new int[] { + 16, + 0, + 0, + 0}); + this.NUD_Scale.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.NUD_Scale.Name = "NUD_Scale"; + this.NUD_Scale.Size = new System.Drawing.Size(37, 20); + this.NUD_Scale.TabIndex = 15; + this.NUD_Scale.Value = new decimal(new int[] { + 8, + 0, + 0, + 0}); + // + // L_Flavor + // + this.L_Flavor.AutoSize = true; + this.L_Flavor.Location = new System.Drawing.Point(12, 9); + this.L_Flavor.Name = "L_Flavor"; + this.L_Flavor.Size = new System.Drawing.Size(39, 13); + this.L_Flavor.TabIndex = 14; + this.L_Flavor.Text = "Flavor:"; + // + // NUD_Flavor + // + this.NUD_Flavor.Location = new System.Drawing.Point(57, 7); + this.NUD_Flavor.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.NUD_Flavor.Name = "NUD_Flavor"; + this.NUD_Flavor.Size = new System.Drawing.Size(37, 20); + this.NUD_Flavor.TabIndex = 13; + this.NUD_Flavor.Value = new decimal(new int[] { + 5, + 0, + 0, + 0}); + // + // MapPermView + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(489, 467); + this.Controls.Add(this.L_MapCoord); + this.Controls.Add(this.PAN_MAP); + this.Controls.Add(this.CHK_AutoDraw); + this.Controls.Add(this.B_Redraw); + this.Controls.Add(this.L_Scale); + this.Controls.Add(this.NUD_Scale); + this.Controls.Add(this.L_Flavor); + this.Controls.Add(this.NUD_Flavor); + this.MinimumSize = new System.Drawing.Size(505, 505); + this.Name = "MapPermView"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Map Viewer"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MapPermView_FormClosing); + this.PAN_MAP.ResumeLayout(false); + this.PAN_MAP.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.PB_Map)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Scale)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Flavor)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label L_MapCoord; + private System.Windows.Forms.Panel PAN_MAP; + private System.Windows.Forms.PictureBox PB_Map; + private System.Windows.Forms.CheckBox CHK_AutoDraw; + private System.Windows.Forms.Button B_Redraw; + private System.Windows.Forms.Label L_Scale; + private System.Windows.Forms.NumericUpDown NUD_Scale; + private System.Windows.Forms.Label L_Flavor; + private System.Windows.Forms.NumericUpDown NUD_Flavor; + +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen6/Experimental/MapPermView.cs b/pk3DS.WinForms/Subforms/Gen6/Experimental/MapPermView.cs new file mode 100644 index 0000000000..1306d88d2b --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/Experimental/MapPermView.cs @@ -0,0 +1,223 @@ +using System; +using System.Drawing; +using System.IO; +using System.Windows.Forms; +using pk3DS.Core.CTR; + +namespace pk3DS.WinForms; + +public partial class MapPermView : Form +{ + public MapPermView() + { + InitializeComponent(); + MapMatrixes = Directory.GetFiles("mapMatrix"); + MapGRs = Directory.GetFiles("mapGR"); + } + + private readonly string[] MapMatrixes; + private readonly string[] MapGRs; + private int mapScale = -1; + public int DrawMap = -1; + + public void SetMap(int Map) + { + DrawMap = Map; + PB_Map.Image = CHK_AutoDraw.Checked ? GetMapImage(sliceArea: true) : null; + } + + public Bitmap GetMapImage(bool crop = false, bool entity = true, bool sliceArea = false) + { + // Load MM + byte[][] MM = Mini.UnpackMini(File.ReadAllBytes(MapMatrixes[DrawMap]), "MM"); + var mm = OWSE.mm = new MapMatrix(MM); + + // Unknown + if (ModifierKeys == Keys.Control) + Clipboard.SetText(mm.Unk2String()); + + // Load GR TileMaps + for (int i = 0; i < mm.EntryList.Length; i++) + { + if (mm.EntryList[i] == 0xFFFF) // Mystery Zone + continue; + byte[][] GR = Mini.UnpackMini(File.ReadAllBytes(MapGRs[mm.EntryList[i]]), "GR"); + mm.Entries[i] = new MapMatrix.Entry(GR[0]) { coll = new MapMatrix.Collision(GR[2]) }; + } + mapScale = Math.Max(1, (int)NUD_Scale.Value); + Bitmap img = mm.Preview(mapScale, (int)NUD_Flavor.Value); + + baseImage = (Bitmap)img.Clone(); + + if (sliceArea && mapScale > 3) + { + int area = 40 * mapScale; + for (int x = 0; x < img.Width; x++) + { + for (int y = 0; y < img.Height; y++) + { + if (x % area == 0 || y % area == 0) + img.SetPixel(x, y, Color.FromArgb(0x10, 0xFF, 0, 0)); + } + } + } + + if (entity && mapScale == 8) + img = OverlayEntities(img); + + if (crop) + img = WinFormsUtil.TrimBitmap(img); + + return img; + } + + internal static Bitmap baseImage; + + private Bitmap OverlayEntities(Bitmap img) + { + const float opacity = 0.66f; + // Overlay every... overworld entity + foreach (var e in OWSE.CurrentZone.Entities.Furniture) + { + int x = e.X; + int y = e.Y; + for (int sx = 0; sx < e.WX; sx++) // Stretch X + { + for (int sy = 0; sy < e.WY; sy++) // Stretch Y + { + try { WinFormsUtil.LayerImage(img, Properties.Resources.F, (x + sx) * mapScale, (y + sy) * mapScale, opacity); } + catch { } + } + } + } + foreach (var e in OWSE.CurrentZone.Entities.NPCs) + { + int x = e.X; + int y = e.Y; + try { WinFormsUtil.LayerImage(img, Properties.Resources.N, x * mapScale, y * mapScale, opacity); } + catch { } + } + foreach (var e in OWSE.CurrentZone.Entities.Warps) + { + int x = (int)e.PX; // shifted warps look weird + int y = (int)e.PY; // shifted warps look weird + for (int sx = 0; sx < e.Width; sx++) // Stretch X + { + for (int sy = 0; sy < e.Height; sy++) // Stretch Y + { + try { WinFormsUtil.LayerImage(img, Properties.Resources.W, (x + sx) * mapScale, (y + sy) * mapScale, opacity); } + catch { } + } + } + } + foreach (var e in OWSE.CurrentZone.Entities.Triggers1) + { + int x = e.X; + int y = e.Y; + for (int sx = 0; sx < e.Width; sx++) // Stretch X + { + for (int sy = 0; sy < e.Height; sy++) // Stretch Y + { + try { WinFormsUtil.LayerImage(img, Properties.Resources.T1, (x + sx) * mapScale, (y + sy) * mapScale, opacity); } + catch { } + } + } + } + foreach (var e in OWSE.CurrentZone.Entities.Triggers2) + { + int x = e.X; + int y = e.Y; + for (int sx = 0; sx < e.Width; sx++) // Stretch X + { + for (int sy = 0; sy < e.Height; sy++) // Stretch Y + { + try { WinFormsUtil.LayerImage(img, Properties.Resources.T2, (x + sx) * mapScale, (y + sy) * mapScale, opacity); } + catch { } + } + } + } + + // Overlay Map Data + // Flyto + { + int x = (int)OWSE.CurrentZone.ZD.PX2; + int y = (int)OWSE.CurrentZone.ZD.PY2; + for (int sx = 0; sx < 1; sx++) // Stretch X + { + for (int sy = 0; sy < 1; sy++) // Stretch Y + { + try { WinFormsUtil.LayerImage(img, Properties.Resources.FLY, (x + sx) * mapScale, (y + sy) * mapScale, opacity / 2); } + catch { } + } + } + } + // Unknown + //{ + // using(var g = Graphics.FromImage(img)) + // foreach (var l in OWSE.mm.LoadLines) + // try { g.DrawLine(new Pen(Color.Red, 4), l.p2 * mapScale, l.p1 * mapScale, l.p4 * mapScale, l.p3 * mapScale); } + // catch {} + //} + + return img; + } + + // UI + private void HoverMap(object sender, MouseEventArgs e) + { + if (mapScale < 0) + return; + + if (PB_Map.Image == null) + return; + + int X = e.X / mapScale; + int Y = e.Y / mapScale; + + int entryX = X / 40; + int entryY = Y / 40; + + int entry = (entryY * (PB_Map.Image.Width / 40 / mapScale)) + entryX; + int epX = X % 40; + int epY = Y % 40; + int tile = (epY * 40) + epX; + try + { + var tileVal = OWSE.mm.Entries[entry] == null + ? "No Tile" + : OWSE.mm.Entries[entry].Tiles[tile].ToString("X8"); + + L_MapCoord.Text = string.Format("V:0x{3}{2}X:{0,3} Y:{1,3}", X, Y, Environment.NewLine, tileVal); + } + catch { } + } + + private void B_Redraw_Click(object sender, EventArgs e) + { + if (DrawMap != -1) + PB_Map.Image = GetMapImage(sliceArea: true); + } + + private void MapPermView_FormClosing(object sender, FormClosingEventArgs e) + { + CHK_AutoDraw.Checked = false; + Hide(); + e.Cancel = true; + } + + private void FocusPanel(object sender, EventArgs e) + { + if (ContainsFocus) + PAN_MAP.Focus(); + } + + private void DclickMap(object sender, EventArgs e) + { + DialogResult dr = WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Copy image to Clipboard?", + "Yes: Map & Overworlds" + Environment.NewLine + "No: Map Only"); + if (dr == DialogResult.No) // Map Only + Clipboard.SetImage(WinFormsUtil.TrimBitmap(baseImage)); + if (dr == DialogResult.Yes) + Clipboard.SetImage(PB_Map.Image); + } +} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/Experimental/MapPermView.resx b/pk3DS.WinForms/Subforms/Gen6/Experimental/MapPermView.resx similarity index 100% rename from pk3DS/Subforms/Gen6/Experimental/MapPermView.resx rename to pk3DS.WinForms/Subforms/Gen6/Experimental/MapPermView.resx diff --git a/pk3DS.WinForms/Subforms/Gen6/Experimental/OWSE.Designer.cs b/pk3DS.WinForms/Subforms/Gen6/Experimental/OWSE.Designer.cs new file mode 100644 index 0000000000..cce4f04b76 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/Experimental/OWSE.Designer.cs @@ -0,0 +1,2110 @@ +namespace pk3DS.WinForms; + +sealed partial class OWSE +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.CB_LocationID = new System.Windows.Forms.ComboBox(); + this.L_Location = new System.Windows.Forms.Label(); + this.RTB_ZD = new System.Windows.Forms.RichTextBox(); + this.tb_Zone = new System.Windows.Forms.TabControl(); + this.tb_ZoneData = new System.Windows.Forms.TabPage(); + this.L_MapInfoTabData = new System.Windows.Forms.Label(); + this.tb_OWSC = new System.Windows.Forms.TabPage(); + this.B_ResetOverworlds = new System.Windows.Forms.Button(); + this.CHK_EditRAW = new System.Windows.Forms.CheckBox(); + this.NUD_UnkCount = new System.Windows.Forms.NumericUpDown(); + this.L_Unk = new System.Windows.Forms.Label(); + this.L_OWEntities = new System.Windows.Forms.Label(); + this.NUD_TrigCount = new System.Windows.Forms.NumericUpDown(); + this.L_TriggerCount = new System.Windows.Forms.Label(); + this.NUD_WarpCount = new System.Windows.Forms.NumericUpDown(); + this.L_WarpCount = new System.Windows.Forms.Label(); + this.NUD_FurnCount = new System.Windows.Forms.NumericUpDown(); + this.L_FurnitureCount = new System.Windows.Forms.Label(); + this.tc_OWSC = new System.Windows.Forms.TabControl(); + this.tb_Furniture = new System.Windows.Forms.TabPage(); + this.GB_F = new System.Windows.Forms.GroupBox(); + this.B_ResetFurniture = new System.Windows.Forms.Button(); + this.NUD_FWY = new System.Windows.Forms.NumericUpDown(); + this.L_FWY = new System.Windows.Forms.Label(); + this.NUD_FWX = new System.Windows.Forms.NumericUpDown(); + this.L_FWX = new System.Windows.Forms.Label(); + this.NUD_FY = new System.Windows.Forms.NumericUpDown(); + this.L_FY = new System.Windows.Forms.Label(); + this.NUD_FX = new System.Windows.Forms.NumericUpDown(); + this.L_FX = new System.Windows.Forms.Label(); + this.RTB_F = new System.Windows.Forms.RichTextBox(); + this.NUD_FE = new System.Windows.Forms.NumericUpDown(); + this.L_FE = new System.Windows.Forms.Label(); + this.tb_NPC = new System.Windows.Forms.TabPage(); + this.GB_N = new System.Windows.Forms.GroupBox(); + this.B_ResetNPC = new System.Windows.Forms.Button(); + this.NUD_NMove2 = new System.Windows.Forms.NumericUpDown(); + this.L_Move2 = new System.Windows.Forms.Label(); + this.NUD_NMove1 = new System.Windows.Forms.NumericUpDown(); + this.L_Move1 = new System.Windows.Forms.Label(); + this.TB_Leash = new System.Windows.Forms.TextBox(); + this.L_LeashInfo = new System.Windows.Forms.Label(); + this.L_NDeg = new System.Windows.Forms.Label(); + this.TB_NDeg = new System.Windows.Forms.TextBox(); + this.NUD_NRange = new System.Windows.Forms.NumericUpDown(); + this.L_Range = new System.Windows.Forms.Label(); + this.L_ModelAsHex = new System.Windows.Forms.Label(); + this.NUD_NFlag = new System.Windows.Forms.NumericUpDown(); + this.L_NFlag = new System.Windows.Forms.Label(); + this.NUD_NScript = new System.Windows.Forms.NumericUpDown(); + this.L_NScript = new System.Windows.Forms.Label(); + this.NUD_NFace = new System.Windows.Forms.NumericUpDown(); + this.L_NFaceDirection = new System.Windows.Forms.Label(); + this.NUD_NY = new System.Windows.Forms.NumericUpDown(); + this.L_NY = new System.Windows.Forms.Label(); + this.NUD_NX = new System.Windows.Forms.NumericUpDown(); + this.L_NX = new System.Windows.Forms.Label(); + this.NUD_NModel = new System.Windows.Forms.NumericUpDown(); + this.L_NModel = new System.Windows.Forms.Label(); + this.RTB_N = new System.Windows.Forms.RichTextBox(); + this.NUD_NID = new System.Windows.Forms.NumericUpDown(); + this.L_NID = new System.Windows.Forms.Label(); + this.NUD_NE = new System.Windows.Forms.NumericUpDown(); + this.L_NE = new System.Windows.Forms.Label(); + this.tb_Warp = new System.Windows.Forms.TabPage(); + this.GB_W = new System.Windows.Forms.GroupBox(); + this.B_ResetWarp = new System.Windows.Forms.Button(); + this.L_WpY = new System.Windows.Forms.Label(); + this.L_WpX = new System.Windows.Forms.Label(); + this.NUD_WY = new System.Windows.Forms.NumericUpDown(); + this.L_WY = new System.Windows.Forms.Label(); + this.NUD_WX = new System.Windows.Forms.NumericUpDown(); + this.L_WX = new System.Windows.Forms.Label(); + this.RTB_W = new System.Windows.Forms.RichTextBox(); + this.L_WarpDest = new System.Windows.Forms.Label(); + this.L_DestMap = new System.Windows.Forms.Label(); + this.NUD_WTile = new System.Windows.Forms.NumericUpDown(); + this.L_DestWarpTile = new System.Windows.Forms.Label(); + this.NUD_WMap = new System.Windows.Forms.NumericUpDown(); + this.NUD_WE = new System.Windows.Forms.NumericUpDown(); + this.L_WE = new System.Windows.Forms.Label(); + this.tb_Trigger1 = new System.Windows.Forms.TabPage(); + this.GB_T1 = new System.Windows.Forms.GroupBox(); + this.B_ResetTrigger1 = new System.Windows.Forms.Button(); + this.NUD_T1Y = new System.Windows.Forms.NumericUpDown(); + this.L_T1Y = new System.Windows.Forms.Label(); + this.NUD_T1X = new System.Windows.Forms.NumericUpDown(); + this.L_T1X = new System.Windows.Forms.Label(); + this.RTB_T1 = new System.Windows.Forms.RichTextBox(); + this.NUD_TE = new System.Windows.Forms.NumericUpDown(); + this.L_TE = new System.Windows.Forms.Label(); + this.tb_Trigger2 = new System.Windows.Forms.TabPage(); + this.GB_T2 = new System.Windows.Forms.GroupBox(); + this.B_ResetTrigger2 = new System.Windows.Forms.Button(); + this.NUD_T2Y = new System.Windows.Forms.NumericUpDown(); + this.L_T2Y = new System.Windows.Forms.Label(); + this.NUD_T2X = new System.Windows.Forms.NumericUpDown(); + this.L_T2X = new System.Windows.Forms.Label(); + this.RTB_T2 = new System.Windows.Forms.RichTextBox(); + this.NUD_UE = new System.Windows.Forms.NumericUpDown(); + this.L_UE = new System.Windows.Forms.Label(); + this.tb_Script = new System.Windows.Forms.TabPage(); + this.RTB_OSP = new System.Windows.Forms.RichTextBox(); + this.RTB_OS = new System.Windows.Forms.RichTextBox(); + this.L_OWSCDesc = new System.Windows.Forms.Label(); + this.RTB_OWSCMD = new System.Windows.Forms.RichTextBox(); + this.NUD_NPCCount = new System.Windows.Forms.NumericUpDown(); + this.L_NPCCount = new System.Windows.Forms.Label(); + this.tb_MSC = new System.Windows.Forms.TabPage(); + this.RTB_MSP = new System.Windows.Forms.RichTextBox(); + this.RTB_MSCMD = new System.Windows.Forms.RichTextBox(); + this.L_MSSCDesc = new System.Windows.Forms.Label(); + this.RTB_MS = new System.Windows.Forms.RichTextBox(); + this.tb_Encounters = new System.Windows.Forms.TabPage(); + this.L_Encounters = new System.Windows.Forms.Label(); + this.tb_File5 = new System.Windows.Forms.TabPage(); + this.L_File5TabData = new System.Windows.Forms.Label(); + this.tb_RAW = new System.Windows.Forms.TabPage(); + this.L_ZD = new System.Windows.Forms.Label(); + this.L_File3 = new System.Windows.Forms.Label(); + this.L_ZDMaster = new System.Windows.Forms.Label(); + this.L_File5 = new System.Windows.Forms.Label(); + this.L_File4 = new System.Windows.Forms.Label(); + this.L_File2 = new System.Windows.Forms.Label(); + this.L_File1 = new System.Windows.Forms.Label(); + this.RTB_ZDMaster = new System.Windows.Forms.RichTextBox(); + this.RTB_File5 = new System.Windows.Forms.RichTextBox(); + this.RTB_OWSC = new System.Windows.Forms.RichTextBox(); + this.RTB_Encounter = new System.Windows.Forms.RichTextBox(); + this.RTB_MapSC = new System.Windows.Forms.RichTextBox(); + this.tb_Dev = new System.Windows.Forms.TabPage(); + this.B_DumpZD = new System.Windows.Forms.Button(); + this.L_DeComp = new System.Windows.Forms.Label(); + this.RTB_CompressedScript = new System.Windows.Forms.RichTextBox(); + this.RTB_DecompressedScript = new System.Windows.Forms.RichTextBox(); + this.L_Comp = new System.Windows.Forms.Label(); + this.B_DumpMaps = new System.Windows.Forms.Button(); + this.B_DumpUnk = new System.Windows.Forms.Button(); + this.B_DumpTrigger = new System.Windows.Forms.Button(); + this.B_DumpWarp = new System.Windows.Forms.Button(); + this.B_DumpNPC = new System.Windows.Forms.Button(); + this.B_DumpFurniture = new System.Windows.Forms.Button(); + this.B_Map = new System.Windows.Forms.Button(); + this.L_ZDPreview = new System.Windows.Forms.Label(); + this.B_HLCMD = new System.Windows.Forms.Button(); + this.tb_Zone.SuspendLayout(); + this.tb_ZoneData.SuspendLayout(); + this.tb_OWSC.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_UnkCount)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_TrigCount)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_WarpCount)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_FurnCount)).BeginInit(); + this.tc_OWSC.SuspendLayout(); + this.tb_Furniture.SuspendLayout(); + this.GB_F.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_FWY)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_FWX)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_FY)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_FX)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_FE)).BeginInit(); + this.tb_NPC.SuspendLayout(); + this.GB_N.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_NMove2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_NMove1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_NRange)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_NFlag)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_NScript)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_NFace)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_NY)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_NX)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_NModel)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_NID)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_NE)).BeginInit(); + this.tb_Warp.SuspendLayout(); + this.GB_W.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_WY)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_WX)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_WTile)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_WMap)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_WE)).BeginInit(); + this.tb_Trigger1.SuspendLayout(); + this.GB_T1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_T1Y)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_T1X)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_TE)).BeginInit(); + this.tb_Trigger2.SuspendLayout(); + this.GB_T2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_T2Y)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_T2X)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_UE)).BeginInit(); + this.tb_Script.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_NPCCount)).BeginInit(); + this.tb_MSC.SuspendLayout(); + this.tb_Encounters.SuspendLayout(); + this.tb_File5.SuspendLayout(); + this.tb_RAW.SuspendLayout(); + this.tb_Dev.SuspendLayout(); + this.SuspendLayout(); + // + // CB_LocationID + // + this.CB_LocationID.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_LocationID.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_LocationID.Enabled = false; + this.CB_LocationID.FormattingEnabled = true; + this.CB_LocationID.Location = new System.Drawing.Point(46, 5); + this.CB_LocationID.Name = "CB_LocationID"; + this.CB_LocationID.Size = new System.Drawing.Size(164, 21); + this.CB_LocationID.TabIndex = 407; + this.CB_LocationID.SelectedIndexChanged += new System.EventHandler(this.CB_LocationID_SelectedIndexChanged); + // + // L_Location + // + this.L_Location.AutoSize = true; + this.L_Location.Location = new System.Drawing.Point(12, 8); + this.L_Location.Name = "L_Location"; + this.L_Location.Size = new System.Drawing.Size(28, 13); + this.L_Location.TabIndex = 411; + this.L_Location.Text = "Loc:"; + // + // RTB_ZD + // + this.RTB_ZD.Font = new System.Drawing.Font("Courier New", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.RTB_ZD.Location = new System.Drawing.Point(217, 3); + this.RTB_ZD.Name = "RTB_ZD"; + this.RTB_ZD.ReadOnly = true; + this.RTB_ZD.Size = new System.Drawing.Size(266, 36); + this.RTB_ZD.TabIndex = 412; + this.RTB_ZD.Text = "00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF"; + // + // tb_Zone + // + this.tb_Zone.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tb_Zone.Controls.Add(this.tb_ZoneData); + this.tb_Zone.Controls.Add(this.tb_OWSC); + this.tb_Zone.Controls.Add(this.tb_MSC); + this.tb_Zone.Controls.Add(this.tb_Encounters); + this.tb_Zone.Controls.Add(this.tb_File5); + this.tb_Zone.Controls.Add(this.tb_RAW); + this.tb_Zone.Controls.Add(this.tb_Dev); + this.tb_Zone.Location = new System.Drawing.Point(12, 32); + this.tb_Zone.Name = "tb_Zone"; + this.tb_Zone.SelectedIndex = 0; + this.tb_Zone.Size = new System.Drawing.Size(494, 497); + this.tb_Zone.TabIndex = 417; + // + // tb_ZoneData + // + this.tb_ZoneData.Controls.Add(this.L_MapInfoTabData); + this.tb_ZoneData.Location = new System.Drawing.Point(4, 22); + this.tb_ZoneData.Name = "tb_ZoneData"; + this.tb_ZoneData.Padding = new System.Windows.Forms.Padding(3); + this.tb_ZoneData.Size = new System.Drawing.Size(486, 471); + this.tb_ZoneData.TabIndex = 0; + this.tb_ZoneData.Text = "ZoneData"; + this.tb_ZoneData.UseVisualStyleBackColor = true; + // + // L_MapInfoTabData + // + this.L_MapInfoTabData.AutoSize = true; + this.L_MapInfoTabData.Location = new System.Drawing.Point(26, 26); + this.L_MapInfoTabData.Name = "L_MapInfoTabData"; + this.L_MapInfoTabData.Size = new System.Drawing.Size(227, 13); + this.L_MapInfoTabData.TabIndex = 2; + this.L_MapInfoTabData.Text = "Functionality unknown. See RAW tab for data."; + // + // tb_OWSC + // + this.tb_OWSC.Controls.Add(this.B_ResetOverworlds); + this.tb_OWSC.Controls.Add(this.CHK_EditRAW); + this.tb_OWSC.Controls.Add(this.NUD_UnkCount); + this.tb_OWSC.Controls.Add(this.L_Unk); + this.tb_OWSC.Controls.Add(this.L_OWEntities); + this.tb_OWSC.Controls.Add(this.NUD_TrigCount); + this.tb_OWSC.Controls.Add(this.L_TriggerCount); + this.tb_OWSC.Controls.Add(this.NUD_WarpCount); + this.tb_OWSC.Controls.Add(this.L_WarpCount); + this.tb_OWSC.Controls.Add(this.NUD_FurnCount); + this.tb_OWSC.Controls.Add(this.L_FurnitureCount); + this.tb_OWSC.Controls.Add(this.tc_OWSC); + this.tb_OWSC.Controls.Add(this.NUD_NPCCount); + this.tb_OWSC.Controls.Add(this.L_NPCCount); + this.tb_OWSC.Location = new System.Drawing.Point(4, 22); + this.tb_OWSC.Name = "tb_OWSC"; + this.tb_OWSC.Padding = new System.Windows.Forms.Padding(3); + this.tb_OWSC.Size = new System.Drawing.Size(486, 471); + this.tb_OWSC.TabIndex = 1; + this.tb_OWSC.Text = "OW & SC"; + this.tb_OWSC.UseVisualStyleBackColor = true; + // + // B_ResetOverworlds + // + this.B_ResetOverworlds.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.B_ResetOverworlds.Location = new System.Drawing.Point(413, 157); + this.B_ResetOverworlds.Name = "B_ResetOverworlds"; + this.B_ResetOverworlds.Size = new System.Drawing.Size(62, 42); + this.B_ResetOverworlds.TabIndex = 467; + this.B_ResetOverworlds.Text = "Reset\r\nAll"; + this.B_ResetOverworlds.UseVisualStyleBackColor = true; + this.B_ResetOverworlds.Click += new System.EventHandler(this.B_ResetOverworlds_Click); + // + // CHK_EditRAW + // + this.CHK_EditRAW.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.CHK_EditRAW.AutoSize = true; + this.CHK_EditRAW.CheckAlign = System.Drawing.ContentAlignment.MiddleRight; + this.CHK_EditRAW.Location = new System.Drawing.Point(380, 134); + this.CHK_EditRAW.Name = "CHK_EditRAW"; + this.CHK_EditRAW.Size = new System.Drawing.Size(95, 17); + this.CHK_EditRAW.TabIndex = 430; + this.CHK_EditRAW.Text = "Edit Raw Data"; + this.CHK_EditRAW.UseVisualStyleBackColor = true; + this.CHK_EditRAW.CheckedChanged += new System.EventHandler(this.ChangeRAWCheck); + // + // NUD_UnkCount + // + this.NUD_UnkCount.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.NUD_UnkCount.Location = new System.Drawing.Point(422, 108); + this.NUD_UnkCount.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.NUD_UnkCount.Name = "NUD_UnkCount"; + this.NUD_UnkCount.Size = new System.Drawing.Size(53, 20); + this.NUD_UnkCount.TabIndex = 428; + this.NUD_UnkCount.ValueChanged += new System.EventHandler(this.ChangeUnkCount); + // + // L_Unk + // + this.L_Unk.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.L_Unk.Location = new System.Drawing.Point(350, 108); + this.L_Unk.Name = "L_Unk"; + this.L_Unk.Size = new System.Drawing.Size(66, 15); + this.L_Unk.TabIndex = 429; + this.L_Unk.Text = "Unk:"; + this.L_Unk.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_OWEntities + // + this.L_OWEntities.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.L_OWEntities.AutoSize = true; + this.L_OWEntities.Location = new System.Drawing.Point(357, 13); + this.L_OWEntities.Name = "L_OWEntities"; + this.L_OWEntities.Size = new System.Drawing.Size(118, 13); + this.L_OWEntities.TabIndex = 423; + this.L_OWEntities.Text = "Overworld Entity Count:"; + // + // NUD_TrigCount + // + this.NUD_TrigCount.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.NUD_TrigCount.Location = new System.Drawing.Point(422, 88); + this.NUD_TrigCount.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.NUD_TrigCount.Name = "NUD_TrigCount"; + this.NUD_TrigCount.Size = new System.Drawing.Size(53, 20); + this.NUD_TrigCount.TabIndex = 421; + this.NUD_TrigCount.ValueChanged += new System.EventHandler(this.ChangeTriggerCount); + // + // L_TriggerCount + // + this.L_TriggerCount.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.L_TriggerCount.Location = new System.Drawing.Point(350, 88); + this.L_TriggerCount.Name = "L_TriggerCount"; + this.L_TriggerCount.Size = new System.Drawing.Size(66, 15); + this.L_TriggerCount.TabIndex = 422; + this.L_TriggerCount.Text = "Trigger:"; + this.L_TriggerCount.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_WarpCount + // + this.NUD_WarpCount.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.NUD_WarpCount.Location = new System.Drawing.Point(422, 68); + this.NUD_WarpCount.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.NUD_WarpCount.Name = "NUD_WarpCount"; + this.NUD_WarpCount.Size = new System.Drawing.Size(53, 20); + this.NUD_WarpCount.TabIndex = 419; + this.NUD_WarpCount.ValueChanged += new System.EventHandler(this.ChangeWarpCount); + // + // L_WarpCount + // + this.L_WarpCount.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.L_WarpCount.Location = new System.Drawing.Point(350, 68); + this.L_WarpCount.Name = "L_WarpCount"; + this.L_WarpCount.Size = new System.Drawing.Size(66, 15); + this.L_WarpCount.TabIndex = 420; + this.L_WarpCount.Text = "Warp:"; + this.L_WarpCount.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_FurnCount + // + this.NUD_FurnCount.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.NUD_FurnCount.Location = new System.Drawing.Point(422, 28); + this.NUD_FurnCount.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.NUD_FurnCount.Name = "NUD_FurnCount"; + this.NUD_FurnCount.Size = new System.Drawing.Size(53, 20); + this.NUD_FurnCount.TabIndex = 417; + this.NUD_FurnCount.ValueChanged += new System.EventHandler(this.ChangeFurnitureCount); + // + // L_FurnitureCount + // + this.L_FurnitureCount.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.L_FurnitureCount.Location = new System.Drawing.Point(350, 28); + this.L_FurnitureCount.Name = "L_FurnitureCount"; + this.L_FurnitureCount.Size = new System.Drawing.Size(66, 15); + this.L_FurnitureCount.TabIndex = 418; + this.L_FurnitureCount.Text = "Furniture:"; + this.L_FurnitureCount.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // tc_OWSC + // + this.tc_OWSC.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tc_OWSC.Controls.Add(this.tb_Furniture); + this.tc_OWSC.Controls.Add(this.tb_NPC); + this.tc_OWSC.Controls.Add(this.tb_Warp); + this.tc_OWSC.Controls.Add(this.tb_Trigger1); + this.tc_OWSC.Controls.Add(this.tb_Trigger2); + this.tc_OWSC.Controls.Add(this.tb_Script); + this.tc_OWSC.Location = new System.Drawing.Point(6, 6); + this.tc_OWSC.Name = "tc_OWSC"; + this.tc_OWSC.SelectedIndex = 0; + this.tc_OWSC.Size = new System.Drawing.Size(345, 462); + this.tc_OWSC.TabIndex = 415; + // + // tb_Furniture + // + this.tb_Furniture.Controls.Add(this.GB_F); + this.tb_Furniture.Controls.Add(this.NUD_FE); + this.tb_Furniture.Controls.Add(this.L_FE); + this.tb_Furniture.Location = new System.Drawing.Point(4, 22); + this.tb_Furniture.Name = "tb_Furniture"; + this.tb_Furniture.Padding = new System.Windows.Forms.Padding(3); + this.tb_Furniture.Size = new System.Drawing.Size(337, 436); + this.tb_Furniture.TabIndex = 0; + this.tb_Furniture.Text = "Furniture"; + this.tb_Furniture.UseVisualStyleBackColor = true; + // + // GB_F + // + this.GB_F.Controls.Add(this.B_ResetFurniture); + this.GB_F.Controls.Add(this.NUD_FWY); + this.GB_F.Controls.Add(this.L_FWY); + this.GB_F.Controls.Add(this.NUD_FWX); + this.GB_F.Controls.Add(this.L_FWX); + this.GB_F.Controls.Add(this.NUD_FY); + this.GB_F.Controls.Add(this.L_FY); + this.GB_F.Controls.Add(this.NUD_FX); + this.GB_F.Controls.Add(this.L_FX); + this.GB_F.Controls.Add(this.RTB_F); + this.GB_F.Location = new System.Drawing.Point(6, 40); + this.GB_F.Name = "GB_F"; + this.GB_F.Size = new System.Drawing.Size(325, 323); + this.GB_F.TabIndex = 437; + this.GB_F.TabStop = false; + this.GB_F.Text = "Info:"; + // + // B_ResetFurniture + // + this.B_ResetFurniture.Location = new System.Drawing.Point(257, 275); + this.B_ResetFurniture.Name = "B_ResetFurniture"; + this.B_ResetFurniture.Size = new System.Drawing.Size(62, 42); + this.B_ResetFurniture.TabIndex = 470; + this.B_ResetFurniture.Text = "Reset\r\nFurniture"; + this.B_ResetFurniture.UseVisualStyleBackColor = true; + this.B_ResetFurniture.Click += new System.EventHandler(this.B_ResetFurniture_Click); + // + // NUD_FWY + // + this.NUD_FWY.Location = new System.Drawing.Point(125, 216); + this.NUD_FWY.Maximum = new decimal(new int[] { + 65535, + 0, + 0, + 0}); + this.NUD_FWY.Name = "NUD_FWY"; + this.NUD_FWY.Size = new System.Drawing.Size(53, 20); + this.NUD_FWY.TabIndex = 469; + // + // L_FWY + // + this.L_FWY.Location = new System.Drawing.Point(43, 216); + this.L_FWY.Name = "L_FWY"; + this.L_FWY.Size = new System.Drawing.Size(76, 16); + this.L_FWY.TabIndex = 468; + this.L_FWY.Text = "FwY:"; + this.L_FWY.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_FWX + // + this.NUD_FWX.Location = new System.Drawing.Point(125, 190); + this.NUD_FWX.Maximum = new decimal(new int[] { + 65535, + 0, + 0, + 0}); + this.NUD_FWX.Name = "NUD_FWX"; + this.NUD_FWX.Size = new System.Drawing.Size(53, 20); + this.NUD_FWX.TabIndex = 467; + // + // L_FWX + // + this.L_FWX.Location = new System.Drawing.Point(43, 190); + this.L_FWX.Name = "L_FWX"; + this.L_FWX.Size = new System.Drawing.Size(76, 16); + this.L_FWX.TabIndex = 466; + this.L_FWX.Text = "FwX:"; + this.L_FWX.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_FY + // + this.NUD_FY.Location = new System.Drawing.Point(125, 164); + this.NUD_FY.Maximum = new decimal(new int[] { + 65535, + 0, + 0, + 0}); + this.NUD_FY.Name = "NUD_FY"; + this.NUD_FY.Size = new System.Drawing.Size(53, 20); + this.NUD_FY.TabIndex = 463; + // + // L_FY + // + this.L_FY.Location = new System.Drawing.Point(43, 164); + this.L_FY.Name = "L_FY"; + this.L_FY.Size = new System.Drawing.Size(76, 16); + this.L_FY.TabIndex = 462; + this.L_FY.Text = "Y Coordinate:"; + this.L_FY.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_FX + // + this.NUD_FX.Location = new System.Drawing.Point(125, 138); + this.NUD_FX.Maximum = new decimal(new int[] { + 65535, + 0, + 0, + 0}); + this.NUD_FX.Name = "NUD_FX"; + this.NUD_FX.Size = new System.Drawing.Size(53, 20); + this.NUD_FX.TabIndex = 461; + // + // L_FX + // + this.L_FX.Location = new System.Drawing.Point(43, 138); + this.L_FX.Name = "L_FX"; + this.L_FX.Size = new System.Drawing.Size(76, 16); + this.L_FX.TabIndex = 460; + this.L_FX.Text = "X Coordinate:"; + this.L_FX.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // RTB_F + // + this.RTB_F.Font = new System.Drawing.Font("Courier New", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.RTB_F.Location = new System.Drawing.Point(6, 275); + this.RTB_F.Name = "RTB_F"; + this.RTB_F.Size = new System.Drawing.Size(245, 42); + this.RTB_F.TabIndex = 425; + this.RTB_F.Text = "00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF 00 11 22 33 44 55 66 77 88 99 AA " + + "BB CC DD EE FF 00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF "; + this.RTB_F.Visible = false; + this.RTB_F.TextChanged += new System.EventHandler(this.ChangeRAW_F); + // + // NUD_FE + // + this.NUD_FE.Location = new System.Drawing.Point(75, 11); + this.NUD_FE.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.NUD_FE.Name = "NUD_FE"; + this.NUD_FE.Size = new System.Drawing.Size(53, 20); + this.NUD_FE.TabIndex = 423; + this.NUD_FE.ValueChanged += new System.EventHandler(this.ChangeFurniture); + // + // L_FE + // + this.L_FE.Location = new System.Drawing.Point(3, 11); + this.L_FE.Name = "L_FE"; + this.L_FE.Size = new System.Drawing.Size(66, 15); + this.L_FE.TabIndex = 424; + this.L_FE.Text = "Entry:"; + this.L_FE.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // tb_NPC + // + this.tb_NPC.Controls.Add(this.GB_N); + this.tb_NPC.Controls.Add(this.NUD_NE); + this.tb_NPC.Controls.Add(this.L_NE); + this.tb_NPC.Location = new System.Drawing.Point(4, 22); + this.tb_NPC.Name = "tb_NPC"; + this.tb_NPC.Padding = new System.Windows.Forms.Padding(3); + this.tb_NPC.Size = new System.Drawing.Size(337, 436); + this.tb_NPC.TabIndex = 1; + this.tb_NPC.Text = "NPC"; + this.tb_NPC.UseVisualStyleBackColor = true; + // + // GB_N + // + this.GB_N.Controls.Add(this.B_ResetNPC); + this.GB_N.Controls.Add(this.NUD_NMove2); + this.GB_N.Controls.Add(this.L_Move2); + this.GB_N.Controls.Add(this.NUD_NMove1); + this.GB_N.Controls.Add(this.L_Move1); + this.GB_N.Controls.Add(this.TB_Leash); + this.GB_N.Controls.Add(this.L_LeashInfo); + this.GB_N.Controls.Add(this.L_NDeg); + this.GB_N.Controls.Add(this.TB_NDeg); + this.GB_N.Controls.Add(this.NUD_NRange); + this.GB_N.Controls.Add(this.L_Range); + this.GB_N.Controls.Add(this.L_ModelAsHex); + this.GB_N.Controls.Add(this.NUD_NFlag); + this.GB_N.Controls.Add(this.L_NFlag); + this.GB_N.Controls.Add(this.NUD_NScript); + this.GB_N.Controls.Add(this.L_NScript); + this.GB_N.Controls.Add(this.NUD_NFace); + this.GB_N.Controls.Add(this.L_NFaceDirection); + this.GB_N.Controls.Add(this.NUD_NY); + this.GB_N.Controls.Add(this.L_NY); + this.GB_N.Controls.Add(this.NUD_NX); + this.GB_N.Controls.Add(this.L_NX); + this.GB_N.Controls.Add(this.NUD_NModel); + this.GB_N.Controls.Add(this.L_NModel); + this.GB_N.Controls.Add(this.RTB_N); + this.GB_N.Controls.Add(this.NUD_NID); + this.GB_N.Controls.Add(this.L_NID); + this.GB_N.Location = new System.Drawing.Point(6, 40); + this.GB_N.Name = "GB_N"; + this.GB_N.Size = new System.Drawing.Size(325, 323); + this.GB_N.TabIndex = 436; + this.GB_N.TabStop = false; + this.GB_N.Text = "Info:"; + // + // B_ResetNPC + // + this.B_ResetNPC.Location = new System.Drawing.Point(257, 275); + this.B_ResetNPC.Name = "B_ResetNPC"; + this.B_ResetNPC.Size = new System.Drawing.Size(62, 42); + this.B_ResetNPC.TabIndex = 458; + this.B_ResetNPC.Text = "Reset\r\nNPC"; + this.B_ResetNPC.UseVisualStyleBackColor = true; + this.B_ResetNPC.Click += new System.EventHandler(this.B_ResetNPC_Click); + // + // NUD_NMove2 + // + this.NUD_NMove2.Location = new System.Drawing.Point(234, 146); + this.NUD_NMove2.Maximum = new decimal(new int[] { + 65535, + 0, + 0, + 0}); + this.NUD_NMove2.Name = "NUD_NMove2"; + this.NUD_NMove2.Size = new System.Drawing.Size(53, 20); + this.NUD_NMove2.TabIndex = 457; + // + // L_Move2 + // + this.L_Move2.Location = new System.Drawing.Point(152, 146); + this.L_Move2.Name = "L_Move2"; + this.L_Move2.Size = new System.Drawing.Size(76, 16); + this.L_Move2.TabIndex = 456; + this.L_Move2.Text = "Move2:"; + this.L_Move2.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_NMove1 + // + this.NUD_NMove1.Location = new System.Drawing.Point(234, 120); + this.NUD_NMove1.Maximum = new decimal(new int[] { + 65535, + 0, + 0, + 0}); + this.NUD_NMove1.Name = "NUD_NMove1"; + this.NUD_NMove1.Size = new System.Drawing.Size(53, 20); + this.NUD_NMove1.TabIndex = 455; + // + // L_Move1 + // + this.L_Move1.Location = new System.Drawing.Point(152, 120); + this.L_Move1.Name = "L_Move1"; + this.L_Move1.Size = new System.Drawing.Size(76, 16); + this.L_Move1.TabIndex = 454; + this.L_Move1.Text = "Move1:"; + this.L_Move1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // TB_Leash + // + this.TB_Leash.Location = new System.Drawing.Point(93, 250); + this.TB_Leash.Name = "TB_Leash"; + this.TB_Leash.ReadOnly = true; + this.TB_Leash.Size = new System.Drawing.Size(158, 20); + this.TB_Leash.TabIndex = 453; + // + // L_LeashInfo + // + this.L_LeashInfo.Location = new System.Drawing.Point(11, 251); + this.L_LeashInfo.Name = "L_LeashInfo"; + this.L_LeashInfo.Size = new System.Drawing.Size(76, 16); + this.L_LeashInfo.TabIndex = 452; + this.L_LeashInfo.Text = "Leash Info:"; + this.L_LeashInfo.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_NDeg + // + this.L_NDeg.Location = new System.Drawing.Point(11, 225); + this.L_NDeg.Name = "L_NDeg"; + this.L_NDeg.Size = new System.Drawing.Size(76, 16); + this.L_NDeg.TabIndex = 451; + this.L_NDeg.Text = "Degrees (?):"; + this.L_NDeg.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // TB_NDeg + // + this.TB_NDeg.Location = new System.Drawing.Point(93, 224); + this.TB_NDeg.Name = "TB_NDeg"; + this.TB_NDeg.ReadOnly = true; + this.TB_NDeg.Size = new System.Drawing.Size(53, 20); + this.TB_NDeg.TabIndex = 437; + // + // NUD_NRange + // + this.NUD_NRange.Location = new System.Drawing.Point(93, 146); + this.NUD_NRange.Maximum = new decimal(new int[] { + 65535, + 0, + 0, + 0}); + this.NUD_NRange.Name = "NUD_NRange"; + this.NUD_NRange.Size = new System.Drawing.Size(53, 20); + this.NUD_NRange.TabIndex = 450; + // + // L_Range + // + this.L_Range.Location = new System.Drawing.Point(11, 146); + this.L_Range.Name = "L_Range"; + this.L_Range.Size = new System.Drawing.Size(76, 16); + this.L_Range.TabIndex = 449; + this.L_Range.Text = "Sight Range:"; + this.L_Range.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_ModelAsHex + // + this.L_ModelAsHex.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.L_ModelAsHex.AutoSize = true; + this.L_ModelAsHex.Location = new System.Drawing.Point(152, 44); + this.L_ModelAsHex.Name = "L_ModelAsHex"; + this.L_ModelAsHex.Size = new System.Drawing.Size(29, 13); + this.L_ModelAsHex.TabIndex = 448; + this.L_ModelAsHex.Text = "HEX"; + // + // NUD_NFlag + // + this.NUD_NFlag.Location = new System.Drawing.Point(93, 68); + this.NUD_NFlag.Maximum = new decimal(new int[] { + 65535, + 0, + 0, + 0}); + this.NUD_NFlag.Name = "NUD_NFlag"; + this.NUD_NFlag.Size = new System.Drawing.Size(53, 20); + this.NUD_NFlag.TabIndex = 447; + // + // L_NFlag + // + this.L_NFlag.Location = new System.Drawing.Point(11, 68); + this.L_NFlag.Name = "L_NFlag"; + this.L_NFlag.Size = new System.Drawing.Size(76, 16); + this.L_NFlag.TabIndex = 446; + this.L_NFlag.Text = "Spawn Flag:"; + this.L_NFlag.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_NScript + // + this.NUD_NScript.Location = new System.Drawing.Point(93, 94); + this.NUD_NScript.Maximum = new decimal(new int[] { + 65535, + 0, + 0, + 0}); + this.NUD_NScript.Name = "NUD_NScript"; + this.NUD_NScript.Size = new System.Drawing.Size(53, 20); + this.NUD_NScript.TabIndex = 445; + // + // L_NScript + // + this.L_NScript.Location = new System.Drawing.Point(11, 94); + this.L_NScript.Name = "L_NScript"; + this.L_NScript.Size = new System.Drawing.Size(76, 16); + this.L_NScript.TabIndex = 444; + this.L_NScript.Text = "Script:"; + this.L_NScript.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_NFace + // + this.NUD_NFace.Location = new System.Drawing.Point(93, 120); + this.NUD_NFace.Maximum = new decimal(new int[] { + 65535, + 0, + 0, + 0}); + this.NUD_NFace.Name = "NUD_NFace"; + this.NUD_NFace.Size = new System.Drawing.Size(53, 20); + this.NUD_NFace.TabIndex = 443; + // + // L_NFaceDirection + // + this.L_NFaceDirection.Location = new System.Drawing.Point(11, 120); + this.L_NFaceDirection.Name = "L_NFaceDirection"; + this.L_NFaceDirection.Size = new System.Drawing.Size(76, 16); + this.L_NFaceDirection.TabIndex = 442; + this.L_NFaceDirection.Text = "Facing:"; + this.L_NFaceDirection.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_NY + // + this.NUD_NY.Location = new System.Drawing.Point(93, 198); + this.NUD_NY.Maximum = new decimal(new int[] { + 65535, + 0, + 0, + 0}); + this.NUD_NY.Name = "NUD_NY"; + this.NUD_NY.Size = new System.Drawing.Size(53, 20); + this.NUD_NY.TabIndex = 441; + // + // L_NY + // + this.L_NY.Location = new System.Drawing.Point(11, 198); + this.L_NY.Name = "L_NY"; + this.L_NY.Size = new System.Drawing.Size(76, 16); + this.L_NY.TabIndex = 440; + this.L_NY.Text = "Y Coordinate:"; + this.L_NY.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_NX + // + this.NUD_NX.Location = new System.Drawing.Point(93, 172); + this.NUD_NX.Maximum = new decimal(new int[] { + 65535, + 0, + 0, + 0}); + this.NUD_NX.Name = "NUD_NX"; + this.NUD_NX.Size = new System.Drawing.Size(53, 20); + this.NUD_NX.TabIndex = 439; + // + // L_NX + // + this.L_NX.Location = new System.Drawing.Point(11, 172); + this.L_NX.Name = "L_NX"; + this.L_NX.Size = new System.Drawing.Size(76, 16); + this.L_NX.TabIndex = 438; + this.L_NX.Text = "X Coordinate:"; + this.L_NX.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_NModel + // + this.NUD_NModel.Location = new System.Drawing.Point(93, 42); + this.NUD_NModel.Maximum = new decimal(new int[] { + 65535, + 0, + 0, + 0}); + this.NUD_NModel.Name = "NUD_NModel"; + this.NUD_NModel.Size = new System.Drawing.Size(53, 20); + this.NUD_NModel.TabIndex = 437; + this.NUD_NModel.ValueChanged += new System.EventHandler(this.ChangeNPC_Model); + // + // L_NModel + // + this.L_NModel.Location = new System.Drawing.Point(11, 42); + this.L_NModel.Name = "L_NModel"; + this.L_NModel.Size = new System.Drawing.Size(76, 16); + this.L_NModel.TabIndex = 436; + this.L_NModel.Text = "Model:"; + this.L_NModel.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // RTB_N + // + this.RTB_N.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.RTB_N.Font = new System.Drawing.Font("Courier New", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.RTB_N.Location = new System.Drawing.Point(6, 275); + this.RTB_N.Name = "RTB_N"; + this.RTB_N.Size = new System.Drawing.Size(245, 42); + this.RTB_N.TabIndex = 414; + this.RTB_N.Text = "00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF 00 11 22 33 44 55 66 77 88 99 AA " + + "BB CC DD EE FF 00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF "; + this.RTB_N.Visible = false; + this.RTB_N.TextChanged += new System.EventHandler(this.ChangeRAW_N); + // + // NUD_NID + // + this.NUD_NID.Location = new System.Drawing.Point(93, 16); + this.NUD_NID.Maximum = new decimal(new int[] { + 65535, + 0, + 0, + 0}); + this.NUD_NID.Name = "NUD_NID"; + this.NUD_NID.Size = new System.Drawing.Size(53, 20); + this.NUD_NID.TabIndex = 435; + this.NUD_NID.ValueChanged += new System.EventHandler(this.ChangeNPC_ID); + // + // L_NID + // + this.L_NID.Location = new System.Drawing.Point(11, 16); + this.L_NID.Name = "L_NID"; + this.L_NID.Size = new System.Drawing.Size(76, 16); + this.L_NID.TabIndex = 433; + this.L_NID.Text = "Entity ID:"; + this.L_NID.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_NE + // + this.NUD_NE.Location = new System.Drawing.Point(75, 11); + this.NUD_NE.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.NUD_NE.Name = "NUD_NE"; + this.NUD_NE.Size = new System.Drawing.Size(53, 20); + this.NUD_NE.TabIndex = 425; + this.NUD_NE.ValueChanged += new System.EventHandler(this.ChangeNPC); + // + // L_NE + // + this.L_NE.Location = new System.Drawing.Point(3, 11); + this.L_NE.Name = "L_NE"; + this.L_NE.Size = new System.Drawing.Size(66, 15); + this.L_NE.TabIndex = 426; + this.L_NE.Text = "Entry:"; + this.L_NE.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // tb_Warp + // + this.tb_Warp.Controls.Add(this.GB_W); + this.tb_Warp.Controls.Add(this.NUD_WE); + this.tb_Warp.Controls.Add(this.L_WE); + this.tb_Warp.Location = new System.Drawing.Point(4, 22); + this.tb_Warp.Name = "tb_Warp"; + this.tb_Warp.Size = new System.Drawing.Size(337, 436); + this.tb_Warp.TabIndex = 2; + this.tb_Warp.Text = "Warp"; + this.tb_Warp.UseVisualStyleBackColor = true; + // + // GB_W + // + this.GB_W.Controls.Add(this.B_ResetWarp); + this.GB_W.Controls.Add(this.L_WpY); + this.GB_W.Controls.Add(this.L_WpX); + this.GB_W.Controls.Add(this.NUD_WY); + this.GB_W.Controls.Add(this.L_WY); + this.GB_W.Controls.Add(this.NUD_WX); + this.GB_W.Controls.Add(this.L_WX); + this.GB_W.Controls.Add(this.RTB_W); + this.GB_W.Controls.Add(this.L_WarpDest); + this.GB_W.Controls.Add(this.L_DestMap); + this.GB_W.Controls.Add(this.NUD_WTile); + this.GB_W.Controls.Add(this.L_DestWarpTile); + this.GB_W.Controls.Add(this.NUD_WMap); + this.GB_W.Location = new System.Drawing.Point(6, 40); + this.GB_W.Name = "GB_W"; + this.GB_W.Size = new System.Drawing.Size(325, 323); + this.GB_W.TabIndex = 438; + this.GB_W.TabStop = false; + this.GB_W.Text = "Info:"; + // + // B_ResetWarp + // + this.B_ResetWarp.Location = new System.Drawing.Point(256, 275); + this.B_ResetWarp.Name = "B_ResetWarp"; + this.B_ResetWarp.Size = new System.Drawing.Size(62, 42); + this.B_ResetWarp.TabIndex = 466; + this.B_ResetWarp.Text = "Reset\r\nWarp"; + this.B_ResetWarp.UseVisualStyleBackColor = true; + this.B_ResetWarp.Click += new System.EventHandler(this.B_ResetWarp_Click); + // + // L_WpY + // + this.L_WpY.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.L_WpY.AutoSize = true; + this.L_WpY.Location = new System.Drawing.Point(253, 191); + this.L_WpY.Name = "L_WpY"; + this.L_WpY.Size = new System.Drawing.Size(31, 13); + this.L_WpY.TabIndex = 465; + this.L_WpY.Text = "#/18"; + // + // L_WpX + // + this.L_WpX.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.L_WpX.AutoSize = true; + this.L_WpX.Location = new System.Drawing.Point(253, 165); + this.L_WpX.Name = "L_WpX"; + this.L_WpX.Size = new System.Drawing.Size(31, 13); + this.L_WpX.TabIndex = 464; + this.L_WpX.Text = "#/18"; + // + // NUD_WY + // + this.NUD_WY.Increment = new decimal(new int[] { + 18, + 0, + 0, + 0}); + this.NUD_WY.Location = new System.Drawing.Point(125, 189); + this.NUD_WY.Maximum = new decimal(new int[] { + 65535, + 0, + 0, + 0}); + this.NUD_WY.Name = "NUD_WY"; + this.NUD_WY.Size = new System.Drawing.Size(53, 20); + this.NUD_WY.TabIndex = 463; + this.NUD_WY.ValueChanged += new System.EventHandler(this.ChangeWarp_Y); + // + // L_WY + // + this.L_WY.Location = new System.Drawing.Point(43, 189); + this.L_WY.Name = "L_WY"; + this.L_WY.Size = new System.Drawing.Size(76, 16); + this.L_WY.TabIndex = 462; + this.L_WY.Text = "Y Coordinate:"; + this.L_WY.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_WX + // + this.NUD_WX.Increment = new decimal(new int[] { + 18, + 0, + 0, + 0}); + this.NUD_WX.Location = new System.Drawing.Point(125, 163); + this.NUD_WX.Maximum = new decimal(new int[] { + 65535, + 0, + 0, + 0}); + this.NUD_WX.Name = "NUD_WX"; + this.NUD_WX.Size = new System.Drawing.Size(53, 20); + this.NUD_WX.TabIndex = 461; + this.NUD_WX.ValueChanged += new System.EventHandler(this.ChangeWarp_X); + // + // L_WX + // + this.L_WX.Location = new System.Drawing.Point(43, 163); + this.L_WX.Name = "L_WX"; + this.L_WX.Size = new System.Drawing.Size(76, 16); + this.L_WX.TabIndex = 460; + this.L_WX.Text = "X Coordinate:"; + this.L_WX.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // RTB_W + // + this.RTB_W.Font = new System.Drawing.Font("Courier New", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.RTB_W.Location = new System.Drawing.Point(6, 275); + this.RTB_W.Name = "RTB_W"; + this.RTB_W.Size = new System.Drawing.Size(245, 42); + this.RTB_W.TabIndex = 425; + this.RTB_W.Text = "00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF 00 11 22 33 44 55 66 77 88 99 AA " + + "BB CC DD EE FF 00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF "; + this.RTB_W.Visible = false; + this.RTB_W.TextChanged += new System.EventHandler(this.ChangeRAW_W); + // + // L_WarpDest + // + this.L_WarpDest.Location = new System.Drawing.Point(58, 31); + this.L_WarpDest.Name = "L_WarpDest"; + this.L_WarpDest.Size = new System.Drawing.Size(120, 15); + this.L_WarpDest.TabIndex = 432; + this.L_WarpDest.Text = "Dest:"; + this.L_WarpDest.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.L_WarpDest.DoubleClick += new System.EventHandler(this.DclickDestMap); + // + // L_DestMap + // + this.L_DestMap.Location = new System.Drawing.Point(-1, 50); + this.L_DestMap.Name = "L_DestMap"; + this.L_DestMap.Size = new System.Drawing.Size(120, 15); + this.L_DestMap.TabIndex = 428; + this.L_DestMap.Text = "Destination Map:"; + this.L_DestMap.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_WTile + // + this.NUD_WTile.Location = new System.Drawing.Point(125, 70); + this.NUD_WTile.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.NUD_WTile.Name = "NUD_WTile"; + this.NUD_WTile.Size = new System.Drawing.Size(53, 20); + this.NUD_WTile.TabIndex = 431; + // + // L_DestWarpTile + // + this.L_DestWarpTile.Location = new System.Drawing.Point(-1, 71); + this.L_DestWarpTile.Name = "L_DestWarpTile"; + this.L_DestWarpTile.Size = new System.Drawing.Size(120, 15); + this.L_DestWarpTile.TabIndex = 429; + this.L_DestWarpTile.Text = "Destination WarpTile:"; + this.L_DestWarpTile.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_WMap + // + this.NUD_WMap.Location = new System.Drawing.Point(125, 49); + this.NUD_WMap.Maximum = new decimal(new int[] { + 999, + 0, + 0, + 0}); + this.NUD_WMap.Name = "NUD_WMap"; + this.NUD_WMap.Size = new System.Drawing.Size(53, 20); + this.NUD_WMap.TabIndex = 430; + // + // NUD_WE + // + this.NUD_WE.Location = new System.Drawing.Point(75, 11); + this.NUD_WE.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.NUD_WE.Name = "NUD_WE"; + this.NUD_WE.Size = new System.Drawing.Size(53, 20); + this.NUD_WE.TabIndex = 425; + this.NUD_WE.ValueChanged += new System.EventHandler(this.ChangeWarp); + // + // L_WE + // + this.L_WE.Location = new System.Drawing.Point(3, 11); + this.L_WE.Name = "L_WE"; + this.L_WE.Size = new System.Drawing.Size(66, 15); + this.L_WE.TabIndex = 426; + this.L_WE.Text = "Entry:"; + this.L_WE.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // tb_Trigger1 + // + this.tb_Trigger1.Controls.Add(this.GB_T1); + this.tb_Trigger1.Controls.Add(this.NUD_TE); + this.tb_Trigger1.Controls.Add(this.L_TE); + this.tb_Trigger1.Location = new System.Drawing.Point(4, 22); + this.tb_Trigger1.Name = "tb_Trigger1"; + this.tb_Trigger1.Size = new System.Drawing.Size(337, 436); + this.tb_Trigger1.TabIndex = 3; + this.tb_Trigger1.Text = "Trigger1"; + this.tb_Trigger1.UseVisualStyleBackColor = true; + // + // GB_T1 + // + this.GB_T1.Controls.Add(this.B_ResetTrigger1); + this.GB_T1.Controls.Add(this.NUD_T1Y); + this.GB_T1.Controls.Add(this.L_T1Y); + this.GB_T1.Controls.Add(this.NUD_T1X); + this.GB_T1.Controls.Add(this.L_T1X); + this.GB_T1.Controls.Add(this.RTB_T1); + this.GB_T1.Location = new System.Drawing.Point(6, 40); + this.GB_T1.Name = "GB_T1"; + this.GB_T1.Size = new System.Drawing.Size(325, 323); + this.GB_T1.TabIndex = 439; + this.GB_T1.TabStop = false; + this.GB_T1.Text = "Info:"; + // + // B_ResetTrigger1 + // + this.B_ResetTrigger1.Location = new System.Drawing.Point(257, 275); + this.B_ResetTrigger1.Name = "B_ResetTrigger1"; + this.B_ResetTrigger1.Size = new System.Drawing.Size(62, 42); + this.B_ResetTrigger1.TabIndex = 467; + this.B_ResetTrigger1.Text = "Reset\r\nTrigger1"; + this.B_ResetTrigger1.UseVisualStyleBackColor = true; + this.B_ResetTrigger1.Click += new System.EventHandler(this.B_ResetTrigger1_Click); + // + // NUD_T1Y + // + this.NUD_T1Y.Location = new System.Drawing.Point(143, 164); + this.NUD_T1Y.Maximum = new decimal(new int[] { + 65535, + 0, + 0, + 0}); + this.NUD_T1Y.Name = "NUD_T1Y"; + this.NUD_T1Y.Size = new System.Drawing.Size(53, 20); + this.NUD_T1Y.TabIndex = 445; + // + // L_T1Y + // + this.L_T1Y.Location = new System.Drawing.Point(61, 164); + this.L_T1Y.Name = "L_T1Y"; + this.L_T1Y.Size = new System.Drawing.Size(76, 16); + this.L_T1Y.TabIndex = 444; + this.L_T1Y.Text = "Y Coordinate:"; + this.L_T1Y.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_T1X + // + this.NUD_T1X.Location = new System.Drawing.Point(143, 138); + this.NUD_T1X.Maximum = new decimal(new int[] { + 65535, + 0, + 0, + 0}); + this.NUD_T1X.Name = "NUD_T1X"; + this.NUD_T1X.Size = new System.Drawing.Size(53, 20); + this.NUD_T1X.TabIndex = 443; + // + // L_T1X + // + this.L_T1X.Location = new System.Drawing.Point(61, 138); + this.L_T1X.Name = "L_T1X"; + this.L_T1X.Size = new System.Drawing.Size(76, 16); + this.L_T1X.TabIndex = 442; + this.L_T1X.Text = "X Coordinate:"; + this.L_T1X.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // RTB_T1 + // + this.RTB_T1.Font = new System.Drawing.Font("Courier New", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.RTB_T1.Location = new System.Drawing.Point(6, 275); + this.RTB_T1.Name = "RTB_T1"; + this.RTB_T1.Size = new System.Drawing.Size(245, 42); + this.RTB_T1.TabIndex = 425; + this.RTB_T1.Text = "00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF 00 11 22 33 44 55 66 77 88 99 AA " + + "BB CC DD EE FF 00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF "; + this.RTB_T1.Visible = false; + this.RTB_T1.TextChanged += new System.EventHandler(this.ChangeRAW_T1); + // + // NUD_TE + // + this.NUD_TE.Location = new System.Drawing.Point(75, 11); + this.NUD_TE.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.NUD_TE.Name = "NUD_TE"; + this.NUD_TE.Size = new System.Drawing.Size(53, 20); + this.NUD_TE.TabIndex = 425; + this.NUD_TE.ValueChanged += new System.EventHandler(this.ChangeTrigger1); + // + // L_TE + // + this.L_TE.Location = new System.Drawing.Point(3, 11); + this.L_TE.Name = "L_TE"; + this.L_TE.Size = new System.Drawing.Size(66, 15); + this.L_TE.TabIndex = 426; + this.L_TE.Text = "Entry:"; + this.L_TE.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // tb_Trigger2 + // + this.tb_Trigger2.Controls.Add(this.GB_T2); + this.tb_Trigger2.Controls.Add(this.NUD_UE); + this.tb_Trigger2.Controls.Add(this.L_UE); + this.tb_Trigger2.Location = new System.Drawing.Point(4, 22); + this.tb_Trigger2.Name = "tb_Trigger2"; + this.tb_Trigger2.Padding = new System.Windows.Forms.Padding(3); + this.tb_Trigger2.Size = new System.Drawing.Size(337, 436); + this.tb_Trigger2.TabIndex = 5; + this.tb_Trigger2.Text = "Trigger2"; + this.tb_Trigger2.UseVisualStyleBackColor = true; + // + // GB_T2 + // + this.GB_T2.Controls.Add(this.B_ResetTrigger2); + this.GB_T2.Controls.Add(this.NUD_T2Y); + this.GB_T2.Controls.Add(this.L_T2Y); + this.GB_T2.Controls.Add(this.NUD_T2X); + this.GB_T2.Controls.Add(this.L_T2X); + this.GB_T2.Controls.Add(this.RTB_T2); + this.GB_T2.Location = new System.Drawing.Point(6, 40); + this.GB_T2.Name = "GB_T2"; + this.GB_T2.Size = new System.Drawing.Size(325, 323); + this.GB_T2.TabIndex = 440; + this.GB_T2.TabStop = false; + this.GB_T2.Text = "Info:"; + // + // B_ResetTrigger2 + // + this.B_ResetTrigger2.Location = new System.Drawing.Point(257, 275); + this.B_ResetTrigger2.Name = "B_ResetTrigger2"; + this.B_ResetTrigger2.Size = new System.Drawing.Size(62, 42); + this.B_ResetTrigger2.TabIndex = 467; + this.B_ResetTrigger2.Text = "Reset\r\nTrigger2"; + this.B_ResetTrigger2.UseVisualStyleBackColor = true; + this.B_ResetTrigger2.Click += new System.EventHandler(this.B_ResetTrigger2_Click); + // + // NUD_T2Y + // + this.NUD_T2Y.Location = new System.Drawing.Point(143, 164); + this.NUD_T2Y.Maximum = new decimal(new int[] { + 65535, + 0, + 0, + 0}); + this.NUD_T2Y.Name = "NUD_T2Y"; + this.NUD_T2Y.Size = new System.Drawing.Size(53, 20); + this.NUD_T2Y.TabIndex = 445; + // + // L_T2Y + // + this.L_T2Y.Location = new System.Drawing.Point(61, 164); + this.L_T2Y.Name = "L_T2Y"; + this.L_T2Y.Size = new System.Drawing.Size(76, 16); + this.L_T2Y.TabIndex = 444; + this.L_T2Y.Text = "Y Coordinate:"; + this.L_T2Y.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_T2X + // + this.NUD_T2X.Location = new System.Drawing.Point(143, 138); + this.NUD_T2X.Maximum = new decimal(new int[] { + 65535, + 0, + 0, + 0}); + this.NUD_T2X.Name = "NUD_T2X"; + this.NUD_T2X.Size = new System.Drawing.Size(53, 20); + this.NUD_T2X.TabIndex = 443; + // + // L_T2X + // + this.L_T2X.Location = new System.Drawing.Point(61, 138); + this.L_T2X.Name = "L_T2X"; + this.L_T2X.Size = new System.Drawing.Size(76, 16); + this.L_T2X.TabIndex = 442; + this.L_T2X.Text = "X Coordinate:"; + this.L_T2X.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // RTB_T2 + // + this.RTB_T2.Font = new System.Drawing.Font("Courier New", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.RTB_T2.Location = new System.Drawing.Point(6, 275); + this.RTB_T2.Name = "RTB_T2"; + this.RTB_T2.Size = new System.Drawing.Size(245, 42); + this.RTB_T2.TabIndex = 425; + this.RTB_T2.Text = "00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF 00 11 22 33 44 55 66 77 88 99 AA " + + "BB CC DD EE FF 00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF "; + this.RTB_T2.Visible = false; + this.RTB_T2.TextChanged += new System.EventHandler(this.ChangeRAW_T2); + // + // NUD_UE + // + this.NUD_UE.Location = new System.Drawing.Point(75, 11); + this.NUD_UE.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.NUD_UE.Name = "NUD_UE"; + this.NUD_UE.Size = new System.Drawing.Size(53, 20); + this.NUD_UE.TabIndex = 427; + this.NUD_UE.ValueChanged += new System.EventHandler(this.ChangeTrigger2); + // + // L_UE + // + this.L_UE.Location = new System.Drawing.Point(3, 11); + this.L_UE.Name = "L_UE"; + this.L_UE.Size = new System.Drawing.Size(66, 15); + this.L_UE.TabIndex = 428; + this.L_UE.Text = "Entry:"; + this.L_UE.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // tb_Script + // + this.tb_Script.Controls.Add(this.RTB_OSP); + this.tb_Script.Controls.Add(this.RTB_OS); + this.tb_Script.Controls.Add(this.L_OWSCDesc); + this.tb_Script.Controls.Add(this.RTB_OWSCMD); + this.tb_Script.Location = new System.Drawing.Point(4, 22); + this.tb_Script.Name = "tb_Script"; + this.tb_Script.Size = new System.Drawing.Size(337, 436); + this.tb_Script.TabIndex = 4; + this.tb_Script.Text = "Script"; + this.tb_Script.UseVisualStyleBackColor = true; + // + // RTB_OSP + // + this.RTB_OSP.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.RTB_OSP.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.RTB_OSP.Location = new System.Drawing.Point(6, 234); + this.RTB_OSP.Name = "RTB_OSP"; + this.RTB_OSP.ReadOnly = true; + this.RTB_OSP.Size = new System.Drawing.Size(331, 202); + this.RTB_OSP.TabIndex = 425; + this.RTB_OSP.Text = "Parse Output"; + // + // RTB_OS + // + this.RTB_OS.Font = new System.Drawing.Font("Courier New", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.RTB_OS.Location = new System.Drawing.Point(97, 3); + this.RTB_OS.Name = "RTB_OS"; + this.RTB_OS.ReadOnly = true; + this.RTB_OS.Size = new System.Drawing.Size(85, 225); + this.RTB_OS.TabIndex = 424; + this.RTB_OS.Text = "Raw Data"; + // + // L_OWSCDesc + // + this.L_OWSCDesc.AutoSize = true; + this.L_OWSCDesc.Location = new System.Drawing.Point(188, 3); + this.L_OWSCDesc.Name = "L_OWSCDesc"; + this.L_OWSCDesc.Size = new System.Drawing.Size(75, 13); + this.L_OWSCDesc.TabIndex = 423; + this.L_OWSCDesc.Text = "Script Analysis"; + // + // RTB_OWSCMD + // + this.RTB_OWSCMD.Font = new System.Drawing.Font("Courier New", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.RTB_OWSCMD.Location = new System.Drawing.Point(6, 3); + this.RTB_OWSCMD.Name = "RTB_OWSCMD"; + this.RTB_OWSCMD.ReadOnly = true; + this.RTB_OWSCMD.Size = new System.Drawing.Size(85, 225); + this.RTB_OWSCMD.TabIndex = 422; + this.RTB_OWSCMD.Text = "Script CMDs"; + // + // NUD_NPCCount + // + this.NUD_NPCCount.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.NUD_NPCCount.Location = new System.Drawing.Point(422, 48); + this.NUD_NPCCount.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.NUD_NPCCount.Name = "NUD_NPCCount"; + this.NUD_NPCCount.Size = new System.Drawing.Size(53, 20); + this.NUD_NPCCount.TabIndex = 415; + this.NUD_NPCCount.ValueChanged += new System.EventHandler(this.ChangeNPCCount); + // + // L_NPCCount + // + this.L_NPCCount.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.L_NPCCount.Location = new System.Drawing.Point(350, 48); + this.L_NPCCount.Name = "L_NPCCount"; + this.L_NPCCount.Size = new System.Drawing.Size(66, 15); + this.L_NPCCount.TabIndex = 416; + this.L_NPCCount.Text = "NPC:"; + this.L_NPCCount.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // tb_MSC + // + this.tb_MSC.Controls.Add(this.RTB_MSP); + this.tb_MSC.Controls.Add(this.RTB_MSCMD); + this.tb_MSC.Controls.Add(this.L_MSSCDesc); + this.tb_MSC.Controls.Add(this.RTB_MS); + this.tb_MSC.Location = new System.Drawing.Point(4, 22); + this.tb_MSC.Name = "tb_MSC"; + this.tb_MSC.Size = new System.Drawing.Size(486, 471); + this.tb_MSC.TabIndex = 2; + this.tb_MSC.Text = "Map SC"; + this.tb_MSC.UseVisualStyleBackColor = true; + // + // RTB_MSP + // + this.RTB_MSP.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.RTB_MSP.Font = new System.Drawing.Font("Courier New", 8.25F); + this.RTB_MSP.Location = new System.Drawing.Point(3, 234); + this.RTB_MSP.Name = "RTB_MSP"; + this.RTB_MSP.ReadOnly = true; + this.RTB_MSP.Size = new System.Drawing.Size(483, 237); + this.RTB_MSP.TabIndex = 428; + this.RTB_MSP.Text = "Parse Output"; + // + // RTB_MSCMD + // + this.RTB_MSCMD.Font = new System.Drawing.Font("Courier New", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.RTB_MSCMD.Location = new System.Drawing.Point(3, 3); + this.RTB_MSCMD.Name = "RTB_MSCMD"; + this.RTB_MSCMD.ReadOnly = true; + this.RTB_MSCMD.Size = new System.Drawing.Size(85, 225); + this.RTB_MSCMD.TabIndex = 427; + this.RTB_MSCMD.Text = "Script CMDs"; + // + // L_MSSCDesc + // + this.L_MSSCDesc.AutoSize = true; + this.L_MSSCDesc.Location = new System.Drawing.Point(185, 3); + this.L_MSSCDesc.Name = "L_MSSCDesc"; + this.L_MSSCDesc.Size = new System.Drawing.Size(75, 13); + this.L_MSSCDesc.TabIndex = 426; + this.L_MSSCDesc.Text = "Script Analysis"; + // + // RTB_MS + // + this.RTB_MS.Font = new System.Drawing.Font("Courier New", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.RTB_MS.Location = new System.Drawing.Point(94, 3); + this.RTB_MS.Name = "RTB_MS"; + this.RTB_MS.ReadOnly = true; + this.RTB_MS.Size = new System.Drawing.Size(85, 225); + this.RTB_MS.TabIndex = 425; + this.RTB_MS.Text = "Raw Data"; + // + // tb_Encounters + // + this.tb_Encounters.Controls.Add(this.L_Encounters); + this.tb_Encounters.Location = new System.Drawing.Point(4, 22); + this.tb_Encounters.Name = "tb_Encounters"; + this.tb_Encounters.Size = new System.Drawing.Size(486, 471); + this.tb_Encounters.TabIndex = 3; + this.tb_Encounters.Text = "Encounters"; + this.tb_Encounters.UseVisualStyleBackColor = true; + // + // L_Encounters + // + this.L_Encounters.AutoSize = true; + this.L_Encounters.Location = new System.Drawing.Point(26, 26); + this.L_Encounters.Name = "L_Encounters"; + this.L_Encounters.Size = new System.Drawing.Size(241, 13); + this.L_Encounters.TabIndex = 0; + this.L_Encounters.Text = "Encounters are handled in the regular Wild Editor."; + // + // tb_File5 + // + this.tb_File5.Controls.Add(this.L_File5TabData); + this.tb_File5.Location = new System.Drawing.Point(4, 22); + this.tb_File5.Name = "tb_File5"; + this.tb_File5.Size = new System.Drawing.Size(486, 471); + this.tb_File5.TabIndex = 4; + this.tb_File5.Text = "File 5"; + this.tb_File5.UseVisualStyleBackColor = true; + // + // L_File5TabData + // + this.L_File5TabData.AutoSize = true; + this.L_File5TabData.Location = new System.Drawing.Point(26, 26); + this.L_File5TabData.Name = "L_File5TabData"; + this.L_File5TabData.Size = new System.Drawing.Size(227, 13); + this.L_File5TabData.TabIndex = 1; + this.L_File5TabData.Text = "Functionality unknown. See RAW tab for data."; + // + // tb_RAW + // + this.tb_RAW.Controls.Add(this.L_ZD); + this.tb_RAW.Controls.Add(this.L_File3); + this.tb_RAW.Controls.Add(this.L_ZDMaster); + this.tb_RAW.Controls.Add(this.L_File5); + this.tb_RAW.Controls.Add(this.L_File4); + this.tb_RAW.Controls.Add(this.L_File2); + this.tb_RAW.Controls.Add(this.L_File1); + this.tb_RAW.Controls.Add(this.RTB_ZDMaster); + this.tb_RAW.Controls.Add(this.RTB_ZD); + this.tb_RAW.Controls.Add(this.RTB_File5); + this.tb_RAW.Controls.Add(this.RTB_OWSC); + this.tb_RAW.Controls.Add(this.RTB_Encounter); + this.tb_RAW.Controls.Add(this.RTB_MapSC); + this.tb_RAW.Location = new System.Drawing.Point(4, 22); + this.tb_RAW.Name = "tb_RAW"; + this.tb_RAW.Size = new System.Drawing.Size(486, 471); + this.tb_RAW.TabIndex = 5; + this.tb_RAW.Text = "RAW"; + this.tb_RAW.UseVisualStyleBackColor = true; + // + // L_ZD + // + this.L_ZD.AutoSize = true; + this.L_ZD.Font = new System.Drawing.Font("Courier New", 8.25F); + this.L_ZD.Location = new System.Drawing.Point(140, 346); + this.L_ZD.Name = "L_ZD"; + this.L_ZD.Size = new System.Drawing.Size(35, 28); + this.L_ZD.TabIndex = 430; + this.L_ZD.Text = "X: ~\r\nY: ~"; + // + // L_File3 + // + this.L_File3.Location = new System.Drawing.Point(70, 83); + this.L_File3.Name = "L_File3"; + this.L_File3.Size = new System.Drawing.Size(141, 23); + this.L_File3.TabIndex = 429; + this.L_File3.Text = "Map Environment [3]:"; + this.L_File3.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_ZDMaster + // + this.L_ZDMaster.Location = new System.Drawing.Point(-4, 277); + this.L_ZDMaster.Name = "L_ZDMaster"; + this.L_ZDMaster.Size = new System.Drawing.Size(141, 23); + this.L_ZDMaster.TabIndex = 428; + this.L_ZDMaster.Text = "Master ZoneData Table:"; + this.L_ZDMaster.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_File5 + // + this.L_File5.Location = new System.Drawing.Point(70, 167); + this.L_File5.Name = "L_File5"; + this.L_File5.Size = new System.Drawing.Size(141, 23); + this.L_File5.TabIndex = 427; + this.L_File5.Text = "Unknown [5]:"; + this.L_File5.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_File4 + // + this.L_File4.Location = new System.Drawing.Point(70, 125); + this.L_File4.Name = "L_File4"; + this.L_File4.Size = new System.Drawing.Size(141, 23); + this.L_File4.TabIndex = 426; + this.L_File4.Text = "Encounter Data [4]:"; + this.L_File4.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_File2 + // + this.L_File2.Location = new System.Drawing.Point(70, 41); + this.L_File2.Name = "L_File2"; + this.L_File2.Size = new System.Drawing.Size(141, 23); + this.L_File2.TabIndex = 424; + this.L_File2.Text = "Overworlds [2]:"; + this.L_File2.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_File1 + // + this.L_File1.Location = new System.Drawing.Point(70, -1); + this.L_File1.Name = "L_File1"; + this.L_File1.Size = new System.Drawing.Size(141, 23); + this.L_File1.TabIndex = 423; + this.L_File1.Text = "ZoneData [1]:"; + this.L_File1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // RTB_ZDMaster + // + this.RTB_ZDMaster.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.RTB_ZDMaster.Location = new System.Drawing.Point(143, 279); + this.RTB_ZDMaster.Name = "RTB_ZDMaster"; + this.RTB_ZDMaster.ReadOnly = true; + this.RTB_ZDMaster.Size = new System.Drawing.Size(340, 64); + this.RTB_ZDMaster.TabIndex = 422; + this.RTB_ZDMaster.Text = "00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF 00 11 22 33 44 55 66 77 88 99 AA " + + "BB CC DD EE FF 00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF 00 11 22 33 44 55" + + " 66 77 88 99 AA BB CC DD EE FF"; + // + // RTB_File5 + // + this.RTB_File5.Font = new System.Drawing.Font("Courier New", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.RTB_File5.Location = new System.Drawing.Point(217, 171); + this.RTB_File5.Name = "RTB_File5"; + this.RTB_File5.ReadOnly = true; + this.RTB_File5.Size = new System.Drawing.Size(266, 36); + this.RTB_File5.TabIndex = 421; + this.RTB_File5.Text = "00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF"; + // + // RTB_OWSC + // + this.RTB_OWSC.Font = new System.Drawing.Font("Courier New", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.RTB_OWSC.Location = new System.Drawing.Point(217, 45); + this.RTB_OWSC.Name = "RTB_OWSC"; + this.RTB_OWSC.ReadOnly = true; + this.RTB_OWSC.Size = new System.Drawing.Size(266, 36); + this.RTB_OWSC.TabIndex = 418; + this.RTB_OWSC.Text = "00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF"; + // + // RTB_Encounter + // + this.RTB_Encounter.Font = new System.Drawing.Font("Courier New", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.RTB_Encounter.Location = new System.Drawing.Point(217, 129); + this.RTB_Encounter.Name = "RTB_Encounter"; + this.RTB_Encounter.ReadOnly = true; + this.RTB_Encounter.Size = new System.Drawing.Size(266, 36); + this.RTB_Encounter.TabIndex = 420; + this.RTB_Encounter.Text = "00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF"; + // + // RTB_MapSC + // + this.RTB_MapSC.Font = new System.Drawing.Font("Courier New", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.RTB_MapSC.Location = new System.Drawing.Point(217, 87); + this.RTB_MapSC.Name = "RTB_MapSC"; + this.RTB_MapSC.ReadOnly = true; + this.RTB_MapSC.Size = new System.Drawing.Size(266, 36); + this.RTB_MapSC.TabIndex = 419; + this.RTB_MapSC.Text = "00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF"; + // + // tb_Dev + // + this.tb_Dev.Controls.Add(this.B_DumpZD); + this.tb_Dev.Controls.Add(this.L_DeComp); + this.tb_Dev.Controls.Add(this.RTB_CompressedScript); + this.tb_Dev.Controls.Add(this.RTB_DecompressedScript); + this.tb_Dev.Controls.Add(this.L_Comp); + this.tb_Dev.Controls.Add(this.B_DumpMaps); + this.tb_Dev.Controls.Add(this.B_DumpUnk); + this.tb_Dev.Controls.Add(this.B_DumpTrigger); + this.tb_Dev.Controls.Add(this.B_DumpWarp); + this.tb_Dev.Controls.Add(this.B_DumpNPC); + this.tb_Dev.Controls.Add(this.B_DumpFurniture); + this.tb_Dev.Location = new System.Drawing.Point(4, 22); + this.tb_Dev.Name = "tb_Dev"; + this.tb_Dev.Padding = new System.Windows.Forms.Padding(3); + this.tb_Dev.Size = new System.Drawing.Size(486, 471); + this.tb_Dev.TabIndex = 7; + this.tb_Dev.Text = "Dev"; + this.tb_Dev.UseVisualStyleBackColor = true; + // + // B_DumpZD + // + this.B_DumpZD.Location = new System.Drawing.Point(149, 51); + this.B_DumpZD.Name = "B_DumpZD"; + this.B_DumpZD.Size = new System.Drawing.Size(89, 39); + this.B_DumpZD.TabIndex = 431; + this.B_DumpZD.Text = "Dump all ZD"; + this.B_DumpZD.UseVisualStyleBackColor = true; + this.B_DumpZD.Click += new System.EventHandler(this.B_DumpZD_Click); + // + // L_DeComp + // + this.L_DeComp.AutoSize = true; + this.L_DeComp.Location = new System.Drawing.Point(395, 224); + this.L_DeComp.Name = "L_DeComp"; + this.L_DeComp.Size = new System.Drawing.Size(78, 13); + this.L_DeComp.TabIndex = 430; + this.L_DeComp.Text = "Decompressed"; + // + // RTB_CompressedScript + // + this.RTB_CompressedScript.Font = new System.Drawing.Font("Courier New", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.RTB_CompressedScript.Location = new System.Drawing.Point(304, 240); + this.RTB_CompressedScript.Name = "RTB_CompressedScript"; + this.RTB_CompressedScript.Size = new System.Drawing.Size(85, 225); + this.RTB_CompressedScript.TabIndex = 429; + this.RTB_CompressedScript.Text = "Script CMDs"; + this.RTB_CompressedScript.TextChanged += new System.EventHandler(this.PasteScript); + // + // RTB_DecompressedScript + // + this.RTB_DecompressedScript.Font = new System.Drawing.Font("Courier New", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.RTB_DecompressedScript.Location = new System.Drawing.Point(395, 240); + this.RTB_DecompressedScript.Name = "RTB_DecompressedScript"; + this.RTB_DecompressedScript.ReadOnly = true; + this.RTB_DecompressedScript.Size = new System.Drawing.Size(85, 225); + this.RTB_DecompressedScript.TabIndex = 428; + this.RTB_DecompressedScript.Text = "Raw Data"; + // + // L_Comp + // + this.L_Comp.AutoSize = true; + this.L_Comp.Location = new System.Drawing.Point(301, 224); + this.L_Comp.Name = "L_Comp"; + this.L_Comp.Size = new System.Drawing.Size(65, 13); + this.L_Comp.TabIndex = 426; + this.L_Comp.Text = "Compressed"; + // + // B_DumpMaps + // + this.B_DumpMaps.Location = new System.Drawing.Point(149, 6); + this.B_DumpMaps.Name = "B_DumpMaps"; + this.B_DumpMaps.Size = new System.Drawing.Size(89, 39); + this.B_DumpMaps.TabIndex = 425; + this.B_DumpMaps.Text = "Dump all Maps"; + this.B_DumpMaps.UseVisualStyleBackColor = true; + this.B_DumpMaps.Click += new System.EventHandler(this.B_DumpMaps_Click); + // + // B_DumpUnk + // + this.B_DumpUnk.Location = new System.Drawing.Point(6, 186); + this.B_DumpUnk.Name = "B_DumpUnk"; + this.B_DumpUnk.Size = new System.Drawing.Size(89, 39); + this.B_DumpUnk.TabIndex = 424; + this.B_DumpUnk.Text = "Dump all\r\nUnk"; + this.B_DumpUnk.UseVisualStyleBackColor = true; + this.B_DumpUnk.Click += new System.EventHandler(this.B_DumpUnk_Click); + // + // B_DumpTrigger + // + this.B_DumpTrigger.Location = new System.Drawing.Point(6, 141); + this.B_DumpTrigger.Name = "B_DumpTrigger"; + this.B_DumpTrigger.Size = new System.Drawing.Size(89, 39); + this.B_DumpTrigger.TabIndex = 423; + this.B_DumpTrigger.Text = "Dump all\r\nTriggers"; + this.B_DumpTrigger.UseVisualStyleBackColor = true; + this.B_DumpTrigger.Click += new System.EventHandler(this.B_DumpTrigger_Click); + // + // B_DumpWarp + // + this.B_DumpWarp.Location = new System.Drawing.Point(6, 96); + this.B_DumpWarp.Name = "B_DumpWarp"; + this.B_DumpWarp.Size = new System.Drawing.Size(89, 39); + this.B_DumpWarp.TabIndex = 422; + this.B_DumpWarp.Text = "Dump all\r\nWarp Bytes"; + this.B_DumpWarp.UseVisualStyleBackColor = true; + this.B_DumpWarp.Click += new System.EventHandler(this.B_DumpWarp_Click); + // + // B_DumpNPC + // + this.B_DumpNPC.Location = new System.Drawing.Point(6, 51); + this.B_DumpNPC.Name = "B_DumpNPC"; + this.B_DumpNPC.Size = new System.Drawing.Size(89, 39); + this.B_DumpNPC.TabIndex = 421; + this.B_DumpNPC.Text = "Dump all\r\nNPC Bytes"; + this.B_DumpNPC.UseVisualStyleBackColor = true; + this.B_DumpNPC.Click += new System.EventHandler(this.B_DumpNPC_Click); + // + // B_DumpFurniture + // + this.B_DumpFurniture.Location = new System.Drawing.Point(6, 6); + this.B_DumpFurniture.Name = "B_DumpFurniture"; + this.B_DumpFurniture.Size = new System.Drawing.Size(89, 39); + this.B_DumpFurniture.TabIndex = 420; + this.B_DumpFurniture.Text = "Dump all\r\nFurniture Bytes"; + this.B_DumpFurniture.UseVisualStyleBackColor = true; + this.B_DumpFurniture.Click += new System.EventHandler(this.B_DumpFurniture_Click); + // + // B_Map + // + this.B_Map.Location = new System.Drawing.Point(318, 5); + this.B_Map.Name = "B_Map"; + this.B_Map.Size = new System.Drawing.Size(89, 23); + this.B_Map.TabIndex = 420; + this.B_Map.Text = "Show Map"; + this.B_Map.UseVisualStyleBackColor = true; + this.B_Map.Click += new System.EventHandler(this.B_Map_Click); + // + // L_ZDPreview + // + this.L_ZDPreview.AutoSize = true; + this.L_ZDPreview.Location = new System.Drawing.Point(216, 3); + this.L_ZDPreview.Name = "L_ZDPreview"; + this.L_ZDPreview.Size = new System.Drawing.Size(50, 26); + this.L_ZDPreview.TabIndex = 418; + this.L_ZDPreview.Text = "Text File:\r\nMap File:"; + // + // B_HLCMD + // + this.B_HLCMD.Location = new System.Drawing.Point(413, 5); + this.B_HLCMD.Name = "B_HLCMD"; + this.B_HLCMD.Size = new System.Drawing.Size(89, 23); + this.B_HLCMD.TabIndex = 419; + this.B_HLCMD.Text = "HL **CMD**"; + this.B_HLCMD.UseVisualStyleBackColor = true; + this.B_HLCMD.Click += new System.EventHandler(this.B_HLCMD_Click); + // + // OWSE + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(514, 537); + this.Controls.Add(this.B_Map); + this.Controls.Add(this.B_HLCMD); + this.Controls.Add(this.L_ZDPreview); + this.Controls.Add(this.tb_Zone); + this.Controls.Add(this.L_Location); + this.Controls.Add(this.CB_LocationID); + this.MaximizeBox = false; + this.MinimumSize = new System.Drawing.Size(530, 575); + this.Name = "OWSE"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Overworld Editor"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.ClosingForm); + this.tb_Zone.ResumeLayout(false); + this.tb_ZoneData.ResumeLayout(false); + this.tb_ZoneData.PerformLayout(); + this.tb_OWSC.ResumeLayout(false); + this.tb_OWSC.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_UnkCount)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_TrigCount)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_WarpCount)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_FurnCount)).EndInit(); + this.tc_OWSC.ResumeLayout(false); + this.tb_Furniture.ResumeLayout(false); + this.GB_F.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.NUD_FWY)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_FWX)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_FY)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_FX)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_FE)).EndInit(); + this.tb_NPC.ResumeLayout(false); + this.GB_N.ResumeLayout(false); + this.GB_N.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_NMove2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_NMove1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_NRange)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_NFlag)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_NScript)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_NFace)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_NY)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_NX)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_NModel)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_NID)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_NE)).EndInit(); + this.tb_Warp.ResumeLayout(false); + this.GB_W.ResumeLayout(false); + this.GB_W.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_WY)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_WX)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_WTile)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_WMap)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_WE)).EndInit(); + this.tb_Trigger1.ResumeLayout(false); + this.GB_T1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.NUD_T1Y)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_T1X)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_TE)).EndInit(); + this.tb_Trigger2.ResumeLayout(false); + this.GB_T2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.NUD_T2Y)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_T2X)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_UE)).EndInit(); + this.tb_Script.ResumeLayout(false); + this.tb_Script.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_NPCCount)).EndInit(); + this.tb_MSC.ResumeLayout(false); + this.tb_MSC.PerformLayout(); + this.tb_Encounters.ResumeLayout(false); + this.tb_Encounters.PerformLayout(); + this.tb_File5.ResumeLayout(false); + this.tb_File5.PerformLayout(); + this.tb_RAW.ResumeLayout(false); + this.tb_RAW.PerformLayout(); + this.tb_Dev.ResumeLayout(false); + this.tb_Dev.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.ComboBox CB_LocationID; + private System.Windows.Forms.Label L_Location; + private System.Windows.Forms.RichTextBox RTB_ZD; + private System.Windows.Forms.TabControl tb_Zone; + private System.Windows.Forms.TabPage tb_ZoneData; + private System.Windows.Forms.TabPage tb_OWSC; + private System.Windows.Forms.TabPage tb_MSC; + private System.Windows.Forms.TabPage tb_Encounters; + private System.Windows.Forms.TabPage tb_File5; + private System.Windows.Forms.TabControl tc_OWSC; + private System.Windows.Forms.TabPage tb_Furniture; + private System.Windows.Forms.TabPage tb_NPC; + private System.Windows.Forms.RichTextBox RTB_N; + private System.Windows.Forms.TabPage tb_Warp; + private System.Windows.Forms.TabPage tb_Trigger1; + private System.Windows.Forms.RichTextBox RTB_OWSC; + private System.Windows.Forms.RichTextBox RTB_MapSC; + private System.Windows.Forms.RichTextBox RTB_Encounter; + private System.Windows.Forms.RichTextBox RTB_File5; + private System.Windows.Forms.NumericUpDown NUD_TrigCount; + private System.Windows.Forms.Label L_TriggerCount; + private System.Windows.Forms.NumericUpDown NUD_WarpCount; + private System.Windows.Forms.Label L_WarpCount; + private System.Windows.Forms.NumericUpDown NUD_FurnCount; + private System.Windows.Forms.Label L_FurnitureCount; + private System.Windows.Forms.NumericUpDown NUD_NPCCount; + private System.Windows.Forms.Label L_NPCCount; + private System.Windows.Forms.NumericUpDown NUD_FE; + private System.Windows.Forms.Label L_FE; + private System.Windows.Forms.NumericUpDown NUD_NE; + private System.Windows.Forms.Label L_NE; + private System.Windows.Forms.NumericUpDown NUD_WE; + private System.Windows.Forms.Label L_WE; + private System.Windows.Forms.NumericUpDown NUD_TE; + private System.Windows.Forms.Label L_TE; + private System.Windows.Forms.TabPage tb_Script; + private System.Windows.Forms.RichTextBox RTB_ZDMaster; + private System.Windows.Forms.RichTextBox RTB_F; + private System.Windows.Forms.RichTextBox RTB_OWSCMD; + private System.Windows.Forms.NumericUpDown NUD_WTile; + private System.Windows.Forms.NumericUpDown NUD_WMap; + private System.Windows.Forms.Label L_DestWarpTile; + private System.Windows.Forms.Label L_DestMap; + private System.Windows.Forms.Label L_OWSCDesc; + private System.Windows.Forms.TabPage tb_RAW; + private System.Windows.Forms.Label L_MSSCDesc; + private System.Windows.Forms.RichTextBox RTB_MS; + private System.Windows.Forms.Label L_WarpDest; + private System.Windows.Forms.NumericUpDown NUD_NID; + private System.Windows.Forms.Label L_NID; + private System.Windows.Forms.Label L_ZDPreview; + private System.Windows.Forms.RichTextBox RTB_OS; + private System.Windows.Forms.RichTextBox RTB_MSCMD; + private System.Windows.Forms.Label L_Encounters; + private System.Windows.Forms.Label L_ZDMaster; + private System.Windows.Forms.Label L_File5; + private System.Windows.Forms.Label L_File4; + private System.Windows.Forms.Label L_File2; + private System.Windows.Forms.Label L_File1; + private System.Windows.Forms.Label L_File3; + private System.Windows.Forms.Label L_MapInfoTabData; + private System.Windows.Forms.Label L_File5TabData; + private System.Windows.Forms.Label L_OWEntities; + private System.Windows.Forms.RichTextBox RTB_OSP; + private System.Windows.Forms.RichTextBox RTB_MSP; + private System.Windows.Forms.Button B_HLCMD; + private System.Windows.Forms.GroupBox GB_N; + private System.Windows.Forms.NumericUpDown NUD_NModel; + private System.Windows.Forms.Label L_NModel; + private System.Windows.Forms.NumericUpDown NUD_NY; + private System.Windows.Forms.Label L_NY; + private System.Windows.Forms.NumericUpDown NUD_NX; + private System.Windows.Forms.Label L_NX; + private System.Windows.Forms.NumericUpDown NUD_NFace; + private System.Windows.Forms.Label L_NFaceDirection; + private System.Windows.Forms.NumericUpDown NUD_NScript; + private System.Windows.Forms.Label L_NScript; + private System.Windows.Forms.NumericUpDown NUD_NFlag; + private System.Windows.Forms.Label L_NFlag; + private System.Windows.Forms.NumericUpDown NUD_UnkCount; + private System.Windows.Forms.Label L_Unk; + private System.Windows.Forms.TabPage tb_Trigger2; + private System.Windows.Forms.NumericUpDown NUD_UE; + private System.Windows.Forms.Label L_UE; + private System.Windows.Forms.Label L_ModelAsHex; + private System.Windows.Forms.GroupBox GB_F; + private System.Windows.Forms.GroupBox GB_W; + private System.Windows.Forms.RichTextBox RTB_W; + private System.Windows.Forms.GroupBox GB_T1; + private System.Windows.Forms.RichTextBox RTB_T1; + private System.Windows.Forms.GroupBox GB_T2; + private System.Windows.Forms.RichTextBox RTB_T2; + private System.Windows.Forms.TabPage tb_Dev; + private System.Windows.Forms.Button B_DumpUnk; + private System.Windows.Forms.Button B_DumpTrigger; + private System.Windows.Forms.Button B_DumpWarp; + private System.Windows.Forms.Button B_DumpNPC; + private System.Windows.Forms.Button B_DumpFurniture; + private System.Windows.Forms.Button B_DumpMaps; + private System.Windows.Forms.Label L_Comp; + private System.Windows.Forms.Label L_DeComp; + private System.Windows.Forms.RichTextBox RTB_CompressedScript; + private System.Windows.Forms.RichTextBox RTB_DecompressedScript; + private System.Windows.Forms.NumericUpDown NUD_NRange; + private System.Windows.Forms.Label L_Range; + private System.Windows.Forms.TextBox TB_NDeg; + private System.Windows.Forms.Label L_NDeg; + private System.Windows.Forms.TextBox TB_Leash; + private System.Windows.Forms.Label L_LeashInfo; + private System.Windows.Forms.NumericUpDown NUD_NMove2; + private System.Windows.Forms.Label L_Move2; + private System.Windows.Forms.NumericUpDown NUD_NMove1; + private System.Windows.Forms.Label L_Move1; + private System.Windows.Forms.Label L_WpY; + private System.Windows.Forms.Label L_WpX; + private System.Windows.Forms.NumericUpDown NUD_WY; + private System.Windows.Forms.Label L_WY; + private System.Windows.Forms.NumericUpDown NUD_WX; + private System.Windows.Forms.Label L_WX; + private System.Windows.Forms.NumericUpDown NUD_FWY; + private System.Windows.Forms.Label L_FWY; + private System.Windows.Forms.NumericUpDown NUD_FWX; + private System.Windows.Forms.Label L_FWX; + private System.Windows.Forms.NumericUpDown NUD_FY; + private System.Windows.Forms.Label L_FY; + private System.Windows.Forms.NumericUpDown NUD_FX; + private System.Windows.Forms.Label L_FX; + private System.Windows.Forms.NumericUpDown NUD_T1Y; + private System.Windows.Forms.Label L_T1Y; + private System.Windows.Forms.NumericUpDown NUD_T1X; + private System.Windows.Forms.Label L_T1X; + private System.Windows.Forms.NumericUpDown NUD_T2Y; + private System.Windows.Forms.Label L_T2Y; + private System.Windows.Forms.NumericUpDown NUD_T2X; + private System.Windows.Forms.Label L_T2X; + private System.Windows.Forms.Button B_Map; + private System.Windows.Forms.Label L_ZD; + private System.Windows.Forms.Button B_DumpZD; + private System.Windows.Forms.CheckBox CHK_EditRAW; + private System.Windows.Forms.Button B_ResetNPC; + private System.Windows.Forms.Button B_ResetOverworlds; + private System.Windows.Forms.Button B_ResetFurniture; + private System.Windows.Forms.Button B_ResetWarp; + private System.Windows.Forms.Button B_ResetTrigger1; + private System.Windows.Forms.Button B_ResetTrigger2; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen6/Experimental/OWSE.cs b/pk3DS.WinForms/Subforms/Gen6/Experimental/OWSE.cs new file mode 100644 index 0000000000..374e8adf42 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/Experimental/OWSE.cs @@ -0,0 +1,917 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Globalization; +using System.IO; +using System.Linq; +using System.Windows.Forms; +using pk3DS.Core; +using pk3DS.Core.CTR; + +namespace pk3DS.WinForms; + +public sealed partial class OWSE : Form +{ + public OWSE() + { + InitializeComponent(); + + // Script Drag&Drop + AllowDrop = true; + DragEnter += TabMain_DragEnter; + DragDrop += TabMain_DragDrop; + + // Finished + OpenQuick(Directory.GetFiles("encdata")); + mapView.Show(); + tb_Zone.SelectedIndex = 1; // Show Overworlds tab + } + + private readonly string[] gameLocations = Main.Config.GetText(TextName.metlist_000000); + private string[] filepaths; + private string[] encdatapaths; + private byte[] masterZoneData; + private bool debugToolDumping; + + // Generated Storage + private string[] zdLocations; + private string[] rawLocations; + private byte[][] locationData; + + // Map Viewer References + internal static Zone CurrentZone; + internal static MapMatrix mm; + private readonly MapPermView mapView = new(); + + private void OpenQuick(string[] encdata) + { + // Gather + encdatapaths = encdata; + Array.Sort(encdatapaths); + filepaths = encdatapaths.Skip(Main.Config.ORAS ? 2 : 1).Take(encdatapaths.Length - (Main.Config.ORAS ? 2 : 1)).ToArray(); + masterZoneData = File.ReadAllBytes(encdatapaths[0]); + zdLocations = new string[filepaths.Length]; + rawLocations = new string[filepaths.Length]; + + tb_File5.Visible = Main.Config.ORAS; // 5th File is only present with OR/AS. + + // Analyze + for (int f = 0; f < filepaths.Length; f++) + { + string name = Path.GetFileNameWithoutExtension(filepaths[f]); + + int LocationNum = Convert.ToInt16(name[4..]); + var zo = new ZoneData(masterZoneData.Skip(f * ZoneData.Size).Take(ZoneData.Size).ToArray()); + string LocationName = gameLocations[zo.ParentMap]; + zdLocations[f] = LocationNum.ToString("000") + " - " + LocationName; + rawLocations[f] = LocationName; + } + + // Assign + CB_LocationID.DataSource = zdLocations; + CB_LocationID.Enabled = true; + CB_LocationID_SelectedIndexChanged(null, null); + NUD_WMap.Maximum = zdLocations.Length; // Cap map warp destinations to the amount of maps. + } + + private void B_Map_Click(object sender, EventArgs e) + { + if (!mapView.Visible) + mapView.Show(); + } + + private void ClosingForm(object sender, FormClosingEventArgs e) + { + // Close map view + mapView.Close(); + mapView.Dispose(); + } + + private void CB_LocationID_SelectedIndexChanged(object sender, EventArgs e) + { + SetEntry(); + entry = CB_LocationID.SelectedIndex; + GetEntry(); + } + + private void GetEntry() + { + if (entry < 0) return; + byte[] raw = File.ReadAllBytes(filepaths[entry]); + locationData = Mini.UnpackMini(raw, "ZO"); + if (locationData == null) return; + + // Read master ZD table + byte[] zd = masterZoneData.Skip(ZoneData.Size * entry).Take(ZoneData.Size).ToArray(); + RTB_ZDMaster.Lines = Scripts.GetHexLines(zd, 0x10); + + // Load from location Data. + CurrentZone = new Zone(locationData); + // File 0 - ZoneData + RTB_ZD.Lines = Scripts.GetHexLines(locationData[0], 0x10); + GetZoneData(); + + // File 1 - Overworld Setup & Script + RTB_OWSC.Lines = Scripts.GetHexLines(locationData[1], 0x10); + GetOWSData(); + + // File 2 - Map Script + RTB_MapSC.Lines = Scripts.GetHexLines(locationData[2], 0x10); + GetScriptData(); + + // File 3 - Encounters + RTB_Encounter.Lines = Scripts.GetHexLines(locationData[3], 0x10); + + // File 4 - ?? (ORAS Only?) + RTB_File5.Lines = Scripts.GetHexLines(locationData.Length <= 4 ? null : locationData[4], 0x10); + } + + private void SetEntry() + { + if (entry < 0) return; + if (debugToolDumping) return; + + // Set the data back into the class object + // Currently only the first two files. + SetZoneData(); // File 0 + SetOWSData(); + // setMSData(); + // setEncounterData(); + // if (Main.Config.ORAS) + // setUnknown(); + + // Reassemble files + byte[][] data = CurrentZone.Write(); + + // Debug Check (can stay, why not.) + if (!locationData.Where((t, i) => !data[i].SequenceEqual(t)).Any()) + return; + + // Util.Alert("Zone has been edited!"); + System.Media.SystemSounds.Asterisk.Play(); + + // Package the files into the permanent package file. + byte[] raw = Mini.PackMini(data, "ZO"); + File.WriteAllBytes(filepaths[entry], raw); + } + + // Loading of Data + private void GetZoneData() + { + L_ZDPreview.Text = "Text File: " + CurrentZone.ZD.TextFile + + Environment.NewLine + "Map File: " + CurrentZone.ZD.MapMatrix; + + L_ZD.Text = string.Format("X: {0,5}{3}Y: {1,5}{3}Z:{2,6}{3}{3}X: {4,5}{3}Y: {5,5}{3}Z:{6,6}", CurrentZone.ZD.PX, CurrentZone.ZD.PY, + CurrentZone.ZD.Z, Environment.NewLine, CurrentZone.ZD.PX2, CurrentZone.ZD.PY2, + CurrentZone.ZD.Z2); + + if (Math.Abs(CurrentZone.ZD.PX - CurrentZone.ZD.PX2) > 0.01 + || Math.Abs(CurrentZone.ZD.PY - CurrentZone.ZD.PY2) > 0.01 + || CurrentZone.ZD.Z != CurrentZone.ZD.Z2) + { + L_ZD.Text += Environment.NewLine + "COORDINATE MISMATCH"; + } + + // Fetch Map Image + mapView.SetMap(CurrentZone.ZD.MapMatrix); + } + + private void GetOWSData() + { + // Reset Fields a little. + RTB_F.Text = RTB_N.Text = RTB_W.Text = RTB_T1.Text = RTB_T2.Text = string.Empty; + fEntry = nEntry = wEntry = tEntry = uEntry = -1; + // Set Counters + NUD_FurnCount.Value = CurrentZone.Entities.FurnitureCount; ChangeFurnitureCount(null, null); + NUD_NPCCount.Value = CurrentZone.Entities.NPCCount; ChangeNPCCount(null, null); + NUD_WarpCount.Value = CurrentZone.Entities.WarpCount; ChangeWarpCount(null, null); + NUD_TrigCount.Value = CurrentZone.Entities.TriggerCount; ChangeTriggerCount(null, null); + NUD_UnkCount.Value = CurrentZone.Entities.UnknownCount; ChangeUnkCount(null, null); + + // Collect/Load Data + NUD_FE.Value = NUD_FE.Maximum < 0 ? -1 : 0; ChangeFurniture(null, null); + NUD_NE.Value = NUD_NE.Maximum < 0 ? -1 : 0; ChangeNPC(null, null); + NUD_WE.Value = NUD_WE.Maximum < 0 ? -1 : 0; ChangeWarp(null, null); + NUD_TE.Value = NUD_TE.Maximum < 0 ? -1 : 0; ChangeTrigger1(null, null); + NUD_UE.Value = NUD_UE.Maximum < 0 ? -1 : 0; ChangeTrigger2(null, null); + + // Process Scripts + var script = CurrentZone.Entities.Script; + if (script.Raw.Length > 4) + { + RTB_OS.Lines = Scripts.GetHexLines(script.Raw); + L_OWSCDesc.Text = script.Info; + + uint[] Instructions = script.DecompressedInstructions; + RTB_OWSCMD.Lines = Scripts.GetHexLines(Instructions); + + if (script.DecompressedLength / 4 != Instructions.Length) + RTB_OWSCMD.Text = RTB_OSP.Text = "DCMP FAIL"; + else + RTB_OSP.Lines = [.. script.ParseScript, .. script.ParseMoves]; + } + else + { + RTB_OWSCMD.Lines = RTB_OS.Lines = ["No Data"]; + } + } + + private void GetScriptData() + { + var script = CurrentZone.MapScript.Script; + if (script.Raw.Length > 4) + { + RTB_MS.Lines = Scripts.GetHexLines(script.Raw); + L_MSSCDesc.Text = script.Info; + + uint[] Instructions = script.DecompressedInstructions; + RTB_MSCMD.Lines = Scripts.GetHexLines(Instructions); + + if (script.DecompressedLength / 4 != Instructions.Length) + RTB_MSCMD.Text = RTB_OSP.Text = "DCMP FAIL"; + else + RTB_MSP.Lines = [.. script.ParseScript, .. script.ParseMoves]; + } + else + { + RTB_MSCMD.Lines = RTB_OS.Lines = ["No Data"]; + } + } + + private static void SetZoneData() + { + // Nothing, ZoneData is not currently researched enough. + } + + private void SetOWSData() + { + // Force all entities to be written back + SetFurniture(); + SetNPC(); + SetWarp(); + SetTrigger1(); + SetTrigger2(); + } + + // Overworld Viewing + private int entry = -1; + private int fEntry, nEntry, wEntry, tEntry, uEntry = -1; + #region Enabling + internal static void ToggleEnable(NumericUpDown master, NumericUpDown slave, GroupBox display) + { + slave.Maximum = master.Value - 1; + slave.Enabled = display.Visible = slave.Maximum > -1; + slave.Minimum = slave.Enabled ? 0 : -1; + } + + private void ChangeFurnitureCount(object sender, EventArgs e) + { + // Resize array + int count = (int)NUD_FurnCount.Value; + CurrentZone.Entities.FurnitureCount = count; + Array.Resize(ref CurrentZone.Entities.Furniture, count); + for (int i = 0; i < count; i++) + CurrentZone.Entities.Furniture[i] ??= new Zone.ZoneEntities.EntityFurniture(); + + ToggleEnable(NUD_FurnCount, NUD_FE, GB_F); + } + + private void ChangeNPCCount(object sender, EventArgs e) + { + // Resize array + int count = (int)NUD_NPCCount.Value; + CurrentZone.Entities.NPCCount = count; + Array.Resize(ref CurrentZone.Entities.NPCs, count); + for (int i = 0; i < count; i++) + CurrentZone.Entities.NPCs[i] ??= new Zone.ZoneEntities.EntityNPC(); + + ToggleEnable(NUD_NPCCount, NUD_NE, GB_N); + } + + private void ChangeWarpCount(object sender, EventArgs e) + { + // Resize array + int count = (int)NUD_WarpCount.Value; + CurrentZone.Entities.WarpCount = count; + Array.Resize(ref CurrentZone.Entities.Warps, count); + for (int i = 0; i < count; i++) + CurrentZone.Entities.Warps[i] ??= new Zone.ZoneEntities.EntityWarp(); + + ToggleEnable(NUD_WarpCount, NUD_WE, GB_W); + } + + private void ChangeTriggerCount(object sender, EventArgs e) + { + // Resize array + int count = (int)NUD_TrigCount.Value; + CurrentZone.Entities.TriggerCount = count; + Array.Resize(ref CurrentZone.Entities.Triggers1, count); + for (int i = 0; i < count; i++) + CurrentZone.Entities.Triggers1[i] ??= new Zone.ZoneEntities.EntityTrigger1(); + + ToggleEnable(NUD_TrigCount, NUD_TE, GB_T1); + } + + private void ChangeUnkCount(object sender, EventArgs e) + { + // Resize array + int count = (int)NUD_UnkCount.Value; + CurrentZone.Entities.UnknownCount = count; + Array.Resize(ref CurrentZone.Entities.Triggers2, count); + for (int i = 0; i < count; i++) + CurrentZone.Entities.Triggers2[i] ??= new Zone.ZoneEntities.EntityTrigger2(); + + ToggleEnable(NUD_UnkCount, NUD_UE, GB_T2); + } + #endregion + #region Updating + private void ChangeFurniture(object sender, EventArgs e) + { + if (NUD_FE.Value < 0) return; + SetFurniture(); + fEntry = (int)NUD_FE.Value; + GetFurniture(); + } + + private void GetFurniture() + { + if (NUD_FE.Value < 0) return; + + var Furniture = CurrentZone.Entities.Furniture[fEntry]; + NUD_FX.Value = Furniture.X; + NUD_FY.Value = Furniture.Y; + NUD_FWX.Value = Furniture.WX; + NUD_FWY.Value = Furniture.WY; + RTB_F.Text = Util.GetHexString(Furniture.Raw); + } + + private void SetFurniture() + { + if (NUD_FE.Value < 0) return; + if (fEntry < 0) return; + + var FUrniture = CurrentZone.Entities.Furniture[fEntry]; + FUrniture.X = (int)NUD_FX.Value; + FUrniture.Y = (int)NUD_FY.Value; + FUrniture.WX = (int)NUD_FWX.Value; + FUrniture.WY = (int)NUD_FWY.Value; + } + + private void ChangeNPC(object sender, EventArgs e) + { + if (NUD_NE.Value < 0) return; + SetNPC(); + nEntry = (int)NUD_NE.Value; + GetNPC(); + } + + private void GetNPC() + { + if (NUD_NE.Value < 0) return; + var NPC = CurrentZone.Entities.NPCs[nEntry]; + + // Load new Attributes + NUD_NID.Value = NPC.ID; + NUD_NModel.Value = NPC.Model; + NUD_NFlag.Value = NPC.SpawnFlag; + NUD_NScript.Value = NPC.Script; + NUD_NFace.Value = NPC.FaceDirection; + NUD_NRange.Value = NPC.SightRange; + NUD_NX.Value = NPC.X; + NUD_NY.Value = NPC.Y; + NUD_NMove1.Value = NPC.MovePermissions; + NUD_NMove2.Value = NPC.MovePermissions2; + + // Uneditables + TB_NDeg.Text = NPC.Deg18.ToString(CultureInfo.InvariantCulture); + TB_Leash.Text = NPC.L1 == NPC.L2 && NPC.L2 == NPC.L3 && NPC.L3 == -1 + ? TB_Leash.Text = "No Leash!" + : $"{NPC.L1}, {NPC.L2}, {NPC.L3} -- {NPC.LDir}"; + + RTB_N.Text = Util.GetHexString(NPC.Raw); + } + + private void SetNPC() + { + if (NUD_NE.Value < 0) return; + if (nEntry < 0) return; + + var NPC = CurrentZone.Entities.NPCs[nEntry]; + NPC.ID = (int)NUD_NID.Value; + NPC.Model = (int)NUD_NModel.Value; + NPC.SpawnFlag = (int)NUD_NFlag.Value; + NPC.Script = (int)NUD_NScript.Value; + NPC.FaceDirection = (int)NUD_NFace.Value; + NPC.SightRange = (int)NUD_NRange.Value; + NPC.X = (int)NUD_NX.Value; + NPC.Y = (int)NUD_NY.Value; + + NPC.MovePermissions = (int)NUD_NMove1.Value; + NPC.MovePermissions2 = (int)NUD_NMove2.Value; + } + + private void ChangeWarp(object sender, EventArgs e) + { + if (NUD_WE.Value < 0) return; + SetWarp(); + wEntry = (int)NUD_WE.Value; + GetWarp(); + } + + private void GetWarp() + { + if (NUD_WE.Value < 0) return; + + var Warp = CurrentZone.Entities.Warps[wEntry]; + RTB_W.Text = Util.GetHexString(Warp.Raw); + + // Load new Attributes + NUD_WMap.Value = Warp.DestinationMap; + NUD_WTile.Value = Warp.DestinationTileIndex; + + NUD_WX.Value = Warp.X; + NUD_WY.Value = Warp.Y; + + // Flavor Mods + L_WarpDest.Text = zdLocations[Warp.DestinationMap]; + } + + private void SetWarp() + { + if (NUD_WE.Value < 0) return; + if (wEntry < 0) return; + + var Warp = CurrentZone.Entities.Warps[wEntry]; + Warp.DestinationMap = (int)NUD_WMap.Value; + Warp.DestinationTileIndex = (int)NUD_WTile.Value; + Warp.X = (short)NUD_WX.Value; + Warp.Y = (short)NUD_WY.Value; + } + + private void ChangeTrigger1(object sender, EventArgs e) + { + if (NUD_TE.Value < 0) return; + SetTrigger1(); + tEntry = (int)NUD_TE.Value; + GetTrigger1(); + } + + private void GetTrigger1() + { + if (NUD_TE.Value < 0) return; + + var Trigger1 = CurrentZone.Entities.Triggers1[tEntry]; + NUD_T1X.Value = Trigger1.X; + NUD_T1Y.Value = Trigger1.Y; + RTB_T1.Text = Util.GetHexString(Trigger1.Raw); + } + + private void SetTrigger1() + { + if (NUD_TE.Value < 0) return; + if (tEntry < 0) return; + + var Trigger1 = CurrentZone.Entities.Triggers1[tEntry]; + Trigger1.X = (int)NUD_T1X.Value; + Trigger1.Y = (int)NUD_T1Y.Value; + } + + private void ChangeTrigger2(object sender, EventArgs e) + { + if (NUD_UE.Value < 0) return; + SetTrigger2(); + uEntry = (int)NUD_UE.Value; + GetTrigger2(); + } + + private void GetTrigger2() + { + if (NUD_UE.Value < 0) return; + + // Load New Data + var Trigger2 = CurrentZone.Entities.Triggers2[uEntry]; + NUD_T2X.Value = Trigger2.X; + NUD_T2Y.Value = Trigger2.Y; + RTB_T2.Text = Util.GetHexString(Trigger2.Raw); + } + + private void SetTrigger2() + { + if (NUD_UE.Value < 0) return; + if (uEntry < 0) return; + + var Trigger2 = CurrentZone.Entities.Triggers2[uEntry]; + Trigger2.X = (int)NUD_T2X.Value; + Trigger2.Y = (int)NUD_T2Y.Value; + } + #endregion + + // Overworld User Enhancements + private void ChangeNPC_ID(object sender, EventArgs e) => L_NID.ForeColor = NUD_NID.Value != NUD_NE.Value ? Color.Red : Color.Black; + private void ChangeNPC_Model(object sender, EventArgs e) => L_ModelAsHex.Text = "0x" + ((int)NUD_NModel.Value).ToString("X4"); + + private void DclickDestMap(object sender, EventArgs e) + { + var Tile = NUD_WTile.Value; + CB_LocationID.SelectedIndex = (int)NUD_WMap.Value; + try + { NUD_WE.Value = Tile; } + catch + { try { NUD_WE.Value = 0; } catch { } } + } + + private void ChangeWarp_X(object sender, EventArgs e) => L_WpX.Text = (NUD_WX.Value / 18).ToString(CultureInfo.InvariantCulture); + private void ChangeWarp_Y(object sender, EventArgs e) => L_WpY.Text = (NUD_WY.Value / 18).ToString(CultureInfo.InvariantCulture); + + // Script Handling + private void B_HLCMD_Click(object sender, EventArgs e) + { + int ctr = WinFormsUtil.HighlightText(RTB_OSP, "**", Color.Red) + (WinFormsUtil.HighlightText(RTB_MSP, "**", Color.Red) / 2); + WinFormsUtil.Alert($"{ctr} instance{(ctr > 1 ? "s" : "")} of \"*\" present."); + } + + private void TabMain_DragEnter(object sender, DragEventArgs e) + { + if (e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = DragDropEffects.Copy; + } + + private void TabMain_DragDrop(object sender, DragEventArgs e) + { + string[] files = (string[])e.Data.GetData(DataFormats.FileDrop); + string path = files[0]; // open first D&D + if (new FileInfo(path).Length < 10000000) + ParseScriptInput(File.ReadAllBytes(path)); + } + + private void ParseScriptInput(byte[] data) + { + var scr = new Script(data); + RTB_CompressedScript.Lines = Scripts.GetHexLines(scr.CompressedBytes); + System.Media.SystemSounds.Asterisk.Play(); + } + + private void PasteScript(object sender, EventArgs e) + { + // import data as bytes + try + { + string text = RTB_CompressedScript.Text.Replace(Environment.NewLine, "").Replace("\n", "").Replace(" ", ""); + byte[] data = Util.StringToByteArray(text); + + byte[] dec = Scripts.DecompressScript(data); + + RTB_DecompressedScript.Lines = Scripts.GetHexLines(dec); + } + catch + { + RTB_DecompressedScript.Text = "DECMP ERROR"; + } + } + + // Dev Dumpers + private void B_DumpFurniture_Click(object sender, EventArgs e) + { + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Export all Furniture?") != DialogResult.Yes) + return; + + debugToolDumping = true; + List result = []; + List data = []; + for (int i = 0; i < CB_LocationID.Items.Count; i++) + { + CB_LocationID.SelectedIndex = i; + for (int j = 0; j < CurrentZone.Entities.FurnitureCount; j++) + { + result.Add(Util.GetHexString(CurrentZone.Entities.Furniture[j].Raw)); + data.Add(CurrentZone.Entities.Furniture[j].Raw); + } + } + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Write Furniture to file?") == DialogResult.Yes) + File.WriteAllBytes("Furniture.bin", data.SelectMany(z => z).ToArray()); + + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Copy Furniture to Clipboard?") == DialogResult.Yes) + Clipboard.SetText(string.Join(Environment.NewLine, result)); + + CB_LocationID.SelectedIndex = 0; + debugToolDumping = false; + } + + private void B_DumpNPC_Click(object sender, EventArgs e) + { + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Export all NPCs?") != DialogResult.Yes) + return; + + debugToolDumping = true; + List result = []; + List data = []; + for (int i = 0; i < CB_LocationID.Items.Count; i++) + { + CB_LocationID.SelectedIndex = i; + for (int j = 0; j < CurrentZone.Entities.NPCCount; j++) + { + result.Add(Util.GetHexString(CurrentZone.Entities.NPCs[j].Raw)); + data.Add(CurrentZone.Entities.NPCs[j].Raw); + } + } + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Write NPCs to file?") == DialogResult.Yes) + File.WriteAllBytes("NPCs.bin", data.SelectMany(z => z).ToArray()); + + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Copy NPCs to Clipboard?") == DialogResult.Yes) + Clipboard.SetText(string.Join(Environment.NewLine, result)); + + CB_LocationID.SelectedIndex = 0; + debugToolDumping = false; + } + + private void B_DumpWarp_Click(object sender, EventArgs e) + { + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Export all Warps?") != DialogResult.Yes) + return; + + debugToolDumping = true; + List result = []; + List data = []; + for (int i = 0; i < CB_LocationID.Items.Count; i++) + { + CB_LocationID.SelectedIndex = i; + for (int j = 0; j < CurrentZone.Entities.WarpCount; j++) + { + result.Add(Util.GetHexString(CurrentZone.Entities.Warps[j].Raw)); + data.Add(CurrentZone.Entities.Warps[j].Raw); + } + } + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Write Warps to file?") == DialogResult.Yes) + File.WriteAllBytes("Warps.bin", data.SelectMany(z => z).ToArray()); + + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Copy Warps to Clipboard?") == DialogResult.Yes) + Clipboard.SetText(string.Join(Environment.NewLine, result)); + + CB_LocationID.SelectedIndex = 0; + debugToolDumping = false; + } + + private void B_DumpTrigger_Click(object sender, EventArgs e) + { + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Export all Triggers?") != DialogResult.Yes) + return; + + debugToolDumping = true; + List result = []; + List data = []; + for (int i = 0; i < CB_LocationID.Items.Count; i++) + { + CB_LocationID.SelectedIndex = i; + for (int j = 0; j < CurrentZone.Entities.TriggerCount; j++) + { + result.Add(Util.GetHexString(CurrentZone.Entities.Triggers1[j].Raw)); + data.Add(CurrentZone.Entities.Triggers1[j].Raw); + } + } + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Write Triggers to file?") == DialogResult.Yes) + File.WriteAllBytes("Triggers.bin", data.SelectMany(z => z).ToArray()); + + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Copy Triggers to Clipboard?") == DialogResult.Yes) + Clipboard.SetText(string.Join(Environment.NewLine, result)); + + CB_LocationID.SelectedIndex = 0; + debugToolDumping = false; + } + + private void B_DumpUnk_Click(object sender, EventArgs e) + { + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Export all Unks?") != DialogResult.Yes) + return; + + debugToolDumping = true; + List result = []; + List data = []; + for (int i = 0; i < CB_LocationID.Items.Count; i++) + { + CB_LocationID.SelectedIndex = i; + for (int j = 0; j < CurrentZone.Entities.UnknownCount; j++) + { + result.Add(Util.GetHexString(CurrentZone.Entities.Triggers2[j].Raw)); + data.Add(CurrentZone.Entities.Triggers2[j].Raw); + } + } + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Write Unks to file?") == DialogResult.Yes) + File.WriteAllBytes("Unks.bin", data.SelectMany(z => z).ToArray()); + + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Copy Unks to Clipboard?") == DialogResult.Yes) + Clipboard.SetText(string.Join(Environment.NewLine, result)); + + CB_LocationID.SelectedIndex = 0; + debugToolDumping = false; + } + + private void B_DumpMaps_Click(object sender, EventArgs e) + { + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Export all MapImages?") != DialogResult.Yes) + return; + + debugToolDumping = true; + const string folder = "MapImages"; + if (!Directory.Exists(folder)) + Directory.CreateDirectory(folder); + + string[] result = new string[CB_LocationID.Items.Count]; + for (int i = 0; i < CB_LocationID.Items.Count; i++) + { + mapView.DrawMap = i; + Image img = mapView.GetMapImage(crop: true); + using (var ms = new MemoryStream()) + { + //error will throw from here + img.Save(ms, System.Drawing.Imaging.ImageFormat.Png); + byte[] data = ms.ToArray(); + File.WriteAllBytes(Path.Combine(folder, $"{zdLocations[i].Replace('?', '-')} ({i}).png"), data); + } + string l = mm.EntryList.Where(t => t != 0xFFFF).Aggregate("", (current, t) => current + t.ToString("000 ")); + result[i] = $"{i:000}\t{CB_LocationID.Items[i]}\t{l}"; + } + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Write Map parse output?") == DialogResult.Yes) + File.WriteAllLines("MapLocations.txt", result); + CB_LocationID.SelectedIndex = 0; + WinFormsUtil.Alert("All Map images have been dumped to " + folder + "."); + debugToolDumping = false; + } + + private void B_DumpZD_Click(object sender, EventArgs e) + { + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Export all ZD?") != DialogResult.Yes) + return; + + debugToolDumping = true; + List result = []; + List data = []; + for (int i = 0; i < CB_LocationID.Items.Count; i++) + { + CB_LocationID.SelectedIndex = i; + result.Add(Util.GetHexString(CurrentZone.ZD.Data)); + data.Add(CurrentZone.ZD.Data); + } + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Write ZDs to file?") == DialogResult.Yes) + File.WriteAllBytes("ZDs.bin", data.SelectMany(z => z).ToArray()); + + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Copy ZDs to Clipboard?") == DialogResult.Yes) + Clipboard.SetText(string.Join(Environment.NewLine, result)); + + CB_LocationID.SelectedIndex = 0; + debugToolDumping = false; + } + + // Raw file editing + private void ChangeRAWCheck(object sender, EventArgs e) + { + bool chk = ((CheckBox)sender).Checked; + foreach (NumericUpDown nud in GB_F.Controls.OfType()) + nud.Enabled = !chk; + foreach (NumericUpDown nud in GB_N.Controls.OfType()) + nud.Enabled = !chk; + foreach (NumericUpDown nud in GB_W.Controls.OfType()) + nud.Enabled = !chk; + foreach (NumericUpDown nud in GB_T1.Controls.OfType()) + nud.Enabled = !chk; + foreach (NumericUpDown nud in GB_T2.Controls.OfType()) + nud.Enabled = !chk; + + foreach (RichTextBox rtb in new[] { RTB_F, RTB_N, RTB_W, RTB_T1, RTB_T2 }) + rtb.Visible = chk; + } + + private void ChangeRAW_F(object sender, EventArgs e) + { + if (sender is not RichTextBox { Visible: true }) + return; + + try + { + byte[] data = Util.StringToByteArray(((RichTextBox)sender).Text.Replace(Environment.NewLine, " ").Replace(" ", "")); + if (data.Length != Zone.ZoneEntities.EntityFurniture.Size) + return; + CurrentZone.Entities.Furniture[fEntry].Raw = data; + GetFurniture(); + } + catch + { + ((RichTextBox)sender).Text = Util.GetHexString(CurrentZone.Entities.Furniture[fEntry].Raw); + } + } + + private void ChangeRAW_N(object sender, EventArgs e) + { + if (sender is not RichTextBox { Visible: true }) + return; + + try + { + byte[] data = Util.StringToByteArray(((RichTextBox)sender).Text.Replace(Environment.NewLine, " ").Replace(" ", "")); + if (data.Length != Zone.ZoneEntities.EntityNPC.Size) + return; + CurrentZone.Entities.NPCs[nEntry].Raw = data; + GetNPC(); + } + catch + { + ((RichTextBox)sender).Text = Util.GetHexString(CurrentZone.Entities.NPCs[nEntry].Raw); + } + } + + private void ChangeRAW_W(object sender, EventArgs e) + { + if (sender is not RichTextBox { Visible: true }) + return; + + try + { + byte[] data = Util.StringToByteArray(((RichTextBox)sender).Text.Replace(Environment.NewLine, " ").Replace(" ", "")); + if (data.Length != Zone.ZoneEntities.EntityWarp.Size) + return; + CurrentZone.Entities.Warps[wEntry].Raw = data; + GetWarp(); + } + catch + { + ((RichTextBox)sender).Text = Util.GetHexString(CurrentZone.Entities.Warps[wEntry].Raw); + } + } + + private void ChangeRAW_T1(object sender, EventArgs e) + { + if (sender is not RichTextBox { Visible: true }) + return; + + try + { + byte[] data = Util.StringToByteArray(((RichTextBox)sender).Text.Replace(Environment.NewLine, " ").Replace(" ", "")); + if (data.Length != Zone.ZoneEntities.EntityTrigger1.Size) + return; + CurrentZone.Entities.Triggers1[tEntry].Raw = data; + GetTrigger1(); + } + catch + { + ((RichTextBox)sender).Text = Util.GetHexString(CurrentZone.Entities.Triggers1[tEntry].Raw); + } + } + + private void ChangeRAW_T2(object sender, EventArgs e) + { + if (sender is not RichTextBox { Visible: true }) + return; + + try + { + byte[] data = Util.StringToByteArray(((RichTextBox)sender).Text.Replace(Environment.NewLine, " ").Replace(" ", "")); + if (data.Length != Zone.ZoneEntities.EntityTrigger2.Size) + return; + CurrentZone.Entities.Triggers2[uEntry].Raw = data; + GetTrigger2(); + } + catch + { + ((RichTextBox)sender).Text = Util.GetHexString(CurrentZone.Entities.Triggers2[uEntry].Raw); + } + } + + // RAW Resets + private void B_ResetOverworlds_Click(object sender, EventArgs e) + { + if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Reset all overworld entities?")) + return; + + // since scripts are not editable, just reset the overworld file. + CurrentZone.Entities = new Zone.ZoneEntities(locationData[1]); + GetOWSData(); + } + + private void B_ResetFurniture_Click(object sender, EventArgs e) + { + CurrentZone.Entities.Furniture[fEntry].OriginalData.CopyTo(CurrentZone.Entities.Furniture[fEntry].Raw, 0); + GetFurniture(); + } + + private void B_ResetNPC_Click(object sender, EventArgs e) + { + CurrentZone.Entities.NPCs[nEntry].OriginalData.CopyTo(CurrentZone.Entities.NPCs[nEntry].Raw, 0); + GetNPC(); + } + + private void B_ResetWarp_Click(object sender, EventArgs e) + { + CurrentZone.Entities.Warps[wEntry].OriginalData.CopyTo(CurrentZone.Entities.Warps[wEntry].Raw, 0); + GetWarp(); + } + + private void B_ResetTrigger1_Click(object sender, EventArgs e) + { + CurrentZone.Entities.Triggers1[tEntry].OriginalData.CopyTo(CurrentZone.Entities.Triggers1[tEntry].Raw, 0); + GetTrigger1(); + } + + private void B_ResetTrigger2_Click(object sender, EventArgs e) + { + CurrentZone.Entities.Triggers2[uEntry].OriginalData.CopyTo(CurrentZone.Entities.Triggers2[uEntry].Raw, 0); + GetTrigger2(); + } +} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/Experimental/OWSE.resx b/pk3DS.WinForms/Subforms/Gen6/Experimental/OWSE.resx similarity index 100% rename from pk3DS/Subforms/Gen6/Experimental/OWSE.resx rename to pk3DS.WinForms/Subforms/Gen6/Experimental/OWSE.resx diff --git a/pk3DS.WinForms/Subforms/Gen6/Experimental/OWSEStructs.cs b/pk3DS.WinForms/Subforms/Gen6/Experimental/OWSEStructs.cs new file mode 100644 index 0000000000..05a8f8cb47 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/Experimental/OWSEStructs.cs @@ -0,0 +1,826 @@ +using pk3DS.Core; +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Drawing.Imaging; +using System.Globalization; +using System.IO; +using System.Linq; + +namespace pk3DS.WinForms; + +#region Game Related Classes +public class MapMatrix +{ + public ushort u0; + public ushort u1; + public ushort uL; + public ushort Width, Height; + private readonly int Area; + public ushort[] EntryList; + public Entry[] Entries; + public Unknown[] Unknowns; + + public byte[] UnkData; + + public MapMatrix(byte[][] data) + { + using (var br = new BinaryReader(new MemoryStream(data[0]))) + { + u0 = br.ReadUInt16(); + u1 = br.ReadUInt16(); + Width = br.ReadUInt16(); + Height = br.ReadUInt16(); + + Area = Width * Height; + Entries = new Entry[Area]; + EntryList = new ushort[Area]; + for (int i = 0; i < Area; i++) + EntryList[i] = br.ReadUInt16(); + + if (br.BaseStream.Position != br.BaseStream.Length) + uL = br.ReadUInt16(); + } + if (data.Length > 1) + ParseUnk(UnkData = data[1]); + } + + public byte[] Write() + { + using var ms = new MemoryStream(); + using var bw = new BinaryWriter(ms); + bw.Write(u0); + bw.Write(Width); + bw.Write(Height); + foreach (ushort Entry in EntryList) + { + bw.Write(Entry); + } + + bw.Write(uL); + return ms.ToArray(); + } + + public Bitmap Preview(int Scale, int ColorShift) + { + // Require the entries to be defined in order to continue. + if (Entries.Any(entry => entry == null)) + { + // Do nothing; images are instead created with the standard dimensions and returned. + } + + // Fetch Singular Images first + Bitmap[] EntryImages = new Bitmap[Area]; + for (int i = 0; i < Area; i++) + { + EntryImages[i] = Entries[i] == null + ? new Bitmap(40 * Scale, 40 * Scale) + : Entries[i].Preview(Scale, ColorShift); + } + + // Combine all images into one. + var img = new Bitmap(EntryImages[0].Width * Width, EntryImages[0].Height * Height); + + using var g = Graphics.FromImage(img); + for (int i = 0; i < Area; i++) + g.DrawImage(EntryImages[i], new Point(i * EntryImages[0].Width % img.Width, EntryImages[0].Height * (i / Width))); + + return img; + } + + public class Entry + { + public Collision coll; + + public ushort Width, Height; + private readonly int Area; + public uint[] Tiles; // Certain bits? + + public Entry(byte[] data) + { + using var br = new BinaryReader(new MemoryStream(data)); + Width = br.ReadUInt16(); + Height = br.ReadUInt16(); + Area = Width * Height; + Tiles = new uint[Area]; + for (int i = 0; i < Area; i++) + { + Tiles[i] = br.ReadUInt32(); + } + } + + public byte[] Write() + { + using var ms = new MemoryStream(); + using var bw = new BinaryWriter(ms); + bw.Write(Width); + bw.Write(Height); + foreach (uint Tile in Tiles) + { + bw.Write(Tile); + } + + return ms.ToArray(); + } + + public Bitmap Preview(int s, int ColorShift) + { + byte[] bmpData = BytePreview(s, ColorShift); + var b = new Bitmap(Width * s, Height * s, PixelFormat.Format32bppArgb); + var bData = b.LockBits(new Rectangle(0, 0, Width * s, Height * s), ImageLockMode.WriteOnly, PixelFormat.Format32bppArgb); + System.Runtime.InteropServices.Marshal.Copy(bmpData, 0, bData.Scan0, bmpData.Length); + b.UnlockBits(bData); + + return b; + } + + public byte[] BytePreview(int s, int ColorShift) + { + byte[] bmpData = new byte[4 * Width * Height * s * s]; + for (int i = 0; i < Area; i++) + { + int X = i % 40; + int Y = i / 40; + uint colorValue = Tiles[i] == 0x01000021 + ? 0xFF000000 + : LCRNG32.Advance(Tiles[i], ColorShift) | 0xFF000000; + + byte[] pixel = BitConverter.GetBytes(colorValue); + for (int x = 0; x < s * s; x++) + { + pixel.CopyTo(bmpData, 4 * ((((Y * s) + (x / s)) * Width * s) + (X * s) + (x % s))); + } + } + return bmpData; + } + } + + public class Collision + { + public string Magic; + public int termOffset; + public int U5D8; + public byte[] UnknownBytes; + public CollisionObject[] Map40; + public int[] MapInts; + public CollisionObject[] MapMisc; + public string termMagic; + public byte[] termData; + + public Collision(byte[] data) + { + using var br = new BinaryReader(new MemoryStream(data)); + Magic = new string(br.ReadChars(4)); // Magic + if (Magic != "coll") + { + return; // all other properties are null + } + + termOffset = br.ReadInt32(); + U5D8 = br.ReadInt32(); + UnknownBytes = br.ReadBytes(0x14); + + // Read 40 collision rectangles + Map40 = new CollisionObject[40]; + for (int i = 0; i < Map40.Length; i++) + { + Map40[i] = new CollisionObject(br.ReadBytes(0x10)); + } + + // Read 32 Int32s + MapInts = new int[0x20]; + for (int i = 0; i < MapInts.Length; i++) + { + MapInts[i] = br.ReadInt32(); + } + + // Read misc collision rectangles + int ct = termOffset - (int)br.BaseStream.Position + 0x10; + MapMisc = new CollisionObject[ct / 0x10]; + for (int i = 0; i < MapMisc.Length; i++) + { + MapMisc[i] = new CollisionObject(br.ReadBytes(0x10)); + } + + // Read Term + termMagic = new string(br.ReadChars(4)); + if (termMagic != "term") + { + return; // all other properties are null + } + + // Read the rest of the data.... + termData = br.ReadBytes((int)(br.BaseStream.Length - br.BaseStream.Position)); + } + + public class CollisionObject(byte[] data) + { + private readonly float _0 = BitConverter.ToSingle(data, 0x0); + private readonly float _1 = BitConverter.ToSingle(data, 0x4); + private readonly float _2 = BitConverter.ToSingle(data, 0x8); + private readonly float _3 = BitConverter.ToSingle(data, 0xC); // rarely used + + // I don't even know... + public float F1 => _0 / 2; + public float F2 => _1 * 80; + public float F3 => _2 / 2; + public float F4 => _3 / 1; + + public override string ToString() + { + return string.Join(", ", + F1.ToString(CultureInfo.InvariantCulture), + F2.ToString(CultureInfo.InvariantCulture), + F3.ToString(CultureInfo.InvariantCulture), + F4.ToString(CultureInfo.InvariantCulture)); + } + } + } + + public string Unk2String() + { + return Unknowns.Aggregate("", (current, l) => current + $"{l.Direction}: {l.P1,3} {l.P2,3} {l.P3,3} {l.P4,3}{Environment.NewLine,3}"); + } + + private void ParseUnk(byte[] data) + { + List unk = []; + using var ms = new MemoryStream(data); + using var br = new BinaryReader(ms); + do + { + var obj = new Unknown + { + Direction = br.ReadUInt32(), + _1 = br.ReadSingle(), + _2 = br.ReadSingle(), + _3 = br.ReadSingle(), + _4 = br.ReadSingle(), + }; + unk.Add(obj); + } while (unk[^1].Direction != 0); + + unk.RemoveAt(unk.Count - 1); + Unknowns = [.. unk]; + } + + public class Unknown + { + public uint Direction; + public float _1; + public float _2; + public float _3; + public float _4; + + public int P1 => (int)_1 / 18; + public int P2 => (int)_2 / 18; + public int P3 => (int)_3 / 18; + public int P4 => (int)_4 / 18; + } +} + +public class ZoneData +{ + internal const int Size = 0x38; + public readonly byte[] Data; + + public byte MapType { get => Data[0]; set => Data[0] = value; } + public byte MapMove { get => Data[1]; set => Data[1] = value; } + public int MapArea { get => BitConverter.ToUInt16(Data, 0x02); set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x02); } + public int MapMatrix { get => BitConverter.ToUInt16(Data, 0x04); set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x04); } + public int TextFile { get => BitConverter.ToUInt16(Data, 0x06); set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x06); } + + public uint BGMSpring { get => BitConverter.ToUInt32(Data, 0x08); set => BitConverter.GetBytes(value).CopyTo(Data, 0x08); } + public uint BGMSummer { get => BitConverter.ToUInt32(Data, 0x0C); set => BitConverter.GetBytes(value).CopyTo(Data, 0x0C); } + public uint BGMAutumn { get => BitConverter.ToUInt32(Data, 0x10); set => BitConverter.GetBytes(value).CopyTo(Data, 0x10); } + public uint BGMWinter { get => BitConverter.ToUInt32(Data, 0x14); set => BitConverter.GetBytes(value).CopyTo(Data, 0x14); } + + public int ScriptFile { get => BitConverter.ToUInt16(Data, 0x18); set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x18); } + public int TownMapGroup { get => BitConverter.ToUInt16(Data, 0x1A); set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x1A); } + + public int ParentMap // 0x1C - low 10 bits + { + get => BitConverter.ToUInt16(Data, 0x1C) & 0x3FF; + set => BitConverter.GetBytes((ushort)(value | (BitConverter.ToUInt16(Data, 0x1C) & ~0x3FF))).CopyTo(Data, 0x1C); + } + + public int OLValue // 0x1C - high 6 bits + { + get => BitConverter.ToUInt16(Data, 0x1C) >> 10; + set => BitConverter.GetBytes((ushort)((value << 10) | ParentMap)).CopyTo(Data, 0x1C); + } + + // 5,1,1,7 + public int Weather // 0x1E, low 5 + { + get => BitConverter.ToUInt16(Data, 0x1E) & 0x1F; + set => BitConverter.GetBytes((ushort)(value | (BitConverter.ToUInt16(Data, 0x1E) & ~0x1F))).CopyTo(Data, 0x1E); + } + + public bool IsSkyBoxEnable { get => ((Data[0x1E] >> 5) & 1) == 1; set => Data[0x1E] = (byte)((Data[0x1E] & ~0x20) | (value ? 1 << 5 : 0)); } + public bool IsRollerSkateEnable { get => ((Data[0x1E] >> 6) & 1) == 1; set => Data[0x1E] = (byte)((Data[0x1E] & ~0x40) | (value ? 1 << 6 : 0)); } + + public int BattleBackground // 7-13 + { + get => (BitConverter.ToUInt16(Data, 0x1E) >> 7) & 0x7F; + set => BitConverter.GetBytes((ushort)(((value & 0x7F) << 7) | (BitConverter.ToUInt16(Data, 0x1E) & ~0x3F80))).CopyTo(Data, 0x1E); + } + + private uint Unk_20 { get => BitConverter.ToUInt32(Data, 0x20); set => BitConverter.GetBytes(value).CopyTo(Data, 0x20); } + public uint MapChange { get => Unk_20 & 0x1Fu; set => Unk_20 = (Unk_20 & ~0x1Fu) | value; } + // ??? 5 + public bool IsBicycleEnable { get => ((Unk_20 >> 10) & 1) == 1; set => Unk_20 = (Unk_20 & ~(1u << 10)) | (value ? 1u << 10 : 0); } + public bool IsRunEnable { get => ((Unk_20 >> 11) & 1) == 1; set => Unk_20 = (Unk_20 & ~(1u << 11)) | (value ? 1u << 11 : 0); } + public bool IsEscapeRopeEnable { get => ((Unk_20 >> 12) & 1) == 1; set => Unk_20 = (Unk_20 & ~(1u << 12)) | (value ? 1u << 12 : 0); } + public bool IsFlyEnable { get => ((Unk_20 >> 13) & 1) == 1; set => Unk_20 = (Unk_20 & ~(1u << 13)) | (value ? 1u << 13 : 0); } + public bool IsBGM { get => ((Unk_20 >> 14) & 1) == 1; set => Unk_20 = (Unk_20 & ~(1u << 14)) | (value ? 1u << 14 : 0); } + public bool IsUnk { get => ((Unk_20 >> 15) & 1) == 1; set => Unk_20 = (Unk_20 & ~(1u << 15)) | (value ? 1u << 15 : 0); } + + // unused - camera + public ushort Camera1 { get => BitConverter.ToUInt16(Data, 0x22); set => BitConverter.GetBytes(value).CopyTo(Data, 0x22); } + + public ushort Camera2 { get => BitConverter.ToUInt16(Data, 0x24); set => BitConverter.GetBytes(value).CopyTo(Data, 0x24); } + public uint CameraFlags { get => BitConverter.ToUInt32(Data, 0x26); set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x26); } + + private short X { get => BitConverter.ToInt16(Data, 0x2C); set => BitConverter.GetBytes(value).CopyTo(Data, 0x2C); } + public short Z { get => BitConverter.ToInt16(Data, 0x2E); set => BitConverter.GetBytes(value).CopyTo(Data, 0x2E); } + private short Y { get => BitConverter.ToInt16(Data, 0x30); set => BitConverter.GetBytes(value).CopyTo(Data, 0x30); } + private short X2 { get => BitConverter.ToInt16(Data, 0x32); set => BitConverter.GetBytes(value).CopyTo(Data, 0x32); } + public short Z2 { get => BitConverter.ToInt16(Data, 0x34); set => BitConverter.GetBytes(value).CopyTo(Data, 0x34); } + private short Y2 { get => BitConverter.ToInt16(Data, 0x36); set => BitConverter.GetBytes(value).CopyTo(Data, 0x36); } + + public float PX { get => (float)X / 18; set => X = (short)(18 * value); } + public float PY { get => (float)Y / 18; set => Y = (short)(18 * value); } + public float PX2 { get => (float)X2 / 18; set => X2 = (short)(18 * value); } + public float PY2 { get => (float)Y2 / 18; set => Y2 = (short)(18 * value); } + + public ZoneData(byte[] data) + { + if (data.Length != Size) + { + return; + } + + Data = data; + } + + public byte[] Write() + { + return Data; + } +} + +public class Zone +{ + public readonly ZoneData ZD; + public ZoneEntities Entities; + public readonly ZoneScript MapScript; + public readonly ZoneEncounters Encounters; + public readonly ZoneUnknown File5; + + public Zone(byte[][] Zone) + { + // A ZO is comprised of 4-5 files. + + // Array 0 is [Map Info] + ZD = new ZoneData(Zone[0]); + // Array 1 is [Overworld Entities & their Scripts] + Entities = new ZoneEntities(Zone[1]); + // Array 2 is [Map Script] + MapScript = new ZoneScript(Zone[2]); + // Array 3 is [Wild Encounters] + Encounters = new ZoneEncounters(Zone[3]); + // Array 4 is [???] - May not be present in all. + if (Zone.Length <= 4) + { + return; + } + + File5 = new ZoneUnknown(Zone[4]); + } + + public byte[][] Write() + { + byte[][] Zone = new byte[File5 != null ? 5 : 4][]; + Zone[0] = ZD.Data; + Zone[1] = Entities.Write(); + Zone[2] = MapScript.Write(); + Zone[3] = Encounters.Write(); + if (Zone.Length <= 4) + { + return Zone; + } + + Zone[4] = File5.Write(); + return Zone; + } + + public class ZoneEntities + { + public byte[] Data; + + public int Length; + public int FurnitureCount, NPCCount, WarpCount, TriggerCount, UnknownCount; + public EntityFurniture[] Furniture; + public EntityNPC[] NPCs; + public EntityWarp[] Warps; + public EntityTrigger1[] Triggers1; + public EntityTrigger2[] Triggers2; + + public Script Script; + + public ZoneEntities(byte[] data) + { + Data = data; + + using var br = new BinaryReader(new MemoryStream(data)); + // Load Header + Length = br.ReadInt32(); + Furniture = new EntityFurniture[FurnitureCount = br.ReadByte()]; + NPCs = new EntityNPC[NPCCount = br.ReadByte()]; + Warps = new EntityWarp[WarpCount = br.ReadByte()]; + Triggers1 = new EntityTrigger1[TriggerCount = br.ReadByte()]; + Triggers2 = new EntityTrigger2[UnknownCount = br.ReadInt32()]; // not sure if there's other types or if the remaining 3 bytes are padding. + + // Load Entitites + for (int i = 0; i < FurnitureCount; i++) + { + Furniture[i] = new EntityFurniture(br.ReadBytes(EntityFurniture.Size)); + } + + for (int i = 0; i < NPCCount; i++) + { + NPCs[i] = new EntityNPC(br.ReadBytes(EntityNPC.Size)); + } + + for (int i = 0; i < WarpCount; i++) + { + Warps[i] = new EntityWarp(br.ReadBytes(EntityWarp.Size)); + } + + for (int i = 0; i < TriggerCount; i++) + { + Triggers1[i] = new EntityTrigger1(br.ReadBytes(EntityTrigger1.Size)); + } + + for (int i = 0; i < UnknownCount; i++) + { + Triggers2[i] = new EntityTrigger2(br.ReadBytes(EntityTrigger2.Size)); + } + + // Load Script Data + int len = br.ReadInt32(); + br.BaseStream.Position -= 4; + Script = new Script(br.ReadBytes(len)); + } + + public byte[] Write() + { + byte[] F = new byte[Furniture.Length * EntityFurniture.Size]; + for (int i = 0; i < Furniture.Length; i++) + { + Furniture[i].Write().CopyTo(F, i * EntityFurniture.Size); + } + + byte[] N = new byte[NPCs.Length * EntityNPC.Size]; + for (int i = 0; i < NPCs.Length; i++) + { + NPCs[i].Write().CopyTo(N, i * EntityNPC.Size); + } + + byte[] W = new byte[Warps.Length * EntityWarp.Size]; + for (int i = 0; i < Warps.Length; i++) + { + Warps[i].Write().CopyTo(W, i * EntityWarp.Size); + } + + byte[] T = new byte[Triggers1.Length * EntityTrigger1.Size]; + for (int i = 0; i < Triggers1.Length; i++) + { + Triggers1[i].Write().CopyTo(T, i * EntityTrigger1.Size); + } + + byte[] U = new byte[Triggers2.Length * EntityTrigger2.Size]; + for (int i = 0; i < Triggers2.Length; i++) + { + Triggers2[i].Write().CopyTo(U, i * EntityTrigger2.Size); + } + + // Assemble entity information + byte[] OWEntities = [.. F, .. N, .. W, .. T, .. U]; + byte[] EntityLength = BitConverter.GetBytes(8 + OWEntities.Length); + byte[] EntityCounts = [(byte)Furniture.Length, (byte)NPCs.Length, (byte)Warps.Length, (byte)Triggers1.Length, (byte)Triggers2.Length, 0, 0, 0, + ]; + + // Reassemble NPC portion + byte[] OWEntityData = [.. EntityLength, .. EntityCounts, .. OWEntities]; + + // Reassemble Script portion + byte[] OWScriptData = Script.Write(); + + byte[] finalData = [.. OWEntityData, .. OWScriptData]; + + // Add padding zeroes if required (yield size % 4 == 0) + if (finalData.Length % 4 != 0) + { + Array.Resize(ref finalData, finalData.Length + 4 - (finalData.Length % 4)); + } + + return finalData; + } + + // Entity Classes + public class EntityFurniture + { + // Usable Attributes + public int Script { get => BitConverter.ToUInt16(Raw, 0x00); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x00); } + + public int U2 { get => BitConverter.ToUInt16(Raw, 0x02); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x02); } + public int U4 { get => BitConverter.ToUInt16(Raw, 0x04); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x04); } + public int U6 { get => BitConverter.ToUInt16(Raw, 0x06); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x06); } + + // Coordinates have some upper-bit usage it seems... + public int X { get => BitConverter.ToUInt16(Raw, 0x08); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x08); } + public int Y { get => BitConverter.ToUInt16(Raw, 0x0A); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x0A); } + // Next two bytes should be dealing with furniture width? + public int WX { get => BitConverter.ToInt16(Raw, 0x0C); set => BitConverter.GetBytes((short)value).CopyTo(Raw, 0x0C); } + public int WY { get => BitConverter.ToInt16(Raw, 0x0E); set => BitConverter.GetBytes((short)value).CopyTo(Raw, 0x0E); } + + public int U10 { get => BitConverter.ToInt32(Raw, 0x10); set => BitConverter.GetBytes(value).CopyTo(Raw, 0x10); } + + public byte[] Raw; + public byte[] OriginalData; + internal const byte Size = 0x14; + + public EntityFurniture(byte[] data = null) + { + Raw = data ?? new byte[Size]; + OriginalData = (byte[])Raw.Clone(); + } + + public byte[] Write() + { + return Raw; + } + } + + public class EntityNPC + { + // Usable Attributes + public int ID { get => BitConverter.ToUInt16(Raw, 0x00); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x00); } + public int Model { get => BitConverter.ToUInt16(Raw, 0x02); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x02); } + public int MovePermissions { get => BitConverter.ToUInt16(Raw, 0x04); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x04); } + public int MovePermissions2 { get => BitConverter.ToUInt16(Raw, 0x06); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x06); } + public int SpawnFlag { get => BitConverter.ToUInt16(Raw, 0x08); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x08); } + public int Script { get => BitConverter.ToUInt16(Raw, 0x0A); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x0A); } + public int FaceDirection { get => BitConverter.ToUInt16(Raw, 0x0C); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x0C); } + public int SightRange { get => BitConverter.ToUInt16(Raw, 0x0E); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x0E); } + + // XY Only + public int U10 { get => BitConverter.ToUInt16(Raw, 0x10); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x10); } + public int U12 { get => BitConverter.ToUInt16(Raw, 0x12); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x12); } + + // Shorts + public int U14 { get => BitConverter.ToInt16(Raw, 0x14); set => BitConverter.GetBytes((short)value).CopyTo(Raw, 0x14); } + public int U16 { get => BitConverter.ToInt16(Raw, 0x16); set => BitConverter.GetBytes((short)value).CopyTo(Raw, 0x16); } + // Negative only in X/Y... seeing behind them? Might be projection of an interaction area. + public int U18 { get => BitConverter.ToInt16(Raw, 0x18); set => BitConverter.GetBytes((short)value).CopyTo(Raw, 0x18); } + public int U1A { get => BitConverter.ToInt16(Raw, 0x1A); set => BitConverter.GetBytes((short)value).CopyTo(Raw, 0x1A); } + + // WalkArea Leashes (?): If these are for NPCs that walk in an area, I'm not sure if there's a direction specified. + // Set L# to -1 to turn off. + public int L1 { get => BitConverter.ToInt16(Raw, 0x1C); set => BitConverter.GetBytes((short)value).CopyTo(Raw, 0x1C); } + public int L2 { get => BitConverter.ToInt16(Raw, 0x1E); set => BitConverter.GetBytes((short)value).CopyTo(Raw, 0x1E); } + public int L3 { get => BitConverter.ToInt16(Raw, 0x20); set => BitConverter.GetBytes((short)value).CopyTo(Raw, 0x20); } + // Leash Direction? Only used when an area is specified. + public int LDir { get => BitConverter.ToUInt16(Raw, 0x22); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x22); } + + // 0x24-0x25 is Unused in OR/AS, rarely 1 in XY + public int U24 { get => BitConverter.ToUInt16(Raw, 0x24); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x24); } + // 0x26-0x27 is Unused in OR/AS + + // Highest bits for X/Y seem to be fractions of a coordinate? + public int X { get => BitConverter.ToUInt16(Raw, 0x28); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x28); } + public int Y { get => BitConverter.ToUInt16(Raw, 0x2A); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x2A); } + + // -360, 360 ???? + public float Degrees { get => BitConverter.ToSingle(Raw, 0x2C); set => BitConverter.GetBytes(value).CopyTo(Raw, 0x2C); } + public float Deg18 => Degrees / 18; + + public byte[] Raw; + public byte[] OriginalData; + internal const byte Size = 0x30; + + public EntityNPC(byte[] data = null) + { + Raw = data ?? new byte[Size]; + OriginalData = (byte[])Raw.Clone(); + } + + public byte[] Write() + { + return Raw; + } + } + + public class EntityWarp + { + // Usable Attributes + public int DestinationMap { get => BitConverter.ToUInt16(Raw, 0x00); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x00); } + public int DestinationTileIndex { get => BitConverter.ToUInt16(Raw, 0x02); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x02); } + + // Not sure if these are widths or face direction + public byte FaceDirection { get => Raw[0x04]; set => Raw[0x4] = value; } + public byte SceneTransitionEffect { get => Raw[0x05]; set => Raw[0x5] = value; } + + // Either 0 or 1, only in X/Y + // 0: use x,z,y + // 1: use x,y,{unused} + public ushort CoordinateType { get => BitConverter.ToUInt16(Raw, 0x06); set => BitConverter.GetBytes(value).CopyTo(Raw, 0x06); } + // Coordinates have some upper-bit usage it seems... + public short X { get => BitConverter.ToInt16(Raw, 0x08); set => BitConverter.GetBytes(value).CopyTo(Raw, 0x08); } + public short Z { get => BitConverter.ToInt16(Raw, 0x0A); set => BitConverter.GetBytes(value).CopyTo(Raw, 0x0A); } + public short Y { get => BitConverter.ToInt16(Raw, 0x0C); set => BitConverter.GetBytes(value).CopyTo(Raw, 0x0C); } + + public decimal PX => (decimal)X / 18; + public decimal PY => (decimal)Y / 18; + + // Stretches RIGHT + public short Width { get => BitConverter.ToInt16(Raw, 0x0E); set => BitConverter.GetBytes(value).CopyTo(Raw, 0x0E); } + // Stretches DOWN + public short Height { get => BitConverter.ToInt16(Raw, 0x10); set => BitConverter.GetBytes(value).CopyTo(Raw, 0x10); } + // 0-bidirectional + // 1-send only + // 2-receive only + public ushort Directionality { get => BitConverter.ToUInt16(Raw, 0x12); set => BitConverter.GetBytes((short)value).CopyTo(Raw, 0x12); } + + // 0x14-0x15 Unused + // 0x16-0x17 Unused + + public byte[] Raw; + public byte[] OriginalData; + internal const byte Size = 0x18; + + public EntityWarp(byte[] data = null) + { + Raw = data ?? new byte[Size]; + OriginalData = (byte[])Raw.Clone(); + } + + public byte[] Write() + { + return Raw; + } + } + + public class EntityTrigger1 + { + // Usable Attributes + public int Script { get => BitConverter.ToUInt16(Raw, 0x00); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x00); } + public int U2 { get => BitConverter.ToUInt16(Raw, 0x02); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x02); } + public int Constant { get => BitConverter.ToUInt16(Raw, 0x04); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x04); } + + // 0 or 1 for type2, 0/5-8 for type1 + public int U6 { get => BitConverter.ToUInt16(Raw, 0x06); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x06); } + // 0 or 1, always 0 in ORAS + public int U8 { get => BitConverter.ToUInt16(Raw, 0x08); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x08); } + + // 0x0A-0x0B unused + + public int X { get => BitConverter.ToUInt16(Raw, 0x0C); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x0C); } + public int Y { get => BitConverter.ToUInt16(Raw, 0x0E); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x0E); } + + public int Width { get => BitConverter.ToInt16(Raw, 0x10); set => BitConverter.GetBytes((short)value).CopyTo(Raw, 0x10); } + public int Height { get => BitConverter.ToInt16(Raw, 0x12); set => BitConverter.GetBytes((short)value).CopyTo(Raw, 0x12); } + public int U14 { get => BitConverter.ToInt16(Raw, 0x14); set => BitConverter.GetBytes((short)value).CopyTo(Raw, 0x14); } + public int U16 { get => BitConverter.ToInt16(Raw, 0x16); set => BitConverter.GetBytes((short)value).CopyTo(Raw, 0x16); } + + public byte[] Raw; + public byte[] OriginalData; + internal const byte Size = 0x18; + + public EntityTrigger1(byte[] data = null) + { + Raw = data ?? new byte[Size]; + OriginalData = (byte[])Raw.Clone(); + } + + public byte[] Write() + { + return Raw; + } + } + + public class EntityTrigger2 + { + // Usable Attributes + public int Script { get => BitConverter.ToUInt16(Raw, 0x00); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x00); } + public int U2 { get => BitConverter.ToUInt16(Raw, 0x02); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x02); } + public int Constant { get => BitConverter.ToUInt16(Raw, 0x04); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x04); } + + // 0 or 1 for type2, 0/5-8 for type1 + public int U6 { get => BitConverter.ToUInt16(Raw, 0x06); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x06); } + // 0 or 1, always 0 in ORAS + public int U8 { get => BitConverter.ToUInt16(Raw, 0x08); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x08); } + + // 0x0A-0x0B unused + + public int X { get => BitConverter.ToUInt16(Raw, 0x0C); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x0C); } + public int Y { get => BitConverter.ToUInt16(Raw, 0x0E); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x0E); } + + public int Width { get => BitConverter.ToInt16(Raw, 0x10); set => BitConverter.GetBytes((short)value).CopyTo(Raw, 0x10); } + public int Height { get => BitConverter.ToInt16(Raw, 0x12); set => BitConverter.GetBytes((short)value).CopyTo(Raw, 0x12); } + public int U14 { get => BitConverter.ToInt16(Raw, 0x14); set => BitConverter.GetBytes((short)value).CopyTo(Raw, 0x14); } + public int U16 { get => BitConverter.ToInt16(Raw, 0x16); set => BitConverter.GetBytes((short)value).CopyTo(Raw, 0x16); } + + public byte[] Raw; + public byte[] OriginalData; + internal const byte Size = 0x18; + + public EntityTrigger2(byte[] data = null) + { + Raw = data ?? new byte[Size]; + OriginalData = (byte[])Raw.Clone(); + } + + public byte[] Write() => Raw; + } + } + + public class ZoneScript(byte[] data) + { + public byte[] Data = data; // File details unknown. + public Script Script = new(data); + + public byte[] Write() + { + Data = Script.Write(); + return Data; + } + } + + public class ZoneEncounters + { + public byte[] Data; // File details unknown. + public byte[] Header; + public EncounterSet[] Encounters; + + public ZoneEncounters(byte[] data) + { + Data = data; + + using var br = new BinaryReader(new MemoryStream(data)); + Header = br.ReadBytes(0x10); + Encounters = new EncounterSet[(int)(br.BaseStream.Length - br.BaseStream.Position) / 4]; + for (int i = 0; i < Encounters.Length; i++) + { + Encounters[i] = new EncounterSet(br.ReadBytes(4)); + } + } + + public byte[] Write() + { + byte[] data = Header; // Start with the header data, then concat every encounter in afterwards. + return Encounters.Aggregate(data, (current, t) => [.. current, .. t.Write()]); + } + + public class EncounterSet + { + public int Species; + public int Form; + public byte LevelMin, LevelMax; + + public EncounterSet(byte[] data) + { + using var br = new BinaryReader(new MemoryStream(data)); + ushort SpecForm = br.ReadUInt16(); + Species = SpecForm & 0x7FF; + Form = SpecForm >> 11; + LevelMin = br.ReadByte(); + LevelMax = br.ReadByte(); + } + + public byte[] Write() + { + using var ms = new MemoryStream(); + using var bw = new BinaryWriter(ms); + bw.Write((ushort)(Species | (Form << 11))); + bw.Write(LevelMin); + bw.Write(LevelMax); + return ms.ToArray(); + } + } + } + + public class ZoneUnknown(byte[] data) + { + public byte[] FileData = data; // File details unknown. + + public byte[] Write() + { + return FileData; + } + } +} + +#endregion \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen6/GiftEditor6.Designer.cs b/pk3DS.WinForms/Subforms/Gen6/GiftEditor6.Designer.cs new file mode 100644 index 0000000000..78ef7cf26e --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/GiftEditor6.Designer.cs @@ -0,0 +1,915 @@ +namespace pk3DS.WinForms; + +partial class GiftEditor6 +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.B_Cancel = new System.Windows.Forms.Button(); + this.B_Save = new System.Windows.Forms.Button(); + this.LB_Gifts = new System.Windows.Forms.ListBox(); + this.CB_Species = new System.Windows.Forms.ComboBox(); + this.CB_HeldItem = new System.Windows.Forms.ComboBox(); + this.L_Species = new System.Windows.Forms.Label(); + this.L_HeldItem = new System.Windows.Forms.Label(); + this.NUD_Level = new System.Windows.Forms.NumericUpDown(); + this.L_Level = new System.Windows.Forms.Label(); + this.NUD_Form = new System.Windows.Forms.NumericUpDown(); + this.L_Form = new System.Windows.Forms.Label(); + this.L_Nature = new System.Windows.Forms.Label(); + this.B_RandAll = new System.Windows.Forms.Button(); + this.tabControl1 = new System.Windows.Forms.TabControl(); + this.tabPage1 = new System.Windows.Forms.TabPage(); + this.L_Gender = new System.Windows.Forms.Label(); + this.CB_Gender = new System.Windows.Forms.ComboBox(); + this.L_Ability = new System.Windows.Forms.Label(); + this.CB_Ability = new System.Windows.Forms.ComboBox(); + this.CB_Nature = new System.Windows.Forms.ComboBox(); + this.GB_EIVs = new System.Windows.Forms.GroupBox(); + this.L_HP = new System.Windows.Forms.Label(); + this.NUD_IV3 = new System.Windows.Forms.NumericUpDown(); + this.NUD_IV4 = new System.Windows.Forms.NumericUpDown(); + this.NUD_IV5 = new System.Windows.Forms.NumericUpDown(); + this.L_SPD = new System.Windows.Forms.Label(); + this.L_SPE = new System.Windows.Forms.Label(); + this.L_SPA = new System.Windows.Forms.Label(); + this.NUD_IV2 = new System.Windows.Forms.NumericUpDown(); + this.NUD_IV1 = new System.Windows.Forms.NumericUpDown(); + this.NUD_IV0 = new System.Windows.Forms.NumericUpDown(); + this.L_ATK = new System.Windows.Forms.Label(); + this.L_DEF = new System.Windows.Forms.Label(); + this.CHK_ShinyLock = new System.Windows.Forms.CheckBox(); + this.tabPage2 = new System.Windows.Forms.TabPage(); + this.B_ModifyLevel = new System.Windows.Forms.Button(); + this.GB_Tweak = new System.Windows.Forms.GroupBox(); + this.NUD_ForceFullyEvolved = new System.Windows.Forms.NumericUpDown(); + this.CHK_ForceFullyEvolved = new System.Windows.Forms.CheckBox(); + this.CHK_RandomAbility = new System.Windows.Forms.CheckBox(); + this.CHK_RemoveShinyLock = new System.Windows.Forms.CheckBox(); + this.CHK_AllowMega = new System.Windows.Forms.CheckBox(); + this.CHK_Item = new System.Windows.Forms.CheckBox(); + this.L_RandOpt = new System.Windows.Forms.Label(); + this.CHK_BST = new System.Windows.Forms.CheckBox(); + this.CHK_E = new System.Windows.Forms.CheckBox(); + this.CHK_L = new System.Windows.Forms.CheckBox(); + this.CHK_G6 = new System.Windows.Forms.CheckBox(); + this.CHK_G5 = new System.Windows.Forms.CheckBox(); + this.CHK_G4 = new System.Windows.Forms.CheckBox(); + this.CHK_G3 = new System.Windows.Forms.CheckBox(); + this.CHK_G2 = new System.Windows.Forms.CheckBox(); + this.CHK_G1 = new System.Windows.Forms.CheckBox(); + this.L_Mega = new System.Windows.Forms.Label(); + this.CHK_ReplaceMega = new System.Windows.Forms.CheckBox(); + this.NUD_LevelBoost = new System.Windows.Forms.NumericUpDown(); + this.CHK_Level = new System.Windows.Forms.CheckBox(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Level)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Form)).BeginInit(); + this.tabControl1.SuspendLayout(); + this.tabPage1.SuspendLayout(); + this.GB_EIVs.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_IV3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_IV4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_IV5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_IV2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_IV1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_IV0)).BeginInit(); + this.tabPage2.SuspendLayout(); + this.GB_Tweak.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_ForceFullyEvolved)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_LevelBoost)).BeginInit(); + this.SuspendLayout(); + // + // B_Cancel + // + this.B_Cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.B_Cancel.Location = new System.Drawing.Point(264, 338); + this.B_Cancel.Name = "B_Cancel"; + this.B_Cancel.Size = new System.Drawing.Size(70, 23); + this.B_Cancel.TabIndex = 467; + this.B_Cancel.Text = "Cancel"; + this.B_Cancel.UseVisualStyleBackColor = true; + this.B_Cancel.Click += new System.EventHandler(this.B_Cancel_Click); + // + // B_Save + // + this.B_Save.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.B_Save.Location = new System.Drawing.Point(335, 338); + this.B_Save.Name = "B_Save"; + this.B_Save.Size = new System.Drawing.Size(70, 23); + this.B_Save.TabIndex = 466; + this.B_Save.Text = "Save"; + this.B_Save.UseVisualStyleBackColor = true; + this.B_Save.Click += new System.EventHandler(this.B_Save_Click); + // + // LB_Gifts + // + this.LB_Gifts.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.LB_Gifts.FormattingEnabled = true; + this.LB_Gifts.Location = new System.Drawing.Point(12, 12); + this.LB_Gifts.Name = "LB_Gifts"; + this.LB_Gifts.Size = new System.Drawing.Size(110, 342); + this.LB_Gifts.TabIndex = 468; + this.LB_Gifts.SelectedIndexChanged += new System.EventHandler(this.ChangeIndex); + // + // CB_Species + // + this.CB_Species.FormattingEnabled = true; + this.CB_Species.Location = new System.Drawing.Point(65, 7); + this.CB_Species.Name = "CB_Species"; + this.CB_Species.Size = new System.Drawing.Size(136, 21); + this.CB_Species.TabIndex = 469; + this.CB_Species.SelectedIndexChanged += new System.EventHandler(this.ChangeSpecies); + // + // CB_HeldItem + // + this.CB_HeldItem.FormattingEnabled = true; + this.CB_HeldItem.Location = new System.Drawing.Point(65, 115); + this.CB_HeldItem.Name = "CB_HeldItem"; + this.CB_HeldItem.Size = new System.Drawing.Size(136, 21); + this.CB_HeldItem.TabIndex = 470; + // + // L_Species + // + this.L_Species.Location = new System.Drawing.Point(9, 6); + this.L_Species.Name = "L_Species"; + this.L_Species.Size = new System.Drawing.Size(55, 23); + this.L_Species.TabIndex = 477; + this.L_Species.Text = "Species:"; + this.L_Species.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_HeldItem + // + this.L_HeldItem.Location = new System.Drawing.Point(9, 114); + this.L_HeldItem.Name = "L_HeldItem"; + this.L_HeldItem.Size = new System.Drawing.Size(55, 23); + this.L_HeldItem.TabIndex = 478; + this.L_HeldItem.Text = "Held Item:"; + this.L_HeldItem.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_Level + // + this.NUD_Level.Location = new System.Drawing.Point(65, 29); + this.NUD_Level.Name = "NUD_Level"; + this.NUD_Level.Size = new System.Drawing.Size(41, 20); + this.NUD_Level.TabIndex = 479; + this.NUD_Level.Value = new decimal(new int[] { + 100, + 0, + 0, + 0}); + // + // L_Level + // + this.L_Level.Location = new System.Drawing.Point(9, 26); + this.L_Level.Name = "L_Level"; + this.L_Level.Size = new System.Drawing.Size(55, 23); + this.L_Level.TabIndex = 480; + this.L_Level.Text = "Level:"; + this.L_Level.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_Form + // + this.NUD_Form.Location = new System.Drawing.Point(65, 50); + this.NUD_Form.Name = "NUD_Form"; + this.NUD_Form.Size = new System.Drawing.Size(41, 20); + this.NUD_Form.TabIndex = 481; + // + // L_Form + // + this.L_Form.Location = new System.Drawing.Point(9, 47); + this.L_Form.Name = "L_Form"; + this.L_Form.Size = new System.Drawing.Size(55, 23); + this.L_Form.TabIndex = 482; + this.L_Form.Text = "Form:"; + this.L_Form.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_Nature + // + this.L_Nature.Location = new System.Drawing.Point(9, 136); + this.L_Nature.Name = "L_Nature"; + this.L_Nature.Size = new System.Drawing.Size(55, 23); + this.L_Nature.TabIndex = 490; + this.L_Nature.Text = "Nature:"; + this.L_Nature.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // B_RandAll + // + this.B_RandAll.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.B_RandAll.Location = new System.Drawing.Point(181, 338); + this.B_RandAll.Name = "B_RandAll"; + this.B_RandAll.Size = new System.Drawing.Size(83, 23); + this.B_RandAll.TabIndex = 496; + this.B_RandAll.Text = "Randomize All"; + this.B_RandAll.UseVisualStyleBackColor = true; + this.B_RandAll.Click += new System.EventHandler(this.B_RandAll_Click); + // + // tabControl1 + // + this.tabControl1.Controls.Add(this.tabPage1); + this.tabControl1.Controls.Add(this.tabPage2); + this.tabControl1.Location = new System.Drawing.Point(128, 12); + this.tabControl1.Name = "tabControl1"; + this.tabControl1.SelectedIndex = 0; + this.tabControl1.Size = new System.Drawing.Size(277, 322); + this.tabControl1.TabIndex = 502; + // + // tabPage1 + // + this.tabPage1.Controls.Add(this.L_Gender); + this.tabPage1.Controls.Add(this.CB_Gender); + this.tabPage1.Controls.Add(this.L_Ability); + this.tabPage1.Controls.Add(this.CB_Ability); + this.tabPage1.Controls.Add(this.CB_Nature); + this.tabPage1.Controls.Add(this.GB_EIVs); + this.tabPage1.Controls.Add(this.CHK_ShinyLock); + this.tabPage1.Controls.Add(this.CB_Species); + this.tabPage1.Controls.Add(this.L_Nature); + this.tabPage1.Controls.Add(this.L_Species); + this.tabPage1.Controls.Add(this.L_HeldItem); + this.tabPage1.Controls.Add(this.NUD_Level); + this.tabPage1.Controls.Add(this.L_Level); + this.tabPage1.Controls.Add(this.L_Form); + this.tabPage1.Controls.Add(this.CB_HeldItem); + this.tabPage1.Controls.Add(this.NUD_Form); + this.tabPage1.Location = new System.Drawing.Point(4, 22); + this.tabPage1.Name = "tabPage1"; + this.tabPage1.Padding = new System.Windows.Forms.Padding(3); + this.tabPage1.Size = new System.Drawing.Size(269, 296); + this.tabPage1.TabIndex = 0; + this.tabPage1.Text = "Editor"; + this.tabPage1.UseVisualStyleBackColor = true; + // + // L_Gender + // + this.L_Gender.Location = new System.Drawing.Point(9, 92); + this.L_Gender.Name = "L_Gender"; + this.L_Gender.Size = new System.Drawing.Size(55, 23); + this.L_Gender.TabIndex = 532; + this.L_Gender.Text = "Gender:"; + this.L_Gender.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_Gender + // + this.CB_Gender.FormattingEnabled = true; + this.CB_Gender.Location = new System.Drawing.Point(65, 93); + this.CB_Gender.Name = "CB_Gender"; + this.CB_Gender.Size = new System.Drawing.Size(136, 21); + this.CB_Gender.TabIndex = 531; + // + // L_Ability + // + this.L_Ability.Location = new System.Drawing.Point(9, 70); + this.L_Ability.Name = "L_Ability"; + this.L_Ability.Size = new System.Drawing.Size(55, 23); + this.L_Ability.TabIndex = 530; + this.L_Ability.Text = "Ability:"; + this.L_Ability.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_Ability + // + this.CB_Ability.FormattingEnabled = true; + this.CB_Ability.Location = new System.Drawing.Point(65, 71); + this.CB_Ability.Name = "CB_Ability"; + this.CB_Ability.Size = new System.Drawing.Size(136, 21); + this.CB_Ability.TabIndex = 529; + // + // CB_Nature + // + this.CB_Nature.FormattingEnabled = true; + this.CB_Nature.Location = new System.Drawing.Point(65, 137); + this.CB_Nature.Name = "CB_Nature"; + this.CB_Nature.Size = new System.Drawing.Size(136, 21); + this.CB_Nature.TabIndex = 505; + // + // GB_EIVs + // + this.GB_EIVs.Controls.Add(this.L_HP); + this.GB_EIVs.Controls.Add(this.NUD_IV3); + this.GB_EIVs.Controls.Add(this.NUD_IV4); + this.GB_EIVs.Controls.Add(this.NUD_IV5); + this.GB_EIVs.Controls.Add(this.L_SPD); + this.GB_EIVs.Controls.Add(this.L_SPE); + this.GB_EIVs.Controls.Add(this.L_SPA); + this.GB_EIVs.Controls.Add(this.NUD_IV2); + this.GB_EIVs.Controls.Add(this.NUD_IV1); + this.GB_EIVs.Controls.Add(this.NUD_IV0); + this.GB_EIVs.Controls.Add(this.L_ATK); + this.GB_EIVs.Controls.Add(this.L_DEF); + this.GB_EIVs.Location = new System.Drawing.Point(12, 178); + this.GB_EIVs.Name = "GB_EIVs"; + this.GB_EIVs.Size = new System.Drawing.Size(148, 112); + this.GB_EIVs.TabIndex = 504; + this.GB_EIVs.TabStop = false; + this.GB_EIVs.Text = "IVs"; + // + // L_HP + // + this.L_HP.Location = new System.Drawing.Point(4, 16); + this.L_HP.Name = "L_HP"; + this.L_HP.Size = new System.Drawing.Size(29, 21); + this.L_HP.TabIndex = 495; + this.L_HP.Text = "HP:"; + this.L_HP.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_IV3 + // + this.NUD_IV3.Location = new System.Drawing.Point(104, 18); + this.NUD_IV3.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUD_IV3.Minimum = new decimal(new int[] { + 1, + 0, + 0, + -2147483648}); + this.NUD_IV3.Name = "NUD_IV3"; + this.NUD_IV3.Size = new System.Drawing.Size(34, 20); + this.NUD_IV3.TabIndex = 492; + this.NUD_IV3.Value = new decimal(new int[] { + 31, + 0, + 0, + 0}); + // + // NUD_IV4 + // + this.NUD_IV4.Location = new System.Drawing.Point(104, 49); + this.NUD_IV4.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUD_IV4.Minimum = new decimal(new int[] { + 1, + 0, + 0, + -2147483648}); + this.NUD_IV4.Name = "NUD_IV4"; + this.NUD_IV4.Size = new System.Drawing.Size(34, 20); + this.NUD_IV4.TabIndex = 493; + this.NUD_IV4.Value = new decimal(new int[] { + 31, + 0, + 0, + 0}); + // + // NUD_IV5 + // + this.NUD_IV5.Location = new System.Drawing.Point(104, 80); + this.NUD_IV5.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUD_IV5.Minimum = new decimal(new int[] { + 1, + 0, + 0, + -2147483648}); + this.NUD_IV5.Name = "NUD_IV5"; + this.NUD_IV5.Size = new System.Drawing.Size(34, 20); + this.NUD_IV5.TabIndex = 494; + this.NUD_IV5.Value = new decimal(new int[] { + 31, + 0, + 0, + 0}); + // + // L_SPD + // + this.L_SPD.Location = new System.Drawing.Point(73, 47); + this.L_SPD.Name = "L_SPD"; + this.L_SPD.Size = new System.Drawing.Size(31, 21); + this.L_SPD.TabIndex = 500; + this.L_SPD.Text = "SpD:"; + this.L_SPD.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_SPE + // + this.L_SPE.Location = new System.Drawing.Point(73, 78); + this.L_SPE.Name = "L_SPE"; + this.L_SPE.Size = new System.Drawing.Size(31, 21); + this.L_SPE.TabIndex = 499; + this.L_SPE.Text = "Spe:"; + this.L_SPE.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_SPA + // + this.L_SPA.Location = new System.Drawing.Point(73, 16); + this.L_SPA.Name = "L_SPA"; + this.L_SPA.Size = new System.Drawing.Size(31, 21); + this.L_SPA.TabIndex = 498; + this.L_SPA.Text = "SpA:"; + this.L_SPA.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_IV2 + // + this.NUD_IV2.Location = new System.Drawing.Point(33, 80); + this.NUD_IV2.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUD_IV2.Minimum = new decimal(new int[] { + 1, + 0, + 0, + -2147483648}); + this.NUD_IV2.Name = "NUD_IV2"; + this.NUD_IV2.Size = new System.Drawing.Size(34, 20); + this.NUD_IV2.TabIndex = 491; + this.NUD_IV2.Value = new decimal(new int[] { + 31, + 0, + 0, + 0}); + // + // NUD_IV1 + // + this.NUD_IV1.Location = new System.Drawing.Point(33, 49); + this.NUD_IV1.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUD_IV1.Minimum = new decimal(new int[] { + 1, + 0, + 0, + -2147483648}); + this.NUD_IV1.Name = "NUD_IV1"; + this.NUD_IV1.Size = new System.Drawing.Size(34, 20); + this.NUD_IV1.TabIndex = 490; + this.NUD_IV1.Value = new decimal(new int[] { + 31, + 0, + 0, + 0}); + // + // NUD_IV0 + // + this.NUD_IV0.Location = new System.Drawing.Point(33, 18); + this.NUD_IV0.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUD_IV0.Minimum = new decimal(new int[] { + 1, + 0, + 0, + -2147483648}); + this.NUD_IV0.Name = "NUD_IV0"; + this.NUD_IV0.Size = new System.Drawing.Size(34, 20); + this.NUD_IV0.TabIndex = 489; + this.NUD_IV0.Value = new decimal(new int[] { + 31, + 0, + 0, + 0}); + // + // L_ATK + // + this.L_ATK.Location = new System.Drawing.Point(7, 47); + this.L_ATK.Name = "L_ATK"; + this.L_ATK.Size = new System.Drawing.Size(26, 21); + this.L_ATK.TabIndex = 496; + this.L_ATK.Text = "Atk:"; + this.L_ATK.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_DEF + // + this.L_DEF.Location = new System.Drawing.Point(4, 78); + this.L_DEF.Name = "L_DEF"; + this.L_DEF.Size = new System.Drawing.Size(29, 21); + this.L_DEF.TabIndex = 497; + this.L_DEF.Text = "Def:"; + this.L_DEF.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CHK_ShinyLock + // + this.CHK_ShinyLock.AutoSize = true; + this.CHK_ShinyLock.Location = new System.Drawing.Point(65, 163); + this.CHK_ShinyLock.Name = "CHK_ShinyLock"; + this.CHK_ShinyLock.Size = new System.Drawing.Size(79, 17); + this.CHK_ShinyLock.TabIndex = 503; + this.CHK_ShinyLock.Text = "Shiny Lock"; + this.CHK_ShinyLock.UseVisualStyleBackColor = true; + // + // tabPage2 + // + this.tabPage2.Controls.Add(this.B_ModifyLevel); + this.tabPage2.Controls.Add(this.GB_Tweak); + this.tabPage2.Controls.Add(this.L_Mega); + this.tabPage2.Controls.Add(this.CHK_ReplaceMega); + this.tabPage2.Controls.Add(this.NUD_LevelBoost); + this.tabPage2.Controls.Add(this.CHK_Level); + this.tabPage2.Location = new System.Drawing.Point(4, 22); + this.tabPage2.Name = "tabPage2"; + this.tabPage2.Padding = new System.Windows.Forms.Padding(3); + this.tabPage2.Size = new System.Drawing.Size(269, 296); + this.tabPage2.TabIndex = 1; + this.tabPage2.Text = "Randomizer Options"; + this.tabPage2.UseVisualStyleBackColor = true; + // + // B_ModifyLevel + // + this.B_ModifyLevel.Location = new System.Drawing.Point(189, 16); + this.B_ModifyLevel.Name = "B_ModifyLevel"; + this.B_ModifyLevel.Size = new System.Drawing.Size(70, 23); + this.B_ModifyLevel.TabIndex = 514; + this.B_ModifyLevel.Text = "× Current"; + this.B_ModifyLevel.UseVisualStyleBackColor = true; + this.B_ModifyLevel.Click += new System.EventHandler(this.ModifyLevels); + // + // GB_Tweak + // + this.GB_Tweak.Controls.Add(this.CHK_AllowMega); + this.GB_Tweak.Controls.Add(this.NUD_ForceFullyEvolved); + this.GB_Tweak.Controls.Add(this.CHK_ForceFullyEvolved); + this.GB_Tweak.Controls.Add(this.CHK_RandomAbility); + this.GB_Tweak.Controls.Add(this.CHK_RemoveShinyLock); + this.GB_Tweak.Controls.Add(this.CHK_Item); + this.GB_Tweak.Controls.Add(this.L_RandOpt); + this.GB_Tweak.Controls.Add(this.CHK_BST); + this.GB_Tweak.Controls.Add(this.CHK_E); + this.GB_Tweak.Controls.Add(this.CHK_L); + this.GB_Tweak.Controls.Add(this.CHK_G6); + this.GB_Tweak.Controls.Add(this.CHK_G5); + this.GB_Tweak.Controls.Add(this.CHK_G4); + this.GB_Tweak.Controls.Add(this.CHK_G3); + this.GB_Tweak.Controls.Add(this.CHK_G2); + this.GB_Tweak.Controls.Add(this.CHK_G1); + this.GB_Tweak.Location = new System.Drawing.Point(5, 57); + this.GB_Tweak.Name = "GB_Tweak"; + this.GB_Tweak.Size = new System.Drawing.Size(258, 170); + this.GB_Tweak.TabIndex = 513; + this.GB_Tweak.TabStop = false; + this.GB_Tweak.Text = "Extra Randomization Tweaks"; + // + // NUD_ForceFullyEvolved + // + this.NUD_ForceFullyEvolved.Location = new System.Drawing.Point(168, 141); + this.NUD_ForceFullyEvolved.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.NUD_ForceFullyEvolved.Name = "NUD_ForceFullyEvolved"; + this.NUD_ForceFullyEvolved.Size = new System.Drawing.Size(40, 20); + this.NUD_ForceFullyEvolved.TabIndex = 518; + this.NUD_ForceFullyEvolved.Value = new decimal(new int[] { + 50, + 0, + 0, + 0}); + // + // CHK_ForceFullyEvolved + // + this.CHK_ForceFullyEvolved.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.CHK_ForceFullyEvolved.AutoSize = true; + this.CHK_ForceFullyEvolved.Location = new System.Drawing.Point(9, 143); + this.CHK_ForceFullyEvolved.Name = "CHK_ForceFullyEvolved"; + this.CHK_ForceFullyEvolved.Size = new System.Drawing.Size(160, 17); + this.CHK_ForceFullyEvolved.TabIndex = 517; + this.CHK_ForceFullyEvolved.Text = "Force Fully Evolved at Level"; + this.CHK_ForceFullyEvolved.UseVisualStyleBackColor = true; + // + // CHK_RandomAbility + // + this.CHK_RandomAbility.AutoSize = true; + this.CHK_RandomAbility.Location = new System.Drawing.Point(9, 109); + this.CHK_RandomAbility.Name = "CHK_RandomAbility"; + this.CHK_RandomAbility.Size = new System.Drawing.Size(183, 17); + this.CHK_RandomAbility.TabIndex = 298; + this.CHK_RandomAbility.Text = "Random Abilities (1, 2, or Hidden)"; + this.CHK_RandomAbility.UseVisualStyleBackColor = true; + // + // CHK_RemoveShinyLock + // + this.CHK_RemoveShinyLock.AutoSize = true; + this.CHK_RemoveShinyLock.Location = new System.Drawing.Point(9, 94); + this.CHK_RemoveShinyLock.Name = "CHK_RemoveShinyLock"; + this.CHK_RemoveShinyLock.Size = new System.Drawing.Size(127, 17); + this.CHK_RemoveShinyLock.TabIndex = 297; + this.CHK_RemoveShinyLock.Text = "Remove Shiny Locks"; + this.CHK_RemoveShinyLock.UseVisualStyleBackColor = true; + // + // CHK_AllowMega + // + this.CHK_AllowMega.AutoSize = true; + this.CHK_AllowMega.Location = new System.Drawing.Point(9, 124); + this.CHK_AllowMega.Name = "CHK_AllowMega"; + this.CHK_AllowMega.Size = new System.Drawing.Size(155, 17); + this.CHK_AllowMega.TabIndex = 296; + this.CHK_AllowMega.Text = "Allow Random Mega Forms"; + this.CHK_AllowMega.UseVisualStyleBackColor = true; + // + // CHK_Item + // + this.CHK_Item.AutoSize = true; + this.CHK_Item.Checked = true; + this.CHK_Item.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_Item.Location = new System.Drawing.Point(9, 79); + this.CHK_Item.Name = "CHK_Item"; + this.CHK_Item.Size = new System.Drawing.Size(119, 17); + this.CHK_Item.TabIndex = 295; + this.CHK_Item.Text = "Random Held Items"; + this.CHK_Item.UseVisualStyleBackColor = true; + // + // L_RandOpt + // + this.L_RandOpt.AutoSize = true; + this.L_RandOpt.Location = new System.Drawing.Point(6, 16); + this.L_RandOpt.Name = "L_RandOpt"; + this.L_RandOpt.Size = new System.Drawing.Size(105, 13); + this.L_RandOpt.TabIndex = 294; + this.L_RandOpt.Text = "Randomizer Options:"; + // + // CHK_BST + // + this.CHK_BST.AutoSize = true; + this.CHK_BST.Location = new System.Drawing.Point(128, 62); + this.CHK_BST.Name = "CHK_BST"; + this.CHK_BST.Size = new System.Drawing.Size(117, 17); + this.CHK_BST.TabIndex = 288; + this.CHK_BST.Text = "Randomize by BST"; + this.CHK_BST.UseVisualStyleBackColor = true; + // + // CHK_E + // + this.CHK_E.AutoSize = true; + this.CHK_E.Checked = true; + this.CHK_E.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_E.Location = new System.Drawing.Point(128, 48); + this.CHK_E.Name = "CHK_E"; + this.CHK_E.Size = new System.Drawing.Size(98, 17); + this.CHK_E.TabIndex = 287; + this.CHK_E.Text = "Event Legends"; + this.CHK_E.UseVisualStyleBackColor = true; + // + // CHK_L + // + this.CHK_L.AutoSize = true; + this.CHK_L.Checked = true; + this.CHK_L.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_L.Location = new System.Drawing.Point(128, 34); + this.CHK_L.Name = "CHK_L"; + this.CHK_L.Size = new System.Drawing.Size(98, 17); + this.CHK_L.TabIndex = 286; + this.CHK_L.Text = "Game Legends"; + this.CHK_L.UseVisualStyleBackColor = true; + // + // CHK_G6 + // + this.CHK_G6.AutoSize = true; + this.CHK_G6.Checked = true; + this.CHK_G6.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G6.Location = new System.Drawing.Point(67, 62); + this.CHK_G6.Name = "CHK_G6"; + this.CHK_G6.Size = new System.Drawing.Size(55, 17); + this.CHK_G6.TabIndex = 285; + this.CHK_G6.Text = "Gen 6"; + this.CHK_G6.UseVisualStyleBackColor = true; + // + // CHK_G5 + // + this.CHK_G5.AutoSize = true; + this.CHK_G5.Checked = true; + this.CHK_G5.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G5.Location = new System.Drawing.Point(67, 48); + this.CHK_G5.Name = "CHK_G5"; + this.CHK_G5.Size = new System.Drawing.Size(55, 17); + this.CHK_G5.TabIndex = 284; + this.CHK_G5.Text = "Gen 5"; + this.CHK_G5.UseVisualStyleBackColor = true; + // + // CHK_G4 + // + this.CHK_G4.AutoSize = true; + this.CHK_G4.Checked = true; + this.CHK_G4.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G4.Location = new System.Drawing.Point(67, 34); + this.CHK_G4.Name = "CHK_G4"; + this.CHK_G4.Size = new System.Drawing.Size(55, 17); + this.CHK_G4.TabIndex = 283; + this.CHK_G4.Text = "Gen 4"; + this.CHK_G4.UseVisualStyleBackColor = true; + // + // CHK_G3 + // + this.CHK_G3.AutoSize = true; + this.CHK_G3.Checked = true; + this.CHK_G3.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G3.Location = new System.Drawing.Point(9, 62); + this.CHK_G3.Name = "CHK_G3"; + this.CHK_G3.Size = new System.Drawing.Size(55, 17); + this.CHK_G3.TabIndex = 282; + this.CHK_G3.Text = "Gen 3"; + this.CHK_G3.UseVisualStyleBackColor = true; + // + // CHK_G2 + // + this.CHK_G2.AutoSize = true; + this.CHK_G2.Checked = true; + this.CHK_G2.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G2.Location = new System.Drawing.Point(9, 48); + this.CHK_G2.Name = "CHK_G2"; + this.CHK_G2.Size = new System.Drawing.Size(55, 17); + this.CHK_G2.TabIndex = 281; + this.CHK_G2.Text = "Gen 2"; + this.CHK_G2.UseVisualStyleBackColor = true; + // + // CHK_G1 + // + this.CHK_G1.AutoSize = true; + this.CHK_G1.Checked = true; + this.CHK_G1.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G1.Location = new System.Drawing.Point(9, 34); + this.CHK_G1.Name = "CHK_G1"; + this.CHK_G1.Size = new System.Drawing.Size(55, 17); + this.CHK_G1.TabIndex = 280; + this.CHK_G1.Text = "Gen 1"; + this.CHK_G1.UseVisualStyleBackColor = true; + // + // L_Mega + // + this.L_Mega.Location = new System.Drawing.Point(24, 261); + this.L_Mega.Name = "L_Mega"; + this.L_Mega.Size = new System.Drawing.Size(113, 33); + this.L_Mega.TabIndex = 512; + this.L_Mega.Text = "XY - Lucario\nORAS - Latias/Latios"; + this.L_Mega.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // CHK_ReplaceMega + // + this.CHK_ReplaceMega.AutoSize = true; + this.CHK_ReplaceMega.Checked = true; + this.CHK_ReplaceMega.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_ReplaceMega.Location = new System.Drawing.Point(7, 247); + this.CHK_ReplaceMega.Name = "CHK_ReplaceMega"; + this.CHK_ReplaceMega.Size = new System.Drawing.Size(264, 17); + this.CHK_ReplaceMega.TabIndex = 511; + this.CHK_ReplaceMega.Text = "Replace Megas with Another Mega (via Held Item)"; + this.CHK_ReplaceMega.UseVisualStyleBackColor = true; + // + // NUD_LevelBoost + // + this.NUD_LevelBoost.DecimalPlaces = 2; + this.NUD_LevelBoost.Increment = new decimal(new int[] { + 5, + 0, + 0, + 131072}); + this.NUD_LevelBoost.Location = new System.Drawing.Point(140, 17); + this.NUD_LevelBoost.Maximum = new decimal(new int[] { + 3, + 0, + 0, + 0}); + this.NUD_LevelBoost.Name = "NUD_LevelBoost"; + this.NUD_LevelBoost.Size = new System.Drawing.Size(43, 20); + this.NUD_LevelBoost.TabIndex = 303; + this.NUD_LevelBoost.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // CHK_Level + // + this.CHK_Level.AutoSize = true; + this.CHK_Level.Checked = true; + this.CHK_Level.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_Level.Location = new System.Drawing.Point(9, 18); + this.CHK_Level.Name = "CHK_Level"; + this.CHK_Level.Size = new System.Drawing.Size(130, 17); + this.CHK_Level.TabIndex = 302; + this.CHK_Level.Text = "Multiply PKM Level by"; + this.CHK_Level.UseVisualStyleBackColor = true; + // + // GiftEditor6 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(417, 370); + this.Controls.Add(this.tabControl1); + this.Controls.Add(this.B_RandAll); + this.Controls.Add(this.LB_Gifts); + this.Controls.Add(this.B_Cancel); + this.Controls.Add(this.B_Save); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size(433, 343); + this.Name = "GiftEditor6"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Gift Editor"; + ((System.ComponentModel.ISupportInitialize)(this.NUD_Level)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Form)).EndInit(); + this.tabControl1.ResumeLayout(false); + this.tabPage1.ResumeLayout(false); + this.tabPage1.PerformLayout(); + this.GB_EIVs.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.NUD_IV3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_IV4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_IV5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_IV2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_IV1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_IV0)).EndInit(); + this.tabPage2.ResumeLayout(false); + this.tabPage2.PerformLayout(); + this.GB_Tweak.ResumeLayout(false); + this.GB_Tweak.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_ForceFullyEvolved)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_LevelBoost)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button B_Cancel; + private System.Windows.Forms.Button B_Save; + private System.Windows.Forms.ListBox LB_Gifts; + private System.Windows.Forms.ComboBox CB_Species; + private System.Windows.Forms.ComboBox CB_HeldItem; + private System.Windows.Forms.Label L_Species; + private System.Windows.Forms.Label L_HeldItem; + private System.Windows.Forms.NumericUpDown NUD_Level; + private System.Windows.Forms.Label L_Level; + private System.Windows.Forms.NumericUpDown NUD_Form; + private System.Windows.Forms.Label L_Form; + private System.Windows.Forms.Label L_Nature; + private System.Windows.Forms.Button B_RandAll; + private System.Windows.Forms.TabControl tabControl1; + private System.Windows.Forms.TabPage tabPage1; + private System.Windows.Forms.TabPage tabPage2; + private System.Windows.Forms.NumericUpDown NUD_LevelBoost; + private System.Windows.Forms.CheckBox CHK_Level; + private System.Windows.Forms.CheckBox CHK_ReplaceMega; + private System.Windows.Forms.Label L_Mega; + private System.Windows.Forms.CheckBox CHK_ShinyLock; + private System.Windows.Forms.GroupBox GB_EIVs; + private System.Windows.Forms.Label L_HP; + private System.Windows.Forms.NumericUpDown NUD_IV3; + private System.Windows.Forms.NumericUpDown NUD_IV4; + private System.Windows.Forms.NumericUpDown NUD_IV5; + private System.Windows.Forms.Label L_SPD; + private System.Windows.Forms.Label L_SPE; + private System.Windows.Forms.Label L_SPA; + private System.Windows.Forms.NumericUpDown NUD_IV2; + private System.Windows.Forms.NumericUpDown NUD_IV1; + private System.Windows.Forms.NumericUpDown NUD_IV0; + private System.Windows.Forms.Label L_ATK; + private System.Windows.Forms.Label L_DEF; + private System.Windows.Forms.ComboBox CB_Nature; + private System.Windows.Forms.GroupBox GB_Tweak; + private System.Windows.Forms.CheckBox CHK_RemoveShinyLock; + private System.Windows.Forms.CheckBox CHK_AllowMega; + private System.Windows.Forms.CheckBox CHK_Item; + private System.Windows.Forms.Label L_RandOpt; + private System.Windows.Forms.CheckBox CHK_BST; + private System.Windows.Forms.CheckBox CHK_E; + private System.Windows.Forms.CheckBox CHK_L; + private System.Windows.Forms.CheckBox CHK_G6; + private System.Windows.Forms.CheckBox CHK_G5; + private System.Windows.Forms.CheckBox CHK_G4; + private System.Windows.Forms.CheckBox CHK_G3; + private System.Windows.Forms.CheckBox CHK_G2; + private System.Windows.Forms.CheckBox CHK_G1; + private System.Windows.Forms.Button B_ModifyLevel; + private System.Windows.Forms.Label L_Gender; + private System.Windows.Forms.ComboBox CB_Gender; + private System.Windows.Forms.Label L_Ability; + private System.Windows.Forms.ComboBox CB_Ability; + private System.Windows.Forms.CheckBox CHK_RandomAbility; + private System.Windows.Forms.NumericUpDown NUD_ForceFullyEvolved; + private System.Windows.Forms.CheckBox CHK_ForceFullyEvolved; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen6/GiftEditor6.cs b/pk3DS.WinForms/Subforms/Gen6/GiftEditor6.cs new file mode 100644 index 0000000000..d417326123 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/GiftEditor6.cs @@ -0,0 +1,357 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Windows.Forms; + +using pk3DS.Core; +using pk3DS.Core.Randomizers; +using pk3DS.Core.Structures; + +namespace pk3DS.WinForms; + +public partial class GiftEditor6 : Form +{ + public GiftEditor6() + { + specieslist[0] = "---"; + Array.Resize(ref specieslist, Main.Config.MaxSpeciesID + 1); + if (!File.Exists(FieldPath)) + { + WinFormsUtil.Error("CRO does not exist! Closing.", FieldPath); + Close(); + } + InitializeComponent(); + Dictionary megaDictionary = GetMegaDictionary(Main.Config); + MegaDictionary = megaDictionary; + + specieslist[0] = "---"; + itemlist[0] = "(None)"; // blank == -1 + + CB_Species.Items.Clear(); + CB_Species.Items.AddRange(specieslist); + CB_HeldItem.Items.Clear(); + CB_HeldItem.Items.AddRange(itemlist); + CB_Nature.Items.Add("Random"); + CB_Nature.Items.AddRange(natureslist.Take(25).ToArray()); + RandSettings.GetFormSettings(this, tabPage2.Controls); + + LoadData(); + } + + public static Dictionary GetMegaDictionary(GameConfig config) + { + return config.XY ? MegaDictionaryXY : MegaDictionaryAO.Concat(MegaDictionaryXY) + .ToDictionary(pair => pair.Key, pair => pair.Value); + } + + private readonly string FieldPath = Path.Combine(Main.RomFSPath, "DllField.cro"); + private byte[] FieldData; + private readonly int fieldOffset = Main.Config.ORAS ? 0xF906C : 0xF805C; + private readonly int fieldSize = Main.Config.ORAS ? 0x24 : 0x18; + private readonly int count = Main.Config.ORAS ? 0x25 : 0x13; + private EncounterGift6[] GiftData; + //private readonly string[] abilitylist = Main.Config.GetText(TextName.AbilityNames); + //private readonly string[] movelist = Main.Config.GetText(TextName.MoveNames); + private readonly string[] itemlist = Main.Config.GetText(TextName.ItemNames); + private readonly string[] specieslist = Main.Config.GetText(TextName.SpeciesNames); + private readonly string[] natureslist = Main.Config.GetText(TextName.Natures); + private readonly Dictionary MegaDictionary; + private static int[] FinalEvo = Legal.FinalEvolutions_6; + private static readonly int[] Legendary = Legal.Legendary_6; + private static readonly int[] Mythical = Legal.Mythical_6; + + private readonly string[] ability = + [ + "Any (1 or 2)", + "Ability 1", + "Ability 2", + "Hidden Ability", + ]; + + private void B_Save_Click(object sender, EventArgs e) + { + SaveEntry(); + SaveData(); + RandSettings.SetFormSettings(this, tabPage2.Controls); + Close(); + } + + private void B_Cancel_Click(object sender, EventArgs e) + { + Close(); + } + + private void LoadData() + { + FieldData = File.ReadAllBytes(FieldPath); + GiftData = new EncounterGift6[count]; + LB_Gifts.Items.Clear(); + for (int i = 0; i < GiftData.Length; i++) + { + GiftData[i] = new EncounterGift6(FieldData.Skip(fieldOffset + (i * fieldSize)).Take(fieldSize).ToArray(), Main.Config.ORAS); + LB_Gifts.Items.Add($"{i:00} - {specieslist[GiftData[i].Species]}"); + } + CB_Ability.Items.AddRange(ability); + + CB_Gender.Items.Clear(); + CB_Gender.Items.Add("- / Genderless/Random"); + CB_Gender.Items.Add("♂ / Male"); + CB_Gender.Items.Add("♀ / Female"); + + loaded = true; + LB_Gifts.SelectedIndex = 0; + } + + private void SaveData() + { + // Check to see if a starter has been modified right before we write data. + bool starters = false; + int[] entries = Main.Config.ORAS + ? + [ + 0, 1, 2, // Gen 3 + 28, 29, 30, // Gen 2 + 31, 32, 33, // Gen 4 + 34, 35, 36, // Gen 5 + ] + : + [ + 0, 1, 2, // Gen 6 + 3, 4, 5, // Gen 1 + ]; + + for (int i = 0; i < GiftData.Length; i++) + { + int offset = fieldOffset + (i * fieldSize); + + // Check too see if starters got modified + if (Array.IndexOf(entries, i) > -1 && BitConverter.ToUInt16(FieldData, offset) != GiftData[i].Species) + starters = true; + + // Write new data + Array.Copy(GiftData[i].Write(), 0, FieldData, offset, fieldSize); + } + + if (starters) // are modified + WinFormsUtil.Alert("Starters have been modified.", "Be sure to update the Starters in DllPoke3Select.cro by updating via the Starter Editor."); + + File.WriteAllBytes(FieldPath, FieldData); + } + + private int entry = -1; + private bool loaded; + + private void ChangeIndex(object sender, EventArgs e) + { + if (LB_Gifts.SelectedIndex < 0) + return; + if (!loaded) + return; + if (entry != -1) + SaveEntry(); + entry = LB_Gifts.SelectedIndex; + LoadEntry(); + } + + private void LoadEntry() + { + bool oldloaded = loaded; + loaded = false; + + CB_Species.SelectedIndex = GiftData[entry].Species; + CB_HeldItem.SelectedIndex = GiftData[entry].HeldItem; + NUD_Level.Value = GiftData[entry].Level; + NUD_Form.Value = GiftData[entry].Form; + CB_Nature.SelectedIndex = GiftData[entry].Nature + 1; + CB_Ability.SelectedIndex = GiftData[entry].Ability + 1; + CB_Gender.SelectedIndex = GiftData[entry].Gender; + CHK_ShinyLock.Checked = GiftData[entry].ShinyLock; + + NUD_IV0.Value = GiftData[entry].IVs[0]; + NUD_IV1.Value = GiftData[entry].IVs[1]; + NUD_IV2.Value = GiftData[entry].IVs[2]; + NUD_IV3.Value = GiftData[entry].IVs[3]; + NUD_IV4.Value = GiftData[entry].IVs[4]; + NUD_IV5.Value = GiftData[entry].IVs[5]; + + if (GiftData[entry].HeldItem < 0) + CB_HeldItem.SelectedIndex = 0; // no item = 0xFFFF, set to 0 (None) + + loaded |= oldloaded; + } + + private void SaveEntry() + { + GiftData[entry].Species = (ushort)CB_Species.SelectedIndex; + GiftData[entry].HeldItem = CB_HeldItem.SelectedIndex; + GiftData[entry].Level = (byte)NUD_Level.Value; + GiftData[entry].Form = (byte)NUD_Form.Value; + GiftData[entry].Nature = (sbyte)(CB_Nature.SelectedIndex - 1); + GiftData[entry].Ability = (sbyte)(CB_Ability.SelectedIndex - 1); + GiftData[entry].Gender = (sbyte)CB_Gender.SelectedIndex; + GiftData[entry].ShinyLock = CHK_ShinyLock.Checked; + + GiftData[entry].IVs[0] = (sbyte)NUD_IV0.Value; + GiftData[entry].IVs[1] = (sbyte)NUD_IV1.Value; + GiftData[entry].IVs[2] = (sbyte)NUD_IV2.Value; + GiftData[entry].IVs[3] = (sbyte)NUD_IV3.Value; + GiftData[entry].IVs[4] = (sbyte)NUD_IV4.Value; + GiftData[entry].IVs[5] = (sbyte)NUD_IV5.Value; + } + + private void B_RandAll_Click(object sender, EventArgs e) + { + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomize all? Cannot undo.", "Double check Randomization settings in the Randomizer Options tab.") != DialogResult.Yes) return; + + var formrand = new FormRandomizer(Main.Config) { AllowMega = false, AllowAlolanForm = false }; + var specrand = new SpeciesRandomizer(Main.Config) + { + G1 = CHK_G1.Checked, + G2 = CHK_G2.Checked, + G3 = CHK_G3.Checked, + G4 = CHK_G4.Checked, + G5 = CHK_G5.Checked, + G6 = CHK_G6.Checked, + G7 = false, + + E = CHK_E.Checked, + L = CHK_L.Checked, + + rBST = CHK_BST.Checked, + }; + specrand.Initialize(); + + // add Legendary/Mythical to final evolutions if checked + if (CHK_L.Checked) FinalEvo = [.. FinalEvo, .. Legendary]; + if (CHK_E.Checked) FinalEvo = [.. FinalEvo, .. Mythical]; + + var helditems = Randomizer.GetRandomItemList(); + for (int i = 0; i < LB_Gifts.Items.Count; i++) + { + LB_Gifts.SelectedIndex = i; + int species = CB_Species.SelectedIndex; + + if (MegaDictionary.Values.Any(z => z.Contains(CB_HeldItem.SelectedIndex))) // Mega Stone Gifts (Lucario, Latias/Latios) + { + if (!CHK_ReplaceMega.Checked) + continue; // skip Lucario, battle needs to Mega Evolve + + int[] items = GetRandomMega(out species); + CB_HeldItem.SelectedIndex = items[Util.Rand.Next(0, items.Length)]; + } + else + { + species = specrand.GetRandomSpecies(species); + if (CHK_Item.Checked) + CB_HeldItem.SelectedIndex = helditems[Util.Random32() % helditems.Length]; + } + + if (CHK_AllowMega.Checked) + formrand.AllowMega = true; + + if (CHK_RemoveShinyLock.Checked) + CHK_ShinyLock.Checked = false; + + if (CHK_Level.Checked) + NUD_Level.Value = Randomizer.GetModifiedLevel((int)NUD_Level.Value, NUD_LevelBoost.Value); + + if (CHK_RandomAbility.Checked) + CB_Ability.SelectedIndex = (Util.Rand.Next(1, 4)); // 1, 2 , or H + + if (CHK_ForceFullyEvolved.Checked && NUD_Level.Value >= NUD_ForceFullyEvolved.Value && !FinalEvo.Contains(species)) + { + static int randFinalEvo() => (int)(Util.Random32() % FinalEvo.Length); + species = FinalEvo[randFinalEvo()]; + } + + CB_Species.SelectedIndex = species; + NUD_Form.Value = formrand.GetRandomForme(species); + CB_Gender.SelectedIndex = 0; // random + CB_Nature.SelectedIndex = 0; // random + NUD_IV0.Value = NUD_IV1.Value = NUD_IV2.Value = NUD_IV3.Value = NUD_IV4.Value = NUD_IV5.Value = -1; // random + + if (MegaDictionary.Values.Any(z => z.Contains(CB_HeldItem.SelectedIndex)) && NUD_Form.Value != 0) + NUD_Form.Value = 0; // don't allow mega gifts to be form 1 + } + WinFormsUtil.Alert("Randomized all Gift Pokémon according to specification!"); + } + + private int[] GetRandomMega(out int species) + { + int rnd = Util.Rand.Next(0, MegaDictionary.Count - 1); + species = MegaDictionary.Keys.ElementAt(rnd); + return MegaDictionary.Values.ElementAt(rnd); + } + + private static readonly Dictionary MegaDictionaryXY = new() + { + {003, [659] }, // Venusaur @ Venusaurite + {006, [660, 678] }, // Charizard @ Charizardite X/Y + {009, [661] }, // Blastoise @ Blastoisinite + {065, [679] }, // Alakazam @ Alakazite + {094, [656] }, // Gengar @ Gengarite + {115, [675] }, // Kangaskhan @ Kangaskhanite + {127, [671] }, // Pinsir @ Pinsirite + {130, [676] }, // Gyarados @ Gyaradosite + {142, [672] }, // Aerodactyl @ Aerodactylite + {150, [662, 663] }, // Mewtwo @ Mewtwonite X/Y + {181, [658] }, // Ampharos @ Ampharosite + {212, [670] }, // Scizor @ Scizorite + {214, [680] }, // Heracross @ Heracronite + {229, [666] }, // Houndoom @ Houndoominite + {248, [669] }, // Tyranitar @ Tyranitarite + {257, [664] }, // Blaziken @ Blazikenite + {282, [657] }, // Gardevoir @ Gardevoirite + {303, [681] }, // Mawile @ Mawilite + {306, [667] }, // Aggron @ Aggronite + {308, [665] }, // Medicham @ Medichamite + {310, [682] }, // Manectric @ Manectite + {354, [668] }, // Banette @ Banettite + {359, [677] }, // Absol @ Absolite + {380, [684] }, // Latias @ Latiasite + {381, [685] }, // Latios @ Latiosite + {445, [683] }, // Garchomp @ Garchompite + {448, [673] }, // Lucario @ Lucarionite + {460, [674] }, // Abomasnow @ Abomasite + }; + + private static readonly Dictionary MegaDictionaryAO = new() + { + {015, [770] }, // Beedrill @ Beedrillite + {018, [762] }, // Pidgeot @ Pidgeotite + {080, [760] }, // Slowbro @ Slowbronite + {208, [761] }, // Steelix @ Steelixite + {254, [753] }, // Sceptile @ Sceptilite + {260, [752] }, // Swampert @ Swampertite + {302, [754] }, // Sableye @ Sablenite + {319, [759] }, // Sharpedo @ Sharpedonite + {323, [767] }, // Camerupt @ Cameruptite + {334, [755] }, // Altaria @ Altarianite + {362, [763] }, // Glalie @ Glalitite + {373, [769] }, // Salamence @ Salamencite + {376, [758] }, // Metagross @ Metagrossite + {428, [768] }, // Lopunny @ Lopunnite + {475, [756] }, // Gallade @ Galladite + {531, [757] }, // Audino @ Audinite + {719, [764] }, // Diancie @ Diancite + }; + + private void ChangeSpecies(object sender, EventArgs e) + { + int index = LB_Gifts.SelectedIndex; + LB_Gifts.Items[index] = index.ToString("00") + " - " + CB_Species.Text; + } + + private void ModifyLevels(object sender, EventArgs e) + { + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Modify all current Levels?", "Cannot undo.") != DialogResult.Yes) return; + + for (int i = 0; i < LB_Gifts.Items.Count; i++) + { + LB_Gifts.SelectedIndex = i; + NUD_Level.Value = Randomizer.GetModifiedLevel((int)NUD_Level.Value, NUD_LevelBoost.Value); + } + WinFormsUtil.Alert("Modified all Levels according to specification!"); + } +} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/GiftEditor6.resx b/pk3DS.WinForms/Subforms/Gen6/GiftEditor6.resx similarity index 100% rename from pk3DS/Subforms/Gen6/GiftEditor6.resx rename to pk3DS.WinForms/Subforms/Gen6/GiftEditor6.resx diff --git a/pk3DS.WinForms/Subforms/Gen6/ItemEditor6.Designer.cs b/pk3DS.WinForms/Subforms/Gen6/ItemEditor6.Designer.cs new file mode 100644 index 0000000000..bcabeb336d --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/ItemEditor6.Designer.cs @@ -0,0 +1,132 @@ +namespace pk3DS.WinForms; + +partial class ItemEditor6 +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.Grid = new System.Windows.Forms.PropertyGrid(); + this.L_Index = new System.Windows.Forms.Label(); + this.RTB = new System.Windows.Forms.RichTextBox(); + this.L_Item = new System.Windows.Forms.Label(); + this.CB_Item = new System.Windows.Forms.ComboBox(); + this.B_Table = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // Grid + // + this.Grid.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.Grid.LineColor = System.Drawing.SystemColors.ControlDark; + this.Grid.Location = new System.Drawing.Point(12, 94); + this.Grid.Name = "Grid"; + this.Grid.Size = new System.Drawing.Size(316, 280); + this.Grid.TabIndex = 52; + // + // L_Index + // + this.L_Index.AutoSize = true; + this.L_Index.Location = new System.Drawing.Point(221, 14); + this.L_Index.Name = "L_Index"; + this.L_Index.Size = new System.Drawing.Size(39, 13); + this.L_Index.TabIndex = 51; + this.L_Index.Text = "Index: "; + // + // RTB + // + this.RTB.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.RTB.Location = new System.Drawing.Point(11, 37); + this.RTB.Name = "RTB"; + this.RTB.ReadOnly = true; + this.RTB.Size = new System.Drawing.Size(316, 51); + this.RTB.TabIndex = 50; + this.RTB.Text = ""; + // + // L_Item + // + this.L_Item.Location = new System.Drawing.Point(12, 10); + this.L_Item.Name = "L_Item"; + this.L_Item.Size = new System.Drawing.Size(51, 21); + this.L_Item.TabIndex = 49; + this.L_Item.Text = "Item:"; + this.L_Item.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_Item + // + this.CB_Item.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_Item.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Item.DropDownWidth = 120; + this.CB_Item.FormattingEnabled = true; + this.CB_Item.Location = new System.Drawing.Point(71, 10); + this.CB_Item.Name = "CB_Item"; + this.CB_Item.Size = new System.Drawing.Size(144, 21); + this.CB_Item.TabIndex = 48; + this.CB_Item.SelectedIndexChanged += new System.EventHandler(this.ChangeEntry); + // + // B_Table + // + this.B_Table.Location = new System.Drawing.Point(253, 94); + this.B_Table.Name = "B_Table"; + this.B_Table.Size = new System.Drawing.Size(75, 23); + this.B_Table.TabIndex = 53; + this.B_Table.Text = "Export Table"; + this.B_Table.UseVisualStyleBackColor = true; + this.B_Table.Click += new System.EventHandler(this.B_Table_Click); + // + // ItemEditor6 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(339, 381); + this.Controls.Add(this.B_Table); + this.Controls.Add(this.Grid); + this.Controls.Add(this.L_Index); + this.Controls.Add(this.RTB); + this.Controls.Add(this.L_Item); + this.Controls.Add(this.CB_Item); + this.MaximizeBox = false; + this.MaximumSize = new System.Drawing.Size(355, 1000); + this.MinimumSize = new System.Drawing.Size(355, 420); + this.Name = "ItemEditor6"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Item Editor"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.IsFormClosing); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.PropertyGrid Grid; + private System.Windows.Forms.Label L_Index; + private System.Windows.Forms.RichTextBox RTB; + private System.Windows.Forms.Label L_Item; + private System.Windows.Forms.ComboBox CB_Item; + private System.Windows.Forms.Button B_Table; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen6/ItemEditor6.cs b/pk3DS.WinForms/Subforms/Gen6/ItemEditor6.cs new file mode 100644 index 0000000000..fa43c1fc3a --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/ItemEditor6.cs @@ -0,0 +1,80 @@ +using System; +using System.IO; +using System.Linq; +using System.Windows.Forms; +using pk3DS.Core; +using pk3DS.Core.Structures; + +namespace pk3DS.WinForms; + +public partial class ItemEditor6 : Form +{ + public ItemEditor6(byte[][] infiles) + { + files = infiles; + itemlist[0] = ""; + + InitializeComponent(); + Setup(); + } + + private readonly byte[][] files; + private readonly string[] itemlist = Main.Config.GetText(TextName.ItemNames); + private readonly string[] itemflavor = Main.Config.GetText(TextName.ItemFlavor); + + private void Setup() + { + CB_Item.Items.AddRange(itemlist); + CB_Item.SelectedIndex = 1; + } + + private int entry = -1; + + private void ChangeEntry(object sender, EventArgs e) + { + SetEntry(); + entry = CB_Item.SelectedIndex; + L_Index.Text = "Index: " + entry.ToString("000"); + GetEntry(); + } + + private void GetEntry() + { + if (entry < 1) return; + Grid.SelectedObject = new Item(files[entry]); + + RTB.Text = itemflavor[entry].Replace("\\n", Environment.NewLine); + } + + private void SetEntry() + { + if (entry < 1) return; + files[entry] = ((Item)Grid.SelectedObject).Write(); + } + + private void IsFormClosing(object sender, FormClosingEventArgs e) + { + SetEntry(); + } + + public static int GetItemMapOffset() + { + if (Main.ExeFSPath == null) { WinFormsUtil.Alert("No exeFS code to load."); return -1; } + string[] exefsFiles = Directory.GetFiles(Main.ExeFSPath); + if (!File.Exists(exefsFiles[0]) || !Path.GetFileNameWithoutExtension(exefsFiles[0]).Contains("code")) { WinFormsUtil.Alert("No .code.bin detected."); return -1; } + byte[] data = File.ReadAllBytes(exefsFiles[0]); + + byte[] reference = Main.Config.ORAS + ? [0x92, 0x0A, 0x06, 0x3F, 0x75, 0x02] // ORAS (vanilla @ 47C640) + : [0x92, 0x0A, 0x06, 0x3F, 0x41, 0x02]; // XY (vanilla @ 43DB74) + + return Util.IndexOfBytes(data, reference, 0x400000, 0) - 2 + reference.Length; + } + + private void B_Table_Click(object sender, EventArgs e) + { + var items = files.Select(z => new Item(z)); + Clipboard.SetText(TableUtil.GetTable(items, itemlist)); + System.Media.SystemSounds.Asterisk.Play(); + } +} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/ItemEditor6.resx b/pk3DS.WinForms/Subforms/Gen6/ItemEditor6.resx similarity index 100% rename from pk3DS/Subforms/Gen6/ItemEditor6.resx rename to pk3DS.WinForms/Subforms/Gen6/ItemEditor6.resx diff --git a/pk3DS.WinForms/Subforms/Gen6/LevelUpEditor6.Designer.cs b/pk3DS.WinForms/Subforms/Gen6/LevelUpEditor6.Designer.cs new file mode 100644 index 0000000000..a4a65009c8 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/LevelUpEditor6.Designer.cs @@ -0,0 +1,367 @@ +namespace pk3DS.WinForms; + +partial class LevelUpEditor6 +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.dgv = new System.Windows.Forms.DataGridView(); + this.CB_Species = new System.Windows.Forms.ComboBox(); + this.L_Species = new System.Windows.Forms.Label(); + this.B_RandAll = new System.Windows.Forms.Button(); + this.B_Dump = new System.Windows.Forms.Button(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.CHK_NoFixedDamage = new System.Windows.Forms.CheckBox(); + this.CHK_4MovesLvl1 = new System.Windows.Forms.CheckBox(); + this.L_Moves = new System.Windows.Forms.Label(); + this.NUD_Moves = new System.Windows.Forms.NumericUpDown(); + this.CHK_Expand = new System.Windows.Forms.CheckBox(); + this.L_Scale2 = new System.Windows.Forms.Label(); + this.NUD_Level = new System.Windows.Forms.NumericUpDown(); + this.L_Scale1 = new System.Windows.Forms.Label(); + this.CHK_Spread = new System.Windows.Forms.CheckBox(); + this.L_STAB = new System.Windows.Forms.Label(); + this.NUD_STAB = new System.Windows.Forms.NumericUpDown(); + this.CHK_STAB = new System.Windows.Forms.CheckBox(); + this.CHK_HMs = new System.Windows.Forms.CheckBox(); + this.PB_MonSprite = new System.Windows.Forms.PictureBox(); + this.B_Metronome = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.dgv)).BeginInit(); + this.groupBox1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Moves)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Level)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_STAB)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_MonSprite)).BeginInit(); + this.SuspendLayout(); + // + // dgv + // + this.dgv.AllowUserToResizeColumns = false; + this.dgv.AllowUserToResizeRows = false; + this.dgv.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dgv.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgv.Location = new System.Drawing.Point(4, 41); + this.dgv.Name = "dgv"; + this.dgv.Size = new System.Drawing.Size(282, 359); + this.dgv.TabIndex = 0; + // + // CB_Species + // + this.CB_Species.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Species.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Species.FormattingEnabled = true; + this.CB_Species.Location = new System.Drawing.Point(58, 12); + this.CB_Species.Name = "CB_Species"; + this.CB_Species.Size = new System.Drawing.Size(121, 21); + this.CB_Species.TabIndex = 1; + this.CB_Species.SelectedIndexChanged += new System.EventHandler(this.ChangeEntry); + // + // L_Species + // + this.L_Species.AutoSize = true; + this.L_Species.Location = new System.Drawing.Point(4, 15); + this.L_Species.Name = "L_Species"; + this.L_Species.Size = new System.Drawing.Size(48, 13); + this.L_Species.TabIndex = 2; + this.L_Species.Text = "Species:"; + // + // B_RandAll + // + this.B_RandAll.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.B_RandAll.Location = new System.Drawing.Point(292, 10); + this.B_RandAll.Name = "B_RandAll"; + this.B_RandAll.Size = new System.Drawing.Size(103, 23); + this.B_RandAll.TabIndex = 4; + this.B_RandAll.Text = "Randomize!"; + this.B_RandAll.UseVisualStyleBackColor = true; + this.B_RandAll.Click += new System.EventHandler(this.B_RandAll_Click); + // + // B_Dump + // + this.B_Dump.Location = new System.Drawing.Point(240, 10); + this.B_Dump.Name = "B_Dump"; + this.B_Dump.Size = new System.Drawing.Size(46, 23); + this.B_Dump.TabIndex = 5; + this.B_Dump.Text = "Dump"; + this.B_Dump.UseVisualStyleBackColor = true; + this.B_Dump.Click += new System.EventHandler(this.B_Dump_Click); + // + // groupBox1 + // + this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupBox1.Controls.Add(this.CHK_NoFixedDamage); + this.groupBox1.Controls.Add(this.CHK_4MovesLvl1); + this.groupBox1.Controls.Add(this.L_Moves); + this.groupBox1.Controls.Add(this.NUD_Moves); + this.groupBox1.Controls.Add(this.CHK_Expand); + this.groupBox1.Controls.Add(this.L_Scale2); + this.groupBox1.Controls.Add(this.NUD_Level); + this.groupBox1.Controls.Add(this.L_Scale1); + this.groupBox1.Controls.Add(this.CHK_Spread); + this.groupBox1.Controls.Add(this.L_STAB); + this.groupBox1.Controls.Add(this.NUD_STAB); + this.groupBox1.Controls.Add(this.CHK_STAB); + this.groupBox1.Controls.Add(this.CHK_HMs); + this.groupBox1.Location = new System.Drawing.Point(296, 65); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(95, 343); + this.groupBox1.TabIndex = 6; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Options"; + // + // CHK_NoFixedDamage + // + this.CHK_NoFixedDamage.AutoSize = true; + this.CHK_NoFixedDamage.Checked = true; + this.CHK_NoFixedDamage.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_NoFixedDamage.Location = new System.Drawing.Point(5, 271); + this.CHK_NoFixedDamage.Name = "CHK_NoFixedDamage"; + this.CHK_NoFixedDamage.Size = new System.Drawing.Size(95, 69); + this.CHK_NoFixedDamage.TabIndex = 14; + this.CHK_NoFixedDamage.Text = "No Fixed\nDamage\nMoves\n(Dragon Rage\n+ Sonic Boom)"; + this.CHK_NoFixedDamage.UseVisualStyleBackColor = true; + // + // CHK_4MovesLvl1 + // + this.CHK_4MovesLvl1.AutoSize = true; + this.CHK_4MovesLvl1.Location = new System.Drawing.Point(5, 159); + this.CHK_4MovesLvl1.Name = "CHK_4MovesLvl1"; + this.CHK_4MovesLvl1.Size = new System.Drawing.Size(70, 30); + this.CHK_4MovesLvl1.TabIndex = 11; + this.CHK_4MovesLvl1.Text = "Start with\n4 Moves"; + this.CHK_4MovesLvl1.UseVisualStyleBackColor = true; + // + // L_Moves + // + this.L_Moves.AutoSize = true; + this.L_Moves.Location = new System.Drawing.Point(10, 130); + this.L_Moves.Name = "L_Moves"; + this.L_Moves.Size = new System.Drawing.Size(42, 13); + this.L_Moves.TabIndex = 10; + this.L_Moves.Text = "Moves:"; + // + // NUD_Moves + // + this.NUD_Moves.Enabled = false; + this.NUD_Moves.Location = new System.Drawing.Point(53, 128); + this.NUD_Moves.Maximum = new decimal(new int[] { + 25, + 0, + 0, + 0}); + this.NUD_Moves.Minimum = new decimal(new int[] { + 25, + 0, + 0, + 0}); + this.NUD_Moves.Name = "NUD_Moves"; + this.NUD_Moves.Size = new System.Drawing.Size(36, 20); + this.NUD_Moves.TabIndex = 9; + this.NUD_Moves.Value = new decimal(new int[] { + 25, + 0, + 0, + 0}); + // + // CHK_Expand + // + this.CHK_Expand.AutoSize = true; + this.CHK_Expand.Location = new System.Drawing.Point(5, 110); + this.CHK_Expand.Name = "CHK_Expand"; + this.CHK_Expand.Size = new System.Drawing.Size(86, 17); + this.CHK_Expand.TabIndex = 8; + this.CHK_Expand.Text = "Expand Pool"; + this.CHK_Expand.UseVisualStyleBackColor = true; + // + // L_Scale2 + // + this.L_Scale2.AutoSize = true; + this.L_Scale2.Location = new System.Drawing.Point(2, 242); + this.L_Scale2.Name = "L_Scale2"; + this.L_Scale2.Size = new System.Drawing.Size(50, 13); + this.L_Scale2.TabIndex = 7; + this.L_Scale2.Text = "@ Level:"; + // + // NUD_Level + // + this.NUD_Level.Location = new System.Drawing.Point(54, 240); + this.NUD_Level.Minimum = new decimal(new int[] { + 16, + 0, + 0, + 0}); + this.NUD_Level.Name = "NUD_Level"; + this.NUD_Level.Size = new System.Drawing.Size(36, 20); + this.NUD_Level.TabIndex = 6; + this.NUD_Level.Value = new decimal(new int[] { + 75, + 0, + 0, + 0}); + // + // L_Scale1 + // + this.L_Scale1.AutoSize = true; + this.L_Scale1.Location = new System.Drawing.Point(5, 224); + this.L_Scale1.Name = "L_Scale1"; + this.L_Scale1.Size = new System.Drawing.Size(73, 13); + this.L_Scale1.TabIndex = 5; + this.L_Scale1.Text = "Stop Learning"; + // + // CHK_Spread + // + this.CHK_Spread.AutoSize = true; + this.CHK_Spread.Location = new System.Drawing.Point(5, 204); + this.CHK_Spread.Name = "CHK_Spread"; + this.CHK_Spread.Size = new System.Drawing.Size(95, 17); + this.CHK_Spread.TabIndex = 4; + this.CHK_Spread.Text = "Spread Evenly"; + this.CHK_Spread.UseVisualStyleBackColor = true; + // + // L_STAB + // + this.L_STAB.AutoSize = true; + this.L_STAB.Location = new System.Drawing.Point(6, 74); + this.L_STAB.Name = "L_STAB"; + this.L_STAB.Size = new System.Drawing.Size(46, 13); + this.L_STAB.TabIndex = 3; + this.L_STAB.Text = "% STAB"; + // + // NUD_STAB + // + this.NUD_STAB.Location = new System.Drawing.Point(53, 72); + this.NUD_STAB.Minimum = new decimal(new int[] { + 5, + 0, + 0, + 0}); + this.NUD_STAB.Name = "NUD_STAB"; + this.NUD_STAB.Size = new System.Drawing.Size(36, 20); + this.NUD_STAB.TabIndex = 2; + this.NUD_STAB.Value = new decimal(new int[] { + 52, + 0, + 0, + 0}); + // + // CHK_STAB + // + this.CHK_STAB.AutoSize = true; + this.CHK_STAB.Location = new System.Drawing.Point(5, 54); + this.CHK_STAB.Name = "CHK_STAB"; + this.CHK_STAB.Size = new System.Drawing.Size(87, 17); + this.CHK_STAB.TabIndex = 1; + this.CHK_STAB.Text = "Bias by Type"; + this.CHK_STAB.UseVisualStyleBackColor = true; + this.CHK_STAB.CheckedChanged += new System.EventHandler(this.CHK_TypeBias_CheckedChanged); + // + // CHK_HMs + // + this.CHK_HMs.AutoSize = true; + this.CHK_HMs.Location = new System.Drawing.Point(5, 19); + this.CHK_HMs.Name = "CHK_HMs"; + this.CHK_HMs.Size = new System.Drawing.Size(76, 17); + this.CHK_HMs.TabIndex = 0; + this.CHK_HMs.Text = "Allow HMs"; + this.CHK_HMs.UseVisualStyleBackColor = true; + // + // PB_MonSprite + // + this.PB_MonSprite.Location = new System.Drawing.Point(185, 5); + this.PB_MonSprite.Name = "PB_MonSprite"; + this.PB_MonSprite.Size = new System.Drawing.Size(40, 30); + this.PB_MonSprite.TabIndex = 90; + this.PB_MonSprite.TabStop = false; + // + // B_Metronome + // + this.B_Metronome.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.B_Metronome.Location = new System.Drawing.Point(292, 36); + this.B_Metronome.Name = "B_Metronome"; + this.B_Metronome.Size = new System.Drawing.Size(103, 23); + this.B_Metronome.TabIndex = 91; + this.B_Metronome.Text = "Metronome Mode"; + this.B_Metronome.UseVisualStyleBackColor = true; + this.B_Metronome.Click += new System.EventHandler(this.B_Metronome_Click); + // + // LevelUpEditor6 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(404, 412); + this.Controls.Add(this.B_Metronome); + this.Controls.Add(this.PB_MonSprite); + this.Controls.Add(this.groupBox1); + this.Controls.Add(this.B_Dump); + this.Controls.Add(this.B_RandAll); + this.Controls.Add(this.L_Species); + this.Controls.Add(this.CB_Species); + this.Controls.Add(this.dgv); + this.MaximizeBox = false; + this.MinimumSize = new System.Drawing.Size(322, 450); + this.Name = "LevelUpEditor6"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Level Up Move Editor"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form_Closing); + ((System.ComponentModel.ISupportInitialize)(this.dgv)).EndInit(); + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Moves)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Level)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_STAB)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_MonSprite)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.DataGridView dgv; + private System.Windows.Forms.ComboBox CB_Species; + private System.Windows.Forms.Label L_Species; + private System.Windows.Forms.Button B_RandAll; + private System.Windows.Forms.Button B_Dump; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.CheckBox CHK_STAB; + private System.Windows.Forms.CheckBox CHK_HMs; + private System.Windows.Forms.Label L_STAB; + private System.Windows.Forms.NumericUpDown NUD_STAB; + private System.Windows.Forms.Label L_Scale2; + private System.Windows.Forms.NumericUpDown NUD_Level; + private System.Windows.Forms.Label L_Scale1; + private System.Windows.Forms.CheckBox CHK_Spread; + private System.Windows.Forms.Label L_Moves; + private System.Windows.Forms.NumericUpDown NUD_Moves; + private System.Windows.Forms.CheckBox CHK_Expand; + private System.Windows.Forms.PictureBox PB_MonSprite; + private System.Windows.Forms.CheckBox CHK_4MovesLvl1; + private System.Windows.Forms.CheckBox CHK_NoFixedDamage; + private System.Windows.Forms.Button B_Metronome; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen6/LevelUpEditor6.cs b/pk3DS.WinForms/Subforms/Gen6/LevelUpEditor6.cs new file mode 100644 index 0000000000..8d057cfd6e --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/LevelUpEditor6.cs @@ -0,0 +1,247 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Media; +using System.Text; +using System.Windows.Forms; +using pk3DS.Core.Structures; +using pk3DS.Core; +using pk3DS.Core.Randomizers; +using pk3DS.WinForms.Properties; + +namespace pk3DS.WinForms; + +public partial class LevelUpEditor6 : Form +{ + public LevelUpEditor6(byte[][] infiles) + { + InitializeComponent(); + files = infiles; + string[] species = Main.Config.GetText(TextName.SpeciesNames); + string[][] AltForms = Main.Config.Personal.GetFormList(species, Main.Config.MaxSpeciesID); + string[] specieslist = Main.Config.Personal.GetPersonalEntryList(AltForms, species, Main.Config.MaxSpeciesID, out _, out _); + specieslist[0] = movelist[0] = ""; + + string[] sortedspecies = (string[])specieslist.Clone(); + Array.Resize(ref sortedspecies, Main.Config.MaxSpeciesID); Array.Sort(sortedspecies); + SetupDGV(); + + var newlist = new List(); + for (int i = 1; i < Main.Config.MaxSpeciesID; i++) // add all species + newlist.Add(new ComboItem { Text = sortedspecies[i], Value = Array.IndexOf(specieslist, sortedspecies[i]) }); + for (int i = Main.Config.MaxSpeciesID; i < specieslist.Length; i++) // add all forms + newlist.Add(new ComboItem { Text = specieslist[i], Value = i }); + + CB_Species.DisplayMember = "Text"; + CB_Species.ValueMember = "Value"; + CB_Species.DataSource = newlist; + CB_Species.SelectedIndex = 0; + RandSettings.GetFormSettings(this, groupBox1.Controls); + } + + private readonly byte[][] files; + private int entry = -1; + private readonly string[] movelist = Main.Config.GetText(TextName.MoveNames); + private bool dumping; + + private void SetupDGV() + { + string[] sortedmoves = (string[])movelist.Clone(); + Array.Sort(sortedmoves); + var dgvLevel = new DataGridViewTextBoxColumn(); + { + dgvLevel.HeaderText = "Level"; + dgvLevel.DisplayIndex = 0; + dgvLevel.Width = 45; + dgvLevel.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; + } + var dgvMove = new DataGridViewComboBoxColumn(); + { + dgvMove.HeaderText = "Move"; + dgvMove.DisplayIndex = 1; + for (int i = 0; i < movelist.Length; i++) + dgvMove.Items.Add(sortedmoves[i]); // add only the Names + + dgvMove.Width = 135; + dgvMove.FlatStyle = FlatStyle.Flat; + } + dgv.Columns.Add(dgvLevel); + dgv.Columns.Add(dgvMove); + } + + private Learnset6 pkm; + + private void GetList() + { + entry = WinFormsUtil.GetIndex(CB_Species); + + int[] specForm = Main.Config.Personal.GetSpeciesForm(entry, Main.Config); + string filename = "_" + specForm[0] + (entry > 721 ? "_" + (specForm[1] + 1) : ""); + PB_MonSprite.Image = (Bitmap)Resources.ResourceManager.GetObject(filename); + + dgv.Rows.Clear(); + byte[] input = files[entry]; + if (input.Length <= 4) { files[entry] = BitConverter.GetBytes(-1); return; } + pkm = new Learnset6(input); + + dgv.Rows.Add(pkm.Count); + + // Fill Entries + for (int i = 0; i < pkm.Count; i++) + { + dgv.Rows[i].Cells[0].Value = pkm.Levels[i]; + dgv.Rows[i].Cells[1].Value = movelist[pkm.Moves[i]]; + } + + dgv.CancelEdit(); + } + + private void SetList() + { + if (entry < 1 || dumping) return; + List moves = []; + List levels = []; + for (int i = 0; i < dgv.Rows.Count - 1; i++) + { + int move = Array.IndexOf(movelist, dgv.Rows[i].Cells[1].Value); + if (move < 1) continue; + + moves.Add((short)move); + string level = (dgv.Rows[i].Cells[0].Value ?? 0).ToString(); + _ = short.TryParse(level, out var lv); + if (lv > 100) lv = 100; + else if (lv == 0) lv = 1; + levels.Add(lv); + } + pkm.Moves = [.. moves]; + pkm.Levels = [.. levels]; + files[entry] = pkm.Write(); + } + + private void ChangeEntry(object sender, EventArgs e) + { + SetList(); + GetList(); + } + + private void B_RandAll_Click(object sender, EventArgs e) + { + ushort[] HMs = [15, 19, 57, 70, 127, 249, 291]; + if (CHK_HMs.Checked && Main.ExeFSPath != null) + TMHMEditor6.GetTMHMList(out _, out HMs); + + List banned = [165, 621]; // Struggle, Hyperspace Fury + if (!CHK_HMs.Checked) + banned.AddRange(HMs.Select(z => (int)z)); + if (CHK_NoFixedDamage.Checked) + banned.AddRange(MoveRandomizer.FixedDamageMoves); + + SetList(); + var sets = files.Select(z => new Learnset6(z)).ToArray(); + var rand = new LearnsetRandomizer(Main.Config, sets) + { + Expand = CHK_Expand.Checked, + ExpandTo = (int)NUD_Moves.Value, + Spread = CHK_Spread.Checked, + SpreadTo = (int)NUD_Level.Value, + STAB = CHK_STAB.Checked, + STABPercent = NUD_STAB.Value, + STABFirst = CHK_STAB.Checked, + BannedMoves = [.. banned], + Learn4Level1 = CHK_4MovesLvl1.Checked, + }; + rand.Execute(); + sets.Select(z => z.Write()).ToArray().CopyTo(files, 0); + GetList(); + WinFormsUtil.Alert("All Pokémon's Level Up Moves have been randomized!", "Press the Dump button to see the new Level Up Moves!"); + } + + private void B_Metronome_Click(object sender, EventArgs e) + { + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Play using Metronome Mode?", "This will modify learnsets to only have Metronome.") != DialogResult.Yes) return; + + // clear all data, then only assign Metronome at Lv1 + for (int i = 0; i < CB_Species.Items.Count; i++) + { + CB_Species.SelectedIndex = i; + dgv.Rows.Clear(); + dgv.Rows.Add(); + dgv.Rows[0].Cells[0].Value = 1; + dgv.Rows[0].Cells[1].Value = movelist[118]; + } + CB_Species.SelectedIndex = 0; + WinFormsUtil.Alert("All Pokémon now only know the move Metronome!"); + } + + private void B_Dump_Click(object sender, EventArgs e) + { + if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Dump all Level Up Moves to Text File?")) + return; + + dumping = true; + string result = ""; + for (int i = 0; i < CB_Species.Items.Count; i++) + { + CB_Species.SelectedIndex = i; // Get new Species + result += "======" + Environment.NewLine + entry + " " + CB_Species.Text + Environment.NewLine + "======" + Environment.NewLine; + for (int j = 0; j < dgv.Rows.Count - 1; j++) + result += $"{dgv.Rows[j].Cells[0].Value} - {dgv.Rows[j].Cells[1].Value + Environment.NewLine}"; + + result += Environment.NewLine; + } + var sfd = new SaveFileDialog { FileName = "Level Up Moves.txt", Filter = "Text File|*.txt" }; + + SystemSounds.Asterisk.Play(); + if (sfd.ShowDialog() == DialogResult.OK) + { + string path = sfd.FileName; + File.WriteAllText(path, result, Encoding.Unicode); + } + dumping = false; + } + + private void Form_Closing(object sender, FormClosingEventArgs e) + { + SetList(); + RandSettings.SetFormSettings(this, groupBox1.Controls); + } + + private void CHK_TypeBias_CheckedChanged(object sender, EventArgs e) + { + NUD_STAB.Enabled = CHK_STAB.Checked; + NUD_STAB.Value = CHK_STAB.Checked ? 52 : NUD_STAB.Minimum; + } + + public void CalcStats() // Debug Function + { + Move[] MoveData = Main.Config.Moves; + + int movectr = 0; + int max = 0; + int spec = 0; + int stab = 0; + for (int i = 0; i < Main.Config.MaxSpeciesID; i++) + { + byte[] movedata = files[i]; + int movecount = (movedata.Length - 4) / 4; + if (movecount == 65535) + continue; + movectr += movecount; // Average Moves + if (max < movecount) { max = movecount; spec = i; } // Max Moves (and species) + for (int m = 0; m < movedata.Length / 4; m++) + { + int move = BitConverter.ToUInt16(movedata, m * 4); + if (move == 65535) + { + movectr--; + continue; + } + if (Main.Config.Personal[i].Types.Contains(MoveData[move].Type)) + stab++; + } + } + WinFormsUtil.Alert($"Moves Learned: {movectr}\r\nMost Learned: {max} @ {spec}\r\nSTAB Count: {stab}"); + } +} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/LevelUpEditor6.resx b/pk3DS.WinForms/Subforms/Gen6/LevelUpEditor6.resx similarity index 100% rename from pk3DS/Subforms/Gen6/LevelUpEditor6.resx rename to pk3DS.WinForms/Subforms/Gen6/LevelUpEditor6.resx diff --git a/pk3DS.WinForms/Subforms/Gen6/MaisonEditor6.Designer.cs b/pk3DS.WinForms/Subforms/Gen6/MaisonEditor6.Designer.cs new file mode 100644 index 0000000000..cd9f51d91c --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/MaisonEditor6.Designer.cs @@ -0,0 +1,456 @@ +namespace pk3DS.WinForms; + +partial class MaisonEditor6 +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.CB_Trainer = new System.Windows.Forms.ComboBox(); + this.CB_Pokemon = new System.Windows.Forms.ComboBox(); + this.L_Trainer = new System.Windows.Forms.Label(); + this.L_Pokemon = new System.Windows.Forms.Label(); + this.GB_Trainer = new System.Windows.Forms.GroupBox(); + this.L_Class = new System.Windows.Forms.Label(); + this.B_Remove = new System.Windows.Forms.Button(); + this.B_Set = new System.Windows.Forms.Button(); + this.LB_Choices = new System.Windows.Forms.ListBox(); + this.CB_Class = new System.Windows.Forms.ComboBox(); + this.GB_Pokemon = new System.Windows.Forms.GroupBox(); + this.PB_PKM = new System.Windows.Forms.PictureBox(); + this.CHK_Spe = new System.Windows.Forms.CheckBox(); + this.CHK_SpD = new System.Windows.Forms.CheckBox(); + this.CHK_SpA = new System.Windows.Forms.CheckBox(); + this.CHK_DEF = new System.Windows.Forms.CheckBox(); + this.CHK_ATK = new System.Windows.Forms.CheckBox(); + this.CHK_HP = new System.Windows.Forms.CheckBox(); + this.L_Species = new System.Windows.Forms.Label(); + this.L_Item = new System.Windows.Forms.Label(); + this.L_Nature = new System.Windows.Forms.Label(); + this.L_Moves = new System.Windows.Forms.Label(); + this.CB_Item = new System.Windows.Forms.ComboBox(); + this.CB_Nature = new System.Windows.Forms.ComboBox(); + this.CB_Move4 = new System.Windows.Forms.ComboBox(); + this.CB_Move2 = new System.Windows.Forms.ComboBox(); + this.CB_Move3 = new System.Windows.Forms.ComboBox(); + this.CB_Move1 = new System.Windows.Forms.ComboBox(); + this.CB_Species = new System.Windows.Forms.ComboBox(); + this.B_DumpPKs = new System.Windows.Forms.Button(); + this.DumpTRs = new System.Windows.Forms.Button(); + this.GB_Trainer.SuspendLayout(); + this.GB_Pokemon.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.PB_PKM)).BeginInit(); + this.SuspendLayout(); + // + // CB_Trainer + // + this.CB_Trainer.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Trainer.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Trainer.FormattingEnabled = true; + this.CB_Trainer.Location = new System.Drawing.Point(67, 8); + this.CB_Trainer.Name = "CB_Trainer"; + this.CB_Trainer.Size = new System.Drawing.Size(121, 21); + this.CB_Trainer.TabIndex = 0; + this.CB_Trainer.SelectedIndexChanged += new System.EventHandler(this.ChangeTrainer); + // + // CB_Pokemon + // + this.CB_Pokemon.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon.FormattingEnabled = true; + this.CB_Pokemon.Location = new System.Drawing.Point(361, 8); + this.CB_Pokemon.Name = "CB_Pokemon"; + this.CB_Pokemon.Size = new System.Drawing.Size(106, 21); + this.CB_Pokemon.TabIndex = 1; + this.CB_Pokemon.SelectedIndexChanged += new System.EventHandler(this.ChangePokemon); + // + // L_Trainer + // + this.L_Trainer.AutoSize = true; + this.L_Trainer.Location = new System.Drawing.Point(18, 11); + this.L_Trainer.Name = "L_Trainer"; + this.L_Trainer.Size = new System.Drawing.Size(43, 13); + this.L_Trainer.TabIndex = 2; + this.L_Trainer.Text = "Trainer:"; + // + // L_Pokemon + // + this.L_Pokemon.AutoSize = true; + this.L_Pokemon.Location = new System.Drawing.Point(300, 11); + this.L_Pokemon.Name = "L_Pokemon"; + this.L_Pokemon.Size = new System.Drawing.Size(55, 13); + this.L_Pokemon.TabIndex = 3; + this.L_Pokemon.Text = "Pokémon:"; + // + // GB_Trainer + // + this.GB_Trainer.Controls.Add(this.L_Class); + this.GB_Trainer.Controls.Add(this.B_Remove); + this.GB_Trainer.Controls.Add(this.B_Set); + this.GB_Trainer.Controls.Add(this.LB_Choices); + this.GB_Trainer.Controls.Add(this.CB_Class); + this.GB_Trainer.Location = new System.Drawing.Point(12, 33); + this.GB_Trainer.Name = "GB_Trainer"; + this.GB_Trainer.Size = new System.Drawing.Size(276, 187); + this.GB_Trainer.TabIndex = 4; + this.GB_Trainer.TabStop = false; + this.GB_Trainer.Text = "Trainer Summary"; + // + // L_Class + // + this.L_Class.AutoSize = true; + this.L_Class.Location = new System.Drawing.Point(14, 23); + this.L_Class.Name = "L_Class"; + this.L_Class.Size = new System.Drawing.Size(35, 13); + this.L_Class.TabIndex = 5; + this.L_Class.Text = "Class:"; + // + // B_Remove + // + this.B_Remove.Location = new System.Drawing.Point(182, 158); + this.B_Remove.Name = "B_Remove"; + this.B_Remove.Size = new System.Drawing.Size(62, 23); + this.B_Remove.TabIndex = 4; + this.B_Remove.Text = "[X] Delete"; + this.B_Remove.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.B_Remove.UseVisualStyleBackColor = true; + this.B_Remove.Click += new System.EventHandler(this.B_Remove_Click); + // + // B_Set + // + this.B_Set.Location = new System.Drawing.Point(182, 47); + this.B_Set.Name = "B_Set"; + this.B_Set.Size = new System.Drawing.Size(62, 23); + this.B_Set.TabIndex = 2; + this.B_Set.Text = "[<] Set"; + this.B_Set.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.B_Set.UseVisualStyleBackColor = true; + this.B_Set.Click += new System.EventHandler(this.B_Set_Click); + // + // LB_Choices + // + this.LB_Choices.FormattingEnabled = true; + this.LB_Choices.Location = new System.Drawing.Point(9, 47); + this.LB_Choices.Name = "LB_Choices"; + this.LB_Choices.Size = new System.Drawing.Size(167, 134); + this.LB_Choices.TabIndex = 1; + this.LB_Choices.SelectedIndexChanged += new System.EventHandler(this.B_View_Click); + // + // CB_Class + // + this.CB_Class.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Class.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Class.FormattingEnabled = true; + this.CB_Class.Location = new System.Drawing.Point(55, 20); + this.CB_Class.Name = "CB_Class"; + this.CB_Class.Size = new System.Drawing.Size(121, 21); + this.CB_Class.TabIndex = 0; + // + // GB_Pokemon + // + this.GB_Pokemon.Controls.Add(this.PB_PKM); + this.GB_Pokemon.Controls.Add(this.CHK_Spe); + this.GB_Pokemon.Controls.Add(this.CHK_SpD); + this.GB_Pokemon.Controls.Add(this.CHK_SpA); + this.GB_Pokemon.Controls.Add(this.CHK_DEF); + this.GB_Pokemon.Controls.Add(this.CHK_ATK); + this.GB_Pokemon.Controls.Add(this.CHK_HP); + this.GB_Pokemon.Controls.Add(this.L_Species); + this.GB_Pokemon.Controls.Add(this.L_Item); + this.GB_Pokemon.Controls.Add(this.L_Nature); + this.GB_Pokemon.Controls.Add(this.L_Moves); + this.GB_Pokemon.Controls.Add(this.CB_Item); + this.GB_Pokemon.Controls.Add(this.CB_Nature); + this.GB_Pokemon.Controls.Add(this.CB_Move4); + this.GB_Pokemon.Controls.Add(this.CB_Move2); + this.GB_Pokemon.Controls.Add(this.CB_Move3); + this.GB_Pokemon.Controls.Add(this.CB_Move1); + this.GB_Pokemon.Controls.Add(this.CB_Species); + this.GB_Pokemon.Location = new System.Drawing.Point(294, 33); + this.GB_Pokemon.Name = "GB_Pokemon"; + this.GB_Pokemon.Size = new System.Drawing.Size(275, 187); + this.GB_Pokemon.TabIndex = 5; + this.GB_Pokemon.TabStop = false; + this.GB_Pokemon.Text = "Pokémon Summary"; + // + // PB_PKM + // + this.PB_PKM.Location = new System.Drawing.Point(179, 15); + this.PB_PKM.Name = "PB_PKM"; + this.PB_PKM.Size = new System.Drawing.Size(40, 30); + this.PB_PKM.TabIndex = 25; + this.PB_PKM.TabStop = false; + // + // CHK_Spe + // + this.CHK_Spe.AutoSize = true; + this.CHK_Spe.Location = new System.Drawing.Point(219, 157); + this.CHK_Spe.Name = "CHK_Spe"; + this.CHK_Spe.Size = new System.Drawing.Size(45, 17); + this.CHK_Spe.TabIndex = 24; + this.CHK_Spe.Text = "Spe"; + this.CHK_Spe.UseVisualStyleBackColor = true; + // + // CHK_SpD + // + this.CHK_SpD.AutoSize = true; + this.CHK_SpD.Location = new System.Drawing.Point(219, 143); + this.CHK_SpD.Name = "CHK_SpD"; + this.CHK_SpD.Size = new System.Drawing.Size(47, 17); + this.CHK_SpD.TabIndex = 23; + this.CHK_SpD.Text = "SpD"; + this.CHK_SpD.UseVisualStyleBackColor = true; + // + // CHK_SpA + // + this.CHK_SpA.AutoSize = true; + this.CHK_SpA.Location = new System.Drawing.Point(219, 129); + this.CHK_SpA.Name = "CHK_SpA"; + this.CHK_SpA.Size = new System.Drawing.Size(46, 17); + this.CHK_SpA.TabIndex = 22; + this.CHK_SpA.Text = "SpA"; + this.CHK_SpA.UseVisualStyleBackColor = true; + // + // CHK_DEF + // + this.CHK_DEF.AutoSize = true; + this.CHK_DEF.Location = new System.Drawing.Point(172, 157); + this.CHK_DEF.Name = "CHK_DEF"; + this.CHK_DEF.Size = new System.Drawing.Size(43, 17); + this.CHK_DEF.TabIndex = 21; + this.CHK_DEF.Text = "Def"; + this.CHK_DEF.UseVisualStyleBackColor = true; + // + // CHK_ATK + // + this.CHK_ATK.AutoSize = true; + this.CHK_ATK.Location = new System.Drawing.Point(172, 143); + this.CHK_ATK.Name = "CHK_ATK"; + this.CHK_ATK.Size = new System.Drawing.Size(42, 17); + this.CHK_ATK.TabIndex = 20; + this.CHK_ATK.Text = "Atk"; + this.CHK_ATK.UseVisualStyleBackColor = true; + // + // CHK_HP + // + this.CHK_HP.AutoSize = true; + this.CHK_HP.Location = new System.Drawing.Point(172, 129); + this.CHK_HP.Name = "CHK_HP"; + this.CHK_HP.Size = new System.Drawing.Size(41, 17); + this.CHK_HP.TabIndex = 19; + this.CHK_HP.Text = "HP"; + this.CHK_HP.UseVisualStyleBackColor = true; + // + // L_Species + // + this.L_Species.AutoSize = true; + this.L_Species.Location = new System.Drawing.Point(13, 23); + this.L_Species.Name = "L_Species"; + this.L_Species.Size = new System.Drawing.Size(48, 13); + this.L_Species.TabIndex = 18; + this.L_Species.Text = "Species:"; + // + // L_Item + // + this.L_Item.AutoSize = true; + this.L_Item.Location = new System.Drawing.Point(29, 159); + this.L_Item.Name = "L_Item"; + this.L_Item.Size = new System.Drawing.Size(30, 13); + this.L_Item.TabIndex = 17; + this.L_Item.Text = "Item:"; + // + // L_Nature + // + this.L_Nature.AutoSize = true; + this.L_Nature.Location = new System.Drawing.Point(17, 132); + this.L_Nature.Name = "L_Nature"; + this.L_Nature.Size = new System.Drawing.Size(42, 13); + this.L_Nature.TabIndex = 16; + this.L_Nature.Text = "Nature:"; + // + // L_Moves + // + this.L_Moves.AutoSize = true; + this.L_Moves.Location = new System.Drawing.Point(13, 48); + this.L_Moves.Name = "L_Moves"; + this.L_Moves.Size = new System.Drawing.Size(42, 13); + this.L_Moves.TabIndex = 15; + this.L_Moves.Text = "Moves:"; + // + // CB_Item + // + this.CB_Item.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Item.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Item.FormattingEnabled = true; + this.CB_Item.Location = new System.Drawing.Point(65, 156); + this.CB_Item.Name = "CB_Item"; + this.CB_Item.Size = new System.Drawing.Size(101, 21); + this.CB_Item.TabIndex = 14; + // + // CB_Nature + // + this.CB_Nature.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Nature.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Nature.FormattingEnabled = true; + this.CB_Nature.Location = new System.Drawing.Point(65, 129); + this.CB_Nature.Name = "CB_Nature"; + this.CB_Nature.Size = new System.Drawing.Size(101, 21); + this.CB_Nature.TabIndex = 13; + // + // CB_Move4 + // + this.CB_Move4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Move4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Move4.FormattingEnabled = true; + this.CB_Move4.Location = new System.Drawing.Point(140, 91); + this.CB_Move4.Name = "CB_Move4"; + this.CB_Move4.Size = new System.Drawing.Size(121, 21); + this.CB_Move4.TabIndex = 12; + // + // CB_Move2 + // + this.CB_Move2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Move2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Move2.FormattingEnabled = true; + this.CB_Move2.Location = new System.Drawing.Point(140, 64); + this.CB_Move2.Name = "CB_Move2"; + this.CB_Move2.Size = new System.Drawing.Size(121, 21); + this.CB_Move2.TabIndex = 11; + // + // CB_Move3 + // + this.CB_Move3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Move3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Move3.FormattingEnabled = true; + this.CB_Move3.Location = new System.Drawing.Point(13, 91); + this.CB_Move3.Name = "CB_Move3"; + this.CB_Move3.Size = new System.Drawing.Size(121, 21); + this.CB_Move3.TabIndex = 10; + // + // CB_Move1 + // + this.CB_Move1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Move1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Move1.FormattingEnabled = true; + this.CB_Move1.Location = new System.Drawing.Point(13, 64); + this.CB_Move1.Name = "CB_Move1"; + this.CB_Move1.Size = new System.Drawing.Size(121, 21); + this.CB_Move1.TabIndex = 9; + // + // CB_Species + // + this.CB_Species.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Species.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Species.FormattingEnabled = true; + this.CB_Species.Location = new System.Drawing.Point(67, 20); + this.CB_Species.Name = "CB_Species"; + this.CB_Species.Size = new System.Drawing.Size(106, 21); + this.CB_Species.TabIndex = 8; + this.CB_Species.SelectedIndexChanged += new System.EventHandler(this.ChangeSpecies); + // + // B_DumpPKs + // + this.B_DumpPKs.Location = new System.Drawing.Point(494, 7); + this.B_DumpPKs.Name = "B_DumpPKs"; + this.B_DumpPKs.Size = new System.Drawing.Size(75, 23); + this.B_DumpPKs.TabIndex = 6; + this.B_DumpPKs.Text = "Dump PKMs"; + this.B_DumpPKs.UseVisualStyleBackColor = true; + this.B_DumpPKs.Click += new System.EventHandler(this.B_DumpPKs_Click); + // + // DumpTRs + // + this.DumpTRs.Location = new System.Drawing.Point(213, 6); + this.DumpTRs.Name = "DumpTRs"; + this.DumpTRs.Size = new System.Drawing.Size(75, 23); + this.DumpTRs.TabIndex = 7; + this.DumpTRs.Text = "Dump TRs"; + this.DumpTRs.UseVisualStyleBackColor = true; + this.DumpTRs.Click += new System.EventHandler(this.DumpTRs_Click); + // + // MaisonEditor6 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(579, 226); + this.Controls.Add(this.DumpTRs); + this.Controls.Add(this.B_DumpPKs); + this.Controls.Add(this.GB_Pokemon); + this.Controls.Add(this.GB_Trainer); + this.Controls.Add(this.L_Pokemon); + this.Controls.Add(this.L_Trainer); + this.Controls.Add(this.CB_Pokemon); + this.Controls.Add(this.CB_Trainer); + this.MaximizeBox = false; + this.MaximumSize = new System.Drawing.Size(595, 265); + this.MinimumSize = new System.Drawing.Size(595, 265); + this.Name = "MaisonEditor6"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Maison Editor"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form_Closing); + this.GB_Trainer.ResumeLayout(false); + this.GB_Trainer.PerformLayout(); + this.GB_Pokemon.ResumeLayout(false); + this.GB_Pokemon.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.PB_PKM)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.ComboBox CB_Trainer; + private System.Windows.Forms.ComboBox CB_Pokemon; + private System.Windows.Forms.Label L_Trainer; + private System.Windows.Forms.Label L_Pokemon; + private System.Windows.Forms.GroupBox GB_Trainer; + private System.Windows.Forms.GroupBox GB_Pokemon; + private System.Windows.Forms.Button B_DumpPKs; + private System.Windows.Forms.Button DumpTRs; + private System.Windows.Forms.Label L_Item; + private System.Windows.Forms.Label L_Nature; + private System.Windows.Forms.Label L_Moves; + private System.Windows.Forms.ComboBox CB_Item; + private System.Windows.Forms.ComboBox CB_Nature; + private System.Windows.Forms.ComboBox CB_Move4; + private System.Windows.Forms.ComboBox CB_Move2; + private System.Windows.Forms.ComboBox CB_Move3; + private System.Windows.Forms.ComboBox CB_Move1; + private System.Windows.Forms.ComboBox CB_Species; + private System.Windows.Forms.Label L_Species; + private System.Windows.Forms.CheckBox CHK_Spe; + private System.Windows.Forms.CheckBox CHK_SpD; + private System.Windows.Forms.CheckBox CHK_SpA; + private System.Windows.Forms.CheckBox CHK_DEF; + private System.Windows.Forms.CheckBox CHK_ATK; + private System.Windows.Forms.CheckBox CHK_HP; + private System.Windows.Forms.PictureBox PB_PKM; + private System.Windows.Forms.Label L_Class; + private System.Windows.Forms.Button B_Remove; + private System.Windows.Forms.Button B_Set; + private System.Windows.Forms.ListBox LB_Choices; + private System.Windows.Forms.ComboBox CB_Class; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen6/MaisonEditor6.cs b/pk3DS.WinForms/Subforms/Gen6/MaisonEditor6.cs new file mode 100644 index 0000000000..49d9dadc33 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/MaisonEditor6.cs @@ -0,0 +1,266 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Media; +using System.Text; +using System.Windows.Forms; + +using pk3DS.Core; +using pk3DS.Core.Structures; + +namespace pk3DS.WinForms; + +public partial class MaisonEditor6 : Form +{ + public MaisonEditor6(byte[][] trd, byte[][] trp, bool super) + { + trFiles = trd; + pkFiles = trp; + Array.Resize(ref specieslist, Main.Config.MaxSpeciesID + 1); + movelist[0] = specieslist[0] = itemlist[0] = ""; + + trNames = Main.Config.GetText(super ? TextName.SuperTrainerNames : TextName.MaisonTrainerNames); Array.Resize(ref trNames, trFiles.Length); + + InitializeComponent(); + Setup(); + } + + private readonly byte[][] trFiles; + private readonly string[] trNames; + private readonly byte[][] pkFiles; + private readonly string[] natures = Main.Config.GetText(TextName.Natures); + private readonly string[] movelist = Main.Config.GetText(TextName.MoveNames); + private readonly string[] specieslist = Main.Config.GetText(TextName.SpeciesNames); + private readonly string[] trClass = Main.Config.GetText(TextName.TrainerClasses); + private readonly string[] itemlist = Main.Config.GetText(TextName.ItemNames); + private int trEntry = -1; + private int pkEntry = -1; + private bool dumping; + + private void Setup() + { + CB_Class.Items.AddRange(trClass); + CB_Species.Items.AddRange(specieslist); + CB_Move1.Items.AddRange(movelist); + CB_Move2.Items.AddRange(movelist); + CB_Move3.Items.AddRange(movelist); + CB_Move4.Items.AddRange(movelist); + CB_Nature.Items.AddRange(natures); + CB_Item.Items.AddRange(itemlist); + foreach (string s in trNames) CB_Trainer.Items.Add(s ?? "UNKNOWN"); + for (int i = 0; i < pkFiles.Length; i++) CB_Pokemon.Items.Add(i.ToString()); + + CB_Trainer.SelectedIndex = 1; + } + + private void ChangeTrainer(object sender, EventArgs e) + { + SetTrainer(); + trEntry = CB_Trainer.SelectedIndex; + GetTrainer(); + if (GB_Trainer.Enabled) + LB_Choices.SelectedIndex = 0; + } + + private void ChangePokemon(object sender, EventArgs e) + { + SetPokemon(); + pkEntry = CB_Pokemon.SelectedIndex; + GetPokemon(); + } + + private void GetTrainer() + { + if (trEntry < 0) return; + + // Get + LB_Choices.Items.Clear(); + var tr = new Maison6.Trainer(trFiles[trEntry]); + + CB_Class.SelectedIndex = tr.Class; + GB_Trainer.Enabled = tr.Count > 0; + + foreach (ushort Entry in tr.Choices) + LB_Choices.Items.Add(Entry.ToString()); + } + + private void SetTrainer() + { + if (trEntry < 0 || !GB_Trainer.Enabled || dumping) return; + // Gather + var tr = new Maison6.Trainer + { + Class = (ushort)CB_Class.SelectedIndex, + Count = (ushort)LB_Choices.Items.Count, + }; + tr.Choices = new ushort[tr.Count]; + for (int i = 0; i < tr.Count; i++) + tr.Choices[i] = Convert.ToUInt16(LB_Choices.Items[i].ToString()); + Array.Sort(tr.Choices); + trFiles[trEntry] = tr.Write(); + } + + private void GetPokemon() + { + if (pkEntry < 0 || dumping) return; + var pkm = new Maison6.Pokemon(pkFiles[pkEntry]); + + // Get + CB_Move1.SelectedIndex = pkm.Moves[0]; + CB_Move2.SelectedIndex = pkm.Moves[1]; + CB_Move3.SelectedIndex = pkm.Moves[2]; + CB_Move4.SelectedIndex = pkm.Moves[3]; + CHK_HP.Checked = pkm.HP; + CHK_ATK.Checked = pkm.ATK; + CHK_DEF.Checked = pkm.DEF; + CHK_Spe.Checked = pkm.SPE; + CHK_SpA.Checked = pkm.SPA; + CHK_SpD.Checked = pkm.SPD; + CB_Nature.SelectedIndex = pkm.Nature; + CB_Item.SelectedIndex = pkm.Item; + + CB_Species.SelectedIndex = pkm.Species; // Loaded last in order to refresh the sprite with all info. + // Last 2 Bytes are unused. + } + + private void SetPokemon() + { + if (pkEntry < 0 || dumping) return; + + // Each File is 16 Bytes. + var pkm = new Maison6.Pokemon(pkFiles[pkEntry]) + { + Species = (ushort)CB_Species.SelectedIndex, + HP = CHK_HP.Checked, + ATK = CHK_ATK.Checked, + DEF = CHK_DEF.Checked, + SPE = CHK_Spe.Checked, + SPA = CHK_SpA.Checked, + SPD = CHK_SpD.Checked, + Nature = (byte)CB_Nature.SelectedIndex, + Item = (ushort)CB_Item.SelectedIndex, + Moves = + { + [0] = (ushort) CB_Move1.SelectedIndex, + [1] = (ushort) CB_Move2.SelectedIndex, + [2] = (ushort) CB_Move3.SelectedIndex, + [3] = (ushort) CB_Move4.SelectedIndex, + }, + }; + + byte[] data = pkm.Write(); + pkFiles[pkEntry] = data; + } + + private void ChangeSpecies(object sender, EventArgs e) + { + PB_PKM.Image = WinFormsUtil.GetSprite(CB_Species.SelectedIndex, 0, 0, CB_Item.SelectedIndex, Main.Config); + } + + private void B_Remove_Click(object sender, EventArgs e) + { + if (LB_Choices.SelectedIndex > -1 && GB_Trainer.Enabled) + LB_Choices.Items.RemoveAt(LB_Choices.SelectedIndex); + } + + private void B_Set_Click(object sender, EventArgs e) + { + if (LB_Choices.SelectedIndex <= -1 || !GB_Trainer.Enabled) return; + + int toAdd = CB_Pokemon.SelectedIndex; + int count = LB_Choices.Items.Count; + List choices = []; + for (int i = 0; i < count; i++) + choices.Add(Convert.ToUInt16(LB_Choices.Items[i].ToString())); + + if (Array.IndexOf(choices.ToArray(), toAdd) > 0) return; // Abort if already in the list + choices.Add((ushort)toAdd); // Add it to the list. + + // Get new list, and sort it. + ushort[] choiceList = [.. choices]; Array.Sort(choiceList); + + // Set new list. + LB_Choices.Items.Clear(); + foreach (ushort t in choiceList) + LB_Choices.Items.Add(t.ToString()); + + // Set current index to the one just added. + LB_Choices.SelectedIndex = Array.IndexOf(choiceList, toAdd); + } + + private void B_View_Click(object sender, EventArgs e) + { + if (LB_Choices.SelectedIndex > -1 && GB_Trainer.Enabled) + CB_Pokemon.SelectedIndex = Convert.ToUInt16(LB_Choices.Items[LB_Choices.SelectedIndex].ToString()); + } + + private void Form_Closing(object sender, FormClosingEventArgs e) + { + SetTrainer(); + SetPokemon(); + } + + private void DumpTRs_Click(object sender, EventArgs e) + { + dumping = true; + string result = ""; + for (int i = 0; i < CB_Trainer.Items.Count; i++) + { + CB_Trainer.SelectedIndex = i; + int count = LB_Choices.Items.Count; + if (count > 0) + { + result += "======" + Environment.NewLine + i + " - (" + CB_Class.Text + ") " + CB_Trainer.Text + Environment.NewLine + "======" + Environment.NewLine; + result += "Choices: "; + for (int c = 0; c < count; c++) + result += LB_Choices.Items[c] + ", "; + + result += Environment.NewLine; result += Environment.NewLine; + } + } + var sfd = new SaveFileDialog { FileName = "Maison Trainers.txt", Filter = "Text File|*.txt" }; + + SystemSounds.Asterisk.Play(); + if (sfd.ShowDialog() == DialogResult.OK) + { + string path = sfd.FileName; + File.WriteAllText(path, result, Encoding.Unicode); + } + dumping = false; + CB_Trainer.SelectedIndex = 0; + } + + private void B_DumpPKs_Click(object sender, EventArgs e) + { + string[] stats = ["HP", "ATK", "DEF", "Spe", "SpA", "SpD"]; + string result = ""; + for (int i = 0; i < pkFiles.Length; i++) + { + var pk = new Maison6.Pokemon(pkFiles[i]); + if (pk.Species == 0) + continue; + + result += "======" + Environment.NewLine; + result += $"{i} - {specieslist[pk.Species]}" + Environment.NewLine; + result += "======" + Environment.NewLine; + result += $"Held Item: {itemlist[pk.Item]}" + Environment.NewLine; + result += $"Nature: {natures[pk.Nature]}" + Environment.NewLine; + result += $"Move 1: {movelist[pk.Move1]}" + Environment.NewLine; + result += $"Move 2: {movelist[pk.Move2]}" + Environment.NewLine; + result += $"Move 3: {movelist[pk.Move3]}" + Environment.NewLine; + result += $"Move 4: {movelist[pk.Move4]}" + Environment.NewLine; + + var EVstr = string.Join(",", pk.EVs.Select((iv, x) => iv ? stats[x] : string.Empty).Where(x => !string.IsNullOrWhiteSpace(x))); + result += $"EV'd in: {(pk.EVs.Length > 0 ? EVstr : "None")}" + Environment.NewLine; + + result += Environment.NewLine; + } + var sfd = new SaveFileDialog { FileName = "Maison Pokemon.txt", Filter = "Text File|*.txt" }; + + if (sfd.ShowDialog() != DialogResult.OK) + return; + + File.WriteAllText(sfd.FileName, result, Encoding.Unicode); + } +} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/MaisonEditor6.resx b/pk3DS.WinForms/Subforms/Gen6/MaisonEditor6.resx similarity index 100% rename from pk3DS/Subforms/Gen6/MaisonEditor6.resx rename to pk3DS.WinForms/Subforms/Gen6/MaisonEditor6.resx diff --git a/pk3DS.WinForms/Subforms/Gen6/MartEditor6.Designer.cs b/pk3DS.WinForms/Subforms/Gen6/MartEditor6.Designer.cs new file mode 100644 index 0000000000..1fcbe74646 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/MartEditor6.Designer.cs @@ -0,0 +1,152 @@ +namespace pk3DS.WinForms; + +partial class MartEditor6 +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.CB_Location = new System.Windows.Forms.ComboBox(); + this.dgv = new System.Windows.Forms.DataGridView(); + this.L_Mart = new System.Windows.Forms.Label(); + this.B_Randomize = new System.Windows.Forms.Button(); + this.B_Save = new System.Windows.Forms.Button(); + this.B_Cancel = new System.Windows.Forms.Button(); + this.CHK_XItems = new System.Windows.Forms.CheckBox(); + ((System.ComponentModel.ISupportInitialize)(this.dgv)).BeginInit(); + this.SuspendLayout(); + // + // CB_Location + // + this.CB_Location.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.CB_Location.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_Location.FormattingEnabled = true; + this.CB_Location.Location = new System.Drawing.Point(69, 6); + this.CB_Location.Name = "CB_Location"; + this.CB_Location.Size = new System.Drawing.Size(243, 21); + this.CB_Location.TabIndex = 0; + this.CB_Location.SelectedIndexChanged += new System.EventHandler(this.ChangeIndex); + // + // dgv + // + this.dgv.AllowUserToAddRows = false; + this.dgv.AllowUserToDeleteRows = false; + this.dgv.AllowUserToResizeColumns = false; + this.dgv.AllowUserToResizeRows = false; + this.dgv.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dgv.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgv.Location = new System.Drawing.Point(12, 33); + this.dgv.Name = "dgv"; + this.dgv.Size = new System.Drawing.Size(300, 287); + this.dgv.TabIndex = 1; + // + // L_Mart + // + this.L_Mart.AutoSize = true; + this.L_Mart.Location = new System.Drawing.Point(12, 9); + this.L_Mart.Name = "L_Mart"; + this.L_Mart.Size = new System.Drawing.Size(51, 13); + this.L_Mart.TabIndex = 2; + this.L_Mart.Text = "Location:"; + // + // B_Randomize + // + this.B_Randomize.Location = new System.Drawing.Point(12, 329); + this.B_Randomize.Name = "B_Randomize"; + this.B_Randomize.Size = new System.Drawing.Size(87, 23); + this.B_Randomize.TabIndex = 3; + this.B_Randomize.Text = "Randomize"; + this.B_Randomize.UseVisualStyleBackColor = true; + this.B_Randomize.Click += new System.EventHandler(this.B_Randomize_Click); + // + // B_Save + // + this.B_Save.Location = new System.Drawing.Point(244, 329); + this.B_Save.Name = "B_Save"; + this.B_Save.Size = new System.Drawing.Size(68, 23); + this.B_Save.TabIndex = 4; + this.B_Save.Text = "Save"; + this.B_Save.UseVisualStyleBackColor = true; + this.B_Save.Click += new System.EventHandler(this.B_Save_Click); + // + // B_Cancel + // + this.B_Cancel.Location = new System.Drawing.Point(170, 329); + this.B_Cancel.Name = "B_Cancel"; + this.B_Cancel.Size = new System.Drawing.Size(68, 23); + this.B_Cancel.TabIndex = 5; + this.B_Cancel.Text = "Cancel"; + this.B_Cancel.UseVisualStyleBackColor = true; + this.B_Cancel.Click += new System.EventHandler(this.B_Cancel_Click); + // + // CHK_XItems + // + this.CHK_XItems.AutoSize = true; + this.CHK_XItems.Checked = true; + this.CHK_XItems.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_XItems.Location = new System.Drawing.Point(13, 356); + this.CHK_XItems.Name = "CHK_XItems"; + this.CHK_XItems.Size = new System.Drawing.Size(200, 17); + this.CHK_XItems.TabIndex = 304; + this.CHK_XItems.Text = "Don\'t Randomize X Items (Speedrun)"; + this.CHK_XItems.UseVisualStyleBackColor = true; + // + // MartEditor6 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(324, 381); + this.Controls.Add(this.CHK_XItems); + this.Controls.Add(this.B_Cancel); + this.Controls.Add(this.B_Save); + this.Controls.Add(this.B_Randomize); + this.Controls.Add(this.L_Mart); + this.Controls.Add(this.dgv); + this.Controls.Add(this.CB_Location); + this.MaximizeBox = false; + this.MaximumSize = new System.Drawing.Size(340, 420); + this.MinimumSize = new System.Drawing.Size(340, 420); + this.Name = "MartEditor6"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Mart Editor"; + ((System.ComponentModel.ISupportInitialize)(this.dgv)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.ComboBox CB_Location; + private System.Windows.Forms.DataGridView dgv; + private System.Windows.Forms.Label L_Mart; + private System.Windows.Forms.Button B_Randomize; + private System.Windows.Forms.Button B_Save; + private System.Windows.Forms.Button B_Cancel; + private System.Windows.Forms.CheckBox CHK_XItems; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen6/MartEditor6.cs b/pk3DS.WinForms/Subforms/Gen6/MartEditor6.cs new file mode 100644 index 0000000000..5d93068cdb --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/MartEditor6.cs @@ -0,0 +1,206 @@ +using pk3DS.Core; +using System; +using System.IO; +using System.Windows.Forms; + +namespace pk3DS.WinForms; + +public partial class MartEditor6 : Form +{ + public MartEditor6() + { + InitializeComponent(); + if (Main.ExeFSPath == null) { WinFormsUtil.Alert("No exeFS code to load."); Close(); } + string[] files = Directory.GetFiles(Main.ExeFSPath); + if (!File.Exists(files[0]) || !Path.GetFileNameWithoutExtension(files[0]).Contains("code")) { WinFormsUtil.Alert("No .code.bin detected."); Close(); } + data = File.ReadAllBytes(files[0]); + if (data.Length % 0x200 != 0) { WinFormsUtil.Alert(".code.bin not decompressed. Aborting."); Close(); } + offset = GetDataOffset(data); + codebin = files[0]; + itemlist[0] = ""; + SetupDGV(); + CB_Location.Items.AddRange(locations); + CB_Location.SelectedIndex = 0; + } + + private static int GetDataOffset(byte[] data) + { + byte[] vanilla = + [ + 0x00, 0x72, 0x6F, 0x6D, 0x3A, 0x2F, 0x44, 0x6C, 0x6C, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4D, 0x65, + 0x6E, 0x75, 0x2E, 0x63, 0x72, 0x6F, 0x00, + ]; + int offset = Util.IndexOfBytes(data, vanilla, 0x400000, 0); + if (offset >= 0) + return offset + vanilla.Length; + + byte[] patched = + [ + 0x00, 0x72, 0x6F, 0x6D, 0x32, 0x3A, 0x2F, 0x44, 0x6C, 0x6C, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4D, + 0x65, 0x6E, 0x75, 0x2E, 0x63, 0x72, 0x6F, 0x00, 0xFF, + ]; + offset = Util.IndexOfBytes(data, patched, 0x400000, 0); + + if (offset >= 0) + return offset + patched.Length; + + return -1; + } + + private readonly string codebin; + private readonly string[] itemlist = Main.Config.GetText(TextName.ItemNames); + private readonly byte[] data; + + private readonly byte[] entries = Main.Config.ORAS + ? + [ + 3, 10, 14, 17, 18, 19, 19, 19, 19, // General + 1, + 9, 6, 4, 3, 8, + 8, 3, 3, 4, + 3, 6, 8, + 7, 4, + ] + : + [ + 2, 11, 14, 17, 18, 19, 19, 19, 19, // General + 1, // Unused + 4, 10, 3, 9, 1, 1, // Misc + 3, 3, // Balls + 5, 5, // TMs + 6, // Vitamins + 7, // Balls + 5, // TMs + 5, // TMs + 8, // Battle + 3, // Balls + ]; + + private readonly int offset; + private int dataoffset; + + private readonly string[] locations = Main.Config.ORAS + ? + [ + "No Gym Badges [After Pokédex]", "1 Gym Badge", "2 Gym Badges", "3 Gym Badges", "4 Gym Badges", "5 Gym Badges", "6 Gym Badges", "7 Gym Badges", "8 Gym Badges", + "No Gym Badges [Before Pokédex]", + "Slateport Market [Incenses]", "Slateport Market [Vitamins]", "Slateport Market [TMs]", "Rustboro City [Poké Balls]", "Slateport City [X Items]", + "Mauville City [TMs]", "Verdanturf Town [Poké Balls]", "Fallarbor Town [Poké Balls]", "Lavaridge Town [Herbs]", + "Lilycove Dept Store, 2F Left [Run Away Items]", "Lilycove Dept Store, 3F Left [Vitamins]", "Lilycove Dept Store, 3F Right [X Items]", + "Lilycove Dept Store, 4F Left [Offensive TMs]", "Lilycove Dept Store, 4F Right [Defensive TMs]", + ] + : + [ + "No Gym Badges", "1 Gym Badge", "2 Gym Badges", "3 Gym Badges", "4 Gym Badges", "5 Gym Badges", "6 Gym Badges", "7 Gym Badges", "8 Gym Badges", + "Unused", + "Lumiose City [Herboriste]", "Lumiose City [Poké Ball Boutique]", "Lumiose City [Stone Emporium]", "Coumarine City [Incenses]", "Aquacorde Town [Poké Ball]", "Aquacorde Town [Potion]", + "Lumiose City North Boulevard [Poké Balls]", "Cyllage City [Poké Balls]", + "Shalour City [TMs]", "Lumiose City South Boulevard [TMs]", + "Laverre City [Vitamins]", + "Snowbelle City [Poké Balls]", + "Kiloude City [TMs]", + "Anistar City [TMs]", + "Santalune City [X Items]", + "Coumarine City [Poké Balls]", + ]; + + private void GetDataOffset(int index) + { + dataoffset = offset; // reset + for (int i = 0; i < index; i++) + dataoffset += 2 * entries[i]; + } + + private void SetupDGV() + { + var dgvIndex = new DataGridViewTextBoxColumn(); + { + dgvIndex.HeaderText = "Index"; + dgvIndex.DisplayIndex = 0; + dgvIndex.Width = 45; + dgvIndex.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; + } + var dgvItem = new DataGridViewComboBoxColumn(); + { + dgvItem.HeaderText = "Item"; + dgvItem.DisplayIndex = 1; + dgvItem.Items.AddRange(itemlist); // add only the Names + + dgvItem.Width = 135; + dgvItem.FlatStyle = FlatStyle.Flat; + } + dgv.Columns.Add(dgvIndex); + dgv.Columns.Add(dgvItem); + } + + private int entry = -1; + + private void ChangeIndex(object sender, EventArgs e) + { + if (entry > -1) SetList(); + entry = CB_Location.SelectedIndex; + GetList(); + } + + private void GetList() + { + dgv.Rows.Clear(); + int count = entries[entry]; + dgv.Rows.Add(count); + GetDataOffset(entry); + for (int i = 0; i < count; i++) + { + dgv.Rows[i].Cells[0].Value = i.ToString(); + dgv.Rows[i].Cells[1].Value = itemlist[BitConverter.ToUInt16(data, dataoffset + (2 * i))]; + } + } + + private void SetList() + { + int count = dgv.Rows.Count; + for (int i = 0; i < count; i++) + Array.Copy(BitConverter.GetBytes((ushort)Array.IndexOf(itemlist, dgv.Rows[i].Cells[1].Value)), 0, data, dataoffset + (2 * i), 2); + } + + private void B_Save_Click(object sender, EventArgs e) + { + if (entry > -1) SetList(); + File.WriteAllBytes(codebin, data); + Close(); + } + + private void B_Cancel_Click(object sender, EventArgs e) + { + Close(); + } + + private void B_Randomize_Click(object sender, EventArgs e) + { + if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Randomize mart inventories?")) + return; + + int[] validItems = Randomizer.GetRandomItemList(); + + int ctr = 0; + Util.Shuffle(validItems); + + bool specialOnly = DialogResult.Yes == WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomize only special marts?", "Will leave regular necessities intact."); + int start = specialOnly ? 10 : 0; + for (int i = start; i < CB_Location.Items.Count; i++) + { + CB_Location.SelectedIndex = i; + for (int r = 0; r < dgv.Rows.Count; r++) + { + int currentItem = Array.IndexOf(itemlist, dgv.Rows[r].Cells[1].Value); + if (CHK_XItems.Checked && MartEditor7.XItems.Contains(currentItem)) + continue; + if (MartEditor7.BannedItems.Contains(currentItem)) + continue; + dgv.Rows[r].Cells[1].Value = itemlist[validItems[ctr++]]; + if (ctr <= validItems.Length) continue; + Util.Shuffle(validItems); ctr = 0; + } + } + WinFormsUtil.Alert("Randomized!"); + } +} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/MartEditor6.resx b/pk3DS.WinForms/Subforms/Gen6/MartEditor6.resx similarity index 100% rename from pk3DS/Subforms/Gen6/MartEditor6.resx rename to pk3DS.WinForms/Subforms/Gen6/MartEditor6.resx diff --git a/pk3DS.WinForms/Subforms/Gen6/MegaEvoEditor6.Designer.cs b/pk3DS.WinForms/Subforms/Gen6/MegaEvoEditor6.Designer.cs new file mode 100644 index 0000000000..e6843198a7 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/MegaEvoEditor6.Designer.cs @@ -0,0 +1,465 @@ +namespace pk3DS.WinForms; + +partial class MegaEvoEditor6 +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.LBL_Item1 = new System.Windows.Forms.Label(); + this.LBL_Forme1 = new System.Windows.Forms.Label(); + this.GB_MEvo1 = new System.Windows.Forms.GroupBox(); + this.LBL_Into1 = new System.Windows.Forms.Label(); + this.PB_M1 = new System.Windows.Forms.PictureBox(); + this.PB_S1 = new System.Windows.Forms.PictureBox(); + this.CB_Forme1 = new System.Windows.Forms.ComboBox(); + this.CB_Item1 = new System.Windows.Forms.ComboBox(); + this.GB_MEvo2 = new System.Windows.Forms.GroupBox(); + this.LBL_Into2 = new System.Windows.Forms.Label(); + this.PB_M2 = new System.Windows.Forms.PictureBox(); + this.CB_Forme2 = new System.Windows.Forms.ComboBox(); + this.PB_S2 = new System.Windows.Forms.PictureBox(); + this.CB_Item2 = new System.Windows.Forms.ComboBox(); + this.LBL_Forme2 = new System.Windows.Forms.Label(); + this.LBL_Item2 = new System.Windows.Forms.Label(); + this.CHK_MEvo1 = new System.Windows.Forms.CheckBox(); + this.CHK_MEvo2 = new System.Windows.Forms.CheckBox(); + this.CB_Species = new System.Windows.Forms.ComboBox(); + this.GB_MEvo3 = new System.Windows.Forms.GroupBox(); + this.LBL_Into3 = new System.Windows.Forms.Label(); + this.PB_M3 = new System.Windows.Forms.PictureBox(); + this.CB_Forme3 = new System.Windows.Forms.ComboBox(); + this.PB_S3 = new System.Windows.Forms.PictureBox(); + this.CB_Item3 = new System.Windows.Forms.ComboBox(); + this.LBL_Forme3 = new System.Windows.Forms.Label(); + this.LBL_Item3 = new System.Windows.Forms.Label(); + this.CHK_MEvo3 = new System.Windows.Forms.CheckBox(); + this.bpkx = new System.Windows.Forms.PictureBox(); + this.B_Dump = new System.Windows.Forms.Button(); + this.GB_MEvo1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.PB_M1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_S1)).BeginInit(); + this.GB_MEvo2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.PB_M2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_S2)).BeginInit(); + this.GB_MEvo3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.PB_M3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_S3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bpkx)).BeginInit(); + this.SuspendLayout(); + // + // LBL_Item1 + // + this.LBL_Item1.AutoSize = true; + this.LBL_Item1.Location = new System.Drawing.Point(6, 20); + this.LBL_Item1.Name = "LBL_Item1"; + this.LBL_Item1.Size = new System.Drawing.Size(27, 13); + this.LBL_Item1.TabIndex = 9; + this.LBL_Item1.Text = "Item"; + // + // LBL_Forme1 + // + this.LBL_Forme1.AutoSize = true; + this.LBL_Forme1.Location = new System.Drawing.Point(6, 65); + this.LBL_Forme1.Name = "LBL_Forme1"; + this.LBL_Forme1.Size = new System.Drawing.Size(85, 13); + this.LBL_Forme1.TabIndex = 10; + this.LBL_Forme1.Text = "Alt Forme (if any)"; + // + // GB_MEvo1 + // + this.GB_MEvo1.Controls.Add(this.LBL_Into1); + this.GB_MEvo1.Controls.Add(this.PB_M1); + this.GB_MEvo1.Controls.Add(this.PB_S1); + this.GB_MEvo1.Controls.Add(this.CB_Forme1); + this.GB_MEvo1.Controls.Add(this.CB_Item1); + this.GB_MEvo1.Controls.Add(this.LBL_Forme1); + this.GB_MEvo1.Controls.Add(this.LBL_Item1); + this.GB_MEvo1.Enabled = false; + this.GB_MEvo1.Location = new System.Drawing.Point(12, 62); + this.GB_MEvo1.Name = "GB_MEvo1"; + this.GB_MEvo1.Size = new System.Drawing.Size(126, 142); + this.GB_MEvo1.TabIndex = 11; + this.GB_MEvo1.TabStop = false; + this.GB_MEvo1.Text = "Evolution 1"; + // + // LBL_Into1 + // + this.LBL_Into1.AutoSize = true; + this.LBL_Into1.Location = new System.Drawing.Point(51, 117); + this.LBL_Into1.Name = "LBL_Into1"; + this.LBL_Into1.Size = new System.Drawing.Size(28, 13); + this.LBL_Into1.TabIndex = 34; + this.LBL_Into1.Text = "Into:"; + // + // PB_M1 + // + this.PB_M1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.PB_M1.Location = new System.Drawing.Point(81, 106); + this.PB_M1.Name = "PB_M1"; + this.PB_M1.Size = new System.Drawing.Size(42, 32); + this.PB_M1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.PB_M1.TabIndex = 33; + this.PB_M1.TabStop = false; + // + // PB_S1 + // + this.PB_S1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.PB_S1.Location = new System.Drawing.Point(5, 106); + this.PB_S1.Name = "PB_S1"; + this.PB_S1.Size = new System.Drawing.Size(42, 32); + this.PB_S1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.PB_S1.TabIndex = 32; + this.PB_S1.TabStop = false; + // + // CB_Forme1 + // + this.CB_Forme1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Forme1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Forme1.FormattingEnabled = true; + this.CB_Forme1.Location = new System.Drawing.Point(5, 82); + this.CB_Forme1.Name = "CB_Forme1"; + this.CB_Forme1.Size = new System.Drawing.Size(121, 21); + this.CB_Forme1.TabIndex = 18; + this.CB_Forme1.SelectedIndexChanged += new System.EventHandler(this.Update_PBs); + // + // CB_Item1 + // + this.CB_Item1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Item1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Item1.FormattingEnabled = true; + this.CB_Item1.Location = new System.Drawing.Point(2, 35); + this.CB_Item1.Name = "CB_Item1"; + this.CB_Item1.Size = new System.Drawing.Size(121, 21); + this.CB_Item1.TabIndex = 12; + this.CB_Item1.SelectedValueChanged += new System.EventHandler(this.Update_PBs); + // + // GB_MEvo2 + // + this.GB_MEvo2.Controls.Add(this.LBL_Into2); + this.GB_MEvo2.Controls.Add(this.PB_M2); + this.GB_MEvo2.Controls.Add(this.CB_Forme2); + this.GB_MEvo2.Controls.Add(this.PB_S2); + this.GB_MEvo2.Controls.Add(this.CB_Item2); + this.GB_MEvo2.Controls.Add(this.LBL_Forme2); + this.GB_MEvo2.Controls.Add(this.LBL_Item2); + this.GB_MEvo2.Enabled = false; + this.GB_MEvo2.Location = new System.Drawing.Point(144, 62); + this.GB_MEvo2.Name = "GB_MEvo2"; + this.GB_MEvo2.Size = new System.Drawing.Size(126, 142); + this.GB_MEvo2.TabIndex = 12; + this.GB_MEvo2.TabStop = false; + this.GB_MEvo2.Text = "Evolution 2"; + // + // LBL_Into2 + // + this.LBL_Into2.AutoSize = true; + this.LBL_Into2.Location = new System.Drawing.Point(52, 117); + this.LBL_Into2.Name = "LBL_Into2"; + this.LBL_Into2.Size = new System.Drawing.Size(28, 13); + this.LBL_Into2.TabIndex = 35; + this.LBL_Into2.Text = "Into:"; + // + // PB_M2 + // + this.PB_M2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.PB_M2.Location = new System.Drawing.Point(80, 106); + this.PB_M2.Name = "PB_M2"; + this.PB_M2.Size = new System.Drawing.Size(42, 32); + this.PB_M2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.PB_M2.TabIndex = 35; + this.PB_M2.TabStop = false; + // + // CB_Forme2 + // + this.CB_Forme2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Forme2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Forme2.FormattingEnabled = true; + this.CB_Forme2.Location = new System.Drawing.Point(2, 82); + this.CB_Forme2.Name = "CB_Forme2"; + this.CB_Forme2.Size = new System.Drawing.Size(121, 21); + this.CB_Forme2.TabIndex = 19; + this.CB_Forme2.SelectedIndexChanged += new System.EventHandler(this.Update_PBs); + // + // PB_S2 + // + this.PB_S2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.PB_S2.Location = new System.Drawing.Point(4, 106); + this.PB_S2.Name = "PB_S2"; + this.PB_S2.Size = new System.Drawing.Size(42, 32); + this.PB_S2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.PB_S2.TabIndex = 34; + this.PB_S2.TabStop = false; + // + // CB_Item2 + // + this.CB_Item2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Item2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Item2.FormattingEnabled = true; + this.CB_Item2.Location = new System.Drawing.Point(2, 36); + this.CB_Item2.Name = "CB_Item2"; + this.CB_Item2.Size = new System.Drawing.Size(121, 21); + this.CB_Item2.TabIndex = 13; + this.CB_Item2.SelectedValueChanged += new System.EventHandler(this.Update_PBs); + // + // LBL_Forme2 + // + this.LBL_Forme2.AutoSize = true; + this.LBL_Forme2.Location = new System.Drawing.Point(6, 65); + this.LBL_Forme2.Name = "LBL_Forme2"; + this.LBL_Forme2.Size = new System.Drawing.Size(85, 13); + this.LBL_Forme2.TabIndex = 10; + this.LBL_Forme2.Text = "Alt Forme (if any)"; + // + // LBL_Item2 + // + this.LBL_Item2.AutoSize = true; + this.LBL_Item2.Location = new System.Drawing.Point(6, 20); + this.LBL_Item2.Name = "LBL_Item2"; + this.LBL_Item2.Size = new System.Drawing.Size(27, 13); + this.LBL_Item2.TabIndex = 9; + this.LBL_Item2.Text = "Item"; + // + // CHK_MEvo1 + // + this.CHK_MEvo1.AutoSize = true; + this.CHK_MEvo1.Location = new System.Drawing.Point(12, 39); + this.CHK_MEvo1.Name = "CHK_MEvo1"; + this.CHK_MEvo1.Size = new System.Drawing.Size(65, 17); + this.CHK_MEvo1.TabIndex = 13; + this.CHK_MEvo1.Text = "Enabled"; + this.CHK_MEvo1.UseVisualStyleBackColor = true; + this.CHK_MEvo1.CheckedChanged += new System.EventHandler(this.CHK_Changed); + // + // CHK_MEvo2 + // + this.CHK_MEvo2.AutoSize = true; + this.CHK_MEvo2.Location = new System.Drawing.Point(144, 39); + this.CHK_MEvo2.Name = "CHK_MEvo2"; + this.CHK_MEvo2.Size = new System.Drawing.Size(65, 17); + this.CHK_MEvo2.TabIndex = 14; + this.CHK_MEvo2.Text = "Enabled"; + this.CHK_MEvo2.UseVisualStyleBackColor = true; + this.CHK_MEvo2.CheckedChanged += new System.EventHandler(this.CHK_Changed); + // + // CB_Species + // + this.CB_Species.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Species.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Species.FormattingEnabled = true; + this.CB_Species.Location = new System.Drawing.Point(12, 12); + this.CB_Species.Name = "CB_Species"; + this.CB_Species.Size = new System.Drawing.Size(181, 21); + this.CB_Species.TabIndex = 15; + this.CB_Species.SelectedIndexChanged += new System.EventHandler(this.ChangeIndex); + // + // GB_MEvo3 + // + this.GB_MEvo3.Controls.Add(this.LBL_Into3); + this.GB_MEvo3.Controls.Add(this.PB_M3); + this.GB_MEvo3.Controls.Add(this.CB_Forme3); + this.GB_MEvo3.Controls.Add(this.PB_S3); + this.GB_MEvo3.Controls.Add(this.CB_Item3); + this.GB_MEvo3.Controls.Add(this.LBL_Forme3); + this.GB_MEvo3.Controls.Add(this.LBL_Item3); + this.GB_MEvo3.Enabled = false; + this.GB_MEvo3.Location = new System.Drawing.Point(276, 62); + this.GB_MEvo3.Name = "GB_MEvo3"; + this.GB_MEvo3.Size = new System.Drawing.Size(126, 142); + this.GB_MEvo3.TabIndex = 13; + this.GB_MEvo3.TabStop = false; + this.GB_MEvo3.Text = "Evolution 3"; + // + // LBL_Into3 + // + this.LBL_Into3.AutoSize = true; + this.LBL_Into3.Location = new System.Drawing.Point(48, 117); + this.LBL_Into3.Name = "LBL_Into3"; + this.LBL_Into3.Size = new System.Drawing.Size(28, 13); + this.LBL_Into3.TabIndex = 36; + this.LBL_Into3.Text = "Into:"; + // + // PB_M3 + // + this.PB_M3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.PB_M3.Location = new System.Drawing.Point(79, 106); + this.PB_M3.Name = "PB_M3"; + this.PB_M3.Size = new System.Drawing.Size(42, 32); + this.PB_M3.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.PB_M3.TabIndex = 35; + this.PB_M3.TabStop = false; + // + // CB_Forme3 + // + this.CB_Forme3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Forme3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Forme3.FormattingEnabled = true; + this.CB_Forme3.Location = new System.Drawing.Point(3, 82); + this.CB_Forme3.Name = "CB_Forme3"; + this.CB_Forme3.Size = new System.Drawing.Size(121, 21); + this.CB_Forme3.TabIndex = 20; + this.CB_Forme3.SelectedIndexChanged += new System.EventHandler(this.Update_PBs); + // + // PB_S3 + // + this.PB_S3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.PB_S3.Location = new System.Drawing.Point(3, 106); + this.PB_S3.Name = "PB_S3"; + this.PB_S3.Size = new System.Drawing.Size(42, 32); + this.PB_S3.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.PB_S3.TabIndex = 34; + this.PB_S3.TabStop = false; + // + // CB_Item3 + // + this.CB_Item3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Item3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Item3.FormattingEnabled = true; + this.CB_Item3.Location = new System.Drawing.Point(3, 36); + this.CB_Item3.Name = "CB_Item3"; + this.CB_Item3.Size = new System.Drawing.Size(121, 21); + this.CB_Item3.TabIndex = 18; + this.CB_Item3.SelectedValueChanged += new System.EventHandler(this.Update_PBs); + // + // LBL_Forme3 + // + this.LBL_Forme3.AutoSize = true; + this.LBL_Forme3.Location = new System.Drawing.Point(6, 65); + this.LBL_Forme3.Name = "LBL_Forme3"; + this.LBL_Forme3.Size = new System.Drawing.Size(85, 13); + this.LBL_Forme3.TabIndex = 10; + this.LBL_Forme3.Text = "Alt Forme (if any)"; + // + // LBL_Item3 + // + this.LBL_Item3.AutoSize = true; + this.LBL_Item3.Location = new System.Drawing.Point(6, 20); + this.LBL_Item3.Name = "LBL_Item3"; + this.LBL_Item3.Size = new System.Drawing.Size(27, 13); + this.LBL_Item3.TabIndex = 9; + this.LBL_Item3.Text = "Item"; + // + // CHK_MEvo3 + // + this.CHK_MEvo3.AutoSize = true; + this.CHK_MEvo3.Location = new System.Drawing.Point(285, 39); + this.CHK_MEvo3.Name = "CHK_MEvo3"; + this.CHK_MEvo3.Size = new System.Drawing.Size(65, 17); + this.CHK_MEvo3.TabIndex = 16; + this.CHK_MEvo3.Text = "Enabled"; + this.CHK_MEvo3.UseVisualStyleBackColor = true; + this.CHK_MEvo3.CheckedChanged += new System.EventHandler(this.CHK_Changed); + // + // bpkx + // + this.bpkx.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.bpkx.Location = new System.Drawing.Point(308, 99); + this.bpkx.Name = "bpkx"; + this.bpkx.Size = new System.Drawing.Size(42, 32); + this.bpkx.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.bpkx.TabIndex = 31; + this.bpkx.TabStop = false; + // + // B_Dump + // + this.B_Dump.Location = new System.Drawing.Point(327, 5); + this.B_Dump.Name = "B_Dump"; + this.B_Dump.Size = new System.Drawing.Size(75, 23); + this.B_Dump.TabIndex = 18; + this.B_Dump.Text = "Dump"; + this.B_Dump.UseVisualStyleBackColor = true; + this.B_Dump.Click += new System.EventHandler(this.B_Dump_Click); + // + // MEE + // + this.AllowDrop = true; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(414, 212); + this.Controls.Add(this.B_Dump); + this.Controls.Add(this.CHK_MEvo3); + this.Controls.Add(this.GB_MEvo3); + this.Controls.Add(this.CB_Species); + this.Controls.Add(this.CHK_MEvo2); + this.Controls.Add(this.CHK_MEvo1); + this.Controls.Add(this.GB_MEvo2); + this.Controls.Add(this.GB_MEvo1); + this.MaximizeBox = false; + this.MaximumSize = new System.Drawing.Size(430, 250); + this.MinimumSize = new System.Drawing.Size(430, 250); + this.Name = "MegaEvoEditor6"; + this.Text = "Mega Evo Editor"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form_Closing); + this.GB_MEvo1.ResumeLayout(false); + this.GB_MEvo1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.PB_M1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_S1)).EndInit(); + this.GB_MEvo2.ResumeLayout(false); + this.GB_MEvo2.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.PB_M2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_S2)).EndInit(); + this.GB_MEvo3.ResumeLayout(false); + this.GB_MEvo3.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.PB_M3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_S3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bpkx)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label LBL_Item1; + private System.Windows.Forms.Label LBL_Forme1; + private System.Windows.Forms.GroupBox GB_MEvo1; + private System.Windows.Forms.GroupBox GB_MEvo2; + private System.Windows.Forms.Label LBL_Forme2; + private System.Windows.Forms.Label LBL_Item2; + private System.Windows.Forms.CheckBox CHK_MEvo1; + private System.Windows.Forms.CheckBox CHK_MEvo2; + private System.Windows.Forms.ComboBox CB_Species; + private System.Windows.Forms.GroupBox GB_MEvo3; + private System.Windows.Forms.Label LBL_Forme3; + private System.Windows.Forms.Label LBL_Item3; + private System.Windows.Forms.CheckBox CHK_MEvo3; + private System.Windows.Forms.ComboBox CB_Item1; + private System.Windows.Forms.ComboBox CB_Item2; + private System.Windows.Forms.ComboBox CB_Item3; + private System.Windows.Forms.ComboBox CB_Forme1; + private System.Windows.Forms.ComboBox CB_Forme2; + private System.Windows.Forms.ComboBox CB_Forme3; + private System.Windows.Forms.PictureBox PB_M1; + private System.Windows.Forms.PictureBox PB_S1; + private System.Windows.Forms.PictureBox PB_M2; + private System.Windows.Forms.PictureBox PB_S2; + private System.Windows.Forms.PictureBox PB_M3; + private System.Windows.Forms.PictureBox PB_S3; + private System.Windows.Forms.PictureBox bpkx; + private System.Windows.Forms.Label LBL_Into1; + private System.Windows.Forms.Label LBL_Into2; + private System.Windows.Forms.Label LBL_Into3; + private System.Windows.Forms.Button B_Dump; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen6/MegaEvoEditor6.cs b/pk3DS.WinForms/Subforms/Gen6/MegaEvoEditor6.cs new file mode 100644 index 0000000000..8de3ab8976 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/MegaEvoEditor6.cs @@ -0,0 +1,222 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Media; +using System.Text; +using System.Windows.Forms; + +using pk3DS.Core; +using pk3DS.Core.Structures; + +namespace pk3DS.WinForms; + +public partial class MegaEvoEditor6 : Form +{ + private readonly byte[][] files; + //private readonly string[] forms = Main.Config.GetText(TextName.Forms); + //private readonly string[] types = Main.Config.GetText(TextName.Types); + private readonly string[] specieslist = Main.Config.GetText(TextName.SpeciesNames); + private readonly string[] itemlist = Main.Config.GetText(TextName.ItemNames); + private readonly GroupBox[] groupbox_spec; + private readonly ComboBox[] forme_spec; + private readonly ComboBox[] item_spec; + private readonly CheckBox[] checkbox_spec; + private readonly PictureBox[][] picturebox_spec; + private bool loaded; + private readonly string[][] AltForms; + private int entry = -1; + private bool dumping; + private MegaEvolutions me; + + public MegaEvoEditor6(byte[][] infiles) // All the initial settings + { + files = infiles; + InitializeComponent(); + CB_Species.DisplayMember = "Text"; + CB_Species.ValueMember = "Value"; + #region Intializations + + Array.Resize(ref specieslist, Main.Config.MaxSpeciesID + 1); + specieslist[0] = itemlist[0] = ""; + specieslist[32] += "♂"; specieslist[29] += "♀"; + AltForms = Main.Config.Personal.GetFormList(specieslist, Main.Config.MaxSpeciesID); + + groupbox_spec = [GB_MEvo1, GB_MEvo2, GB_MEvo3]; + item_spec = [CB_Item1, CB_Item2, CB_Item3]; + forme_spec = [CB_Forme1, CB_Forme2, CB_Forme3]; + checkbox_spec = [CHK_MEvo1, CHK_MEvo2, CHK_MEvo3]; + picturebox_spec = [[PB_S1, PB_S2, PB_S3], [PB_M1, PB_M2, PB_M3]]; + #endregion + Setup(); + CB_Species.SelectedIndex = 0; + } + + private void Setup() + { + List temp_list = [.. specieslist]; + temp_list.Sort(); + + CB_Species.DataSource = temp_list.ConvertAll(mon => new ComboItem { Text = mon, Value = Array.IndexOf(specieslist, mon) }); + + List items = [.. itemlist]; + List sorted_items = [.. itemlist]; + List[] item_lists = new List[item_spec.Length]; + for (int i = 0; i < item_lists.Length; i++) + item_lists[i] = []; + + sorted_items.Sort(); + for (int i = 0; i < items.Count; i++) + { + int index = items.IndexOf(sorted_items[i]); + { + var ncbi = new ComboItem(); + if (sorted_items[i] == "???") continue; // Don't allow stubbed items. + ncbi.Text = sorted_items[i] + " - " + index.ToString("000"); + ncbi.Value = index; + foreach (var l in item_lists) + l.Add(ncbi); + } + items[index] = ""; + } + for (int i = 0; i < item_spec.Length; i++) + { + item_spec[i].ValueMember = "Value"; + item_spec[i].DisplayMember = "Text"; + item_spec[i].DataSource = item_lists[i]; + item_spec[i].SelectedValue = 0; + } + + loaded = true; + } + + private void CHK_Changed(object sender, EventArgs e) + { + for (int i = 0; i < groupbox_spec.Length; i++) + { + groupbox_spec[i].Enabled = checkbox_spec[i].Checked; + Update_PBs(i); + } + } + + private void ChangeIndex(object sender, EventArgs e) + { + SetEntry(); + entry = (int)CB_Species.SelectedValue; + GetEntry(); + } + + private void GetEntry() + { + if (!loaded) return; + if (Main.Config.ORAS && entry == 384 && !dumping) // Current Mon is Rayquaza + WinFormsUtil.Alert("Rayquaza is special and uses a different activator for its evolution. If it knows Dragon Ascent, it can Mega Evolve", "Don't edit its evolution table if you want to keep this functionality."); + + byte[] data = files[entry]; + + foreach (ComboBox CB in forme_spec) + FormUtil.SetForms(entry, CB, AltForms); + + me = new MegaEvolutions(data); + for (int i = 0; i < 3; i++) + { + checkbox_spec[i].Checked = me.Method[i] == 1; + item_spec[i].SelectedValue = (int)me.Argument[i]; + forme_spec[i].SelectedIndex = me.Form[i]; + } + } + + private void SetEntry() + { + if (entry is < 1 or 384) return; // Don't edit invalid / Rayquaza. + for (int i = 0; i < 3; i++) + { + if (me.Method[i] > 1) + return; // Shouldn't hit this. + me.Method[i] = checkbox_spec[i].Checked ? (byte)1 : (byte)0; + me.Argument[i] = (ushort)WinFormsUtil.GetIndex(item_spec[i]); + me.Form[i] = (ushort)forme_spec[i].SelectedIndex; + } + files[entry] = me.Write(); + } + + private void Update_PBs(object sender, EventArgs e) + { + if (!loaded) return; + for (int i = 0; i < checkbox_spec.Length; i++) + { + CheckBox CB = checkbox_spec[i]; + if (CB.Checked) + { + UpdateImage(picturebox_spec[0][i], entry, 0, WinFormsUtil.GetIndex(item_spec[i]), 0); + UpdateImage(picturebox_spec[1][i], entry, forme_spec[i].SelectedIndex, WinFormsUtil.GetIndex(item_spec[i]), 0); + } + else + { + UpdateImage(picturebox_spec[0][i], 0, 0, WinFormsUtil.GetIndex(item_spec[i]), 0); + UpdateImage(picturebox_spec[1][i], 0, 0, WinFormsUtil.GetIndex(item_spec[i]), 0); + } + } + } + + private void Update_PBs(int i) + { + if (!loaded) return; + CheckBox CB = checkbox_spec[i]; + if (CB.Checked) + { + UpdateImage(picturebox_spec[0][i], entry, 0, WinFormsUtil.GetIndex(item_spec[i]), 0); + UpdateImage(picturebox_spec[1][i], entry, forme_spec[i].SelectedIndex, WinFormsUtil.GetIndex(item_spec[i]), 0); + } + else + { + UpdateImage(picturebox_spec[0][i], 0, 0, WinFormsUtil.GetIndex(item_spec[i]), 0); + UpdateImage(picturebox_spec[1][i], 0, 0, WinFormsUtil.GetIndex(item_spec[i]), 0); + } + } + + private static void UpdateImage(PictureBox pb, int species, int form, int item, int gender) + { + if (!pb.Enabled) + { + pb.Image = null; + return; + } + pb.Image = WinFormsUtil.GetSprite(species, form, gender, item, Main.Config); + } + + private void Form_Closing(object sender, FormClosingEventArgs e) + { + SetEntry(); + } + + private void B_Dump_Click(object sender, EventArgs e) + { + if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Dump all Mega Evolutions to Text File?")) + return; + dumping = true; + string result = ""; + + for (int i = 0; i < Main.Config.MaxSpeciesID; i++) + { + CB_Species.SelectedValue = i; // Get new Species + string header = "======" + Environment.NewLine + entry + " " + CB_Species.Text + Environment.NewLine + "======" + Environment.NewLine; + bool headered = false; + for (int j = 0; j < 3; j++) + { + if (!checkbox_spec[j].Checked) continue; + if (!headered) { result += header; headered = true; } + result += string.Format("Can Mega Evolve into {1} if its held item is {0}." + Environment.NewLine, itemlist[(int)item_spec[j].SelectedValue], forme_spec[j].Text); + } + + if (headered) + result += Environment.NewLine; + } + var sfd = new SaveFileDialog { FileName = "Mega Evolutions.txt", Filter = "Text File|*.txt" }; + + SystemSounds.Asterisk.Play(); + if (sfd.ShowDialog() == DialogResult.OK) + File.WriteAllText(sfd.FileName, result, Encoding.Unicode); + + dumping = false; + } +} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/MegaEvoEditor6.resx b/pk3DS.WinForms/Subforms/Gen6/MegaEvoEditor6.resx similarity index 100% rename from pk3DS/Subforms/Gen6/MegaEvoEditor6.resx rename to pk3DS.WinForms/Subforms/Gen6/MegaEvoEditor6.resx diff --git a/pk3DS.WinForms/Subforms/Gen6/MoveEditor6.Designer.cs b/pk3DS.WinForms/Subforms/Gen6/MoveEditor6.Designer.cs new file mode 100644 index 0000000000..ce82828c17 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/MoveEditor6.Designer.cs @@ -0,0 +1,971 @@ +namespace pk3DS.WinForms; + +partial class MoveEditor6 +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.L_Type = new System.Windows.Forms.Label(); + this.CB_Move = new System.Windows.Forms.ComboBox(); + this.L_Move = new System.Windows.Forms.Label(); + this.CB_Type = new System.Windows.Forms.ComboBox(); + this.CB_Category = new System.Windows.Forms.ComboBox(); + this.L_Category = new System.Windows.Forms.Label(); + this.L_BP = new System.Windows.Forms.Label(); + this.L_PP = new System.Windows.Forms.Label(); + this.L_Min = new System.Windows.Forms.Label(); + this.L_Max = new System.Windows.Forms.Label(); + this.L_Priority = new System.Windows.Forms.Label(); + this.NUD_HitMax = new System.Windows.Forms.NumericUpDown(); + this.NUD_HitMin = new System.Windows.Forms.NumericUpDown(); + this.NUD_Priority = new System.Windows.Forms.NumericUpDown(); + this.NUD_PP = new System.Windows.Forms.NumericUpDown(); + this.NUD_Power = new System.Windows.Forms.NumericUpDown(); + this.NUD_TurnMin = new System.Windows.Forms.NumericUpDown(); + this.L_TrapMin = new System.Windows.Forms.Label(); + this.NUD_TurnMax = new System.Windows.Forms.NumericUpDown(); + this.L_TrapMax = new System.Windows.Forms.Label(); + this.NUD_Recoil = new System.Windows.Forms.NumericUpDown(); + this.L_Recoil = new System.Windows.Forms.Label(); + this.NUD_Heal = new System.Windows.Forms.NumericUpDown(); + this.L_Heal = new System.Windows.Forms.Label(); + this.NUD_CritStage = new System.Windows.Forms.NumericUpDown(); + this.L_CritStage = new System.Windows.Forms.Label(); + this.NUD_Flinch = new System.Windows.Forms.NumericUpDown(); + this.L_Flinch = new System.Windows.Forms.Label(); + this.GB_Stat = new System.Windows.Forms.GroupBox(); + this.NUD_StatP3 = new System.Windows.Forms.NumericUpDown(); + this.NUD_StatP2 = new System.Windows.Forms.NumericUpDown(); + this.NUD_StatP1 = new System.Windows.Forms.NumericUpDown(); + this.NUD_Stat2 = new System.Windows.Forms.NumericUpDown(); + this.NUD_Stat3 = new System.Windows.Forms.NumericUpDown(); + this.NUD_Stat1 = new System.Windows.Forms.NumericUpDown(); + this.CB_Stat3 = new System.Windows.Forms.ComboBox(); + this.CB_Stat2 = new System.Windows.Forms.ComboBox(); + this.CB_Stat1 = new System.Windows.Forms.ComboBox(); + this.L_Stage3 = new System.Windows.Forms.Label(); + this.L_Stage2 = new System.Windows.Forms.Label(); + this.L_Stage1 = new System.Windows.Forms.Label(); + this.L_Targeting = new System.Windows.Forms.Label(); + this.L_Influcts = new System.Windows.Forms.Label(); + this.RTB = new System.Windows.Forms.RichTextBox(); + this.CB_Targeting = new System.Windows.Forms.ComboBox(); + this.CB_Inflict = new System.Windows.Forms.ComboBox(); + this.L_Inflict = new System.Windows.Forms.Label(); + this.NUD_Inflict = new System.Windows.Forms.NumericUpDown(); + this.NUD_Effect = new System.Windows.Forms.NumericUpDown(); + this.L_Effect = new System.Windows.Forms.Label(); + this.NUD_Accuracy = new System.Windows.Forms.NumericUpDown(); + this.L_Accuracy = new System.Windows.Forms.Label(); + this.CB_Quality = new System.Windows.Forms.ComboBox(); + this.L_Quality = new System.Windows.Forms.Label(); + this.L_0xB = new System.Windows.Forms.Label(); + this.NUD_0xB = new System.Windows.Forms.NumericUpDown(); + this.B_RandAll = new System.Windows.Forms.Button(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.CHK_Category = new System.Windows.Forms.CheckBox(); + this.CHK_Type = new System.Windows.Forms.CheckBox(); + this.B_Metronome = new System.Windows.Forms.Button(); + this.B_Table = new System.Windows.Forms.Button(); + this.CLB_Flags = new System.Windows.Forms.CheckedListBox(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_HitMax)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_HitMin)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Priority)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_PP)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Power)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_TurnMin)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_TurnMax)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Recoil)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Heal)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_CritStage)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Flinch)).BeginInit(); + this.GB_Stat.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_StatP3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_StatP2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_StatP1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Stat2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Stat3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Stat1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Inflict)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Effect)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Accuracy)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_0xB)).BeginInit(); + this.groupBox1.SuspendLayout(); + this.SuspendLayout(); + // + // L_Type + // + this.L_Type.AutoSize = true; + this.L_Type.Location = new System.Drawing.Point(32, 38); + this.L_Type.Name = "L_Type"; + this.L_Type.Size = new System.Drawing.Size(34, 13); + this.L_Type.TabIndex = 0; + this.L_Type.Text = "Type:"; + this.L_Type.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_Move + // + this.CB_Move.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Move.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Move.DropDownWidth = 120; + this.CB_Move.FormattingEnabled = true; + this.CB_Move.Location = new System.Drawing.Point(71, 10); + this.CB_Move.Name = "CB_Move"; + this.CB_Move.Size = new System.Drawing.Size(130, 21); + this.CB_Move.TabIndex = 1; + this.CB_Move.SelectedIndexChanged += new System.EventHandler(this.ChangeEntry); + // + // L_Move + // + this.L_Move.AutoSize = true; + this.L_Move.Location = new System.Drawing.Point(33, 13); + this.L_Move.Name = "L_Move"; + this.L_Move.Size = new System.Drawing.Size(37, 13); + this.L_Move.TabIndex = 2; + this.L_Move.Text = "Move:"; + this.L_Move.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_Type + // + this.CB_Type.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_Type.FormattingEnabled = true; + this.CB_Type.Location = new System.Drawing.Point(71, 35); + this.CB_Type.Name = "CB_Type"; + this.CB_Type.Size = new System.Drawing.Size(99, 21); + this.CB_Type.TabIndex = 3; + // + // CB_Category + // + this.CB_Category.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_Category.FormattingEnabled = true; + this.CB_Category.Location = new System.Drawing.Point(71, 58); + this.CB_Category.Name = "CB_Category"; + this.CB_Category.Size = new System.Drawing.Size(99, 21); + this.CB_Category.TabIndex = 4; + // + // L_Category + // + this.L_Category.AutoSize = true; + this.L_Category.Location = new System.Drawing.Point(18, 61); + this.L_Category.Name = "L_Category"; + this.L_Category.Size = new System.Drawing.Size(52, 13); + this.L_Category.TabIndex = 5; + this.L_Category.Text = "Category:"; + this.L_Category.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_BP + // + this.L_BP.AutoSize = true; + this.L_BP.Location = new System.Drawing.Point(26, 132); + this.L_BP.Name = "L_BP"; + this.L_BP.Size = new System.Drawing.Size(40, 13); + this.L_BP.TabIndex = 7; + this.L_BP.Text = "Power:"; + this.L_BP.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_PP + // + this.L_PP.AutoSize = true; + this.L_PP.Location = new System.Drawing.Point(15, 174); + this.L_PP.Name = "L_PP"; + this.L_PP.Size = new System.Drawing.Size(51, 13); + this.L_PP.TabIndex = 8; + this.L_PP.Text = "Base PP:"; + this.L_PP.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_Min + // + this.L_Min.AutoSize = true; + this.L_Min.Location = new System.Drawing.Point(236, 132); + this.L_Min.Name = "L_Min"; + this.L_Min.Size = new System.Drawing.Size(48, 13); + this.L_Min.TabIndex = 10; + this.L_Min.Text = "Min Hits:"; + this.L_Min.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_Max + // + this.L_Max.AutoSize = true; + this.L_Max.Location = new System.Drawing.Point(233, 153); + this.L_Max.Name = "L_Max"; + this.L_Max.Size = new System.Drawing.Size(51, 13); + this.L_Max.TabIndex = 12; + this.L_Max.Text = "Max Hits:"; + this.L_Max.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_Priority + // + this.L_Priority.AutoSize = true; + this.L_Priority.Location = new System.Drawing.Point(25, 195); + this.L_Priority.Name = "L_Priority"; + this.L_Priority.Size = new System.Drawing.Size(41, 13); + this.L_Priority.TabIndex = 17; + this.L_Priority.Text = "Priority:"; + // + // NUD_HitMax + // + this.NUD_HitMax.Location = new System.Drawing.Point(290, 151); + this.NUD_HitMax.Maximum = new decimal(new int[] { + 6, + 0, + 0, + 0}); + this.NUD_HitMax.Name = "NUD_HitMax"; + this.NUD_HitMax.Size = new System.Drawing.Size(30, 20); + this.NUD_HitMax.TabIndex = 18; + // + // NUD_HitMin + // + this.NUD_HitMin.Location = new System.Drawing.Point(290, 130); + this.NUD_HitMin.Maximum = new decimal(new int[] { + 6, + 0, + 0, + 0}); + this.NUD_HitMin.Name = "NUD_HitMin"; + this.NUD_HitMin.Size = new System.Drawing.Size(30, 20); + this.NUD_HitMin.TabIndex = 19; + // + // NUD_Priority + // + this.NUD_Priority.Location = new System.Drawing.Point(72, 193); + this.NUD_Priority.Maximum = new decimal(new int[] { + 8, + 0, + 0, + 0}); + this.NUD_Priority.Minimum = new decimal(new int[] { + 8, + 0, + 0, + -2147483648}); + this.NUD_Priority.Name = "NUD_Priority"; + this.NUD_Priority.Size = new System.Drawing.Size(35, 20); + this.NUD_Priority.TabIndex = 20; + // + // NUD_PP + // + this.NUD_PP.Location = new System.Drawing.Point(72, 172); + this.NUD_PP.Maximum = new decimal(new int[] { + 40, + 0, + 0, + 0}); + this.NUD_PP.Name = "NUD_PP"; + this.NUD_PP.Size = new System.Drawing.Size(35, 20); + this.NUD_PP.TabIndex = 21; + // + // NUD_Power + // + this.NUD_Power.Location = new System.Drawing.Point(72, 130); + this.NUD_Power.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.NUD_Power.Name = "NUD_Power"; + this.NUD_Power.Size = new System.Drawing.Size(45, 20); + this.NUD_Power.TabIndex = 22; + // + // NUD_TurnMin + // + this.NUD_TurnMin.Location = new System.Drawing.Point(290, 172); + this.NUD_TurnMin.Maximum = new decimal(new int[] { + 15, + 0, + 0, + 0}); + this.NUD_TurnMin.Name = "NUD_TurnMin"; + this.NUD_TurnMin.Size = new System.Drawing.Size(30, 20); + this.NUD_TurnMin.TabIndex = 26; + // + // L_TrapMin + // + this.L_TrapMin.AutoSize = true; + this.L_TrapMin.Location = new System.Drawing.Point(227, 174); + this.L_TrapMin.Name = "L_TrapMin"; + this.L_TrapMin.Size = new System.Drawing.Size(57, 13); + this.L_TrapMin.TabIndex = 23; + this.L_TrapMin.Text = "Min Turns:"; + this.L_TrapMin.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_TurnMax + // + this.NUD_TurnMax.Location = new System.Drawing.Point(290, 193); + this.NUD_TurnMax.Maximum = new decimal(new int[] { + 15, + 0, + 0, + 0}); + this.NUD_TurnMax.Name = "NUD_TurnMax"; + this.NUD_TurnMax.Size = new System.Drawing.Size(30, 20); + this.NUD_TurnMax.TabIndex = 25; + // + // L_TrapMax + // + this.L_TrapMax.AutoSize = true; + this.L_TrapMax.Location = new System.Drawing.Point(224, 195); + this.L_TrapMax.Name = "L_TrapMax"; + this.L_TrapMax.Size = new System.Drawing.Size(60, 13); + this.L_TrapMax.TabIndex = 24; + this.L_TrapMax.Text = "Max Turns:"; + this.L_TrapMax.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_Recoil + // + this.NUD_Recoil.Location = new System.Drawing.Point(184, 172); + this.NUD_Recoil.Minimum = new decimal(new int[] { + 100, + 0, + 0, + -2147483648}); + this.NUD_Recoil.Name = "NUD_Recoil"; + this.NUD_Recoil.Size = new System.Drawing.Size(40, 20); + this.NUD_Recoil.TabIndex = 34; + // + // L_Recoil + // + this.L_Recoil.AutoSize = true; + this.L_Recoil.Location = new System.Drawing.Point(114, 174); + this.L_Recoil.Name = "L_Recoil"; + this.L_Recoil.Size = new System.Drawing.Size(64, 13); + this.L_Recoil.TabIndex = 31; + this.L_Recoil.Text = "Rec/Abs %:"; + this.L_Recoil.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_Heal + // + this.NUD_Heal.Location = new System.Drawing.Point(184, 151); + this.NUD_Heal.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.NUD_Heal.Name = "NUD_Heal"; + this.NUD_Heal.Size = new System.Drawing.Size(40, 20); + this.NUD_Heal.TabIndex = 33; + // + // L_Heal + // + this.L_Heal.AutoSize = true; + this.L_Heal.Location = new System.Drawing.Point(135, 153); + this.L_Heal.Name = "L_Heal"; + this.L_Heal.Size = new System.Drawing.Size(43, 13); + this.L_Heal.TabIndex = 32; + this.L_Heal.Text = "Heal %:"; + this.L_Heal.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_CritStage + // + this.NUD_CritStage.Location = new System.Drawing.Point(184, 193); + this.NUD_CritStage.Maximum = new decimal(new int[] { + 6, + 0, + 0, + 0}); + this.NUD_CritStage.Name = "NUD_CritStage"; + this.NUD_CritStage.Size = new System.Drawing.Size(30, 20); + this.NUD_CritStage.TabIndex = 30; + // + // L_CritStage + // + this.L_CritStage.AutoSize = true; + this.L_CritStage.Location = new System.Drawing.Point(122, 195); + this.L_CritStage.Name = "L_CritStage"; + this.L_CritStage.Size = new System.Drawing.Size(56, 13); + this.L_CritStage.TabIndex = 27; + this.L_CritStage.Text = "Crit Stage:"; + this.L_CritStage.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_Flinch + // + this.NUD_Flinch.Location = new System.Drawing.Point(184, 130); + this.NUD_Flinch.Maximum = new decimal(new int[] { + 101, + 0, + 0, + 0}); + this.NUD_Flinch.Name = "NUD_Flinch"; + this.NUD_Flinch.Size = new System.Drawing.Size(40, 20); + this.NUD_Flinch.TabIndex = 29; + // + // L_Flinch + // + this.L_Flinch.AutoSize = true; + this.L_Flinch.Location = new System.Drawing.Point(129, 132); + this.L_Flinch.Name = "L_Flinch"; + this.L_Flinch.Size = new System.Drawing.Size(49, 13); + this.L_Flinch.TabIndex = 28; + this.L_Flinch.Text = "Flinch %:"; + this.L_Flinch.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // GB_Stat + // + this.GB_Stat.Controls.Add(this.NUD_StatP3); + this.GB_Stat.Controls.Add(this.NUD_StatP2); + this.GB_Stat.Controls.Add(this.NUD_StatP1); + this.GB_Stat.Controls.Add(this.NUD_Stat2); + this.GB_Stat.Controls.Add(this.NUD_Stat3); + this.GB_Stat.Controls.Add(this.NUD_Stat1); + this.GB_Stat.Controls.Add(this.CB_Stat3); + this.GB_Stat.Controls.Add(this.CB_Stat2); + this.GB_Stat.Controls.Add(this.CB_Stat1); + this.GB_Stat.Controls.Add(this.L_Stage3); + this.GB_Stat.Controls.Add(this.L_Stage2); + this.GB_Stat.Controls.Add(this.L_Stage1); + this.GB_Stat.Location = new System.Drawing.Point(11, 216); + this.GB_Stat.Name = "GB_Stat"; + this.GB_Stat.Size = new System.Drawing.Size(212, 100); + this.GB_Stat.TabIndex = 35; + this.GB_Stat.TabStop = false; + this.GB_Stat.Text = "Stat Stage Changes"; + // + // NUD_StatP3 + // + this.NUD_StatP3.Location = new System.Drawing.Point(165, 68); + this.NUD_StatP3.Maximum = new decimal(new int[] { + 101, + 0, + 0, + 0}); + this.NUD_StatP3.Name = "NUD_StatP3"; + this.NUD_StatP3.Size = new System.Drawing.Size(40, 20); + this.NUD_StatP3.TabIndex = 44; + // + // NUD_StatP2 + // + this.NUD_StatP2.Location = new System.Drawing.Point(165, 46); + this.NUD_StatP2.Maximum = new decimal(new int[] { + 101, + 0, + 0, + 0}); + this.NUD_StatP2.Name = "NUD_StatP2"; + this.NUD_StatP2.Size = new System.Drawing.Size(40, 20); + this.NUD_StatP2.TabIndex = 43; + // + // NUD_StatP1 + // + this.NUD_StatP1.Location = new System.Drawing.Point(165, 24); + this.NUD_StatP1.Maximum = new decimal(new int[] { + 101, + 0, + 0, + 0}); + this.NUD_StatP1.Name = "NUD_StatP1"; + this.NUD_StatP1.Size = new System.Drawing.Size(40, 20); + this.NUD_StatP1.TabIndex = 42; + // + // NUD_Stat2 + // + this.NUD_Stat2.Location = new System.Drawing.Point(127, 46); + this.NUD_Stat2.Maximum = new decimal(new int[] { + 5, + 0, + 0, + 0}); + this.NUD_Stat2.Minimum = new decimal(new int[] { + 5, + 0, + 0, + -2147483648}); + this.NUD_Stat2.Name = "NUD_Stat2"; + this.NUD_Stat2.Size = new System.Drawing.Size(35, 20); + this.NUD_Stat2.TabIndex = 41; + // + // NUD_Stat3 + // + this.NUD_Stat3.Location = new System.Drawing.Point(127, 68); + this.NUD_Stat3.Maximum = new decimal(new int[] { + 5, + 0, + 0, + 0}); + this.NUD_Stat3.Minimum = new decimal(new int[] { + 5, + 0, + 0, + -2147483648}); + this.NUD_Stat3.Name = "NUD_Stat3"; + this.NUD_Stat3.Size = new System.Drawing.Size(35, 20); + this.NUD_Stat3.TabIndex = 40; + // + // NUD_Stat1 + // + this.NUD_Stat1.Location = new System.Drawing.Point(127, 24); + this.NUD_Stat1.Maximum = new decimal(new int[] { + 5, + 0, + 0, + 0}); + this.NUD_Stat1.Minimum = new decimal(new int[] { + 5, + 0, + 0, + -2147483648}); + this.NUD_Stat1.Name = "NUD_Stat1"; + this.NUD_Stat1.Size = new System.Drawing.Size(35, 20); + this.NUD_Stat1.TabIndex = 39; + // + // CB_Stat3 + // + this.CB_Stat3.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_Stat3.FormattingEnabled = true; + this.CB_Stat3.Location = new System.Drawing.Point(27, 67); + this.CB_Stat3.Name = "CB_Stat3"; + this.CB_Stat3.Size = new System.Drawing.Size(99, 21); + this.CB_Stat3.TabIndex = 38; + // + // CB_Stat2 + // + this.CB_Stat2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_Stat2.FormattingEnabled = true; + this.CB_Stat2.Location = new System.Drawing.Point(27, 45); + this.CB_Stat2.Name = "CB_Stat2"; + this.CB_Stat2.Size = new System.Drawing.Size(99, 21); + this.CB_Stat2.TabIndex = 37; + // + // CB_Stat1 + // + this.CB_Stat1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_Stat1.FormattingEnabled = true; + this.CB_Stat1.Location = new System.Drawing.Point(27, 23); + this.CB_Stat1.Name = "CB_Stat1"; + this.CB_Stat1.Size = new System.Drawing.Size(99, 21); + this.CB_Stat1.TabIndex = 36; + // + // L_Stage3 + // + this.L_Stage3.AutoSize = true; + this.L_Stage3.Location = new System.Drawing.Point(5, 70); + this.L_Stage3.Name = "L_Stage3"; + this.L_Stage3.Size = new System.Drawing.Size(16, 13); + this.L_Stage3.TabIndex = 2; + this.L_Stage3.Text = "3:"; + // + // L_Stage2 + // + this.L_Stage2.AutoSize = true; + this.L_Stage2.Location = new System.Drawing.Point(5, 48); + this.L_Stage2.Name = "L_Stage2"; + this.L_Stage2.Size = new System.Drawing.Size(16, 13); + this.L_Stage2.TabIndex = 1; + this.L_Stage2.Text = "2:"; + // + // L_Stage1 + // + this.L_Stage1.AutoSize = true; + this.L_Stage1.Location = new System.Drawing.Point(5, 26); + this.L_Stage1.Name = "L_Stage1"; + this.L_Stage1.Size = new System.Drawing.Size(16, 13); + this.L_Stage1.TabIndex = 0; + this.L_Stage1.Text = "1:"; + // + // L_Targeting + // + this.L_Targeting.AutoSize = true; + this.L_Targeting.Location = new System.Drawing.Point(173, 38); + this.L_Targeting.Name = "L_Targeting"; + this.L_Targeting.Size = new System.Drawing.Size(55, 13); + this.L_Targeting.TabIndex = 36; + this.L_Targeting.Text = "Targeting:"; + this.L_Targeting.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_Influcts + // + this.L_Influcts.AutoSize = true; + this.L_Influcts.Location = new System.Drawing.Point(188, 60); + this.L_Influcts.Name = "L_Influcts"; + this.L_Influcts.Size = new System.Drawing.Size(40, 13); + this.L_Influcts.TabIndex = 37; + this.L_Influcts.Text = "Inflicts:"; + this.L_Influcts.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // RTB + // + this.RTB.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.RTB.Location = new System.Drawing.Point(12, 324); + this.RTB.Name = "RTB"; + this.RTB.ReadOnly = true; + this.RTB.Size = new System.Drawing.Size(316, 51); + this.RTB.TabIndex = 38; + this.RTB.Text = ""; + // + // CB_Targeting + // + this.CB_Targeting.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_Targeting.DropDownWidth = 150; + this.CB_Targeting.FormattingEnabled = true; + this.CB_Targeting.Location = new System.Drawing.Point(228, 35); + this.CB_Targeting.Name = "CB_Targeting"; + this.CB_Targeting.Size = new System.Drawing.Size(99, 21); + this.CB_Targeting.TabIndex = 39; + // + // CB_Inflict + // + this.CB_Inflict.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_Inflict.DropDownWidth = 150; + this.CB_Inflict.FormattingEnabled = true; + this.CB_Inflict.Location = new System.Drawing.Point(228, 57); + this.CB_Inflict.Name = "CB_Inflict"; + this.CB_Inflict.Size = new System.Drawing.Size(99, 21); + this.CB_Inflict.TabIndex = 40; + // + // L_Inflict + // + this.L_Inflict.AutoSize = true; + this.L_Inflict.Location = new System.Drawing.Point(238, 81); + this.L_Inflict.Name = "L_Inflict"; + this.L_Inflict.Size = new System.Drawing.Size(46, 13); + this.L_Inflict.TabIndex = 41; + this.L_Inflict.Text = "Inflict %:"; + this.L_Inflict.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_Inflict + // + this.NUD_Inflict.Location = new System.Drawing.Point(287, 78); + this.NUD_Inflict.Maximum = new decimal(new int[] { + 101, + 0, + 0, + 0}); + this.NUD_Inflict.Name = "NUD_Inflict"; + this.NUD_Inflict.Size = new System.Drawing.Size(40, 20); + this.NUD_Inflict.TabIndex = 42; + // + // NUD_Effect + // + this.NUD_Effect.Location = new System.Drawing.Point(150, 103); + this.NUD_Effect.Maximum = new decimal(new int[] { + 65535, + 0, + 0, + 0}); + this.NUD_Effect.Name = "NUD_Effect"; + this.NUD_Effect.Size = new System.Drawing.Size(50, 20); + this.NUD_Effect.TabIndex = 44; + // + // L_Effect + // + this.L_Effect.AutoSize = true; + this.L_Effect.Location = new System.Drawing.Point(106, 106); + this.L_Effect.Name = "L_Effect"; + this.L_Effect.Size = new System.Drawing.Size(38, 13); + this.L_Effect.TabIndex = 45; + this.L_Effect.Text = "Effect:"; + this.L_Effect.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_Accuracy + // + this.NUD_Accuracy.Location = new System.Drawing.Point(72, 151); + this.NUD_Accuracy.Maximum = new decimal(new int[] { + 101, + 0, + 0, + 0}); + this.NUD_Accuracy.Name = "NUD_Accuracy"; + this.NUD_Accuracy.Size = new System.Drawing.Size(40, 20); + this.NUD_Accuracy.TabIndex = 47; + // + // L_Accuracy + // + this.L_Accuracy.AutoSize = true; + this.L_Accuracy.Location = new System.Drawing.Point(17, 153); + this.L_Accuracy.Name = "L_Accuracy"; + this.L_Accuracy.Size = new System.Drawing.Size(49, 13); + this.L_Accuracy.TabIndex = 46; + this.L_Accuracy.Text = "Accur %:"; + this.L_Accuracy.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_Quality + // + this.CB_Quality.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_Quality.DropDownWidth = 170; + this.CB_Quality.FormattingEnabled = true; + this.CB_Quality.Location = new System.Drawing.Point(71, 81); + this.CB_Quality.Name = "CB_Quality"; + this.CB_Quality.Size = new System.Drawing.Size(129, 21); + this.CB_Quality.TabIndex = 48; + // + // L_Quality + // + this.L_Quality.AutoSize = true; + this.L_Quality.Location = new System.Drawing.Point(20, 84); + this.L_Quality.Name = "L_Quality"; + this.L_Quality.Size = new System.Drawing.Size(50, 13); + this.L_Quality.TabIndex = 49; + this.L_Quality.Text = "Qualities:"; + this.L_Quality.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_0xB + // + this.L_0xB.AutoSize = true; + this.L_0xB.Location = new System.Drawing.Point(256, 101); + this.L_0xB.Name = "L_0xB"; + this.L_0xB.Size = new System.Drawing.Size(28, 13); + this.L_0xB.TabIndex = 50; + this.L_0xB.Text = "0xB:"; + this.L_0xB.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_0xB + // + this.NUD_0xB.Location = new System.Drawing.Point(287, 99); + this.NUD_0xB.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.NUD_0xB.Name = "NUD_0xB"; + this.NUD_0xB.Size = new System.Drawing.Size(40, 20); + this.NUD_0xB.TabIndex = 51; + // + // B_RandAll + // + this.B_RandAll.Location = new System.Drawing.Point(333, 10); + this.B_RandAll.Name = "B_RandAll"; + this.B_RandAll.Size = new System.Drawing.Size(98, 23); + this.B_RandAll.TabIndex = 63; + this.B_RandAll.Text = "Randomize!"; + this.B_RandAll.UseVisualStyleBackColor = true; + this.B_RandAll.Click += new System.EventHandler(this.B_RandAll_Click); + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.CHK_Category); + this.groupBox1.Controls.Add(this.CHK_Type); + this.groupBox1.Location = new System.Drawing.Point(333, 60); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(98, 55); + this.groupBox1.TabIndex = 64; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Options"; + // + // CHK_Category + // + this.CHK_Category.AutoSize = true; + this.CHK_Category.Location = new System.Drawing.Point(6, 34); + this.CHK_Category.Name = "CHK_Category"; + this.CHK_Category.Size = new System.Drawing.Size(68, 17); + this.CHK_Category.TabIndex = 1; + this.CHK_Category.Text = "Category"; + this.CHK_Category.UseVisualStyleBackColor = true; + // + // CHK_Type + // + this.CHK_Type.AutoSize = true; + this.CHK_Type.Location = new System.Drawing.Point(6, 19); + this.CHK_Type.Name = "CHK_Type"; + this.CHK_Type.Size = new System.Drawing.Size(50, 17); + this.CHK_Type.TabIndex = 0; + this.CHK_Type.Text = "Type"; + this.CHK_Type.UseVisualStyleBackColor = true; + // + // B_Metronome + // + this.B_Metronome.Location = new System.Drawing.Point(333, 33); + this.B_Metronome.Name = "B_Metronome"; + this.B_Metronome.Size = new System.Drawing.Size(98, 23); + this.B_Metronome.TabIndex = 65; + this.B_Metronome.Text = "Metronome Mode"; + this.B_Metronome.UseVisualStyleBackColor = true; + this.B_Metronome.Click += new System.EventHandler(this.B_Metronome_Click); + // + // B_Table + // + this.B_Table.Location = new System.Drawing.Point(356, 117); + this.B_Table.Name = "B_Table"; + this.B_Table.Size = new System.Drawing.Size(75, 23); + this.B_Table.TabIndex = 66; + this.B_Table.Text = "Export Table"; + this.B_Table.UseVisualStyleBackColor = true; + this.B_Table.Click += new System.EventHandler(this.B_Table_Click); + // + // CLB_Flags + // + this.CLB_Flags.FormattingEnabled = true; + this.CLB_Flags.Location = new System.Drawing.Point(328, 146); + this.CLB_Flags.Name = "CLB_Flags"; + this.CLB_Flags.Size = new System.Drawing.Size(103, 229); + this.CLB_Flags.TabIndex = 70; + // + // MoveEditor6 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(439, 381); + this.Controls.Add(this.CLB_Flags); + this.Controls.Add(this.B_Table); + this.Controls.Add(this.B_Metronome); + this.Controls.Add(this.groupBox1); + this.Controls.Add(this.B_RandAll); + this.Controls.Add(this.NUD_0xB); + this.Controls.Add(this.L_0xB); + this.Controls.Add(this.CB_Quality); + this.Controls.Add(this.L_Quality); + this.Controls.Add(this.NUD_Accuracy); + this.Controls.Add(this.L_Accuracy); + this.Controls.Add(this.L_Effect); + this.Controls.Add(this.NUD_Effect); + this.Controls.Add(this.NUD_Inflict); + this.Controls.Add(this.L_Inflict); + this.Controls.Add(this.CB_Inflict); + this.Controls.Add(this.CB_Targeting); + this.Controls.Add(this.RTB); + this.Controls.Add(this.L_Targeting); + this.Controls.Add(this.L_Influcts); + this.Controls.Add(this.GB_Stat); + this.Controls.Add(this.NUD_Recoil); + this.Controls.Add(this.L_Recoil); + this.Controls.Add(this.NUD_Heal); + this.Controls.Add(this.L_Heal); + this.Controls.Add(this.NUD_CritStage); + this.Controls.Add(this.L_CritStage); + this.Controls.Add(this.NUD_Flinch); + this.Controls.Add(this.L_Flinch); + this.Controls.Add(this.NUD_TurnMin); + this.Controls.Add(this.L_TrapMin); + this.Controls.Add(this.NUD_TurnMax); + this.Controls.Add(this.L_TrapMax); + this.Controls.Add(this.L_Type); + this.Controls.Add(this.L_BP); + this.Controls.Add(this.CB_Type); + this.Controls.Add(this.NUD_Power); + this.Controls.Add(this.CB_Category); + this.Controls.Add(this.L_Category); + this.Controls.Add(this.NUD_PP); + this.Controls.Add(this.NUD_Priority); + this.Controls.Add(this.NUD_HitMin); + this.Controls.Add(this.L_PP); + this.Controls.Add(this.L_Min); + this.Controls.Add(this.L_Priority); + this.Controls.Add(this.NUD_HitMax); + this.Controls.Add(this.L_Max); + this.Controls.Add(this.L_Move); + this.Controls.Add(this.CB_Move); + this.MaximizeBox = false; + this.MaximumSize = new System.Drawing.Size(455, 420); + this.MinimumSize = new System.Drawing.Size(355, 420); + this.Name = "MoveEditor6"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Move Editor"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.CloseForm); + ((System.ComponentModel.ISupportInitialize)(this.NUD_HitMax)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_HitMin)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Priority)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_PP)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Power)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_TurnMin)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_TurnMax)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Recoil)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Heal)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_CritStage)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Flinch)).EndInit(); + this.GB_Stat.ResumeLayout(false); + this.GB_Stat.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_StatP3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_StatP2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_StatP1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Stat2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Stat3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Stat1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Inflict)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Effect)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Accuracy)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_0xB)).EndInit(); + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label L_Type; + private System.Windows.Forms.ComboBox CB_Move; + private System.Windows.Forms.Label L_Move; + private System.Windows.Forms.ComboBox CB_Type; + private System.Windows.Forms.ComboBox CB_Category; + private System.Windows.Forms.Label L_Category; + private System.Windows.Forms.Label L_BP; + private System.Windows.Forms.Label L_PP; + private System.Windows.Forms.Label L_Min; + private System.Windows.Forms.Label L_Max; + private System.Windows.Forms.Label L_Priority; + private System.Windows.Forms.NumericUpDown NUD_HitMax; + private System.Windows.Forms.NumericUpDown NUD_HitMin; + private System.Windows.Forms.NumericUpDown NUD_Priority; + private System.Windows.Forms.NumericUpDown NUD_PP; + private System.Windows.Forms.NumericUpDown NUD_Power; + private System.Windows.Forms.NumericUpDown NUD_TurnMin; + private System.Windows.Forms.Label L_TrapMin; + private System.Windows.Forms.NumericUpDown NUD_TurnMax; + private System.Windows.Forms.Label L_TrapMax; + private System.Windows.Forms.NumericUpDown NUD_Recoil; + private System.Windows.Forms.Label L_Recoil; + private System.Windows.Forms.NumericUpDown NUD_Heal; + private System.Windows.Forms.Label L_Heal; + private System.Windows.Forms.NumericUpDown NUD_CritStage; + private System.Windows.Forms.Label L_CritStage; + private System.Windows.Forms.NumericUpDown NUD_Flinch; + private System.Windows.Forms.Label L_Flinch; + private System.Windows.Forms.GroupBox GB_Stat; + private System.Windows.Forms.NumericUpDown NUD_Stat2; + private System.Windows.Forms.NumericUpDown NUD_Stat3; + private System.Windows.Forms.NumericUpDown NUD_Stat1; + private System.Windows.Forms.ComboBox CB_Stat3; + private System.Windows.Forms.ComboBox CB_Stat2; + private System.Windows.Forms.ComboBox CB_Stat1; + private System.Windows.Forms.Label L_Stage3; + private System.Windows.Forms.Label L_Stage2; + private System.Windows.Forms.Label L_Stage1; + private System.Windows.Forms.Label L_Targeting; + private System.Windows.Forms.Label L_Influcts; + private System.Windows.Forms.RichTextBox RTB; + private System.Windows.Forms.ComboBox CB_Targeting; + private System.Windows.Forms.ComboBox CB_Inflict; + private System.Windows.Forms.Label L_Inflict; + private System.Windows.Forms.NumericUpDown NUD_Inflict; + private System.Windows.Forms.NumericUpDown NUD_Effect; + private System.Windows.Forms.Label L_Effect; + private System.Windows.Forms.NumericUpDown NUD_Accuracy; + private System.Windows.Forms.Label L_Accuracy; + private System.Windows.Forms.ComboBox CB_Quality; + private System.Windows.Forms.Label L_Quality; + private System.Windows.Forms.NumericUpDown NUD_StatP3; + private System.Windows.Forms.NumericUpDown NUD_StatP2; + private System.Windows.Forms.NumericUpDown NUD_StatP1; + private System.Windows.Forms.Label L_0xB; + private System.Windows.Forms.NumericUpDown NUD_0xB; + private System.Windows.Forms.Button B_RandAll; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.CheckBox CHK_Category; + private System.Windows.Forms.CheckBox CHK_Type; + private System.Windows.Forms.Button B_Metronome; + private System.Windows.Forms.Button B_Table; + private System.Windows.Forms.CheckedListBox CLB_Flags; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen6/MoveEditor6.cs b/pk3DS.WinForms/Subforms/Gen6/MoveEditor6.cs new file mode 100644 index 0000000000..7ad8ea7ca7 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/MoveEditor6.cs @@ -0,0 +1,227 @@ +using pk3DS.Core; +using System; +using System.Linq; +using System.Windows.Forms; +using pk3DS.Core.Structures; + +namespace pk3DS.WinForms; + +public partial class MoveEditor6 : Form +{ + public MoveEditor6(byte[][] infiles) + { + files = infiles; + movelist[0] = ""; + + InitializeComponent(); + Setup(); + RandSettings.GetFormSettings(this, groupBox1.Controls); + } + + private readonly byte[][] files; + private readonly string[] types = Main.Config.GetText(TextName.Types); + private readonly string[] moveflavor = Main.Config.GetText(TextName.MoveFlavor); + private readonly string[] movelist = Main.Config.GetText(TextName.MoveNames); + private readonly string[] MoveCategories = ["Status", "Physical", "Special"]; + private readonly string[] StatCategories = ["None", "Attack", "Defense", "Special Attack", "Special Defense", "Speed", "Accuracy", "Evasion", "All", + ]; + + private readonly string[] TargetingTypes = + [ + "Single Adjacent Ally/Foe", + "Any Ally", "Any Adjacent Ally", "Single Adjacent Foe", "Everyone but User", "All Foes", + "All Allies", "Self", "All Pokémon on Field", "Single Adjacent Foe (2)", "Entire Field", + "Opponent's Field", "User's Field", "Self", + ]; + + private readonly string[] InflictionTypes = + [ + "None", + "Paralyze", "Sleep", "Freeze", "Burn", "Poison", + "Confusion", "Attract", "Capture", "Nightmare", "Curse", + "Taunt", "Torment", "Disable", "Yawn", "Heal Block", + "?", "Detect", "Leech Seed", "Embargo", "Perish Song", + "Ingrain", + ]; + + private readonly string[] MoveQualities = + [ + "Only DMG", + "No DMG -> Inflict Status", "No DMG -> -Target/+User Stat", "No DMG | Heal User", "DMG | Inflict Status", "No DMG | STATUS | +Target Stat", + "DMG | -Target Stat", "DMG | +User Stat", "DMG | Absorbs DMG", "One-Hit KO", "Affects Whole Field", + "Affect One Side of the Field", "Forces Target to Switch", "Unique Effect", + ]; + + private void Setup() + { + CB_Move.Items.AddRange(movelist); + CB_Type.Items.AddRange(types); + CB_Category.Items.AddRange(MoveCategories); + CB_Stat1.Items.AddRange(StatCategories); + CB_Stat2.Items.AddRange(StatCategories); + CB_Stat3.Items.AddRange(StatCategories); + CB_Targeting.Items.AddRange(TargetingTypes); + CB_Quality.Items.AddRange(MoveQualities); + CB_Inflict.Items.AddRange(InflictionTypes); + foreach (var s in Enum.GetNames(typeof(MoveFlag6)).Skip(1)) CLB_Flags.Items.Add(s); + CB_Inflict.Items.Add("Special"); + + CB_Move.Items.RemoveAt(0); + CB_Move.SelectedIndex = 0; + } + + private int entry = -1; + + private void ChangeEntry(object sender, EventArgs e) + { + SetEntry(); + entry = Array.IndexOf(movelist, CB_Move.Text); + GetEntry(); + } + + private void GetEntry() + { + if (entry < 1) return; + byte[] data = files[entry]; + { + RTB.Text = moveflavor[entry].Replace("\\n", Environment.NewLine); + + CB_Type.SelectedIndex = data[0x00]; + CB_Quality.SelectedIndex = data[0x01]; + CB_Category.SelectedIndex = data[0x02]; + NUD_Power.Value = data[0x3]; + NUD_Accuracy.Value = data[0x4]; + NUD_PP.Value = data[0x05]; + NUD_Priority.Value = (sbyte)data[0x06]; + NUD_HitMin.Value = data[0x7] & 0xF; + NUD_HitMax.Value = data[0x7] >> 4; + short inflictVal = BitConverter.ToInt16(data, 0x08); + CB_Inflict.SelectedIndex = inflictVal < 0 ? CB_Inflict.Items.Count - 1 : inflictVal; + NUD_Inflict.Value = data[0xA]; + NUD_0xB.Value = data[0xB]; // 0xB ~ Something to deal with skipImmunity + NUD_TurnMin.Value = data[0xC]; + NUD_TurnMax.Value = data[0xD]; + NUD_CritStage.Value = data[0xE]; + NUD_Flinch.Value = data[0xF]; + NUD_Effect.Value = BitConverter.ToUInt16(data, 0x10); + NUD_Recoil.Value = (sbyte)data[0x12]; + NUD_Heal.Value = data[0x13]; + + CB_Targeting.SelectedIndex = data[0x14]; + CB_Stat1.SelectedIndex = data[0x15]; + CB_Stat2.SelectedIndex = data[0x16]; + CB_Stat3.SelectedIndex = data[0x17]; + NUD_Stat1.Value = (sbyte)data[0x18]; + NUD_Stat2.Value = (sbyte)data[0x19]; + NUD_Stat3.Value = (sbyte)data[0x1A]; + NUD_StatP1.Value = data[0x1B]; + NUD_StatP2.Value = data[0x1C]; + NUD_StatP3.Value = data[0x1D]; + + var move = new Move6(data); + var flags = (uint)move.Flags; + for (int i = 0; i < CLB_Flags.Items.Count; i++) + CLB_Flags.SetItemChecked(i, ((flags >> i) & 1) == 1); + } + } + + private void SetEntry() + { + if (entry < 1) return; + byte[] data = files[entry]; + { + data[0x00] = (byte)CB_Type.SelectedIndex; + data[0x01] = (byte)CB_Quality.SelectedIndex; + data[0x02] = (byte)CB_Category.SelectedIndex; + data[0x03] = (byte)NUD_Power.Value; + data[0x04] = (byte)NUD_Accuracy.Value; + data[0x05] = (byte)NUD_PP.Value; + data[0x06] = (byte)(int)NUD_Priority.Value; + data[0x07] = (byte)((byte)NUD_HitMin.Value | ((byte)NUD_HitMax.Value << 4)); + int inflictval = CB_Inflict.SelectedIndex; if (inflictval == CB_Inflict.Items.Count) inflictval = -1; + Array.Copy(BitConverter.GetBytes((short)inflictval), 0, data, 0x08, 2); + data[0x0A] = (byte)NUD_Inflict.Value; + data[0x0B] = (byte)NUD_0xB.Value; + data[0x0C] = (byte)NUD_TurnMin.Value; + data[0x0D] = (byte)NUD_TurnMax.Value; + data[0x0E] = (byte)NUD_CritStage.Value; + data[0x0F] = (byte)NUD_Flinch.Value; + Array.Copy(BitConverter.GetBytes((ushort)NUD_Effect.Value), 0, data, 0x10, 2); + data[0x12] = (byte)(int)NUD_Recoil.Value; + data[0x13] = (byte)NUD_Heal.Value; + data[0x14] = (byte)CB_Targeting.SelectedIndex; + data[0x15] = (byte)CB_Stat1.SelectedIndex; + data[0x16] = (byte)CB_Stat2.SelectedIndex; + data[0x17] = (byte)CB_Stat3.SelectedIndex; + data[0x18] = (byte)(int)NUD_Stat1.Value; + data[0x19] = (byte)(int)NUD_Stat2.Value; + data[0x1A] = (byte)(int)NUD_Stat3.Value; + data[0x1B] = (byte)NUD_StatP1.Value; + data[0x1C] = (byte)NUD_StatP2.Value; + data[0x1D] = (byte)NUD_StatP3.Value; + + uint flagval = 0; + for (int i = 0; i < CLB_Flags.Items.Count; i++) + flagval |= CLB_Flags.GetItemChecked(i) ? 1u << i : 0; + BitConverter.GetBytes(flagval).CopyTo(data, 0x1E); + } + files[entry] = data; + } + + private void B_Table_Click(object sender, EventArgs e) + { + var items = files.Select(z => new Move6(z)); + Clipboard.SetText(TableUtil.GetTable(items, movelist)); + System.Media.SystemSounds.Asterisk.Play(); + } + + private void CloseForm(object sender, FormClosingEventArgs e) + { + SetEntry(); + RandSettings.SetFormSettings(this, groupBox1.Controls); + } + + private void B_RandAll_Click(object sender, EventArgs e) + { + if (!CHK_Category.Checked && !CHK_Type.Checked) + { + WinFormsUtil.Alert("Cannot randomize Moves.", "Please check any of the options on the right to randomize Moves."); + return; + } + + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomize Moves? Cannot undo.", "Double check options on the right before continuing.") != DialogResult.Yes) return; + Random rnd = Util.Rand; + for (int i = 0; i < CB_Move.Items.Count; i++) + { + CB_Move.SelectedIndex = i; // Get new Move + if (i is 165 or 174) continue; // Don't change Struggle or Curse + + // Change Damage Category if Not Status + if (CB_Category.SelectedIndex > 0 && CHK_Category.Checked) // Not Status + CB_Category.SelectedIndex = rnd.Next(1, 3); + + // Change Move Type + if (CHK_Type.Checked) + CB_Type.SelectedIndex = rnd.Next(0, 18); + } + WinFormsUtil.Alert("All Moves have been randomized!"); + } + + private void B_Metronome_Click(object sender, EventArgs e) + { + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Play using Metronome Mode?", "This will set the Base PP for every other Move to 0!") != DialogResult.Yes) return; + + for (int i = 0; i < CB_Move.Items.Count; i++) + { + CB_Move.SelectedIndex = i; + if (CB_Move.SelectedIndex is not (117 and 32)) + NUD_PP.Value = 0; + if (CB_Move.SelectedIndex == 117) + NUD_PP.Value = 40; + if (CB_Move.SelectedIndex == 32) + NUD_PP.Value = 1; + } + CB_Move.SelectedIndex = 0; + WinFormsUtil.Alert("All Moves have had their Base PP values modified!"); + } +} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/MoveEditor6.resx b/pk3DS.WinForms/Subforms/Gen6/MoveEditor6.resx similarity index 100% rename from pk3DS/Subforms/Gen6/MoveEditor6.resx rename to pk3DS.WinForms/Subforms/Gen6/MoveEditor6.resx diff --git a/pk3DS.WinForms/Subforms/Gen6/OPower.Designer.cs b/pk3DS.WinForms/Subforms/Gen6/OPower.Designer.cs new file mode 100644 index 0000000000..0041b6dead --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/OPower.Designer.cs @@ -0,0 +1,393 @@ +namespace pk3DS.WinForms; + +partial class OPower +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.RTB = new System.Windows.Forms.RichTextBox(); + this.TB_Name = new System.Windows.Forms.TextBox(); + this.TB_Type = new System.Windows.Forms.TextBox(); + this.NUD_PlayerCost = new System.Windows.Forms.NumericUpDown(); + this.NUD_OtherCost = new System.Windows.Forms.NumericUpDown(); + this.NUD_Stage = new System.Windows.Forms.NumericUpDown(); + this.NUD_LevelUp = new System.Windows.Forms.NumericUpDown(); + this.CB_Item = new System.Windows.Forms.ComboBox(); + this.NUD_Duration = new System.Windows.Forms.NumericUpDown(); + this.NUD_Efficacy = new System.Windows.Forms.NumericUpDown(); + this.L_PlayerCost = new System.Windows.Forms.Label(); + this.L_OtherCost = new System.Windows.Forms.Label(); + this.L_Stage = new System.Windows.Forms.Label(); + this.L_LevelUp = new System.Windows.Forms.Label(); + this.L_Duration = new System.Windows.Forms.Label(); + this.L_Efficacy = new System.Windows.Forms.Label(); + this.TB_Mini = new System.Windows.Forms.TextBox(); + this.TB_Quality = new System.Windows.Forms.TextBox(); + this.NUD_2 = new System.Windows.Forms.NumericUpDown(); + this.NUD_Usability = new System.Windows.Forms.NumericUpDown(); + this.L_2 = new System.Windows.Forms.Label(); + this.CB_SortOrder = new System.Windows.Forms.ComboBox(); + this.L_UsabilityText = new System.Windows.Forms.Label(); + this.L_Usability = new System.Windows.Forms.Label(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_PlayerCost)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_OtherCost)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Stage)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_LevelUp)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Duration)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Efficacy)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Usability)).BeginInit(); + this.SuspendLayout(); + // + // RTB + // + this.RTB.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.RTB.Location = new System.Drawing.Point(12, 85); + this.RTB.Name = "RTB"; + this.RTB.ReadOnly = true; + this.RTB.Size = new System.Drawing.Size(236, 51); + this.RTB.TabIndex = 38; + this.RTB.Text = ""; + // + // TB_Name + // + this.TB_Name.Location = new System.Drawing.Point(63, 11); + this.TB_Name.Name = "TB_Name"; + this.TB_Name.ReadOnly = true; + this.TB_Name.Size = new System.Drawing.Size(135, 20); + this.TB_Name.TabIndex = 39; + // + // TB_Type + // + this.TB_Type.Location = new System.Drawing.Point(12, 37); + this.TB_Type.Name = "TB_Type"; + this.TB_Type.ReadOnly = true; + this.TB_Type.Size = new System.Drawing.Size(135, 20); + this.TB_Type.TabIndex = 40; + // + // NUD_PlayerCost + // + this.NUD_PlayerCost.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.NUD_PlayerCost.Location = new System.Drawing.Point(327, 12); + this.NUD_PlayerCost.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.NUD_PlayerCost.Name = "NUD_PlayerCost"; + this.NUD_PlayerCost.Size = new System.Drawing.Size(45, 20); + this.NUD_PlayerCost.TabIndex = 42; + // + // NUD_OtherCost + // + this.NUD_OtherCost.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.NUD_OtherCost.Location = new System.Drawing.Point(327, 38); + this.NUD_OtherCost.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.NUD_OtherCost.Name = "NUD_OtherCost"; + this.NUD_OtherCost.Size = new System.Drawing.Size(45, 20); + this.NUD_OtherCost.TabIndex = 43; + // + // NUD_Stage + // + this.NUD_Stage.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.NUD_Stage.Location = new System.Drawing.Point(327, 64); + this.NUD_Stage.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.NUD_Stage.Name = "NUD_Stage"; + this.NUD_Stage.Size = new System.Drawing.Size(45, 20); + this.NUD_Stage.TabIndex = 44; + // + // NUD_LevelUp + // + this.NUD_LevelUp.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.NUD_LevelUp.Location = new System.Drawing.Point(327, 90); + this.NUD_LevelUp.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.NUD_LevelUp.Name = "NUD_LevelUp"; + this.NUD_LevelUp.Size = new System.Drawing.Size(45, 20); + this.NUD_LevelUp.TabIndex = 45; + // + // CB_Item + // + this.CB_Item.FormattingEnabled = true; + this.CB_Item.Location = new System.Drawing.Point(12, 11); + this.CB_Item.Name = "CB_Item"; + this.CB_Item.Size = new System.Drawing.Size(45, 21); + this.CB_Item.TabIndex = 46; + this.CB_Item.SelectedIndexChanged += new System.EventHandler(this.ChangeEntry); + // + // NUD_Duration + // + this.NUD_Duration.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.NUD_Duration.Location = new System.Drawing.Point(327, 116); + this.NUD_Duration.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.NUD_Duration.Name = "NUD_Duration"; + this.NUD_Duration.Size = new System.Drawing.Size(45, 20); + this.NUD_Duration.TabIndex = 47; + // + // NUD_Efficacy + // + this.NUD_Efficacy.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.NUD_Efficacy.Location = new System.Drawing.Point(327, 142); + this.NUD_Efficacy.Maximum = new decimal(new int[] { + 999, + 0, + 0, + 0}); + this.NUD_Efficacy.Name = "NUD_Efficacy"; + this.NUD_Efficacy.Size = new System.Drawing.Size(45, 20); + this.NUD_Efficacy.TabIndex = 48; + // + // L_PlayerCost + // + this.L_PlayerCost.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.L_PlayerCost.Location = new System.Drawing.Point(221, 9); + this.L_PlayerCost.Name = "L_PlayerCost"; + this.L_PlayerCost.Size = new System.Drawing.Size(100, 23); + this.L_PlayerCost.TabIndex = 49; + this.L_PlayerCost.Text = "Player Cost:"; + this.L_PlayerCost.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_OtherCost + // + this.L_OtherCost.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.L_OtherCost.Location = new System.Drawing.Point(221, 35); + this.L_OtherCost.Name = "L_OtherCost"; + this.L_OtherCost.Size = new System.Drawing.Size(100, 23); + this.L_OtherCost.TabIndex = 50; + this.L_OtherCost.Text = "Other Cost:"; + this.L_OtherCost.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_Stage + // + this.L_Stage.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.L_Stage.Location = new System.Drawing.Point(221, 61); + this.L_Stage.Name = "L_Stage"; + this.L_Stage.Size = new System.Drawing.Size(100, 23); + this.L_Stage.TabIndex = 51; + this.L_Stage.Text = "Stage:"; + this.L_Stage.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_LevelUp + // + this.L_LevelUp.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.L_LevelUp.Location = new System.Drawing.Point(221, 87); + this.L_LevelUp.Name = "L_LevelUp"; + this.L_LevelUp.Size = new System.Drawing.Size(100, 23); + this.L_LevelUp.TabIndex = 52; + this.L_LevelUp.Text = "Level Up:"; + this.L_LevelUp.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_Duration + // + this.L_Duration.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.L_Duration.Location = new System.Drawing.Point(221, 113); + this.L_Duration.Name = "L_Duration"; + this.L_Duration.Size = new System.Drawing.Size(100, 23); + this.L_Duration.TabIndex = 53; + this.L_Duration.Text = "Duration:"; + this.L_Duration.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_Efficacy + // + this.L_Efficacy.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.L_Efficacy.Location = new System.Drawing.Point(221, 139); + this.L_Efficacy.Name = "L_Efficacy"; + this.L_Efficacy.Size = new System.Drawing.Size(100, 23); + this.L_Efficacy.TabIndex = 54; + this.L_Efficacy.Text = "Efficacy:"; + this.L_Efficacy.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // TB_Mini + // + this.TB_Mini.Location = new System.Drawing.Point(153, 37); + this.TB_Mini.Name = "TB_Mini"; + this.TB_Mini.ReadOnly = true; + this.TB_Mini.Size = new System.Drawing.Size(45, 20); + this.TB_Mini.TabIndex = 55; + // + // TB_Quality + // + this.TB_Quality.Location = new System.Drawing.Point(12, 59); + this.TB_Quality.Name = "TB_Quality"; + this.TB_Quality.ReadOnly = true; + this.TB_Quality.Size = new System.Drawing.Size(135, 20); + this.TB_Quality.TabIndex = 57; + // + // NUD_2 + // + this.NUD_2.Location = new System.Drawing.Point(203, 137); + this.NUD_2.Maximum = new decimal(new int[] { + 999, + 0, + 0, + 0}); + this.NUD_2.Name = "NUD_2"; + this.NUD_2.ReadOnly = true; + this.NUD_2.Size = new System.Drawing.Size(45, 20); + this.NUD_2.TabIndex = 58; + // + // NUD_Usability + // + this.NUD_Usability.Location = new System.Drawing.Point(89, 137); + this.NUD_Usability.Maximum = new decimal(new int[] { + 999, + 0, + 0, + 0}); + this.NUD_Usability.Name = "NUD_Usability"; + this.NUD_Usability.Size = new System.Drawing.Size(45, 20); + this.NUD_Usability.TabIndex = 59; + // + // L_2 + // + this.L_2.AutoSize = true; + this.L_2.Location = new System.Drawing.Point(190, 139); + this.L_2.Name = "L_2"; + this.L_2.Size = new System.Drawing.Size(13, 13); + this.L_2.TabIndex = 63; + this.L_2.Text = "2"; + // + // CB_SortOrder + // + this.CB_SortOrder.Enabled = false; + this.CB_SortOrder.FormattingEnabled = true; + this.CB_SortOrder.Location = new System.Drawing.Point(153, 59); + this.CB_SortOrder.Name = "CB_SortOrder"; + this.CB_SortOrder.Size = new System.Drawing.Size(45, 21); + this.CB_SortOrder.TabIndex = 64; + // + // L_UsabilityText + // + this.L_UsabilityText.AutoSize = true; + this.L_UsabilityText.Location = new System.Drawing.Point(-2, 159); + this.L_UsabilityText.Name = "L_UsabilityText"; + this.L_UsabilityText.Size = new System.Drawing.Size(167, 13); + this.L_UsabilityText.TabIndex = 65; + this.L_UsabilityText.Text = "254 - Nobody, 0 - Self, 2 - Anyone"; + // + // L_Usability + // + this.L_Usability.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.L_Usability.Location = new System.Drawing.Point(-17, 134); + this.L_Usability.Name = "L_Usability"; + this.L_Usability.Size = new System.Drawing.Size(100, 23); + this.L_Usability.TabIndex = 66; + this.L_Usability.Text = "Usability(?):"; + this.L_Usability.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // OPower + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(384, 172); + this.Controls.Add(this.L_UsabilityText); + this.Controls.Add(this.CB_SortOrder); + this.Controls.Add(this.TB_Name); + this.Controls.Add(this.L_2); + this.Controls.Add(this.NUD_Usability); + this.Controls.Add(this.NUD_2); + this.Controls.Add(this.TB_Quality); + this.Controls.Add(this.TB_Mini); + this.Controls.Add(this.L_Stage); + this.Controls.Add(this.L_OtherCost); + this.Controls.Add(this.L_PlayerCost); + this.Controls.Add(this.NUD_Efficacy); + this.Controls.Add(this.NUD_Duration); + this.Controls.Add(this.CB_Item); + this.Controls.Add(this.NUD_LevelUp); + this.Controls.Add(this.NUD_Stage); + this.Controls.Add(this.NUD_OtherCost); + this.Controls.Add(this.NUD_PlayerCost); + this.Controls.Add(this.TB_Type); + this.Controls.Add(this.RTB); + this.Controls.Add(this.L_Efficacy); + this.Controls.Add(this.L_Duration); + this.Controls.Add(this.L_LevelUp); + this.Controls.Add(this.L_Usability); + this.MaximizeBox = false; + this.MaximumSize = new System.Drawing.Size(400, 210); + this.MinimumSize = new System.Drawing.Size(400, 210); + this.Name = "OPower"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "O-Power Editor"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form_Closing); + ((System.ComponentModel.ISupportInitialize)(this.NUD_PlayerCost)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_OtherCost)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Stage)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_LevelUp)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Duration)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Efficacy)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Usability)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.RichTextBox RTB; + private System.Windows.Forms.TextBox TB_Name; + private System.Windows.Forms.TextBox TB_Type; + private System.Windows.Forms.NumericUpDown NUD_PlayerCost; + private System.Windows.Forms.NumericUpDown NUD_OtherCost; + private System.Windows.Forms.NumericUpDown NUD_Stage; + private System.Windows.Forms.NumericUpDown NUD_LevelUp; + private System.Windows.Forms.ComboBox CB_Item; + private System.Windows.Forms.NumericUpDown NUD_Duration; + private System.Windows.Forms.NumericUpDown NUD_Efficacy; + private System.Windows.Forms.Label L_PlayerCost; + private System.Windows.Forms.Label L_OtherCost; + private System.Windows.Forms.Label L_Stage; + private System.Windows.Forms.Label L_LevelUp; + private System.Windows.Forms.Label L_Duration; + private System.Windows.Forms.Label L_Efficacy; + private System.Windows.Forms.TextBox TB_Mini; + private System.Windows.Forms.TextBox TB_Quality; + private System.Windows.Forms.NumericUpDown NUD_2; + private System.Windows.Forms.NumericUpDown NUD_Usability; + private System.Windows.Forms.Label L_2; + private System.Windows.Forms.ComboBox CB_SortOrder; + private System.Windows.Forms.Label L_UsabilityText; + private System.Windows.Forms.Label L_Usability; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen6/OPower.cs b/pk3DS.WinForms/Subforms/Gen6/OPower.cs new file mode 100644 index 0000000000..ae8caf83e0 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/OPower.cs @@ -0,0 +1,126 @@ +using pk3DS.Core; +using System; +using System.IO; +using System.Linq; +using System.Windows.Forms; + +namespace pk3DS.WinForms; + +public partial class OPower : Form +{ + public OPower() + { + InitializeComponent(); + if (Main.ExeFSPath == null) { WinFormsUtil.Alert("No exeFS code to load."); Close(); } + string[] files = Directory.GetFiles(Main.ExeFSPath); + if (!File.Exists(files[0]) || !Path.GetFileNameWithoutExtension(files[0]).Contains("code")) { WinFormsUtil.Alert("No .code.bin detected."); Close(); } + codebin = files[0]; + exefsData = File.ReadAllBytes(codebin); + if (exefsData.Length % 0x200 != 0) { WinFormsUtil.Alert(".code.bin not decompressed. Aborting."); Close(); } + + // Fetch Offset + offset = Util.IndexOfBytes(exefsData, [0x34, 0x39, 0x34, 0x36, 0x31, 0x38, 0x34, 0x35, 0x00], 0x400000, 0) + 9; + while (exefsData[offset] == 0xFF) offset++; + + // Gather Data + for (int i = 0; i < powerData.Length; i++) + powerData[i] = exefsData.Skip(offset + (22 * i)).Take(22).ToArray(); + + // Prepare View + for (int i = 0; i < 10; i++) CB_SortOrder.Items.Add(i); + for (int i = 1; i < powerData.Length; i++) CB_Item.Items.Add(i); + CB_Item.SelectedIndex = 0; + WinFormsUtil.Alert("More research is required for giving S/MAX O-Powers ingame."); + } + + private readonly string codebin; + private readonly int offset; + private readonly byte[] exefsData; + private readonly byte[][] powerData = new byte[65][]; + private readonly string[] powerFlavor = Main.Config.GetText(TextName.OPowerFlavor); + + private int entry = -1; + + private void ChangeEntry(object sender, EventArgs e) + { + SetEntry(); + entry = CB_Item.SelectedIndex + 1; + GetEntry(); + } + + private void GetEntry() + { + if (entry < 1) return; + + // Fetch Data + byte quality = powerData[entry][0]; + byte _01 = powerData[entry][1]; + byte _02 = powerData[entry][2]; + byte playerCost = powerData[entry][0x3]; + byte otherCost = powerData[entry][0x4]; + // 0x5 unused? + int type = BitConverter.ToUInt16(powerData[entry], 0x6); + int mini = BitConverter.ToUInt16(powerData[entry], 0x8); + int desc = BitConverter.ToUInt16(powerData[entry], 0xA); + int name = BitConverter.ToUInt16(powerData[entry], 0xC); + int stage = powerData[entry][0xE]; + int lvlup = powerData[entry][0xF]; + int sortOrder = BitConverter.ToUInt16(powerData[entry], 0x10); + int efficacy = BitConverter.ToUInt16(powerData[entry], 0x12); + byte duration = powerData[entry][0x14]; // sbyte FF = -1 (no duration?) + // 0x15 unused? + + // Apply Fields + NUD_PlayerCost.Value = playerCost; + NUD_OtherCost.Value = otherCost; + NUD_Stage.Value = stage; + NUD_LevelUp.Value = lvlup; + TB_Type.Text = powerFlavor[type]; + TB_Mini.Text = powerFlavor[mini]; + TB_Name.Text = powerFlavor[name]; + TB_Quality.Text = powerFlavor[1 + quality]; // powerFlavor[quality]; + RTB.Text = powerFlavor[desc].Replace("\\n", Environment.NewLine); + + NUD_Efficacy.Value = efficacy; + NUD_Duration.Value = duration; + + CB_SortOrder.SelectedIndex = sortOrder; + NUD_Usability.Value = _01; + NUD_2.Value = _02; + } + + private void SetEntry() + { + if (entry < 1) return; + + // Copy back in the edited data sections + byte playerCost = (byte)NUD_PlayerCost.Value; + byte otherCost = (byte)NUD_OtherCost.Value; + byte stage = (byte)NUD_Stage.Value; + byte lvlup = (byte)NUD_LevelUp.Value; + byte duration = (byte)NUD_Duration.Value; + ushort efficacy = (ushort)NUD_Efficacy.Value; + + powerData[entry][0x3] = playerCost; + powerData[entry][0x4] = otherCost; + powerData[entry][0xE] = stage; + powerData[entry][0xF] = lvlup; + BitConverter.GetBytes(efficacy).CopyTo(powerData[entry], 0x12); + powerData[entry][0x14] = duration; // sbyte FF = -1 (no duration?) + + byte usability = (byte)NUD_Usability.Value; + + if (usability is 2 or 254 or 0) + powerData[entry][1] = usability; + } + + private void Form_Closing(object sender, FormClosingEventArgs e) + { + SetEntry(); + // Copy data back to storage + for (int i = 0; i < powerData.Length; i++) + Array.Copy(powerData[i], 0, exefsData, offset + (i * powerData[i].Length), powerData[i].Length); + if (ModifierKeys != Keys.Control) + File.WriteAllBytes(codebin, exefsData); + } +} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/OPower.resx b/pk3DS.WinForms/Subforms/Gen6/OPower.resx similarity index 100% rename from pk3DS/Subforms/Gen6/OPower.resx rename to pk3DS.WinForms/Subforms/Gen6/OPower.resx diff --git a/pk3DS.WinForms/Subforms/Gen6/PersonalEditor6.Designer.cs b/pk3DS.WinForms/Subforms/Gen6/PersonalEditor6.Designer.cs new file mode 100644 index 0000000000..d632e73d9b --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/PersonalEditor6.Designer.cs @@ -0,0 +1,1736 @@ +namespace pk3DS.WinForms; + +partial class PersonalEditor6 +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.CB_Species = new System.Windows.Forms.ComboBox(); + this.L_Species_Precursor = new System.Windows.Forms.Label(); + this.TC_Pokemon = new System.Windows.Forms.TabControl(); + this.TP_General = new System.Windows.Forms.TabPage(); + this.TB_RawColor = new System.Windows.Forms.TextBox(); + this.L_HiddenAbility = new System.Windows.Forms.Label(); + this.L_Ability2 = new System.Windows.Forms.Label(); + this.L_Ability1 = new System.Windows.Forms.Label(); + this.TB_BST = new System.Windows.Forms.TextBox(); + this.L_BST = new System.Windows.Forms.Label(); + this.TB_CatchRate = new System.Windows.Forms.MaskedTextBox(); + this.TB_Stage = new System.Windows.Forms.TextBox(); + this.L_Stage = new System.Windows.Forms.Label(); + this.L_WeightKG = new System.Windows.Forms.Label(); + this.L_HeightM = new System.Windows.Forms.Label(); + this.TB_FormeCount = new System.Windows.Forms.TextBox(); + this.L_FormesCount = new System.Windows.Forms.Label(); + this.TB_FormeSprite = new System.Windows.Forms.TextBox(); + this.L_FormeSprite = new System.Windows.Forms.Label(); + this.L_CatchRate = new System.Windows.Forms.Label(); + this.CB_Color = new System.Windows.Forms.ComboBox(); + this.CB_EXPGroup = new System.Windows.Forms.ComboBox(); + this.L_Color = new System.Windows.Forms.Label(); + this.L_EXPGrowth = new System.Windows.Forms.Label(); + this.TB_Weight = new System.Windows.Forms.MaskedTextBox(); + this.TB_Height = new System.Windows.Forms.MaskedTextBox(); + this.L_Weight = new System.Windows.Forms.Label(); + this.L_Height = new System.Windows.Forms.Label(); + this.CB_Ability3 = new System.Windows.Forms.ComboBox(); + this.CB_Ability2 = new System.Windows.Forms.ComboBox(); + this.CB_Ability1 = new System.Windows.Forms.ComboBox(); + this.CB_EggGroup2 = new System.Windows.Forms.ComboBox(); + this.CB_EggGroup1 = new System.Windows.Forms.ComboBox(); + this.L_EggGroup = new System.Windows.Forms.Label(); + this.L_Ability = new System.Windows.Forms.Label(); + this.TB_BaseExp = new System.Windows.Forms.MaskedTextBox(); + this.L_BaseEXP = new System.Windows.Forms.Label(); + this.TB_HatchCycles = new System.Windows.Forms.MaskedTextBox(); + this.L_HatchCycles = new System.Windows.Forms.Label(); + this.TB_Friendship = new System.Windows.Forms.MaskedTextBox(); + this.TB_Gender = new System.Windows.Forms.MaskedTextBox(); + this.L_Friendship = new System.Windows.Forms.Label(); + this.L_Gender = new System.Windows.Forms.Label(); + this.L_Item1 = new System.Windows.Forms.Label(); + this.L_Item5 = new System.Windows.Forms.Label(); + this.L_Item50 = new System.Windows.Forms.Label(); + this.CB_HeldItem3 = new System.Windows.Forms.ComboBox(); + this.CB_HeldItem2 = new System.Windows.Forms.ComboBox(); + this.CB_HeldItem1 = new System.Windows.Forms.ComboBox(); + this.L_HeldItem = new System.Windows.Forms.Label(); + this.CB_Type2 = new System.Windows.Forms.ComboBox(); + this.CB_Type1 = new System.Windows.Forms.ComboBox(); + this.L_Type = new System.Windows.Forms.Label(); + this.TB_SPEEVs = new System.Windows.Forms.MaskedTextBox(); + this.TB_SPDEVs = new System.Windows.Forms.MaskedTextBox(); + this.TB_SPAEVs = new System.Windows.Forms.MaskedTextBox(); + this.TB_DEFEVs = new System.Windows.Forms.MaskedTextBox(); + this.TB_ATKEVs = new System.Windows.Forms.MaskedTextBox(); + this.TB_HPEVs = new System.Windows.Forms.MaskedTextBox(); + this.TB_BaseSPE = new System.Windows.Forms.MaskedTextBox(); + this.TB_BaseSPD = new System.Windows.Forms.MaskedTextBox(); + this.TB_BaseSPA = new System.Windows.Forms.MaskedTextBox(); + this.TB_BaseDEF = new System.Windows.Forms.MaskedTextBox(); + this.TB_BaseATK = new System.Windows.Forms.MaskedTextBox(); + this.TB_BaseHP = new System.Windows.Forms.MaskedTextBox(); + this.Label_HP = new System.Windows.Forms.Label(); + this.Label_ATK = new System.Windows.Forms.Label(); + this.Label_DEF = new System.Windows.Forms.Label(); + this.Label_SPA = new System.Windows.Forms.Label(); + this.Label_SPD = new System.Windows.Forms.Label(); + this.Label_SPE = new System.Windows.Forms.Label(); + this.L_EVYield = new System.Windows.Forms.Label(); + this.L_BaseStats = new System.Windows.Forms.Label(); + this.TP_MoveTutors = new System.Windows.Forms.TabPage(); + this.L_ORASTutors = new System.Windows.Forms.Label(); + this.L_Special = new System.Windows.Forms.Label(); + this.L_TMHM = new System.Windows.Forms.Label(); + this.CLB_ORASTutors = new System.Windows.Forms.CheckedListBox(); + this.CLB_MoveTutors = new System.Windows.Forms.CheckedListBox(); + this.CLB_TMHM = new System.Windows.Forms.CheckedListBox(); + this.TP_Randomizer = new System.Windows.Forms.TabPage(); + this.GB_Modifier = new System.Windows.Forms.GroupBox(); + this.CHK_FullTMCompatibility = new System.Windows.Forms.CheckBox(); + this.CHK_FullHMCompatibility = new System.Windows.Forms.CheckBox(); + this.CHK_NoTutor = new System.Windows.Forms.CheckBox(); + this.CHK_CatchRateMod = new System.Windows.Forms.CheckBox(); + this.L_CatchRateMod = new System.Windows.Forms.Label(); + this.NUD_CatchRateMod = new System.Windows.Forms.NumericUpDown(); + this.CHK_EXP = new System.Windows.Forms.CheckBox(); + this.CHK_Growth = new System.Windows.Forms.CheckBox(); + this.CHK_QuickHatch = new System.Windows.Forms.CheckBox(); + this.L_FinalXP = new System.Windows.Forms.Label(); + this.NUD_EXP = new System.Windows.Forms.NumericUpDown(); + this.CHK_NoEV = new System.Windows.Forms.CheckBox(); + this.B_ModAll = new System.Windows.Forms.Button(); + this.GB_Randomizer = new System.Windows.Forms.GroupBox(); + this.CHK_Shuffle = new System.Windows.Forms.CheckBox(); + this.L_Same = new System.Windows.Forms.Label(); + this.NUD_Egg = new System.Windows.Forms.NumericUpDown(); + this.CHK_WGuard = new System.Windows.Forms.CheckBox(); + this.CHK_Ability = new System.Windows.Forms.CheckBox(); + this.CHK_ORASTutors = new System.Windows.Forms.CheckBox(); + this.CHK_Tutors = new System.Windows.Forms.CheckBox(); + this.CHK_rSPE = new System.Windows.Forms.CheckBox(); + this.CHK_Type = new System.Windows.Forms.CheckBox(); + this.CHK_rSPD = new System.Windows.Forms.CheckBox(); + this.CHK_rSPA = new System.Windows.Forms.CheckBox(); + this.L_SingleType = new System.Windows.Forms.Label(); + this.CHK_rDEF = new System.Windows.Forms.CheckBox(); + this.CHK_rATK = new System.Windows.Forms.CheckBox(); + this.NUD_TypePercent = new System.Windows.Forms.NumericUpDown(); + this.CHK_rHP = new System.Windows.Forms.CheckBox(); + this.CHK_HM = new System.Windows.Forms.CheckBox(); + this.L_StatDev = new System.Windows.Forms.Label(); + this.CHK_TM = new System.Windows.Forms.CheckBox(); + this.NUD_StatDev = new System.Windows.Forms.NumericUpDown(); + this.CHK_Stats = new System.Windows.Forms.CheckBox(); + this.CHK_EggGroup = new System.Windows.Forms.CheckBox(); + this.CHK_CatchRate = new System.Windows.Forms.CheckBox(); + this.CHK_Item = new System.Windows.Forms.CheckBox(); + this.B_Randomize = new System.Windows.Forms.Button(); + this.PB_MonSprite = new System.Windows.Forms.PictureBox(); + this.B_Dump = new System.Windows.Forms.Button(); + this.CHK_FullMoveTutorCompatibility = new System.Windows.Forms.CheckBox(); + this.TC_Pokemon.SuspendLayout(); + this.TP_General.SuspendLayout(); + this.TP_MoveTutors.SuspendLayout(); + this.TP_Randomizer.SuspendLayout(); + this.GB_Modifier.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_CatchRateMod)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_EXP)).BeginInit(); + this.GB_Randomizer.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Egg)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_TypePercent)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_StatDev)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_MonSprite)).BeginInit(); + this.SuspendLayout(); + // + // CB_Species + // + this.CB_Species.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Species.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Species.FormattingEnabled = true; + this.CB_Species.Location = new System.Drawing.Point(107, 12); + this.CB_Species.Name = "CB_Species"; + this.CB_Species.Size = new System.Drawing.Size(160, 21); + this.CB_Species.TabIndex = 2; + this.CB_Species.SelectedIndexChanged += new System.EventHandler(this.CB_Species_SelectedIndexChanged); + // + // L_Species_Precursor + // + this.L_Species_Precursor.AutoSize = true; + this.L_Species_Precursor.Location = new System.Drawing.Point(13, 15); + this.L_Species_Precursor.Name = "L_Species_Precursor"; + this.L_Species_Precursor.Size = new System.Drawing.Size(88, 13); + this.L_Species_Precursor.TabIndex = 3; + this.L_Species_Precursor.Text = "Current Species: "; + // + // TC_Pokemon + // + this.TC_Pokemon.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.TC_Pokemon.Controls.Add(this.TP_General); + this.TC_Pokemon.Controls.Add(this.TP_MoveTutors); + this.TC_Pokemon.Controls.Add(this.TP_Randomizer); + this.TC_Pokemon.Location = new System.Drawing.Point(12, 40); + this.TC_Pokemon.Name = "TC_Pokemon"; + this.TC_Pokemon.SelectedIndex = 0; + this.TC_Pokemon.Size = new System.Drawing.Size(445, 375); + this.TC_Pokemon.TabIndex = 416; + // + // TP_General + // + this.TP_General.Controls.Add(this.TB_RawColor); + this.TP_General.Controls.Add(this.L_HiddenAbility); + this.TP_General.Controls.Add(this.L_Ability2); + this.TP_General.Controls.Add(this.L_Ability1); + this.TP_General.Controls.Add(this.TB_BST); + this.TP_General.Controls.Add(this.L_BST); + this.TP_General.Controls.Add(this.TB_CatchRate); + this.TP_General.Controls.Add(this.TB_Stage); + this.TP_General.Controls.Add(this.L_Stage); + this.TP_General.Controls.Add(this.L_WeightKG); + this.TP_General.Controls.Add(this.L_HeightM); + this.TP_General.Controls.Add(this.TB_FormeCount); + this.TP_General.Controls.Add(this.L_FormesCount); + this.TP_General.Controls.Add(this.TB_FormeSprite); + this.TP_General.Controls.Add(this.L_FormeSprite); + this.TP_General.Controls.Add(this.L_CatchRate); + this.TP_General.Controls.Add(this.CB_Color); + this.TP_General.Controls.Add(this.CB_EXPGroup); + this.TP_General.Controls.Add(this.L_Color); + this.TP_General.Controls.Add(this.L_EXPGrowth); + this.TP_General.Controls.Add(this.TB_Weight); + this.TP_General.Controls.Add(this.TB_Height); + this.TP_General.Controls.Add(this.L_Weight); + this.TP_General.Controls.Add(this.L_Height); + this.TP_General.Controls.Add(this.CB_Ability3); + this.TP_General.Controls.Add(this.CB_Ability2); + this.TP_General.Controls.Add(this.CB_Ability1); + this.TP_General.Controls.Add(this.CB_EggGroup2); + this.TP_General.Controls.Add(this.CB_EggGroup1); + this.TP_General.Controls.Add(this.L_EggGroup); + this.TP_General.Controls.Add(this.L_Ability); + this.TP_General.Controls.Add(this.TB_BaseExp); + this.TP_General.Controls.Add(this.L_BaseEXP); + this.TP_General.Controls.Add(this.TB_HatchCycles); + this.TP_General.Controls.Add(this.L_HatchCycles); + this.TP_General.Controls.Add(this.TB_Friendship); + this.TP_General.Controls.Add(this.TB_Gender); + this.TP_General.Controls.Add(this.L_Friendship); + this.TP_General.Controls.Add(this.L_Gender); + this.TP_General.Controls.Add(this.L_Item1); + this.TP_General.Controls.Add(this.L_Item5); + this.TP_General.Controls.Add(this.L_Item50); + this.TP_General.Controls.Add(this.CB_HeldItem3); + this.TP_General.Controls.Add(this.CB_HeldItem2); + this.TP_General.Controls.Add(this.CB_HeldItem1); + this.TP_General.Controls.Add(this.L_HeldItem); + this.TP_General.Controls.Add(this.CB_Type2); + this.TP_General.Controls.Add(this.CB_Type1); + this.TP_General.Controls.Add(this.L_Type); + this.TP_General.Controls.Add(this.TB_SPEEVs); + this.TP_General.Controls.Add(this.TB_SPDEVs); + this.TP_General.Controls.Add(this.TB_SPAEVs); + this.TP_General.Controls.Add(this.TB_DEFEVs); + this.TP_General.Controls.Add(this.TB_ATKEVs); + this.TP_General.Controls.Add(this.TB_HPEVs); + this.TP_General.Controls.Add(this.TB_BaseSPE); + this.TP_General.Controls.Add(this.TB_BaseSPD); + this.TP_General.Controls.Add(this.TB_BaseSPA); + this.TP_General.Controls.Add(this.TB_BaseDEF); + this.TP_General.Controls.Add(this.TB_BaseATK); + this.TP_General.Controls.Add(this.TB_BaseHP); + this.TP_General.Controls.Add(this.Label_HP); + this.TP_General.Controls.Add(this.Label_ATK); + this.TP_General.Controls.Add(this.Label_DEF); + this.TP_General.Controls.Add(this.Label_SPA); + this.TP_General.Controls.Add(this.Label_SPD); + this.TP_General.Controls.Add(this.Label_SPE); + this.TP_General.Controls.Add(this.L_EVYield); + this.TP_General.Controls.Add(this.L_BaseStats); + this.TP_General.Location = new System.Drawing.Point(4, 22); + this.TP_General.Name = "TP_General"; + this.TP_General.Padding = new System.Windows.Forms.Padding(3); + this.TP_General.Size = new System.Drawing.Size(437, 349); + this.TP_General.TabIndex = 0; + this.TP_General.Text = "General Info"; + this.TP_General.UseVisualStyleBackColor = true; + // + // TB_RawColor + // + this.TB_RawColor.Location = new System.Drawing.Point(229, 209); + this.TB_RawColor.Name = "TB_RawColor"; + this.TB_RawColor.ReadOnly = true; + this.TB_RawColor.Size = new System.Drawing.Size(30, 20); + this.TB_RawColor.TabIndex = 419; + this.TB_RawColor.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_RawColor.Visible = false; + // + // L_HiddenAbility + // + this.L_HiddenAbility.AutoSize = true; + this.L_HiddenAbility.Location = new System.Drawing.Point(413, 126); + this.L_HiddenAbility.Name = "L_HiddenAbility"; + this.L_HiddenAbility.Size = new System.Drawing.Size(21, 13); + this.L_HiddenAbility.TabIndex = 93; + this.L_HiddenAbility.Text = "(H)"; + // + // L_Ability2 + // + this.L_Ability2.AutoSize = true; + this.L_Ability2.Location = new System.Drawing.Point(414, 104); + this.L_Ability2.Name = "L_Ability2"; + this.L_Ability2.Size = new System.Drawing.Size(19, 13); + this.L_Ability2.TabIndex = 92; + this.L_Ability2.Text = "(2)"; + // + // L_Ability1 + // + this.L_Ability1.AutoSize = true; + this.L_Ability1.Location = new System.Drawing.Point(414, 82); + this.L_Ability1.Name = "L_Ability1"; + this.L_Ability1.Size = new System.Drawing.Size(19, 13); + this.L_Ability1.TabIndex = 91; + this.L_Ability1.Text = "(1)"; + // + // TB_BST + // + this.TB_BST.Location = new System.Drawing.Point(387, 27); + this.TB_BST.Name = "TB_BST"; + this.TB_BST.ReadOnly = true; + this.TB_BST.Size = new System.Drawing.Size(31, 20); + this.TB_BST.TabIndex = 90; + this.TB_BST.Text = "___"; + this.TB_BST.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // L_BST + // + this.L_BST.AutoSize = true; + this.L_BST.Location = new System.Drawing.Point(355, 30); + this.L_BST.Name = "L_BST"; + this.L_BST.Size = new System.Drawing.Size(31, 13); + this.L_BST.TabIndex = 89; + this.L_BST.Text = "BST:"; + this.L_BST.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // TB_CatchRate + // + this.TB_CatchRate.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_CatchRate.Location = new System.Drawing.Point(387, 51); + this.TB_CatchRate.Mask = "000"; + this.TB_CatchRate.Name = "TB_CatchRate"; + this.TB_CatchRate.Size = new System.Drawing.Size(31, 20); + this.TB_CatchRate.TabIndex = 87; + this.TB_CatchRate.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_CatchRate.TextChanged += new System.EventHandler(this.ByteLimiter); + // + // TB_Stage + // + this.TB_Stage.Location = new System.Drawing.Point(384, 238); + this.TB_Stage.Name = "TB_Stage"; + this.TB_Stage.ReadOnly = true; + this.TB_Stage.Size = new System.Drawing.Size(32, 20); + this.TB_Stage.TabIndex = 86; + this.TB_Stage.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // L_Stage + // + this.L_Stage.AutoSize = true; + this.L_Stage.Location = new System.Drawing.Point(299, 240); + this.L_Stage.Name = "L_Stage"; + this.L_Stage.Size = new System.Drawing.Size(85, 13); + this.L_Stage.TabIndex = 85; + this.L_Stage.Text = "Evolution Stage:"; + this.L_Stage.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_WeightKG + // + this.L_WeightKG.AutoSize = true; + this.L_WeightKG.Location = new System.Drawing.Point(416, 326); + this.L_WeightKG.Name = "L_WeightKG"; + this.L_WeightKG.Size = new System.Drawing.Size(19, 13); + this.L_WeightKG.TabIndex = 84; + this.L_WeightKG.Text = "kg"; + // + // L_HeightM + // + this.L_HeightM.AutoSize = true; + this.L_HeightM.Location = new System.Drawing.Point(416, 305); + this.L_HeightM.Name = "L_HeightM"; + this.L_HeightM.Size = new System.Drawing.Size(15, 13); + this.L_HeightM.TabIndex = 83; + this.L_HeightM.Text = "m"; + // + // TB_FormeCount + // + this.TB_FormeCount.Location = new System.Drawing.Point(384, 280); + this.TB_FormeCount.Name = "TB_FormeCount"; + this.TB_FormeCount.ReadOnly = true; + this.TB_FormeCount.Size = new System.Drawing.Size(32, 20); + this.TB_FormeCount.TabIndex = 82; + this.TB_FormeCount.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // L_FormesCount + // + this.L_FormesCount.AutoSize = true; + this.L_FormesCount.Location = new System.Drawing.Point(309, 283); + this.L_FormesCount.Name = "L_FormesCount"; + this.L_FormesCount.Size = new System.Drawing.Size(75, 13); + this.L_FormesCount.TabIndex = 81; + this.L_FormesCount.Text = "Formes Count:"; + this.L_FormesCount.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // TB_FormeSprite + // + this.TB_FormeSprite.Location = new System.Drawing.Point(384, 259); + this.TB_FormeSprite.Name = "TB_FormeSprite"; + this.TB_FormeSprite.ReadOnly = true; + this.TB_FormeSprite.Size = new System.Drawing.Size(32, 20); + this.TB_FormeSprite.TabIndex = 80; + this.TB_FormeSprite.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // L_FormeSprite + // + this.L_FormeSprite.AutoSize = true; + this.L_FormeSprite.Location = new System.Drawing.Point(315, 262); + this.L_FormeSprite.Name = "L_FormeSprite"; + this.L_FormeSprite.Size = new System.Drawing.Size(69, 13); + this.L_FormeSprite.TabIndex = 79; + this.L_FormeSprite.Text = "Forme Sprite:"; + this.L_FormeSprite.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_CatchRate + // + this.L_CatchRate.AutoSize = true; + this.L_CatchRate.Location = new System.Drawing.Point(322, 54); + this.L_CatchRate.Name = "L_CatchRate"; + this.L_CatchRate.Size = new System.Drawing.Size(64, 13); + this.L_CatchRate.TabIndex = 77; + this.L_CatchRate.Text = "Catch Rate:"; + // + // CB_Color + // + this.CB_Color.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Color.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Color.FormattingEnabled = true; + this.CB_Color.Location = new System.Drawing.Point(295, 209); + this.CB_Color.Name = "CB_Color"; + this.CB_Color.Size = new System.Drawing.Size(121, 21); + this.CB_Color.TabIndex = 76; + // + // CB_EXPGroup + // + this.CB_EXPGroup.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_EXPGroup.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_EXPGroup.FormattingEnabled = true; + this.CB_EXPGroup.Location = new System.Drawing.Point(80, 210); + this.CB_EXPGroup.Name = "CB_EXPGroup"; + this.CB_EXPGroup.Size = new System.Drawing.Size(112, 21); + this.CB_EXPGroup.TabIndex = 75; + // + // L_Color + // + this.L_Color.AutoSize = true; + this.L_Color.Location = new System.Drawing.Point(261, 211); + this.L_Color.Name = "L_Color"; + this.L_Color.Size = new System.Drawing.Size(34, 13); + this.L_Color.TabIndex = 74; + this.L_Color.Text = "Color:"; + // + // L_EXPGrowth + // + this.L_EXPGrowth.AutoSize = true; + this.L_EXPGrowth.Location = new System.Drawing.Point(16, 213); + this.L_EXPGrowth.Name = "L_EXPGrowth"; + this.L_EXPGrowth.Size = new System.Drawing.Size(63, 13); + this.L_EXPGrowth.TabIndex = 73; + this.L_EXPGrowth.Text = "EXP Group:"; + // + // TB_Weight + // + this.TB_Weight.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_Weight.Location = new System.Drawing.Point(384, 322); + this.TB_Weight.Mask = "000.0"; + this.TB_Weight.Name = "TB_Weight"; + this.TB_Weight.Size = new System.Drawing.Size(32, 20); + this.TB_Weight.TabIndex = 72; + this.TB_Weight.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // TB_Height + // + this.TB_Height.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_Height.Location = new System.Drawing.Point(384, 301); + this.TB_Height.Mask = "00.0"; + this.TB_Height.Name = "TB_Height"; + this.TB_Height.Size = new System.Drawing.Size(32, 20); + this.TB_Height.TabIndex = 71; + this.TB_Height.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // L_Weight + // + this.L_Weight.AutoSize = true; + this.L_Weight.Location = new System.Drawing.Point(340, 325); + this.L_Weight.Name = "L_Weight"; + this.L_Weight.Size = new System.Drawing.Size(44, 13); + this.L_Weight.TabIndex = 70; + this.L_Weight.Text = "Weight:"; + this.L_Weight.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_Height + // + this.L_Height.AutoSize = true; + this.L_Height.Location = new System.Drawing.Point(343, 304); + this.L_Height.Name = "L_Height"; + this.L_Height.Size = new System.Drawing.Size(41, 13); + this.L_Height.TabIndex = 69; + this.L_Height.Text = "Height:"; + this.L_Height.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_Ability3 + // + this.CB_Ability3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Ability3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Ability3.FormattingEnabled = true; + this.CB_Ability3.Location = new System.Drawing.Point(272, 123); + this.CB_Ability3.Name = "CB_Ability3"; + this.CB_Ability3.Size = new System.Drawing.Size(140, 21); + this.CB_Ability3.TabIndex = 68; + // + // CB_Ability2 + // + this.CB_Ability2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Ability2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Ability2.FormattingEnabled = true; + this.CB_Ability2.Location = new System.Drawing.Point(272, 101); + this.CB_Ability2.Name = "CB_Ability2"; + this.CB_Ability2.Size = new System.Drawing.Size(140, 21); + this.CB_Ability2.TabIndex = 67; + // + // CB_Ability1 + // + this.CB_Ability1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Ability1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Ability1.FormattingEnabled = true; + this.CB_Ability1.Location = new System.Drawing.Point(272, 79); + this.CB_Ability1.Name = "CB_Ability1"; + this.CB_Ability1.Size = new System.Drawing.Size(140, 21); + this.CB_Ability1.TabIndex = 66; + // + // CB_EggGroup2 + // + this.CB_EggGroup2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_EggGroup2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_EggGroup2.FormattingEnabled = true; + this.CB_EggGroup2.Location = new System.Drawing.Point(295, 180); + this.CB_EggGroup2.Name = "CB_EggGroup2"; + this.CB_EggGroup2.Size = new System.Drawing.Size(121, 21); + this.CB_EggGroup2.TabIndex = 65; + // + // CB_EggGroup1 + // + this.CB_EggGroup1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_EggGroup1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_EggGroup1.FormattingEnabled = true; + this.CB_EggGroup1.Location = new System.Drawing.Point(295, 158); + this.CB_EggGroup1.Name = "CB_EggGroup1"; + this.CB_EggGroup1.Size = new System.Drawing.Size(121, 21); + this.CB_EggGroup1.TabIndex = 64; + // + // L_EggGroup + // + this.L_EggGroup.AutoSize = true; + this.L_EggGroup.Location = new System.Drawing.Point(230, 161); + this.L_EggGroup.Name = "L_EggGroup"; + this.L_EggGroup.Size = new System.Drawing.Size(66, 13); + this.L_EggGroup.TabIndex = 63; + this.L_EggGroup.Text = "Egg Groups:"; + // + // L_Ability + // + this.L_Ability.AutoSize = true; + this.L_Ability.Location = new System.Drawing.Point(226, 83); + this.L_Ability.Name = "L_Ability"; + this.L_Ability.Size = new System.Drawing.Size(45, 13); + this.L_Ability.TabIndex = 62; + this.L_Ability.Text = "Abilities:"; + // + // TB_BaseExp + // + this.TB_BaseExp.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_BaseExp.Location = new System.Drawing.Point(77, 302); + this.TB_BaseExp.Mask = "000"; + this.TB_BaseExp.Name = "TB_BaseExp"; + this.TB_BaseExp.Size = new System.Drawing.Size(31, 20); + this.TB_BaseExp.TabIndex = 61; + this.TB_BaseExp.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_BaseExp.TextChanged += new System.EventHandler(this.ByteLimiter); + // + // L_BaseEXP + // + this.L_BaseEXP.AutoSize = true; + this.L_BaseEXP.Location = new System.Drawing.Point(18, 306); + this.L_BaseEXP.Name = "L_BaseEXP"; + this.L_BaseEXP.Size = new System.Drawing.Size(58, 13); + this.L_BaseEXP.TabIndex = 60; + this.L_BaseEXP.Text = "Base EXP:"; + this.L_BaseEXP.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // TB_HatchCycles + // + this.TB_HatchCycles.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_HatchCycles.Location = new System.Drawing.Point(77, 323); + this.TB_HatchCycles.Mask = "000"; + this.TB_HatchCycles.Name = "TB_HatchCycles"; + this.TB_HatchCycles.Size = new System.Drawing.Size(31, 20); + this.TB_HatchCycles.TabIndex = 58; + this.TB_HatchCycles.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_HatchCycles.TextChanged += new System.EventHandler(this.ByteLimiter); + // + // L_HatchCycles + // + this.L_HatchCycles.AutoSize = true; + this.L_HatchCycles.Location = new System.Drawing.Point(3, 326); + this.L_HatchCycles.Name = "L_HatchCycles"; + this.L_HatchCycles.Size = new System.Drawing.Size(73, 13); + this.L_HatchCycles.TabIndex = 57; + this.L_HatchCycles.Text = "Hatch Cycles:"; + this.L_HatchCycles.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // TB_Friendship + // + this.TB_Friendship.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_Friendship.Location = new System.Drawing.Point(77, 281); + this.TB_Friendship.Mask = "000"; + this.TB_Friendship.Name = "TB_Friendship"; + this.TB_Friendship.Size = new System.Drawing.Size(31, 20); + this.TB_Friendship.TabIndex = 56; + this.TB_Friendship.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_Friendship.TextChanged += new System.EventHandler(this.ByteLimiter); + // + // TB_Gender + // + this.TB_Gender.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_Gender.Location = new System.Drawing.Point(77, 260); + this.TB_Gender.Mask = "000"; + this.TB_Gender.Name = "TB_Gender"; + this.TB_Gender.Size = new System.Drawing.Size(31, 20); + this.TB_Gender.TabIndex = 55; + this.TB_Gender.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_Gender.TextChanged += new System.EventHandler(this.ByteLimiter); + // + // L_Friendship + // + this.L_Friendship.AutoSize = true; + this.L_Friendship.Location = new System.Drawing.Point(18, 285); + this.L_Friendship.Name = "L_Friendship"; + this.L_Friendship.Size = new System.Drawing.Size(58, 13); + this.L_Friendship.TabIndex = 54; + this.L_Friendship.Text = "Friendship:"; + this.L_Friendship.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_Gender + // + this.L_Gender.AutoSize = true; + this.L_Gender.Location = new System.Drawing.Point(31, 264); + this.L_Gender.Name = "L_Gender"; + this.L_Gender.Size = new System.Drawing.Size(45, 13); + this.L_Gender.TabIndex = 53; + this.L_Gender.Text = "Gender:"; + this.L_Gender.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_Item1 + // + this.L_Item1.AutoSize = true; + this.L_Item1.Location = new System.Drawing.Point(195, 126); + this.L_Item1.Name = "L_Item1"; + this.L_Item1.Size = new System.Drawing.Size(21, 13); + this.L_Item1.TabIndex = 52; + this.L_Item1.Text = "1%"; + // + // L_Item5 + // + this.L_Item5.AutoSize = true; + this.L_Item5.Location = new System.Drawing.Point(195, 104); + this.L_Item5.Name = "L_Item5"; + this.L_Item5.Size = new System.Drawing.Size(21, 13); + this.L_Item5.TabIndex = 51; + this.L_Item5.Text = "5%"; + // + // L_Item50 + // + this.L_Item50.AutoSize = true; + this.L_Item50.Location = new System.Drawing.Point(195, 83); + this.L_Item50.Name = "L_Item50"; + this.L_Item50.Size = new System.Drawing.Size(27, 13); + this.L_Item50.TabIndex = 50; + this.L_Item50.Text = "50%"; + // + // CB_HeldItem3 + // + this.CB_HeldItem3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_HeldItem3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_HeldItem3.FormattingEnabled = true; + this.CB_HeldItem3.Location = new System.Drawing.Point(52, 123); + this.CB_HeldItem3.Name = "CB_HeldItem3"; + this.CB_HeldItem3.Size = new System.Drawing.Size(140, 21); + this.CB_HeldItem3.TabIndex = 49; + // + // CB_HeldItem2 + // + this.CB_HeldItem2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_HeldItem2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_HeldItem2.FormattingEnabled = true; + this.CB_HeldItem2.Location = new System.Drawing.Point(52, 101); + this.CB_HeldItem2.Name = "CB_HeldItem2"; + this.CB_HeldItem2.Size = new System.Drawing.Size(140, 21); + this.CB_HeldItem2.TabIndex = 48; + // + // CB_HeldItem1 + // + this.CB_HeldItem1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_HeldItem1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_HeldItem1.FormattingEnabled = true; + this.CB_HeldItem1.Location = new System.Drawing.Point(52, 79); + this.CB_HeldItem1.Name = "CB_HeldItem1"; + this.CB_HeldItem1.Size = new System.Drawing.Size(140, 21); + this.CB_HeldItem1.TabIndex = 47; + // + // L_HeldItem + // + this.L_HeldItem.AutoSize = true; + this.L_HeldItem.Location = new System.Drawing.Point(16, 82); + this.L_HeldItem.Name = "L_HeldItem"; + this.L_HeldItem.Size = new System.Drawing.Size(35, 13); + this.L_HeldItem.TabIndex = 46; + this.L_HeldItem.Text = "Items:"; + // + // CB_Type2 + // + this.CB_Type2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Type2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Type2.FormattingEnabled = true; + this.CB_Type2.Location = new System.Drawing.Point(63, 180); + this.CB_Type2.Name = "CB_Type2"; + this.CB_Type2.Size = new System.Drawing.Size(129, 21); + this.CB_Type2.TabIndex = 45; + // + // CB_Type1 + // + this.CB_Type1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Type1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Type1.FormattingEnabled = true; + this.CB_Type1.Location = new System.Drawing.Point(63, 158); + this.CB_Type1.Name = "CB_Type1"; + this.CB_Type1.Size = new System.Drawing.Size(129, 21); + this.CB_Type1.TabIndex = 44; + // + // L_Type + // + this.L_Type.AutoSize = true; + this.L_Type.Location = new System.Drawing.Point(16, 161); + this.L_Type.Name = "L_Type"; + this.L_Type.Size = new System.Drawing.Size(47, 13); + this.L_Type.TabIndex = 43; + this.L_Type.Text = "Typings:"; + // + // TB_SPEEVs + // + this.TB_SPEEVs.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_SPEEVs.Location = new System.Drawing.Point(273, 51); + this.TB_SPEEVs.Mask = "0"; + this.TB_SPEEVs.Name = "TB_SPEEVs"; + this.TB_SPEEVs.Size = new System.Drawing.Size(31, 20); + this.TB_SPEEVs.TabIndex = 42; + this.TB_SPEEVs.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_SPEEVs.TextChanged += new System.EventHandler(this.ByteLimiter); + // + // TB_SPDEVs + // + this.TB_SPDEVs.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_SPDEVs.Location = new System.Drawing.Point(234, 51); + this.TB_SPDEVs.Mask = "0"; + this.TB_SPDEVs.Name = "TB_SPDEVs"; + this.TB_SPDEVs.Size = new System.Drawing.Size(31, 20); + this.TB_SPDEVs.TabIndex = 41; + this.TB_SPDEVs.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_SPDEVs.TextChanged += new System.EventHandler(this.ByteLimiter); + // + // TB_SPAEVs + // + this.TB_SPAEVs.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_SPAEVs.Location = new System.Drawing.Point(195, 51); + this.TB_SPAEVs.Mask = "0"; + this.TB_SPAEVs.Name = "TB_SPAEVs"; + this.TB_SPAEVs.Size = new System.Drawing.Size(31, 20); + this.TB_SPAEVs.TabIndex = 40; + this.TB_SPAEVs.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_SPAEVs.TextChanged += new System.EventHandler(this.ByteLimiter); + // + // TB_DEFEVs + // + this.TB_DEFEVs.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_DEFEVs.Location = new System.Drawing.Point(157, 51); + this.TB_DEFEVs.Mask = "0"; + this.TB_DEFEVs.Name = "TB_DEFEVs"; + this.TB_DEFEVs.Size = new System.Drawing.Size(31, 20); + this.TB_DEFEVs.TabIndex = 39; + this.TB_DEFEVs.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_DEFEVs.TextChanged += new System.EventHandler(this.ByteLimiter); + // + // TB_ATKEVs + // + this.TB_ATKEVs.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_ATKEVs.Location = new System.Drawing.Point(119, 51); + this.TB_ATKEVs.Mask = "0"; + this.TB_ATKEVs.Name = "TB_ATKEVs"; + this.TB_ATKEVs.Size = new System.Drawing.Size(31, 20); + this.TB_ATKEVs.TabIndex = 38; + this.TB_ATKEVs.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_ATKEVs.TextChanged += new System.EventHandler(this.ByteLimiter); + // + // TB_HPEVs + // + this.TB_HPEVs.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_HPEVs.Location = new System.Drawing.Point(80, 51); + this.TB_HPEVs.Mask = "0"; + this.TB_HPEVs.Name = "TB_HPEVs"; + this.TB_HPEVs.Size = new System.Drawing.Size(31, 20); + this.TB_HPEVs.TabIndex = 37; + this.TB_HPEVs.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_HPEVs.TextChanged += new System.EventHandler(this.ByteLimiter); + // + // TB_BaseSPE + // + this.TB_BaseSPE.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_BaseSPE.Location = new System.Drawing.Point(273, 27); + this.TB_BaseSPE.Mask = "000"; + this.TB_BaseSPE.Name = "TB_BaseSPE"; + this.TB_BaseSPE.Size = new System.Drawing.Size(31, 20); + this.TB_BaseSPE.TabIndex = 36; + this.TB_BaseSPE.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_BaseSPE.TextChanged += new System.EventHandler(this.ByteLimiter); + // + // TB_BaseSPD + // + this.TB_BaseSPD.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_BaseSPD.Location = new System.Drawing.Point(234, 27); + this.TB_BaseSPD.Mask = "000"; + this.TB_BaseSPD.Name = "TB_BaseSPD"; + this.TB_BaseSPD.Size = new System.Drawing.Size(31, 20); + this.TB_BaseSPD.TabIndex = 35; + this.TB_BaseSPD.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_BaseSPD.TextChanged += new System.EventHandler(this.ByteLimiter); + // + // TB_BaseSPA + // + this.TB_BaseSPA.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_BaseSPA.Location = new System.Drawing.Point(195, 27); + this.TB_BaseSPA.Mask = "000"; + this.TB_BaseSPA.Name = "TB_BaseSPA"; + this.TB_BaseSPA.Size = new System.Drawing.Size(31, 20); + this.TB_BaseSPA.TabIndex = 34; + this.TB_BaseSPA.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_BaseSPA.TextChanged += new System.EventHandler(this.ByteLimiter); + // + // TB_BaseDEF + // + this.TB_BaseDEF.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_BaseDEF.Location = new System.Drawing.Point(157, 27); + this.TB_BaseDEF.Mask = "000"; + this.TB_BaseDEF.Name = "TB_BaseDEF"; + this.TB_BaseDEF.Size = new System.Drawing.Size(31, 20); + this.TB_BaseDEF.TabIndex = 33; + this.TB_BaseDEF.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_BaseDEF.TextChanged += new System.EventHandler(this.ByteLimiter); + // + // TB_BaseATK + // + this.TB_BaseATK.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_BaseATK.Location = new System.Drawing.Point(119, 27); + this.TB_BaseATK.Mask = "000"; + this.TB_BaseATK.Name = "TB_BaseATK"; + this.TB_BaseATK.Size = new System.Drawing.Size(31, 20); + this.TB_BaseATK.TabIndex = 32; + this.TB_BaseATK.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_BaseATK.TextChanged += new System.EventHandler(this.ByteLimiter); + // + // TB_BaseHP + // + this.TB_BaseHP.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_BaseHP.Location = new System.Drawing.Point(80, 27); + this.TB_BaseHP.Mask = "000"; + this.TB_BaseHP.Name = "TB_BaseHP"; + this.TB_BaseHP.Size = new System.Drawing.Size(31, 20); + this.TB_BaseHP.TabIndex = 31; + this.TB_BaseHP.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_BaseHP.TextChanged += new System.EventHandler(this.ByteLimiter); + // + // Label_HP + // + this.Label_HP.Location = new System.Drawing.Point(77, 11); + this.Label_HP.Name = "Label_HP"; + this.Label_HP.Size = new System.Drawing.Size(31, 13); + this.Label_HP.TabIndex = 25; + this.Label_HP.Text = "HP:"; + this.Label_HP.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // Label_ATK + // + this.Label_ATK.Location = new System.Drawing.Point(119, 11); + this.Label_ATK.Name = "Label_ATK"; + this.Label_ATK.Size = new System.Drawing.Size(31, 13); + this.Label_ATK.TabIndex = 26; + this.Label_ATK.Text = "Atk:"; + this.Label_ATK.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // Label_DEF + // + this.Label_DEF.Location = new System.Drawing.Point(157, 11); + this.Label_DEF.Name = "Label_DEF"; + this.Label_DEF.Size = new System.Drawing.Size(31, 13); + this.Label_DEF.TabIndex = 27; + this.Label_DEF.Text = "Def:"; + this.Label_DEF.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // Label_SPA + // + this.Label_SPA.Location = new System.Drawing.Point(195, 11); + this.Label_SPA.Name = "Label_SPA"; + this.Label_SPA.Size = new System.Drawing.Size(31, 13); + this.Label_SPA.TabIndex = 28; + this.Label_SPA.Text = "SpA:"; + this.Label_SPA.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // Label_SPD + // + this.Label_SPD.Location = new System.Drawing.Point(234, 11); + this.Label_SPD.Name = "Label_SPD"; + this.Label_SPD.Size = new System.Drawing.Size(31, 13); + this.Label_SPD.TabIndex = 29; + this.Label_SPD.Text = "SpD:"; + this.Label_SPD.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // Label_SPE + // + this.Label_SPE.Location = new System.Drawing.Point(271, 11); + this.Label_SPE.Name = "Label_SPE"; + this.Label_SPE.Size = new System.Drawing.Size(31, 13); + this.Label_SPE.TabIndex = 30; + this.Label_SPE.Text = "Spe:"; + this.Label_SPE.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_EVYield + // + this.L_EVYield.AutoSize = true; + this.L_EVYield.Location = new System.Drawing.Point(16, 54); + this.L_EVYield.Name = "L_EVYield"; + this.L_EVYield.Size = new System.Drawing.Size(50, 13); + this.L_EVYield.TabIndex = 2; + this.L_EVYield.Text = "EV Yield:"; + // + // L_BaseStats + // + this.L_BaseStats.AutoSize = true; + this.L_BaseStats.Location = new System.Drawing.Point(16, 30); + this.L_BaseStats.Name = "L_BaseStats"; + this.L_BaseStats.Size = new System.Drawing.Size(61, 13); + this.L_BaseStats.TabIndex = 1; + this.L_BaseStats.Text = "Base Stats:"; + // + // TP_MoveTutors + // + this.TP_MoveTutors.Controls.Add(this.L_ORASTutors); + this.TP_MoveTutors.Controls.Add(this.L_Special); + this.TP_MoveTutors.Controls.Add(this.L_TMHM); + this.TP_MoveTutors.Controls.Add(this.CLB_ORASTutors); + this.TP_MoveTutors.Controls.Add(this.CLB_MoveTutors); + this.TP_MoveTutors.Controls.Add(this.CLB_TMHM); + this.TP_MoveTutors.Location = new System.Drawing.Point(4, 22); + this.TP_MoveTutors.Name = "TP_MoveTutors"; + this.TP_MoveTutors.Padding = new System.Windows.Forms.Padding(3); + this.TP_MoveTutors.Size = new System.Drawing.Size(437, 349); + this.TP_MoveTutors.TabIndex = 1; + this.TP_MoveTutors.Text = "Move Tutors"; + this.TP_MoveTutors.UseVisualStyleBackColor = true; + // + // L_ORASTutors + // + this.L_ORASTutors.AutoSize = true; + this.L_ORASTutors.Location = new System.Drawing.Point(298, 3); + this.L_ORASTutors.Name = "L_ORASTutors"; + this.L_ORASTutors.Size = new System.Drawing.Size(104, 13); + this.L_ORASTutors.TabIndex = 7; + this.L_ORASTutors.Text = "Battle Resort Tutors:"; + this.L_ORASTutors.Visible = false; + // + // L_Special + // + this.L_Special.AutoSize = true; + this.L_Special.Location = new System.Drawing.Point(159, 3); + this.L_Special.Name = "L_Special"; + this.L_Special.Size = new System.Drawing.Size(78, 13); + this.L_Special.TabIndex = 6; + this.L_Special.Text = "Special Tutors:"; + // + // L_TMHM + // + this.L_TMHM.AutoSize = true; + this.L_TMHM.Location = new System.Drawing.Point(6, 3); + this.L_TMHM.Name = "L_TMHM"; + this.L_TMHM.Size = new System.Drawing.Size(58, 13); + this.L_TMHM.TabIndex = 5; + this.L_TMHM.Text = "TMs/HMs:"; + // + // CLB_ORASTutors + // + this.CLB_ORASTutors.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.CLB_ORASTutors.Enabled = false; + this.CLB_ORASTutors.FormattingEnabled = true; + this.CLB_ORASTutors.Location = new System.Drawing.Point(301, 19); + this.CLB_ORASTutors.Name = "CLB_ORASTutors"; + this.CLB_ORASTutors.Size = new System.Drawing.Size(133, 319); + this.CLB_ORASTutors.TabIndex = 4; + this.CLB_ORASTutors.Visible = false; + // + // CLB_MoveTutors + // + this.CLB_MoveTutors.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.CLB_MoveTutors.FormattingEnabled = true; + this.CLB_MoveTutors.Location = new System.Drawing.Point(162, 19); + this.CLB_MoveTutors.Name = "CLB_MoveTutors"; + this.CLB_MoveTutors.Size = new System.Drawing.Size(133, 319); + this.CLB_MoveTutors.TabIndex = 3; + // + // CLB_TMHM + // + this.CLB_TMHM.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.CLB_TMHM.FormattingEnabled = true; + this.CLB_TMHM.Location = new System.Drawing.Point(9, 19); + this.CLB_TMHM.Name = "CLB_TMHM"; + this.CLB_TMHM.Size = new System.Drawing.Size(147, 319); + this.CLB_TMHM.TabIndex = 2; + // + // TP_Randomizer + // + this.TP_Randomizer.Controls.Add(this.GB_Modifier); + this.TP_Randomizer.Controls.Add(this.B_ModAll); + this.TP_Randomizer.Controls.Add(this.GB_Randomizer); + this.TP_Randomizer.Controls.Add(this.B_Randomize); + this.TP_Randomizer.Location = new System.Drawing.Point(4, 22); + this.TP_Randomizer.Name = "TP_Randomizer"; + this.TP_Randomizer.Size = new System.Drawing.Size(437, 349); + this.TP_Randomizer.TabIndex = 2; + this.TP_Randomizer.Text = "Enhancements"; + this.TP_Randomizer.UseVisualStyleBackColor = true; + // + // GB_Modifier + // + this.GB_Modifier.Controls.Add(this.CHK_FullMoveTutorCompatibility); + this.GB_Modifier.Controls.Add(this.CHK_FullTMCompatibility); + this.GB_Modifier.Controls.Add(this.CHK_FullHMCompatibility); + this.GB_Modifier.Controls.Add(this.CHK_NoTutor); + this.GB_Modifier.Controls.Add(this.CHK_CatchRateMod); + this.GB_Modifier.Controls.Add(this.L_CatchRateMod); + this.GB_Modifier.Controls.Add(this.NUD_CatchRateMod); + this.GB_Modifier.Controls.Add(this.CHK_EXP); + this.GB_Modifier.Controls.Add(this.CHK_Growth); + this.GB_Modifier.Controls.Add(this.CHK_QuickHatch); + this.GB_Modifier.Controls.Add(this.L_FinalXP); + this.GB_Modifier.Controls.Add(this.NUD_EXP); + this.GB_Modifier.Controls.Add(this.CHK_NoEV); + this.GB_Modifier.Location = new System.Drawing.Point(4, 147); + this.GB_Modifier.Name = "GB_Modifier"; + this.GB_Modifier.Size = new System.Drawing.Size(345, 176); + this.GB_Modifier.TabIndex = 419; + this.GB_Modifier.TabStop = false; + this.GB_Modifier.Text = "Modifier Options"; + // + // CHK_FullTMCompatibility + // + this.CHK_FullTMCompatibility.AutoSize = true; + this.CHK_FullTMCompatibility.Location = new System.Drawing.Point(6, 131); + this.CHK_FullTMCompatibility.Name = "CHK_FullTMCompatibility"; + this.CHK_FullTMCompatibility.Size = new System.Drawing.Size(122, 17); + this.CHK_FullTMCompatibility.TabIndex = 21; + this.CHK_FullTMCompatibility.Text = "Full TM Compatibility"; + this.CHK_FullTMCompatibility.UseVisualStyleBackColor = true; + // + // CHK_FullHMCompatibility + // + this.CHK_FullHMCompatibility.AutoSize = true; + this.CHK_FullHMCompatibility.Location = new System.Drawing.Point(204, 131); + this.CHK_FullHMCompatibility.Name = "CHK_FullHMCompatibility"; + this.CHK_FullHMCompatibility.Size = new System.Drawing.Size(123, 17); + this.CHK_FullHMCompatibility.TabIndex = 22; + this.CHK_FullHMCompatibility.Text = "Full HM Compatibility"; + this.CHK_FullHMCompatibility.UseVisualStyleBackColor = true; + // + // CHK_NoTutor + // + this.CHK_NoTutor.AutoSize = true; + this.CHK_NoTutor.Location = new System.Drawing.Point(6, 95); + this.CHK_NoTutor.Name = "CHK_NoTutor"; + this.CHK_NoTutor.Size = new System.Drawing.Size(176, 30); + this.CHK_NoTutor.TabIndex = 20; + this.CHK_NoTutor.Text = "Remove All TM/Move Tutor\nCompatibility (Metronome Mode)"; + this.CHK_NoTutor.UseVisualStyleBackColor = true; + // + // CHK_CatchRateMod + // + this.CHK_CatchRateMod.AutoSize = true; + this.CHK_CatchRateMod.Location = new System.Drawing.Point(204, 38); + this.CHK_CatchRateMod.Name = "CHK_CatchRateMod"; + this.CHK_CatchRateMod.Size = new System.Drawing.Size(114, 17); + this.CHK_CatchRateMod.TabIndex = 19; + this.CHK_CatchRateMod.Text = "Modify Catch Rate"; + this.CHK_CatchRateMod.UseVisualStyleBackColor = true; + // + // L_CatchRateMod + // + this.L_CatchRateMod.AutoSize = true; + this.L_CatchRateMod.Location = new System.Drawing.Point(230, 58); + this.L_CatchRateMod.Name = "L_CatchRateMod"; + this.L_CatchRateMod.Size = new System.Drawing.Size(34, 13); + this.L_CatchRateMod.TabIndex = 18; + this.L_CatchRateMod.Text = "Value"; + // + // NUD_CatchRateMod + // + this.NUD_CatchRateMod.Location = new System.Drawing.Point(267, 56); + this.NUD_CatchRateMod.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.NUD_CatchRateMod.Minimum = new decimal(new int[] { + 3, + 0, + 0, + 0}); + this.NUD_CatchRateMod.Name = "NUD_CatchRateMod"; + this.NUD_CatchRateMod.Size = new System.Drawing.Size(46, 20); + this.NUD_CatchRateMod.TabIndex = 17; + this.NUD_CatchRateMod.Value = new decimal(new int[] { + 3, + 0, + 0, + 0}); + // + // CHK_EXP + // + this.CHK_EXP.AutoSize = true; + this.CHK_EXP.Location = new System.Drawing.Point(6, 51); + this.CHK_EXP.Name = "CHK_EXP"; + this.CHK_EXP.Size = new System.Drawing.Size(107, 17); + this.CHK_EXP.TabIndex = 7; + this.CHK_EXP.Text = "Modify EXP Yield"; + this.CHK_EXP.UseVisualStyleBackColor = true; + // + // CHK_Growth + // + this.CHK_Growth.AutoSize = true; + this.CHK_Growth.Location = new System.Drawing.Point(6, 36); + this.CHK_Growth.Name = "CHK_Growth"; + this.CHK_Growth.Size = new System.Drawing.Size(147, 17); + this.CHK_Growth.TabIndex = 8; + this.CHK_Growth.Text = "Lowest EXP Growth Rate"; + this.CHK_Growth.UseVisualStyleBackColor = true; + // + // CHK_QuickHatch + // + this.CHK_QuickHatch.AutoSize = true; + this.CHK_QuickHatch.Checked = true; + this.CHK_QuickHatch.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_QuickHatch.Location = new System.Drawing.Point(204, 21); + this.CHK_QuickHatch.Name = "CHK_QuickHatch"; + this.CHK_QuickHatch.Size = new System.Drawing.Size(113, 17); + this.CHK_QuickHatch.TabIndex = 10; + this.CHK_QuickHatch.Text = "Quick Hatch Eggs"; + this.CHK_QuickHatch.UseVisualStyleBackColor = true; + // + // L_FinalXP + // + this.L_FinalXP.AutoSize = true; + this.L_FinalXP.Location = new System.Drawing.Point(6, 74); + this.L_FinalXP.Name = "L_FinalXP"; + this.L_FinalXP.Size = new System.Drawing.Size(63, 13); + this.L_FinalXP.TabIndex = 6; + this.L_FinalXP.Text = "Final XP (%)"; + // + // NUD_EXP + // + this.NUD_EXP.Location = new System.Drawing.Point(69, 72); + this.NUD_EXP.Maximum = new decimal(new int[] { + 300, + 0, + 0, + 0}); + this.NUD_EXP.Name = "NUD_EXP"; + this.NUD_EXP.Size = new System.Drawing.Size(46, 20); + this.NUD_EXP.TabIndex = 5; + this.NUD_EXP.Value = new decimal(new int[] { + 28, + 0, + 0, + 0}); + // + // CHK_NoEV + // + this.CHK_NoEV.AutoSize = true; + this.CHK_NoEV.Location = new System.Drawing.Point(6, 21); + this.CHK_NoEV.Name = "CHK_NoEV"; + this.CHK_NoEV.Size = new System.Drawing.Size(114, 17); + this.CHK_NoEV.TabIndex = 0; + this.CHK_NoEV.Text = "Remove EV Yields"; + this.CHK_NoEV.UseVisualStyleBackColor = true; + // + // B_ModAll + // + this.B_ModAll.Location = new System.Drawing.Point(352, 162); + this.B_ModAll.Name = "B_ModAll"; + this.B_ModAll.Size = new System.Drawing.Size(82, 23); + this.B_ModAll.TabIndex = 421; + this.B_ModAll.Text = "Modify All"; + this.B_ModAll.UseVisualStyleBackColor = true; + this.B_ModAll.Click += new System.EventHandler(this.B_ModifyAll); + // + // GB_Randomizer + // + this.GB_Randomizer.Controls.Add(this.CHK_Shuffle); + this.GB_Randomizer.Controls.Add(this.L_Same); + this.GB_Randomizer.Controls.Add(this.NUD_Egg); + this.GB_Randomizer.Controls.Add(this.CHK_WGuard); + this.GB_Randomizer.Controls.Add(this.CHK_Ability); + this.GB_Randomizer.Controls.Add(this.CHK_ORASTutors); + this.GB_Randomizer.Controls.Add(this.CHK_Tutors); + this.GB_Randomizer.Controls.Add(this.CHK_rSPE); + this.GB_Randomizer.Controls.Add(this.CHK_Type); + this.GB_Randomizer.Controls.Add(this.CHK_rSPD); + this.GB_Randomizer.Controls.Add(this.CHK_rSPA); + this.GB_Randomizer.Controls.Add(this.L_SingleType); + this.GB_Randomizer.Controls.Add(this.CHK_rDEF); + this.GB_Randomizer.Controls.Add(this.CHK_rATK); + this.GB_Randomizer.Controls.Add(this.NUD_TypePercent); + this.GB_Randomizer.Controls.Add(this.CHK_rHP); + this.GB_Randomizer.Controls.Add(this.CHK_HM); + this.GB_Randomizer.Controls.Add(this.L_StatDev); + this.GB_Randomizer.Controls.Add(this.CHK_TM); + this.GB_Randomizer.Controls.Add(this.NUD_StatDev); + this.GB_Randomizer.Controls.Add(this.CHK_Stats); + this.GB_Randomizer.Controls.Add(this.CHK_EggGroup); + this.GB_Randomizer.Controls.Add(this.CHK_CatchRate); + this.GB_Randomizer.Controls.Add(this.CHK_Item); + this.GB_Randomizer.Location = new System.Drawing.Point(4, 12); + this.GB_Randomizer.Name = "GB_Randomizer"; + this.GB_Randomizer.Size = new System.Drawing.Size(345, 133); + this.GB_Randomizer.TabIndex = 418; + this.GB_Randomizer.TabStop = false; + this.GB_Randomizer.Text = "Randomizer Options"; + // + // CHK_Shuffle + // + this.CHK_Shuffle.AutoSize = true; + this.CHK_Shuffle.Checked = true; + this.CHK_Shuffle.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_Shuffle.Location = new System.Drawing.Point(6, 75); + this.CHK_Shuffle.Name = "CHK_Shuffle"; + this.CHK_Shuffle.Size = new System.Drawing.Size(86, 17); + this.CHK_Shuffle.TabIndex = 24; + this.CHK_Shuffle.Text = "Shuffle Stats"; + this.CHK_Shuffle.UseVisualStyleBackColor = true; + // + // L_Same + // + this.L_Same.AutoSize = true; + this.L_Same.Location = new System.Drawing.Point(213, 99); + this.L_Same.Name = "L_Same"; + this.L_Same.Size = new System.Drawing.Size(51, 13); + this.L_Same.TabIndex = 23; + this.L_Same.Text = "Same (%)"; + // + // NUD_Egg + // + this.NUD_Egg.Location = new System.Drawing.Point(267, 97); + this.NUD_Egg.Name = "NUD_Egg"; + this.NUD_Egg.Size = new System.Drawing.Size(46, 20); + this.NUD_Egg.TabIndex = 22; + this.NUD_Egg.Value = new decimal(new int[] { + 50, + 0, + 0, + 0}); + // + // CHK_WGuard + // + this.CHK_WGuard.AutoSize = true; + this.CHK_WGuard.Location = new System.Drawing.Point(118, 45); + this.CHK_WGuard.Name = "CHK_WGuard"; + this.CHK_WGuard.Size = new System.Drawing.Size(96, 17); + this.CHK_WGuard.TabIndex = 10; + this.CHK_WGuard.Text = "Wonder Guard"; + this.CHK_WGuard.UseVisualStyleBackColor = true; + // + // CHK_Ability + // + this.CHK_Ability.AutoSize = true; + this.CHK_Ability.Checked = true; + this.CHK_Ability.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_Ability.Location = new System.Drawing.Point(118, 30); + this.CHK_Ability.Name = "CHK_Ability"; + this.CHK_Ability.Size = new System.Drawing.Size(61, 17); + this.CHK_Ability.TabIndex = 1; + this.CHK_Ability.Text = "Abilities"; + this.CHK_Ability.UseVisualStyleBackColor = true; + this.CHK_Ability.CheckedChanged += new System.EventHandler(this.CHK_Ability_CheckedChanged); + // + // CHK_ORASTutors + // + this.CHK_ORASTutors.AutoSize = true; + this.CHK_ORASTutors.Checked = true; + this.CHK_ORASTutors.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_ORASTutors.Location = new System.Drawing.Point(219, 46); + this.CHK_ORASTutors.Name = "CHK_ORASTutors"; + this.CHK_ORASTutors.Size = new System.Drawing.Size(120, 17); + this.CHK_ORASTutors.TabIndex = 9; + this.CHK_ORASTutors.Text = "Battle Resort Tutors"; + this.CHK_ORASTutors.UseVisualStyleBackColor = true; + // + // CHK_Tutors + // + this.CHK_Tutors.AutoSize = true; + this.CHK_Tutors.Checked = true; + this.CHK_Tutors.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_Tutors.Location = new System.Drawing.Point(219, 30); + this.CHK_Tutors.Name = "CHK_Tutors"; + this.CHK_Tutors.Size = new System.Drawing.Size(94, 17); + this.CHK_Tutors.TabIndex = 8; + this.CHK_Tutors.Text = "Special Tutors"; + this.CHK_Tutors.UseVisualStyleBackColor = true; + // + // CHK_rSPE + // + this.CHK_rSPE.AutoSize = true; + this.CHK_rSPE.Checked = true; + this.CHK_rSPE.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_rSPE.Location = new System.Drawing.Point(51, 60); + this.CHK_rSPE.Name = "CHK_rSPE"; + this.CHK_rSPE.Size = new System.Drawing.Size(45, 17); + this.CHK_rSPE.TabIndex = 19; + this.CHK_rSPE.Text = "Spe"; + this.CHK_rSPE.UseVisualStyleBackColor = true; + // + // CHK_Type + // + this.CHK_Type.AutoSize = true; + this.CHK_Type.Checked = true; + this.CHK_Type.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_Type.Location = new System.Drawing.Point(118, 61); + this.CHK_Type.Name = "CHK_Type"; + this.CHK_Type.Size = new System.Drawing.Size(55, 17); + this.CHK_Type.TabIndex = 6; + this.CHK_Type.Text = "Types"; + this.CHK_Type.UseVisualStyleBackColor = true; + // + // CHK_rSPD + // + this.CHK_rSPD.AutoSize = true; + this.CHK_rSPD.Checked = true; + this.CHK_rSPD.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_rSPD.Location = new System.Drawing.Point(6, 60); + this.CHK_rSPD.Name = "CHK_rSPD"; + this.CHK_rSPD.Size = new System.Drawing.Size(47, 17); + this.CHK_rSPD.TabIndex = 18; + this.CHK_rSPD.Text = "SpD"; + this.CHK_rSPD.UseVisualStyleBackColor = true; + // + // CHK_rSPA + // + this.CHK_rSPA.AutoSize = true; + this.CHK_rSPA.Checked = true; + this.CHK_rSPA.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_rSPA.Location = new System.Drawing.Point(51, 45); + this.CHK_rSPA.Name = "CHK_rSPA"; + this.CHK_rSPA.Size = new System.Drawing.Size(46, 17); + this.CHK_rSPA.TabIndex = 17; + this.CHK_rSPA.Text = "SpA"; + this.CHK_rSPA.UseVisualStyleBackColor = true; + // + // L_SingleType + // + this.L_SingleType.AutoSize = true; + this.L_SingleType.Location = new System.Drawing.Point(115, 79); + this.L_SingleType.Name = "L_SingleType"; + this.L_SingleType.Size = new System.Drawing.Size(80, 13); + this.L_SingleType.TabIndex = 21; + this.L_SingleType.Text = "Single Type (%)"; + // + // CHK_rDEF + // + this.CHK_rDEF.AutoSize = true; + this.CHK_rDEF.Checked = true; + this.CHK_rDEF.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_rDEF.Location = new System.Drawing.Point(6, 45); + this.CHK_rDEF.Name = "CHK_rDEF"; + this.CHK_rDEF.Size = new System.Drawing.Size(43, 17); + this.CHK_rDEF.TabIndex = 16; + this.CHK_rDEF.Text = "Def"; + this.CHK_rDEF.UseVisualStyleBackColor = true; + // + // CHK_rATK + // + this.CHK_rATK.AutoSize = true; + this.CHK_rATK.Checked = true; + this.CHK_rATK.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_rATK.Location = new System.Drawing.Point(51, 30); + this.CHK_rATK.Name = "CHK_rATK"; + this.CHK_rATK.Size = new System.Drawing.Size(42, 17); + this.CHK_rATK.TabIndex = 15; + this.CHK_rATK.Text = "Atk"; + this.CHK_rATK.UseVisualStyleBackColor = true; + // + // NUD_TypePercent + // + this.NUD_TypePercent.Location = new System.Drawing.Point(134, 95); + this.NUD_TypePercent.Name = "NUD_TypePercent"; + this.NUD_TypePercent.Size = new System.Drawing.Size(46, 20); + this.NUD_TypePercent.TabIndex = 20; + this.NUD_TypePercent.Value = new decimal(new int[] { + 50, + 0, + 0, + 0}); + // + // CHK_rHP + // + this.CHK_rHP.AutoSize = true; + this.CHK_rHP.Checked = true; + this.CHK_rHP.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_rHP.Location = new System.Drawing.Point(6, 30); + this.CHK_rHP.Name = "CHK_rHP"; + this.CHK_rHP.Size = new System.Drawing.Size(41, 17); + this.CHK_rHP.TabIndex = 14; + this.CHK_rHP.Text = "HP"; + this.CHK_rHP.UseVisualStyleBackColor = true; + // + // CHK_HM + // + this.CHK_HM.AutoSize = true; + this.CHK_HM.Checked = true; + this.CHK_HM.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_HM.Location = new System.Drawing.Point(267, 15); + this.CHK_HM.Name = "CHK_HM"; + this.CHK_HM.Size = new System.Drawing.Size(43, 17); + this.CHK_HM.TabIndex = 7; + this.CHK_HM.Text = "HM"; + this.CHK_HM.UseVisualStyleBackColor = true; + // + // L_StatDev + // + this.L_StatDev.AutoSize = true; + this.L_StatDev.Location = new System.Drawing.Point(6, 92); + this.L_StatDev.Name = "L_StatDev"; + this.L_StatDev.Size = new System.Drawing.Size(70, 13); + this.L_StatDev.TabIndex = 4; + this.L_StatDev.Text = "Deviance (%)"; + // + // CHK_TM + // + this.CHK_TM.AutoSize = true; + this.CHK_TM.Checked = true; + this.CHK_TM.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_TM.Location = new System.Drawing.Point(219, 15); + this.CHK_TM.Name = "CHK_TM"; + this.CHK_TM.Size = new System.Drawing.Size(42, 17); + this.CHK_TM.TabIndex = 0; + this.CHK_TM.Text = "TM"; + this.CHK_TM.UseVisualStyleBackColor = true; + // + // NUD_StatDev + // + this.NUD_StatDev.Location = new System.Drawing.Point(27, 108); + this.NUD_StatDev.Name = "NUD_StatDev"; + this.NUD_StatDev.Size = new System.Drawing.Size(46, 20); + this.NUD_StatDev.TabIndex = 3; + this.NUD_StatDev.Value = new decimal(new int[] { + 25, + 0, + 0, + 0}); + // + // CHK_Stats + // + this.CHK_Stats.AutoSize = true; + this.CHK_Stats.Checked = true; + this.CHK_Stats.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_Stats.Location = new System.Drawing.Point(6, 15); + this.CHK_Stats.Name = "CHK_Stats"; + this.CHK_Stats.Size = new System.Drawing.Size(106, 17); + this.CHK_Stats.TabIndex = 2; + this.CHK_Stats.Text = "Randomize Stats"; + this.CHK_Stats.UseVisualStyleBackColor = true; + this.CHK_Stats.CheckedChanged += new System.EventHandler(this.CHK_Stats_CheckedChanged); + // + // CHK_EggGroup + // + this.CHK_EggGroup.AutoSize = true; + this.CHK_EggGroup.Checked = true; + this.CHK_EggGroup.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_EggGroup.Location = new System.Drawing.Point(219, 77); + this.CHK_EggGroup.Name = "CHK_EggGroup"; + this.CHK_EggGroup.Size = new System.Drawing.Size(77, 17); + this.CHK_EggGroup.TabIndex = 13; + this.CHK_EggGroup.Text = "Egg Group"; + this.CHK_EggGroup.UseVisualStyleBackColor = true; + // + // CHK_CatchRate + // + this.CHK_CatchRate.AutoSize = true; + this.CHK_CatchRate.Checked = true; + this.CHK_CatchRate.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_CatchRate.Location = new System.Drawing.Point(219, 62); + this.CHK_CatchRate.Name = "CHK_CatchRate"; + this.CHK_CatchRate.Size = new System.Drawing.Size(80, 17); + this.CHK_CatchRate.TabIndex = 11; + this.CHK_CatchRate.Text = "Catch Rate"; + this.CHK_CatchRate.UseVisualStyleBackColor = true; + // + // CHK_Item + // + this.CHK_Item.AutoSize = true; + this.CHK_Item.Checked = true; + this.CHK_Item.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_Item.Location = new System.Drawing.Point(118, 15); + this.CHK_Item.Name = "CHK_Item"; + this.CHK_Item.Size = new System.Drawing.Size(76, 17); + this.CHK_Item.TabIndex = 5; + this.CHK_Item.Text = "Held Items"; + this.CHK_Item.UseVisualStyleBackColor = true; + // + // B_Randomize + // + this.B_Randomize.Location = new System.Drawing.Point(352, 25); + this.B_Randomize.Name = "B_Randomize"; + this.B_Randomize.Size = new System.Drawing.Size(82, 23); + this.B_Randomize.TabIndex = 417; + this.B_Randomize.Text = "Randomize"; + this.B_Randomize.UseVisualStyleBackColor = true; + this.B_Randomize.Click += new System.EventHandler(this.B_Randomize_Click); + // + // PB_MonSprite + // + this.PB_MonSprite.Location = new System.Drawing.Point(285, 1); + this.PB_MonSprite.Name = "PB_MonSprite"; + this.PB_MonSprite.Size = new System.Drawing.Size(80, 60); + this.PB_MonSprite.TabIndex = 89; + this.PB_MonSprite.TabStop = false; + // + // B_Dump + // + this.B_Dump.Location = new System.Drawing.Point(368, 19); + this.B_Dump.Name = "B_Dump"; + this.B_Dump.Size = new System.Drawing.Size(82, 23); + this.B_Dump.TabIndex = 418; + this.B_Dump.Text = "Dump All"; + this.B_Dump.UseVisualStyleBackColor = true; + this.B_Dump.Click += new System.EventHandler(this.B_Dump_Click); + // + // CHK_FullMoveTutorCompatibility + // + this.CHK_FullMoveTutorCompatibility.AutoSize = true; + this.CHK_FullMoveTutorCompatibility.Location = new System.Drawing.Point(6, 153); + this.CHK_FullMoveTutorCompatibility.Name = "CHK_FullMoveTutorCompatibility"; + this.CHK_FullMoveTutorCompatibility.Size = new System.Drawing.Size(161, 17); + this.CHK_FullMoveTutorCompatibility.TabIndex = 24; + this.CHK_FullMoveTutorCompatibility.Text = "Full Move Tutor Compatibility"; + this.CHK_FullMoveTutorCompatibility.UseVisualStyleBackColor = true; + // + // PersonalEditor6 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(469, 426); + this.Controls.Add(this.B_Dump); + this.Controls.Add(this.PB_MonSprite); + this.Controls.Add(this.TC_Pokemon); + this.Controls.Add(this.L_Species_Precursor); + this.Controls.Add(this.CB_Species); + this.MaximizeBox = false; + this.MaximumSize = new System.Drawing.Size(485, 465); + this.MinimumSize = new System.Drawing.Size(485, 465); + this.Name = "PersonalEditor6"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Personal Stats Editor"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form_Closing); + this.TC_Pokemon.ResumeLayout(false); + this.TP_General.ResumeLayout(false); + this.TP_General.PerformLayout(); + this.TP_MoveTutors.ResumeLayout(false); + this.TP_MoveTutors.PerformLayout(); + this.TP_Randomizer.ResumeLayout(false); + this.GB_Modifier.ResumeLayout(false); + this.GB_Modifier.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_CatchRateMod)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_EXP)).EndInit(); + this.GB_Randomizer.ResumeLayout(false); + this.GB_Randomizer.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Egg)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_TypePercent)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_StatDev)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_MonSprite)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.ComboBox CB_Species; + private System.Windows.Forms.Label L_Species_Precursor; + private System.Windows.Forms.TabControl TC_Pokemon; + private System.Windows.Forms.TabPage TP_General; + private System.Windows.Forms.TabPage TP_MoveTutors; + private System.Windows.Forms.MaskedTextBox TB_SPEEVs; + private System.Windows.Forms.MaskedTextBox TB_SPDEVs; + private System.Windows.Forms.MaskedTextBox TB_SPAEVs; + private System.Windows.Forms.MaskedTextBox TB_DEFEVs; + private System.Windows.Forms.MaskedTextBox TB_ATKEVs; + private System.Windows.Forms.MaskedTextBox TB_HPEVs; + private System.Windows.Forms.MaskedTextBox TB_BaseSPE; + private System.Windows.Forms.MaskedTextBox TB_BaseSPD; + private System.Windows.Forms.MaskedTextBox TB_BaseSPA; + private System.Windows.Forms.MaskedTextBox TB_BaseDEF; + private System.Windows.Forms.MaskedTextBox TB_BaseATK; + private System.Windows.Forms.MaskedTextBox TB_BaseHP; + private System.Windows.Forms.Label Label_HP; + private System.Windows.Forms.Label Label_ATK; + private System.Windows.Forms.Label Label_DEF; + private System.Windows.Forms.Label Label_SPA; + private System.Windows.Forms.Label Label_SPD; + private System.Windows.Forms.Label Label_SPE; + private System.Windows.Forms.Label L_EVYield; + private System.Windows.Forms.Label L_BaseStats; + private System.Windows.Forms.ComboBox CB_HeldItem1; + private System.Windows.Forms.Label L_HeldItem; + private System.Windows.Forms.ComboBox CB_Type2; + private System.Windows.Forms.ComboBox CB_Type1; + private System.Windows.Forms.Label L_Type; + private System.Windows.Forms.Label L_Item1; + private System.Windows.Forms.Label L_Item5; + private System.Windows.Forms.Label L_Item50; + private System.Windows.Forms.ComboBox CB_HeldItem3; + private System.Windows.Forms.ComboBox CB_HeldItem2; + private System.Windows.Forms.MaskedTextBox TB_Weight; + private System.Windows.Forms.MaskedTextBox TB_Height; + private System.Windows.Forms.Label L_Weight; + private System.Windows.Forms.Label L_Height; + private System.Windows.Forms.ComboBox CB_Ability3; + private System.Windows.Forms.ComboBox CB_Ability2; + private System.Windows.Forms.ComboBox CB_Ability1; + private System.Windows.Forms.ComboBox CB_EggGroup2; + private System.Windows.Forms.ComboBox CB_EggGroup1; + private System.Windows.Forms.Label L_EggGroup; + private System.Windows.Forms.Label L_Ability; + private System.Windows.Forms.MaskedTextBox TB_BaseExp; + private System.Windows.Forms.Label L_BaseEXP; + private System.Windows.Forms.MaskedTextBox TB_HatchCycles; + private System.Windows.Forms.Label L_HatchCycles; + private System.Windows.Forms.MaskedTextBox TB_Friendship; + private System.Windows.Forms.MaskedTextBox TB_Gender; + private System.Windows.Forms.Label L_Friendship; + private System.Windows.Forms.Label L_Gender; + private System.Windows.Forms.ComboBox CB_Color; + private System.Windows.Forms.ComboBox CB_EXPGroup; + private System.Windows.Forms.Label L_Color; + private System.Windows.Forms.Label L_EXPGrowth; + private System.Windows.Forms.Label L_CatchRate; + private System.Windows.Forms.Label L_WeightKG; + private System.Windows.Forms.Label L_HeightM; + private System.Windows.Forms.TextBox TB_FormeCount; + private System.Windows.Forms.Label L_FormesCount; + private System.Windows.Forms.TextBox TB_FormeSprite; + private System.Windows.Forms.Label L_FormeSprite; + private System.Windows.Forms.TextBox TB_Stage; + private System.Windows.Forms.Label L_Stage; + private System.Windows.Forms.MaskedTextBox TB_CatchRate; + private System.Windows.Forms.Label L_BST; + private System.Windows.Forms.TextBox TB_BST; + private System.Windows.Forms.CheckedListBox CLB_TMHM; + private System.Windows.Forms.CheckedListBox CLB_ORASTutors; + private System.Windows.Forms.CheckedListBox CLB_MoveTutors; + private System.Windows.Forms.Label L_ORASTutors; + private System.Windows.Forms.Label L_Special; + private System.Windows.Forms.Label L_TMHM; + private System.Windows.Forms.PictureBox PB_MonSprite; + private System.Windows.Forms.Button B_Randomize; + private System.Windows.Forms.Button B_Dump; + private System.Windows.Forms.CheckBox CHK_TM; + private System.Windows.Forms.CheckBox CHK_Ability; + private System.Windows.Forms.CheckBox CHK_Stats; + private System.Windows.Forms.NumericUpDown NUD_StatDev; + private System.Windows.Forms.Label L_StatDev; + private System.Windows.Forms.CheckBox CHK_Item; + private System.Windows.Forms.CheckBox CHK_Type; + private System.Windows.Forms.CheckBox CHK_HM; + private System.Windows.Forms.CheckBox CHK_ORASTutors; + private System.Windows.Forms.CheckBox CHK_Tutors; + private System.Windows.Forms.CheckBox CHK_WGuard; + private System.Windows.Forms.CheckBox CHK_CatchRate; + private System.Windows.Forms.CheckBox CHK_rSPE; + private System.Windows.Forms.CheckBox CHK_rSPD; + private System.Windows.Forms.CheckBox CHK_rSPA; + private System.Windows.Forms.CheckBox CHK_rDEF; + private System.Windows.Forms.CheckBox CHK_rATK; + private System.Windows.Forms.CheckBox CHK_rHP; + private System.Windows.Forms.CheckBox CHK_EggGroup; + private System.Windows.Forms.Button B_ModAll; + private System.Windows.Forms.CheckBox CHK_NoEV; + private System.Windows.Forms.TabPage TP_Randomizer; + private System.Windows.Forms.Label L_SingleType; + private System.Windows.Forms.NumericUpDown NUD_TypePercent; + private System.Windows.Forms.GroupBox GB_Randomizer; + private System.Windows.Forms.GroupBox GB_Modifier; + private System.Windows.Forms.CheckBox CHK_EXP; + private System.Windows.Forms.Label L_FinalXP; + private System.Windows.Forms.NumericUpDown NUD_EXP; + private System.Windows.Forms.CheckBox CHK_Growth; + private System.Windows.Forms.CheckBox CHK_QuickHatch; + private System.Windows.Forms.Label L_Same; + private System.Windows.Forms.NumericUpDown NUD_Egg; + private System.Windows.Forms.CheckBox CHK_CatchRateMod; + private System.Windows.Forms.Label L_CatchRateMod; + private System.Windows.Forms.NumericUpDown NUD_CatchRateMod; + private System.Windows.Forms.CheckBox CHK_Shuffle; + private System.Windows.Forms.CheckBox CHK_NoTutor; + private System.Windows.Forms.Label L_HiddenAbility; + private System.Windows.Forms.Label L_Ability2; + private System.Windows.Forms.Label L_Ability1; + private System.Windows.Forms.TextBox TB_RawColor; + private System.Windows.Forms.CheckBox CHK_FullTMCompatibility; + private System.Windows.Forms.CheckBox CHK_FullHMCompatibility; + private System.Windows.Forms.CheckBox CHK_FullMoveTutorCompatibility; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen6/PersonalEditor6.cs b/pk3DS.WinForms/Subforms/Gen6/PersonalEditor6.cs new file mode 100644 index 0000000000..bdedecbb04 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/PersonalEditor6.cs @@ -0,0 +1,504 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Media; +using System.Text; +using System.Windows.Forms; +using pk3DS.Core.Structures.PersonalInfo; +using pk3DS.Core; +using pk3DS.Core.Randomizers; + +namespace pk3DS.WinForms; + +public partial class PersonalEditor6 : Form +{ + public PersonalEditor6(byte[][] infiles) + { + InitializeComponent(); + helditem_boxes = [CB_HeldItem1, CB_HeldItem2, CB_HeldItem3]; + ability_boxes = [CB_Ability1, CB_Ability2, CB_Ability3]; + typing_boxes = [CB_Type1, CB_Type2]; + eggGroup_boxes = [CB_EggGroup1, CB_EggGroup2]; + byte_boxes = [TB_BaseHP, TB_BaseATK, TB_BaseDEF, TB_BaseSPA, TB_BaseSPD, TB_BaseSPE, TB_Gender, TB_HatchCycles, TB_Friendship, TB_CatchRate, + ]; + ev_boxes = [TB_HPEVs, TB_ATKEVs, TB_DEFEVs, TB_SPEEVs, TB_SPAEVs, TB_SPDEVs]; + rstat_boxes = [CHK_rHP, CHK_rATK, CHK_rDEF, CHK_rSPA, CHK_rSPD, CHK_rSPE]; + files = infiles; + + abilities = Main.Config.GetText(TextName.AbilityNames); + moves = Main.Config.GetText(TextName.MoveNames); + items = Main.Config.GetText(TextName.ItemNames); + species = Main.Config.GetText(TextName.SpeciesNames); + types = Main.Config.GetText(TextName.Types); + species[0] = "---"; + abilities[0] = items[0] = moves[0] = ""; + string[][] AltForms = Main.Config.Personal.GetFormList(species, Main.Config.MaxSpeciesID); + species = Main.Config.Personal.GetPersonalEntryList(AltForms, species, Main.Config.MaxSpeciesID, out baseForms, out formVal); + TMHMEditor6.GetTMHMList(out TMs, out HMs); + + Setup(); //Turn string resources into arrays + CB_Species.SelectedIndex = 1; + RandSettings.GetFormSettings(this, TP_Randomizer.Controls); + } + #region Global Variables + private readonly string mode = Main.Config.ORAS ? "ORAS" : "XY"; + private readonly byte[][] files; + + private string[] items = []; + private string[] moves = []; + private string[] species = []; + private readonly string[] abilities = []; + + private readonly ComboBox[] helditem_boxes; + private readonly ComboBox[] ability_boxes; + private readonly ComboBox[] typing_boxes; + private readonly ComboBox[] eggGroup_boxes; + + private readonly MaskedTextBox[] byte_boxes; + private readonly MaskedTextBox[] ev_boxes; + private readonly CheckBox[] rstat_boxes; + + private readonly string[] types = []; + + private readonly string[] eggGroups = ["---", "Monster", "Water 1", "Bug", "Flying", "Field", "Fairy", "Grass", "Human-Like", "Water 3", "Mineral", "Amorphous", "Water 2", "Ditto", "Dragon", "Undiscovered", + ]; + private readonly string[] EXPGroups = ["Medium-Fast", "Erratic", "Fluctuating", "Medium-Slow", "Fast", "Slow"]; + private readonly string[] colors = ["Red", "Blue", "Yellow", "Green", "Black", "Brown", "Purple", "Gray", "White", "Pink", + ]; + + /* + public string[] tutormoves = { "Frenzy Plant", "Blast Burn", "Hydro Cannon", "Grass Pledge", "Fire Pledge", "Water Pledge", "Draco Meteor", "Dragon's Ascent" }; + public string[] tutor1 = { "Bug Bite", "Covet", "Super Fang", "Dual Chop", "Signal Beam", "Iron Head", "Seed Bomb", "Drill Run", "Bounce", "Low Kick", "Gunk Shot", "Uproar", "Thunder Punch", "Fire Punch", "Ice Punch" }; + public string[] tutor2 = { "Magic Coat", "Block", "Earth Power", "Foul Play", "Gravity", "Magnet Rise", "Iron Defense", "Last Resort", "Superpower", "Electroweb", "Icy Wind", "Aqua Tail", "Dark Pulse", "Zen Headbutt", "Dragon Pulse", "Hyper Voice", "Iron Tail" }; + public string[] tutor3 = { "Bind", "Snore", "Knock Off", "Synthesis", "Heat Wave", "Role Play", "Heal Bell", "Tailwind", "Sky Attack", "Pain Split", "Giga Drain", "Drain Punch", "Air Cutter", "Focus Punch", "Shock Wave", "Water Pulse" }; + public string[] tutor4 = { "Gastro Acid", "Worry Seed", "Spite", "After You", "Helping Hand", "Trick", "Magic Room", "Wonder Room", "Endeavor", "Outrage", "Recycle", "Snatch", "Stealth Rock", "Sleep Talk", "Skill Swap" }; + */ + private readonly ushort[] tutormoves = [520, 519, 518, 338, 307, 308, 434, 620]; + private readonly ushort[] tutor1 = [450, 343, 162, 530, 324, 442, 402, 529, 340, 067, 441, 253, 009, 007, 008]; + private readonly ushort[] tutor2 = [277, 335, 414, 492, 356, 393, 334, 387, 276, 527, 196, 401, 399, 428, 406, 304, 231, + ]; + private readonly ushort[] tutor3 = [020, 173, 282, 235, 257, 272, 215, 366, 143, 220, 202, 409, 355, 264, 351, 352, + ]; + private readonly ushort[] tutor4 = [380, 388, 180, 495, 270, 271, 478, 472, 283, 200, 278, 289, 446, 214, 285]; + + private readonly int[] baseForms, formVal; + private readonly ushort[] TMs, HMs; + private int entry = -1; + #endregion + private void Setup() + { + CLB_TMHM.Items.Clear(); + int hmcount = Main.Config.ORAS ? 7 : 5; + + if (TMs.Length == 0) // No ExeFS to grab TMs from. + { + for (int i = 1; i <= 100; i++) + CLB_TMHM.Items.Add($"TM{i:00}"); + for (int i = 1; i <= hmcount; i++) + CLB_TMHM.Items.Add($"HM{i:00}"); + } + else // Use TMHM moves. + { + for (int i = 1; i <= 100; i++) + CLB_TMHM.Items.Add($"TM{i:00} {moves[TMs[i - 1]]}"); + for (int i = 1; i <= hmcount; i++) + CLB_TMHM.Items.Add($"HM{i:00} {moves[HMs[i - 1]]}"); + } + for (int i = 0; i < tutormoves.Length - 1; i++) + CLB_MoveTutors.Items.Add(moves[tutormoves[i]]); + + if (mode == "XY") + { + string[] temp_items = new string[718]; // 719 items in XY + Array.Copy(items, temp_items, temp_items.Length); + items = temp_items; + + string[] temp_moves = new string[moves.Length - 4]; // 4 new moves added in ORAS + Array.Copy(moves, temp_moves, temp_moves.Length); + moves = temp_moves; + + string[] temp_species = new string[799]; // 799 species in XY + Array.Copy(species, temp_species, temp_species.Length); + species = temp_species; + + CLB_ORASTutors.Visible = + CLB_ORASTutors.Enabled = + L_ORASTutors.Visible = false; + CHK_ORASTutors.Visible = false; + } + else if (mode == "ORAS") + { + CLB_MoveTutors.Items.Add(moves[tutormoves[^1]]); //Dragon's Ascent + foreach (ushort tm in tutor1) + CLB_ORASTutors.Items.Add(moves[tm]); + foreach (ushort tm in tutor2) + CLB_ORASTutors.Items.Add(moves[tm]); + foreach (ushort tm in tutor3) + CLB_ORASTutors.Items.Add(moves[tm]); + foreach (ushort tm in tutor4) + CLB_ORASTutors.Items.Add(moves[tm]); + + CLB_ORASTutors.Visible = + CLB_ORASTutors.Enabled = + L_ORASTutors.Visible = true; + } + for (int i = 0; i < species.Length; i++) + CB_Species.Items.Add($"{species[i]} - {i:000}"); + + foreach (ComboBox cb in helditem_boxes) + { + cb.Items.AddRange(items); + } + + foreach (ComboBox cb in ability_boxes) + { + cb.Items.AddRange(abilities); + } + + foreach (ComboBox cb in typing_boxes) + { + cb.Items.AddRange(types); + } + + foreach (ComboBox cb in eggGroup_boxes) + { + cb.Items.AddRange(eggGroups); + } + + CB_Color.Items.AddRange(colors); + + CB_EXPGroup.Items.AddRange(EXPGroups); + } + + private void CB_Species_SelectedIndexChanged(object sender, EventArgs e) + { + if (entry > -1 && !dumping) SaveEntry(); + entry = CB_Species.SelectedIndex; + ReadEntry(); + } + + private void ByteLimiter(object sender, EventArgs e) + { + if (sender is not MaskedTextBox mtb) + return; + _ = int.TryParse(mtb.Text, out int val); + if (Array.IndexOf(byte_boxes, mtb) > -1 && val > 255) + mtb.Text = "255"; + else if (Array.IndexOf(ev_boxes, mtb) > -1 && val > 3) + mtb.Text = "3"; + } + + private PersonalInfo pkm; + + private void ReadInfo() + { + pkm = Main.SpeciesStat[entry]; + + TB_BaseHP.Text = pkm.HP.ToString("000"); + TB_BaseATK.Text = pkm.ATK.ToString("000"); + TB_BaseDEF.Text = pkm.DEF.ToString("000"); + TB_BaseSPE.Text = pkm.SPE.ToString("000"); + TB_BaseSPA.Text = pkm.SPA.ToString("000"); + TB_BaseSPD.Text = pkm.SPD.ToString("000"); + TB_HPEVs.Text = pkm.EV_HP.ToString("0"); + TB_ATKEVs.Text = pkm.EV_ATK.ToString("0"); + TB_DEFEVs.Text = pkm.EV_DEF.ToString("0"); + TB_SPEEVs.Text = pkm.EV_SPE.ToString("0"); + TB_SPAEVs.Text = pkm.EV_SPA.ToString("0"); + TB_SPDEVs.Text = pkm.EV_SPD.ToString("0"); + + CB_Type1.SelectedIndex = pkm.Types[0]; + CB_Type2.SelectedIndex = pkm.Types[1]; + + TB_CatchRate.Text = pkm.CatchRate.ToString("000"); + TB_Stage.Text = pkm.EvoStage.ToString("0"); + + CB_HeldItem1.SelectedIndex = pkm.Items[0]; + CB_HeldItem2.SelectedIndex = pkm.Items[1]; + CB_HeldItem3.SelectedIndex = pkm.Items[2]; + + TB_Gender.Text = pkm.Gender.ToString("000"); + TB_HatchCycles.Text = pkm.HatchCycles.ToString("000"); + TB_Friendship.Text = pkm.BaseFriendship.ToString("000"); + + CB_EXPGroup.SelectedIndex = pkm.EXPGrowth; + + CB_EggGroup1.SelectedIndex = pkm.EggGroups[0]; + CB_EggGroup2.SelectedIndex = pkm.EggGroups[1]; + + CB_Ability1.SelectedIndex = pkm.Abilities[0]; + CB_Ability2.SelectedIndex = pkm.Abilities[1]; + CB_Ability3.SelectedIndex = pkm.Abilities[2]; + + TB_FormeCount.Text = pkm.FormeCount.ToString("000"); + TB_FormeSprite.Text = pkm.FormeSprite.ToString("000"); + + TB_RawColor.Text = pkm.Color.ToString("000"); + CB_Color.SelectedIndex = pkm.Color & 0xF; + + TB_BaseExp.Text = pkm.BaseEXP.ToString("000"); + TB_BST.Text = pkm.BST.ToString("000"); + + TB_Height.Text = ((decimal)pkm.Height / 100).ToString("00.00"); + TB_Weight.Text = ((decimal)pkm.Weight / 10).ToString("000.0"); + + for (int i = 0; i < CLB_TMHM.Items.Count; i++) + CLB_TMHM.SetItemChecked(i, pkm.TMHM[i]); // Bitflags for TMHM + + for (int i = 0; i < CLB_MoveTutors.Items.Count; i++) + CLB_MoveTutors.SetItemChecked(i, pkm.TypeTutors[i]); // Bitflags for Tutors + + if (pkm.SpecialTutors.Length > 0) + { + int[] len = [tutor1.Length, tutor2.Length, tutor3.Length, tutor4.Length]; + int ctr = 0; + for (int i = 0; i < len.Length; i++) + { + for (int b = 0; b < len[i]; b++) + CLB_ORASTutors.SetItemChecked(ctr++, pkm.SpecialTutors[i][b]); + } + } + } + + private void ReadEntry() + { + ReadInfo(); + + if (dumping) return; + int s = baseForms[entry]; + int f = formVal[entry]; + if (entry <= Main.Config.MaxSpeciesID) + s = entry; + var rawImg = WinFormsUtil.GetSprite(s, f, 0, 0, Main.Config); + var bigImg = new Bitmap(rawImg.Width * 2, rawImg.Height * 2); + for (int x = 0; x < rawImg.Width; x++) + { + for (int y = 0; y < rawImg.Height; y++) + { + Color c = rawImg.GetPixel(x, y); + bigImg.SetPixel(2 * x, 2 * y, c); + bigImg.SetPixel((2 * x) + 1, 2 * y, c); + bigImg.SetPixel(2 * x, (2 * y) + 1, c); + bigImg.SetPixel((2 * x) + 1, (2 * y) + 1, c); + } + } + PB_MonSprite.Image = bigImg; + } + + private void SavePersonal() + { + pkm.HP = Convert.ToByte(TB_BaseHP.Text); + pkm.ATK = Convert.ToByte(TB_BaseATK.Text); + pkm.DEF = Convert.ToByte(TB_BaseDEF.Text); + pkm.SPE = Convert.ToByte(TB_BaseSPE.Text); + pkm.SPA = Convert.ToByte(TB_BaseSPA.Text); + pkm.SPD = Convert.ToByte(TB_BaseSPD.Text); + + pkm.EV_HP = Convert.ToByte(TB_HPEVs.Text); + pkm.EV_ATK = Convert.ToByte(TB_ATKEVs.Text); + pkm.EV_DEF = Convert.ToByte(TB_DEFEVs.Text); + pkm.EV_SPE = Convert.ToByte(TB_SPEEVs.Text); + pkm.EV_SPA = Convert.ToByte(TB_SPAEVs.Text); + pkm.EV_SPD = Convert.ToByte(TB_SPDEVs.Text); + + pkm.CatchRate = Convert.ToByte(TB_CatchRate.Text); + pkm.EvoStage = Convert.ToByte(TB_Stage.Text); + + pkm.Types = [CB_Type1.SelectedIndex, CB_Type2.SelectedIndex]; + pkm.Items = [CB_HeldItem1.SelectedIndex, CB_HeldItem2.SelectedIndex, CB_HeldItem3.SelectedIndex]; + + pkm.Gender = Convert.ToByte(TB_Gender.Text); + pkm.HatchCycles = Convert.ToByte(TB_HatchCycles.Text); + pkm.BaseFriendship = Convert.ToByte(TB_Friendship.Text); + pkm.EXPGrowth = (byte)CB_EXPGroup.SelectedIndex; + pkm.EggGroups = [CB_EggGroup1.SelectedIndex, CB_EggGroup2.SelectedIndex]; + pkm.Abilities = [CB_Ability1.SelectedIndex, CB_Ability2.SelectedIndex, CB_Ability3.SelectedIndex]; + + pkm.FormeSprite = Convert.ToUInt16(TB_FormeSprite.Text); + pkm.FormeCount = Convert.ToByte(TB_FormeCount.Text); + pkm.Color = (byte)(Convert.ToByte(CB_Color.SelectedIndex) | (Convert.ToByte(TB_RawColor.Text) & 0xF0)); + pkm.BaseEXP = Convert.ToUInt16(TB_BaseExp.Text); + + _ = decimal.TryParse(TB_Height.Text, out var h); + _ = decimal.TryParse(TB_Weight.Text, out var w); + pkm.Height = (int)(h * 100); + pkm.Weight = (int)(w * 10); + + for (int i = 0; i < CLB_TMHM.Items.Count; i++) + pkm.TMHM[i] = CLB_TMHM.GetItemChecked(i); + + for (int t = 0; t < CLB_MoveTutors.Items.Count; t++) + pkm.TypeTutors[t] = CLB_MoveTutors.GetItemChecked(t); + + if (!Main.Config.ORAS) return; + + int[] len = [tutor1.Length, tutor2.Length, tutor3.Length, tutor4.Length]; + int ctr = 0; + for (int i = 0; i < 4; i++) + { + for (int t = 0; t < len[i]; t++) + pkm.SpecialTutors[i][t] = CLB_ORASTutors.GetItemChecked(ctr++); + } + } + + private void SaveEntry() + { + SavePersonal(); + byte[] edits = pkm.Write(); + files[entry] = edits; + } + + private void B_Randomize_Click(object sender, EventArgs e) + { + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomize all? Cannot undo.", "Double check Randomization settings in the Enhancements tab.") != DialogResult.Yes) return; + SaveEntry(); + + // input settings + var rnd = new PersonalRandomizer(Main.SpeciesStat, Main.Config) + { + TypeCount = CB_Type1.Items.Count, + ModifyCatchRate = CHK_CatchRate.Checked, + ModifyEggGroup = CHK_EggGroup.Checked, + ModifyStats = CHK_Stats.Checked, + ShuffleStats = CHK_Shuffle.Checked, + StatsToRandomize = rstat_boxes.Select(g => g.Checked).ToArray(), + ModifyAbilities = CHK_Ability.Checked, + ModifyLearnsetTM = CHK_TM.Checked, + ModifyLearnsetHM = CHK_HM.Checked, + ModifyLearnsetTypeTutors = CHK_Tutors.Checked, + ModifyLearnsetMoveTutors = Main.Config.ORAS && CHK_ORASTutors.Checked, + ModifyTypes = CHK_Type.Checked, + ModifyHeldItems = CHK_Item.Checked, + SameTypeChance = NUD_TypePercent.Value, + SameEggGroupChance = NUD_Egg.Value, + StatDeviation = NUD_StatDev.Value, + AllowWonderGuard = CHK_WGuard.Checked, + MoveIDsTMs = TMs, + }; + rnd.Execute(); + Main.SpeciesStat.Select(z => z.Write()).ToArray().CopyTo(files, 0); + + ReadEntry(); + WinFormsUtil.Alert("Randomized all Pokémon Personal data entries according to specification!", "Press the Dump All button to view the new Personal data!"); + } + + private void B_ModifyAll(object sender, EventArgs e) + { + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Modify all? Cannot undo.", "Double check Modification settings in the Enhancements tab.") != DialogResult.Yes) return; + + for (int i = 1; i < CB_Species.Items.Count; i++) + { + CB_Species.SelectedIndex = i; // Get new Species + + if (CHK_NoEV.Checked) + { + for (int z = 0; z < 6; z++) + ev_boxes[z].Text = 0.ToString(); + } + + if (CHK_Growth.Checked) + CB_EXPGroup.SelectedIndex = 5; + if (CHK_EXP.Checked) + TB_BaseExp.Text = ((float)NUD_EXP.Value * (Convert.ToUInt16(TB_BaseExp.Text) / 100f)).ToString("000"); + + if (CHK_NoTutor.Checked) + { + // preserve HM compatiblity to ensure story progression + for (int tm = 0; tm <= 100; tm++) + CLB_TMHM.SetItemCheckState(tm, CheckState.Unchecked); + foreach (int mt in CLB_MoveTutors.CheckedIndices) + CLB_MoveTutors.SetItemCheckState(mt, CheckState.Unchecked); + foreach (int ao in CLB_ORASTutors.CheckedIndices) + CLB_ORASTutors.SetItemCheckState(ao, CheckState.Unchecked); + } + + if (CHK_FullTMCompatibility.Checked) + { + for (int t = 0; t < 100; t++) + CLB_TMHM.SetItemCheckState(t, CheckState.Checked); + } + + if (CHK_FullHMCompatibility.Checked) + { + for (int h = 100; h < CLB_TMHM.Items.Count; h++) + CLB_TMHM.SetItemCheckState(h, CheckState.Checked); + } + + if (CHK_FullMoveTutorCompatibility.Checked) + { + for (int m = 0; m < CLB_MoveTutors.Items.Count; m++) + CLB_MoveTutors.SetItemCheckState(m, CheckState.Checked); + } + + if (CHK_QuickHatch.Checked) + TB_HatchCycles.Text = 1.ToString(); + if (CHK_CatchRateMod.Checked) + TB_CatchRate.Text = ((int)NUD_CatchRateMod.Value).ToString(); + } + CB_Species.SelectedIndex = 1; + WinFormsUtil.Alert("Modified all Pokémon Personal data entries according to specification!", "Press the Dump All button to view the new Personal data!"); + } + + private bool dumping; + + private void B_Dump_Click(object sender, EventArgs e) + { + if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Dump all Personal Entries to Text File?")) + return; + var sfd = new SaveFileDialog { FileName = "Personal Entries.txt", Filter = "Text File|*.txt" }; + SystemSounds.Asterisk.Play(); + if (sfd.ShowDialog() != DialogResult.OK) + return; + + dumping = true; + List lines = []; + for (int i = 0; i < CB_Species.Items.Count; i++) + { + CB_Species.SelectedIndex = i; // Get new Species + lines.Add("======"); + lines.Add($"{entry} - {CB_Species.Text} (Stage: {TB_Stage.Text})"); + lines.Add("======"); + lines.Add($"Base Stats: {TB_BaseHP.Text}.{TB_BaseATK.Text}.{TB_BaseDEF.Text}.{TB_BaseSPA.Text}.{TB_BaseSPD.Text}.{TB_BaseSPE.Text} (BST: {pkm.BST})"); + lines.Add($"EV Yield: {TB_HPEVs.Text}.{TB_ATKEVs.Text}.{TB_DEFEVs.Text}.{TB_SPAEVs.Text}.{TB_SPDEVs.Text}.{TB_SPEEVs.Text}"); + lines.Add($"Abilities: {CB_Ability1.Text} (1) | {CB_Ability2.Text} (2) | {CB_Ability3.Text} (H)"); + lines.Add(string.Format(CB_Type1.SelectedIndex != CB_Type2.SelectedIndex + ? "Type: {0} / {1}" + : "Type: {0}", CB_Type1.Text, CB_Type2.Text)); + + lines.Add($"Item 1 (50%): {CB_HeldItem1.Text}"); + lines.Add($"Item 2 (5%): {CB_HeldItem2.Text}"); + lines.Add($"Item 3 (1%): {CB_HeldItem3.Text}"); + + lines.Add($"EXP Group: {CB_EXPGroup.Text}"); + lines.Add(string.Format(CB_EggGroup1.SelectedIndex != CB_EggGroup2.SelectedIndex + ? "Egg Group: {0} / {1}" + : "Egg Group: {0}", CB_EggGroup1.Text, CB_EggGroup2.Text)); + lines.Add($"Hatch Cycles: {TB_HatchCycles.Text}"); + lines.Add($"Height: {TB_Height.Text} m, Weight: {TB_Weight.Text} kg, Color: {CB_Color.Text}"); + lines.Add(""); + } + string path = sfd.FileName; + File.WriteAllLines(path, lines, Encoding.Unicode); + } + + private void CHK_Stats_CheckedChanged(object sender, EventArgs e) + { + L_StatDev.Visible = NUD_StatDev.Visible = CHK_Stats.Checked; + CHK_rHP.Enabled = CHK_rATK.Enabled = CHK_rDEF.Enabled = CHK_rSPA.Enabled = CHK_rSPD.Enabled = CHK_rSPE.Enabled = CHK_Stats.Checked; + } + + private void CHK_Ability_CheckedChanged(object sender, EventArgs e) + { + CHK_WGuard.Enabled = CHK_Ability.Checked; + if (!CHK_WGuard.Enabled) + CHK_WGuard.Checked = false; + } + + private void Form_Closing(object sender, FormClosingEventArgs e) + { + if (entry > -1) SaveEntry(); + RandSettings.SetFormSettings(this, TP_Randomizer.Controls); + } +} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/PersonalEditor6.resx b/pk3DS.WinForms/Subforms/Gen6/PersonalEditor6.resx similarity index 100% rename from pk3DS/Subforms/Gen6/PersonalEditor6.resx rename to pk3DS.WinForms/Subforms/Gen6/PersonalEditor6.resx diff --git a/pk3DS.WinForms/Subforms/Gen6/PickupEditor6.Designer.cs b/pk3DS.WinForms/Subforms/Gen6/PickupEditor6.Designer.cs new file mode 100644 index 0000000000..0e3a5422d5 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/PickupEditor6.Designer.cs @@ -0,0 +1,179 @@ +namespace pk3DS.WinForms; + +partial class PickupEditor6 +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.dgvCommon = new System.Windows.Forms.DataGridView(); + this.L_TM = new System.Windows.Forms.Label(); + this.dgvRare = new System.Windows.Forms.DataGridView(); + this.L_HM = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.B_Save = new System.Windows.Forms.Button(); + this.B_Cancel = new System.Windows.Forms.Button(); + this.B_Randomize = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.dgvCommon)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvRare)).BeginInit(); + this.SuspendLayout(); + // + // dgvCommon + // + this.dgvCommon.AllowUserToAddRows = false; + this.dgvCommon.AllowUserToDeleteRows = false; + this.dgvCommon.AllowUserToResizeColumns = false; + this.dgvCommon.AllowUserToResizeRows = false; + this.dgvCommon.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.dgvCommon.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvCommon.Location = new System.Drawing.Point(9, 25); + this.dgvCommon.Name = "dgvCommon"; + this.dgvCommon.Size = new System.Drawing.Size(240, 300); + this.dgvCommon.TabIndex = 1; + // + // L_TM + // + this.L_TM.AutoSize = true; + this.L_TM.Location = new System.Drawing.Point(9, 9); + this.L_TM.Name = "L_TM"; + this.L_TM.Size = new System.Drawing.Size(97, 13); + this.L_TM.TabIndex = 2; + this.L_TM.Text = "Common (30%-4%):"; + // + // dgvRare + // + this.dgvRare.AllowUserToAddRows = false; + this.dgvRare.AllowUserToDeleteRows = false; + this.dgvRare.AllowUserToResizeColumns = false; + this.dgvRare.AllowUserToResizeRows = false; + this.dgvRare.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.dgvRare.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvRare.Location = new System.Drawing.Point(256, 25); + this.dgvRare.Name = "dgvRare"; + this.dgvRare.Size = new System.Drawing.Size(240, 300); + this.dgvRare.TabIndex = 3; + // + // L_HM + // + this.L_HM.AutoSize = true; + this.L_HM.Location = new System.Drawing.Point(253, 9); + this.L_HM.Name = "L_HM"; + this.L_HM.Size = new System.Drawing.Size(56, 13); + this.L_HM.TabIndex = 4; + this.L_HM.Text = "Rare (1%):"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(112, 9); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(100, 13); + this.label1.TabIndex = 5; + this.label1.Text = "(level-1)/10, take 9."; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(315, 9); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(100, 13); + this.label2.TabIndex = 6; + this.label2.Text = "(level-1)/10, take 2."; + // + // B_Save + // + this.B_Save.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.B_Save.Location = new System.Drawing.Point(421, 331); + this.B_Save.Name = "B_Save"; + this.B_Save.Size = new System.Drawing.Size(75, 23); + this.B_Save.TabIndex = 7; + this.B_Save.Text = "Save"; + this.B_Save.UseVisualStyleBackColor = true; + this.B_Save.Click += new System.EventHandler(this.B_Save_Click); + // + // B_Cancel + // + this.B_Cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.B_Cancel.Location = new System.Drawing.Point(340, 331); + this.B_Cancel.Name = "B_Cancel"; + this.B_Cancel.Size = new System.Drawing.Size(75, 23); + this.B_Cancel.TabIndex = 8; + this.B_Cancel.Text = "Cancel"; + this.B_Cancel.UseVisualStyleBackColor = true; + this.B_Cancel.Click += new System.EventHandler(this.B_Cancel_Click); + // + // B_Randomize + // + this.B_Randomize.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.B_Randomize.Location = new System.Drawing.Point(9, 331); + this.B_Randomize.Name = "B_Randomize"; + this.B_Randomize.Size = new System.Drawing.Size(75, 23); + this.B_Randomize.TabIndex = 9; + this.B_Randomize.Text = "Randomize"; + this.B_Randomize.UseVisualStyleBackColor = true; + this.B_Randomize.Click += new System.EventHandler(this.B_Randomize_Click); + // + // Pickup + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(504, 361); + this.Controls.Add(this.B_Randomize); + this.Controls.Add(this.B_Cancel); + this.Controls.Add(this.B_Save); + this.Controls.Add(this.label2); + this.Controls.Add(this.label1); + this.Controls.Add(this.L_HM); + this.Controls.Add(this.dgvRare); + this.Controls.Add(this.L_TM); + this.Controls.Add(this.dgvCommon); + this.MaximizeBox = false; + this.MaximumSize = new System.Drawing.Size(520, 670); + this.MinimumSize = new System.Drawing.Size(520, 400); + this.Name = "PickupEditor6"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Pickup Editor"; + ((System.ComponentModel.ISupportInitialize)(this.dgvCommon)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvRare)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.DataGridView dgvCommon; + private System.Windows.Forms.Label L_TM; + private System.Windows.Forms.DataGridView dgvRare; + private System.Windows.Forms.Label L_HM; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Button B_Save; + private System.Windows.Forms.Button B_Cancel; + private System.Windows.Forms.Button B_Randomize; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen6/PickupEditor6.cs b/pk3DS.WinForms/Subforms/Gen6/PickupEditor6.cs new file mode 100644 index 0000000000..bf41f7c31d --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/PickupEditor6.cs @@ -0,0 +1,142 @@ +using pk3DS.Core; +using System; +using System.Collections.Generic; +using System.IO; +using System.Windows.Forms; + +namespace pk3DS.WinForms; + +public partial class PickupEditor6 : Form +{ + public PickupEditor6() + { + InitializeComponent(); + if (Main.ExeFSPath == null) { WinFormsUtil.Alert("No exeFS code to load."); Close(); } + string[] files = Directory.GetFiles(Main.ExeFSPath); + if (!File.Exists(files[0]) || !Path.GetFileNameWithoutExtension(files[0]).Contains("code")) { WinFormsUtil.Alert("No .code.bin detected."); Close(); } + data = File.ReadAllBytes(files[0]); + if (data.Length % 0x200 != 0) { WinFormsUtil.Alert(".code.bin not decompressed. Aborting."); Close(); } + offset = Util.IndexOfBytes(data, [0x1E, 0x28, 0x32, 0x3C, 0x46, 0x50, 0x5A, 0x5E, 0x62, 0x05, 0x0A, 0x0F, 0x14, 0x19, 0x1E, 0x23, 0x28, 0x2D, 0x32, + ], 0x400000, 0) - 0x3A; + codebin = files[0]; + itemlist[0] = ""; + SetupDGV(); + GetList(); + } + + private readonly string codebin; + private readonly string[] itemlist = Main.Config.GetText(TextName.ItemNames); + private readonly int offset = Main.Config.ORAS ? 0x004872FC : 0x004455A8; + private readonly byte[] data; + private int dataoffset; + + private void GetDataOffset() + { + dataoffset = offset; // reset + } + + private void SetupDGV() + { + dgvCommon.Columns.Clear(); + dgvRare.Columns.Clear(); + var dgvIndex = new DataGridViewTextBoxColumn(); + { + dgvIndex.HeaderText = "Index"; + dgvIndex.DisplayIndex = 0; + dgvIndex.Width = 45; + dgvIndex.ReadOnly = true; + dgvIndex.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; + } + var dgvMove = new DataGridViewComboBoxColumn(); + { + dgvMove.HeaderText = "Item"; + dgvMove.DisplayIndex = 1; + dgvMove.Items.AddRange(itemlist); // add only the Names + + dgvMove.Width = 133; + dgvMove.FlatStyle = FlatStyle.Flat; + } + dgvCommon.Columns.Add(dgvIndex); + dgvCommon.Columns.Add(dgvMove); + dgvRare.Columns.Add((DataGridViewColumn)dgvIndex.Clone()); + dgvRare.Columns.Add((DataGridViewColumn)dgvMove.Clone()); + } + + private List common = []; + private List rare = []; + + private void GetList() + { + common = []; + rare = []; + dgvCommon.Rows.Clear(); + + GetDataOffset(); + for (int i = 0; i < 0x12; i++) // 0x12 Common + common.Add(BitConverter.ToUInt16(data, dataoffset + (2 * i))); + for (int i = 0x12; i < 0x12 + 0xB; i++) // 0xB Rare + rare.Add(BitConverter.ToUInt16(data, dataoffset + (2 * i))); + + ushort[] clist = [.. common]; + ushort[] rlist = [.. rare]; + for (int i = 0; i < clist.Length; i++) + { dgvCommon.Rows.Add(); dgvCommon.Rows[i].Cells[0].Value = i.ToString(); dgvCommon.Rows[i].Cells[1].Value = itemlist[clist[i]]; } + for (int i = 0; i < rlist.Length; i++) + { dgvRare.Rows.Add(); dgvRare.Rows[i].Cells[0].Value = i.ToString(); dgvRare.Rows[i].Cells[1].Value = itemlist[rlist[i]]; } + } + + private void SetList() + { + common = []; + rare = []; + for (int i = 0; i < 0x12; i++) // 0x12 Common + common.Add((ushort)Array.IndexOf(itemlist, dgvCommon.Rows[i].Cells[1].Value)); + + for (int i = 0x12; i < 0x12 + 0xB; i++) // 0xB Rare + rare.Add((ushort)Array.IndexOf(itemlist, dgvRare.Rows[i - 0x12].Cells[1].Value)); + + ushort[] clist = [.. common]; + ushort[] rlist = [.. rare]; + + for (int i = 0; i < 0x12; i++) + Array.Copy(BitConverter.GetBytes(clist[i]), 0, data, offset + (2 * i), 2); + for (int i = 0x12; i < 0x12 + 0xB; i++) + Array.Copy(BitConverter.GetBytes(rlist[i - 0x12]), 0, data, offset + (2 * i), 2); + } + + private void B_Save_Click(object sender, EventArgs e) + { + SetList(); + File.WriteAllBytes(codebin, data); + Close(); + } + + private void B_Cancel_Click(object sender, EventArgs e) + { + Close(); + } + + private void B_Randomize_Click(object sender, EventArgs e) + { + if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Randomize pickup lists?")) + return; + + int[] validItems = Randomizer.GetRandomItemList(); + + int ctr = 0; + Util.Shuffle(validItems); + for (int r = 0; r < dgvCommon.Rows.Count; r++) + { + dgvCommon.Rows[r].Cells[1].Value = itemlist[validItems[ctr++]]; + if (ctr <= validItems.Length) continue; + Util.Shuffle(validItems); ctr = 0; + } + for (int r = 0; r < dgvRare.Rows.Count; r++) + { + dgvRare.Rows[r].Cells[1].Value = itemlist[validItems[ctr++]]; + if (ctr <= validItems.Length) continue; + Util.Shuffle(validItems); ctr = 0; + } + WinFormsUtil.Alert("Randomized!"); + } +} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/PickupEditor6.resx b/pk3DS.WinForms/Subforms/Gen6/PickupEditor6.resx similarity index 100% rename from pk3DS/Subforms/Gen6/PickupEditor6.resx rename to pk3DS.WinForms/Subforms/Gen6/PickupEditor6.resx diff --git a/pk3DS.WinForms/Subforms/Gen6/RSTE.Designer.cs b/pk3DS.WinForms/Subforms/Gen6/RSTE.Designer.cs new file mode 100644 index 0000000000..baac6a6d09 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/RSTE.Designer.cs @@ -0,0 +1,2414 @@ +namespace pk3DS.WinForms; + +partial class RSTE +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.B_Dump = new System.Windows.Forms.Button(); + this.L_TrainerID = new System.Windows.Forms.Label(); + this.CB_TrainerID = new System.Windows.Forms.ComboBox(); + this.tabControl1 = new System.Windows.Forms.TabControl(); + this.tabPage1 = new System.Windows.Forms.TabPage(); + this.checkBox_Healer = new System.Windows.Forms.CheckBox(); + this.L_TPrize = new System.Windows.Forms.Label(); + this.CB_Prize = new System.Windows.Forms.ComboBox(); + this.L_AI = new System.Windows.Forms.Label(); + this.CB_AI = new System.Windows.Forms.ComboBox(); + this.L_Money = new System.Windows.Forms.Label(); + this.CB_Money = new System.Windows.Forms.ComboBox(); + this.L_Battle_Type = new System.Windows.Forms.Label(); + this.CB_Battle_Type = new System.Windows.Forms.ComboBox(); + this.L_Trainer_Class = new System.Windows.Forms.Label(); + this.CB_Trainer_Class = new System.Windows.Forms.ComboBox(); + this.checkBox_Moves = new System.Windows.Forms.CheckBox(); + this.checkBox_Item = new System.Windows.Forms.CheckBox(); + this.L_Item_4 = new System.Windows.Forms.Label(); + this.CB_Item_4 = new System.Windows.Forms.ComboBox(); + this.L_Item_3 = new System.Windows.Forms.Label(); + this.CB_Item_3 = new System.Windows.Forms.ComboBox(); + this.L_Item_2 = new System.Windows.Forms.Label(); + this.CB_Item_2 = new System.Windows.Forms.ComboBox(); + this.L_Item_1 = new System.Windows.Forms.Label(); + this.CB_Item_1 = new System.Windows.Forms.ComboBox(); + this.L_numPokemon = new System.Windows.Forms.Label(); + this.CB_numPokemon = new System.Windows.Forms.ComboBox(); + this.tabPage2 = new System.Windows.Forms.TabPage(); + this.L_Pokemon_1_Form = new System.Windows.Forms.Label(); + this.CB_Pokemon_1_Ability = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_1_Gender = new System.Windows.Forms.Label(); + this.CB_Pokemon_1_Gender = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_1_Ability = new System.Windows.Forms.Label(); + this.CB_Pokemon_1_Form = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_1_IVs = new System.Windows.Forms.Label(); + this.CB_Pokemon_1_IVs = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_1_Move_4 = new System.Windows.Forms.Label(); + this.CB_Pokemon_1_Move_4 = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_1_Move_3 = new System.Windows.Forms.Label(); + this.CB_Pokemon_1_Move_3 = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_1_Move_2 = new System.Windows.Forms.Label(); + this.CB_Pokemon_1_Move_2 = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_1_Move_1 = new System.Windows.Forms.Label(); + this.CB_Pokemon_1_Move_1 = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_1_Item = new System.Windows.Forms.Label(); + this.CB_Pokemon_1_Item = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_1_Level = new System.Windows.Forms.Label(); + this.CB_Pokemon_1_Level = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_1_Pokemon = new System.Windows.Forms.Label(); + this.CB_Pokemon_1_Pokemon = new System.Windows.Forms.ComboBox(); + this.tabPage3 = new System.Windows.Forms.TabPage(); + this.L_Pokemon_2_Gender = new System.Windows.Forms.Label(); + this.CB_Pokemon_2_Gender = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_2_Ability = new System.Windows.Forms.Label(); + this.CB_Pokemon_2_Ability = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_2_Form = new System.Windows.Forms.Label(); + this.CB_Pokemon_2_Form = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_2_IVs = new System.Windows.Forms.Label(); + this.CB_Pokemon_2_IVs = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_2_Move_4 = new System.Windows.Forms.Label(); + this.CB_Pokemon_2_Move_4 = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_2_Move_3 = new System.Windows.Forms.Label(); + this.CB_Pokemon_2_Move_3 = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_2_Move_2 = new System.Windows.Forms.Label(); + this.CB_Pokemon_2_Move_2 = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_2_Move_1 = new System.Windows.Forms.Label(); + this.CB_Pokemon_2_Move_1 = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_2_Item = new System.Windows.Forms.Label(); + this.CB_Pokemon_2_Item = new System.Windows.Forms.ComboBox(); + this.L_CB_Pokemon_2_Level = new System.Windows.Forms.Label(); + this.CB_Pokemon_2_Level = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_2_Pokemon = new System.Windows.Forms.Label(); + this.CB_Pokemon_2_Pokemon = new System.Windows.Forms.ComboBox(); + this.tabPage4 = new System.Windows.Forms.TabPage(); + this.L_Pokemon_3_Gender = new System.Windows.Forms.Label(); + this.CB_Pokemon_3_Gender = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_3_Ability = new System.Windows.Forms.Label(); + this.CB_Pokemon_3_Ability = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_3_Form = new System.Windows.Forms.Label(); + this.CB_Pokemon_3_Form = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_3_IVs = new System.Windows.Forms.Label(); + this.CB_Pokemon_3_IVs = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_3_Move_4 = new System.Windows.Forms.Label(); + this.CB_Pokemon_3_Move_4 = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_3_Move_3 = new System.Windows.Forms.Label(); + this.CB_Pokemon_3_Move_3 = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_3_Move_2 = new System.Windows.Forms.Label(); + this.CB_Pokemon_3_Move_2 = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_3_Move_1 = new System.Windows.Forms.Label(); + this.CB_Pokemon_3_Move_1 = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_3_Item = new System.Windows.Forms.Label(); + this.CB_Pokemon_3_Item = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_3_Level = new System.Windows.Forms.Label(); + this.CB_Pokemon_3_Level = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_3_Pokemon = new System.Windows.Forms.Label(); + this.CB_Pokemon_3_Pokemon = new System.Windows.Forms.ComboBox(); + this.tabPage5 = new System.Windows.Forms.TabPage(); + this.L_Pokemon_4_Gender = new System.Windows.Forms.Label(); + this.CB_Pokemon_4_Gender = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_4_Ability = new System.Windows.Forms.Label(); + this.CB_Pokemon_4_Ability = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_4_Form = new System.Windows.Forms.Label(); + this.CB_Pokemon_4_Form = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_4_IVs = new System.Windows.Forms.Label(); + this.CB_Pokemon_4_IVs = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_4_Move_4 = new System.Windows.Forms.Label(); + this.CB_Pokemon_4_Move_4 = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_4_Move_3 = new System.Windows.Forms.Label(); + this.CB_Pokemon_4_Move_3 = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_4_Move_2 = new System.Windows.Forms.Label(); + this.CB_Pokemon_4_Move_2 = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_4_Move_1 = new System.Windows.Forms.Label(); + this.CB_Pokemon_4_Move_1 = new System.Windows.Forms.ComboBox(); + this.L_CB_Pokemon_4_Item = new System.Windows.Forms.Label(); + this.CB_Pokemon_4_Item = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_4_Level = new System.Windows.Forms.Label(); + this.CB_Pokemon_4_Level = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_4_Pokemon = new System.Windows.Forms.Label(); + this.CB_Pokemon_4_Pokemon = new System.Windows.Forms.ComboBox(); + this.tabPage6 = new System.Windows.Forms.TabPage(); + this.L_Pokemon_5_Gender = new System.Windows.Forms.Label(); + this.CB_Pokemon_5_Gender = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_5_Ability = new System.Windows.Forms.Label(); + this.CB_Pokemon_5_Ability = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_5_Form = new System.Windows.Forms.Label(); + this.CB_Pokemon_5_Form = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_5_IVs = new System.Windows.Forms.Label(); + this.CB_Pokemon_5_IVs = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_5_Move_4 = new System.Windows.Forms.Label(); + this.CB_Pokemon_5_Move_4 = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_5_Move_3 = new System.Windows.Forms.Label(); + this.CB_Pokemon_5_Move_3 = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_5_Move_2 = new System.Windows.Forms.Label(); + this.CB_Pokemon_5_Move_2 = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_5_Move_1 = new System.Windows.Forms.Label(); + this.CB_Pokemon_5_Move_1 = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_5_Item = new System.Windows.Forms.Label(); + this.CB_Pokemon_5_Item = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_5_Level = new System.Windows.Forms.Label(); + this.CB_Pokemon_5_Level = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_5_Pokemon = new System.Windows.Forms.Label(); + this.CB_Pokemon_5_Pokemon = new System.Windows.Forms.ComboBox(); + this.tabPage7 = new System.Windows.Forms.TabPage(); + this.L_Pokemon_6_Gender = new System.Windows.Forms.Label(); + this.CB_Pokemon_6_Gender = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_6_Ability = new System.Windows.Forms.Label(); + this.CB_Pokemon_6_Ability = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_6_Form = new System.Windows.Forms.Label(); + this.CB_Pokemon_6_Form = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_6_IVs = new System.Windows.Forms.Label(); + this.CB_Pokemon_6_IVs = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_6_Move_4 = new System.Windows.Forms.Label(); + this.CB_Pokemon_6_Move_4 = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_6_Move_3 = new System.Windows.Forms.Label(); + this.CB_Pokemon_6_Move_3 = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_6_Move_2 = new System.Windows.Forms.Label(); + this.CB_Pokemon_6_Move_2 = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_6_Move_1 = new System.Windows.Forms.Label(); + this.CB_Pokemon_6_Move_1 = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_6_Item = new System.Windows.Forms.Label(); + this.CB_Pokemon_6_Item = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_6_Level = new System.Windows.Forms.Label(); + this.CB_Pokemon_6_Level = new System.Windows.Forms.ComboBox(); + this.L_Pokemon_6_Pokemon = new System.Windows.Forms.Label(); + this.CB_Pokemon_6_Pokemon = new System.Windows.Forms.ComboBox(); + this.B_Randomize = new System.Windows.Forms.Button(); + this.TB_Text1 = new System.Windows.Forms.TextBox(); + this.L_Text1 = new System.Windows.Forms.Label(); + this.PB_Team6 = new System.Windows.Forms.PictureBox(); + this.PB_Team5 = new System.Windows.Forms.PictureBox(); + this.PB_Team4 = new System.Windows.Forms.PictureBox(); + this.PB_Team3 = new System.Windows.Forms.PictureBox(); + this.PB_Team2 = new System.Windows.Forms.PictureBox(); + this.PB_Team1 = new System.Windows.Forms.PictureBox(); + this.label4 = new System.Windows.Forms.Label(); + this.L_Text2 = new System.Windows.Forms.Label(); + this.TB_Text2 = new System.Windows.Forms.TextBox(); + this.tabControl1.SuspendLayout(); + this.tabPage1.SuspendLayout(); + this.tabPage2.SuspendLayout(); + this.tabPage3.SuspendLayout(); + this.tabPage4.SuspendLayout(); + this.tabPage5.SuspendLayout(); + this.tabPage6.SuspendLayout(); + this.tabPage7.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.PB_Team6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_Team5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_Team4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_Team3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_Team2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_Team1)).BeginInit(); + this.SuspendLayout(); + // + // B_Dump + // + this.B_Dump.Location = new System.Drawing.Point(483, 4); + this.B_Dump.Name = "B_Dump"; + this.B_Dump.Size = new System.Drawing.Size(93, 23); + this.B_Dump.TabIndex = 67; + this.B_Dump.Text = "Dump to .TXT"; + this.B_Dump.UseVisualStyleBackColor = true; + this.B_Dump.Click += new System.EventHandler(this.B_Dump_Click); + // + // L_TrainerID + // + this.L_TrainerID.AutoSize = true; + this.L_TrainerID.Location = new System.Drawing.Point(12, 9); + this.L_TrainerID.Name = "L_TrainerID"; + this.L_TrainerID.Size = new System.Drawing.Size(57, 13); + this.L_TrainerID.TabIndex = 63; + this.L_TrainerID.Text = "Trainer ID:"; + // + // CB_TrainerID + // + this.CB_TrainerID.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_TrainerID.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_TrainerID.FormattingEnabled = true; + this.CB_TrainerID.Location = new System.Drawing.Point(75, 6); + this.CB_TrainerID.Name = "CB_TrainerID"; + this.CB_TrainerID.Size = new System.Drawing.Size(134, 21); + this.CB_TrainerID.TabIndex = 62; + this.CB_TrainerID.SelectedIndexChanged += new System.EventHandler(this.ChangeTrainerIndex); + // + // tabControl1 + // + this.tabControl1.Controls.Add(this.tabPage1); + this.tabControl1.Controls.Add(this.tabPage2); + this.tabControl1.Controls.Add(this.tabPage3); + this.tabControl1.Controls.Add(this.tabPage4); + this.tabControl1.Controls.Add(this.tabPage5); + this.tabControl1.Controls.Add(this.tabPage6); + this.tabControl1.Controls.Add(this.tabPage7); + this.tabControl1.Location = new System.Drawing.Point(12, 33); + this.tabControl1.Name = "tabControl1"; + this.tabControl1.SelectedIndex = 0; + this.tabControl1.Size = new System.Drawing.Size(565, 153); + this.tabControl1.TabIndex = 61; + // + // tabPage1 + // + this.tabPage1.BackColor = System.Drawing.SystemColors.Control; + this.tabPage1.Controls.Add(this.checkBox_Healer); + this.tabPage1.Controls.Add(this.L_TPrize); + this.tabPage1.Controls.Add(this.CB_Prize); + this.tabPage1.Controls.Add(this.L_AI); + this.tabPage1.Controls.Add(this.CB_AI); + this.tabPage1.Controls.Add(this.L_Money); + this.tabPage1.Controls.Add(this.CB_Money); + this.tabPage1.Controls.Add(this.L_Battle_Type); + this.tabPage1.Controls.Add(this.CB_Battle_Type); + this.tabPage1.Controls.Add(this.L_Trainer_Class); + this.tabPage1.Controls.Add(this.CB_Trainer_Class); + this.tabPage1.Controls.Add(this.checkBox_Moves); + this.tabPage1.Controls.Add(this.checkBox_Item); + this.tabPage1.Controls.Add(this.L_Item_4); + this.tabPage1.Controls.Add(this.CB_Item_4); + this.tabPage1.Controls.Add(this.L_Item_3); + this.tabPage1.Controls.Add(this.CB_Item_3); + this.tabPage1.Controls.Add(this.L_Item_2); + this.tabPage1.Controls.Add(this.CB_Item_2); + this.tabPage1.Controls.Add(this.L_Item_1); + this.tabPage1.Controls.Add(this.CB_Item_1); + this.tabPage1.Controls.Add(this.L_numPokemon); + this.tabPage1.Controls.Add(this.CB_numPokemon); + this.tabPage1.Location = new System.Drawing.Point(4, 22); + this.tabPage1.Name = "tabPage1"; + this.tabPage1.Padding = new System.Windows.Forms.Padding(3); + this.tabPage1.Size = new System.Drawing.Size(557, 127); + this.tabPage1.TabIndex = 0; + this.tabPage1.Text = "Trainer Info"; + // + // checkBox_Healer + // + this.checkBox_Healer.AutoSize = true; + this.checkBox_Healer.Location = new System.Drawing.Point(452, 12); + this.checkBox_Healer.Name = "checkBox_Healer"; + this.checkBox_Healer.Size = new System.Drawing.Size(57, 17); + this.checkBox_Healer.TabIndex = 58; + this.checkBox_Healer.Text = "Healer"; + this.checkBox_Healer.UseVisualStyleBackColor = true; + // + // L_TPrize + // + this.L_TPrize.AutoSize = true; + this.L_TPrize.Location = new System.Drawing.Point(443, 80); + this.L_TPrize.Name = "L_TPrize"; + this.L_TPrize.Size = new System.Drawing.Size(33, 13); + this.L_TPrize.TabIndex = 57; + this.L_TPrize.Text = "Prize:"; + // + // CB_Prize + // + this.CB_Prize.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Prize.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Prize.FormattingEnabled = true; + this.CB_Prize.Location = new System.Drawing.Point(446, 94); + this.CB_Prize.Name = "CB_Prize"; + this.CB_Prize.Size = new System.Drawing.Size(102, 21); + this.CB_Prize.TabIndex = 56; + // + // L_AI + // + this.L_AI.AutoSize = true; + this.L_AI.Location = new System.Drawing.Point(12, 97); + this.L_AI.Name = "L_AI"; + this.L_AI.Size = new System.Drawing.Size(49, 13); + this.L_AI.TabIndex = 55; + this.L_AI.Text = "AI Level:"; + // + // CB_AI + // + this.CB_AI.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_AI.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_AI.FormattingEnabled = true; + this.CB_AI.Location = new System.Drawing.Point(61, 94); + this.CB_AI.Name = "CB_AI"; + this.CB_AI.Size = new System.Drawing.Size(74, 21); + this.CB_AI.TabIndex = 54; + // + // L_Money + // + this.L_Money.AutoSize = true; + this.L_Money.Location = new System.Drawing.Point(147, 97); + this.L_Money.Name = "L_Money"; + this.L_Money.Size = new System.Drawing.Size(42, 13); + this.L_Money.TabIndex = 53; + this.L_Money.Text = "Money:"; + // + // CB_Money + // + this.CB_Money.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Money.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Money.FormattingEnabled = true; + this.CB_Money.Location = new System.Drawing.Point(190, 94); + this.CB_Money.Name = "CB_Money"; + this.CB_Money.Size = new System.Drawing.Size(77, 21); + this.CB_Money.TabIndex = 52; + // + // L_Battle_Type + // + this.L_Battle_Type.AutoSize = true; + this.L_Battle_Type.Location = new System.Drawing.Point(51, 70); + this.L_Battle_Type.Name = "L_Battle_Type"; + this.L_Battle_Type.Size = new System.Drawing.Size(64, 13); + this.L_Battle_Type.TabIndex = 51; + this.L_Battle_Type.Text = "Battle Type:"; + // + // CB_Battle_Type + // + this.CB_Battle_Type.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Battle_Type.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Battle_Type.FormattingEnabled = true; + this.CB_Battle_Type.Items.AddRange(new object[] { + "Single Battle", + "Double Battle", + "Triple Battle", + "Rotation Battle", + "Horde Battle"}); + this.CB_Battle_Type.Location = new System.Drawing.Point(116, 67); + this.CB_Battle_Type.Name = "CB_Battle_Type"; + this.CB_Battle_Type.Size = new System.Drawing.Size(151, 21); + this.CB_Battle_Type.TabIndex = 50; + // + // L_Trainer_Class + // + this.L_Trainer_Class.AutoSize = true; + this.L_Trainer_Class.Location = new System.Drawing.Point(44, 43); + this.L_Trainer_Class.Name = "L_Trainer_Class"; + this.L_Trainer_Class.Size = new System.Drawing.Size(71, 13); + this.L_Trainer_Class.TabIndex = 49; + this.L_Trainer_Class.Text = "Trainer Class:"; + // + // CB_Trainer_Class + // + this.CB_Trainer_Class.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Trainer_Class.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Trainer_Class.DropDownWidth = 165; + this.CB_Trainer_Class.FormattingEnabled = true; + this.CB_Trainer_Class.Location = new System.Drawing.Point(116, 40); + this.CB_Trainer_Class.Name = "CB_Trainer_Class"; + this.CB_Trainer_Class.Size = new System.Drawing.Size(151, 21); + this.CB_Trainer_Class.TabIndex = 48; + // + // checkBox_Moves + // + this.checkBox_Moves.AutoSize = true; + this.checkBox_Moves.Location = new System.Drawing.Point(452, 28); + this.checkBox_Moves.Name = "checkBox_Moves"; + this.checkBox_Moves.Size = new System.Drawing.Size(58, 17); + this.checkBox_Moves.TabIndex = 40; + this.checkBox_Moves.Text = "Moves"; + this.checkBox_Moves.UseVisualStyleBackColor = true; + this.checkBox_Moves.CheckedChanged += new System.EventHandler(this.ChangeTrainerType); + // + // checkBox_Item + // + this.checkBox_Item.AutoSize = true; + this.checkBox_Item.Location = new System.Drawing.Point(452, 44); + this.checkBox_Item.Name = "checkBox_Item"; + this.checkBox_Item.Size = new System.Drawing.Size(51, 17); + this.checkBox_Item.TabIndex = 39; + this.checkBox_Item.Text = "Items"; + this.checkBox_Item.UseVisualStyleBackColor = true; + this.checkBox_Item.CheckedChanged += new System.EventHandler(this.ChangeTrainerType); + // + // L_Item_4 + // + this.L_Item_4.AutoSize = true; + this.L_Item_4.Location = new System.Drawing.Point(276, 97); + this.L_Item_4.Name = "L_Item_4"; + this.L_Item_4.Size = new System.Drawing.Size(39, 13); + this.L_Item_4.TabIndex = 34; + this.L_Item_4.Text = "Item 4:"; + // + // CB_Item_4 + // + this.CB_Item_4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Item_4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Item_4.FormattingEnabled = true; + this.CB_Item_4.Location = new System.Drawing.Point(316, 94); + this.CB_Item_4.Name = "CB_Item_4"; + this.CB_Item_4.Size = new System.Drawing.Size(121, 21); + this.CB_Item_4.TabIndex = 33; + // + // L_Item_3 + // + this.L_Item_3.AutoSize = true; + this.L_Item_3.Location = new System.Drawing.Point(276, 70); + this.L_Item_3.Name = "L_Item_3"; + this.L_Item_3.Size = new System.Drawing.Size(39, 13); + this.L_Item_3.TabIndex = 32; + this.L_Item_3.Text = "Item 3:"; + // + // CB_Item_3 + // + this.CB_Item_3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Item_3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Item_3.FormattingEnabled = true; + this.CB_Item_3.Location = new System.Drawing.Point(316, 67); + this.CB_Item_3.Name = "CB_Item_3"; + this.CB_Item_3.Size = new System.Drawing.Size(121, 21); + this.CB_Item_3.TabIndex = 31; + // + // L_Item_2 + // + this.L_Item_2.AutoSize = true; + this.L_Item_2.Location = new System.Drawing.Point(276, 43); + this.L_Item_2.Name = "L_Item_2"; + this.L_Item_2.Size = new System.Drawing.Size(39, 13); + this.L_Item_2.TabIndex = 30; + this.L_Item_2.Text = "Item 2:"; + // + // CB_Item_2 + // + this.CB_Item_2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Item_2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Item_2.FormattingEnabled = true; + this.CB_Item_2.Location = new System.Drawing.Point(316, 40); + this.CB_Item_2.Name = "CB_Item_2"; + this.CB_Item_2.Size = new System.Drawing.Size(121, 21); + this.CB_Item_2.TabIndex = 29; + // + // L_Item_1 + // + this.L_Item_1.AutoSize = true; + this.L_Item_1.Location = new System.Drawing.Point(276, 16); + this.L_Item_1.Name = "L_Item_1"; + this.L_Item_1.Size = new System.Drawing.Size(39, 13); + this.L_Item_1.TabIndex = 28; + this.L_Item_1.Text = "Item 1:"; + // + // CB_Item_1 + // + this.CB_Item_1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Item_1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Item_1.FormattingEnabled = true; + this.CB_Item_1.Location = new System.Drawing.Point(316, 13); + this.CB_Item_1.Name = "CB_Item_1"; + this.CB_Item_1.Size = new System.Drawing.Size(121, 21); + this.CB_Item_1.TabIndex = 27; + // + // L_numPokemon + // + this.L_numPokemon.AutoSize = true; + this.L_numPokemon.Location = new System.Drawing.Point(8, 16); + this.L_numPokemon.Name = "L_numPokemon"; + this.L_numPokemon.Size = new System.Drawing.Size(107, 13); + this.L_numPokemon.TabIndex = 22; + this.L_numPokemon.Text = "Number of Pokémon:"; + // + // CB_numPokemon + // + this.CB_numPokemon.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_numPokemon.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_numPokemon.FormattingEnabled = true; + this.CB_numPokemon.Items.AddRange(new object[] { + "0", + "1", + "2", + "3", + "4", + "5", + "6"}); + this.CB_numPokemon.Location = new System.Drawing.Point(116, 13); + this.CB_numPokemon.Name = "CB_numPokemon"; + this.CB_numPokemon.Size = new System.Drawing.Size(151, 21); + this.CB_numPokemon.TabIndex = 21; + this.CB_numPokemon.SelectedIndexChanged += new System.EventHandler(this.ChangeTrainerType); + // + // tabPage2 + // + this.tabPage2.BackColor = System.Drawing.SystemColors.Control; + this.tabPage2.Controls.Add(this.L_Pokemon_1_Form); + this.tabPage2.Controls.Add(this.CB_Pokemon_1_Ability); + this.tabPage2.Controls.Add(this.L_Pokemon_1_Gender); + this.tabPage2.Controls.Add(this.CB_Pokemon_1_Gender); + this.tabPage2.Controls.Add(this.L_Pokemon_1_Ability); + this.tabPage2.Controls.Add(this.CB_Pokemon_1_Form); + this.tabPage2.Controls.Add(this.L_Pokemon_1_IVs); + this.tabPage2.Controls.Add(this.CB_Pokemon_1_IVs); + this.tabPage2.Controls.Add(this.L_Pokemon_1_Move_4); + this.tabPage2.Controls.Add(this.CB_Pokemon_1_Move_4); + this.tabPage2.Controls.Add(this.L_Pokemon_1_Move_3); + this.tabPage2.Controls.Add(this.CB_Pokemon_1_Move_3); + this.tabPage2.Controls.Add(this.L_Pokemon_1_Move_2); + this.tabPage2.Controls.Add(this.CB_Pokemon_1_Move_2); + this.tabPage2.Controls.Add(this.L_Pokemon_1_Move_1); + this.tabPage2.Controls.Add(this.CB_Pokemon_1_Move_1); + this.tabPage2.Controls.Add(this.L_Pokemon_1_Item); + this.tabPage2.Controls.Add(this.CB_Pokemon_1_Item); + this.tabPage2.Controls.Add(this.L_Pokemon_1_Level); + this.tabPage2.Controls.Add(this.CB_Pokemon_1_Level); + this.tabPage2.Controls.Add(this.L_Pokemon_1_Pokemon); + this.tabPage2.Controls.Add(this.CB_Pokemon_1_Pokemon); + this.tabPage2.Location = new System.Drawing.Point(4, 22); + this.tabPage2.Name = "tabPage2"; + this.tabPage2.Padding = new System.Windows.Forms.Padding(3); + this.tabPage2.Size = new System.Drawing.Size(557, 127); + this.tabPage2.TabIndex = 1; + this.tabPage2.Text = "Pokémon 1"; + // + // L_Pokemon_1_Form + // + this.L_Pokemon_1_Form.AutoSize = true; + this.L_Pokemon_1_Form.Location = new System.Drawing.Point(29, 44); + this.L_Pokemon_1_Form.Name = "L_Pokemon_1_Form"; + this.L_Pokemon_1_Form.Size = new System.Drawing.Size(33, 13); + this.L_Pokemon_1_Form.TabIndex = 63; + this.L_Pokemon_1_Form.Text = "Form:"; + // + // CB_Pokemon_1_Ability + // + this.CB_Pokemon_1_Ability.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_1_Ability.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_1_Ability.Enabled = false; + this.CB_Pokemon_1_Ability.FormattingEnabled = true; + this.CB_Pokemon_1_Ability.Location = new System.Drawing.Point(413, 41); + this.CB_Pokemon_1_Ability.Name = "CB_Pokemon_1_Ability"; + this.CB_Pokemon_1_Ability.Size = new System.Drawing.Size(136, 21); + this.CB_Pokemon_1_Ability.TabIndex = 62; + // + // L_Pokemon_1_Gender + // + this.L_Pokemon_1_Gender.AutoSize = true; + this.L_Pokemon_1_Gender.Location = new System.Drawing.Point(366, 71); + this.L_Pokemon_1_Gender.Name = "L_Pokemon_1_Gender"; + this.L_Pokemon_1_Gender.Size = new System.Drawing.Size(45, 13); + this.L_Pokemon_1_Gender.TabIndex = 59; + this.L_Pokemon_1_Gender.Text = "Gender:"; + // + // CB_Pokemon_1_Gender + // + this.CB_Pokemon_1_Gender.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_1_Gender.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_1_Gender.Enabled = false; + this.CB_Pokemon_1_Gender.FormattingEnabled = true; + this.CB_Pokemon_1_Gender.Location = new System.Drawing.Point(413, 68); + this.CB_Pokemon_1_Gender.Name = "CB_Pokemon_1_Gender"; + this.CB_Pokemon_1_Gender.Size = new System.Drawing.Size(136, 21); + this.CB_Pokemon_1_Gender.TabIndex = 58; + this.CB_Pokemon_1_Gender.SelectedIndexChanged += new System.EventHandler(this.ChangeTeam); + // + // L_Pokemon_1_Ability + // + this.L_Pokemon_1_Ability.AutoSize = true; + this.L_Pokemon_1_Ability.Location = new System.Drawing.Point(374, 44); + this.L_Pokemon_1_Ability.Name = "L_Pokemon_1_Ability"; + this.L_Pokemon_1_Ability.Size = new System.Drawing.Size(37, 13); + this.L_Pokemon_1_Ability.TabIndex = 57; + this.L_Pokemon_1_Ability.Text = "Ability:"; + // + // CB_Pokemon_1_Form + // + this.CB_Pokemon_1_Form.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_1_Form.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_1_Form.Enabled = false; + this.CB_Pokemon_1_Form.FormattingEnabled = true; + this.CB_Pokemon_1_Form.Location = new System.Drawing.Point(64, 41); + this.CB_Pokemon_1_Form.Name = "CB_Pokemon_1_Form"; + this.CB_Pokemon_1_Form.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_1_Form.TabIndex = 56; + this.CB_Pokemon_1_Form.SelectedIndexChanged += new System.EventHandler(this.RefreshFormAbility); + // + // L_Pokemon_1_IVs + // + this.L_Pokemon_1_IVs.AutoSize = true; + this.L_Pokemon_1_IVs.Location = new System.Drawing.Point(386, 17); + this.L_Pokemon_1_IVs.Name = "L_Pokemon_1_IVs"; + this.L_Pokemon_1_IVs.Size = new System.Drawing.Size(25, 13); + this.L_Pokemon_1_IVs.TabIndex = 36; + this.L_Pokemon_1_IVs.Text = "IVs:"; + // + // CB_Pokemon_1_IVs + // + this.CB_Pokemon_1_IVs.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_1_IVs.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_1_IVs.Enabled = false; + this.CB_Pokemon_1_IVs.FormattingEnabled = true; + this.CB_Pokemon_1_IVs.Location = new System.Drawing.Point(413, 14); + this.CB_Pokemon_1_IVs.Name = "CB_Pokemon_1_IVs"; + this.CB_Pokemon_1_IVs.Size = new System.Drawing.Size(136, 21); + this.CB_Pokemon_1_IVs.TabIndex = 35; + // + // L_Pokemon_1_Move_4 + // + this.L_Pokemon_1_Move_4.AutoSize = true; + this.L_Pokemon_1_Move_4.Location = new System.Drawing.Point(192, 98); + this.L_Pokemon_1_Move_4.Name = "L_Pokemon_1_Move_4"; + this.L_Pokemon_1_Move_4.Size = new System.Drawing.Size(46, 13); + this.L_Pokemon_1_Move_4.TabIndex = 34; + this.L_Pokemon_1_Move_4.Text = "Move 4:"; + // + // CB_Pokemon_1_Move_4 + // + this.CB_Pokemon_1_Move_4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_1_Move_4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_1_Move_4.Enabled = false; + this.CB_Pokemon_1_Move_4.FormattingEnabled = true; + this.CB_Pokemon_1_Move_4.Location = new System.Drawing.Point(241, 95); + this.CB_Pokemon_1_Move_4.Name = "CB_Pokemon_1_Move_4"; + this.CB_Pokemon_1_Move_4.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_1_Move_4.TabIndex = 33; + // + // L_Pokemon_1_Move_3 + // + this.L_Pokemon_1_Move_3.AutoSize = true; + this.L_Pokemon_1_Move_3.Location = new System.Drawing.Point(192, 71); + this.L_Pokemon_1_Move_3.Name = "L_Pokemon_1_Move_3"; + this.L_Pokemon_1_Move_3.Size = new System.Drawing.Size(46, 13); + this.L_Pokemon_1_Move_3.TabIndex = 32; + this.L_Pokemon_1_Move_3.Text = "Move 3:"; + // + // CB_Pokemon_1_Move_3 + // + this.CB_Pokemon_1_Move_3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_1_Move_3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_1_Move_3.Enabled = false; + this.CB_Pokemon_1_Move_3.FormattingEnabled = true; + this.CB_Pokemon_1_Move_3.Location = new System.Drawing.Point(241, 68); + this.CB_Pokemon_1_Move_3.Name = "CB_Pokemon_1_Move_3"; + this.CB_Pokemon_1_Move_3.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_1_Move_3.TabIndex = 31; + // + // L_Pokemon_1_Move_2 + // + this.L_Pokemon_1_Move_2.AutoSize = true; + this.L_Pokemon_1_Move_2.Location = new System.Drawing.Point(192, 44); + this.L_Pokemon_1_Move_2.Name = "L_Pokemon_1_Move_2"; + this.L_Pokemon_1_Move_2.Size = new System.Drawing.Size(46, 13); + this.L_Pokemon_1_Move_2.TabIndex = 30; + this.L_Pokemon_1_Move_2.Text = "Move 2:"; + // + // CB_Pokemon_1_Move_2 + // + this.CB_Pokemon_1_Move_2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_1_Move_2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_1_Move_2.Enabled = false; + this.CB_Pokemon_1_Move_2.FormattingEnabled = true; + this.CB_Pokemon_1_Move_2.Location = new System.Drawing.Point(241, 41); + this.CB_Pokemon_1_Move_2.Name = "CB_Pokemon_1_Move_2"; + this.CB_Pokemon_1_Move_2.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_1_Move_2.TabIndex = 29; + // + // L_Pokemon_1_Move_1 + // + this.L_Pokemon_1_Move_1.AutoSize = true; + this.L_Pokemon_1_Move_1.Location = new System.Drawing.Point(192, 17); + this.L_Pokemon_1_Move_1.Name = "L_Pokemon_1_Move_1"; + this.L_Pokemon_1_Move_1.Size = new System.Drawing.Size(46, 13); + this.L_Pokemon_1_Move_1.TabIndex = 28; + this.L_Pokemon_1_Move_1.Text = "Move 1:"; + // + // CB_Pokemon_1_Move_1 + // + this.CB_Pokemon_1_Move_1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_1_Move_1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_1_Move_1.Enabled = false; + this.CB_Pokemon_1_Move_1.FormattingEnabled = true; + this.CB_Pokemon_1_Move_1.Location = new System.Drawing.Point(241, 14); + this.CB_Pokemon_1_Move_1.Name = "CB_Pokemon_1_Move_1"; + this.CB_Pokemon_1_Move_1.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_1_Move_1.TabIndex = 27; + // + // L_Pokemon_1_Item + // + this.L_Pokemon_1_Item.AutoSize = true; + this.L_Pokemon_1_Item.Location = new System.Drawing.Point(32, 98); + this.L_Pokemon_1_Item.Name = "L_Pokemon_1_Item"; + this.L_Pokemon_1_Item.Size = new System.Drawing.Size(30, 13); + this.L_Pokemon_1_Item.TabIndex = 26; + this.L_Pokemon_1_Item.Text = "Item:"; + // + // CB_Pokemon_1_Item + // + this.CB_Pokemon_1_Item.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_1_Item.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_1_Item.Enabled = false; + this.CB_Pokemon_1_Item.FormattingEnabled = true; + this.CB_Pokemon_1_Item.Location = new System.Drawing.Point(64, 95); + this.CB_Pokemon_1_Item.Name = "CB_Pokemon_1_Item"; + this.CB_Pokemon_1_Item.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_1_Item.TabIndex = 25; + this.CB_Pokemon_1_Item.SelectedIndexChanged += new System.EventHandler(this.ChangeTeam); + // + // L_Pokemon_1_Level + // + this.L_Pokemon_1_Level.AutoSize = true; + this.L_Pokemon_1_Level.Location = new System.Drawing.Point(26, 71); + this.L_Pokemon_1_Level.Name = "L_Pokemon_1_Level"; + this.L_Pokemon_1_Level.Size = new System.Drawing.Size(36, 13); + this.L_Pokemon_1_Level.TabIndex = 24; + this.L_Pokemon_1_Level.Text = "Level:"; + // + // CB_Pokemon_1_Level + // + this.CB_Pokemon_1_Level.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_1_Level.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_1_Level.Enabled = false; + this.CB_Pokemon_1_Level.FormattingEnabled = true; + this.CB_Pokemon_1_Level.Location = new System.Drawing.Point(64, 68); + this.CB_Pokemon_1_Level.Name = "CB_Pokemon_1_Level"; + this.CB_Pokemon_1_Level.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_1_Level.TabIndex = 23; + // + // L_Pokemon_1_Pokemon + // + this.L_Pokemon_1_Pokemon.AutoSize = true; + this.L_Pokemon_1_Pokemon.Location = new System.Drawing.Point(7, 17); + this.L_Pokemon_1_Pokemon.Name = "L_Pokemon_1_Pokemon"; + this.L_Pokemon_1_Pokemon.Size = new System.Drawing.Size(55, 13); + this.L_Pokemon_1_Pokemon.TabIndex = 22; + this.L_Pokemon_1_Pokemon.Text = "Pokémon:"; + // + // CB_Pokemon_1_Pokemon + // + this.CB_Pokemon_1_Pokemon.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_1_Pokemon.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_1_Pokemon.Enabled = false; + this.CB_Pokemon_1_Pokemon.FormattingEnabled = true; + this.CB_Pokemon_1_Pokemon.Location = new System.Drawing.Point(64, 14); + this.CB_Pokemon_1_Pokemon.Name = "CB_Pokemon_1_Pokemon"; + this.CB_Pokemon_1_Pokemon.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_1_Pokemon.TabIndex = 21; + this.CB_Pokemon_1_Pokemon.SelectedIndexChanged += new System.EventHandler(this.RefreshSpeciesAbility); + // + // tabPage3 + // + this.tabPage3.BackColor = System.Drawing.SystemColors.Control; + this.tabPage3.Controls.Add(this.L_Pokemon_2_Gender); + this.tabPage3.Controls.Add(this.CB_Pokemon_2_Gender); + this.tabPage3.Controls.Add(this.L_Pokemon_2_Ability); + this.tabPage3.Controls.Add(this.CB_Pokemon_2_Ability); + this.tabPage3.Controls.Add(this.L_Pokemon_2_Form); + this.tabPage3.Controls.Add(this.CB_Pokemon_2_Form); + this.tabPage3.Controls.Add(this.L_Pokemon_2_IVs); + this.tabPage3.Controls.Add(this.CB_Pokemon_2_IVs); + this.tabPage3.Controls.Add(this.L_Pokemon_2_Move_4); + this.tabPage3.Controls.Add(this.CB_Pokemon_2_Move_4); + this.tabPage3.Controls.Add(this.L_Pokemon_2_Move_3); + this.tabPage3.Controls.Add(this.CB_Pokemon_2_Move_3); + this.tabPage3.Controls.Add(this.L_Pokemon_2_Move_2); + this.tabPage3.Controls.Add(this.CB_Pokemon_2_Move_2); + this.tabPage3.Controls.Add(this.L_Pokemon_2_Move_1); + this.tabPage3.Controls.Add(this.CB_Pokemon_2_Move_1); + this.tabPage3.Controls.Add(this.L_Pokemon_2_Item); + this.tabPage3.Controls.Add(this.CB_Pokemon_2_Item); + this.tabPage3.Controls.Add(this.L_CB_Pokemon_2_Level); + this.tabPage3.Controls.Add(this.CB_Pokemon_2_Level); + this.tabPage3.Controls.Add(this.L_Pokemon_2_Pokemon); + this.tabPage3.Controls.Add(this.CB_Pokemon_2_Pokemon); + this.tabPage3.Location = new System.Drawing.Point(4, 22); + this.tabPage3.Name = "tabPage3"; + this.tabPage3.Padding = new System.Windows.Forms.Padding(3); + this.tabPage3.Size = new System.Drawing.Size(557, 127); + this.tabPage3.TabIndex = 2; + this.tabPage3.Text = "Pokémon 2"; + // + // L_Pokemon_2_Gender + // + this.L_Pokemon_2_Gender.AutoSize = true; + this.L_Pokemon_2_Gender.Location = new System.Drawing.Point(366, 71); + this.L_Pokemon_2_Gender.Name = "L_Pokemon_2_Gender"; + this.L_Pokemon_2_Gender.Size = new System.Drawing.Size(45, 13); + this.L_Pokemon_2_Gender.TabIndex = 65; + this.L_Pokemon_2_Gender.Text = "Gender:"; + // + // CB_Pokemon_2_Gender + // + this.CB_Pokemon_2_Gender.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_2_Gender.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_2_Gender.Enabled = false; + this.CB_Pokemon_2_Gender.FormattingEnabled = true; + this.CB_Pokemon_2_Gender.Location = new System.Drawing.Point(413, 68); + this.CB_Pokemon_2_Gender.Name = "CB_Pokemon_2_Gender"; + this.CB_Pokemon_2_Gender.Size = new System.Drawing.Size(136, 21); + this.CB_Pokemon_2_Gender.TabIndex = 64; + this.CB_Pokemon_2_Gender.SelectedIndexChanged += new System.EventHandler(this.ChangeTeam); + // + // L_Pokemon_2_Ability + // + this.L_Pokemon_2_Ability.AutoSize = true; + this.L_Pokemon_2_Ability.Location = new System.Drawing.Point(374, 44); + this.L_Pokemon_2_Ability.Name = "L_Pokemon_2_Ability"; + this.L_Pokemon_2_Ability.Size = new System.Drawing.Size(37, 13); + this.L_Pokemon_2_Ability.TabIndex = 63; + this.L_Pokemon_2_Ability.Text = "Ability:"; + // + // CB_Pokemon_2_Ability + // + this.CB_Pokemon_2_Ability.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_2_Ability.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_2_Ability.Enabled = false; + this.CB_Pokemon_2_Ability.FormattingEnabled = true; + this.CB_Pokemon_2_Ability.Location = new System.Drawing.Point(413, 41); + this.CB_Pokemon_2_Ability.Name = "CB_Pokemon_2_Ability"; + this.CB_Pokemon_2_Ability.Size = new System.Drawing.Size(136, 21); + this.CB_Pokemon_2_Ability.TabIndex = 62; + // + // L_Pokemon_2_Form + // + this.L_Pokemon_2_Form.AutoSize = true; + this.L_Pokemon_2_Form.Location = new System.Drawing.Point(29, 44); + this.L_Pokemon_2_Form.Name = "L_Pokemon_2_Form"; + this.L_Pokemon_2_Form.Size = new System.Drawing.Size(33, 13); + this.L_Pokemon_2_Form.TabIndex = 59; + this.L_Pokemon_2_Form.Text = "Form:"; + // + // CB_Pokemon_2_Form + // + this.CB_Pokemon_2_Form.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_2_Form.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_2_Form.Enabled = false; + this.CB_Pokemon_2_Form.FormattingEnabled = true; + this.CB_Pokemon_2_Form.Location = new System.Drawing.Point(64, 41); + this.CB_Pokemon_2_Form.Name = "CB_Pokemon_2_Form"; + this.CB_Pokemon_2_Form.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_2_Form.TabIndex = 58; + this.CB_Pokemon_2_Form.SelectedIndexChanged += new System.EventHandler(this.RefreshFormAbility); + // + // L_Pokemon_2_IVs + // + this.L_Pokemon_2_IVs.AutoSize = true; + this.L_Pokemon_2_IVs.Location = new System.Drawing.Point(386, 17); + this.L_Pokemon_2_IVs.Name = "L_Pokemon_2_IVs"; + this.L_Pokemon_2_IVs.Size = new System.Drawing.Size(25, 13); + this.L_Pokemon_2_IVs.TabIndex = 38; + this.L_Pokemon_2_IVs.Text = "IVs:"; + // + // CB_Pokemon_2_IVs + // + this.CB_Pokemon_2_IVs.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_2_IVs.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_2_IVs.Enabled = false; + this.CB_Pokemon_2_IVs.FormattingEnabled = true; + this.CB_Pokemon_2_IVs.Location = new System.Drawing.Point(413, 14); + this.CB_Pokemon_2_IVs.Name = "CB_Pokemon_2_IVs"; + this.CB_Pokemon_2_IVs.Size = new System.Drawing.Size(136, 21); + this.CB_Pokemon_2_IVs.TabIndex = 37; + // + // L_Pokemon_2_Move_4 + // + this.L_Pokemon_2_Move_4.AutoSize = true; + this.L_Pokemon_2_Move_4.Location = new System.Drawing.Point(192, 98); + this.L_Pokemon_2_Move_4.Name = "L_Pokemon_2_Move_4"; + this.L_Pokemon_2_Move_4.Size = new System.Drawing.Size(46, 13); + this.L_Pokemon_2_Move_4.TabIndex = 34; + this.L_Pokemon_2_Move_4.Text = "Move 4:"; + // + // CB_Pokemon_2_Move_4 + // + this.CB_Pokemon_2_Move_4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_2_Move_4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_2_Move_4.Enabled = false; + this.CB_Pokemon_2_Move_4.FormattingEnabled = true; + this.CB_Pokemon_2_Move_4.Location = new System.Drawing.Point(241, 95); + this.CB_Pokemon_2_Move_4.Name = "CB_Pokemon_2_Move_4"; + this.CB_Pokemon_2_Move_4.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_2_Move_4.TabIndex = 33; + // + // L_Pokemon_2_Move_3 + // + this.L_Pokemon_2_Move_3.AutoSize = true; + this.L_Pokemon_2_Move_3.Location = new System.Drawing.Point(192, 71); + this.L_Pokemon_2_Move_3.Name = "L_Pokemon_2_Move_3"; + this.L_Pokemon_2_Move_3.Size = new System.Drawing.Size(46, 13); + this.L_Pokemon_2_Move_3.TabIndex = 32; + this.L_Pokemon_2_Move_3.Text = "Move 3:"; + // + // CB_Pokemon_2_Move_3 + // + this.CB_Pokemon_2_Move_3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_2_Move_3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_2_Move_3.Enabled = false; + this.CB_Pokemon_2_Move_3.FormattingEnabled = true; + this.CB_Pokemon_2_Move_3.Location = new System.Drawing.Point(241, 68); + this.CB_Pokemon_2_Move_3.Name = "CB_Pokemon_2_Move_3"; + this.CB_Pokemon_2_Move_3.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_2_Move_3.TabIndex = 31; + // + // L_Pokemon_2_Move_2 + // + this.L_Pokemon_2_Move_2.AutoSize = true; + this.L_Pokemon_2_Move_2.Location = new System.Drawing.Point(192, 44); + this.L_Pokemon_2_Move_2.Name = "L_Pokemon_2_Move_2"; + this.L_Pokemon_2_Move_2.Size = new System.Drawing.Size(46, 13); + this.L_Pokemon_2_Move_2.TabIndex = 30; + this.L_Pokemon_2_Move_2.Text = "Move 2:"; + // + // CB_Pokemon_2_Move_2 + // + this.CB_Pokemon_2_Move_2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_2_Move_2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_2_Move_2.Enabled = false; + this.CB_Pokemon_2_Move_2.FormattingEnabled = true; + this.CB_Pokemon_2_Move_2.Location = new System.Drawing.Point(241, 41); + this.CB_Pokemon_2_Move_2.Name = "CB_Pokemon_2_Move_2"; + this.CB_Pokemon_2_Move_2.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_2_Move_2.TabIndex = 29; + // + // L_Pokemon_2_Move_1 + // + this.L_Pokemon_2_Move_1.AutoSize = true; + this.L_Pokemon_2_Move_1.Location = new System.Drawing.Point(192, 17); + this.L_Pokemon_2_Move_1.Name = "L_Pokemon_2_Move_1"; + this.L_Pokemon_2_Move_1.Size = new System.Drawing.Size(46, 13); + this.L_Pokemon_2_Move_1.TabIndex = 28; + this.L_Pokemon_2_Move_1.Text = "Move 1:"; + // + // CB_Pokemon_2_Move_1 + // + this.CB_Pokemon_2_Move_1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_2_Move_1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_2_Move_1.Enabled = false; + this.CB_Pokemon_2_Move_1.FormattingEnabled = true; + this.CB_Pokemon_2_Move_1.Location = new System.Drawing.Point(241, 14); + this.CB_Pokemon_2_Move_1.Name = "CB_Pokemon_2_Move_1"; + this.CB_Pokemon_2_Move_1.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_2_Move_1.TabIndex = 27; + // + // L_Pokemon_2_Item + // + this.L_Pokemon_2_Item.AutoSize = true; + this.L_Pokemon_2_Item.Location = new System.Drawing.Point(32, 98); + this.L_Pokemon_2_Item.Name = "L_Pokemon_2_Item"; + this.L_Pokemon_2_Item.Size = new System.Drawing.Size(30, 13); + this.L_Pokemon_2_Item.TabIndex = 26; + this.L_Pokemon_2_Item.Text = "Item:"; + // + // CB_Pokemon_2_Item + // + this.CB_Pokemon_2_Item.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_2_Item.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_2_Item.Enabled = false; + this.CB_Pokemon_2_Item.FormattingEnabled = true; + this.CB_Pokemon_2_Item.Location = new System.Drawing.Point(64, 95); + this.CB_Pokemon_2_Item.Name = "CB_Pokemon_2_Item"; + this.CB_Pokemon_2_Item.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_2_Item.TabIndex = 25; + this.CB_Pokemon_2_Item.SelectedIndexChanged += new System.EventHandler(this.ChangeTeam); + // + // L_CB_Pokemon_2_Level + // + this.L_CB_Pokemon_2_Level.AutoSize = true; + this.L_CB_Pokemon_2_Level.Location = new System.Drawing.Point(26, 71); + this.L_CB_Pokemon_2_Level.Name = "L_CB_Pokemon_2_Level"; + this.L_CB_Pokemon_2_Level.Size = new System.Drawing.Size(36, 13); + this.L_CB_Pokemon_2_Level.TabIndex = 24; + this.L_CB_Pokemon_2_Level.Text = "Level:"; + // + // CB_Pokemon_2_Level + // + this.CB_Pokemon_2_Level.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_2_Level.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_2_Level.Enabled = false; + this.CB_Pokemon_2_Level.FormattingEnabled = true; + this.CB_Pokemon_2_Level.Location = new System.Drawing.Point(64, 68); + this.CB_Pokemon_2_Level.Name = "CB_Pokemon_2_Level"; + this.CB_Pokemon_2_Level.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_2_Level.TabIndex = 23; + // + // L_Pokemon_2_Pokemon + // + this.L_Pokemon_2_Pokemon.AutoSize = true; + this.L_Pokemon_2_Pokemon.Location = new System.Drawing.Point(7, 17); + this.L_Pokemon_2_Pokemon.Name = "L_Pokemon_2_Pokemon"; + this.L_Pokemon_2_Pokemon.Size = new System.Drawing.Size(55, 13); + this.L_Pokemon_2_Pokemon.TabIndex = 22; + this.L_Pokemon_2_Pokemon.Text = "Pokémon:"; + // + // CB_Pokemon_2_Pokemon + // + this.CB_Pokemon_2_Pokemon.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_2_Pokemon.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_2_Pokemon.Enabled = false; + this.CB_Pokemon_2_Pokemon.FormattingEnabled = true; + this.CB_Pokemon_2_Pokemon.Location = new System.Drawing.Point(64, 14); + this.CB_Pokemon_2_Pokemon.Name = "CB_Pokemon_2_Pokemon"; + this.CB_Pokemon_2_Pokemon.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_2_Pokemon.TabIndex = 21; + this.CB_Pokemon_2_Pokemon.SelectedIndexChanged += new System.EventHandler(this.RefreshSpeciesAbility); + // + // tabPage4 + // + this.tabPage4.BackColor = System.Drawing.SystemColors.Control; + this.tabPage4.Controls.Add(this.L_Pokemon_3_Gender); + this.tabPage4.Controls.Add(this.CB_Pokemon_3_Gender); + this.tabPage4.Controls.Add(this.L_Pokemon_3_Ability); + this.tabPage4.Controls.Add(this.CB_Pokemon_3_Ability); + this.tabPage4.Controls.Add(this.L_Pokemon_3_Form); + this.tabPage4.Controls.Add(this.CB_Pokemon_3_Form); + this.tabPage4.Controls.Add(this.L_Pokemon_3_IVs); + this.tabPage4.Controls.Add(this.CB_Pokemon_3_IVs); + this.tabPage4.Controls.Add(this.L_Pokemon_3_Move_4); + this.tabPage4.Controls.Add(this.CB_Pokemon_3_Move_4); + this.tabPage4.Controls.Add(this.L_Pokemon_3_Move_3); + this.tabPage4.Controls.Add(this.CB_Pokemon_3_Move_3); + this.tabPage4.Controls.Add(this.L_Pokemon_3_Move_2); + this.tabPage4.Controls.Add(this.CB_Pokemon_3_Move_2); + this.tabPage4.Controls.Add(this.L_Pokemon_3_Move_1); + this.tabPage4.Controls.Add(this.CB_Pokemon_3_Move_1); + this.tabPage4.Controls.Add(this.L_Pokemon_3_Item); + this.tabPage4.Controls.Add(this.CB_Pokemon_3_Item); + this.tabPage4.Controls.Add(this.L_Pokemon_3_Level); + this.tabPage4.Controls.Add(this.CB_Pokemon_3_Level); + this.tabPage4.Controls.Add(this.L_Pokemon_3_Pokemon); + this.tabPage4.Controls.Add(this.CB_Pokemon_3_Pokemon); + this.tabPage4.Location = new System.Drawing.Point(4, 22); + this.tabPage4.Name = "tabPage4"; + this.tabPage4.Padding = new System.Windows.Forms.Padding(3); + this.tabPage4.Size = new System.Drawing.Size(557, 127); + this.tabPage4.TabIndex = 3; + this.tabPage4.Text = "Pokémon 3"; + // + // L_Pokemon_3_Gender + // + this.L_Pokemon_3_Gender.AutoSize = true; + this.L_Pokemon_3_Gender.Location = new System.Drawing.Point(366, 71); + this.L_Pokemon_3_Gender.Name = "L_Pokemon_3_Gender"; + this.L_Pokemon_3_Gender.Size = new System.Drawing.Size(45, 13); + this.L_Pokemon_3_Gender.TabIndex = 65; + this.L_Pokemon_3_Gender.Text = "Gender:"; + // + // CB_Pokemon_3_Gender + // + this.CB_Pokemon_3_Gender.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_3_Gender.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_3_Gender.Enabled = false; + this.CB_Pokemon_3_Gender.FormattingEnabled = true; + this.CB_Pokemon_3_Gender.Location = new System.Drawing.Point(413, 68); + this.CB_Pokemon_3_Gender.Name = "CB_Pokemon_3_Gender"; + this.CB_Pokemon_3_Gender.Size = new System.Drawing.Size(136, 21); + this.CB_Pokemon_3_Gender.TabIndex = 64; + this.CB_Pokemon_3_Gender.SelectedIndexChanged += new System.EventHandler(this.ChangeTeam); + // + // L_Pokemon_3_Ability + // + this.L_Pokemon_3_Ability.AutoSize = true; + this.L_Pokemon_3_Ability.Location = new System.Drawing.Point(374, 44); + this.L_Pokemon_3_Ability.Name = "L_Pokemon_3_Ability"; + this.L_Pokemon_3_Ability.Size = new System.Drawing.Size(37, 13); + this.L_Pokemon_3_Ability.TabIndex = 63; + this.L_Pokemon_3_Ability.Text = "Ability:"; + // + // CB_Pokemon_3_Ability + // + this.CB_Pokemon_3_Ability.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_3_Ability.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_3_Ability.Enabled = false; + this.CB_Pokemon_3_Ability.FormattingEnabled = true; + this.CB_Pokemon_3_Ability.Location = new System.Drawing.Point(413, 41); + this.CB_Pokemon_3_Ability.Name = "CB_Pokemon_3_Ability"; + this.CB_Pokemon_3_Ability.Size = new System.Drawing.Size(136, 21); + this.CB_Pokemon_3_Ability.TabIndex = 62; + // + // L_Pokemon_3_Form + // + this.L_Pokemon_3_Form.AutoSize = true; + this.L_Pokemon_3_Form.Location = new System.Drawing.Point(29, 44); + this.L_Pokemon_3_Form.Name = "L_Pokemon_3_Form"; + this.L_Pokemon_3_Form.Size = new System.Drawing.Size(33, 13); + this.L_Pokemon_3_Form.TabIndex = 59; + this.L_Pokemon_3_Form.Text = "Form:"; + // + // CB_Pokemon_3_Form + // + this.CB_Pokemon_3_Form.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_3_Form.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_3_Form.Enabled = false; + this.CB_Pokemon_3_Form.FormattingEnabled = true; + this.CB_Pokemon_3_Form.Location = new System.Drawing.Point(64, 41); + this.CB_Pokemon_3_Form.Name = "CB_Pokemon_3_Form"; + this.CB_Pokemon_3_Form.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_3_Form.TabIndex = 58; + this.CB_Pokemon_3_Form.SelectedIndexChanged += new System.EventHandler(this.RefreshFormAbility); + // + // L_Pokemon_3_IVs + // + this.L_Pokemon_3_IVs.AutoSize = true; + this.L_Pokemon_3_IVs.Location = new System.Drawing.Point(386, 17); + this.L_Pokemon_3_IVs.Name = "L_Pokemon_3_IVs"; + this.L_Pokemon_3_IVs.Size = new System.Drawing.Size(25, 13); + this.L_Pokemon_3_IVs.TabIndex = 38; + this.L_Pokemon_3_IVs.Text = "IVs:"; + // + // CB_Pokemon_3_IVs + // + this.CB_Pokemon_3_IVs.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_3_IVs.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_3_IVs.Enabled = false; + this.CB_Pokemon_3_IVs.FormattingEnabled = true; + this.CB_Pokemon_3_IVs.Location = new System.Drawing.Point(413, 14); + this.CB_Pokemon_3_IVs.Name = "CB_Pokemon_3_IVs"; + this.CB_Pokemon_3_IVs.Size = new System.Drawing.Size(136, 21); + this.CB_Pokemon_3_IVs.TabIndex = 37; + // + // L_Pokemon_3_Move_4 + // + this.L_Pokemon_3_Move_4.AutoSize = true; + this.L_Pokemon_3_Move_4.Location = new System.Drawing.Point(192, 98); + this.L_Pokemon_3_Move_4.Name = "L_Pokemon_3_Move_4"; + this.L_Pokemon_3_Move_4.Size = new System.Drawing.Size(46, 13); + this.L_Pokemon_3_Move_4.TabIndex = 34; + this.L_Pokemon_3_Move_4.Text = "Move 4:"; + // + // CB_Pokemon_3_Move_4 + // + this.CB_Pokemon_3_Move_4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_3_Move_4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_3_Move_4.Enabled = false; + this.CB_Pokemon_3_Move_4.FormattingEnabled = true; + this.CB_Pokemon_3_Move_4.Location = new System.Drawing.Point(241, 95); + this.CB_Pokemon_3_Move_4.Name = "CB_Pokemon_3_Move_4"; + this.CB_Pokemon_3_Move_4.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_3_Move_4.TabIndex = 33; + // + // L_Pokemon_3_Move_3 + // + this.L_Pokemon_3_Move_3.AutoSize = true; + this.L_Pokemon_3_Move_3.Location = new System.Drawing.Point(192, 71); + this.L_Pokemon_3_Move_3.Name = "L_Pokemon_3_Move_3"; + this.L_Pokemon_3_Move_3.Size = new System.Drawing.Size(46, 13); + this.L_Pokemon_3_Move_3.TabIndex = 32; + this.L_Pokemon_3_Move_3.Text = "Move 3:"; + // + // CB_Pokemon_3_Move_3 + // + this.CB_Pokemon_3_Move_3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_3_Move_3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_3_Move_3.Enabled = false; + this.CB_Pokemon_3_Move_3.FormattingEnabled = true; + this.CB_Pokemon_3_Move_3.Location = new System.Drawing.Point(241, 68); + this.CB_Pokemon_3_Move_3.Name = "CB_Pokemon_3_Move_3"; + this.CB_Pokemon_3_Move_3.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_3_Move_3.TabIndex = 31; + // + // L_Pokemon_3_Move_2 + // + this.L_Pokemon_3_Move_2.AutoSize = true; + this.L_Pokemon_3_Move_2.Location = new System.Drawing.Point(192, 44); + this.L_Pokemon_3_Move_2.Name = "L_Pokemon_3_Move_2"; + this.L_Pokemon_3_Move_2.Size = new System.Drawing.Size(46, 13); + this.L_Pokemon_3_Move_2.TabIndex = 30; + this.L_Pokemon_3_Move_2.Text = "Move 2:"; + // + // CB_Pokemon_3_Move_2 + // + this.CB_Pokemon_3_Move_2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_3_Move_2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_3_Move_2.Enabled = false; + this.CB_Pokemon_3_Move_2.FormattingEnabled = true; + this.CB_Pokemon_3_Move_2.Location = new System.Drawing.Point(241, 41); + this.CB_Pokemon_3_Move_2.Name = "CB_Pokemon_3_Move_2"; + this.CB_Pokemon_3_Move_2.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_3_Move_2.TabIndex = 29; + // + // L_Pokemon_3_Move_1 + // + this.L_Pokemon_3_Move_1.AutoSize = true; + this.L_Pokemon_3_Move_1.Location = new System.Drawing.Point(192, 17); + this.L_Pokemon_3_Move_1.Name = "L_Pokemon_3_Move_1"; + this.L_Pokemon_3_Move_1.Size = new System.Drawing.Size(46, 13); + this.L_Pokemon_3_Move_1.TabIndex = 28; + this.L_Pokemon_3_Move_1.Text = "Move 1:"; + // + // CB_Pokemon_3_Move_1 + // + this.CB_Pokemon_3_Move_1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_3_Move_1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_3_Move_1.Enabled = false; + this.CB_Pokemon_3_Move_1.FormattingEnabled = true; + this.CB_Pokemon_3_Move_1.Location = new System.Drawing.Point(241, 14); + this.CB_Pokemon_3_Move_1.Name = "CB_Pokemon_3_Move_1"; + this.CB_Pokemon_3_Move_1.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_3_Move_1.TabIndex = 27; + // + // L_Pokemon_3_Item + // + this.L_Pokemon_3_Item.AutoSize = true; + this.L_Pokemon_3_Item.Location = new System.Drawing.Point(32, 98); + this.L_Pokemon_3_Item.Name = "L_Pokemon_3_Item"; + this.L_Pokemon_3_Item.Size = new System.Drawing.Size(30, 13); + this.L_Pokemon_3_Item.TabIndex = 26; + this.L_Pokemon_3_Item.Text = "Item:"; + // + // CB_Pokemon_3_Item + // + this.CB_Pokemon_3_Item.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_3_Item.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_3_Item.Enabled = false; + this.CB_Pokemon_3_Item.FormattingEnabled = true; + this.CB_Pokemon_3_Item.Location = new System.Drawing.Point(64, 95); + this.CB_Pokemon_3_Item.Name = "CB_Pokemon_3_Item"; + this.CB_Pokemon_3_Item.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_3_Item.TabIndex = 25; + this.CB_Pokemon_3_Item.SelectedIndexChanged += new System.EventHandler(this.ChangeTeam); + // + // L_Pokemon_3_Level + // + this.L_Pokemon_3_Level.AutoSize = true; + this.L_Pokemon_3_Level.Location = new System.Drawing.Point(26, 71); + this.L_Pokemon_3_Level.Name = "L_Pokemon_3_Level"; + this.L_Pokemon_3_Level.Size = new System.Drawing.Size(36, 13); + this.L_Pokemon_3_Level.TabIndex = 24; + this.L_Pokemon_3_Level.Text = "Level:"; + // + // CB_Pokemon_3_Level + // + this.CB_Pokemon_3_Level.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_3_Level.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_3_Level.Enabled = false; + this.CB_Pokemon_3_Level.FormattingEnabled = true; + this.CB_Pokemon_3_Level.Location = new System.Drawing.Point(64, 68); + this.CB_Pokemon_3_Level.Name = "CB_Pokemon_3_Level"; + this.CB_Pokemon_3_Level.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_3_Level.TabIndex = 23; + // + // L_Pokemon_3_Pokemon + // + this.L_Pokemon_3_Pokemon.AutoSize = true; + this.L_Pokemon_3_Pokemon.Location = new System.Drawing.Point(7, 17); + this.L_Pokemon_3_Pokemon.Name = "L_Pokemon_3_Pokemon"; + this.L_Pokemon_3_Pokemon.Size = new System.Drawing.Size(55, 13); + this.L_Pokemon_3_Pokemon.TabIndex = 22; + this.L_Pokemon_3_Pokemon.Text = "Pokémon:"; + // + // CB_Pokemon_3_Pokemon + // + this.CB_Pokemon_3_Pokemon.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_3_Pokemon.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_3_Pokemon.Enabled = false; + this.CB_Pokemon_3_Pokemon.FormattingEnabled = true; + this.CB_Pokemon_3_Pokemon.Location = new System.Drawing.Point(64, 14); + this.CB_Pokemon_3_Pokemon.Name = "CB_Pokemon_3_Pokemon"; + this.CB_Pokemon_3_Pokemon.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_3_Pokemon.TabIndex = 21; + this.CB_Pokemon_3_Pokemon.SelectedIndexChanged += new System.EventHandler(this.RefreshSpeciesAbility); + // + // tabPage5 + // + this.tabPage5.BackColor = System.Drawing.SystemColors.Control; + this.tabPage5.Controls.Add(this.L_Pokemon_4_Gender); + this.tabPage5.Controls.Add(this.CB_Pokemon_4_Gender); + this.tabPage5.Controls.Add(this.L_Pokemon_4_Ability); + this.tabPage5.Controls.Add(this.CB_Pokemon_4_Ability); + this.tabPage5.Controls.Add(this.L_Pokemon_4_Form); + this.tabPage5.Controls.Add(this.CB_Pokemon_4_Form); + this.tabPage5.Controls.Add(this.L_Pokemon_4_IVs); + this.tabPage5.Controls.Add(this.CB_Pokemon_4_IVs); + this.tabPage5.Controls.Add(this.L_Pokemon_4_Move_4); + this.tabPage5.Controls.Add(this.CB_Pokemon_4_Move_4); + this.tabPage5.Controls.Add(this.L_Pokemon_4_Move_3); + this.tabPage5.Controls.Add(this.CB_Pokemon_4_Move_3); + this.tabPage5.Controls.Add(this.L_Pokemon_4_Move_2); + this.tabPage5.Controls.Add(this.CB_Pokemon_4_Move_2); + this.tabPage5.Controls.Add(this.L_Pokemon_4_Move_1); + this.tabPage5.Controls.Add(this.CB_Pokemon_4_Move_1); + this.tabPage5.Controls.Add(this.L_CB_Pokemon_4_Item); + this.tabPage5.Controls.Add(this.CB_Pokemon_4_Item); + this.tabPage5.Controls.Add(this.L_Pokemon_4_Level); + this.tabPage5.Controls.Add(this.CB_Pokemon_4_Level); + this.tabPage5.Controls.Add(this.L_Pokemon_4_Pokemon); + this.tabPage5.Controls.Add(this.CB_Pokemon_4_Pokemon); + this.tabPage5.Location = new System.Drawing.Point(4, 22); + this.tabPage5.Name = "tabPage5"; + this.tabPage5.Padding = new System.Windows.Forms.Padding(3); + this.tabPage5.Size = new System.Drawing.Size(557, 127); + this.tabPage5.TabIndex = 4; + this.tabPage5.Text = "Pokémon 4"; + // + // L_Pokemon_4_Gender + // + this.L_Pokemon_4_Gender.AutoSize = true; + this.L_Pokemon_4_Gender.Location = new System.Drawing.Point(366, 71); + this.L_Pokemon_4_Gender.Name = "L_Pokemon_4_Gender"; + this.L_Pokemon_4_Gender.Size = new System.Drawing.Size(45, 13); + this.L_Pokemon_4_Gender.TabIndex = 65; + this.L_Pokemon_4_Gender.Text = "Gender:"; + // + // CB_Pokemon_4_Gender + // + this.CB_Pokemon_4_Gender.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_4_Gender.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_4_Gender.Enabled = false; + this.CB_Pokemon_4_Gender.FormattingEnabled = true; + this.CB_Pokemon_4_Gender.Location = new System.Drawing.Point(413, 68); + this.CB_Pokemon_4_Gender.Name = "CB_Pokemon_4_Gender"; + this.CB_Pokemon_4_Gender.Size = new System.Drawing.Size(136, 21); + this.CB_Pokemon_4_Gender.TabIndex = 64; + this.CB_Pokemon_4_Gender.SelectedIndexChanged += new System.EventHandler(this.ChangeTeam); + // + // L_Pokemon_4_Ability + // + this.L_Pokemon_4_Ability.AutoSize = true; + this.L_Pokemon_4_Ability.Location = new System.Drawing.Point(374, 44); + this.L_Pokemon_4_Ability.Name = "L_Pokemon_4_Ability"; + this.L_Pokemon_4_Ability.Size = new System.Drawing.Size(37, 13); + this.L_Pokemon_4_Ability.TabIndex = 63; + this.L_Pokemon_4_Ability.Text = "Ability:"; + // + // CB_Pokemon_4_Ability + // + this.CB_Pokemon_4_Ability.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_4_Ability.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_4_Ability.Enabled = false; + this.CB_Pokemon_4_Ability.FormattingEnabled = true; + this.CB_Pokemon_4_Ability.Location = new System.Drawing.Point(413, 41); + this.CB_Pokemon_4_Ability.Name = "CB_Pokemon_4_Ability"; + this.CB_Pokemon_4_Ability.Size = new System.Drawing.Size(136, 21); + this.CB_Pokemon_4_Ability.TabIndex = 62; + // + // L_Pokemon_4_Form + // + this.L_Pokemon_4_Form.AutoSize = true; + this.L_Pokemon_4_Form.Location = new System.Drawing.Point(29, 44); + this.L_Pokemon_4_Form.Name = "L_Pokemon_4_Form"; + this.L_Pokemon_4_Form.Size = new System.Drawing.Size(33, 13); + this.L_Pokemon_4_Form.TabIndex = 59; + this.L_Pokemon_4_Form.Text = "Form:"; + // + // CB_Pokemon_4_Form + // + this.CB_Pokemon_4_Form.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_4_Form.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_4_Form.Enabled = false; + this.CB_Pokemon_4_Form.FormattingEnabled = true; + this.CB_Pokemon_4_Form.Location = new System.Drawing.Point(64, 41); + this.CB_Pokemon_4_Form.Name = "CB_Pokemon_4_Form"; + this.CB_Pokemon_4_Form.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_4_Form.TabIndex = 58; + this.CB_Pokemon_4_Form.SelectedIndexChanged += new System.EventHandler(this.RefreshFormAbility); + // + // L_Pokemon_4_IVs + // + this.L_Pokemon_4_IVs.AutoSize = true; + this.L_Pokemon_4_IVs.Location = new System.Drawing.Point(386, 17); + this.L_Pokemon_4_IVs.Name = "L_Pokemon_4_IVs"; + this.L_Pokemon_4_IVs.Size = new System.Drawing.Size(25, 13); + this.L_Pokemon_4_IVs.TabIndex = 38; + this.L_Pokemon_4_IVs.Text = "IVs:"; + // + // CB_Pokemon_4_IVs + // + this.CB_Pokemon_4_IVs.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_4_IVs.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_4_IVs.Enabled = false; + this.CB_Pokemon_4_IVs.FormattingEnabled = true; + this.CB_Pokemon_4_IVs.Location = new System.Drawing.Point(413, 14); + this.CB_Pokemon_4_IVs.Name = "CB_Pokemon_4_IVs"; + this.CB_Pokemon_4_IVs.Size = new System.Drawing.Size(136, 21); + this.CB_Pokemon_4_IVs.TabIndex = 37; + // + // L_Pokemon_4_Move_4 + // + this.L_Pokemon_4_Move_4.AutoSize = true; + this.L_Pokemon_4_Move_4.Location = new System.Drawing.Point(192, 98); + this.L_Pokemon_4_Move_4.Name = "L_Pokemon_4_Move_4"; + this.L_Pokemon_4_Move_4.Size = new System.Drawing.Size(46, 13); + this.L_Pokemon_4_Move_4.TabIndex = 34; + this.L_Pokemon_4_Move_4.Text = "Move 4:"; + // + // CB_Pokemon_4_Move_4 + // + this.CB_Pokemon_4_Move_4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_4_Move_4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_4_Move_4.Enabled = false; + this.CB_Pokemon_4_Move_4.FormattingEnabled = true; + this.CB_Pokemon_4_Move_4.Location = new System.Drawing.Point(241, 95); + this.CB_Pokemon_4_Move_4.Name = "CB_Pokemon_4_Move_4"; + this.CB_Pokemon_4_Move_4.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_4_Move_4.TabIndex = 33; + // + // L_Pokemon_4_Move_3 + // + this.L_Pokemon_4_Move_3.AutoSize = true; + this.L_Pokemon_4_Move_3.Location = new System.Drawing.Point(192, 71); + this.L_Pokemon_4_Move_3.Name = "L_Pokemon_4_Move_3"; + this.L_Pokemon_4_Move_3.Size = new System.Drawing.Size(46, 13); + this.L_Pokemon_4_Move_3.TabIndex = 32; + this.L_Pokemon_4_Move_3.Text = "Move 3:"; + // + // CB_Pokemon_4_Move_3 + // + this.CB_Pokemon_4_Move_3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_4_Move_3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_4_Move_3.Enabled = false; + this.CB_Pokemon_4_Move_3.FormattingEnabled = true; + this.CB_Pokemon_4_Move_3.Location = new System.Drawing.Point(241, 68); + this.CB_Pokemon_4_Move_3.Name = "CB_Pokemon_4_Move_3"; + this.CB_Pokemon_4_Move_3.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_4_Move_3.TabIndex = 31; + // + // L_Pokemon_4_Move_2 + // + this.L_Pokemon_4_Move_2.AutoSize = true; + this.L_Pokemon_4_Move_2.Location = new System.Drawing.Point(192, 44); + this.L_Pokemon_4_Move_2.Name = "L_Pokemon_4_Move_2"; + this.L_Pokemon_4_Move_2.Size = new System.Drawing.Size(46, 13); + this.L_Pokemon_4_Move_2.TabIndex = 30; + this.L_Pokemon_4_Move_2.Text = "Move 2:"; + // + // CB_Pokemon_4_Move_2 + // + this.CB_Pokemon_4_Move_2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_4_Move_2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_4_Move_2.Enabled = false; + this.CB_Pokemon_4_Move_2.FormattingEnabled = true; + this.CB_Pokemon_4_Move_2.Location = new System.Drawing.Point(241, 41); + this.CB_Pokemon_4_Move_2.Name = "CB_Pokemon_4_Move_2"; + this.CB_Pokemon_4_Move_2.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_4_Move_2.TabIndex = 29; + // + // L_Pokemon_4_Move_1 + // + this.L_Pokemon_4_Move_1.AutoSize = true; + this.L_Pokemon_4_Move_1.Location = new System.Drawing.Point(192, 17); + this.L_Pokemon_4_Move_1.Name = "L_Pokemon_4_Move_1"; + this.L_Pokemon_4_Move_1.Size = new System.Drawing.Size(46, 13); + this.L_Pokemon_4_Move_1.TabIndex = 28; + this.L_Pokemon_4_Move_1.Text = "Move 1:"; + // + // CB_Pokemon_4_Move_1 + // + this.CB_Pokemon_4_Move_1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_4_Move_1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_4_Move_1.Enabled = false; + this.CB_Pokemon_4_Move_1.FormattingEnabled = true; + this.CB_Pokemon_4_Move_1.Location = new System.Drawing.Point(241, 14); + this.CB_Pokemon_4_Move_1.Name = "CB_Pokemon_4_Move_1"; + this.CB_Pokemon_4_Move_1.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_4_Move_1.TabIndex = 27; + // + // L_CB_Pokemon_4_Item + // + this.L_CB_Pokemon_4_Item.AutoSize = true; + this.L_CB_Pokemon_4_Item.Location = new System.Drawing.Point(32, 98); + this.L_CB_Pokemon_4_Item.Name = "L_CB_Pokemon_4_Item"; + this.L_CB_Pokemon_4_Item.Size = new System.Drawing.Size(30, 13); + this.L_CB_Pokemon_4_Item.TabIndex = 26; + this.L_CB_Pokemon_4_Item.Text = "Item:"; + // + // CB_Pokemon_4_Item + // + this.CB_Pokemon_4_Item.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_4_Item.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_4_Item.Enabled = false; + this.CB_Pokemon_4_Item.FormattingEnabled = true; + this.CB_Pokemon_4_Item.Location = new System.Drawing.Point(64, 95); + this.CB_Pokemon_4_Item.Name = "CB_Pokemon_4_Item"; + this.CB_Pokemon_4_Item.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_4_Item.TabIndex = 25; + this.CB_Pokemon_4_Item.SelectedIndexChanged += new System.EventHandler(this.ChangeTeam); + // + // L_Pokemon_4_Level + // + this.L_Pokemon_4_Level.AutoSize = true; + this.L_Pokemon_4_Level.Location = new System.Drawing.Point(26, 71); + this.L_Pokemon_4_Level.Name = "L_Pokemon_4_Level"; + this.L_Pokemon_4_Level.Size = new System.Drawing.Size(36, 13); + this.L_Pokemon_4_Level.TabIndex = 24; + this.L_Pokemon_4_Level.Text = "Level:"; + // + // CB_Pokemon_4_Level + // + this.CB_Pokemon_4_Level.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_4_Level.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_4_Level.Enabled = false; + this.CB_Pokemon_4_Level.FormattingEnabled = true; + this.CB_Pokemon_4_Level.Location = new System.Drawing.Point(64, 68); + this.CB_Pokemon_4_Level.Name = "CB_Pokemon_4_Level"; + this.CB_Pokemon_4_Level.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_4_Level.TabIndex = 23; + // + // L_Pokemon_4_Pokemon + // + this.L_Pokemon_4_Pokemon.AutoSize = true; + this.L_Pokemon_4_Pokemon.Location = new System.Drawing.Point(7, 17); + this.L_Pokemon_4_Pokemon.Name = "L_Pokemon_4_Pokemon"; + this.L_Pokemon_4_Pokemon.Size = new System.Drawing.Size(55, 13); + this.L_Pokemon_4_Pokemon.TabIndex = 22; + this.L_Pokemon_4_Pokemon.Text = "Pokémon:"; + // + // CB_Pokemon_4_Pokemon + // + this.CB_Pokemon_4_Pokemon.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_4_Pokemon.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_4_Pokemon.Enabled = false; + this.CB_Pokemon_4_Pokemon.FormattingEnabled = true; + this.CB_Pokemon_4_Pokemon.Location = new System.Drawing.Point(64, 14); + this.CB_Pokemon_4_Pokemon.Name = "CB_Pokemon_4_Pokemon"; + this.CB_Pokemon_4_Pokemon.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_4_Pokemon.TabIndex = 21; + this.CB_Pokemon_4_Pokemon.SelectedIndexChanged += new System.EventHandler(this.RefreshSpeciesAbility); + // + // tabPage6 + // + this.tabPage6.BackColor = System.Drawing.SystemColors.Control; + this.tabPage6.Controls.Add(this.L_Pokemon_5_Gender); + this.tabPage6.Controls.Add(this.CB_Pokemon_5_Gender); + this.tabPage6.Controls.Add(this.L_Pokemon_5_Ability); + this.tabPage6.Controls.Add(this.CB_Pokemon_5_Ability); + this.tabPage6.Controls.Add(this.L_Pokemon_5_Form); + this.tabPage6.Controls.Add(this.CB_Pokemon_5_Form); + this.tabPage6.Controls.Add(this.L_Pokemon_5_IVs); + this.tabPage6.Controls.Add(this.CB_Pokemon_5_IVs); + this.tabPage6.Controls.Add(this.L_Pokemon_5_Move_4); + this.tabPage6.Controls.Add(this.CB_Pokemon_5_Move_4); + this.tabPage6.Controls.Add(this.L_Pokemon_5_Move_3); + this.tabPage6.Controls.Add(this.CB_Pokemon_5_Move_3); + this.tabPage6.Controls.Add(this.L_Pokemon_5_Move_2); + this.tabPage6.Controls.Add(this.CB_Pokemon_5_Move_2); + this.tabPage6.Controls.Add(this.L_Pokemon_5_Move_1); + this.tabPage6.Controls.Add(this.CB_Pokemon_5_Move_1); + this.tabPage6.Controls.Add(this.L_Pokemon_5_Item); + this.tabPage6.Controls.Add(this.CB_Pokemon_5_Item); + this.tabPage6.Controls.Add(this.L_Pokemon_5_Level); + this.tabPage6.Controls.Add(this.CB_Pokemon_5_Level); + this.tabPage6.Controls.Add(this.L_Pokemon_5_Pokemon); + this.tabPage6.Controls.Add(this.CB_Pokemon_5_Pokemon); + this.tabPage6.Location = new System.Drawing.Point(4, 22); + this.tabPage6.Name = "tabPage6"; + this.tabPage6.Padding = new System.Windows.Forms.Padding(3); + this.tabPage6.Size = new System.Drawing.Size(557, 127); + this.tabPage6.TabIndex = 5; + this.tabPage6.Text = "Pokémon 5"; + // + // L_Pokemon_5_Gender + // + this.L_Pokemon_5_Gender.AutoSize = true; + this.L_Pokemon_5_Gender.Location = new System.Drawing.Point(366, 71); + this.L_Pokemon_5_Gender.Name = "L_Pokemon_5_Gender"; + this.L_Pokemon_5_Gender.Size = new System.Drawing.Size(45, 13); + this.L_Pokemon_5_Gender.TabIndex = 65; + this.L_Pokemon_5_Gender.Text = "Gender:"; + // + // CB_Pokemon_5_Gender + // + this.CB_Pokemon_5_Gender.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_5_Gender.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_5_Gender.Enabled = false; + this.CB_Pokemon_5_Gender.FormattingEnabled = true; + this.CB_Pokemon_5_Gender.Location = new System.Drawing.Point(413, 68); + this.CB_Pokemon_5_Gender.Name = "CB_Pokemon_5_Gender"; + this.CB_Pokemon_5_Gender.Size = new System.Drawing.Size(136, 21); + this.CB_Pokemon_5_Gender.TabIndex = 64; + this.CB_Pokemon_5_Gender.SelectedIndexChanged += new System.EventHandler(this.ChangeTeam); + // + // L_Pokemon_5_Ability + // + this.L_Pokemon_5_Ability.AutoSize = true; + this.L_Pokemon_5_Ability.Location = new System.Drawing.Point(374, 44); + this.L_Pokemon_5_Ability.Name = "L_Pokemon_5_Ability"; + this.L_Pokemon_5_Ability.Size = new System.Drawing.Size(37, 13); + this.L_Pokemon_5_Ability.TabIndex = 63; + this.L_Pokemon_5_Ability.Text = "Ability:"; + // + // CB_Pokemon_5_Ability + // + this.CB_Pokemon_5_Ability.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_5_Ability.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_5_Ability.Enabled = false; + this.CB_Pokemon_5_Ability.FormattingEnabled = true; + this.CB_Pokemon_5_Ability.Location = new System.Drawing.Point(413, 41); + this.CB_Pokemon_5_Ability.Name = "CB_Pokemon_5_Ability"; + this.CB_Pokemon_5_Ability.Size = new System.Drawing.Size(136, 21); + this.CB_Pokemon_5_Ability.TabIndex = 62; + // + // L_Pokemon_5_Form + // + this.L_Pokemon_5_Form.AutoSize = true; + this.L_Pokemon_5_Form.Location = new System.Drawing.Point(29, 44); + this.L_Pokemon_5_Form.Name = "L_Pokemon_5_Form"; + this.L_Pokemon_5_Form.Size = new System.Drawing.Size(33, 13); + this.L_Pokemon_5_Form.TabIndex = 59; + this.L_Pokemon_5_Form.Text = "Form:"; + // + // CB_Pokemon_5_Form + // + this.CB_Pokemon_5_Form.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_5_Form.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_5_Form.Enabled = false; + this.CB_Pokemon_5_Form.FormattingEnabled = true; + this.CB_Pokemon_5_Form.Location = new System.Drawing.Point(64, 41); + this.CB_Pokemon_5_Form.Name = "CB_Pokemon_5_Form"; + this.CB_Pokemon_5_Form.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_5_Form.TabIndex = 58; + this.CB_Pokemon_5_Form.SelectedIndexChanged += new System.EventHandler(this.RefreshFormAbility); + // + // L_Pokemon_5_IVs + // + this.L_Pokemon_5_IVs.AutoSize = true; + this.L_Pokemon_5_IVs.Location = new System.Drawing.Point(386, 17); + this.L_Pokemon_5_IVs.Name = "L_Pokemon_5_IVs"; + this.L_Pokemon_5_IVs.Size = new System.Drawing.Size(25, 13); + this.L_Pokemon_5_IVs.TabIndex = 38; + this.L_Pokemon_5_IVs.Text = "IVs:"; + // + // CB_Pokemon_5_IVs + // + this.CB_Pokemon_5_IVs.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_5_IVs.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_5_IVs.Enabled = false; + this.CB_Pokemon_5_IVs.FormattingEnabled = true; + this.CB_Pokemon_5_IVs.Location = new System.Drawing.Point(413, 14); + this.CB_Pokemon_5_IVs.Name = "CB_Pokemon_5_IVs"; + this.CB_Pokemon_5_IVs.Size = new System.Drawing.Size(136, 21); + this.CB_Pokemon_5_IVs.TabIndex = 37; + // + // L_Pokemon_5_Move_4 + // + this.L_Pokemon_5_Move_4.AutoSize = true; + this.L_Pokemon_5_Move_4.Location = new System.Drawing.Point(192, 98); + this.L_Pokemon_5_Move_4.Name = "L_Pokemon_5_Move_4"; + this.L_Pokemon_5_Move_4.Size = new System.Drawing.Size(46, 13); + this.L_Pokemon_5_Move_4.TabIndex = 34; + this.L_Pokemon_5_Move_4.Text = "Move 4:"; + // + // CB_Pokemon_5_Move_4 + // + this.CB_Pokemon_5_Move_4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_5_Move_4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_5_Move_4.Enabled = false; + this.CB_Pokemon_5_Move_4.FormattingEnabled = true; + this.CB_Pokemon_5_Move_4.Location = new System.Drawing.Point(241, 95); + this.CB_Pokemon_5_Move_4.Name = "CB_Pokemon_5_Move_4"; + this.CB_Pokemon_5_Move_4.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_5_Move_4.TabIndex = 33; + // + // L_Pokemon_5_Move_3 + // + this.L_Pokemon_5_Move_3.AutoSize = true; + this.L_Pokemon_5_Move_3.Location = new System.Drawing.Point(192, 71); + this.L_Pokemon_5_Move_3.Name = "L_Pokemon_5_Move_3"; + this.L_Pokemon_5_Move_3.Size = new System.Drawing.Size(46, 13); + this.L_Pokemon_5_Move_3.TabIndex = 32; + this.L_Pokemon_5_Move_3.Text = "Move 3:"; + // + // CB_Pokemon_5_Move_3 + // + this.CB_Pokemon_5_Move_3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_5_Move_3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_5_Move_3.Enabled = false; + this.CB_Pokemon_5_Move_3.FormattingEnabled = true; + this.CB_Pokemon_5_Move_3.Location = new System.Drawing.Point(241, 68); + this.CB_Pokemon_5_Move_3.Name = "CB_Pokemon_5_Move_3"; + this.CB_Pokemon_5_Move_3.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_5_Move_3.TabIndex = 31; + // + // L_Pokemon_5_Move_2 + // + this.L_Pokemon_5_Move_2.AutoSize = true; + this.L_Pokemon_5_Move_2.Location = new System.Drawing.Point(192, 44); + this.L_Pokemon_5_Move_2.Name = "L_Pokemon_5_Move_2"; + this.L_Pokemon_5_Move_2.Size = new System.Drawing.Size(46, 13); + this.L_Pokemon_5_Move_2.TabIndex = 30; + this.L_Pokemon_5_Move_2.Text = "Move 2:"; + // + // CB_Pokemon_5_Move_2 + // + this.CB_Pokemon_5_Move_2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_5_Move_2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_5_Move_2.Enabled = false; + this.CB_Pokemon_5_Move_2.FormattingEnabled = true; + this.CB_Pokemon_5_Move_2.Location = new System.Drawing.Point(241, 41); + this.CB_Pokemon_5_Move_2.Name = "CB_Pokemon_5_Move_2"; + this.CB_Pokemon_5_Move_2.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_5_Move_2.TabIndex = 29; + // + // L_Pokemon_5_Move_1 + // + this.L_Pokemon_5_Move_1.AutoSize = true; + this.L_Pokemon_5_Move_1.Location = new System.Drawing.Point(192, 17); + this.L_Pokemon_5_Move_1.Name = "L_Pokemon_5_Move_1"; + this.L_Pokemon_5_Move_1.Size = new System.Drawing.Size(46, 13); + this.L_Pokemon_5_Move_1.TabIndex = 28; + this.L_Pokemon_5_Move_1.Text = "Move 1:"; + // + // CB_Pokemon_5_Move_1 + // + this.CB_Pokemon_5_Move_1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_5_Move_1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_5_Move_1.Enabled = false; + this.CB_Pokemon_5_Move_1.FormattingEnabled = true; + this.CB_Pokemon_5_Move_1.Location = new System.Drawing.Point(241, 14); + this.CB_Pokemon_5_Move_1.Name = "CB_Pokemon_5_Move_1"; + this.CB_Pokemon_5_Move_1.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_5_Move_1.TabIndex = 27; + // + // L_Pokemon_5_Item + // + this.L_Pokemon_5_Item.AutoSize = true; + this.L_Pokemon_5_Item.Location = new System.Drawing.Point(32, 98); + this.L_Pokemon_5_Item.Name = "L_Pokemon_5_Item"; + this.L_Pokemon_5_Item.Size = new System.Drawing.Size(30, 13); + this.L_Pokemon_5_Item.TabIndex = 26; + this.L_Pokemon_5_Item.Text = "Item:"; + // + // CB_Pokemon_5_Item + // + this.CB_Pokemon_5_Item.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_5_Item.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_5_Item.Enabled = false; + this.CB_Pokemon_5_Item.FormattingEnabled = true; + this.CB_Pokemon_5_Item.Location = new System.Drawing.Point(64, 95); + this.CB_Pokemon_5_Item.Name = "CB_Pokemon_5_Item"; + this.CB_Pokemon_5_Item.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_5_Item.TabIndex = 25; + this.CB_Pokemon_5_Item.SelectedIndexChanged += new System.EventHandler(this.ChangeTeam); + // + // L_Pokemon_5_Level + // + this.L_Pokemon_5_Level.AutoSize = true; + this.L_Pokemon_5_Level.Location = new System.Drawing.Point(26, 71); + this.L_Pokemon_5_Level.Name = "L_Pokemon_5_Level"; + this.L_Pokemon_5_Level.Size = new System.Drawing.Size(36, 13); + this.L_Pokemon_5_Level.TabIndex = 24; + this.L_Pokemon_5_Level.Text = "Level:"; + // + // CB_Pokemon_5_Level + // + this.CB_Pokemon_5_Level.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_5_Level.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_5_Level.Enabled = false; + this.CB_Pokemon_5_Level.FormattingEnabled = true; + this.CB_Pokemon_5_Level.Location = new System.Drawing.Point(64, 68); + this.CB_Pokemon_5_Level.Name = "CB_Pokemon_5_Level"; + this.CB_Pokemon_5_Level.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_5_Level.TabIndex = 23; + // + // L_Pokemon_5_Pokemon + // + this.L_Pokemon_5_Pokemon.AutoSize = true; + this.L_Pokemon_5_Pokemon.Location = new System.Drawing.Point(7, 17); + this.L_Pokemon_5_Pokemon.Name = "L_Pokemon_5_Pokemon"; + this.L_Pokemon_5_Pokemon.Size = new System.Drawing.Size(55, 13); + this.L_Pokemon_5_Pokemon.TabIndex = 22; + this.L_Pokemon_5_Pokemon.Text = "Pokémon:"; + // + // CB_Pokemon_5_Pokemon + // + this.CB_Pokemon_5_Pokemon.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_5_Pokemon.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_5_Pokemon.Enabled = false; + this.CB_Pokemon_5_Pokemon.FormattingEnabled = true; + this.CB_Pokemon_5_Pokemon.Location = new System.Drawing.Point(64, 14); + this.CB_Pokemon_5_Pokemon.Name = "CB_Pokemon_5_Pokemon"; + this.CB_Pokemon_5_Pokemon.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_5_Pokemon.TabIndex = 21; + this.CB_Pokemon_5_Pokemon.SelectedIndexChanged += new System.EventHandler(this.RefreshSpeciesAbility); + // + // tabPage7 + // + this.tabPage7.BackColor = System.Drawing.SystemColors.Control; + this.tabPage7.Controls.Add(this.L_Pokemon_6_Gender); + this.tabPage7.Controls.Add(this.CB_Pokemon_6_Gender); + this.tabPage7.Controls.Add(this.L_Pokemon_6_Ability); + this.tabPage7.Controls.Add(this.CB_Pokemon_6_Ability); + this.tabPage7.Controls.Add(this.L_Pokemon_6_Form); + this.tabPage7.Controls.Add(this.CB_Pokemon_6_Form); + this.tabPage7.Controls.Add(this.L_Pokemon_6_IVs); + this.tabPage7.Controls.Add(this.CB_Pokemon_6_IVs); + this.tabPage7.Controls.Add(this.L_Pokemon_6_Move_4); + this.tabPage7.Controls.Add(this.CB_Pokemon_6_Move_4); + this.tabPage7.Controls.Add(this.L_Pokemon_6_Move_3); + this.tabPage7.Controls.Add(this.CB_Pokemon_6_Move_3); + this.tabPage7.Controls.Add(this.L_Pokemon_6_Move_2); + this.tabPage7.Controls.Add(this.CB_Pokemon_6_Move_2); + this.tabPage7.Controls.Add(this.L_Pokemon_6_Move_1); + this.tabPage7.Controls.Add(this.CB_Pokemon_6_Move_1); + this.tabPage7.Controls.Add(this.L_Pokemon_6_Item); + this.tabPage7.Controls.Add(this.CB_Pokemon_6_Item); + this.tabPage7.Controls.Add(this.L_Pokemon_6_Level); + this.tabPage7.Controls.Add(this.CB_Pokemon_6_Level); + this.tabPage7.Controls.Add(this.L_Pokemon_6_Pokemon); + this.tabPage7.Controls.Add(this.CB_Pokemon_6_Pokemon); + this.tabPage7.Location = new System.Drawing.Point(4, 22); + this.tabPage7.Name = "tabPage7"; + this.tabPage7.Padding = new System.Windows.Forms.Padding(3); + this.tabPage7.Size = new System.Drawing.Size(557, 127); + this.tabPage7.TabIndex = 6; + this.tabPage7.Text = "Pokémon 6"; + // + // L_Pokemon_6_Gender + // + this.L_Pokemon_6_Gender.AutoSize = true; + this.L_Pokemon_6_Gender.Location = new System.Drawing.Point(366, 71); + this.L_Pokemon_6_Gender.Name = "L_Pokemon_6_Gender"; + this.L_Pokemon_6_Gender.Size = new System.Drawing.Size(45, 13); + this.L_Pokemon_6_Gender.TabIndex = 65; + this.L_Pokemon_6_Gender.Text = "Gender:"; + // + // CB_Pokemon_6_Gender + // + this.CB_Pokemon_6_Gender.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_6_Gender.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_6_Gender.Enabled = false; + this.CB_Pokemon_6_Gender.FormattingEnabled = true; + this.CB_Pokemon_6_Gender.Location = new System.Drawing.Point(413, 68); + this.CB_Pokemon_6_Gender.Name = "CB_Pokemon_6_Gender"; + this.CB_Pokemon_6_Gender.Size = new System.Drawing.Size(136, 21); + this.CB_Pokemon_6_Gender.TabIndex = 64; + this.CB_Pokemon_6_Gender.SelectedIndexChanged += new System.EventHandler(this.ChangeTeam); + // + // L_Pokemon_6_Ability + // + this.L_Pokemon_6_Ability.AutoSize = true; + this.L_Pokemon_6_Ability.Location = new System.Drawing.Point(374, 44); + this.L_Pokemon_6_Ability.Name = "L_Pokemon_6_Ability"; + this.L_Pokemon_6_Ability.Size = new System.Drawing.Size(37, 13); + this.L_Pokemon_6_Ability.TabIndex = 63; + this.L_Pokemon_6_Ability.Text = "Ability:"; + // + // CB_Pokemon_6_Ability + // + this.CB_Pokemon_6_Ability.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_6_Ability.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_6_Ability.Enabled = false; + this.CB_Pokemon_6_Ability.FormattingEnabled = true; + this.CB_Pokemon_6_Ability.Location = new System.Drawing.Point(413, 41); + this.CB_Pokemon_6_Ability.Name = "CB_Pokemon_6_Ability"; + this.CB_Pokemon_6_Ability.Size = new System.Drawing.Size(136, 21); + this.CB_Pokemon_6_Ability.TabIndex = 62; + // + // L_Pokemon_6_Form + // + this.L_Pokemon_6_Form.AutoSize = true; + this.L_Pokemon_6_Form.Location = new System.Drawing.Point(29, 44); + this.L_Pokemon_6_Form.Name = "L_Pokemon_6_Form"; + this.L_Pokemon_6_Form.Size = new System.Drawing.Size(33, 13); + this.L_Pokemon_6_Form.TabIndex = 59; + this.L_Pokemon_6_Form.Text = "Form:"; + // + // CB_Pokemon_6_Form + // + this.CB_Pokemon_6_Form.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_6_Form.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_6_Form.Enabled = false; + this.CB_Pokemon_6_Form.FormattingEnabled = true; + this.CB_Pokemon_6_Form.Location = new System.Drawing.Point(64, 41); + this.CB_Pokemon_6_Form.Name = "CB_Pokemon_6_Form"; + this.CB_Pokemon_6_Form.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_6_Form.TabIndex = 58; + this.CB_Pokemon_6_Form.SelectedIndexChanged += new System.EventHandler(this.RefreshFormAbility); + // + // L_Pokemon_6_IVs + // + this.L_Pokemon_6_IVs.AutoSize = true; + this.L_Pokemon_6_IVs.Location = new System.Drawing.Point(386, 17); + this.L_Pokemon_6_IVs.Name = "L_Pokemon_6_IVs"; + this.L_Pokemon_6_IVs.Size = new System.Drawing.Size(25, 13); + this.L_Pokemon_6_IVs.TabIndex = 38; + this.L_Pokemon_6_IVs.Text = "IVs:"; + // + // CB_Pokemon_6_IVs + // + this.CB_Pokemon_6_IVs.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_6_IVs.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_6_IVs.Enabled = false; + this.CB_Pokemon_6_IVs.FormattingEnabled = true; + this.CB_Pokemon_6_IVs.Location = new System.Drawing.Point(413, 14); + this.CB_Pokemon_6_IVs.Name = "CB_Pokemon_6_IVs"; + this.CB_Pokemon_6_IVs.Size = new System.Drawing.Size(136, 21); + this.CB_Pokemon_6_IVs.TabIndex = 37; + // + // L_Pokemon_6_Move_4 + // + this.L_Pokemon_6_Move_4.AutoSize = true; + this.L_Pokemon_6_Move_4.Location = new System.Drawing.Point(192, 98); + this.L_Pokemon_6_Move_4.Name = "L_Pokemon_6_Move_4"; + this.L_Pokemon_6_Move_4.Size = new System.Drawing.Size(46, 13); + this.L_Pokemon_6_Move_4.TabIndex = 34; + this.L_Pokemon_6_Move_4.Text = "Move 4:"; + // + // CB_Pokemon_6_Move_4 + // + this.CB_Pokemon_6_Move_4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_6_Move_4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_6_Move_4.Enabled = false; + this.CB_Pokemon_6_Move_4.FormattingEnabled = true; + this.CB_Pokemon_6_Move_4.Location = new System.Drawing.Point(241, 95); + this.CB_Pokemon_6_Move_4.Name = "CB_Pokemon_6_Move_4"; + this.CB_Pokemon_6_Move_4.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_6_Move_4.TabIndex = 33; + // + // L_Pokemon_6_Move_3 + // + this.L_Pokemon_6_Move_3.AutoSize = true; + this.L_Pokemon_6_Move_3.Location = new System.Drawing.Point(192, 71); + this.L_Pokemon_6_Move_3.Name = "L_Pokemon_6_Move_3"; + this.L_Pokemon_6_Move_3.Size = new System.Drawing.Size(46, 13); + this.L_Pokemon_6_Move_3.TabIndex = 32; + this.L_Pokemon_6_Move_3.Text = "Move 3:"; + // + // CB_Pokemon_6_Move_3 + // + this.CB_Pokemon_6_Move_3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_6_Move_3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_6_Move_3.Enabled = false; + this.CB_Pokemon_6_Move_3.FormattingEnabled = true; + this.CB_Pokemon_6_Move_3.Location = new System.Drawing.Point(241, 68); + this.CB_Pokemon_6_Move_3.Name = "CB_Pokemon_6_Move_3"; + this.CB_Pokemon_6_Move_3.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_6_Move_3.TabIndex = 31; + // + // L_Pokemon_6_Move_2 + // + this.L_Pokemon_6_Move_2.AutoSize = true; + this.L_Pokemon_6_Move_2.Location = new System.Drawing.Point(192, 44); + this.L_Pokemon_6_Move_2.Name = "L_Pokemon_6_Move_2"; + this.L_Pokemon_6_Move_2.Size = new System.Drawing.Size(46, 13); + this.L_Pokemon_6_Move_2.TabIndex = 30; + this.L_Pokemon_6_Move_2.Text = "Move 2:"; + // + // CB_Pokemon_6_Move_2 + // + this.CB_Pokemon_6_Move_2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_6_Move_2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_6_Move_2.Enabled = false; + this.CB_Pokemon_6_Move_2.FormattingEnabled = true; + this.CB_Pokemon_6_Move_2.Location = new System.Drawing.Point(241, 41); + this.CB_Pokemon_6_Move_2.Name = "CB_Pokemon_6_Move_2"; + this.CB_Pokemon_6_Move_2.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_6_Move_2.TabIndex = 29; + // + // L_Pokemon_6_Move_1 + // + this.L_Pokemon_6_Move_1.AutoSize = true; + this.L_Pokemon_6_Move_1.Location = new System.Drawing.Point(192, 17); + this.L_Pokemon_6_Move_1.Name = "L_Pokemon_6_Move_1"; + this.L_Pokemon_6_Move_1.Size = new System.Drawing.Size(46, 13); + this.L_Pokemon_6_Move_1.TabIndex = 28; + this.L_Pokemon_6_Move_1.Text = "Move 1:"; + // + // CB_Pokemon_6_Move_1 + // + this.CB_Pokemon_6_Move_1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_6_Move_1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_6_Move_1.Enabled = false; + this.CB_Pokemon_6_Move_1.FormattingEnabled = true; + this.CB_Pokemon_6_Move_1.Location = new System.Drawing.Point(241, 14); + this.CB_Pokemon_6_Move_1.Name = "CB_Pokemon_6_Move_1"; + this.CB_Pokemon_6_Move_1.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_6_Move_1.TabIndex = 27; + // + // L_Pokemon_6_Item + // + this.L_Pokemon_6_Item.AutoSize = true; + this.L_Pokemon_6_Item.Location = new System.Drawing.Point(32, 98); + this.L_Pokemon_6_Item.Name = "L_Pokemon_6_Item"; + this.L_Pokemon_6_Item.Size = new System.Drawing.Size(30, 13); + this.L_Pokemon_6_Item.TabIndex = 26; + this.L_Pokemon_6_Item.Text = "Item:"; + // + // CB_Pokemon_6_Item + // + this.CB_Pokemon_6_Item.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_6_Item.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_6_Item.Enabled = false; + this.CB_Pokemon_6_Item.FormattingEnabled = true; + this.CB_Pokemon_6_Item.Location = new System.Drawing.Point(64, 95); + this.CB_Pokemon_6_Item.Name = "CB_Pokemon_6_Item"; + this.CB_Pokemon_6_Item.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_6_Item.TabIndex = 25; + this.CB_Pokemon_6_Item.SelectedIndexChanged += new System.EventHandler(this.ChangeTeam); + // + // L_Pokemon_6_Level + // + this.L_Pokemon_6_Level.AutoSize = true; + this.L_Pokemon_6_Level.Location = new System.Drawing.Point(26, 71); + this.L_Pokemon_6_Level.Name = "L_Pokemon_6_Level"; + this.L_Pokemon_6_Level.Size = new System.Drawing.Size(36, 13); + this.L_Pokemon_6_Level.TabIndex = 24; + this.L_Pokemon_6_Level.Text = "Level:"; + // + // CB_Pokemon_6_Level + // + this.CB_Pokemon_6_Level.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_6_Level.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_6_Level.Enabled = false; + this.CB_Pokemon_6_Level.FormattingEnabled = true; + this.CB_Pokemon_6_Level.Location = new System.Drawing.Point(64, 68); + this.CB_Pokemon_6_Level.Name = "CB_Pokemon_6_Level"; + this.CB_Pokemon_6_Level.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_6_Level.TabIndex = 23; + // + // L_Pokemon_6_Pokemon + // + this.L_Pokemon_6_Pokemon.AutoSize = true; + this.L_Pokemon_6_Pokemon.Location = new System.Drawing.Point(7, 17); + this.L_Pokemon_6_Pokemon.Name = "L_Pokemon_6_Pokemon"; + this.L_Pokemon_6_Pokemon.Size = new System.Drawing.Size(55, 13); + this.L_Pokemon_6_Pokemon.TabIndex = 22; + this.L_Pokemon_6_Pokemon.Text = "Pokémon:"; + // + // CB_Pokemon_6_Pokemon + // + this.CB_Pokemon_6_Pokemon.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon_6_Pokemon.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon_6_Pokemon.Enabled = false; + this.CB_Pokemon_6_Pokemon.FormattingEnabled = true; + this.CB_Pokemon_6_Pokemon.Location = new System.Drawing.Point(64, 14); + this.CB_Pokemon_6_Pokemon.Name = "CB_Pokemon_6_Pokemon"; + this.CB_Pokemon_6_Pokemon.Size = new System.Drawing.Size(121, 21); + this.CB_Pokemon_6_Pokemon.TabIndex = 21; + this.CB_Pokemon_6_Pokemon.SelectedIndexChanged += new System.EventHandler(this.RefreshSpeciesAbility); + // + // B_Randomize + // + this.B_Randomize.Location = new System.Drawing.Point(384, 4); + this.B_Randomize.Name = "B_Randomize"; + this.B_Randomize.Size = new System.Drawing.Size(93, 23); + this.B_Randomize.TabIndex = 68; + this.B_Randomize.Text = "Randomize All"; + this.B_Randomize.UseVisualStyleBackColor = true; + this.B_Randomize.Click += new System.EventHandler(this.B_Randomize_Click); + // + // TB_Text1 + // + this.TB_Text1.Location = new System.Drawing.Point(66, 256); + this.TB_Text1.Name = "TB_Text1"; + this.TB_Text1.Size = new System.Drawing.Size(511, 20); + this.TB_Text1.TabIndex = 69; + // + // L_Text1 + // + this.L_Text1.Location = new System.Drawing.Point(-6, 258); + this.L_Text1.Name = "L_Text1"; + this.L_Text1.Size = new System.Drawing.Size(66, 15); + this.L_Text1.TabIndex = 425; + this.L_Text1.Text = "Text1:"; + this.L_Text1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // PB_Team6 + // + this.PB_Team6.Location = new System.Drawing.Point(496, 190); + this.PB_Team6.Name = "PB_Team6"; + this.PB_Team6.Size = new System.Drawing.Size(80, 60); + this.PB_Team6.TabIndex = 432; + this.PB_Team6.TabStop = false; + this.PB_Team6.Click += new System.EventHandler(this.GotoParty); + // + // PB_Team5 + // + this.PB_Team5.Location = new System.Drawing.Point(410, 190); + this.PB_Team5.Name = "PB_Team5"; + this.PB_Team5.Size = new System.Drawing.Size(80, 60); + this.PB_Team5.TabIndex = 433; + this.PB_Team5.TabStop = false; + this.PB_Team5.Click += new System.EventHandler(this.GotoParty); + // + // PB_Team4 + // + this.PB_Team4.Location = new System.Drawing.Point(324, 190); + this.PB_Team4.Name = "PB_Team4"; + this.PB_Team4.Size = new System.Drawing.Size(80, 60); + this.PB_Team4.TabIndex = 434; + this.PB_Team4.TabStop = false; + this.PB_Team4.Click += new System.EventHandler(this.GotoParty); + // + // PB_Team3 + // + this.PB_Team3.Location = new System.Drawing.Point(238, 190); + this.PB_Team3.Name = "PB_Team3"; + this.PB_Team3.Size = new System.Drawing.Size(80, 60); + this.PB_Team3.TabIndex = 435; + this.PB_Team3.TabStop = false; + this.PB_Team3.Click += new System.EventHandler(this.GotoParty); + // + // PB_Team2 + // + this.PB_Team2.Location = new System.Drawing.Point(152, 190); + this.PB_Team2.Name = "PB_Team2"; + this.PB_Team2.Size = new System.Drawing.Size(80, 60); + this.PB_Team2.TabIndex = 436; + this.PB_Team2.TabStop = false; + this.PB_Team2.Click += new System.EventHandler(this.GotoParty); + // + // PB_Team1 + // + this.PB_Team1.Location = new System.Drawing.Point(66, 190); + this.PB_Team1.Name = "PB_Team1"; + this.PB_Team1.Size = new System.Drawing.Size(80, 60); + this.PB_Team1.TabIndex = 437; + this.PB_Team1.TabStop = false; + this.PB_Team1.Click += new System.EventHandler(this.GotoParty); + // + // label4 + // + this.label4.Location = new System.Drawing.Point(-6, 213); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(66, 15); + this.label4.TabIndex = 438; + this.label4.Text = "Team:"; + this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_Text2 + // + this.L_Text2.Location = new System.Drawing.Point(-6, 284); + this.L_Text2.Name = "L_Text2"; + this.L_Text2.Size = new System.Drawing.Size(66, 15); + this.L_Text2.TabIndex = 440; + this.L_Text2.Text = "Text2:"; + this.L_Text2.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // TB_Text2 + // + this.TB_Text2.Location = new System.Drawing.Point(66, 282); + this.TB_Text2.Name = "TB_Text2"; + this.TB_Text2.Size = new System.Drawing.Size(511, 20); + this.TB_Text2.TabIndex = 439; + // + // RSTE + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(584, 256); + this.Controls.Add(this.L_Text2); + this.Controls.Add(this.TB_Text2); + this.Controls.Add(this.label4); + this.Controls.Add(this.PB_Team1); + this.Controls.Add(this.PB_Team2); + this.Controls.Add(this.PB_Team3); + this.Controls.Add(this.PB_Team4); + this.Controls.Add(this.PB_Team5); + this.Controls.Add(this.PB_Team6); + this.Controls.Add(this.L_Text1); + this.Controls.Add(this.TB_Text1); + this.Controls.Add(this.B_Randomize); + this.Controls.Add(this.B_Dump); + this.Controls.Add(this.L_TrainerID); + this.Controls.Add(this.CB_TrainerID); + this.Controls.Add(this.tabControl1); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.MaximizeBox = false; + this.Name = "RSTE"; + this.Text = "Trainer Editor"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.IsFormClosing); + this.tabControl1.ResumeLayout(false); + this.tabPage1.ResumeLayout(false); + this.tabPage1.PerformLayout(); + this.tabPage2.ResumeLayout(false); + this.tabPage2.PerformLayout(); + this.tabPage3.ResumeLayout(false); + this.tabPage3.PerformLayout(); + this.tabPage4.ResumeLayout(false); + this.tabPage4.PerformLayout(); + this.tabPage5.ResumeLayout(false); + this.tabPage5.PerformLayout(); + this.tabPage6.ResumeLayout(false); + this.tabPage6.PerformLayout(); + this.tabPage7.ResumeLayout(false); + this.tabPage7.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.PB_Team6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_Team5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_Team4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_Team3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_Team2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_Team1)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button B_Dump; + private System.Windows.Forms.Label L_TrainerID; + private System.Windows.Forms.ComboBox CB_TrainerID; + private System.Windows.Forms.TabControl tabControl1; + private System.Windows.Forms.TabPage tabPage1; + private System.Windows.Forms.CheckBox checkBox_Healer; + private System.Windows.Forms.Label L_TPrize; + private System.Windows.Forms.ComboBox CB_Prize; + private System.Windows.Forms.Label L_AI; + private System.Windows.Forms.ComboBox CB_AI; + private System.Windows.Forms.Label L_Money; + private System.Windows.Forms.ComboBox CB_Money; + private System.Windows.Forms.Label L_Battle_Type; + private System.Windows.Forms.ComboBox CB_Battle_Type; + private System.Windows.Forms.Label L_Trainer_Class; + private System.Windows.Forms.ComboBox CB_Trainer_Class; + private System.Windows.Forms.CheckBox checkBox_Moves; + private System.Windows.Forms.CheckBox checkBox_Item; + private System.Windows.Forms.Label L_Item_4; + private System.Windows.Forms.ComboBox CB_Item_4; + private System.Windows.Forms.Label L_Item_3; + private System.Windows.Forms.ComboBox CB_Item_3; + private System.Windows.Forms.Label L_Item_2; + private System.Windows.Forms.ComboBox CB_Item_2; + private System.Windows.Forms.Label L_Item_1; + private System.Windows.Forms.ComboBox CB_Item_1; + private System.Windows.Forms.Label L_numPokemon; + private System.Windows.Forms.ComboBox CB_numPokemon; + private System.Windows.Forms.TabPage tabPage2; + private System.Windows.Forms.Label L_Pokemon_1_Form; + private System.Windows.Forms.ComboBox CB_Pokemon_1_Ability; + private System.Windows.Forms.Label L_Pokemon_1_Gender; + private System.Windows.Forms.ComboBox CB_Pokemon_1_Gender; + private System.Windows.Forms.Label L_Pokemon_1_Ability; + private System.Windows.Forms.ComboBox CB_Pokemon_1_Form; + private System.Windows.Forms.Label L_Pokemon_1_IVs; + private System.Windows.Forms.ComboBox CB_Pokemon_1_IVs; + private System.Windows.Forms.Label L_Pokemon_1_Move_4; + private System.Windows.Forms.ComboBox CB_Pokemon_1_Move_4; + private System.Windows.Forms.Label L_Pokemon_1_Move_3; + private System.Windows.Forms.ComboBox CB_Pokemon_1_Move_3; + private System.Windows.Forms.Label L_Pokemon_1_Move_2; + private System.Windows.Forms.ComboBox CB_Pokemon_1_Move_2; + private System.Windows.Forms.Label L_Pokemon_1_Move_1; + private System.Windows.Forms.ComboBox CB_Pokemon_1_Move_1; + private System.Windows.Forms.Label L_Pokemon_1_Item; + private System.Windows.Forms.ComboBox CB_Pokemon_1_Item; + private System.Windows.Forms.Label L_Pokemon_1_Level; + private System.Windows.Forms.ComboBox CB_Pokemon_1_Level; + private System.Windows.Forms.Label L_Pokemon_1_Pokemon; + private System.Windows.Forms.ComboBox CB_Pokemon_1_Pokemon; + private System.Windows.Forms.TabPage tabPage3; + private System.Windows.Forms.Label L_Pokemon_2_Gender; + private System.Windows.Forms.ComboBox CB_Pokemon_2_Gender; + private System.Windows.Forms.Label L_Pokemon_2_Ability; + private System.Windows.Forms.ComboBox CB_Pokemon_2_Ability; + private System.Windows.Forms.Label L_Pokemon_2_Form; + private System.Windows.Forms.ComboBox CB_Pokemon_2_Form; + private System.Windows.Forms.Label L_Pokemon_2_IVs; + private System.Windows.Forms.ComboBox CB_Pokemon_2_IVs; + private System.Windows.Forms.Label L_Pokemon_2_Move_4; + private System.Windows.Forms.ComboBox CB_Pokemon_2_Move_4; + private System.Windows.Forms.Label L_Pokemon_2_Move_3; + private System.Windows.Forms.ComboBox CB_Pokemon_2_Move_3; + private System.Windows.Forms.Label L_Pokemon_2_Move_2; + private System.Windows.Forms.ComboBox CB_Pokemon_2_Move_2; + private System.Windows.Forms.Label L_Pokemon_2_Move_1; + private System.Windows.Forms.ComboBox CB_Pokemon_2_Move_1; + private System.Windows.Forms.Label L_Pokemon_2_Item; + private System.Windows.Forms.ComboBox CB_Pokemon_2_Item; + private System.Windows.Forms.Label L_CB_Pokemon_2_Level; + private System.Windows.Forms.ComboBox CB_Pokemon_2_Level; + private System.Windows.Forms.Label L_Pokemon_2_Pokemon; + private System.Windows.Forms.ComboBox CB_Pokemon_2_Pokemon; + private System.Windows.Forms.TabPage tabPage4; + private System.Windows.Forms.Label L_Pokemon_3_Gender; + private System.Windows.Forms.ComboBox CB_Pokemon_3_Gender; + private System.Windows.Forms.Label L_Pokemon_3_Ability; + private System.Windows.Forms.ComboBox CB_Pokemon_3_Ability; + private System.Windows.Forms.Label L_Pokemon_3_Form; + private System.Windows.Forms.ComboBox CB_Pokemon_3_Form; + private System.Windows.Forms.Label L_Pokemon_3_IVs; + private System.Windows.Forms.ComboBox CB_Pokemon_3_IVs; + private System.Windows.Forms.Label L_Pokemon_3_Move_4; + private System.Windows.Forms.ComboBox CB_Pokemon_3_Move_4; + private System.Windows.Forms.Label L_Pokemon_3_Move_3; + private System.Windows.Forms.ComboBox CB_Pokemon_3_Move_3; + private System.Windows.Forms.Label L_Pokemon_3_Move_2; + private System.Windows.Forms.ComboBox CB_Pokemon_3_Move_2; + private System.Windows.Forms.Label L_Pokemon_3_Move_1; + private System.Windows.Forms.ComboBox CB_Pokemon_3_Move_1; + private System.Windows.Forms.Label L_Pokemon_3_Item; + private System.Windows.Forms.ComboBox CB_Pokemon_3_Item; + private System.Windows.Forms.Label L_Pokemon_3_Level; + private System.Windows.Forms.ComboBox CB_Pokemon_3_Level; + private System.Windows.Forms.Label L_Pokemon_3_Pokemon; + private System.Windows.Forms.ComboBox CB_Pokemon_3_Pokemon; + private System.Windows.Forms.TabPage tabPage5; + private System.Windows.Forms.Label L_Pokemon_4_Gender; + private System.Windows.Forms.ComboBox CB_Pokemon_4_Gender; + private System.Windows.Forms.Label L_Pokemon_4_Ability; + private System.Windows.Forms.ComboBox CB_Pokemon_4_Ability; + private System.Windows.Forms.Label L_Pokemon_4_Form; + private System.Windows.Forms.ComboBox CB_Pokemon_4_Form; + private System.Windows.Forms.Label L_Pokemon_4_IVs; + private System.Windows.Forms.ComboBox CB_Pokemon_4_IVs; + private System.Windows.Forms.Label L_Pokemon_4_Move_4; + private System.Windows.Forms.ComboBox CB_Pokemon_4_Move_4; + private System.Windows.Forms.Label L_Pokemon_4_Move_3; + private System.Windows.Forms.ComboBox CB_Pokemon_4_Move_3; + private System.Windows.Forms.Label L_Pokemon_4_Move_2; + private System.Windows.Forms.ComboBox CB_Pokemon_4_Move_2; + private System.Windows.Forms.Label L_Pokemon_4_Move_1; + private System.Windows.Forms.ComboBox CB_Pokemon_4_Move_1; + private System.Windows.Forms.Label L_CB_Pokemon_4_Item; + private System.Windows.Forms.ComboBox CB_Pokemon_4_Item; + private System.Windows.Forms.Label L_Pokemon_4_Level; + private System.Windows.Forms.ComboBox CB_Pokemon_4_Level; + private System.Windows.Forms.Label L_Pokemon_4_Pokemon; + private System.Windows.Forms.ComboBox CB_Pokemon_4_Pokemon; + private System.Windows.Forms.TabPage tabPage6; + private System.Windows.Forms.Label L_Pokemon_5_Gender; + private System.Windows.Forms.ComboBox CB_Pokemon_5_Gender; + private System.Windows.Forms.Label L_Pokemon_5_Ability; + private System.Windows.Forms.ComboBox CB_Pokemon_5_Ability; + private System.Windows.Forms.Label L_Pokemon_5_Form; + private System.Windows.Forms.ComboBox CB_Pokemon_5_Form; + private System.Windows.Forms.Label L_Pokemon_5_IVs; + private System.Windows.Forms.ComboBox CB_Pokemon_5_IVs; + private System.Windows.Forms.Label L_Pokemon_5_Move_4; + private System.Windows.Forms.ComboBox CB_Pokemon_5_Move_4; + private System.Windows.Forms.Label L_Pokemon_5_Move_3; + private System.Windows.Forms.ComboBox CB_Pokemon_5_Move_3; + private System.Windows.Forms.Label L_Pokemon_5_Move_2; + private System.Windows.Forms.ComboBox CB_Pokemon_5_Move_2; + private System.Windows.Forms.Label L_Pokemon_5_Move_1; + private System.Windows.Forms.ComboBox CB_Pokemon_5_Move_1; + private System.Windows.Forms.Label L_Pokemon_5_Item; + private System.Windows.Forms.ComboBox CB_Pokemon_5_Item; + private System.Windows.Forms.Label L_Pokemon_5_Level; + private System.Windows.Forms.ComboBox CB_Pokemon_5_Level; + private System.Windows.Forms.Label L_Pokemon_5_Pokemon; + private System.Windows.Forms.ComboBox CB_Pokemon_5_Pokemon; + private System.Windows.Forms.TabPage tabPage7; + private System.Windows.Forms.Label L_Pokemon_6_Gender; + private System.Windows.Forms.ComboBox CB_Pokemon_6_Gender; + private System.Windows.Forms.Label L_Pokemon_6_Ability; + private System.Windows.Forms.ComboBox CB_Pokemon_6_Ability; + private System.Windows.Forms.Label L_Pokemon_6_Form; + private System.Windows.Forms.ComboBox CB_Pokemon_6_Form; + private System.Windows.Forms.Label L_Pokemon_6_IVs; + private System.Windows.Forms.ComboBox CB_Pokemon_6_IVs; + private System.Windows.Forms.Label L_Pokemon_6_Move_4; + private System.Windows.Forms.ComboBox CB_Pokemon_6_Move_4; + private System.Windows.Forms.Label L_Pokemon_6_Move_3; + private System.Windows.Forms.ComboBox CB_Pokemon_6_Move_3; + private System.Windows.Forms.Label L_Pokemon_6_Move_2; + private System.Windows.Forms.ComboBox CB_Pokemon_6_Move_2; + private System.Windows.Forms.Label L_Pokemon_6_Move_1; + private System.Windows.Forms.ComboBox CB_Pokemon_6_Move_1; + private System.Windows.Forms.Label L_Pokemon_6_Item; + private System.Windows.Forms.ComboBox CB_Pokemon_6_Item; + private System.Windows.Forms.Label L_Pokemon_6_Level; + private System.Windows.Forms.ComboBox CB_Pokemon_6_Level; + private System.Windows.Forms.Label L_Pokemon_6_Pokemon; + private System.Windows.Forms.ComboBox CB_Pokemon_6_Pokemon; + private System.Windows.Forms.Button B_Randomize; + private System.Windows.Forms.TextBox TB_Text1; + private System.Windows.Forms.Label L_Text1; + private System.Windows.Forms.PictureBox PB_Team6; + private System.Windows.Forms.PictureBox PB_Team5; + private System.Windows.Forms.PictureBox PB_Team4; + private System.Windows.Forms.PictureBox PB_Team3; + private System.Windows.Forms.PictureBox PB_Team2; + private System.Windows.Forms.PictureBox PB_Team1; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label L_Text2; + private System.Windows.Forms.TextBox TB_Text2; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen6/RSTE.cs b/pk3DS.WinForms/Subforms/Gen6/RSTE.cs new file mode 100644 index 0000000000..0598099f28 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/RSTE.cs @@ -0,0 +1,977 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Media; +using System.Text; +using System.Windows.Forms; + +using pk3DS.Core; +using pk3DS.Core.Randomizers; +using pk3DS.Core.Structures; + +namespace pk3DS.WinForms; + +public partial class RSTE : Form +{ + private readonly LearnsetRandomizer learn = new(Main.Config, Main.Config.Learnsets); + + public RSTE(byte[][] trd, byte[][] trp) + { + //trclass = trc; + trdata = trd; + trpoke = trp; + Array.Resize(ref specieslist, Main.Config.MaxSpeciesID + 1); + MegaDictionary = GiftEditor6.GetMegaDictionary(Main.Config); + rModelRestricted = Main.Config.ORAS ? Legal.Model_AO : Legal.Model_XY; + rFinalEvo = Legal.FinalEvolutions_6; + + InitializeComponent(); + // String Fetching + #region Combo Box Arrays + trpk_pkm = [CB_Pokemon_1_Pokemon, CB_Pokemon_2_Pokemon, CB_Pokemon_3_Pokemon, CB_Pokemon_4_Pokemon, CB_Pokemon_5_Pokemon, CB_Pokemon_6_Pokemon, + ]; + trpk_lvl = [CB_Pokemon_1_Level, CB_Pokemon_2_Level, CB_Pokemon_3_Level, CB_Pokemon_4_Level, CB_Pokemon_5_Level, CB_Pokemon_6_Level, + ]; + trpk_item = [CB_Pokemon_1_Item, CB_Pokemon_2_Item, CB_Pokemon_3_Item, CB_Pokemon_4_Item, CB_Pokemon_5_Item, CB_Pokemon_6_Item, + ]; + trpk_abil = [CB_Pokemon_1_Ability, CB_Pokemon_2_Ability, CB_Pokemon_3_Ability, CB_Pokemon_4_Ability, CB_Pokemon_5_Ability, CB_Pokemon_6_Ability, + ]; + trpk_m1 = [CB_Pokemon_1_Move_1, CB_Pokemon_2_Move_1, CB_Pokemon_3_Move_1, CB_Pokemon_4_Move_1, CB_Pokemon_5_Move_1, CB_Pokemon_6_Move_1, + ]; + trpk_m2 = [CB_Pokemon_1_Move_2, CB_Pokemon_2_Move_2, CB_Pokemon_3_Move_2, CB_Pokemon_4_Move_2, CB_Pokemon_5_Move_2, CB_Pokemon_6_Move_2, + ]; + trpk_m3 = [CB_Pokemon_1_Move_3, CB_Pokemon_2_Move_3, CB_Pokemon_3_Move_3, CB_Pokemon_4_Move_3, CB_Pokemon_5_Move_3, CB_Pokemon_6_Move_3, + ]; + trpk_m4 = [CB_Pokemon_1_Move_4, CB_Pokemon_2_Move_4, CB_Pokemon_3_Move_4, CB_Pokemon_4_Move_4, CB_Pokemon_5_Move_4, CB_Pokemon_6_Move_4, + ]; + trpk_IV = [CB_Pokemon_1_IVs, CB_Pokemon_2_IVs, CB_Pokemon_3_IVs, CB_Pokemon_4_IVs, CB_Pokemon_5_IVs, CB_Pokemon_6_IVs, + ]; + trpk_form = [CB_Pokemon_1_Form, CB_Pokemon_2_Form, CB_Pokemon_3_Form, CB_Pokemon_4_Form, CB_Pokemon_5_Form, CB_Pokemon_6_Form, + ]; + trpk_gender = [CB_Pokemon_1_Gender, CB_Pokemon_2_Gender, CB_Pokemon_3_Gender, CB_Pokemon_4_Gender, CB_Pokemon_5_Gender, CB_Pokemon_6_Gender, + ]; + #endregion + string[] species = Main.Config.GetText(TextName.SpeciesNames); + AltForms = Main.Config.Personal.GetFormList(species, Main.Config.MaxSpeciesID); + Setup(); + } + + private readonly string[][] AltForms; + internal static uint Rand() => Util.Random32(); + private bool start = true; + private bool loading = true; + private int index = -1; + #region Global Variables + private readonly ComboBox[] trpk_pkm; + private readonly ComboBox[] trpk_lvl; + private readonly ComboBox[] trpk_item; + private readonly ComboBox[] trpk_abil; + private readonly ComboBox[] trpk_m1, trpk_m2, trpk_m3, trpk_m4; + private readonly ComboBox[] trpk_IV; + private readonly ComboBox[] trpk_form; + private readonly ComboBox[] trpk_gender; + + private PictureBox[] pba; + + // Top Level Functions + //private readonly byte[][] trclass; + private readonly byte[][] trdata; + private readonly byte[][] trpoke; + private readonly string[] abilitylist = Main.Config.GetText(TextName.AbilityNames); + private readonly string[] movelist = Main.Config.GetText(TextName.MoveNames); + private readonly string[] itemlist = Main.Config.GetText(TextName.ItemNames); + private readonly string[] specieslist = Main.Config.GetText(TextName.SpeciesNames); + private readonly string[] types = Main.Config.GetText(TextName.Types); + //private readonly string[] forms = Main.Config.GetText(TextName.Forms); + private string[] trName = Main.Config.GetText(TextName.TrainerNames); + private readonly string[] trClass = Main.Config.GetText(TextName.TrainerClasses); + //private readonly string[] trText = Main.Config.GetText(TextName.TrainerText); + #endregion + + // Ability Loading + private void RefreshFormAbility(object sender, EventArgs e) + { + int i = Array.IndexOf(trpk_form, sender as ComboBox); + RefreshPKMSlotAbility(i); + } + + private void RefreshSpeciesAbility(object sender, EventArgs e) + { + int i = Array.IndexOf(trpk_pkm, sender as ComboBox); + FormUtil.SetForms(trpk_pkm[i].SelectedIndex, trpk_form[i], AltForms); + RefreshPKMSlotAbility(i); + } + + private void RefreshPKMSlotAbility(int slot) + { + int previousAbility = trpk_abil[slot].SelectedIndex; + + int species = trpk_pkm[slot].SelectedIndex; + int formnum = trpk_form[slot].SelectedIndex; + + int entry = Main.Config.Personal.GetFormIndex(species, formnum); + + trpk_abil[slot].Items.Clear(); + trpk_abil[slot].Items.Add("Any (1 or 2)"); + trpk_abil[slot].Items.Add(abilitylist[Main.SpeciesStat[entry].Abilities[0]] + " (1)"); + trpk_abil[slot].Items.Add(abilitylist[Main.SpeciesStat[entry].Abilities[1]] + " (2)"); + trpk_abil[slot].Items.Add(abilitylist[Main.SpeciesStat[entry].Abilities[2]] + " (H)"); + + trpk_abil[slot].SelectedIndex = previousAbility; + + ShowTeams(slot); + } + // Set Loading + private void ChangeTrainerType(object sender, EventArgs e) + { + if (start || loading) return; + int pkm = CB_numPokemon.SelectedIndex; + { + for (int i = 0; i < 6; i++) // enable all if the pkm exists + { + trpk_pkm[i].Enabled = + trpk_gender[i].Enabled = + trpk_abil[i].Enabled = + trpk_IV[i].Enabled = + trpk_lvl[i].Enabled = i < pkm; + + trpk_item[i].Enabled = i < pkm && checkBox_Item.Checked; + + trpk_m1[i].Enabled = + trpk_m2[i].Enabled = + trpk_m3[i].Enabled = + trpk_m4[i].Enabled = i < pkm && checkBox_Moves.Checked; + + if (!trpk_pkm[i].Enabled) + { + trpk_pkm[i].SelectedIndex = + trpk_gender[i].SelectedIndex = + trpk_form[i].SelectedIndex = + trpk_abil[i].SelectedIndex = + trpk_IV[i].SelectedIndex = + trpk_lvl[i].SelectedIndex = 0; + } + if (!trpk_item[i].Enabled) + { + trpk_item[i].SelectedIndex = 0; + } + if (!trpk_m1[i].Enabled) + { + trpk_m1[i].SelectedIndex = + trpk_m2[i].SelectedIndex = + trpk_m3[i].SelectedIndex = + trpk_m4[i].SelectedIndex = 0; + } + } + for (int i = pkm; i < 6; i++) + trpk_form[i].Enabled = false; + } + } + + // Dumping + private string GetTRSummary() + { + string toret = "======" + Environment.NewLine; + + toret += CB_TrainerID.SelectedIndex + " - " + CB_Trainer_Class.Text[..^6] + " " + CB_TrainerID.Text[..^6] + Environment.NewLine; + toret += "======" + Environment.NewLine; + int pkm = CB_numPokemon.SelectedIndex; + toret += "Pokemon: " + pkm + Environment.NewLine; + for (int i = 0; i < pkm; i++) + { + toret += trpk_pkm[i].Text + " (Lv. " + trpk_lvl[i].SelectedIndex + ") "; + if (trpk_item[i].SelectedIndex > 0) + toret += "@" + trpk_item[i].Text; + if (trpk_abil[i].SelectedIndex != 0) + { + string abil = trpk_abil[i].Text; + abil = abil[..^4]; + toret += " (Ability: " + abil + ")"; + } + if (checkBox_Moves.Checked) + { + toret += " (Moves: "; + if (trpk_m1[i].SelectedIndex > 0) toret += trpk_m1[i].Text; + if (trpk_m2[i].SelectedIndex > 0) toret += " / " + trpk_m2[i].Text; + if (trpk_m3[i].SelectedIndex > 0) toret += " / " + trpk_m3[i].Text; + if (trpk_m4[i].SelectedIndex > 0) toret += " / " + trpk_m4[i].Text; + toret += ")"; + } + toret += " IVs: All " + (Convert.ToInt32(trpk_IV[i].SelectedIndex) / 8); + toret += Environment.NewLine; + } + toret += Environment.NewLine; + return toret; + } + + private bool dumping; + + private void B_Dump_Click(object sender, EventArgs e) + { + string toret = ""; dumping = true; + for (int i = 1; i < CB_TrainerID.Items.Count; i++) + { + CB_TrainerID.SelectedIndex = i; + string tdata = GetTRSummary(); + toret += tdata; + } + var sfd = new SaveFileDialog { FileName = "Battles.txt", Filter = "Text File|*.txt" }; + + SystemSounds.Asterisk.Play(); + if (sfd.ShowDialog() == DialogResult.OK) + { + string path = sfd.FileName; + File.WriteAllText(path, toret, Encoding.Unicode); + } + dumping = false; + } + + // Change Read/Write + private TrainerData6 tr; + + private void ChangeTrainerIndex(object sender, EventArgs e) + { + if (!dumping && index > -1) WriteFile(); + ReadFile(); // Load the new file. + } + + private void ReadFile() + { + if (start) return; + index = CB_TrainerID.SelectedIndex; + loading = true; + + if (index == 0) return; + + tabControl1.Enabled = true; + byte[] trd = trdata[index]; + byte[] trp = trpoke[index]; + tr = new TrainerData6(trd, trp, Main.Config.ORAS); + + // Load Trainer Data + CB_Trainer_Class.SelectedIndex = tr.Class; + checkBox_Item.Checked = tr.Item; + checkBox_Moves.Checked = tr.Moves; + CB_Battle_Type.SelectedIndex = tr.BattleType; + CB_numPokemon.SelectedIndex = tr.NumPokemon; + CB_Item_1.SelectedIndex = tr.Items[0]; + CB_Item_2.SelectedIndex = tr.Items[1]; + CB_Item_3.SelectedIndex = tr.Items[2]; + CB_Item_4.SelectedIndex = tr.Items[3]; + CB_AI.SelectedIndex = tr.AI; + checkBox_Healer.Checked = tr.Healer; + CB_Money.SelectedIndex = tr.Money; + CB_Prize.SelectedIndex = tr.Prize; + + // Load Pokemon Data + for (int i = 0; i < tr.NumPokemon; i++) + { + trpk_IV[i].SelectedIndex = tr.Team[i].IVs; + trpk_lvl[i].SelectedIndex = tr.Team[i].Level; + trpk_pkm[i].SelectedIndex = tr.Team[i].Species; + FormUtil.SetForms(tr.Team[i].Species, trpk_form[i], AltForms); + trpk_form[i].SelectedIndex = tr.Team[i].Form % trpk_form[i].Items.Count; // stupid X/Y buggy edge cases (220 / 222) + RefreshPKMSlotAbility(i); // Repopulate Abilities + + trpk_abil[i].SelectedIndex = tr.Team[i].Ability; + trpk_gender[i].SelectedIndex = tr.Team[i].Gender; + + trpk_item[i].SelectedIndex = tr.Team[i].Item; + trpk_m1[i].SelectedIndex = tr.Team[i].Moves[0]; + trpk_m2[i].SelectedIndex = tr.Team[i].Moves[1]; + trpk_m3[i].SelectedIndex = tr.Team[i].Moves[2]; + trpk_m4[i].SelectedIndex = tr.Team[i].Moves[3]; + } + loading = false; + ChangeTrainerType(null, null); // Prompt cleaning update of PKM fields + + // Refresh Team View + if (!loading) + { + for (int i = 0; i < 6; i++) ShowTeams(i); + // showText(); // Commented out for now, have to figure out how text is assigned. + } + } + + private void WriteFile() + { + // Set Trainer Data + tr.Moves = checkBox_Moves.Checked; + tr.Item = checkBox_Item.Checked; + tr.Class = CB_Trainer_Class.SelectedIndex; + tr.BattleType = (byte)CB_Battle_Type.SelectedIndex; + tr.NumPokemon = (byte)CB_numPokemon.SelectedIndex; + if (tr.NumPokemon == 0) + tr.NumPokemon = 1; // No empty teams! + tr.Items[0] = (ushort)CB_Item_1.SelectedIndex; + tr.Items[1] = (ushort)CB_Item_2.SelectedIndex; + tr.Items[2] = (ushort)CB_Item_3.SelectedIndex; + tr.Items[3] = (ushort)CB_Item_4.SelectedIndex; + tr.AI = (byte)CB_AI.SelectedIndex; + tr.Healer = checkBox_Healer.Checked; + tr.Money = (byte)CB_Money.SelectedIndex; + tr.Prize = (ushort)CB_Prize.SelectedIndex; + + // Set Pokemon Data + Array.Resize(ref tr.Team, tr.NumPokemon); + for (int i = 0; i < tr.NumPokemon; i++) + { + tr.Team[i] ??= new TrainerData6.Pokemon(new byte[100], false, false); + tr.Team[i].IVs = (byte)trpk_IV[i].SelectedIndex; + tr.Team[i].Ability = trpk_abil[i].SelectedIndex; + tr.Team[i].Gender = trpk_gender[i].SelectedIndex; + tr.Team[i].Level = (ushort)trpk_lvl[i].SelectedIndex; + tr.Team[i].Species = (ushort)trpk_pkm[i].SelectedIndex; + tr.Team[i].Form = (ushort)trpk_form[i].SelectedIndex; + tr.Team[i].Item = (ushort)trpk_item[i].SelectedIndex; + + tr.Team[i].Moves[0] = (ushort)trpk_m1[i].SelectedIndex; + tr.Team[i].Moves[1] = (ushort)trpk_m2[i].SelectedIndex; + tr.Team[i].Moves[2] = (ushort)trpk_m3[i].SelectedIndex; + tr.Team[i].Moves[3] = (ushort)trpk_m4[i].SelectedIndex; + } + trdata[index] = tr.Write(); + trpoke[index] = tr.WriteTeam(); + } + + // Image Displays + private void ChangeTeam(object sender, EventArgs e) + { + if (loading) return; + + int gendSlot = Array.IndexOf(trpk_gender, sender as ComboBox); + int itemSlot = Array.IndexOf(trpk_item, sender as ComboBox); + ShowTeams(gendSlot < 0 ? itemSlot : gendSlot); + } + + private void ShowTeams(int i) + { + if (tr == null) return; + if (i >= tr.Team.Length) { pba[i].Image = null; return; } + Bitmap rawImg = WinFormsUtil.GetSprite(tr.Team[i].Species, tr.Team[i].Form, tr.Team[i].Gender, tr.Team[i].Item, Main.Config); + pba[i].Image = WinFormsUtil.ScaleImage(rawImg, 2); + } + + //private void ShowText() + //{ + // if (index * 2 >= trText.Length) return; + // TB_Text1.Text = trText[index * 2]; + // TB_Text2.Text = trText[(index * 2) + 1]; + //} + + private void Setup() + { + start = true; + + Array.Resize(ref trName, trdata.Length); + CB_TrainerID.Items.Clear(); + for (int i = 0; i < trdata.Length; i++) + CB_TrainerID.Items.Add($"{trName[i] ?? "UNKNOWN"} - {i:000}"); + + CB_Trainer_Class.Items.Clear(); + for (int i = 0; i < trClass.Length; i++) + CB_Trainer_Class.Items.Add($"{trClass[i]} - {i:000}"); + + specieslist[0] = "---"; + abilitylist[0] = itemlist[0] = movelist[0] = ""; + pba = [PB_Team1, PB_Team2, PB_Team3, PB_Team4, PB_Team5, PB_Team6]; + + for (int i = 0; i < 6; i++) + { + trpk_pkm[i].Items.Clear(); + trpk_pkm[i].Items.AddRange(specieslist); + + trpk_m1[i].Items.Clear(); + trpk_m2[i].Items.Clear(); + trpk_m3[i].Items.Clear(); + trpk_m4[i].Items.Clear(); + foreach (string s in movelist) + { + trpk_m1[i].Items.Add(s); + trpk_m2[i].Items.Add(s); + trpk_m3[i].Items.Add(s); + trpk_m4[i].Items.Add(s); + } + + trpk_item[i].Items.Clear(); + trpk_item[i].Items.AddRange(itemlist); + + trpk_lvl[i].Items.Clear(); + for (int z = 0; z <= 100; z++) + trpk_lvl[i].Items.Add(z.ToString()); + + trpk_IV[i].Items.Clear(); + for (int z = 0; z < 256; z++) + trpk_IV[i].Items.Add(z.ToString()); + + trpk_gender[i].Items.Clear(); + trpk_gender[i].Items.Add("- / Genderless/Random"); + trpk_gender[i].Items.Add("♂ / Male"); + trpk_gender[i].Items.Add("♀ / Female"); + + trpk_form[i].Items.Add(""); + + trpk_pkm[i].SelectedIndex = 0; + } + CB_Item_1.Items.Clear(); + CB_Item_2.Items.Clear(); + CB_Item_3.Items.Clear(); + CB_Item_4.Items.Clear(); + CB_Prize.Items.Clear(); + foreach (string s in itemlist) + { + CB_Item_1.Items.Add(s); + CB_Item_2.Items.Add(s); + CB_Item_3.Items.Add(s); + CB_Item_4.Items.Add(s); + CB_Prize.Items.Add(s); + } + + CB_AI.Items.Clear(); CB_Money.Items.Clear(); + for (int i = 0; i < 256; i++) + { CB_AI.Items.Add(i.ToString()); CB_Money.Items.Add(i.ToString()); } + + CB_Battle_Type.Items.Clear(); + CB_Battle_Type.Items.Add("Single"); + CB_Battle_Type.Items.Add("Double"); + CB_Battle_Type.Items.Add("Triple"); + CB_Battle_Type.Items.Add("Rotation"); + if (Main.Config.ORAS) CB_Battle_Type.Items.Add("Horde"); + megaEvos = Main.Config.ORAS + ? [15, 18, 80, 208, 254, 260, 302, 319, 323, 334, 362, 373, 376, 380, 381, 428, 475, 531, 719, 3, 6, 9, 65, 94, 115, 127, 130, 142, 150, 181, 212, 214, 229, 248, 257, 282, 303, 306, 308, 310, 354, 359, 445, 448, 460, + ] + : [3, 6, 9, 65, 94, 115, 127, 130, 142, 150, 181, 212, 214, 229, 248, 257, 282, 303, 306, 308, 310, 354, 359, 445, 448, 460, + ]; + + CB_TrainerID.SelectedIndex = 1; + start = false; + ReadFile(); + } + + public static bool rPKM, rSmart, rLevel, rMove, rMetronome, rNoMove, rForceHighPower, rAbility, rDiffAI, + rDiffIV, rClass, rGift, rItem, rDoRand, rRandomMegas, rGymE4Only, + rTypeTheme, rTypeGymTrainers, rOnlySingles, rDMG, rSTAB, r6PKM, rForceFullyEvolved; + + public static bool rNoFixedDamage; + internal static bool[] rThemedClasses = []; + private static string[] rTags; + private static int[] megaEvos; + public static int[] rIgnoreClass, rEnsureMEvo; + public static int rDMGCount, rSTABCount; + private int[] mEvoTypes; + private static int[] rModelRestricted; + public static int[] rFinalEvo; + private string[] rImportant; + private readonly List Tags = []; + private readonly Dictionary TagTypes = []; + public static int[] sL; // Random Species List + public static decimal rGiftPercent, rLevelMultiplier, rMinPKM, rMaxPKM, rForceFullyEvolvedLevel, rForceHighPowerLevel; + + private void B_Randomize_Click(object sender, EventArgs e) + { + rPKM = rMove = rMetronome = rAbility = rDiffAI = rDiffIV = rClass = rGift = rItem = rDoRand = false; // init to false + rGiftPercent = 0; + rForceFullyEvolvedLevel = 0; + new TrainerRand().ShowDialog(); // Open Randomizer Config to get config vals + if (rDoRand) + Randomize(); + } + + private void Randomize() + { + List banned = [165, 621]; // Struggle, Hyperspace Fury + if (rNoFixedDamage) + banned.AddRange(MoveRandomizer.FixedDamageMoves); + var move = new MoveRandomizer(Main.Config) + { + rDMG = rDMG, + rSTAB = rSTAB, + rSTABCount = rSTABCount, + rDMGCount = rDMGCount, + BannedMoves = banned, + }; + + rImportant = new string[CB_TrainerID.Items.Count]; + rTags = Main.Config.ORAS ? GetTagsORAS() : GetTagsXY(); + mEvoTypes = GetMegaEvolvableTypes(); + List GymE4Types = []; + + // Fetch Move Stats for more difficult randomization + + if (rEnsureMEvo.Length > 0) + { + if (mEvoTypes.Length < 13 && rTypeTheme) + { + WinFormsUtil.Alert("There are insufficient Types with at least one mega evolution to Guarantee story Mega Evos while keeping Type theming.", + "Re-Randomize Personal or don't choose both options."); return; + } + GymE4Types.AddRange(mEvoTypes); + } + else + { + GymE4Types.AddRange(Enumerable.Range(0, types.Length).ToArray()); + } + + foreach (int t1 in rEnsureMEvo.Where(t1 => rTags[t1].Length != 0 && !TagTypes.ContainsKey(rTags[t1]))) + { + int t; + if (rTags[t1].Contains("GYM") || rTags[t1].Contains("ELITE") || rTags[t1].Contains("CHAMPION")) + { + t = GymE4Types[(int)(Rand() % GymE4Types.Count)]; + GymE4Types.Remove(t); + } + else + { + t = mEvoTypes[Rand() % mEvoTypes.Length]; + } + + TagTypes[rTags[t1]] = t; + } + foreach (string t1 in Tags) + { + if (!TagTypes.ContainsKey(t1) && t1.Length != 0) + { + int t; + if (t1.Contains("GYM") || t1.Contains("ELITE") || t1.Contains("CHAMPION")) + { + t = GymE4Types[(int)(Rand() % GymE4Types.Count)]; + GymE4Types.Remove(t); + } + else + { + t = (int)(Rand() % types.Length); + } + + TagTypes[t1] = t; + } + Console.WriteLine(t1 + ": " + types[TagTypes[t1]]); + } + + CB_TrainerID.SelectedIndex = 0; // fake a writeback + ushort[] itemvals = Main.Config.ORAS ? Legal.Pouch_Items_AO : Legal.Pouch_Items_XY; + itemvals = [.. itemvals, .. Legal.Pouch_Berry_XY]; + + for (int i = 1; i < CB_TrainerID.Items.Count; i++) + { + // Trainer Type/Mega Evo + int type = GetRandomType(i); + bool mevo = rEnsureMEvo.Contains(i); + bool isImportantClass = rImportant[i] != null && (rImportant[i].Contains("GYM") || rImportant[i].Contains("ELITE") || rImportant[i].Contains("CHAMPION")); + bool typerand = (rTypeTheme && !rGymE4Only) || (rTypeTheme && isImportantClass); + + rSpeciesRand.rType = typerand; + + byte[] trd = trdata[i]; + byte[] trp = trpoke[i]; + var t = new TrainerData6(trd, trp, Main.Config.ORAS) + { + Moves = rMove || (!rNoMove && checkBox_Moves.Checked), + Item = rItem || checkBox_Item.Checked, + }; + + SetMinMaxPKM(t); + SetFullParties(t, rImportant[i] == null); + RandomizeTrainerAIClass(t, trClass); + RandomizeTrainerPrizeItem(t); + RandomizeTeam(t, move, learn, itemvals, type, mevo, typerand); + + trdata[i] = t.Write(); + trpoke[i] = t.WriteTeam(); + } + CB_TrainerID.SelectedIndex = 1; + WinFormsUtil.Alert("Randomized all Trainers according to specification!", "Press the Dump to .TXT button to view the new Trainer information!"); + } + + private static void RandomizeTeam(TrainerData6 t, MoveRandomizer move, LearnsetRandomizer learn, ushort[] itemvals, int type, bool mevo, bool typerand) + { + int last = t.Team.Length - 1; + for (int p = 0; p < t.Team.Length; p++) + { + var pk = t.Team[p]; + int[] stones = null; + if (rPKM) + { + // randomize pokemon + int species; + if (typerand) + { + species = rSpeciesRand.GetRandomSpeciesType(pk.Species, type); + if (p == last && mevo) + { + int tries = 0; + do { stones = GetRandomMega(out species); } + while (Main.Config.Personal[species].Types.All(z => z != type) && tries++ < 100); + } + } + else if (p == last && mevo) + { + stones = GetRandomMega(out species); + } + else + { + species = rSpeciesRand.GetRandomSpecies(pk.Species); + } + + pk.Species = (ushort)species; + pk.Gender = 0; // Set Gender to Random + bool mega = rRandomMegas && !(mevo && p == last); // except if mega evolution is forced for the last slot + pk.Form = (ushort)Randomizer.GetRandomForme(pk.Species, mega, true, Main.SpeciesStat); + } + if (rLevel) + pk.Level = (ushort)Randomizer.GetModifiedLevel(pk.Level, rLevelMultiplier); + if (rAbility) + pk.Ability = (int)(1 + (Rand() % 3)); + if (rDiffIV) + pk.IVs = 255; + + if (mevo && p == last && stones != null) + pk.Item = (ushort)stones[Rand() % stones.Length]; + else if (rItem) + pk.Item = itemvals[Rand() % itemvals.Length]; + + if (rForceFullyEvolved && pk.Level >= rForceFullyEvolvedLevel && !rFinalEvo.Contains(pk.Species)) + { + static int randFinalEvo() => (int)(Util.Random32() % rFinalEvo.Length); + pk.Species = (ushort)rFinalEvo[randFinalEvo()]; + pk.Form = (ushort)Randomizer.GetRandomForme(pk.Species, rRandomMegas, true, Main.SpeciesStat); + } + + // random + if (rMove) + { + var pkMoves = move.GetRandomMoveset(pk.Species, 4); + for (int m = 0; m < 4; m++) + pk.Moves[m] = (ushort)pkMoves[m]; + } + + // levelup + if (rNoMove) + { + t.Moves = true; + var pkMoves = learn.GetCurrentMoves(pk.Species, pk.Form, pk.Level, 4); + for (int m = 0; m < 4; m++) + pk.Moves[m] = (ushort)pkMoves[m]; + } + + if (rMetronome) + { + t.Moves = true; + var pkMoves = new[] { 118, 0, 0, 0 }; + for (int m = 0; m < 4; m++) + pk.Moves[m] = (ushort)pkMoves[m]; + } + + // high-power attacks + if (rForceHighPower && pk.Level >= rForceHighPowerLevel) + { + var pkMoves = learn.GetHighPoweredMoves(pk.Species, pk.Form, 4); + for (int m = 0; m < 4; m++) + pk.Moves[m] = (ushort)pkMoves[m]; + } + } + } + + private static void SetMinMaxPKM(TrainerData6 t) + { + int lastPKM = Math.Max(t.NumPokemon - 1, 0); // 0,1-6 => 0-5 (never is 0) + var avgBST = (int)t.Team.Average(pk => Main.SpeciesStat[pk.Species].BST); + int avgLevel = (int)t.Team.Average(pk => pk.Level); + var pinfo = Main.SpeciesStat.OrderBy(pk => Math.Abs(avgBST - pk.BST)).First(); + int avgSpec = Array.IndexOf(Main.SpeciesStat, pinfo); + + // set minimum pkm, don't modify hordes + if (t.NumPokemon < rMinPKM && t.BattleType != 4) + { + t.NumPokemon = (byte)rMinPKM; + for (int f = lastPKM + 1; f < t.NumPokemon; f++) + { + Array.Resize(ref t.Team, (int)rMinPKM); + t.Team[f] = // clone last pkm, keeping an average level for all new pkm + new TrainerData6.Pokemon(t.Team[lastPKM].Write(t.Item, t.Moves), t.Item, t.Moves) + { + Species = (ushort)rSpeciesRand.GetRandomSpecies(avgSpec), + Level = (ushort)avgLevel, + }; + } + } + + // set maximum pkm, don't modify hordes + if (t.NumPokemon > rMaxPKM && t.BattleType != 4) + { + Array.Resize(ref t.Team, (int)rMaxPKM); + t.NumPokemon = (byte)rMaxPKM; + } + } + + private static void SetFullParties(TrainerData6 t, bool important) + { + int lastPKM = Math.Max(t.NumPokemon - 1, 0); // 0,1-6 => 0-5 (never is 0) + var avgBST = (int)t.Team.Average(pk => Main.SpeciesStat[pk.Species].BST); + int avgLevel = (int)t.Team.Average(pk => pk.Level); + var pinfo = Main.SpeciesStat.OrderBy(pk => Math.Abs(avgBST - pk.BST)).First(); + int avgSpec = Array.IndexOf(Main.SpeciesStat, pinfo); + + // 6 pkm for important trainers, skip the first rival battles + if (!r6PKM || important) + return; + + t.NumPokemon = 6; + for (int f = lastPKM + 1; f < t.NumPokemon; f++) + { + Array.Resize(ref t.Team, t.NumPokemon); + t.Team[f] = // clone last pkm, keeping an average level for all new pkm + new TrainerData6.Pokemon(t.Team[lastPKM].Write(t.Item, t.Moves), t.Item, t.Moves) + { + Species = (ushort)rSpeciesRand.GetRandomSpecies(avgSpec), + Level = (ushort)avgLevel, + }; + } + } + + private static void RandomizeTrainerAIClass(TrainerData6 t, string[] trClass) + { + if (rDiffAI) + t.AI |= 7; // Set first 3 bits, keep any other flag if present + + if (rClass && rModelRestricted.Contains(t.Class) && !rIgnoreClass.Contains(t.Class)) // shuffle classes with 3D models + { + int randClass() => (int)(Rand() % rModelRestricted.Length); + t.Class = rModelRestricted[randClass()]; + } + else + if ( + rClass // Classes selected to be randomized + && (!rOnlySingles || t.BattleType == 0) // Nonsingles only get changed if rOnlySingles + && !rIgnoreClass.Contains(t.Class) // Current class isn't a special class + ) + { + int randClass() => (int)(Rand() % trClass.Length); + int rv; do { rv = randClass(); } + while (rIgnoreClass.Contains(rv) || trClass[rv].StartsWith("[~") || (Main.Config.ORAS && rv is >= 0 and <= 63) || rv is >= 68 and <= 126); // don't allow disallowed classes + t.Class = rv; + } + } + + private static void RandomizeTrainerPrizeItem(TrainerData6 t) + { + if (rGift && Rand() % 100 < rGiftPercent) + { + ushort[] items; + uint rnd = Rand() % 10; + if (rnd < 2) // held item + items = Main.Config.ORAS ? Legal.Pouch_Items_AO : Legal.Pouch_Items_XY; + else if (rnd < 5) // medicine + items = Main.Config.ORAS ? Legal.Pouch_Medicine_AO : Legal.Pouch_Medicine_XY; + else // berry + items = Legal.Pouch_Berry_XY; + t.Prize = items[Rand() % items.Length]; + } + else if (rGift) + { + t.Prize = 0; + } + } + + private string[] GetTagsORAS() + { + string[] tags = Enumerable.Repeat("", trdata.Length).ToArray(); + ImportantTrainers = true; + + // Rival Battles + TagTrainer(tags, "RIVAL1", 289, 292, 295, 298, 527, 530, 674, 677, 699, 906); // Rival w/ Grass Starter + TagTrainer(tags, "RIVAL2", 290, 293, 296, 299, 528, 531, 675, 678, 700, 907); // Rival w/ Fire Starter + TagTrainer(tags, "RIVAL3", 291, 294, 297, 300, 529, 532, 676, 679, 701, 908); // Rival w/ Water Starter + + // Aqua Admins + TagTrainer(tags, "AQUA1", 178, 231, 266); // Archie + TagTrainer(tags, "AQUA2", 683, 684, 685, 686, 687); // Matt + TagTrainer(tags, "AQUA3", 688, 689, 690); // Shelly + + // Magma Admins + TagTrainer(tags, "MAGMA1", 235, 236, 271); // Maxie + TagTrainer(tags, "MAGMA2", 694, 695, 696, 697, 698); // Courtney + TagTrainer(tags, "MAGMA3", 691, 692, 693); // Tabitha + + // Gym Leaders + TagTrainer(tags, "GYM1", 561); // Roxanne + TagTrainer(tags, "GYM2", 563); // Brawly + TagTrainer(tags, "GYM3", 567); // Wattson + TagTrainer(tags, "GYM4", 569); // Flannery + TagTrainer(tags, "GYM5", 570); // Norman + TagTrainer(tags, "GYM6", 571); // Winona + TagTrainer(tags, "GYM7", 552); // Liza & Tate + TagTrainer(tags, "GYM8", 572, 943); // Wallace + + // Elite Four + TagTrainer(tags, "ELITE1", 553, 909); // Sidney + TagTrainer(tags, "ELITE2", 554, 910); // Phoebe + TagTrainer(tags, "ELITE3", 555, 911); // Glacia + TagTrainer(tags, "ELITE4", 556, 912); // Drake + TagTrainer(tags, "CHAMPION", 557, 680, 913, 942); // Champion Steven + + // Wally + TagTrainer(tags, "WALLY", 518, 583, 944, 945, 946, 947); + + // Zinnia + TagTrainer(tags, "LOREKEEPER", 713, 898); + + // Aarune + TagTrainer(tags, "EXPERT", 856, 857); + + ImportantTrainers = false; + TagTrainer(tags, "RIVAL1", 1, 4); // Rival w/ Grass Starter + TagTrainer(tags, "RIVAL2", 2, 5); // Rival w/ Fire Starter + TagTrainer(tags, "RIVAL3", 3, 6); // Rival w/ Water Starter + + // Gym Trainers (Tagged in order of appearance on Bulbapedia's lists) + if (rTypeGymTrainers) + { + TagTrainer(tags, "GYM1", 562, 22, 667); + TagTrainer(tags, "GYM2", 60, 56, 59); + TagTrainer(tags, "GYM3", 34, 568, 614, 35); + TagTrainer(tags, "GYM4", 81, 824, 83, 615, 823, 613, 85); + TagTrainer(tags, "GYM5", 63, 67, 64, 68, 65, 69, 66); + TagTrainer(tags, "GYM6", 115, 517, 516, 118, 730); + TagTrainer(tags, "GYM7", 157, 226, 320, 159, 225, 158); + TagTrainer(tags, "GYM8", 647, 342, 594, 646, 338, 339, 340, 341); + } + return tags; + } + + private string[] GetTagsXY() + { + string[] tags = Enumerable.Repeat("", trdata.Length).ToArray(); + ImportantTrainers = true; + + // Rival Battles + TagTrainer(tags, "RIVAL1", 130, 184, 329, 332, 335, 338, 341, 435, 519, 604, 575, 578, 581, 584, 587, 590, 593, 596, 599, 607); // Rival w/ Fire Starter + TagTrainer(tags, "RIVAL2", 131, 185, 330, 333, 336, 339, 342, 436, 520, 605, 576, 579, 582, 585, 588, 591, 594, 597, 600, 608); // Rival w/ Water Starter + TagTrainer(tags, "RIVAL3", 132, 186, 331, 334, 337, 340, 343, 437, 521, 606, 577, 580, 583, 586, 589, 592, 595, 598, 601, 609); // Rival w/ Grass Starter + + // Team Flare Admins + TagTrainer(tags, "FLAREBOSS", 303, 525, 526); // Lysandre + TagTrainer(tags, "FLARE1", 175, 344); // Aliana + TagTrainer(tags, "FLARE2", 350, 351); // Bryony + TagTrainer(tags, "FLARE3", 348, 349); // Celosia + TagTrainer(tags, "FLARE4", 346, 347); // Mable + TagTrainer(tags, "FLARE5", 345); // Xerosic + + // Gym Leaders + TagTrainer(tags, "GYM1", 6, 254, 262); // Viola + TagTrainer(tags, "GYM2", 76, 261, 279); // Grant + TagTrainer(tags, "GYM3", 21, 255, 263, 613); // Korrina + TagTrainer(tags, "GYM4", 22, 256, 264); // Ramos + TagTrainer(tags, "GYM5", 23, 257, 265); // Clemont + TagTrainer(tags, "GYM6", 24, 258, 266); // Valerie + TagTrainer(tags, "GYM7", 25, 259, 267); // Olympia + TagTrainer(tags, "GYM8", 26, 260, 268); // Wulfric + + // Elite Four + TagTrainer(tags, "ELITE1", 269, 273, 507); // Malva + TagTrainer(tags, "ELITE2", 271, 275); // Siebold + TagTrainer(tags, "ELITE3", 187, 272); // Wikstrom + TagTrainer(tags, "ELITE4", 270, 274); // Drasna + TagTrainer(tags, "CHAMPION", 276, 277); // Champion Diantha + + // Friends + TagTrainer(tags, "SHAUNA", 321, 322, 323); + TagTrainer(tags, "TREVOR", 325, 439); + TagTrainer(tags, "TIERNO", 324, 438, 573); + + // Professor + TagTrainer(tags, "PROFESSOR", 327, 328); + + // Suspicious Trainer ??? + TagTrainer(tags, "ESSENTIA", 503, 504, 505, 511, 512, 513, 514, 515); // Emma + + // AZ + TagTrainer(tags, "AZ", 602); + + // Battle Chatelaines + TagTrainer(tags, "CHATELAINE1", 559); // Nita + TagTrainer(tags, "CHATELAINE2", 560); // Evelyn + TagTrainer(tags, "CHATELAINE3", 561); // Dana + TagTrainer(tags, "CHATELAINE4", 562); // Morgan + + ImportantTrainers = false; + TagTrainer(tags, "SHAUNA", 137, 138, 139); + TagTrainer(tags, "GYM3", 188); + + // Gym Trainers (Tagged in order of appearance on Bulbapedia's lists) + if (rTypeGymTrainers) + { + TagTrainer(tags, "GYM1", 39, 40, 48); + TagTrainer(tags, "GYM2", 64, 63, 106, 105); + TagTrainer(tags, "GYM3", 83, 147, 84, 146); + TagTrainer(tags, "GYM4", 123, 121, 124, 122); + TagTrainer(tags, "GYM5", 461, 462, 463, 464, 465, 466, 28, 29, 30, 467, 468, 469); + TagTrainer(tags, "GYM6", 245, 250, 248, 243); + TagTrainer(tags, "GYM7", 170, 171, 172, 365, 366); + TagTrainer(tags, "GYM8", 169, 32, 168, 31); + } + return tags; + } + + private bool ImportantTrainers; + public static SpeciesRandomizer rSpeciesRand; + + // Theme Methods + private void TagTrainer(string[] trTags, string tag, params int[] ids) + { + foreach (int id in ids.Where(id => id < trTags.Length)) + trTags[id] = tag; + + if (!Tags.Contains(tag)) + Tags.Add(tag); + + if (!ImportantTrainers) return; + foreach (int id in ids) + rImportant[id] = tag; + } + + private static Dictionary MegaDictionary; + + private static int[] GetRandomMega(out int species) + { + int rnd = Util.Rand.Next(0, MegaDictionary.Count - 1); + species = MegaDictionary.Keys.ElementAt(rnd); + return MegaDictionary.Values.ElementAt(rnd); + } + + private int GetRandomType(int trainer) + { + if (rTags[trainer].Length != 0) + return TagTypes[rTags[trainer]]; + if (!rEnsureMEvo.Contains(trainer)) + return (int)(Rand() % types.Length); + return mEvoTypes[Rand() % mEvoTypes.Length]; + } + + private static int[] GetMegaEvolvableTypes() + { + List MEvoTypes = []; + foreach (int spec in megaEvos) + { + if (!MEvoTypes.Contains(Main.SpeciesStat[spec].Types[0])) + MEvoTypes.Add(Main.SpeciesStat[spec].Types[0]); + if (!MEvoTypes.Contains(Main.SpeciesStat[spec].Types[1])) + MEvoTypes.Add(Main.SpeciesStat[spec].Types[1]); + } + MEvoTypes.Sort(); + Console.WriteLine("There are " + MEvoTypes.Count + " Types capable of Mega Evolution."); + return [.. MEvoTypes]; + } + + private void IsFormClosing(object sender, FormClosingEventArgs e) + { + WriteFile(); + } + + private void GotoParty(object sender, EventArgs e) + { + // When sprite is clicked, jump to that Pokémon. + tabControl1.SelectedIndex = 1 + Array.IndexOf([PB_Team1, PB_Team2, PB_Team3, PB_Team4, PB_Team5, PB_Team6], sender as PictureBox); + } +} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/RSTE.resx b/pk3DS.WinForms/Subforms/Gen6/RSTE.resx similarity index 100% rename from pk3DS/Subforms/Gen6/RSTE.resx rename to pk3DS.WinForms/Subforms/Gen6/RSTE.resx diff --git a/pk3DS/Subforms/Gen6/RSWE.Designer.cs b/pk3DS.WinForms/Subforms/Gen6/RSWE.Designer.cs similarity index 69% rename from pk3DS/Subforms/Gen6/RSWE.Designer.cs rename to pk3DS.WinForms/Subforms/Gen6/RSWE.Designer.cs index 9f5ce482b2..3fe9429a33 100644 --- a/pk3DS/Subforms/Gen6/RSWE.Designer.cs +++ b/pk3DS.WinForms/Subforms/Gen6/RSWE.Designer.cs @@ -1,633 +1,633 @@ -namespace pk3DS +namespace pk3DS.WinForms; + +partial class RSWE { - partial class RSWE - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); + components.Dispose(); } + base.Dispose(disposing); + } - #region Windows Form Designer generated code + #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.CB_LocationID = new System.Windows.Forms.ComboBox(); - this.B_Save = new System.Windows.Forms.Button(); - this.L_Location = new System.Windows.Forms.Label(); - this.L_FormList = new System.Windows.Forms.Label(); - this.CB_FormeList = new System.Windows.Forms.ComboBox(); - this.TabPage_Horde = new System.Windows.Forms.TabPage(); - this.GB_Tweak = new System.Windows.Forms.GroupBox(); - this.CHK_MegaForm = new System.Windows.Forms.CheckBox(); - this.L_RandOpt = new System.Windows.Forms.Label(); - this.CHK_BST = new System.Windows.Forms.CheckBox(); - this.CHK_E = new System.Windows.Forms.CheckBox(); - this.CHK_L = new System.Windows.Forms.CheckBox(); - this.CHK_G6 = new System.Windows.Forms.CheckBox(); - this.CHK_G5 = new System.Windows.Forms.CheckBox(); - this.CHK_G4 = new System.Windows.Forms.CheckBox(); - this.CHK_G3 = new System.Windows.Forms.CheckBox(); - this.CHK_G2 = new System.Windows.Forms.CheckBox(); - this.CHK_G1 = new System.Windows.Forms.CheckBox(); - this.B_LevelPlus = new System.Windows.Forms.Button(); - this.NUD_LevelAmp = new System.Windows.Forms.NumericUpDown(); - this.CHK_Level = new System.Windows.Forms.CheckBox(); - this.L_HordeC_Max = new System.Windows.Forms.Label(); - this.L_HordeC_Min = new System.Windows.Forms.Label(); - this.L_HordeC_F = new System.Windows.Forms.Label(); - this.L_HordeC = new System.Windows.Forms.Label(); - this.NUP_HordeCMax5 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeCMin5 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeCForme5 = new System.Windows.Forms.NumericUpDown(); - this.CB_HordeC5 = new System.Windows.Forms.ComboBox(); - this.NUP_HordeCMax4 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeCMin4 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeCForme4 = new System.Windows.Forms.NumericUpDown(); - this.CB_HordeC4 = new System.Windows.Forms.ComboBox(); - this.NUP_HordeCMax3 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeCMin3 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeCForme3 = new System.Windows.Forms.NumericUpDown(); - this.CB_HordeC3 = new System.Windows.Forms.ComboBox(); - this.NUP_HordeCMax2 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeCMin2 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeCForme2 = new System.Windows.Forms.NumericUpDown(); - this.CB_HordeC2 = new System.Windows.Forms.ComboBox(); - this.NUP_HordeCMax1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeCMin1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeCForme1 = new System.Windows.Forms.NumericUpDown(); - this.CB_HordeC1 = new System.Windows.Forms.ComboBox(); - this.L_HordeB_Max = new System.Windows.Forms.Label(); - this.L_HordeA_Max = new System.Windows.Forms.Label(); - this.L_HordeB_Min = new System.Windows.Forms.Label(); - this.L_HordeA = new System.Windows.Forms.Label(); - this.L_HordeB_F = new System.Windows.Forms.Label(); - this.L_HordeA_Min = new System.Windows.Forms.Label(); - this.L_HordeB = new System.Windows.Forms.Label(); - this.NUP_HordeBMax5 = new System.Windows.Forms.NumericUpDown(); - this.CB_HordeA1 = new System.Windows.Forms.ComboBox(); - this.NUP_HordeBMin5 = new System.Windows.Forms.NumericUpDown(); - this.L_HordeA_F = new System.Windows.Forms.Label(); - this.NUP_HordeBForme5 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeAForme1 = new System.Windows.Forms.NumericUpDown(); - this.CB_HordeB5 = new System.Windows.Forms.ComboBox(); - this.NUP_HordeAMin1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeBMax4 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeAMax5 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeBMin4 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeAMax1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeBForme4 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeAMin5 = new System.Windows.Forms.NumericUpDown(); - this.CB_HordeB4 = new System.Windows.Forms.ComboBox(); - this.CB_HordeA2 = new System.Windows.Forms.ComboBox(); - this.NUP_HordeBMax3 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeAForme5 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeBMin3 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeAForme2 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeBForme3 = new System.Windows.Forms.NumericUpDown(); - this.CB_HordeA5 = new System.Windows.Forms.ComboBox(); - this.CB_HordeB3 = new System.Windows.Forms.ComboBox(); - this.NUP_HordeAMin2 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeBMax2 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeAMax4 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeBMin2 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeAMax2 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeBForme2 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeAMin4 = new System.Windows.Forms.NumericUpDown(); - this.CB_HordeB2 = new System.Windows.Forms.ComboBox(); - this.CB_HordeA3 = new System.Windows.Forms.ComboBox(); - this.NUP_HordeBMax1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeAForme4 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeBMin1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeAForme3 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeBForme1 = new System.Windows.Forms.NumericUpDown(); - this.CB_HordeA4 = new System.Windows.Forms.ComboBox(); - this.CB_HordeB1 = new System.Windows.Forms.ComboBox(); - this.NUP_HordeAMin3 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeAMax3 = new System.Windows.Forms.NumericUpDown(); - this.TabPage_Water = new System.Windows.Forms.TabPage(); - this.label116 = new System.Windows.Forms.Label(); - this.label117 = new System.Windows.Forms.Label(); - this.label118 = new System.Windows.Forms.Label(); - this.label119 = new System.Windows.Forms.Label(); - this.label120 = new System.Windows.Forms.Label(); - this.label103 = new System.Windows.Forms.Label(); - this.L_Super = new System.Windows.Forms.Label(); - this.label104 = new System.Windows.Forms.Label(); - this.CB_Super1 = new System.Windows.Forms.ComboBox(); - this.label105 = new System.Windows.Forms.Label(); - this.NUP_SuperForme1 = new System.Windows.Forms.NumericUpDown(); - this.L_Surf = new System.Windows.Forms.Label(); - this.CB_Surf1 = new System.Windows.Forms.ComboBox(); - this.NUP_SuperMin1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_SurfForme1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_SuperMax1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_SurfMin1 = new System.Windows.Forms.NumericUpDown(); - this.CB_Super2 = new System.Windows.Forms.ComboBox(); - this.NUP_SurfMax1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_SuperForme2 = new System.Windows.Forms.NumericUpDown(); - this.CB_Surf2 = new System.Windows.Forms.ComboBox(); - this.NUP_SuperMin2 = new System.Windows.Forms.NumericUpDown(); - this.NUP_SurfForme2 = new System.Windows.Forms.NumericUpDown(); - this.NUP_SuperMax2 = new System.Windows.Forms.NumericUpDown(); - this.NUP_SurfMin2 = new System.Windows.Forms.NumericUpDown(); - this.CB_Super3 = new System.Windows.Forms.ComboBox(); - this.NUP_SurfMax5 = new System.Windows.Forms.NumericUpDown(); - this.NUP_SuperForme3 = new System.Windows.Forms.NumericUpDown(); - this.NUP_SurfMax2 = new System.Windows.Forms.NumericUpDown(); - this.NUP_SuperMin3 = new System.Windows.Forms.NumericUpDown(); - this.NUP_SurfMin5 = new System.Windows.Forms.NumericUpDown(); - this.NUP_SuperMax3 = new System.Windows.Forms.NumericUpDown(); - this.CB_Surf3 = new System.Windows.Forms.ComboBox(); - this.label49 = new System.Windows.Forms.Label(); - this.NUP_SurfForme5 = new System.Windows.Forms.NumericUpDown(); - this.label98 = new System.Windows.Forms.Label(); - this.NUP_SurfForme3 = new System.Windows.Forms.NumericUpDown(); - this.label99 = new System.Windows.Forms.Label(); - this.CB_Surf5 = new System.Windows.Forms.ComboBox(); - this.label100 = new System.Windows.Forms.Label(); - this.NUP_SurfMin3 = new System.Windows.Forms.NumericUpDown(); - this.label101 = new System.Windows.Forms.Label(); - this.NUP_SurfMax4 = new System.Windows.Forms.NumericUpDown(); - this.label102 = new System.Windows.Forms.Label(); - this.NUP_SurfMax3 = new System.Windows.Forms.NumericUpDown(); - this.L_Good = new System.Windows.Forms.Label(); - this.NUP_SurfMin4 = new System.Windows.Forms.NumericUpDown(); - this.CB_Good1 = new System.Windows.Forms.ComboBox(); - this.CB_Surf4 = new System.Windows.Forms.ComboBox(); - this.NUP_GoodForme1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_SurfForme4 = new System.Windows.Forms.NumericUpDown(); - this.NUP_GoodMin1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_GoodMax1 = new System.Windows.Forms.NumericUpDown(); - this.CB_Good2 = new System.Windows.Forms.ComboBox(); - this.NUP_GoodForme2 = new System.Windows.Forms.NumericUpDown(); - this.NUP_GoodMin2 = new System.Windows.Forms.NumericUpDown(); - this.NUP_GoodMax2 = new System.Windows.Forms.NumericUpDown(); - this.CB_Good3 = new System.Windows.Forms.ComboBox(); - this.NUP_GoodForme3 = new System.Windows.Forms.NumericUpDown(); - this.NUP_GoodMin3 = new System.Windows.Forms.NumericUpDown(); - this.NUP_GoodMax3 = new System.Windows.Forms.NumericUpDown(); - this.label27 = new System.Windows.Forms.Label(); - this.label28 = new System.Windows.Forms.Label(); - this.label29 = new System.Windows.Forms.Label(); - this.label30 = new System.Windows.Forms.Label(); - this.label46 = new System.Windows.Forms.Label(); - this.label47 = new System.Windows.Forms.Label(); - this.L_Old = new System.Windows.Forms.Label(); - this.CB_Old1 = new System.Windows.Forms.ComboBox(); - this.NUP_OldForme1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_OldMin1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_OldMax1 = new System.Windows.Forms.NumericUpDown(); - this.CB_Old2 = new System.Windows.Forms.ComboBox(); - this.NUP_OldForme2 = new System.Windows.Forms.NumericUpDown(); - this.NUP_OldMin2 = new System.Windows.Forms.NumericUpDown(); - this.NUP_OldMax2 = new System.Windows.Forms.NumericUpDown(); - this.CB_Old3 = new System.Windows.Forms.ComboBox(); - this.NUP_OldForme3 = new System.Windows.Forms.NumericUpDown(); - this.NUP_OldMin3 = new System.Windows.Forms.NumericUpDown(); - this.NUP_OldMax3 = new System.Windows.Forms.NumericUpDown(); - this.label45 = new System.Windows.Forms.Label(); - this.label44 = new System.Windows.Forms.Label(); - this.label43 = new System.Windows.Forms.Label(); - this.label23 = new System.Windows.Forms.Label(); - this.label24 = new System.Windows.Forms.Label(); - this.label25 = new System.Windows.Forms.Label(); - this.TabPage_Land = new System.Windows.Forms.TabPage(); - this.CB_Swarm3 = new System.Windows.Forms.ComboBox(); - this.CB_Swarm2 = new System.Windows.Forms.ComboBox(); - this.CB_Swarm1 = new System.Windows.Forms.ComboBox(); - this.NUP_SwarmForme1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_SwarmMin1 = new System.Windows.Forms.NumericUpDown(); - this.label66 = new System.Windows.Forms.Label(); - this.NUP_SwarmMax1 = new System.Windows.Forms.NumericUpDown(); - this.label67 = new System.Windows.Forms.Label(); - this.NUP_SwarmForme2 = new System.Windows.Forms.NumericUpDown(); - this.label68 = new System.Windows.Forms.Label(); - this.NUP_SwarmMin2 = new System.Windows.Forms.NumericUpDown(); - this.L_DexNav = new System.Windows.Forms.Label(); - this.NUP_SwarmMax2 = new System.Windows.Forms.NumericUpDown(); - this.NUP_SwarmForme3 = new System.Windows.Forms.NumericUpDown(); - this.NUP_SwarmMin3 = new System.Windows.Forms.NumericUpDown(); - this.NUP_SwarmMax3 = new System.Windows.Forms.NumericUpDown(); - this.label70 = new System.Windows.Forms.Label(); - this.label80 = new System.Windows.Forms.Label(); - this.label81 = new System.Windows.Forms.Label(); - this.NUP_TallGrassForme11 = new System.Windows.Forms.NumericUpDown(); - this.NUP_TallGrassMin11 = new System.Windows.Forms.NumericUpDown(); - this.NUP_TallGrassMax11 = new System.Windows.Forms.NumericUpDown(); - this.NUP_TallGrassForme12 = new System.Windows.Forms.NumericUpDown(); - this.NUP_TallGrassMin12 = new System.Windows.Forms.NumericUpDown(); - this.NUP_TallGrassMax12 = new System.Windows.Forms.NumericUpDown(); - this.NUP_TallGrassForme1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_TallGrassMin1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_TallGrassMax1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_TallGrassForme2 = new System.Windows.Forms.NumericUpDown(); - this.NUP_TallGrassMin2 = new System.Windows.Forms.NumericUpDown(); - this.NUP_TallGrassMax2 = new System.Windows.Forms.NumericUpDown(); - this.CB_TallGrass12 = new System.Windows.Forms.ComboBox(); - this.NUP_TallGrassForme3 = new System.Windows.Forms.NumericUpDown(); - this.CB_TallGrass11 = new System.Windows.Forms.ComboBox(); - this.NUP_TallGrassMin3 = new System.Windows.Forms.NumericUpDown(); - this.CB_TallGrass10 = new System.Windows.Forms.ComboBox(); - this.NUP_TallGrassMax3 = new System.Windows.Forms.NumericUpDown(); - this.CB_TallGrass9 = new System.Windows.Forms.ComboBox(); - this.NUP_TallGrassForme4 = new System.Windows.Forms.NumericUpDown(); - this.CB_TallGrass8 = new System.Windows.Forms.ComboBox(); - this.NUP_TallGrassMin4 = new System.Windows.Forms.NumericUpDown(); - this.CB_TallGrass7 = new System.Windows.Forms.ComboBox(); - this.NUP_TallGrassMax4 = new System.Windows.Forms.NumericUpDown(); - this.CB_TallGrass6 = new System.Windows.Forms.ComboBox(); - this.NUP_TallGrassForme5 = new System.Windows.Forms.NumericUpDown(); - this.CB_TallGrass5 = new System.Windows.Forms.ComboBox(); - this.NUP_TallGrassMin5 = new System.Windows.Forms.NumericUpDown(); - this.CB_TallGrass4 = new System.Windows.Forms.ComboBox(); - this.NUP_TallGrassMax5 = new System.Windows.Forms.NumericUpDown(); - this.CB_TallGrass3 = new System.Windows.Forms.ComboBox(); - this.NUP_TallGrassForme6 = new System.Windows.Forms.NumericUpDown(); - this.CB_TallGrass2 = new System.Windows.Forms.ComboBox(); - this.NUP_TallGrassMin6 = new System.Windows.Forms.NumericUpDown(); - this.CB_TallGrass1 = new System.Windows.Forms.ComboBox(); - this.NUP_TallGrassMax6 = new System.Windows.Forms.NumericUpDown(); - this.NUP_TallGrassForme7 = new System.Windows.Forms.NumericUpDown(); - this.NUP_TallGrassMin7 = new System.Windows.Forms.NumericUpDown(); - this.NUP_TallGrassMax7 = new System.Windows.Forms.NumericUpDown(); - this.NUP_TallGrassForme8 = new System.Windows.Forms.NumericUpDown(); - this.NUP_TallGrassMin8 = new System.Windows.Forms.NumericUpDown(); - this.NUP_TallGrassMax8 = new System.Windows.Forms.NumericUpDown(); - this.NUP_TallGrassForme9 = new System.Windows.Forms.NumericUpDown(); - this.NUP_TallGrassMin9 = new System.Windows.Forms.NumericUpDown(); - this.NUP_TallGrassMax9 = new System.Windows.Forms.NumericUpDown(); - this.NUP_TallGrassForme10 = new System.Windows.Forms.NumericUpDown(); - this.NUP_TallGrassMin10 = new System.Windows.Forms.NumericUpDown(); - this.NUP_TallGrassMax10 = new System.Windows.Forms.NumericUpDown(); - this.label107 = new System.Windows.Forms.Label(); - this.L_RockSmash = new System.Windows.Forms.Label(); - this.label108 = new System.Windows.Forms.Label(); - this.NUP_RockSmashMax5 = new System.Windows.Forms.NumericUpDown(); - this.label109 = new System.Windows.Forms.Label(); - this.NUP_RockSmashMin5 = new System.Windows.Forms.NumericUpDown(); - this.label110 = new System.Windows.Forms.Label(); - this.NUP_RockSmashForme5 = new System.Windows.Forms.NumericUpDown(); - this.label111 = new System.Windows.Forms.Label(); - this.CB_RockSmash5 = new System.Windows.Forms.ComboBox(); - this.CB_RockSmash1 = new System.Windows.Forms.ComboBox(); - this.NUP_RockSmashMax4 = new System.Windows.Forms.NumericUpDown(); - this.NUP_RockSmashForme1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_RockSmashMin4 = new System.Windows.Forms.NumericUpDown(); - this.label112 = new System.Windows.Forms.Label(); - this.NUP_RockSmashForme4 = new System.Windows.Forms.NumericUpDown(); - this.NUP_RockSmashMin1 = new System.Windows.Forms.NumericUpDown(); - this.CB_RockSmash4 = new System.Windows.Forms.ComboBox(); - this.label113 = new System.Windows.Forms.Label(); - this.NUP_RockSmashMax3 = new System.Windows.Forms.NumericUpDown(); - this.NUP_RockSmashMax1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_RockSmashMin3 = new System.Windows.Forms.NumericUpDown(); - this.label114 = new System.Windows.Forms.Label(); - this.NUP_RockSmashForme3 = new System.Windows.Forms.NumericUpDown(); - this.CB_RockSmash2 = new System.Windows.Forms.ComboBox(); - this.CB_RockSmash3 = new System.Windows.Forms.ComboBox(); - this.NUP_RockSmashMax2 = new System.Windows.Forms.NumericUpDown(); - this.NUP_RockSmashForme2 = new System.Windows.Forms.NumericUpDown(); - this.NUP_RockSmashMin2 = new System.Windows.Forms.NumericUpDown(); - this.label6 = new System.Windows.Forms.Label(); - this.label7 = new System.Windows.Forms.Label(); - this.label8 = new System.Windows.Forms.Label(); - this.L_TallGrass = new System.Windows.Forms.Label(); - this.label10 = new System.Windows.Forms.Label(); - this.label11 = new System.Windows.Forms.Label(); - this.label12 = new System.Windows.Forms.Label(); - this.label13 = new System.Windows.Forms.Label(); - this.label14 = new System.Windows.Forms.Label(); - this.label15 = new System.Windows.Forms.Label(); - this.label16 = new System.Windows.Forms.Label(); - this.label17 = new System.Windows.Forms.Label(); - this.label18 = new System.Windows.Forms.Label(); - this.label19 = new System.Windows.Forms.Label(); - this.label20 = new System.Windows.Forms.Label(); - this.label21 = new System.Windows.Forms.Label(); - this.NUP_GrassForme1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_GrassMin1 = new System.Windows.Forms.NumericUpDown(); - this.label3 = new System.Windows.Forms.Label(); - this.NUP_GrassMax1 = new System.Windows.Forms.NumericUpDown(); - this.label4 = new System.Windows.Forms.Label(); - this.NUP_GrassForme2 = new System.Windows.Forms.NumericUpDown(); - this.label5 = new System.Windows.Forms.Label(); - this.NUP_GrassMin2 = new System.Windows.Forms.NumericUpDown(); - this.L_Grass = new System.Windows.Forms.Label(); - this.NUP_GrassMax2 = new System.Windows.Forms.NumericUpDown(); - this.CB_Grass12 = new System.Windows.Forms.ComboBox(); - this.NUP_GrassForme3 = new System.Windows.Forms.NumericUpDown(); - this.CB_Grass11 = new System.Windows.Forms.ComboBox(); - this.NUP_GrassMin3 = new System.Windows.Forms.NumericUpDown(); - this.CB_Grass10 = new System.Windows.Forms.ComboBox(); - this.NUP_GrassMax3 = new System.Windows.Forms.NumericUpDown(); - this.CB_Grass9 = new System.Windows.Forms.ComboBox(); - this.NUP_GrassForme4 = new System.Windows.Forms.NumericUpDown(); - this.CB_Grass8 = new System.Windows.Forms.ComboBox(); - this.NUP_GrassMin4 = new System.Windows.Forms.NumericUpDown(); - this.CB_Grass7 = new System.Windows.Forms.ComboBox(); - this.NUP_GrassMax4 = new System.Windows.Forms.NumericUpDown(); - this.CB_Grass6 = new System.Windows.Forms.ComboBox(); - this.NUP_GrassForme5 = new System.Windows.Forms.NumericUpDown(); - this.CB_Grass5 = new System.Windows.Forms.ComboBox(); - this.NUP_GrassMin5 = new System.Windows.Forms.NumericUpDown(); - this.CB_Grass4 = new System.Windows.Forms.ComboBox(); - this.NUP_GrassMax5 = new System.Windows.Forms.NumericUpDown(); - this.CB_Grass3 = new System.Windows.Forms.ComboBox(); - this.NUP_GrassForme6 = new System.Windows.Forms.NumericUpDown(); - this.CB_Grass2 = new System.Windows.Forms.ComboBox(); - this.NUP_GrassMin6 = new System.Windows.Forms.NumericUpDown(); - this.CB_Grass1 = new System.Windows.Forms.ComboBox(); - this.NUP_GrassMax6 = new System.Windows.Forms.NumericUpDown(); - this.label31 = new System.Windows.Forms.Label(); - this.NUP_GrassForme7 = new System.Windows.Forms.NumericUpDown(); - this.label41 = new System.Windows.Forms.Label(); - this.NUP_GrassMin7 = new System.Windows.Forms.NumericUpDown(); - this.label42 = new System.Windows.Forms.Label(); - this.NUP_GrassMax7 = new System.Windows.Forms.NumericUpDown(); - this.label40 = new System.Windows.Forms.Label(); - this.NUP_GrassForme8 = new System.Windows.Forms.NumericUpDown(); - this.label39 = new System.Windows.Forms.Label(); - this.NUP_GrassMin8 = new System.Windows.Forms.NumericUpDown(); - this.label38 = new System.Windows.Forms.Label(); - this.NUP_GrassMax8 = new System.Windows.Forms.NumericUpDown(); - this.label37 = new System.Windows.Forms.Label(); - this.NUP_GrassForme9 = new System.Windows.Forms.NumericUpDown(); - this.label36 = new System.Windows.Forms.Label(); - this.NUP_GrassMin9 = new System.Windows.Forms.NumericUpDown(); - this.label35 = new System.Windows.Forms.Label(); - this.NUP_GrassMax9 = new System.Windows.Forms.NumericUpDown(); - this.label34 = new System.Windows.Forms.Label(); - this.NUP_GrassForme10 = new System.Windows.Forms.NumericUpDown(); - this.label33 = new System.Windows.Forms.Label(); - this.NUP_GrassMin10 = new System.Windows.Forms.NumericUpDown(); - this.label32 = new System.Windows.Forms.Label(); - this.NUP_GrassMax10 = new System.Windows.Forms.NumericUpDown(); - this.NUP_GrassMax12 = new System.Windows.Forms.NumericUpDown(); - this.NUP_GrassForme11 = new System.Windows.Forms.NumericUpDown(); - this.NUP_GrassMin12 = new System.Windows.Forms.NumericUpDown(); - this.NUP_GrassMin11 = new System.Windows.Forms.NumericUpDown(); - this.NUP_GrassForme12 = new System.Windows.Forms.NumericUpDown(); - this.NUP_GrassMax11 = new System.Windows.Forms.NumericUpDown(); - this.TabControl_EncounterData = new System.Windows.Forms.TabControl(); - this.B_Dump = new System.Windows.Forms.Button(); - this.B_Randomize = new System.Windows.Forms.Button(); - this.CHK_HomogeneousHordes = new System.Windows.Forms.CheckBox(); - this.TabPage_Horde.SuspendLayout(); - this.GB_Tweak.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_LevelAmp)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMax5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMin5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCForme5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMax4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMin4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCForme4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMax3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMin3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCForme3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMax2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMin2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCForme2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMax1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMin1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCForme1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMax5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMin5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBForme5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAForme1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMin1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMax4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMax5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMin4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMax1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBForme4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMin5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMax3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAForme5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMin3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAForme2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBForme3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMin2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMax2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMax4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMin2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMax2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBForme2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMin4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMax1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAForme4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMin1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAForme3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBForme1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMin3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMax3)).BeginInit(); - this.TabPage_Water.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperForme1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMin1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfForme1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMax1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMin1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMax1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperForme2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMin2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfForme2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMax2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMin2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMax5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperForme3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMax2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMin3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMin5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMax3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfForme5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfForme3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMin3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMax4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMax3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMin4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodForme1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfForme4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMin1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMax1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodForme2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMin2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMax2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodForme3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMin3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMax3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_OldForme1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMin1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMax1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_OldForme2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMin2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMax2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_OldForme3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMin3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMax3)).BeginInit(); - this.TabPage_Land.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SwarmForme1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SwarmMin1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SwarmMax1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SwarmForme2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SwarmMin2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SwarmMax2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SwarmForme3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SwarmMin3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SwarmMax3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme11)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin11)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax11)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme12)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin12)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax12)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme6)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin6)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax6)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme7)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin7)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax7)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme8)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin8)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax8)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme9)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin9)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax9)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme10)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin10)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax10)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMax5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMin5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashForme5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMax4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashForme1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMin4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashForme4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMin1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMax3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMax1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMin3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashForme3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMax2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashForme2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMin2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme6)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin6)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax6)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme7)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin7)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax7)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme8)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin8)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax8)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme9)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin9)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax9)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme10)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin10)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax10)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax12)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme11)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin12)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin11)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme12)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax11)).BeginInit(); - this.TabControl_EncounterData.SuspendLayout(); - this.SuspendLayout(); - // - // CB_LocationID - // - this.CB_LocationID.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_LocationID.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_LocationID.Enabled = false; - this.CB_LocationID.FormattingEnabled = true; - this.CB_LocationID.Location = new System.Drawing.Point(233, 8); - this.CB_LocationID.Name = "CB_LocationID"; - this.CB_LocationID.Size = new System.Drawing.Size(164, 21); - this.CB_LocationID.TabIndex = 407; - this.CB_LocationID.SelectedIndexChanged += new System.EventHandler(this.CB_LocationID_SelectedIndexChanged); - // - // B_Save - // - this.B_Save.Enabled = false; - this.B_Save.Location = new System.Drawing.Point(403, 7); - this.B_Save.Name = "B_Save"; - this.B_Save.Size = new System.Drawing.Size(135, 23); - this.B_Save.TabIndex = 410; - this.B_Save.Text = "Save Current Encounters"; - this.B_Save.UseVisualStyleBackColor = true; - this.B_Save.Click += new System.EventHandler(this.B_Save_Click); - // - // L_Location - // - this.L_Location.AutoSize = true; - this.L_Location.Location = new System.Drawing.Point(201, 12); - this.L_Location.Name = "L_Location"; - this.L_Location.Size = new System.Drawing.Size(28, 13); - this.L_Location.TabIndex = 411; - this.L_Location.Text = "Loc:"; - // - // L_FormList - // - this.L_FormList.AutoSize = true; - this.L_FormList.Location = new System.Drawing.Point(752, 12); - this.L_FormList.Name = "L_FormList"; - this.L_FormList.Size = new System.Drawing.Size(58, 13); - this.L_FormList.TabIndex = 414; - this.L_FormList.Text = "Forme List:"; - // - // CB_FormeList - // - this.CB_FormeList.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_FormeList.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_FormeList.DropDownWidth = 150; - this.CB_FormeList.FormattingEnabled = true; - this.CB_FormeList.Items.AddRange(new object[] { + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.CB_LocationID = new System.Windows.Forms.ComboBox(); + this.B_Save = new System.Windows.Forms.Button(); + this.L_Location = new System.Windows.Forms.Label(); + this.L_FormList = new System.Windows.Forms.Label(); + this.CB_FormeList = new System.Windows.Forms.ComboBox(); + this.TabPage_Horde = new System.Windows.Forms.TabPage(); + this.GB_Tweak = new System.Windows.Forms.GroupBox(); + this.CHK_MegaForm = new System.Windows.Forms.CheckBox(); + this.L_RandOpt = new System.Windows.Forms.Label(); + this.CHK_BST = new System.Windows.Forms.CheckBox(); + this.CHK_E = new System.Windows.Forms.CheckBox(); + this.CHK_L = new System.Windows.Forms.CheckBox(); + this.CHK_G6 = new System.Windows.Forms.CheckBox(); + this.CHK_G5 = new System.Windows.Forms.CheckBox(); + this.CHK_G4 = new System.Windows.Forms.CheckBox(); + this.CHK_G3 = new System.Windows.Forms.CheckBox(); + this.CHK_G2 = new System.Windows.Forms.CheckBox(); + this.CHK_G1 = new System.Windows.Forms.CheckBox(); + this.B_LevelPlus = new System.Windows.Forms.Button(); + this.NUD_LevelAmp = new System.Windows.Forms.NumericUpDown(); + this.CHK_Level = new System.Windows.Forms.CheckBox(); + this.L_HordeC_Max = new System.Windows.Forms.Label(); + this.L_HordeC_Min = new System.Windows.Forms.Label(); + this.L_HordeC_F = new System.Windows.Forms.Label(); + this.L_HordeC = new System.Windows.Forms.Label(); + this.NUP_HordeCMax5 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeCMin5 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeCForme5 = new System.Windows.Forms.NumericUpDown(); + this.CB_HordeC5 = new System.Windows.Forms.ComboBox(); + this.NUP_HordeCMax4 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeCMin4 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeCForme4 = new System.Windows.Forms.NumericUpDown(); + this.CB_HordeC4 = new System.Windows.Forms.ComboBox(); + this.NUP_HordeCMax3 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeCMin3 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeCForme3 = new System.Windows.Forms.NumericUpDown(); + this.CB_HordeC3 = new System.Windows.Forms.ComboBox(); + this.NUP_HordeCMax2 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeCMin2 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeCForme2 = new System.Windows.Forms.NumericUpDown(); + this.CB_HordeC2 = new System.Windows.Forms.ComboBox(); + this.NUP_HordeCMax1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeCMin1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeCForme1 = new System.Windows.Forms.NumericUpDown(); + this.CB_HordeC1 = new System.Windows.Forms.ComboBox(); + this.L_HordeB_Max = new System.Windows.Forms.Label(); + this.L_HordeA_Max = new System.Windows.Forms.Label(); + this.L_HordeB_Min = new System.Windows.Forms.Label(); + this.L_HordeA = new System.Windows.Forms.Label(); + this.L_HordeB_F = new System.Windows.Forms.Label(); + this.L_HordeA_Min = new System.Windows.Forms.Label(); + this.L_HordeB = new System.Windows.Forms.Label(); + this.NUP_HordeBMax5 = new System.Windows.Forms.NumericUpDown(); + this.CB_HordeA1 = new System.Windows.Forms.ComboBox(); + this.NUP_HordeBMin5 = new System.Windows.Forms.NumericUpDown(); + this.L_HordeA_F = new System.Windows.Forms.Label(); + this.NUP_HordeBForme5 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeAForme1 = new System.Windows.Forms.NumericUpDown(); + this.CB_HordeB5 = new System.Windows.Forms.ComboBox(); + this.NUP_HordeAMin1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeBMax4 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeAMax5 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeBMin4 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeAMax1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeBForme4 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeAMin5 = new System.Windows.Forms.NumericUpDown(); + this.CB_HordeB4 = new System.Windows.Forms.ComboBox(); + this.CB_HordeA2 = new System.Windows.Forms.ComboBox(); + this.NUP_HordeBMax3 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeAForme5 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeBMin3 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeAForme2 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeBForme3 = new System.Windows.Forms.NumericUpDown(); + this.CB_HordeA5 = new System.Windows.Forms.ComboBox(); + this.CB_HordeB3 = new System.Windows.Forms.ComboBox(); + this.NUP_HordeAMin2 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeBMax2 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeAMax4 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeBMin2 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeAMax2 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeBForme2 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeAMin4 = new System.Windows.Forms.NumericUpDown(); + this.CB_HordeB2 = new System.Windows.Forms.ComboBox(); + this.CB_HordeA3 = new System.Windows.Forms.ComboBox(); + this.NUP_HordeBMax1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeAForme4 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeBMin1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeAForme3 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeBForme1 = new System.Windows.Forms.NumericUpDown(); + this.CB_HordeA4 = new System.Windows.Forms.ComboBox(); + this.CB_HordeB1 = new System.Windows.Forms.ComboBox(); + this.NUP_HordeAMin3 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeAMax3 = new System.Windows.Forms.NumericUpDown(); + this.TabPage_Water = new System.Windows.Forms.TabPage(); + this.label116 = new System.Windows.Forms.Label(); + this.label117 = new System.Windows.Forms.Label(); + this.label118 = new System.Windows.Forms.Label(); + this.label119 = new System.Windows.Forms.Label(); + this.label120 = new System.Windows.Forms.Label(); + this.label103 = new System.Windows.Forms.Label(); + this.L_Super = new System.Windows.Forms.Label(); + this.label104 = new System.Windows.Forms.Label(); + this.CB_Super1 = new System.Windows.Forms.ComboBox(); + this.label105 = new System.Windows.Forms.Label(); + this.NUP_SuperForme1 = new System.Windows.Forms.NumericUpDown(); + this.L_Surf = new System.Windows.Forms.Label(); + this.CB_Surf1 = new System.Windows.Forms.ComboBox(); + this.NUP_SuperMin1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_SurfForme1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_SuperMax1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_SurfMin1 = new System.Windows.Forms.NumericUpDown(); + this.CB_Super2 = new System.Windows.Forms.ComboBox(); + this.NUP_SurfMax1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_SuperForme2 = new System.Windows.Forms.NumericUpDown(); + this.CB_Surf2 = new System.Windows.Forms.ComboBox(); + this.NUP_SuperMin2 = new System.Windows.Forms.NumericUpDown(); + this.NUP_SurfForme2 = new System.Windows.Forms.NumericUpDown(); + this.NUP_SuperMax2 = new System.Windows.Forms.NumericUpDown(); + this.NUP_SurfMin2 = new System.Windows.Forms.NumericUpDown(); + this.CB_Super3 = new System.Windows.Forms.ComboBox(); + this.NUP_SurfMax5 = new System.Windows.Forms.NumericUpDown(); + this.NUP_SuperForme3 = new System.Windows.Forms.NumericUpDown(); + this.NUP_SurfMax2 = new System.Windows.Forms.NumericUpDown(); + this.NUP_SuperMin3 = new System.Windows.Forms.NumericUpDown(); + this.NUP_SurfMin5 = new System.Windows.Forms.NumericUpDown(); + this.NUP_SuperMax3 = new System.Windows.Forms.NumericUpDown(); + this.CB_Surf3 = new System.Windows.Forms.ComboBox(); + this.label49 = new System.Windows.Forms.Label(); + this.NUP_SurfForme5 = new System.Windows.Forms.NumericUpDown(); + this.label98 = new System.Windows.Forms.Label(); + this.NUP_SurfForme3 = new System.Windows.Forms.NumericUpDown(); + this.label99 = new System.Windows.Forms.Label(); + this.CB_Surf5 = new System.Windows.Forms.ComboBox(); + this.label100 = new System.Windows.Forms.Label(); + this.NUP_SurfMin3 = new System.Windows.Forms.NumericUpDown(); + this.label101 = new System.Windows.Forms.Label(); + this.NUP_SurfMax4 = new System.Windows.Forms.NumericUpDown(); + this.label102 = new System.Windows.Forms.Label(); + this.NUP_SurfMax3 = new System.Windows.Forms.NumericUpDown(); + this.L_Good = new System.Windows.Forms.Label(); + this.NUP_SurfMin4 = new System.Windows.Forms.NumericUpDown(); + this.CB_Good1 = new System.Windows.Forms.ComboBox(); + this.CB_Surf4 = new System.Windows.Forms.ComboBox(); + this.NUP_GoodForme1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_SurfForme4 = new System.Windows.Forms.NumericUpDown(); + this.NUP_GoodMin1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_GoodMax1 = new System.Windows.Forms.NumericUpDown(); + this.CB_Good2 = new System.Windows.Forms.ComboBox(); + this.NUP_GoodForme2 = new System.Windows.Forms.NumericUpDown(); + this.NUP_GoodMin2 = new System.Windows.Forms.NumericUpDown(); + this.NUP_GoodMax2 = new System.Windows.Forms.NumericUpDown(); + this.CB_Good3 = new System.Windows.Forms.ComboBox(); + this.NUP_GoodForme3 = new System.Windows.Forms.NumericUpDown(); + this.NUP_GoodMin3 = new System.Windows.Forms.NumericUpDown(); + this.NUP_GoodMax3 = new System.Windows.Forms.NumericUpDown(); + this.label27 = new System.Windows.Forms.Label(); + this.label28 = new System.Windows.Forms.Label(); + this.label29 = new System.Windows.Forms.Label(); + this.label30 = new System.Windows.Forms.Label(); + this.label46 = new System.Windows.Forms.Label(); + this.label47 = new System.Windows.Forms.Label(); + this.L_Old = new System.Windows.Forms.Label(); + this.CB_Old1 = new System.Windows.Forms.ComboBox(); + this.NUP_OldForme1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_OldMin1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_OldMax1 = new System.Windows.Forms.NumericUpDown(); + this.CB_Old2 = new System.Windows.Forms.ComboBox(); + this.NUP_OldForme2 = new System.Windows.Forms.NumericUpDown(); + this.NUP_OldMin2 = new System.Windows.Forms.NumericUpDown(); + this.NUP_OldMax2 = new System.Windows.Forms.NumericUpDown(); + this.CB_Old3 = new System.Windows.Forms.ComboBox(); + this.NUP_OldForme3 = new System.Windows.Forms.NumericUpDown(); + this.NUP_OldMin3 = new System.Windows.Forms.NumericUpDown(); + this.NUP_OldMax3 = new System.Windows.Forms.NumericUpDown(); + this.label45 = new System.Windows.Forms.Label(); + this.label44 = new System.Windows.Forms.Label(); + this.label43 = new System.Windows.Forms.Label(); + this.label23 = new System.Windows.Forms.Label(); + this.label24 = new System.Windows.Forms.Label(); + this.label25 = new System.Windows.Forms.Label(); + this.TabPage_Land = new System.Windows.Forms.TabPage(); + this.CB_Swarm3 = new System.Windows.Forms.ComboBox(); + this.CB_Swarm2 = new System.Windows.Forms.ComboBox(); + this.CB_Swarm1 = new System.Windows.Forms.ComboBox(); + this.NUP_SwarmForme1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_SwarmMin1 = new System.Windows.Forms.NumericUpDown(); + this.label66 = new System.Windows.Forms.Label(); + this.NUP_SwarmMax1 = new System.Windows.Forms.NumericUpDown(); + this.label67 = new System.Windows.Forms.Label(); + this.NUP_SwarmForme2 = new System.Windows.Forms.NumericUpDown(); + this.label68 = new System.Windows.Forms.Label(); + this.NUP_SwarmMin2 = new System.Windows.Forms.NumericUpDown(); + this.L_DexNav = new System.Windows.Forms.Label(); + this.NUP_SwarmMax2 = new System.Windows.Forms.NumericUpDown(); + this.NUP_SwarmForme3 = new System.Windows.Forms.NumericUpDown(); + this.NUP_SwarmMin3 = new System.Windows.Forms.NumericUpDown(); + this.NUP_SwarmMax3 = new System.Windows.Forms.NumericUpDown(); + this.label70 = new System.Windows.Forms.Label(); + this.label80 = new System.Windows.Forms.Label(); + this.label81 = new System.Windows.Forms.Label(); + this.NUP_TallGrassForme11 = new System.Windows.Forms.NumericUpDown(); + this.NUP_TallGrassMin11 = new System.Windows.Forms.NumericUpDown(); + this.NUP_TallGrassMax11 = new System.Windows.Forms.NumericUpDown(); + this.NUP_TallGrassForme12 = new System.Windows.Forms.NumericUpDown(); + this.NUP_TallGrassMin12 = new System.Windows.Forms.NumericUpDown(); + this.NUP_TallGrassMax12 = new System.Windows.Forms.NumericUpDown(); + this.NUP_TallGrassForme1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_TallGrassMin1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_TallGrassMax1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_TallGrassForme2 = new System.Windows.Forms.NumericUpDown(); + this.NUP_TallGrassMin2 = new System.Windows.Forms.NumericUpDown(); + this.NUP_TallGrassMax2 = new System.Windows.Forms.NumericUpDown(); + this.CB_TallGrass12 = new System.Windows.Forms.ComboBox(); + this.NUP_TallGrassForme3 = new System.Windows.Forms.NumericUpDown(); + this.CB_TallGrass11 = new System.Windows.Forms.ComboBox(); + this.NUP_TallGrassMin3 = new System.Windows.Forms.NumericUpDown(); + this.CB_TallGrass10 = new System.Windows.Forms.ComboBox(); + this.NUP_TallGrassMax3 = new System.Windows.Forms.NumericUpDown(); + this.CB_TallGrass9 = new System.Windows.Forms.ComboBox(); + this.NUP_TallGrassForme4 = new System.Windows.Forms.NumericUpDown(); + this.CB_TallGrass8 = new System.Windows.Forms.ComboBox(); + this.NUP_TallGrassMin4 = new System.Windows.Forms.NumericUpDown(); + this.CB_TallGrass7 = new System.Windows.Forms.ComboBox(); + this.NUP_TallGrassMax4 = new System.Windows.Forms.NumericUpDown(); + this.CB_TallGrass6 = new System.Windows.Forms.ComboBox(); + this.NUP_TallGrassForme5 = new System.Windows.Forms.NumericUpDown(); + this.CB_TallGrass5 = new System.Windows.Forms.ComboBox(); + this.NUP_TallGrassMin5 = new System.Windows.Forms.NumericUpDown(); + this.CB_TallGrass4 = new System.Windows.Forms.ComboBox(); + this.NUP_TallGrassMax5 = new System.Windows.Forms.NumericUpDown(); + this.CB_TallGrass3 = new System.Windows.Forms.ComboBox(); + this.NUP_TallGrassForme6 = new System.Windows.Forms.NumericUpDown(); + this.CB_TallGrass2 = new System.Windows.Forms.ComboBox(); + this.NUP_TallGrassMin6 = new System.Windows.Forms.NumericUpDown(); + this.CB_TallGrass1 = new System.Windows.Forms.ComboBox(); + this.NUP_TallGrassMax6 = new System.Windows.Forms.NumericUpDown(); + this.NUP_TallGrassForme7 = new System.Windows.Forms.NumericUpDown(); + this.NUP_TallGrassMin7 = new System.Windows.Forms.NumericUpDown(); + this.NUP_TallGrassMax7 = new System.Windows.Forms.NumericUpDown(); + this.NUP_TallGrassForme8 = new System.Windows.Forms.NumericUpDown(); + this.NUP_TallGrassMin8 = new System.Windows.Forms.NumericUpDown(); + this.NUP_TallGrassMax8 = new System.Windows.Forms.NumericUpDown(); + this.NUP_TallGrassForme9 = new System.Windows.Forms.NumericUpDown(); + this.NUP_TallGrassMin9 = new System.Windows.Forms.NumericUpDown(); + this.NUP_TallGrassMax9 = new System.Windows.Forms.NumericUpDown(); + this.NUP_TallGrassForme10 = new System.Windows.Forms.NumericUpDown(); + this.NUP_TallGrassMin10 = new System.Windows.Forms.NumericUpDown(); + this.NUP_TallGrassMax10 = new System.Windows.Forms.NumericUpDown(); + this.label107 = new System.Windows.Forms.Label(); + this.L_RockSmash = new System.Windows.Forms.Label(); + this.label108 = new System.Windows.Forms.Label(); + this.NUP_RockSmashMax5 = new System.Windows.Forms.NumericUpDown(); + this.label109 = new System.Windows.Forms.Label(); + this.NUP_RockSmashMin5 = new System.Windows.Forms.NumericUpDown(); + this.label110 = new System.Windows.Forms.Label(); + this.NUP_RockSmashForme5 = new System.Windows.Forms.NumericUpDown(); + this.label111 = new System.Windows.Forms.Label(); + this.CB_RockSmash5 = new System.Windows.Forms.ComboBox(); + this.CB_RockSmash1 = new System.Windows.Forms.ComboBox(); + this.NUP_RockSmashMax4 = new System.Windows.Forms.NumericUpDown(); + this.NUP_RockSmashForme1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_RockSmashMin4 = new System.Windows.Forms.NumericUpDown(); + this.label112 = new System.Windows.Forms.Label(); + this.NUP_RockSmashForme4 = new System.Windows.Forms.NumericUpDown(); + this.NUP_RockSmashMin1 = new System.Windows.Forms.NumericUpDown(); + this.CB_RockSmash4 = new System.Windows.Forms.ComboBox(); + this.label113 = new System.Windows.Forms.Label(); + this.NUP_RockSmashMax3 = new System.Windows.Forms.NumericUpDown(); + this.NUP_RockSmashMax1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_RockSmashMin3 = new System.Windows.Forms.NumericUpDown(); + this.label114 = new System.Windows.Forms.Label(); + this.NUP_RockSmashForme3 = new System.Windows.Forms.NumericUpDown(); + this.CB_RockSmash2 = new System.Windows.Forms.ComboBox(); + this.CB_RockSmash3 = new System.Windows.Forms.ComboBox(); + this.NUP_RockSmashMax2 = new System.Windows.Forms.NumericUpDown(); + this.NUP_RockSmashForme2 = new System.Windows.Forms.NumericUpDown(); + this.NUP_RockSmashMin2 = new System.Windows.Forms.NumericUpDown(); + this.label6 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.label8 = new System.Windows.Forms.Label(); + this.L_TallGrass = new System.Windows.Forms.Label(); + this.label10 = new System.Windows.Forms.Label(); + this.label11 = new System.Windows.Forms.Label(); + this.label12 = new System.Windows.Forms.Label(); + this.label13 = new System.Windows.Forms.Label(); + this.label14 = new System.Windows.Forms.Label(); + this.label15 = new System.Windows.Forms.Label(); + this.label16 = new System.Windows.Forms.Label(); + this.label17 = new System.Windows.Forms.Label(); + this.label18 = new System.Windows.Forms.Label(); + this.label19 = new System.Windows.Forms.Label(); + this.label20 = new System.Windows.Forms.Label(); + this.label21 = new System.Windows.Forms.Label(); + this.NUP_GrassForme1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_GrassMin1 = new System.Windows.Forms.NumericUpDown(); + this.label3 = new System.Windows.Forms.Label(); + this.NUP_GrassMax1 = new System.Windows.Forms.NumericUpDown(); + this.label4 = new System.Windows.Forms.Label(); + this.NUP_GrassForme2 = new System.Windows.Forms.NumericUpDown(); + this.label5 = new System.Windows.Forms.Label(); + this.NUP_GrassMin2 = new System.Windows.Forms.NumericUpDown(); + this.L_Grass = new System.Windows.Forms.Label(); + this.NUP_GrassMax2 = new System.Windows.Forms.NumericUpDown(); + this.CB_Grass12 = new System.Windows.Forms.ComboBox(); + this.NUP_GrassForme3 = new System.Windows.Forms.NumericUpDown(); + this.CB_Grass11 = new System.Windows.Forms.ComboBox(); + this.NUP_GrassMin3 = new System.Windows.Forms.NumericUpDown(); + this.CB_Grass10 = new System.Windows.Forms.ComboBox(); + this.NUP_GrassMax3 = new System.Windows.Forms.NumericUpDown(); + this.CB_Grass9 = new System.Windows.Forms.ComboBox(); + this.NUP_GrassForme4 = new System.Windows.Forms.NumericUpDown(); + this.CB_Grass8 = new System.Windows.Forms.ComboBox(); + this.NUP_GrassMin4 = new System.Windows.Forms.NumericUpDown(); + this.CB_Grass7 = new System.Windows.Forms.ComboBox(); + this.NUP_GrassMax4 = new System.Windows.Forms.NumericUpDown(); + this.CB_Grass6 = new System.Windows.Forms.ComboBox(); + this.NUP_GrassForme5 = new System.Windows.Forms.NumericUpDown(); + this.CB_Grass5 = new System.Windows.Forms.ComboBox(); + this.NUP_GrassMin5 = new System.Windows.Forms.NumericUpDown(); + this.CB_Grass4 = new System.Windows.Forms.ComboBox(); + this.NUP_GrassMax5 = new System.Windows.Forms.NumericUpDown(); + this.CB_Grass3 = new System.Windows.Forms.ComboBox(); + this.NUP_GrassForme6 = new System.Windows.Forms.NumericUpDown(); + this.CB_Grass2 = new System.Windows.Forms.ComboBox(); + this.NUP_GrassMin6 = new System.Windows.Forms.NumericUpDown(); + this.CB_Grass1 = new System.Windows.Forms.ComboBox(); + this.NUP_GrassMax6 = new System.Windows.Forms.NumericUpDown(); + this.label31 = new System.Windows.Forms.Label(); + this.NUP_GrassForme7 = new System.Windows.Forms.NumericUpDown(); + this.label41 = new System.Windows.Forms.Label(); + this.NUP_GrassMin7 = new System.Windows.Forms.NumericUpDown(); + this.label42 = new System.Windows.Forms.Label(); + this.NUP_GrassMax7 = new System.Windows.Forms.NumericUpDown(); + this.label40 = new System.Windows.Forms.Label(); + this.NUP_GrassForme8 = new System.Windows.Forms.NumericUpDown(); + this.label39 = new System.Windows.Forms.Label(); + this.NUP_GrassMin8 = new System.Windows.Forms.NumericUpDown(); + this.label38 = new System.Windows.Forms.Label(); + this.NUP_GrassMax8 = new System.Windows.Forms.NumericUpDown(); + this.label37 = new System.Windows.Forms.Label(); + this.NUP_GrassForme9 = new System.Windows.Forms.NumericUpDown(); + this.label36 = new System.Windows.Forms.Label(); + this.NUP_GrassMin9 = new System.Windows.Forms.NumericUpDown(); + this.label35 = new System.Windows.Forms.Label(); + this.NUP_GrassMax9 = new System.Windows.Forms.NumericUpDown(); + this.label34 = new System.Windows.Forms.Label(); + this.NUP_GrassForme10 = new System.Windows.Forms.NumericUpDown(); + this.label33 = new System.Windows.Forms.Label(); + this.NUP_GrassMin10 = new System.Windows.Forms.NumericUpDown(); + this.label32 = new System.Windows.Forms.Label(); + this.NUP_GrassMax10 = new System.Windows.Forms.NumericUpDown(); + this.NUP_GrassMax12 = new System.Windows.Forms.NumericUpDown(); + this.NUP_GrassForme11 = new System.Windows.Forms.NumericUpDown(); + this.NUP_GrassMin12 = new System.Windows.Forms.NumericUpDown(); + this.NUP_GrassMin11 = new System.Windows.Forms.NumericUpDown(); + this.NUP_GrassForme12 = new System.Windows.Forms.NumericUpDown(); + this.NUP_GrassMax11 = new System.Windows.Forms.NumericUpDown(); + this.TabControl_EncounterData = new System.Windows.Forms.TabControl(); + this.B_Dump = new System.Windows.Forms.Button(); + this.B_Randomize = new System.Windows.Forms.Button(); + this.CHK_HomogeneousHordes = new System.Windows.Forms.CheckBox(); + this.TabPage_Horde.SuspendLayout(); + this.GB_Tweak.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_LevelAmp)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMax5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMin5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCForme5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMax4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMin4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCForme4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMax3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMin3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCForme3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMax2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMin2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCForme2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMax1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMin1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCForme1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMax5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMin5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBForme5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAForme1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMin1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMax4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMax5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMin4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMax1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBForme4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMin5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMax3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAForme5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMin3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAForme2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBForme3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMin2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMax2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMax4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMin2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMax2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBForme2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMin4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMax1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAForme4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMin1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAForme3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBForme1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMin3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMax3)).BeginInit(); + this.TabPage_Water.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperForme1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMin1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfForme1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMax1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMin1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMax1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperForme2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMin2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfForme2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMax2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMin2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMax5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperForme3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMax2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMin3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMin5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMax3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfForme5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfForme3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMin3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMax4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMax3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMin4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodForme1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfForme4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMin1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMax1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodForme2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMin2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMax2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodForme3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMin3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMax3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_OldForme1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMin1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMax1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_OldForme2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMin2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMax2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_OldForme3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMin3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMax3)).BeginInit(); + this.TabPage_Land.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SwarmForme1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SwarmMin1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SwarmMax1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SwarmForme2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SwarmMin2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SwarmMax2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SwarmForme3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SwarmMin3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SwarmMax3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme11)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin11)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax11)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme12)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin12)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax12)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme8)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin8)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax8)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme9)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin9)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax9)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme10)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin10)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax10)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMax5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMin5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashForme5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMax4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashForme1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMin4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashForme4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMin1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMax3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMax1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMin3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashForme3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMax2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashForme2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMin2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme8)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin8)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax8)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme9)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin9)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax9)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme10)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin10)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax10)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax12)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme11)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin12)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin11)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme12)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax11)).BeginInit(); + this.TabControl_EncounterData.SuspendLayout(); + this.SuspendLayout(); + // + // CB_LocationID + // + this.CB_LocationID.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_LocationID.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_LocationID.Enabled = false; + this.CB_LocationID.FormattingEnabled = true; + this.CB_LocationID.Location = new System.Drawing.Point(233, 8); + this.CB_LocationID.Name = "CB_LocationID"; + this.CB_LocationID.Size = new System.Drawing.Size(164, 21); + this.CB_LocationID.TabIndex = 407; + this.CB_LocationID.SelectedIndexChanged += new System.EventHandler(this.CB_LocationID_SelectedIndexChanged); + // + // B_Save + // + this.B_Save.Enabled = false; + this.B_Save.Location = new System.Drawing.Point(403, 7); + this.B_Save.Name = "B_Save"; + this.B_Save.Size = new System.Drawing.Size(135, 23); + this.B_Save.TabIndex = 410; + this.B_Save.Text = "Save Current Encounters"; + this.B_Save.UseVisualStyleBackColor = true; + this.B_Save.Click += new System.EventHandler(this.B_Save_Click); + // + // L_Location + // + this.L_Location.AutoSize = true; + this.L_Location.Location = new System.Drawing.Point(201, 12); + this.L_Location.Name = "L_Location"; + this.L_Location.Size = new System.Drawing.Size(28, 13); + this.L_Location.TabIndex = 411; + this.L_Location.Text = "Loc:"; + // + // L_FormList + // + this.L_FormList.AutoSize = true; + this.L_FormList.Location = new System.Drawing.Point(752, 12); + this.L_FormList.Name = "L_FormList"; + this.L_FormList.Size = new System.Drawing.Size(58, 13); + this.L_FormList.TabIndex = 414; + this.L_FormList.Text = "Forme List:"; + // + // CB_FormeList + // + this.CB_FormeList.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_FormeList.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_FormeList.DropDownWidth = 150; + this.CB_FormeList.FormattingEnabled = true; + this.CB_FormeList.Items.AddRange(new object[] { "Unown-A - 0", "Unown-B - 1", "Unown-C - 2", @@ -755,354 +755,354 @@ private void InitializeComponent() "Genesect-Electric - 2", "Genesect-Fire - 3", "Genesect-Ice - 4"}); - this.CB_FormeList.Location = new System.Drawing.Point(816, 8); - this.CB_FormeList.Name = "CB_FormeList"; - this.CB_FormeList.Size = new System.Drawing.Size(108, 21); - this.CB_FormeList.TabIndex = 413; - // - // TabPage_Horde - // - this.TabPage_Horde.Controls.Add(this.GB_Tweak); - this.TabPage_Horde.Controls.Add(this.L_HordeC_Max); - this.TabPage_Horde.Controls.Add(this.L_HordeC_Min); - this.TabPage_Horde.Controls.Add(this.L_HordeC_F); - this.TabPage_Horde.Controls.Add(this.L_HordeC); - this.TabPage_Horde.Controls.Add(this.NUP_HordeCMax5); - this.TabPage_Horde.Controls.Add(this.NUP_HordeCMin5); - this.TabPage_Horde.Controls.Add(this.NUP_HordeCForme5); - this.TabPage_Horde.Controls.Add(this.CB_HordeC5); - this.TabPage_Horde.Controls.Add(this.NUP_HordeCMax4); - this.TabPage_Horde.Controls.Add(this.NUP_HordeCMin4); - this.TabPage_Horde.Controls.Add(this.NUP_HordeCForme4); - this.TabPage_Horde.Controls.Add(this.CB_HordeC4); - this.TabPage_Horde.Controls.Add(this.NUP_HordeCMax3); - this.TabPage_Horde.Controls.Add(this.NUP_HordeCMin3); - this.TabPage_Horde.Controls.Add(this.NUP_HordeCForme3); - this.TabPage_Horde.Controls.Add(this.CB_HordeC3); - this.TabPage_Horde.Controls.Add(this.NUP_HordeCMax2); - this.TabPage_Horde.Controls.Add(this.NUP_HordeCMin2); - this.TabPage_Horde.Controls.Add(this.NUP_HordeCForme2); - this.TabPage_Horde.Controls.Add(this.CB_HordeC2); - this.TabPage_Horde.Controls.Add(this.NUP_HordeCMax1); - this.TabPage_Horde.Controls.Add(this.NUP_HordeCMin1); - this.TabPage_Horde.Controls.Add(this.NUP_HordeCForme1); - this.TabPage_Horde.Controls.Add(this.CB_HordeC1); - this.TabPage_Horde.Controls.Add(this.L_HordeB_Max); - this.TabPage_Horde.Controls.Add(this.L_HordeA_Max); - this.TabPage_Horde.Controls.Add(this.L_HordeB_Min); - this.TabPage_Horde.Controls.Add(this.L_HordeA); - this.TabPage_Horde.Controls.Add(this.L_HordeB_F); - this.TabPage_Horde.Controls.Add(this.L_HordeA_Min); - this.TabPage_Horde.Controls.Add(this.L_HordeB); - this.TabPage_Horde.Controls.Add(this.NUP_HordeBMax5); - this.TabPage_Horde.Controls.Add(this.CB_HordeA1); - this.TabPage_Horde.Controls.Add(this.NUP_HordeBMin5); - this.TabPage_Horde.Controls.Add(this.L_HordeA_F); - this.TabPage_Horde.Controls.Add(this.NUP_HordeBForme5); - this.TabPage_Horde.Controls.Add(this.NUP_HordeAForme1); - this.TabPage_Horde.Controls.Add(this.CB_HordeB5); - this.TabPage_Horde.Controls.Add(this.NUP_HordeAMin1); - this.TabPage_Horde.Controls.Add(this.NUP_HordeBMax4); - this.TabPage_Horde.Controls.Add(this.NUP_HordeAMax5); - this.TabPage_Horde.Controls.Add(this.NUP_HordeBMin4); - this.TabPage_Horde.Controls.Add(this.NUP_HordeAMax1); - this.TabPage_Horde.Controls.Add(this.NUP_HordeBForme4); - this.TabPage_Horde.Controls.Add(this.NUP_HordeAMin5); - this.TabPage_Horde.Controls.Add(this.CB_HordeB4); - this.TabPage_Horde.Controls.Add(this.CB_HordeA2); - this.TabPage_Horde.Controls.Add(this.NUP_HordeBMax3); - this.TabPage_Horde.Controls.Add(this.NUP_HordeAForme5); - this.TabPage_Horde.Controls.Add(this.NUP_HordeBMin3); - this.TabPage_Horde.Controls.Add(this.NUP_HordeAForme2); - this.TabPage_Horde.Controls.Add(this.NUP_HordeBForme3); - this.TabPage_Horde.Controls.Add(this.CB_HordeA5); - this.TabPage_Horde.Controls.Add(this.CB_HordeB3); - this.TabPage_Horde.Controls.Add(this.NUP_HordeAMin2); - this.TabPage_Horde.Controls.Add(this.NUP_HordeBMax2); - this.TabPage_Horde.Controls.Add(this.NUP_HordeAMax4); - this.TabPage_Horde.Controls.Add(this.NUP_HordeBMin2); - this.TabPage_Horde.Controls.Add(this.NUP_HordeAMax2); - this.TabPage_Horde.Controls.Add(this.NUP_HordeBForme2); - this.TabPage_Horde.Controls.Add(this.NUP_HordeAMin4); - this.TabPage_Horde.Controls.Add(this.CB_HordeB2); - this.TabPage_Horde.Controls.Add(this.CB_HordeA3); - this.TabPage_Horde.Controls.Add(this.NUP_HordeBMax1); - this.TabPage_Horde.Controls.Add(this.NUP_HordeAForme4); - this.TabPage_Horde.Controls.Add(this.NUP_HordeBMin1); - this.TabPage_Horde.Controls.Add(this.NUP_HordeAForme3); - this.TabPage_Horde.Controls.Add(this.NUP_HordeBForme1); - this.TabPage_Horde.Controls.Add(this.CB_HordeA4); - this.TabPage_Horde.Controls.Add(this.CB_HordeB1); - this.TabPage_Horde.Controls.Add(this.NUP_HordeAMin3); - this.TabPage_Horde.Controls.Add(this.NUP_HordeAMax3); - this.TabPage_Horde.Location = new System.Drawing.Point(4, 22); - this.TabPage_Horde.Name = "TabPage_Horde"; - this.TabPage_Horde.Padding = new System.Windows.Forms.Padding(3); - this.TabPage_Horde.Size = new System.Drawing.Size(918, 369); - this.TabPage_Horde.TabIndex = 2; - this.TabPage_Horde.Text = "Horde"; - this.TabPage_Horde.UseVisualStyleBackColor = true; - // - // GB_Tweak - // - this.GB_Tweak.Controls.Add(this.CHK_HomogeneousHordes); - this.GB_Tweak.Controls.Add(this.CHK_MegaForm); - this.GB_Tweak.Controls.Add(this.L_RandOpt); - this.GB_Tweak.Controls.Add(this.CHK_BST); - this.GB_Tweak.Controls.Add(this.CHK_E); - this.GB_Tweak.Controls.Add(this.CHK_L); - this.GB_Tweak.Controls.Add(this.CHK_G6); - this.GB_Tweak.Controls.Add(this.CHK_G5); - this.GB_Tweak.Controls.Add(this.CHK_G4); - this.GB_Tweak.Controls.Add(this.CHK_G3); - this.GB_Tweak.Controls.Add(this.CHK_G2); - this.GB_Tweak.Controls.Add(this.CHK_G1); - this.GB_Tweak.Controls.Add(this.B_LevelPlus); - this.GB_Tweak.Controls.Add(this.NUD_LevelAmp); - this.GB_Tweak.Controls.Add(this.CHK_Level); - this.GB_Tweak.Location = new System.Drawing.Point(341, 243); - this.GB_Tweak.Name = "GB_Tweak"; - this.GB_Tweak.Size = new System.Drawing.Size(282, 120); - this.GB_Tweak.TabIndex = 322; - this.GB_Tweak.TabStop = false; - this.GB_Tweak.Text = "Extra Tweaks"; - // - // CHK_MegaForm - // - this.CHK_MegaForm.AutoSize = true; - this.CHK_MegaForm.Location = new System.Drawing.Point(152, 97); - this.CHK_MegaForm.Name = "CHK_MegaForm"; - this.CHK_MegaForm.Size = new System.Drawing.Size(127, 17); - this.CHK_MegaForm.TabIndex = 295; - this.CHK_MegaForm.Text = "Random Mega Forms"; - this.CHK_MegaForm.UseVisualStyleBackColor = true; - // - // L_RandOpt - // - this.L_RandOpt.AutoSize = true; - this.L_RandOpt.Location = new System.Drawing.Point(30, 34); - this.L_RandOpt.Name = "L_RandOpt"; - this.L_RandOpt.Size = new System.Drawing.Size(105, 13); - this.L_RandOpt.TabIndex = 294; - this.L_RandOpt.Text = "Randomizer Options:"; - // - // CHK_BST - // - this.CHK_BST.AutoSize = true; - this.CHK_BST.Location = new System.Drawing.Point(152, 82); - this.CHK_BST.Name = "CHK_BST"; - this.CHK_BST.Size = new System.Drawing.Size(117, 17); - this.CHK_BST.TabIndex = 288; - this.CHK_BST.Text = "Randomize by BST"; - this.CHK_BST.UseVisualStyleBackColor = true; - // - // CHK_E - // - this.CHK_E.AutoSize = true; - this.CHK_E.Checked = true; - this.CHK_E.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_E.Location = new System.Drawing.Point(152, 67); - this.CHK_E.Name = "CHK_E"; - this.CHK_E.Size = new System.Drawing.Size(98, 17); - this.CHK_E.TabIndex = 287; - this.CHK_E.Text = "Event Legends"; - this.CHK_E.UseVisualStyleBackColor = true; - // - // CHK_L - // - this.CHK_L.AutoSize = true; - this.CHK_L.Checked = true; - this.CHK_L.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_L.Location = new System.Drawing.Point(152, 52); - this.CHK_L.Name = "CHK_L"; - this.CHK_L.Size = new System.Drawing.Size(98, 17); - this.CHK_L.TabIndex = 286; - this.CHK_L.Text = "Game Legends"; - this.CHK_L.UseVisualStyleBackColor = true; - // - // CHK_G6 - // - this.CHK_G6.AutoSize = true; - this.CHK_G6.Checked = true; - this.CHK_G6.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G6.Location = new System.Drawing.Point(91, 82); - this.CHK_G6.Name = "CHK_G6"; - this.CHK_G6.Size = new System.Drawing.Size(55, 17); - this.CHK_G6.TabIndex = 285; - this.CHK_G6.Text = "Gen 6"; - this.CHK_G6.UseVisualStyleBackColor = true; - // - // CHK_G5 - // - this.CHK_G5.AutoSize = true; - this.CHK_G5.Checked = true; - this.CHK_G5.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G5.Location = new System.Drawing.Point(91, 67); - this.CHK_G5.Name = "CHK_G5"; - this.CHK_G5.Size = new System.Drawing.Size(55, 17); - this.CHK_G5.TabIndex = 284; - this.CHK_G5.Text = "Gen 5"; - this.CHK_G5.UseVisualStyleBackColor = true; - // - // CHK_G4 - // - this.CHK_G4.AutoSize = true; - this.CHK_G4.Checked = true; - this.CHK_G4.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G4.Location = new System.Drawing.Point(91, 52); - this.CHK_G4.Name = "CHK_G4"; - this.CHK_G4.Size = new System.Drawing.Size(55, 17); - this.CHK_G4.TabIndex = 283; - this.CHK_G4.Text = "Gen 4"; - this.CHK_G4.UseVisualStyleBackColor = true; - // - // CHK_G3 - // - this.CHK_G3.AutoSize = true; - this.CHK_G3.Checked = true; - this.CHK_G3.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G3.Location = new System.Drawing.Point(33, 82); - this.CHK_G3.Name = "CHK_G3"; - this.CHK_G3.Size = new System.Drawing.Size(55, 17); - this.CHK_G3.TabIndex = 282; - this.CHK_G3.Text = "Gen 3"; - this.CHK_G3.UseVisualStyleBackColor = true; - // - // CHK_G2 - // - this.CHK_G2.AutoSize = true; - this.CHK_G2.Checked = true; - this.CHK_G2.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G2.Location = new System.Drawing.Point(33, 67); - this.CHK_G2.Name = "CHK_G2"; - this.CHK_G2.Size = new System.Drawing.Size(55, 17); - this.CHK_G2.TabIndex = 281; - this.CHK_G2.Text = "Gen 2"; - this.CHK_G2.UseVisualStyleBackColor = true; - // - // CHK_G1 - // - this.CHK_G1.AutoSize = true; - this.CHK_G1.Checked = true; - this.CHK_G1.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G1.Location = new System.Drawing.Point(33, 52); - this.CHK_G1.Name = "CHK_G1"; - this.CHK_G1.Size = new System.Drawing.Size(55, 17); - this.CHK_G1.TabIndex = 280; - this.CHK_G1.Text = "Gen 1"; - this.CHK_G1.UseVisualStyleBackColor = true; - // - // B_LevelPlus - // - this.B_LevelPlus.Location = new System.Drawing.Point(199, 14); - this.B_LevelPlus.Name = "B_LevelPlus"; - this.B_LevelPlus.Size = new System.Drawing.Size(70, 23); - this.B_LevelPlus.TabIndex = 277; - this.B_LevelPlus.Text = "× Current"; - this.B_LevelPlus.UseVisualStyleBackColor = true; - this.B_LevelPlus.Click += new System.EventHandler(this.modifyLevels); - // - // NUD_LevelAmp - // - this.NUD_LevelAmp.DecimalPlaces = 2; - this.NUD_LevelAmp.Increment = new decimal(new int[] { + this.CB_FormeList.Location = new System.Drawing.Point(816, 8); + this.CB_FormeList.Name = "CB_FormeList"; + this.CB_FormeList.Size = new System.Drawing.Size(108, 21); + this.CB_FormeList.TabIndex = 413; + // + // TabPage_Horde + // + this.TabPage_Horde.Controls.Add(this.GB_Tweak); + this.TabPage_Horde.Controls.Add(this.L_HordeC_Max); + this.TabPage_Horde.Controls.Add(this.L_HordeC_Min); + this.TabPage_Horde.Controls.Add(this.L_HordeC_F); + this.TabPage_Horde.Controls.Add(this.L_HordeC); + this.TabPage_Horde.Controls.Add(this.NUP_HordeCMax5); + this.TabPage_Horde.Controls.Add(this.NUP_HordeCMin5); + this.TabPage_Horde.Controls.Add(this.NUP_HordeCForme5); + this.TabPage_Horde.Controls.Add(this.CB_HordeC5); + this.TabPage_Horde.Controls.Add(this.NUP_HordeCMax4); + this.TabPage_Horde.Controls.Add(this.NUP_HordeCMin4); + this.TabPage_Horde.Controls.Add(this.NUP_HordeCForme4); + this.TabPage_Horde.Controls.Add(this.CB_HordeC4); + this.TabPage_Horde.Controls.Add(this.NUP_HordeCMax3); + this.TabPage_Horde.Controls.Add(this.NUP_HordeCMin3); + this.TabPage_Horde.Controls.Add(this.NUP_HordeCForme3); + this.TabPage_Horde.Controls.Add(this.CB_HordeC3); + this.TabPage_Horde.Controls.Add(this.NUP_HordeCMax2); + this.TabPage_Horde.Controls.Add(this.NUP_HordeCMin2); + this.TabPage_Horde.Controls.Add(this.NUP_HordeCForme2); + this.TabPage_Horde.Controls.Add(this.CB_HordeC2); + this.TabPage_Horde.Controls.Add(this.NUP_HordeCMax1); + this.TabPage_Horde.Controls.Add(this.NUP_HordeCMin1); + this.TabPage_Horde.Controls.Add(this.NUP_HordeCForme1); + this.TabPage_Horde.Controls.Add(this.CB_HordeC1); + this.TabPage_Horde.Controls.Add(this.L_HordeB_Max); + this.TabPage_Horde.Controls.Add(this.L_HordeA_Max); + this.TabPage_Horde.Controls.Add(this.L_HordeB_Min); + this.TabPage_Horde.Controls.Add(this.L_HordeA); + this.TabPage_Horde.Controls.Add(this.L_HordeB_F); + this.TabPage_Horde.Controls.Add(this.L_HordeA_Min); + this.TabPage_Horde.Controls.Add(this.L_HordeB); + this.TabPage_Horde.Controls.Add(this.NUP_HordeBMax5); + this.TabPage_Horde.Controls.Add(this.CB_HordeA1); + this.TabPage_Horde.Controls.Add(this.NUP_HordeBMin5); + this.TabPage_Horde.Controls.Add(this.L_HordeA_F); + this.TabPage_Horde.Controls.Add(this.NUP_HordeBForme5); + this.TabPage_Horde.Controls.Add(this.NUP_HordeAForme1); + this.TabPage_Horde.Controls.Add(this.CB_HordeB5); + this.TabPage_Horde.Controls.Add(this.NUP_HordeAMin1); + this.TabPage_Horde.Controls.Add(this.NUP_HordeBMax4); + this.TabPage_Horde.Controls.Add(this.NUP_HordeAMax5); + this.TabPage_Horde.Controls.Add(this.NUP_HordeBMin4); + this.TabPage_Horde.Controls.Add(this.NUP_HordeAMax1); + this.TabPage_Horde.Controls.Add(this.NUP_HordeBForme4); + this.TabPage_Horde.Controls.Add(this.NUP_HordeAMin5); + this.TabPage_Horde.Controls.Add(this.CB_HordeB4); + this.TabPage_Horde.Controls.Add(this.CB_HordeA2); + this.TabPage_Horde.Controls.Add(this.NUP_HordeBMax3); + this.TabPage_Horde.Controls.Add(this.NUP_HordeAForme5); + this.TabPage_Horde.Controls.Add(this.NUP_HordeBMin3); + this.TabPage_Horde.Controls.Add(this.NUP_HordeAForme2); + this.TabPage_Horde.Controls.Add(this.NUP_HordeBForme3); + this.TabPage_Horde.Controls.Add(this.CB_HordeA5); + this.TabPage_Horde.Controls.Add(this.CB_HordeB3); + this.TabPage_Horde.Controls.Add(this.NUP_HordeAMin2); + this.TabPage_Horde.Controls.Add(this.NUP_HordeBMax2); + this.TabPage_Horde.Controls.Add(this.NUP_HordeAMax4); + this.TabPage_Horde.Controls.Add(this.NUP_HordeBMin2); + this.TabPage_Horde.Controls.Add(this.NUP_HordeAMax2); + this.TabPage_Horde.Controls.Add(this.NUP_HordeBForme2); + this.TabPage_Horde.Controls.Add(this.NUP_HordeAMin4); + this.TabPage_Horde.Controls.Add(this.CB_HordeB2); + this.TabPage_Horde.Controls.Add(this.CB_HordeA3); + this.TabPage_Horde.Controls.Add(this.NUP_HordeBMax1); + this.TabPage_Horde.Controls.Add(this.NUP_HordeAForme4); + this.TabPage_Horde.Controls.Add(this.NUP_HordeBMin1); + this.TabPage_Horde.Controls.Add(this.NUP_HordeAForme3); + this.TabPage_Horde.Controls.Add(this.NUP_HordeBForme1); + this.TabPage_Horde.Controls.Add(this.CB_HordeA4); + this.TabPage_Horde.Controls.Add(this.CB_HordeB1); + this.TabPage_Horde.Controls.Add(this.NUP_HordeAMin3); + this.TabPage_Horde.Controls.Add(this.NUP_HordeAMax3); + this.TabPage_Horde.Location = new System.Drawing.Point(4, 22); + this.TabPage_Horde.Name = "TabPage_Horde"; + this.TabPage_Horde.Padding = new System.Windows.Forms.Padding(3); + this.TabPage_Horde.Size = new System.Drawing.Size(918, 369); + this.TabPage_Horde.TabIndex = 2; + this.TabPage_Horde.Text = "Horde"; + this.TabPage_Horde.UseVisualStyleBackColor = true; + // + // GB_Tweak + // + this.GB_Tweak.Controls.Add(this.CHK_HomogeneousHordes); + this.GB_Tweak.Controls.Add(this.CHK_MegaForm); + this.GB_Tweak.Controls.Add(this.L_RandOpt); + this.GB_Tweak.Controls.Add(this.CHK_BST); + this.GB_Tweak.Controls.Add(this.CHK_E); + this.GB_Tweak.Controls.Add(this.CHK_L); + this.GB_Tweak.Controls.Add(this.CHK_G6); + this.GB_Tweak.Controls.Add(this.CHK_G5); + this.GB_Tweak.Controls.Add(this.CHK_G4); + this.GB_Tweak.Controls.Add(this.CHK_G3); + this.GB_Tweak.Controls.Add(this.CHK_G2); + this.GB_Tweak.Controls.Add(this.CHK_G1); + this.GB_Tweak.Controls.Add(this.B_LevelPlus); + this.GB_Tweak.Controls.Add(this.NUD_LevelAmp); + this.GB_Tweak.Controls.Add(this.CHK_Level); + this.GB_Tweak.Location = new System.Drawing.Point(341, 243); + this.GB_Tweak.Name = "GB_Tweak"; + this.GB_Tweak.Size = new System.Drawing.Size(282, 120); + this.GB_Tweak.TabIndex = 322; + this.GB_Tweak.TabStop = false; + this.GB_Tweak.Text = "Extra Tweaks"; + // + // CHK_MegaForm + // + this.CHK_MegaForm.AutoSize = true; + this.CHK_MegaForm.Location = new System.Drawing.Point(152, 97); + this.CHK_MegaForm.Name = "CHK_MegaForm"; + this.CHK_MegaForm.Size = new System.Drawing.Size(127, 17); + this.CHK_MegaForm.TabIndex = 295; + this.CHK_MegaForm.Text = "Random Mega Forms"; + this.CHK_MegaForm.UseVisualStyleBackColor = true; + // + // L_RandOpt + // + this.L_RandOpt.AutoSize = true; + this.L_RandOpt.Location = new System.Drawing.Point(30, 34); + this.L_RandOpt.Name = "L_RandOpt"; + this.L_RandOpt.Size = new System.Drawing.Size(105, 13); + this.L_RandOpt.TabIndex = 294; + this.L_RandOpt.Text = "Randomizer Options:"; + // + // CHK_BST + // + this.CHK_BST.AutoSize = true; + this.CHK_BST.Location = new System.Drawing.Point(152, 82); + this.CHK_BST.Name = "CHK_BST"; + this.CHK_BST.Size = new System.Drawing.Size(117, 17); + this.CHK_BST.TabIndex = 288; + this.CHK_BST.Text = "Randomize by BST"; + this.CHK_BST.UseVisualStyleBackColor = true; + // + // CHK_E + // + this.CHK_E.AutoSize = true; + this.CHK_E.Checked = true; + this.CHK_E.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_E.Location = new System.Drawing.Point(152, 67); + this.CHK_E.Name = "CHK_E"; + this.CHK_E.Size = new System.Drawing.Size(98, 17); + this.CHK_E.TabIndex = 287; + this.CHK_E.Text = "Event Legends"; + this.CHK_E.UseVisualStyleBackColor = true; + // + // CHK_L + // + this.CHK_L.AutoSize = true; + this.CHK_L.Checked = true; + this.CHK_L.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_L.Location = new System.Drawing.Point(152, 52); + this.CHK_L.Name = "CHK_L"; + this.CHK_L.Size = new System.Drawing.Size(98, 17); + this.CHK_L.TabIndex = 286; + this.CHK_L.Text = "Game Legends"; + this.CHK_L.UseVisualStyleBackColor = true; + // + // CHK_G6 + // + this.CHK_G6.AutoSize = true; + this.CHK_G6.Checked = true; + this.CHK_G6.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G6.Location = new System.Drawing.Point(91, 82); + this.CHK_G6.Name = "CHK_G6"; + this.CHK_G6.Size = new System.Drawing.Size(55, 17); + this.CHK_G6.TabIndex = 285; + this.CHK_G6.Text = "Gen 6"; + this.CHK_G6.UseVisualStyleBackColor = true; + // + // CHK_G5 + // + this.CHK_G5.AutoSize = true; + this.CHK_G5.Checked = true; + this.CHK_G5.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G5.Location = new System.Drawing.Point(91, 67); + this.CHK_G5.Name = "CHK_G5"; + this.CHK_G5.Size = new System.Drawing.Size(55, 17); + this.CHK_G5.TabIndex = 284; + this.CHK_G5.Text = "Gen 5"; + this.CHK_G5.UseVisualStyleBackColor = true; + // + // CHK_G4 + // + this.CHK_G4.AutoSize = true; + this.CHK_G4.Checked = true; + this.CHK_G4.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G4.Location = new System.Drawing.Point(91, 52); + this.CHK_G4.Name = "CHK_G4"; + this.CHK_G4.Size = new System.Drawing.Size(55, 17); + this.CHK_G4.TabIndex = 283; + this.CHK_G4.Text = "Gen 4"; + this.CHK_G4.UseVisualStyleBackColor = true; + // + // CHK_G3 + // + this.CHK_G3.AutoSize = true; + this.CHK_G3.Checked = true; + this.CHK_G3.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G3.Location = new System.Drawing.Point(33, 82); + this.CHK_G3.Name = "CHK_G3"; + this.CHK_G3.Size = new System.Drawing.Size(55, 17); + this.CHK_G3.TabIndex = 282; + this.CHK_G3.Text = "Gen 3"; + this.CHK_G3.UseVisualStyleBackColor = true; + // + // CHK_G2 + // + this.CHK_G2.AutoSize = true; + this.CHK_G2.Checked = true; + this.CHK_G2.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G2.Location = new System.Drawing.Point(33, 67); + this.CHK_G2.Name = "CHK_G2"; + this.CHK_G2.Size = new System.Drawing.Size(55, 17); + this.CHK_G2.TabIndex = 281; + this.CHK_G2.Text = "Gen 2"; + this.CHK_G2.UseVisualStyleBackColor = true; + // + // CHK_G1 + // + this.CHK_G1.AutoSize = true; + this.CHK_G1.Checked = true; + this.CHK_G1.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G1.Location = new System.Drawing.Point(33, 52); + this.CHK_G1.Name = "CHK_G1"; + this.CHK_G1.Size = new System.Drawing.Size(55, 17); + this.CHK_G1.TabIndex = 280; + this.CHK_G1.Text = "Gen 1"; + this.CHK_G1.UseVisualStyleBackColor = true; + // + // B_LevelPlus + // + this.B_LevelPlus.Location = new System.Drawing.Point(199, 14); + this.B_LevelPlus.Name = "B_LevelPlus"; + this.B_LevelPlus.Size = new System.Drawing.Size(70, 23); + this.B_LevelPlus.TabIndex = 277; + this.B_LevelPlus.Text = "× Current"; + this.B_LevelPlus.UseVisualStyleBackColor = true; + this.B_LevelPlus.Click += new System.EventHandler(this.ModifyLevels); + // + // NUD_LevelAmp + // + this.NUD_LevelAmp.DecimalPlaces = 2; + this.NUD_LevelAmp.Increment = new decimal(new int[] { 5, 0, 0, 131072}); - this.NUD_LevelAmp.Location = new System.Drawing.Point(152, 16); - this.NUD_LevelAmp.Maximum = new decimal(new int[] { + this.NUD_LevelAmp.Location = new System.Drawing.Point(152, 16); + this.NUD_LevelAmp.Maximum = new decimal(new int[] { 3, 0, 0, 0}); - this.NUD_LevelAmp.Minimum = new decimal(new int[] { + this.NUD_LevelAmp.Minimum = new decimal(new int[] { 1, 0, 0, 65536}); - this.NUD_LevelAmp.Name = "NUD_LevelAmp"; - this.NUD_LevelAmp.Size = new System.Drawing.Size(41, 20); - this.NUD_LevelAmp.TabIndex = 276; - this.NUD_LevelAmp.Value = new decimal(new int[] { + this.NUD_LevelAmp.Name = "NUD_LevelAmp"; + this.NUD_LevelAmp.Size = new System.Drawing.Size(41, 20); + this.NUD_LevelAmp.TabIndex = 276; + this.NUD_LevelAmp.Value = new decimal(new int[] { 10, 0, 0, 65536}); - // - // CHK_Level - // - this.CHK_Level.AutoSize = true; - this.CHK_Level.Location = new System.Drawing.Point(18, 17); - this.CHK_Level.Name = "CHK_Level"; - this.CHK_Level.Size = new System.Drawing.Size(135, 17); - this.CHK_Level.TabIndex = 279; - this.CHK_Level.Text = "Multiply PKM Levels by"; - this.CHK_Level.UseVisualStyleBackColor = true; - // - // L_HordeC_Max - // - this.L_HordeC_Max.AutoSize = true; - this.L_HordeC_Max.Location = new System.Drawing.Point(825, 13); - this.L_HordeC_Max.Name = "L_HordeC_Max"; - this.L_HordeC_Max.Size = new System.Drawing.Size(27, 13); - this.L_HordeC_Max.TabIndex = 320; - this.L_HordeC_Max.Text = "Max"; - // - // L_HordeC_Min - // - this.L_HordeC_Min.AutoSize = true; - this.L_HordeC_Min.Location = new System.Drawing.Point(778, 13); - this.L_HordeC_Min.Name = "L_HordeC_Min"; - this.L_HordeC_Min.Size = new System.Drawing.Size(24, 13); - this.L_HordeC_Min.TabIndex = 319; - this.L_HordeC_Min.Text = "Min"; - // - // L_HordeC_F - // - this.L_HordeC_F.AutoSize = true; - this.L_HordeC_F.Location = new System.Drawing.Point(731, 13); - this.L_HordeC_F.Name = "L_HordeC_F"; - this.L_HordeC_F.Size = new System.Drawing.Size(36, 13); - this.L_HordeC_F.TabIndex = 318; - this.L_HordeC_F.Text = "Forme"; - // - // L_HordeC - // - this.L_HordeC.AutoSize = true; - this.L_HordeC.Location = new System.Drawing.Point(607, 13); - this.L_HordeC.Name = "L_HordeC"; - this.L_HordeC.Size = new System.Drawing.Size(69, 13); - this.L_HordeC.TabIndex = 317; - this.L_HordeC.Text = "Horde C (5%)"; - // - // NUP_HordeCMax5 - // - this.NUP_HordeCMax5.Location = new System.Drawing.Point(828, 138); - this.NUP_HordeCMax5.Name = "NUP_HordeCMax5"; - this.NUP_HordeCMax5.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeCMax5.TabIndex = 316; - // - // NUP_HordeCMin5 - // - this.NUP_HordeCMin5.Location = new System.Drawing.Point(781, 138); - this.NUP_HordeCMin5.Name = "NUP_HordeCMin5"; - this.NUP_HordeCMin5.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeCMin5.TabIndex = 315; - // - // NUP_HordeCForme5 - // - this.NUP_HordeCForme5.Location = new System.Drawing.Point(734, 138); - this.NUP_HordeCForme5.Name = "NUP_HordeCForme5"; - this.NUP_HordeCForme5.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeCForme5.TabIndex = 314; - // - // CB_HordeC5 - // - this.CB_HordeC5.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_HordeC5.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_HordeC5.FormattingEnabled = true; - this.CB_HordeC5.Items.AddRange(new object[] { + // + // CHK_Level + // + this.CHK_Level.AutoSize = true; + this.CHK_Level.Location = new System.Drawing.Point(18, 17); + this.CHK_Level.Name = "CHK_Level"; + this.CHK_Level.Size = new System.Drawing.Size(135, 17); + this.CHK_Level.TabIndex = 279; + this.CHK_Level.Text = "Multiply PKM Levels by"; + this.CHK_Level.UseVisualStyleBackColor = true; + // + // L_HordeC_Max + // + this.L_HordeC_Max.AutoSize = true; + this.L_HordeC_Max.Location = new System.Drawing.Point(825, 13); + this.L_HordeC_Max.Name = "L_HordeC_Max"; + this.L_HordeC_Max.Size = new System.Drawing.Size(27, 13); + this.L_HordeC_Max.TabIndex = 320; + this.L_HordeC_Max.Text = "Max"; + // + // L_HordeC_Min + // + this.L_HordeC_Min.AutoSize = true; + this.L_HordeC_Min.Location = new System.Drawing.Point(778, 13); + this.L_HordeC_Min.Name = "L_HordeC_Min"; + this.L_HordeC_Min.Size = new System.Drawing.Size(24, 13); + this.L_HordeC_Min.TabIndex = 319; + this.L_HordeC_Min.Text = "Min"; + // + // L_HordeC_F + // + this.L_HordeC_F.AutoSize = true; + this.L_HordeC_F.Location = new System.Drawing.Point(731, 13); + this.L_HordeC_F.Name = "L_HordeC_F"; + this.L_HordeC_F.Size = new System.Drawing.Size(36, 13); + this.L_HordeC_F.TabIndex = 318; + this.L_HordeC_F.Text = "Forme"; + // + // L_HordeC + // + this.L_HordeC.AutoSize = true; + this.L_HordeC.Location = new System.Drawing.Point(607, 13); + this.L_HordeC.Name = "L_HordeC"; + this.L_HordeC.Size = new System.Drawing.Size(69, 13); + this.L_HordeC.TabIndex = 317; + this.L_HordeC.Text = "Horde C (5%)"; + // + // NUP_HordeCMax5 + // + this.NUP_HordeCMax5.Location = new System.Drawing.Point(828, 138); + this.NUP_HordeCMax5.Name = "NUP_HordeCMax5"; + this.NUP_HordeCMax5.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeCMax5.TabIndex = 316; + // + // NUP_HordeCMin5 + // + this.NUP_HordeCMin5.Location = new System.Drawing.Point(781, 138); + this.NUP_HordeCMin5.Name = "NUP_HordeCMin5"; + this.NUP_HordeCMin5.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeCMin5.TabIndex = 315; + // + // NUP_HordeCForme5 + // + this.NUP_HordeCForme5.Location = new System.Drawing.Point(734, 138); + this.NUP_HordeCForme5.Name = "NUP_HordeCForme5"; + this.NUP_HordeCForme5.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeCForme5.TabIndex = 314; + // + // CB_HordeC5 + // + this.CB_HordeC5.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_HordeC5.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_HordeC5.FormattingEnabled = true; + this.CB_HordeC5.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -1753,38 +1753,38 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_HordeC5.Location = new System.Drawing.Point(607, 137); - this.CB_HordeC5.Name = "CB_HordeC5"; - this.CB_HordeC5.Size = new System.Drawing.Size(121, 21); - this.CB_HordeC5.TabIndex = 313; - // - // NUP_HordeCMax4 - // - this.NUP_HordeCMax4.Location = new System.Drawing.Point(828, 111); - this.NUP_HordeCMax4.Name = "NUP_HordeCMax4"; - this.NUP_HordeCMax4.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeCMax4.TabIndex = 312; - // - // NUP_HordeCMin4 - // - this.NUP_HordeCMin4.Location = new System.Drawing.Point(781, 111); - this.NUP_HordeCMin4.Name = "NUP_HordeCMin4"; - this.NUP_HordeCMin4.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeCMin4.TabIndex = 311; - // - // NUP_HordeCForme4 - // - this.NUP_HordeCForme4.Location = new System.Drawing.Point(734, 111); - this.NUP_HordeCForme4.Name = "NUP_HordeCForme4"; - this.NUP_HordeCForme4.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeCForme4.TabIndex = 310; - // - // CB_HordeC4 - // - this.CB_HordeC4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_HordeC4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_HordeC4.FormattingEnabled = true; - this.CB_HordeC4.Items.AddRange(new object[] { + this.CB_HordeC5.Location = new System.Drawing.Point(607, 137); + this.CB_HordeC5.Name = "CB_HordeC5"; + this.CB_HordeC5.Size = new System.Drawing.Size(121, 21); + this.CB_HordeC5.TabIndex = 313; + // + // NUP_HordeCMax4 + // + this.NUP_HordeCMax4.Location = new System.Drawing.Point(828, 111); + this.NUP_HordeCMax4.Name = "NUP_HordeCMax4"; + this.NUP_HordeCMax4.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeCMax4.TabIndex = 312; + // + // NUP_HordeCMin4 + // + this.NUP_HordeCMin4.Location = new System.Drawing.Point(781, 111); + this.NUP_HordeCMin4.Name = "NUP_HordeCMin4"; + this.NUP_HordeCMin4.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeCMin4.TabIndex = 311; + // + // NUP_HordeCForme4 + // + this.NUP_HordeCForme4.Location = new System.Drawing.Point(734, 111); + this.NUP_HordeCForme4.Name = "NUP_HordeCForme4"; + this.NUP_HordeCForme4.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeCForme4.TabIndex = 310; + // + // CB_HordeC4 + // + this.CB_HordeC4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_HordeC4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_HordeC4.FormattingEnabled = true; + this.CB_HordeC4.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -2435,38 +2435,38 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_HordeC4.Location = new System.Drawing.Point(607, 110); - this.CB_HordeC4.Name = "CB_HordeC4"; - this.CB_HordeC4.Size = new System.Drawing.Size(121, 21); - this.CB_HordeC4.TabIndex = 309; - // - // NUP_HordeCMax3 - // - this.NUP_HordeCMax3.Location = new System.Drawing.Point(828, 84); - this.NUP_HordeCMax3.Name = "NUP_HordeCMax3"; - this.NUP_HordeCMax3.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeCMax3.TabIndex = 308; - // - // NUP_HordeCMin3 - // - this.NUP_HordeCMin3.Location = new System.Drawing.Point(781, 84); - this.NUP_HordeCMin3.Name = "NUP_HordeCMin3"; - this.NUP_HordeCMin3.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeCMin3.TabIndex = 307; - // - // NUP_HordeCForme3 - // - this.NUP_HordeCForme3.Location = new System.Drawing.Point(734, 84); - this.NUP_HordeCForme3.Name = "NUP_HordeCForme3"; - this.NUP_HordeCForme3.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeCForme3.TabIndex = 306; - // - // CB_HordeC3 - // - this.CB_HordeC3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_HordeC3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_HordeC3.FormattingEnabled = true; - this.CB_HordeC3.Items.AddRange(new object[] { + this.CB_HordeC4.Location = new System.Drawing.Point(607, 110); + this.CB_HordeC4.Name = "CB_HordeC4"; + this.CB_HordeC4.Size = new System.Drawing.Size(121, 21); + this.CB_HordeC4.TabIndex = 309; + // + // NUP_HordeCMax3 + // + this.NUP_HordeCMax3.Location = new System.Drawing.Point(828, 84); + this.NUP_HordeCMax3.Name = "NUP_HordeCMax3"; + this.NUP_HordeCMax3.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeCMax3.TabIndex = 308; + // + // NUP_HordeCMin3 + // + this.NUP_HordeCMin3.Location = new System.Drawing.Point(781, 84); + this.NUP_HordeCMin3.Name = "NUP_HordeCMin3"; + this.NUP_HordeCMin3.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeCMin3.TabIndex = 307; + // + // NUP_HordeCForme3 + // + this.NUP_HordeCForme3.Location = new System.Drawing.Point(734, 84); + this.NUP_HordeCForme3.Name = "NUP_HordeCForme3"; + this.NUP_HordeCForme3.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeCForme3.TabIndex = 306; + // + // CB_HordeC3 + // + this.CB_HordeC3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_HordeC3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_HordeC3.FormattingEnabled = true; + this.CB_HordeC3.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -3117,38 +3117,38 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_HordeC3.Location = new System.Drawing.Point(607, 83); - this.CB_HordeC3.Name = "CB_HordeC3"; - this.CB_HordeC3.Size = new System.Drawing.Size(121, 21); - this.CB_HordeC3.TabIndex = 305; - // - // NUP_HordeCMax2 - // - this.NUP_HordeCMax2.Location = new System.Drawing.Point(828, 57); - this.NUP_HordeCMax2.Name = "NUP_HordeCMax2"; - this.NUP_HordeCMax2.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeCMax2.TabIndex = 304; - // - // NUP_HordeCMin2 - // - this.NUP_HordeCMin2.Location = new System.Drawing.Point(781, 57); - this.NUP_HordeCMin2.Name = "NUP_HordeCMin2"; - this.NUP_HordeCMin2.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeCMin2.TabIndex = 303; - // - // NUP_HordeCForme2 - // - this.NUP_HordeCForme2.Location = new System.Drawing.Point(734, 57); - this.NUP_HordeCForme2.Name = "NUP_HordeCForme2"; - this.NUP_HordeCForme2.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeCForme2.TabIndex = 302; - // - // CB_HordeC2 - // - this.CB_HordeC2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_HordeC2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_HordeC2.FormattingEnabled = true; - this.CB_HordeC2.Items.AddRange(new object[] { + this.CB_HordeC3.Location = new System.Drawing.Point(607, 83); + this.CB_HordeC3.Name = "CB_HordeC3"; + this.CB_HordeC3.Size = new System.Drawing.Size(121, 21); + this.CB_HordeC3.TabIndex = 305; + // + // NUP_HordeCMax2 + // + this.NUP_HordeCMax2.Location = new System.Drawing.Point(828, 57); + this.NUP_HordeCMax2.Name = "NUP_HordeCMax2"; + this.NUP_HordeCMax2.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeCMax2.TabIndex = 304; + // + // NUP_HordeCMin2 + // + this.NUP_HordeCMin2.Location = new System.Drawing.Point(781, 57); + this.NUP_HordeCMin2.Name = "NUP_HordeCMin2"; + this.NUP_HordeCMin2.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeCMin2.TabIndex = 303; + // + // NUP_HordeCForme2 + // + this.NUP_HordeCForme2.Location = new System.Drawing.Point(734, 57); + this.NUP_HordeCForme2.Name = "NUP_HordeCForme2"; + this.NUP_HordeCForme2.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeCForme2.TabIndex = 302; + // + // CB_HordeC2 + // + this.CB_HordeC2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_HordeC2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_HordeC2.FormattingEnabled = true; + this.CB_HordeC2.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -3799,38 +3799,38 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_HordeC2.Location = new System.Drawing.Point(607, 56); - this.CB_HordeC2.Name = "CB_HordeC2"; - this.CB_HordeC2.Size = new System.Drawing.Size(121, 21); - this.CB_HordeC2.TabIndex = 301; - // - // NUP_HordeCMax1 - // - this.NUP_HordeCMax1.Location = new System.Drawing.Point(828, 30); - this.NUP_HordeCMax1.Name = "NUP_HordeCMax1"; - this.NUP_HordeCMax1.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeCMax1.TabIndex = 300; - // - // NUP_HordeCMin1 - // - this.NUP_HordeCMin1.Location = new System.Drawing.Point(781, 30); - this.NUP_HordeCMin1.Name = "NUP_HordeCMin1"; - this.NUP_HordeCMin1.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeCMin1.TabIndex = 299; - // - // NUP_HordeCForme1 - // - this.NUP_HordeCForme1.Location = new System.Drawing.Point(734, 30); - this.NUP_HordeCForme1.Name = "NUP_HordeCForme1"; - this.NUP_HordeCForme1.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeCForme1.TabIndex = 298; - // - // CB_HordeC1 - // - this.CB_HordeC1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_HordeC1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_HordeC1.FormattingEnabled = true; - this.CB_HordeC1.Items.AddRange(new object[] { + this.CB_HordeC2.Location = new System.Drawing.Point(607, 56); + this.CB_HordeC2.Name = "CB_HordeC2"; + this.CB_HordeC2.Size = new System.Drawing.Size(121, 21); + this.CB_HordeC2.TabIndex = 301; + // + // NUP_HordeCMax1 + // + this.NUP_HordeCMax1.Location = new System.Drawing.Point(828, 30); + this.NUP_HordeCMax1.Name = "NUP_HordeCMax1"; + this.NUP_HordeCMax1.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeCMax1.TabIndex = 300; + // + // NUP_HordeCMin1 + // + this.NUP_HordeCMin1.Location = new System.Drawing.Point(781, 30); + this.NUP_HordeCMin1.Name = "NUP_HordeCMin1"; + this.NUP_HordeCMin1.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeCMin1.TabIndex = 299; + // + // NUP_HordeCForme1 + // + this.NUP_HordeCForme1.Location = new System.Drawing.Point(734, 30); + this.NUP_HordeCForme1.Name = "NUP_HordeCForme1"; + this.NUP_HordeCForme1.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeCForme1.TabIndex = 298; + // + // CB_HordeC1 + // + this.CB_HordeC1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_HordeC1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_HordeC1.FormattingEnabled = true; + this.CB_HordeC1.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -4481,87 +4481,87 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_HordeC1.Location = new System.Drawing.Point(607, 29); - this.CB_HordeC1.Name = "CB_HordeC1"; - this.CB_HordeC1.Size = new System.Drawing.Size(121, 21); - this.CB_HordeC1.TabIndex = 297; - // - // L_HordeB_Max - // - this.L_HordeB_Max.AutoSize = true; - this.L_HordeB_Max.Location = new System.Drawing.Point(530, 13); - this.L_HordeB_Max.Name = "L_HordeB_Max"; - this.L_HordeB_Max.Size = new System.Drawing.Size(27, 13); - this.L_HordeB_Max.TabIndex = 296; - this.L_HordeB_Max.Text = "Max"; - // - // L_HordeA_Max - // - this.L_HordeA_Max.AutoSize = true; - this.L_HordeA_Max.Location = new System.Drawing.Point(234, 13); - this.L_HordeA_Max.Name = "L_HordeA_Max"; - this.L_HordeA_Max.Size = new System.Drawing.Size(27, 13); - this.L_HordeA_Max.TabIndex = 296; - this.L_HordeA_Max.Text = "Max"; - // - // L_HordeB_Min - // - this.L_HordeB_Min.AutoSize = true; - this.L_HordeB_Min.Location = new System.Drawing.Point(483, 13); - this.L_HordeB_Min.Name = "L_HordeB_Min"; - this.L_HordeB_Min.Size = new System.Drawing.Size(24, 13); - this.L_HordeB_Min.TabIndex = 295; - this.L_HordeB_Min.Text = "Min"; - // - // L_HordeA - // - this.L_HordeA.AutoSize = true; - this.L_HordeA.Location = new System.Drawing.Point(16, 13); - this.L_HordeA.Name = "L_HordeA"; - this.L_HordeA.Size = new System.Drawing.Size(75, 13); - this.L_HordeA.TabIndex = 293; - this.L_HordeA.Text = "Horde A (60%)"; - // - // L_HordeB_F - // - this.L_HordeB_F.AutoSize = true; - this.L_HordeB_F.Location = new System.Drawing.Point(436, 13); - this.L_HordeB_F.Name = "L_HordeB_F"; - this.L_HordeB_F.Size = new System.Drawing.Size(36, 13); - this.L_HordeB_F.TabIndex = 294; - this.L_HordeB_F.Text = "Forme"; - // - // L_HordeA_Min - // - this.L_HordeA_Min.AutoSize = true; - this.L_HordeA_Min.Location = new System.Drawing.Point(187, 13); - this.L_HordeA_Min.Name = "L_HordeA_Min"; - this.L_HordeA_Min.Size = new System.Drawing.Size(24, 13); - this.L_HordeA_Min.TabIndex = 295; - this.L_HordeA_Min.Text = "Min"; - // - // L_HordeB - // - this.L_HordeB.AutoSize = true; - this.L_HordeB.Location = new System.Drawing.Point(312, 13); - this.L_HordeB.Name = "L_HordeB"; - this.L_HordeB.Size = new System.Drawing.Size(75, 13); - this.L_HordeB.TabIndex = 293; - this.L_HordeB.Text = "Horde B (35%)"; - // - // NUP_HordeBMax5 - // - this.NUP_HordeBMax5.Location = new System.Drawing.Point(533, 138); - this.NUP_HordeBMax5.Name = "NUP_HordeBMax5"; - this.NUP_HordeBMax5.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeBMax5.TabIndex = 292; - // - // CB_HordeA1 - // - this.CB_HordeA1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_HordeA1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_HordeA1.FormattingEnabled = true; - this.CB_HordeA1.Items.AddRange(new object[] { + this.CB_HordeC1.Location = new System.Drawing.Point(607, 29); + this.CB_HordeC1.Name = "CB_HordeC1"; + this.CB_HordeC1.Size = new System.Drawing.Size(121, 21); + this.CB_HordeC1.TabIndex = 297; + // + // L_HordeB_Max + // + this.L_HordeB_Max.AutoSize = true; + this.L_HordeB_Max.Location = new System.Drawing.Point(530, 13); + this.L_HordeB_Max.Name = "L_HordeB_Max"; + this.L_HordeB_Max.Size = new System.Drawing.Size(27, 13); + this.L_HordeB_Max.TabIndex = 296; + this.L_HordeB_Max.Text = "Max"; + // + // L_HordeA_Max + // + this.L_HordeA_Max.AutoSize = true; + this.L_HordeA_Max.Location = new System.Drawing.Point(234, 13); + this.L_HordeA_Max.Name = "L_HordeA_Max"; + this.L_HordeA_Max.Size = new System.Drawing.Size(27, 13); + this.L_HordeA_Max.TabIndex = 296; + this.L_HordeA_Max.Text = "Max"; + // + // L_HordeB_Min + // + this.L_HordeB_Min.AutoSize = true; + this.L_HordeB_Min.Location = new System.Drawing.Point(483, 13); + this.L_HordeB_Min.Name = "L_HordeB_Min"; + this.L_HordeB_Min.Size = new System.Drawing.Size(24, 13); + this.L_HordeB_Min.TabIndex = 295; + this.L_HordeB_Min.Text = "Min"; + // + // L_HordeA + // + this.L_HordeA.AutoSize = true; + this.L_HordeA.Location = new System.Drawing.Point(16, 13); + this.L_HordeA.Name = "L_HordeA"; + this.L_HordeA.Size = new System.Drawing.Size(75, 13); + this.L_HordeA.TabIndex = 293; + this.L_HordeA.Text = "Horde A (60%)"; + // + // L_HordeB_F + // + this.L_HordeB_F.AutoSize = true; + this.L_HordeB_F.Location = new System.Drawing.Point(436, 13); + this.L_HordeB_F.Name = "L_HordeB_F"; + this.L_HordeB_F.Size = new System.Drawing.Size(36, 13); + this.L_HordeB_F.TabIndex = 294; + this.L_HordeB_F.Text = "Forme"; + // + // L_HordeA_Min + // + this.L_HordeA_Min.AutoSize = true; + this.L_HordeA_Min.Location = new System.Drawing.Point(187, 13); + this.L_HordeA_Min.Name = "L_HordeA_Min"; + this.L_HordeA_Min.Size = new System.Drawing.Size(24, 13); + this.L_HordeA_Min.TabIndex = 295; + this.L_HordeA_Min.Text = "Min"; + // + // L_HordeB + // + this.L_HordeB.AutoSize = true; + this.L_HordeB.Location = new System.Drawing.Point(312, 13); + this.L_HordeB.Name = "L_HordeB"; + this.L_HordeB.Size = new System.Drawing.Size(75, 13); + this.L_HordeB.TabIndex = 293; + this.L_HordeB.Text = "Horde B (35%)"; + // + // NUP_HordeBMax5 + // + this.NUP_HordeBMax5.Location = new System.Drawing.Point(533, 138); + this.NUP_HordeBMax5.Name = "NUP_HordeBMax5"; + this.NUP_HordeBMax5.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeBMax5.TabIndex = 292; + // + // CB_HordeA1 + // + this.CB_HordeA1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_HordeA1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_HordeA1.FormattingEnabled = true; + this.CB_HordeA1.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -5212,47 +5212,47 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_HordeA1.Location = new System.Drawing.Point(16, 29); - this.CB_HordeA1.Name = "CB_HordeA1"; - this.CB_HordeA1.Size = new System.Drawing.Size(121, 21); - this.CB_HordeA1.TabIndex = 273; - // - // NUP_HordeBMin5 - // - this.NUP_HordeBMin5.Location = new System.Drawing.Point(486, 138); - this.NUP_HordeBMin5.Name = "NUP_HordeBMin5"; - this.NUP_HordeBMin5.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeBMin5.TabIndex = 291; - // - // L_HordeA_F - // - this.L_HordeA_F.AutoSize = true; - this.L_HordeA_F.Location = new System.Drawing.Point(140, 13); - this.L_HordeA_F.Name = "L_HordeA_F"; - this.L_HordeA_F.Size = new System.Drawing.Size(36, 13); - this.L_HordeA_F.TabIndex = 294; - this.L_HordeA_F.Text = "Forme"; - // - // NUP_HordeBForme5 - // - this.NUP_HordeBForme5.Location = new System.Drawing.Point(439, 138); - this.NUP_HordeBForme5.Name = "NUP_HordeBForme5"; - this.NUP_HordeBForme5.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeBForme5.TabIndex = 290; - // - // NUP_HordeAForme1 - // - this.NUP_HordeAForme1.Location = new System.Drawing.Point(143, 30); - this.NUP_HordeAForme1.Name = "NUP_HordeAForme1"; - this.NUP_HordeAForme1.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeAForme1.TabIndex = 274; - // - // CB_HordeB5 - // - this.CB_HordeB5.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_HordeB5.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_HordeB5.FormattingEnabled = true; - this.CB_HordeB5.Items.AddRange(new object[] { + this.CB_HordeA1.Location = new System.Drawing.Point(16, 29); + this.CB_HordeA1.Name = "CB_HordeA1"; + this.CB_HordeA1.Size = new System.Drawing.Size(121, 21); + this.CB_HordeA1.TabIndex = 273; + // + // NUP_HordeBMin5 + // + this.NUP_HordeBMin5.Location = new System.Drawing.Point(486, 138); + this.NUP_HordeBMin5.Name = "NUP_HordeBMin5"; + this.NUP_HordeBMin5.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeBMin5.TabIndex = 291; + // + // L_HordeA_F + // + this.L_HordeA_F.AutoSize = true; + this.L_HordeA_F.Location = new System.Drawing.Point(140, 13); + this.L_HordeA_F.Name = "L_HordeA_F"; + this.L_HordeA_F.Size = new System.Drawing.Size(36, 13); + this.L_HordeA_F.TabIndex = 294; + this.L_HordeA_F.Text = "Forme"; + // + // NUP_HordeBForme5 + // + this.NUP_HordeBForme5.Location = new System.Drawing.Point(439, 138); + this.NUP_HordeBForme5.Name = "NUP_HordeBForme5"; + this.NUP_HordeBForme5.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeBForme5.TabIndex = 290; + // + // NUP_HordeAForme1 + // + this.NUP_HordeAForme1.Location = new System.Drawing.Point(143, 30); + this.NUP_HordeAForme1.Name = "NUP_HordeAForme1"; + this.NUP_HordeAForme1.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeAForme1.TabIndex = 274; + // + // CB_HordeB5 + // + this.CB_HordeB5.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_HordeB5.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_HordeB5.FormattingEnabled = true; + this.CB_HordeB5.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -5903,66 +5903,66 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_HordeB5.Location = new System.Drawing.Point(312, 137); - this.CB_HordeB5.Name = "CB_HordeB5"; - this.CB_HordeB5.Size = new System.Drawing.Size(121, 21); - this.CB_HordeB5.TabIndex = 289; - // - // NUP_HordeAMin1 - // - this.NUP_HordeAMin1.Location = new System.Drawing.Point(190, 30); - this.NUP_HordeAMin1.Name = "NUP_HordeAMin1"; - this.NUP_HordeAMin1.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeAMin1.TabIndex = 275; - // - // NUP_HordeBMax4 - // - this.NUP_HordeBMax4.Location = new System.Drawing.Point(533, 111); - this.NUP_HordeBMax4.Name = "NUP_HordeBMax4"; - this.NUP_HordeBMax4.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeBMax4.TabIndex = 288; - // - // NUP_HordeAMax5 - // - this.NUP_HordeAMax5.Location = new System.Drawing.Point(237, 138); - this.NUP_HordeAMax5.Name = "NUP_HordeAMax5"; - this.NUP_HordeAMax5.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeAMax5.TabIndex = 292; - // - // NUP_HordeBMin4 - // - this.NUP_HordeBMin4.Location = new System.Drawing.Point(486, 111); - this.NUP_HordeBMin4.Name = "NUP_HordeBMin4"; - this.NUP_HordeBMin4.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeBMin4.TabIndex = 287; - // - // NUP_HordeAMax1 - // - this.NUP_HordeAMax1.Location = new System.Drawing.Point(237, 30); - this.NUP_HordeAMax1.Name = "NUP_HordeAMax1"; - this.NUP_HordeAMax1.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeAMax1.TabIndex = 276; - // - // NUP_HordeBForme4 - // - this.NUP_HordeBForme4.Location = new System.Drawing.Point(439, 111); - this.NUP_HordeBForme4.Name = "NUP_HordeBForme4"; - this.NUP_HordeBForme4.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeBForme4.TabIndex = 286; - // - // NUP_HordeAMin5 - // - this.NUP_HordeAMin5.Location = new System.Drawing.Point(190, 138); - this.NUP_HordeAMin5.Name = "NUP_HordeAMin5"; - this.NUP_HordeAMin5.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeAMin5.TabIndex = 291; - // - // CB_HordeB4 - // - this.CB_HordeB4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_HordeB4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_HordeB4.FormattingEnabled = true; - this.CB_HordeB4.Items.AddRange(new object[] { + this.CB_HordeB5.Location = new System.Drawing.Point(312, 137); + this.CB_HordeB5.Name = "CB_HordeB5"; + this.CB_HordeB5.Size = new System.Drawing.Size(121, 21); + this.CB_HordeB5.TabIndex = 289; + // + // NUP_HordeAMin1 + // + this.NUP_HordeAMin1.Location = new System.Drawing.Point(190, 30); + this.NUP_HordeAMin1.Name = "NUP_HordeAMin1"; + this.NUP_HordeAMin1.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeAMin1.TabIndex = 275; + // + // NUP_HordeBMax4 + // + this.NUP_HordeBMax4.Location = new System.Drawing.Point(533, 111); + this.NUP_HordeBMax4.Name = "NUP_HordeBMax4"; + this.NUP_HordeBMax4.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeBMax4.TabIndex = 288; + // + // NUP_HordeAMax5 + // + this.NUP_HordeAMax5.Location = new System.Drawing.Point(237, 138); + this.NUP_HordeAMax5.Name = "NUP_HordeAMax5"; + this.NUP_HordeAMax5.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeAMax5.TabIndex = 292; + // + // NUP_HordeBMin4 + // + this.NUP_HordeBMin4.Location = new System.Drawing.Point(486, 111); + this.NUP_HordeBMin4.Name = "NUP_HordeBMin4"; + this.NUP_HordeBMin4.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeBMin4.TabIndex = 287; + // + // NUP_HordeAMax1 + // + this.NUP_HordeAMax1.Location = new System.Drawing.Point(237, 30); + this.NUP_HordeAMax1.Name = "NUP_HordeAMax1"; + this.NUP_HordeAMax1.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeAMax1.TabIndex = 276; + // + // NUP_HordeBForme4 + // + this.NUP_HordeBForme4.Location = new System.Drawing.Point(439, 111); + this.NUP_HordeBForme4.Name = "NUP_HordeBForme4"; + this.NUP_HordeBForme4.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeBForme4.TabIndex = 286; + // + // NUP_HordeAMin5 + // + this.NUP_HordeAMin5.Location = new System.Drawing.Point(190, 138); + this.NUP_HordeAMin5.Name = "NUP_HordeAMin5"; + this.NUP_HordeAMin5.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeAMin5.TabIndex = 291; + // + // CB_HordeB4 + // + this.CB_HordeB4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_HordeB4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_HordeB4.FormattingEnabled = true; + this.CB_HordeB4.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -6613,17 +6613,17 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_HordeB4.Location = new System.Drawing.Point(312, 110); - this.CB_HordeB4.Name = "CB_HordeB4"; - this.CB_HordeB4.Size = new System.Drawing.Size(121, 21); - this.CB_HordeB4.TabIndex = 285; - // - // CB_HordeA2 - // - this.CB_HordeA2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_HordeA2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_HordeA2.FormattingEnabled = true; - this.CB_HordeA2.Items.AddRange(new object[] { + this.CB_HordeB4.Location = new System.Drawing.Point(312, 110); + this.CB_HordeB4.Name = "CB_HordeB4"; + this.CB_HordeB4.Size = new System.Drawing.Size(121, 21); + this.CB_HordeB4.TabIndex = 285; + // + // CB_HordeA2 + // + this.CB_HordeA2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_HordeA2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_HordeA2.FormattingEnabled = true; + this.CB_HordeA2.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -7274,52 +7274,52 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_HordeA2.Location = new System.Drawing.Point(16, 56); - this.CB_HordeA2.Name = "CB_HordeA2"; - this.CB_HordeA2.Size = new System.Drawing.Size(121, 21); - this.CB_HordeA2.TabIndex = 277; - // - // NUP_HordeBMax3 - // - this.NUP_HordeBMax3.Location = new System.Drawing.Point(533, 84); - this.NUP_HordeBMax3.Name = "NUP_HordeBMax3"; - this.NUP_HordeBMax3.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeBMax3.TabIndex = 284; - // - // NUP_HordeAForme5 - // - this.NUP_HordeAForme5.Location = new System.Drawing.Point(143, 138); - this.NUP_HordeAForme5.Name = "NUP_HordeAForme5"; - this.NUP_HordeAForme5.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeAForme5.TabIndex = 290; - // - // NUP_HordeBMin3 - // - this.NUP_HordeBMin3.Location = new System.Drawing.Point(486, 84); - this.NUP_HordeBMin3.Name = "NUP_HordeBMin3"; - this.NUP_HordeBMin3.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeBMin3.TabIndex = 283; - // - // NUP_HordeAForme2 - // - this.NUP_HordeAForme2.Location = new System.Drawing.Point(143, 57); - this.NUP_HordeAForme2.Name = "NUP_HordeAForme2"; - this.NUP_HordeAForme2.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeAForme2.TabIndex = 278; - // - // NUP_HordeBForme3 - // - this.NUP_HordeBForme3.Location = new System.Drawing.Point(439, 84); - this.NUP_HordeBForme3.Name = "NUP_HordeBForme3"; - this.NUP_HordeBForme3.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeBForme3.TabIndex = 282; - // - // CB_HordeA5 - // - this.CB_HordeA5.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_HordeA5.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_HordeA5.FormattingEnabled = true; - this.CB_HordeA5.Items.AddRange(new object[] { + this.CB_HordeA2.Location = new System.Drawing.Point(16, 56); + this.CB_HordeA2.Name = "CB_HordeA2"; + this.CB_HordeA2.Size = new System.Drawing.Size(121, 21); + this.CB_HordeA2.TabIndex = 277; + // + // NUP_HordeBMax3 + // + this.NUP_HordeBMax3.Location = new System.Drawing.Point(533, 84); + this.NUP_HordeBMax3.Name = "NUP_HordeBMax3"; + this.NUP_HordeBMax3.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeBMax3.TabIndex = 284; + // + // NUP_HordeAForme5 + // + this.NUP_HordeAForme5.Location = new System.Drawing.Point(143, 138); + this.NUP_HordeAForme5.Name = "NUP_HordeAForme5"; + this.NUP_HordeAForme5.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeAForme5.TabIndex = 290; + // + // NUP_HordeBMin3 + // + this.NUP_HordeBMin3.Location = new System.Drawing.Point(486, 84); + this.NUP_HordeBMin3.Name = "NUP_HordeBMin3"; + this.NUP_HordeBMin3.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeBMin3.TabIndex = 283; + // + // NUP_HordeAForme2 + // + this.NUP_HordeAForme2.Location = new System.Drawing.Point(143, 57); + this.NUP_HordeAForme2.Name = "NUP_HordeAForme2"; + this.NUP_HordeAForme2.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeAForme2.TabIndex = 278; + // + // NUP_HordeBForme3 + // + this.NUP_HordeBForme3.Location = new System.Drawing.Point(439, 84); + this.NUP_HordeBForme3.Name = "NUP_HordeBForme3"; + this.NUP_HordeBForme3.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeBForme3.TabIndex = 282; + // + // CB_HordeA5 + // + this.CB_HordeA5.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_HordeA5.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_HordeA5.FormattingEnabled = true; + this.CB_HordeA5.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -7970,17 +7970,17 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_HordeA5.Location = new System.Drawing.Point(16, 137); - this.CB_HordeA5.Name = "CB_HordeA5"; - this.CB_HordeA5.Size = new System.Drawing.Size(121, 21); - this.CB_HordeA5.TabIndex = 289; - // - // CB_HordeB3 - // - this.CB_HordeB3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_HordeB3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_HordeB3.FormattingEnabled = true; - this.CB_HordeB3.Items.AddRange(new object[] { + this.CB_HordeA5.Location = new System.Drawing.Point(16, 137); + this.CB_HordeA5.Name = "CB_HordeA5"; + this.CB_HordeA5.Size = new System.Drawing.Size(121, 21); + this.CB_HordeA5.TabIndex = 289; + // + // CB_HordeB3 + // + this.CB_HordeB3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_HordeB3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_HordeB3.FormattingEnabled = true; + this.CB_HordeB3.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -8631,66 +8631,66 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_HordeB3.Location = new System.Drawing.Point(312, 83); - this.CB_HordeB3.Name = "CB_HordeB3"; - this.CB_HordeB3.Size = new System.Drawing.Size(121, 21); - this.CB_HordeB3.TabIndex = 281; - // - // NUP_HordeAMin2 - // - this.NUP_HordeAMin2.Location = new System.Drawing.Point(190, 57); - this.NUP_HordeAMin2.Name = "NUP_HordeAMin2"; - this.NUP_HordeAMin2.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeAMin2.TabIndex = 279; - // - // NUP_HordeBMax2 - // - this.NUP_HordeBMax2.Location = new System.Drawing.Point(533, 57); - this.NUP_HordeBMax2.Name = "NUP_HordeBMax2"; - this.NUP_HordeBMax2.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeBMax2.TabIndex = 280; - // - // NUP_HordeAMax4 - // - this.NUP_HordeAMax4.Location = new System.Drawing.Point(237, 111); - this.NUP_HordeAMax4.Name = "NUP_HordeAMax4"; - this.NUP_HordeAMax4.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeAMax4.TabIndex = 288; - // - // NUP_HordeBMin2 - // - this.NUP_HordeBMin2.Location = new System.Drawing.Point(486, 57); - this.NUP_HordeBMin2.Name = "NUP_HordeBMin2"; - this.NUP_HordeBMin2.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeBMin2.TabIndex = 279; - // - // NUP_HordeAMax2 - // - this.NUP_HordeAMax2.Location = new System.Drawing.Point(237, 57); - this.NUP_HordeAMax2.Name = "NUP_HordeAMax2"; - this.NUP_HordeAMax2.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeAMax2.TabIndex = 280; - // - // NUP_HordeBForme2 - // - this.NUP_HordeBForme2.Location = new System.Drawing.Point(439, 57); - this.NUP_HordeBForme2.Name = "NUP_HordeBForme2"; - this.NUP_HordeBForme2.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeBForme2.TabIndex = 278; - // - // NUP_HordeAMin4 - // - this.NUP_HordeAMin4.Location = new System.Drawing.Point(190, 111); - this.NUP_HordeAMin4.Name = "NUP_HordeAMin4"; - this.NUP_HordeAMin4.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeAMin4.TabIndex = 287; - // - // CB_HordeB2 - // - this.CB_HordeB2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_HordeB2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_HordeB2.FormattingEnabled = true; - this.CB_HordeB2.Items.AddRange(new object[] { + this.CB_HordeB3.Location = new System.Drawing.Point(312, 83); + this.CB_HordeB3.Name = "CB_HordeB3"; + this.CB_HordeB3.Size = new System.Drawing.Size(121, 21); + this.CB_HordeB3.TabIndex = 281; + // + // NUP_HordeAMin2 + // + this.NUP_HordeAMin2.Location = new System.Drawing.Point(190, 57); + this.NUP_HordeAMin2.Name = "NUP_HordeAMin2"; + this.NUP_HordeAMin2.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeAMin2.TabIndex = 279; + // + // NUP_HordeBMax2 + // + this.NUP_HordeBMax2.Location = new System.Drawing.Point(533, 57); + this.NUP_HordeBMax2.Name = "NUP_HordeBMax2"; + this.NUP_HordeBMax2.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeBMax2.TabIndex = 280; + // + // NUP_HordeAMax4 + // + this.NUP_HordeAMax4.Location = new System.Drawing.Point(237, 111); + this.NUP_HordeAMax4.Name = "NUP_HordeAMax4"; + this.NUP_HordeAMax4.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeAMax4.TabIndex = 288; + // + // NUP_HordeBMin2 + // + this.NUP_HordeBMin2.Location = new System.Drawing.Point(486, 57); + this.NUP_HordeBMin2.Name = "NUP_HordeBMin2"; + this.NUP_HordeBMin2.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeBMin2.TabIndex = 279; + // + // NUP_HordeAMax2 + // + this.NUP_HordeAMax2.Location = new System.Drawing.Point(237, 57); + this.NUP_HordeAMax2.Name = "NUP_HordeAMax2"; + this.NUP_HordeAMax2.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeAMax2.TabIndex = 280; + // + // NUP_HordeBForme2 + // + this.NUP_HordeBForme2.Location = new System.Drawing.Point(439, 57); + this.NUP_HordeBForme2.Name = "NUP_HordeBForme2"; + this.NUP_HordeBForme2.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeBForme2.TabIndex = 278; + // + // NUP_HordeAMin4 + // + this.NUP_HordeAMin4.Location = new System.Drawing.Point(190, 111); + this.NUP_HordeAMin4.Name = "NUP_HordeAMin4"; + this.NUP_HordeAMin4.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeAMin4.TabIndex = 287; + // + // CB_HordeB2 + // + this.CB_HordeB2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_HordeB2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_HordeB2.FormattingEnabled = true; + this.CB_HordeB2.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -9341,17 +9341,17 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_HordeB2.Location = new System.Drawing.Point(312, 56); - this.CB_HordeB2.Name = "CB_HordeB2"; - this.CB_HordeB2.Size = new System.Drawing.Size(121, 21); - this.CB_HordeB2.TabIndex = 277; - // - // CB_HordeA3 - // - this.CB_HordeA3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_HordeA3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_HordeA3.FormattingEnabled = true; - this.CB_HordeA3.Items.AddRange(new object[] { + this.CB_HordeB2.Location = new System.Drawing.Point(312, 56); + this.CB_HordeB2.Name = "CB_HordeB2"; + this.CB_HordeB2.Size = new System.Drawing.Size(121, 21); + this.CB_HordeB2.TabIndex = 277; + // + // CB_HordeA3 + // + this.CB_HordeA3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_HordeA3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_HordeA3.FormattingEnabled = true; + this.CB_HordeA3.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -10002,52 +10002,52 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_HordeA3.Location = new System.Drawing.Point(16, 83); - this.CB_HordeA3.Name = "CB_HordeA3"; - this.CB_HordeA3.Size = new System.Drawing.Size(121, 21); - this.CB_HordeA3.TabIndex = 281; - // - // NUP_HordeBMax1 - // - this.NUP_HordeBMax1.Location = new System.Drawing.Point(533, 30); - this.NUP_HordeBMax1.Name = "NUP_HordeBMax1"; - this.NUP_HordeBMax1.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeBMax1.TabIndex = 276; - // - // NUP_HordeAForme4 - // - this.NUP_HordeAForme4.Location = new System.Drawing.Point(143, 111); - this.NUP_HordeAForme4.Name = "NUP_HordeAForme4"; - this.NUP_HordeAForme4.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeAForme4.TabIndex = 286; - // - // NUP_HordeBMin1 - // - this.NUP_HordeBMin1.Location = new System.Drawing.Point(486, 30); - this.NUP_HordeBMin1.Name = "NUP_HordeBMin1"; - this.NUP_HordeBMin1.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeBMin1.TabIndex = 275; - // - // NUP_HordeAForme3 - // - this.NUP_HordeAForme3.Location = new System.Drawing.Point(143, 84); - this.NUP_HordeAForme3.Name = "NUP_HordeAForme3"; - this.NUP_HordeAForme3.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeAForme3.TabIndex = 282; - // - // NUP_HordeBForme1 - // - this.NUP_HordeBForme1.Location = new System.Drawing.Point(439, 30); - this.NUP_HordeBForme1.Name = "NUP_HordeBForme1"; - this.NUP_HordeBForme1.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeBForme1.TabIndex = 274; - // - // CB_HordeA4 - // - this.CB_HordeA4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_HordeA4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_HordeA4.FormattingEnabled = true; - this.CB_HordeA4.Items.AddRange(new object[] { + this.CB_HordeA3.Location = new System.Drawing.Point(16, 83); + this.CB_HordeA3.Name = "CB_HordeA3"; + this.CB_HordeA3.Size = new System.Drawing.Size(121, 21); + this.CB_HordeA3.TabIndex = 281; + // + // NUP_HordeBMax1 + // + this.NUP_HordeBMax1.Location = new System.Drawing.Point(533, 30); + this.NUP_HordeBMax1.Name = "NUP_HordeBMax1"; + this.NUP_HordeBMax1.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeBMax1.TabIndex = 276; + // + // NUP_HordeAForme4 + // + this.NUP_HordeAForme4.Location = new System.Drawing.Point(143, 111); + this.NUP_HordeAForme4.Name = "NUP_HordeAForme4"; + this.NUP_HordeAForme4.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeAForme4.TabIndex = 286; + // + // NUP_HordeBMin1 + // + this.NUP_HordeBMin1.Location = new System.Drawing.Point(486, 30); + this.NUP_HordeBMin1.Name = "NUP_HordeBMin1"; + this.NUP_HordeBMin1.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeBMin1.TabIndex = 275; + // + // NUP_HordeAForme3 + // + this.NUP_HordeAForme3.Location = new System.Drawing.Point(143, 84); + this.NUP_HordeAForme3.Name = "NUP_HordeAForme3"; + this.NUP_HordeAForme3.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeAForme3.TabIndex = 282; + // + // NUP_HordeBForme1 + // + this.NUP_HordeBForme1.Location = new System.Drawing.Point(439, 30); + this.NUP_HordeBForme1.Name = "NUP_HordeBForme1"; + this.NUP_HordeBForme1.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeBForme1.TabIndex = 274; + // + // CB_HordeA4 + // + this.CB_HordeA4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_HordeA4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_HordeA4.FormattingEnabled = true; + this.CB_HordeA4.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -10698,17 +10698,17 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_HordeA4.Location = new System.Drawing.Point(16, 110); - this.CB_HordeA4.Name = "CB_HordeA4"; - this.CB_HordeA4.Size = new System.Drawing.Size(121, 21); - this.CB_HordeA4.TabIndex = 285; - // - // CB_HordeB1 - // - this.CB_HordeB1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_HordeB1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_HordeB1.FormattingEnabled = true; - this.CB_HordeB1.Items.AddRange(new object[] { + this.CB_HordeA4.Location = new System.Drawing.Point(16, 110); + this.CB_HordeA4.Name = "CB_HordeA4"; + this.CB_HordeA4.Size = new System.Drawing.Size(121, 21); + this.CB_HordeA4.TabIndex = 285; + // + // CB_HordeB1 + // + this.CB_HordeB1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_HordeB1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_HordeB1.FormattingEnabled = true; + this.CB_HordeB1.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -11359,199 +11359,199 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_HordeB1.Location = new System.Drawing.Point(312, 29); - this.CB_HordeB1.Name = "CB_HordeB1"; - this.CB_HordeB1.Size = new System.Drawing.Size(121, 21); - this.CB_HordeB1.TabIndex = 273; - // - // NUP_HordeAMin3 - // - this.NUP_HordeAMin3.Location = new System.Drawing.Point(190, 84); - this.NUP_HordeAMin3.Name = "NUP_HordeAMin3"; - this.NUP_HordeAMin3.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeAMin3.TabIndex = 283; - // - // NUP_HordeAMax3 - // - this.NUP_HordeAMax3.Location = new System.Drawing.Point(237, 84); - this.NUP_HordeAMax3.Name = "NUP_HordeAMax3"; - this.NUP_HordeAMax3.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeAMax3.TabIndex = 284; - // - // TabPage_Water - // - this.TabPage_Water.Controls.Add(this.label116); - this.TabPage_Water.Controls.Add(this.label117); - this.TabPage_Water.Controls.Add(this.label118); - this.TabPage_Water.Controls.Add(this.label119); - this.TabPage_Water.Controls.Add(this.label120); - this.TabPage_Water.Controls.Add(this.label103); - this.TabPage_Water.Controls.Add(this.L_Super); - this.TabPage_Water.Controls.Add(this.label104); - this.TabPage_Water.Controls.Add(this.CB_Super1); - this.TabPage_Water.Controls.Add(this.label105); - this.TabPage_Water.Controls.Add(this.NUP_SuperForme1); - this.TabPage_Water.Controls.Add(this.L_Surf); - this.TabPage_Water.Controls.Add(this.CB_Surf1); - this.TabPage_Water.Controls.Add(this.NUP_SuperMin1); - this.TabPage_Water.Controls.Add(this.NUP_SurfForme1); - this.TabPage_Water.Controls.Add(this.NUP_SuperMax1); - this.TabPage_Water.Controls.Add(this.NUP_SurfMin1); - this.TabPage_Water.Controls.Add(this.CB_Super2); - this.TabPage_Water.Controls.Add(this.NUP_SurfMax1); - this.TabPage_Water.Controls.Add(this.NUP_SuperForme2); - this.TabPage_Water.Controls.Add(this.CB_Surf2); - this.TabPage_Water.Controls.Add(this.NUP_SuperMin2); - this.TabPage_Water.Controls.Add(this.NUP_SurfForme2); - this.TabPage_Water.Controls.Add(this.NUP_SuperMax2); - this.TabPage_Water.Controls.Add(this.NUP_SurfMin2); - this.TabPage_Water.Controls.Add(this.CB_Super3); - this.TabPage_Water.Controls.Add(this.NUP_SurfMax5); - this.TabPage_Water.Controls.Add(this.NUP_SuperForme3); - this.TabPage_Water.Controls.Add(this.NUP_SurfMax2); - this.TabPage_Water.Controls.Add(this.NUP_SuperMin3); - this.TabPage_Water.Controls.Add(this.NUP_SurfMin5); - this.TabPage_Water.Controls.Add(this.NUP_SuperMax3); - this.TabPage_Water.Controls.Add(this.CB_Surf3); - this.TabPage_Water.Controls.Add(this.label49); - this.TabPage_Water.Controls.Add(this.NUP_SurfForme5); - this.TabPage_Water.Controls.Add(this.label98); - this.TabPage_Water.Controls.Add(this.NUP_SurfForme3); - this.TabPage_Water.Controls.Add(this.label99); - this.TabPage_Water.Controls.Add(this.CB_Surf5); - this.TabPage_Water.Controls.Add(this.label100); - this.TabPage_Water.Controls.Add(this.NUP_SurfMin3); - this.TabPage_Water.Controls.Add(this.label101); - this.TabPage_Water.Controls.Add(this.NUP_SurfMax4); - this.TabPage_Water.Controls.Add(this.label102); - this.TabPage_Water.Controls.Add(this.NUP_SurfMax3); - this.TabPage_Water.Controls.Add(this.L_Good); - this.TabPage_Water.Controls.Add(this.NUP_SurfMin4); - this.TabPage_Water.Controls.Add(this.CB_Good1); - this.TabPage_Water.Controls.Add(this.CB_Surf4); - this.TabPage_Water.Controls.Add(this.NUP_GoodForme1); - this.TabPage_Water.Controls.Add(this.NUP_SurfForme4); - this.TabPage_Water.Controls.Add(this.NUP_GoodMin1); - this.TabPage_Water.Controls.Add(this.NUP_GoodMax1); - this.TabPage_Water.Controls.Add(this.CB_Good2); - this.TabPage_Water.Controls.Add(this.NUP_GoodForme2); - this.TabPage_Water.Controls.Add(this.NUP_GoodMin2); - this.TabPage_Water.Controls.Add(this.NUP_GoodMax2); - this.TabPage_Water.Controls.Add(this.CB_Good3); - this.TabPage_Water.Controls.Add(this.NUP_GoodForme3); - this.TabPage_Water.Controls.Add(this.NUP_GoodMin3); - this.TabPage_Water.Controls.Add(this.NUP_GoodMax3); - this.TabPage_Water.Controls.Add(this.label27); - this.TabPage_Water.Controls.Add(this.label28); - this.TabPage_Water.Controls.Add(this.label29); - this.TabPage_Water.Controls.Add(this.label30); - this.TabPage_Water.Controls.Add(this.label46); - this.TabPage_Water.Controls.Add(this.label47); - this.TabPage_Water.Controls.Add(this.L_Old); - this.TabPage_Water.Controls.Add(this.CB_Old1); - this.TabPage_Water.Controls.Add(this.NUP_OldForme1); - this.TabPage_Water.Controls.Add(this.NUP_OldMin1); - this.TabPage_Water.Controls.Add(this.NUP_OldMax1); - this.TabPage_Water.Controls.Add(this.CB_Old2); - this.TabPage_Water.Controls.Add(this.NUP_OldForme2); - this.TabPage_Water.Controls.Add(this.NUP_OldMin2); - this.TabPage_Water.Controls.Add(this.NUP_OldMax2); - this.TabPage_Water.Controls.Add(this.CB_Old3); - this.TabPage_Water.Controls.Add(this.NUP_OldForme3); - this.TabPage_Water.Controls.Add(this.NUP_OldMin3); - this.TabPage_Water.Controls.Add(this.NUP_OldMax3); - this.TabPage_Water.Controls.Add(this.label45); - this.TabPage_Water.Controls.Add(this.label44); - this.TabPage_Water.Controls.Add(this.label43); - this.TabPage_Water.Controls.Add(this.label23); - this.TabPage_Water.Controls.Add(this.label24); - this.TabPage_Water.Controls.Add(this.label25); - this.TabPage_Water.Location = new System.Drawing.Point(4, 22); - this.TabPage_Water.Name = "TabPage_Water"; - this.TabPage_Water.Padding = new System.Windows.Forms.Padding(3); - this.TabPage_Water.Size = new System.Drawing.Size(918, 369); - this.TabPage_Water.TabIndex = 1; - this.TabPage_Water.Text = "Water"; - this.TabPage_Water.UseVisualStyleBackColor = true; - // - // label116 - // - this.label116.AutoSize = true; - this.label116.Location = new System.Drawing.Point(313, 285); - this.label116.Name = "label116"; - this.label116.Size = new System.Drawing.Size(21, 13); - this.label116.TabIndex = 351; - this.label116.Text = "1%"; - // - // label117 - // - this.label117.AutoSize = true; - this.label117.Location = new System.Drawing.Point(313, 258); - this.label117.Name = "label117"; - this.label117.Size = new System.Drawing.Size(21, 13); - this.label117.TabIndex = 350; - this.label117.Text = "4%"; - // - // label118 - // - this.label118.AutoSize = true; - this.label118.Location = new System.Drawing.Point(307, 231); - this.label118.Name = "label118"; - this.label118.Size = new System.Drawing.Size(27, 13); - this.label118.TabIndex = 349; - this.label118.Text = "15%"; - // - // label119 - // - this.label119.AutoSize = true; - this.label119.Location = new System.Drawing.Point(307, 204); - this.label119.Name = "label119"; - this.label119.Size = new System.Drawing.Size(27, 13); - this.label119.TabIndex = 348; - this.label119.Text = "30%"; - // - // label120 - // - this.label120.AutoSize = true; - this.label120.Location = new System.Drawing.Point(307, 177); - this.label120.Name = "label120"; - this.label120.Size = new System.Drawing.Size(27, 13); - this.label120.TabIndex = 347; - this.label120.Text = "50%"; - // - // label103 - // - this.label103.AutoSize = true; - this.label103.Location = new System.Drawing.Point(558, 159); - this.label103.Name = "label103"; - this.label103.Size = new System.Drawing.Size(27, 13); - this.label103.TabIndex = 288; - this.label103.Text = "Max"; - // - // L_Super - // - this.L_Super.AutoSize = true; - this.L_Super.Location = new System.Drawing.Point(639, 13); - this.L_Super.Name = "L_Super"; - this.L_Super.Size = new System.Drawing.Size(58, 13); - this.L_Super.TabIndex = 340; - this.L_Super.Text = "Super Rod"; - // - // label104 - // - this.label104.AutoSize = true; - this.label104.Location = new System.Drawing.Point(511, 159); - this.label104.Name = "label104"; - this.label104.Size = new System.Drawing.Size(24, 13); - this.label104.TabIndex = 287; - this.label104.Text = "Min"; - // - // CB_Super1 - // - this.CB_Super1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Super1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Super1.FormattingEnabled = true; - this.CB_Super1.Items.AddRange(new object[] { + this.CB_HordeB1.Location = new System.Drawing.Point(312, 29); + this.CB_HordeB1.Name = "CB_HordeB1"; + this.CB_HordeB1.Size = new System.Drawing.Size(121, 21); + this.CB_HordeB1.TabIndex = 273; + // + // NUP_HordeAMin3 + // + this.NUP_HordeAMin3.Location = new System.Drawing.Point(190, 84); + this.NUP_HordeAMin3.Name = "NUP_HordeAMin3"; + this.NUP_HordeAMin3.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeAMin3.TabIndex = 283; + // + // NUP_HordeAMax3 + // + this.NUP_HordeAMax3.Location = new System.Drawing.Point(237, 84); + this.NUP_HordeAMax3.Name = "NUP_HordeAMax3"; + this.NUP_HordeAMax3.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeAMax3.TabIndex = 284; + // + // TabPage_Water + // + this.TabPage_Water.Controls.Add(this.label116); + this.TabPage_Water.Controls.Add(this.label117); + this.TabPage_Water.Controls.Add(this.label118); + this.TabPage_Water.Controls.Add(this.label119); + this.TabPage_Water.Controls.Add(this.label120); + this.TabPage_Water.Controls.Add(this.label103); + this.TabPage_Water.Controls.Add(this.L_Super); + this.TabPage_Water.Controls.Add(this.label104); + this.TabPage_Water.Controls.Add(this.CB_Super1); + this.TabPage_Water.Controls.Add(this.label105); + this.TabPage_Water.Controls.Add(this.NUP_SuperForme1); + this.TabPage_Water.Controls.Add(this.L_Surf); + this.TabPage_Water.Controls.Add(this.CB_Surf1); + this.TabPage_Water.Controls.Add(this.NUP_SuperMin1); + this.TabPage_Water.Controls.Add(this.NUP_SurfForme1); + this.TabPage_Water.Controls.Add(this.NUP_SuperMax1); + this.TabPage_Water.Controls.Add(this.NUP_SurfMin1); + this.TabPage_Water.Controls.Add(this.CB_Super2); + this.TabPage_Water.Controls.Add(this.NUP_SurfMax1); + this.TabPage_Water.Controls.Add(this.NUP_SuperForme2); + this.TabPage_Water.Controls.Add(this.CB_Surf2); + this.TabPage_Water.Controls.Add(this.NUP_SuperMin2); + this.TabPage_Water.Controls.Add(this.NUP_SurfForme2); + this.TabPage_Water.Controls.Add(this.NUP_SuperMax2); + this.TabPage_Water.Controls.Add(this.NUP_SurfMin2); + this.TabPage_Water.Controls.Add(this.CB_Super3); + this.TabPage_Water.Controls.Add(this.NUP_SurfMax5); + this.TabPage_Water.Controls.Add(this.NUP_SuperForme3); + this.TabPage_Water.Controls.Add(this.NUP_SurfMax2); + this.TabPage_Water.Controls.Add(this.NUP_SuperMin3); + this.TabPage_Water.Controls.Add(this.NUP_SurfMin5); + this.TabPage_Water.Controls.Add(this.NUP_SuperMax3); + this.TabPage_Water.Controls.Add(this.CB_Surf3); + this.TabPage_Water.Controls.Add(this.label49); + this.TabPage_Water.Controls.Add(this.NUP_SurfForme5); + this.TabPage_Water.Controls.Add(this.label98); + this.TabPage_Water.Controls.Add(this.NUP_SurfForme3); + this.TabPage_Water.Controls.Add(this.label99); + this.TabPage_Water.Controls.Add(this.CB_Surf5); + this.TabPage_Water.Controls.Add(this.label100); + this.TabPage_Water.Controls.Add(this.NUP_SurfMin3); + this.TabPage_Water.Controls.Add(this.label101); + this.TabPage_Water.Controls.Add(this.NUP_SurfMax4); + this.TabPage_Water.Controls.Add(this.label102); + this.TabPage_Water.Controls.Add(this.NUP_SurfMax3); + this.TabPage_Water.Controls.Add(this.L_Good); + this.TabPage_Water.Controls.Add(this.NUP_SurfMin4); + this.TabPage_Water.Controls.Add(this.CB_Good1); + this.TabPage_Water.Controls.Add(this.CB_Surf4); + this.TabPage_Water.Controls.Add(this.NUP_GoodForme1); + this.TabPage_Water.Controls.Add(this.NUP_SurfForme4); + this.TabPage_Water.Controls.Add(this.NUP_GoodMin1); + this.TabPage_Water.Controls.Add(this.NUP_GoodMax1); + this.TabPage_Water.Controls.Add(this.CB_Good2); + this.TabPage_Water.Controls.Add(this.NUP_GoodForme2); + this.TabPage_Water.Controls.Add(this.NUP_GoodMin2); + this.TabPage_Water.Controls.Add(this.NUP_GoodMax2); + this.TabPage_Water.Controls.Add(this.CB_Good3); + this.TabPage_Water.Controls.Add(this.NUP_GoodForme3); + this.TabPage_Water.Controls.Add(this.NUP_GoodMin3); + this.TabPage_Water.Controls.Add(this.NUP_GoodMax3); + this.TabPage_Water.Controls.Add(this.label27); + this.TabPage_Water.Controls.Add(this.label28); + this.TabPage_Water.Controls.Add(this.label29); + this.TabPage_Water.Controls.Add(this.label30); + this.TabPage_Water.Controls.Add(this.label46); + this.TabPage_Water.Controls.Add(this.label47); + this.TabPage_Water.Controls.Add(this.L_Old); + this.TabPage_Water.Controls.Add(this.CB_Old1); + this.TabPage_Water.Controls.Add(this.NUP_OldForme1); + this.TabPage_Water.Controls.Add(this.NUP_OldMin1); + this.TabPage_Water.Controls.Add(this.NUP_OldMax1); + this.TabPage_Water.Controls.Add(this.CB_Old2); + this.TabPage_Water.Controls.Add(this.NUP_OldForme2); + this.TabPage_Water.Controls.Add(this.NUP_OldMin2); + this.TabPage_Water.Controls.Add(this.NUP_OldMax2); + this.TabPage_Water.Controls.Add(this.CB_Old3); + this.TabPage_Water.Controls.Add(this.NUP_OldForme3); + this.TabPage_Water.Controls.Add(this.NUP_OldMin3); + this.TabPage_Water.Controls.Add(this.NUP_OldMax3); + this.TabPage_Water.Controls.Add(this.label45); + this.TabPage_Water.Controls.Add(this.label44); + this.TabPage_Water.Controls.Add(this.label43); + this.TabPage_Water.Controls.Add(this.label23); + this.TabPage_Water.Controls.Add(this.label24); + this.TabPage_Water.Controls.Add(this.label25); + this.TabPage_Water.Location = new System.Drawing.Point(4, 22); + this.TabPage_Water.Name = "TabPage_Water"; + this.TabPage_Water.Padding = new System.Windows.Forms.Padding(3); + this.TabPage_Water.Size = new System.Drawing.Size(918, 369); + this.TabPage_Water.TabIndex = 1; + this.TabPage_Water.Text = "Water"; + this.TabPage_Water.UseVisualStyleBackColor = true; + // + // label116 + // + this.label116.AutoSize = true; + this.label116.Location = new System.Drawing.Point(313, 285); + this.label116.Name = "label116"; + this.label116.Size = new System.Drawing.Size(21, 13); + this.label116.TabIndex = 351; + this.label116.Text = "1%"; + // + // label117 + // + this.label117.AutoSize = true; + this.label117.Location = new System.Drawing.Point(313, 258); + this.label117.Name = "label117"; + this.label117.Size = new System.Drawing.Size(21, 13); + this.label117.TabIndex = 350; + this.label117.Text = "4%"; + // + // label118 + // + this.label118.AutoSize = true; + this.label118.Location = new System.Drawing.Point(307, 231); + this.label118.Name = "label118"; + this.label118.Size = new System.Drawing.Size(27, 13); + this.label118.TabIndex = 349; + this.label118.Text = "15%"; + // + // label119 + // + this.label119.AutoSize = true; + this.label119.Location = new System.Drawing.Point(307, 204); + this.label119.Name = "label119"; + this.label119.Size = new System.Drawing.Size(27, 13); + this.label119.TabIndex = 348; + this.label119.Text = "30%"; + // + // label120 + // + this.label120.AutoSize = true; + this.label120.Location = new System.Drawing.Point(307, 177); + this.label120.Name = "label120"; + this.label120.Size = new System.Drawing.Size(27, 13); + this.label120.TabIndex = 347; + this.label120.Text = "50%"; + // + // label103 + // + this.label103.AutoSize = true; + this.label103.Location = new System.Drawing.Point(558, 159); + this.label103.Name = "label103"; + this.label103.Size = new System.Drawing.Size(27, 13); + this.label103.TabIndex = 288; + this.label103.Text = "Max"; + // + // L_Super + // + this.L_Super.AutoSize = true; + this.L_Super.Location = new System.Drawing.Point(639, 13); + this.L_Super.Name = "L_Super"; + this.L_Super.Size = new System.Drawing.Size(58, 13); + this.L_Super.TabIndex = 340; + this.L_Super.Text = "Super Rod"; + // + // label104 + // + this.label104.AutoSize = true; + this.label104.Location = new System.Drawing.Point(511, 159); + this.label104.Name = "label104"; + this.label104.Size = new System.Drawing.Size(24, 13); + this.label104.TabIndex = 287; + this.label104.Text = "Min"; + // + // CB_Super1 + // + this.CB_Super1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Super1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Super1.FormattingEnabled = true; + this.CB_Super1.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -12202,42 +12202,42 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_Super1.Location = new System.Drawing.Point(642, 29); - this.CB_Super1.Name = "CB_Super1"; - this.CB_Super1.Size = new System.Drawing.Size(121, 21); - this.CB_Super1.TabIndex = 328; - // - // label105 - // - this.label105.AutoSize = true; - this.label105.Location = new System.Drawing.Point(464, 159); - this.label105.Name = "label105"; - this.label105.Size = new System.Drawing.Size(36, 13); - this.label105.TabIndex = 286; - this.label105.Text = "Forme"; - // - // NUP_SuperForme1 - // - this.NUP_SuperForme1.Location = new System.Drawing.Point(769, 30); - this.NUP_SuperForme1.Name = "NUP_SuperForme1"; - this.NUP_SuperForme1.Size = new System.Drawing.Size(41, 20); - this.NUP_SuperForme1.TabIndex = 329; - // - // L_Surf - // - this.L_Surf.AutoSize = true; - this.L_Surf.Location = new System.Drawing.Point(340, 159); - this.L_Surf.Name = "L_Surf"; - this.L_Surf.Size = new System.Drawing.Size(40, 13); - this.L_Surf.TabIndex = 285; - this.L_Surf.Text = "Surfing"; - // - // CB_Surf1 - // - this.CB_Surf1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Surf1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Surf1.FormattingEnabled = true; - this.CB_Surf1.Items.AddRange(new object[] { + this.CB_Super1.Location = new System.Drawing.Point(642, 29); + this.CB_Super1.Name = "CB_Super1"; + this.CB_Super1.Size = new System.Drawing.Size(121, 21); + this.CB_Super1.TabIndex = 328; + // + // label105 + // + this.label105.AutoSize = true; + this.label105.Location = new System.Drawing.Point(464, 159); + this.label105.Name = "label105"; + this.label105.Size = new System.Drawing.Size(36, 13); + this.label105.TabIndex = 286; + this.label105.Text = "Forme"; + // + // NUP_SuperForme1 + // + this.NUP_SuperForme1.Location = new System.Drawing.Point(769, 30); + this.NUP_SuperForme1.Name = "NUP_SuperForme1"; + this.NUP_SuperForme1.Size = new System.Drawing.Size(41, 20); + this.NUP_SuperForme1.TabIndex = 329; + // + // L_Surf + // + this.L_Surf.AutoSize = true; + this.L_Surf.Location = new System.Drawing.Point(340, 159); + this.L_Surf.Name = "L_Surf"; + this.L_Surf.Size = new System.Drawing.Size(40, 13); + this.L_Surf.TabIndex = 285; + this.L_Surf.Text = "Surfing"; + // + // CB_Surf1 + // + this.CB_Surf1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Surf1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Surf1.FormattingEnabled = true; + this.CB_Surf1.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -12888,45 +12888,45 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_Surf1.Location = new System.Drawing.Point(340, 174); - this.CB_Surf1.Name = "CB_Surf1"; - this.CB_Surf1.Size = new System.Drawing.Size(121, 21); - this.CB_Surf1.TabIndex = 265; - // - // NUP_SuperMin1 - // - this.NUP_SuperMin1.Location = new System.Drawing.Point(816, 30); - this.NUP_SuperMin1.Name = "NUP_SuperMin1"; - this.NUP_SuperMin1.Size = new System.Drawing.Size(41, 20); - this.NUP_SuperMin1.TabIndex = 330; - // - // NUP_SurfForme1 - // - this.NUP_SurfForme1.Location = new System.Drawing.Point(467, 175); - this.NUP_SurfForme1.Name = "NUP_SurfForme1"; - this.NUP_SurfForme1.Size = new System.Drawing.Size(41, 20); - this.NUP_SurfForme1.TabIndex = 266; - // - // NUP_SuperMax1 - // - this.NUP_SuperMax1.Location = new System.Drawing.Point(863, 30); - this.NUP_SuperMax1.Name = "NUP_SuperMax1"; - this.NUP_SuperMax1.Size = new System.Drawing.Size(41, 20); - this.NUP_SuperMax1.TabIndex = 331; - // - // NUP_SurfMin1 - // - this.NUP_SurfMin1.Location = new System.Drawing.Point(514, 175); - this.NUP_SurfMin1.Name = "NUP_SurfMin1"; - this.NUP_SurfMin1.Size = new System.Drawing.Size(41, 20); - this.NUP_SurfMin1.TabIndex = 267; - // - // CB_Super2 - // - this.CB_Super2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Super2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Super2.FormattingEnabled = true; - this.CB_Super2.Items.AddRange(new object[] { + this.CB_Surf1.Location = new System.Drawing.Point(340, 174); + this.CB_Surf1.Name = "CB_Surf1"; + this.CB_Surf1.Size = new System.Drawing.Size(121, 21); + this.CB_Surf1.TabIndex = 265; + // + // NUP_SuperMin1 + // + this.NUP_SuperMin1.Location = new System.Drawing.Point(816, 30); + this.NUP_SuperMin1.Name = "NUP_SuperMin1"; + this.NUP_SuperMin1.Size = new System.Drawing.Size(41, 20); + this.NUP_SuperMin1.TabIndex = 330; + // + // NUP_SurfForme1 + // + this.NUP_SurfForme1.Location = new System.Drawing.Point(467, 175); + this.NUP_SurfForme1.Name = "NUP_SurfForme1"; + this.NUP_SurfForme1.Size = new System.Drawing.Size(41, 20); + this.NUP_SurfForme1.TabIndex = 266; + // + // NUP_SuperMax1 + // + this.NUP_SuperMax1.Location = new System.Drawing.Point(863, 30); + this.NUP_SuperMax1.Name = "NUP_SuperMax1"; + this.NUP_SuperMax1.Size = new System.Drawing.Size(41, 20); + this.NUP_SuperMax1.TabIndex = 331; + // + // NUP_SurfMin1 + // + this.NUP_SurfMin1.Location = new System.Drawing.Point(514, 175); + this.NUP_SurfMin1.Name = "NUP_SurfMin1"; + this.NUP_SurfMin1.Size = new System.Drawing.Size(41, 20); + this.NUP_SurfMin1.TabIndex = 267; + // + // CB_Super2 + // + this.CB_Super2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Super2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Super2.FormattingEnabled = true; + this.CB_Super2.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -13577,31 +13577,31 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_Super2.Location = new System.Drawing.Point(642, 56); - this.CB_Super2.Name = "CB_Super2"; - this.CB_Super2.Size = new System.Drawing.Size(121, 21); - this.CB_Super2.TabIndex = 332; - // - // NUP_SurfMax1 - // - this.NUP_SurfMax1.Location = new System.Drawing.Point(561, 175); - this.NUP_SurfMax1.Name = "NUP_SurfMax1"; - this.NUP_SurfMax1.Size = new System.Drawing.Size(41, 20); - this.NUP_SurfMax1.TabIndex = 268; - // - // NUP_SuperForme2 - // - this.NUP_SuperForme2.Location = new System.Drawing.Point(769, 57); - this.NUP_SuperForme2.Name = "NUP_SuperForme2"; - this.NUP_SuperForme2.Size = new System.Drawing.Size(41, 20); - this.NUP_SuperForme2.TabIndex = 333; - // - // CB_Surf2 - // - this.CB_Surf2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Surf2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Surf2.FormattingEnabled = true; - this.CB_Surf2.Items.AddRange(new object[] { + this.CB_Super2.Location = new System.Drawing.Point(642, 56); + this.CB_Super2.Name = "CB_Super2"; + this.CB_Super2.Size = new System.Drawing.Size(121, 21); + this.CB_Super2.TabIndex = 332; + // + // NUP_SurfMax1 + // + this.NUP_SurfMax1.Location = new System.Drawing.Point(561, 175); + this.NUP_SurfMax1.Name = "NUP_SurfMax1"; + this.NUP_SurfMax1.Size = new System.Drawing.Size(41, 20); + this.NUP_SurfMax1.TabIndex = 268; + // + // NUP_SuperForme2 + // + this.NUP_SuperForme2.Location = new System.Drawing.Point(769, 57); + this.NUP_SuperForme2.Name = "NUP_SuperForme2"; + this.NUP_SuperForme2.Size = new System.Drawing.Size(41, 20); + this.NUP_SuperForme2.TabIndex = 333; + // + // CB_Surf2 + // + this.CB_Surf2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Surf2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Surf2.FormattingEnabled = true; + this.CB_Surf2.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -14252,45 +14252,45 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_Surf2.Location = new System.Drawing.Point(340, 201); - this.CB_Surf2.Name = "CB_Surf2"; - this.CB_Surf2.Size = new System.Drawing.Size(121, 21); - this.CB_Surf2.TabIndex = 269; - // - // NUP_SuperMin2 - // - this.NUP_SuperMin2.Location = new System.Drawing.Point(816, 57); - this.NUP_SuperMin2.Name = "NUP_SuperMin2"; - this.NUP_SuperMin2.Size = new System.Drawing.Size(41, 20); - this.NUP_SuperMin2.TabIndex = 334; - // - // NUP_SurfForme2 - // - this.NUP_SurfForme2.Location = new System.Drawing.Point(467, 202); - this.NUP_SurfForme2.Name = "NUP_SurfForme2"; - this.NUP_SurfForme2.Size = new System.Drawing.Size(41, 20); - this.NUP_SurfForme2.TabIndex = 270; - // - // NUP_SuperMax2 - // - this.NUP_SuperMax2.Location = new System.Drawing.Point(863, 57); - this.NUP_SuperMax2.Name = "NUP_SuperMax2"; - this.NUP_SuperMax2.Size = new System.Drawing.Size(41, 20); - this.NUP_SuperMax2.TabIndex = 335; - // - // NUP_SurfMin2 - // - this.NUP_SurfMin2.Location = new System.Drawing.Point(514, 202); - this.NUP_SurfMin2.Name = "NUP_SurfMin2"; - this.NUP_SurfMin2.Size = new System.Drawing.Size(41, 20); - this.NUP_SurfMin2.TabIndex = 271; - // - // CB_Super3 - // - this.CB_Super3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Super3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Super3.FormattingEnabled = true; - this.CB_Super3.Items.AddRange(new object[] { + this.CB_Surf2.Location = new System.Drawing.Point(340, 201); + this.CB_Surf2.Name = "CB_Surf2"; + this.CB_Surf2.Size = new System.Drawing.Size(121, 21); + this.CB_Surf2.TabIndex = 269; + // + // NUP_SuperMin2 + // + this.NUP_SuperMin2.Location = new System.Drawing.Point(816, 57); + this.NUP_SuperMin2.Name = "NUP_SuperMin2"; + this.NUP_SuperMin2.Size = new System.Drawing.Size(41, 20); + this.NUP_SuperMin2.TabIndex = 334; + // + // NUP_SurfForme2 + // + this.NUP_SurfForme2.Location = new System.Drawing.Point(467, 202); + this.NUP_SurfForme2.Name = "NUP_SurfForme2"; + this.NUP_SurfForme2.Size = new System.Drawing.Size(41, 20); + this.NUP_SurfForme2.TabIndex = 270; + // + // NUP_SuperMax2 + // + this.NUP_SuperMax2.Location = new System.Drawing.Point(863, 57); + this.NUP_SuperMax2.Name = "NUP_SuperMax2"; + this.NUP_SuperMax2.Size = new System.Drawing.Size(41, 20); + this.NUP_SuperMax2.TabIndex = 335; + // + // NUP_SurfMin2 + // + this.NUP_SurfMin2.Location = new System.Drawing.Point(514, 202); + this.NUP_SurfMin2.Name = "NUP_SurfMin2"; + this.NUP_SurfMin2.Size = new System.Drawing.Size(41, 20); + this.NUP_SurfMin2.TabIndex = 271; + // + // CB_Super3 + // + this.CB_Super3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Super3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Super3.FormattingEnabled = true; + this.CB_Super3.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -14941,59 +14941,59 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_Super3.Location = new System.Drawing.Point(642, 83); - this.CB_Super3.Name = "CB_Super3"; - this.CB_Super3.Size = new System.Drawing.Size(121, 21); - this.CB_Super3.TabIndex = 336; - // - // NUP_SurfMax5 - // - this.NUP_SurfMax5.Location = new System.Drawing.Point(561, 283); - this.NUP_SurfMax5.Name = "NUP_SurfMax5"; - this.NUP_SurfMax5.Size = new System.Drawing.Size(41, 20); - this.NUP_SurfMax5.TabIndex = 284; - // - // NUP_SuperForme3 - // - this.NUP_SuperForme3.Location = new System.Drawing.Point(769, 84); - this.NUP_SuperForme3.Name = "NUP_SuperForme3"; - this.NUP_SuperForme3.Size = new System.Drawing.Size(41, 20); - this.NUP_SuperForme3.TabIndex = 337; - // - // NUP_SurfMax2 - // - this.NUP_SurfMax2.Location = new System.Drawing.Point(561, 202); - this.NUP_SurfMax2.Name = "NUP_SurfMax2"; - this.NUP_SurfMax2.Size = new System.Drawing.Size(41, 20); - this.NUP_SurfMax2.TabIndex = 272; - // - // NUP_SuperMin3 - // - this.NUP_SuperMin3.Location = new System.Drawing.Point(816, 84); - this.NUP_SuperMin3.Name = "NUP_SuperMin3"; - this.NUP_SuperMin3.Size = new System.Drawing.Size(41, 20); - this.NUP_SuperMin3.TabIndex = 338; - // - // NUP_SurfMin5 - // - this.NUP_SurfMin5.Location = new System.Drawing.Point(514, 283); - this.NUP_SurfMin5.Name = "NUP_SurfMin5"; - this.NUP_SurfMin5.Size = new System.Drawing.Size(41, 20); - this.NUP_SurfMin5.TabIndex = 283; - // - // NUP_SuperMax3 - // - this.NUP_SuperMax3.Location = new System.Drawing.Point(863, 84); - this.NUP_SuperMax3.Name = "NUP_SuperMax3"; - this.NUP_SuperMax3.Size = new System.Drawing.Size(41, 20); - this.NUP_SuperMax3.TabIndex = 339; - // - // CB_Surf3 - // - this.CB_Surf3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Surf3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Surf3.FormattingEnabled = true; - this.CB_Surf3.Items.AddRange(new object[] { + this.CB_Super3.Location = new System.Drawing.Point(642, 83); + this.CB_Super3.Name = "CB_Super3"; + this.CB_Super3.Size = new System.Drawing.Size(121, 21); + this.CB_Super3.TabIndex = 336; + // + // NUP_SurfMax5 + // + this.NUP_SurfMax5.Location = new System.Drawing.Point(561, 283); + this.NUP_SurfMax5.Name = "NUP_SurfMax5"; + this.NUP_SurfMax5.Size = new System.Drawing.Size(41, 20); + this.NUP_SurfMax5.TabIndex = 284; + // + // NUP_SuperForme3 + // + this.NUP_SuperForme3.Location = new System.Drawing.Point(769, 84); + this.NUP_SuperForme3.Name = "NUP_SuperForme3"; + this.NUP_SuperForme3.Size = new System.Drawing.Size(41, 20); + this.NUP_SuperForme3.TabIndex = 337; + // + // NUP_SurfMax2 + // + this.NUP_SurfMax2.Location = new System.Drawing.Point(561, 202); + this.NUP_SurfMax2.Name = "NUP_SurfMax2"; + this.NUP_SurfMax2.Size = new System.Drawing.Size(41, 20); + this.NUP_SurfMax2.TabIndex = 272; + // + // NUP_SuperMin3 + // + this.NUP_SuperMin3.Location = new System.Drawing.Point(816, 84); + this.NUP_SuperMin3.Name = "NUP_SuperMin3"; + this.NUP_SuperMin3.Size = new System.Drawing.Size(41, 20); + this.NUP_SuperMin3.TabIndex = 338; + // + // NUP_SurfMin5 + // + this.NUP_SurfMin5.Location = new System.Drawing.Point(514, 283); + this.NUP_SurfMin5.Name = "NUP_SurfMin5"; + this.NUP_SurfMin5.Size = new System.Drawing.Size(41, 20); + this.NUP_SurfMin5.TabIndex = 283; + // + // NUP_SuperMax3 + // + this.NUP_SuperMax3.Location = new System.Drawing.Point(863, 84); + this.NUP_SuperMax3.Name = "NUP_SuperMax3"; + this.NUP_SuperMax3.Size = new System.Drawing.Size(41, 20); + this.NUP_SuperMax3.TabIndex = 339; + // + // CB_Surf3 + // + this.CB_Surf3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Surf3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Surf3.FormattingEnabled = true; + this.CB_Surf3.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -15644,58 +15644,58 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_Surf3.Location = new System.Drawing.Point(340, 228); - this.CB_Surf3.Name = "CB_Surf3"; - this.CB_Surf3.Size = new System.Drawing.Size(121, 21); - this.CB_Surf3.TabIndex = 273; - // - // label49 - // - this.label49.AutoSize = true; - this.label49.Location = new System.Drawing.Point(615, 86); - this.label49.Name = "label49"; - this.label49.Size = new System.Drawing.Size(21, 13); - this.label49.TabIndex = 346; - this.label49.Text = "5%"; - // - // NUP_SurfForme5 - // - this.NUP_SurfForme5.Location = new System.Drawing.Point(467, 283); - this.NUP_SurfForme5.Name = "NUP_SurfForme5"; - this.NUP_SurfForme5.Size = new System.Drawing.Size(41, 20); - this.NUP_SurfForme5.TabIndex = 282; - // - // label98 - // - this.label98.AutoSize = true; - this.label98.Location = new System.Drawing.Point(609, 59); - this.label98.Name = "label98"; - this.label98.Size = new System.Drawing.Size(27, 13); - this.label98.TabIndex = 345; - this.label98.Text = "35%"; - // - // NUP_SurfForme3 - // - this.NUP_SurfForme3.Location = new System.Drawing.Point(467, 229); - this.NUP_SurfForme3.Name = "NUP_SurfForme3"; - this.NUP_SurfForme3.Size = new System.Drawing.Size(41, 20); - this.NUP_SurfForme3.TabIndex = 274; - // - // label99 - // - this.label99.AutoSize = true; - this.label99.Location = new System.Drawing.Point(609, 32); - this.label99.Name = "label99"; - this.label99.Size = new System.Drawing.Size(27, 13); - this.label99.TabIndex = 344; - this.label99.Text = "60%"; - // - // CB_Surf5 - // - this.CB_Surf5.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Surf5.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Surf5.FormattingEnabled = true; - this.CB_Surf5.Items.AddRange(new object[] { + this.CB_Surf3.Location = new System.Drawing.Point(340, 228); + this.CB_Surf3.Name = "CB_Surf3"; + this.CB_Surf3.Size = new System.Drawing.Size(121, 21); + this.CB_Surf3.TabIndex = 273; + // + // label49 + // + this.label49.AutoSize = true; + this.label49.Location = new System.Drawing.Point(615, 86); + this.label49.Name = "label49"; + this.label49.Size = new System.Drawing.Size(21, 13); + this.label49.TabIndex = 346; + this.label49.Text = "5%"; + // + // NUP_SurfForme5 + // + this.NUP_SurfForme5.Location = new System.Drawing.Point(467, 283); + this.NUP_SurfForme5.Name = "NUP_SurfForme5"; + this.NUP_SurfForme5.Size = new System.Drawing.Size(41, 20); + this.NUP_SurfForme5.TabIndex = 282; + // + // label98 + // + this.label98.AutoSize = true; + this.label98.Location = new System.Drawing.Point(609, 59); + this.label98.Name = "label98"; + this.label98.Size = new System.Drawing.Size(27, 13); + this.label98.TabIndex = 345; + this.label98.Text = "35%"; + // + // NUP_SurfForme3 + // + this.NUP_SurfForme3.Location = new System.Drawing.Point(467, 229); + this.NUP_SurfForme3.Name = "NUP_SurfForme3"; + this.NUP_SurfForme3.Size = new System.Drawing.Size(41, 20); + this.NUP_SurfForme3.TabIndex = 274; + // + // label99 + // + this.label99.AutoSize = true; + this.label99.Location = new System.Drawing.Point(609, 32); + this.label99.Name = "label99"; + this.label99.Size = new System.Drawing.Size(27, 13); + this.label99.TabIndex = 344; + this.label99.Text = "60%"; + // + // CB_Surf5 + // + this.CB_Surf5.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Surf5.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Surf5.FormattingEnabled = true; + this.CB_Surf5.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -16346,81 +16346,81 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_Surf5.Location = new System.Drawing.Point(340, 282); - this.CB_Surf5.Name = "CB_Surf5"; - this.CB_Surf5.Size = new System.Drawing.Size(121, 21); - this.CB_Surf5.TabIndex = 281; - // - // label100 - // - this.label100.AutoSize = true; - this.label100.Location = new System.Drawing.Point(766, 14); - this.label100.Name = "label100"; - this.label100.Size = new System.Drawing.Size(36, 13); - this.label100.TabIndex = 341; - this.label100.Text = "Forme"; - // - // NUP_SurfMin3 - // - this.NUP_SurfMin3.Location = new System.Drawing.Point(514, 229); - this.NUP_SurfMin3.Name = "NUP_SurfMin3"; - this.NUP_SurfMin3.Size = new System.Drawing.Size(41, 20); - this.NUP_SurfMin3.TabIndex = 275; - // - // label101 - // - this.label101.AutoSize = true; - this.label101.Location = new System.Drawing.Point(813, 14); - this.label101.Name = "label101"; - this.label101.Size = new System.Drawing.Size(24, 13); - this.label101.TabIndex = 342; - this.label101.Text = "Min"; - // - // NUP_SurfMax4 - // - this.NUP_SurfMax4.Location = new System.Drawing.Point(561, 256); - this.NUP_SurfMax4.Name = "NUP_SurfMax4"; - this.NUP_SurfMax4.Size = new System.Drawing.Size(41, 20); - this.NUP_SurfMax4.TabIndex = 280; - // - // label102 - // - this.label102.AutoSize = true; - this.label102.Location = new System.Drawing.Point(860, 14); - this.label102.Name = "label102"; - this.label102.Size = new System.Drawing.Size(27, 13); - this.label102.TabIndex = 343; - this.label102.Text = "Max"; - // - // NUP_SurfMax3 - // - this.NUP_SurfMax3.Location = new System.Drawing.Point(561, 229); - this.NUP_SurfMax3.Name = "NUP_SurfMax3"; - this.NUP_SurfMax3.Size = new System.Drawing.Size(41, 20); - this.NUP_SurfMax3.TabIndex = 276; - // - // L_Good - // - this.L_Good.AutoSize = true; - this.L_Good.Location = new System.Drawing.Point(340, 13); - this.L_Good.Name = "L_Good"; - this.L_Good.Size = new System.Drawing.Size(56, 13); - this.L_Good.TabIndex = 321; - this.L_Good.Text = "Good Rod"; - // - // NUP_SurfMin4 - // - this.NUP_SurfMin4.Location = new System.Drawing.Point(514, 256); - this.NUP_SurfMin4.Name = "NUP_SurfMin4"; - this.NUP_SurfMin4.Size = new System.Drawing.Size(41, 20); - this.NUP_SurfMin4.TabIndex = 279; - // - // CB_Good1 - // - this.CB_Good1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Good1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Good1.FormattingEnabled = true; - this.CB_Good1.Items.AddRange(new object[] { + this.CB_Surf5.Location = new System.Drawing.Point(340, 282); + this.CB_Surf5.Name = "CB_Surf5"; + this.CB_Surf5.Size = new System.Drawing.Size(121, 21); + this.CB_Surf5.TabIndex = 281; + // + // label100 + // + this.label100.AutoSize = true; + this.label100.Location = new System.Drawing.Point(766, 14); + this.label100.Name = "label100"; + this.label100.Size = new System.Drawing.Size(36, 13); + this.label100.TabIndex = 341; + this.label100.Text = "Forme"; + // + // NUP_SurfMin3 + // + this.NUP_SurfMin3.Location = new System.Drawing.Point(514, 229); + this.NUP_SurfMin3.Name = "NUP_SurfMin3"; + this.NUP_SurfMin3.Size = new System.Drawing.Size(41, 20); + this.NUP_SurfMin3.TabIndex = 275; + // + // label101 + // + this.label101.AutoSize = true; + this.label101.Location = new System.Drawing.Point(813, 14); + this.label101.Name = "label101"; + this.label101.Size = new System.Drawing.Size(24, 13); + this.label101.TabIndex = 342; + this.label101.Text = "Min"; + // + // NUP_SurfMax4 + // + this.NUP_SurfMax4.Location = new System.Drawing.Point(561, 256); + this.NUP_SurfMax4.Name = "NUP_SurfMax4"; + this.NUP_SurfMax4.Size = new System.Drawing.Size(41, 20); + this.NUP_SurfMax4.TabIndex = 280; + // + // label102 + // + this.label102.AutoSize = true; + this.label102.Location = new System.Drawing.Point(860, 14); + this.label102.Name = "label102"; + this.label102.Size = new System.Drawing.Size(27, 13); + this.label102.TabIndex = 343; + this.label102.Text = "Max"; + // + // NUP_SurfMax3 + // + this.NUP_SurfMax3.Location = new System.Drawing.Point(561, 229); + this.NUP_SurfMax3.Name = "NUP_SurfMax3"; + this.NUP_SurfMax3.Size = new System.Drawing.Size(41, 20); + this.NUP_SurfMax3.TabIndex = 276; + // + // L_Good + // + this.L_Good.AutoSize = true; + this.L_Good.Location = new System.Drawing.Point(340, 13); + this.L_Good.Name = "L_Good"; + this.L_Good.Size = new System.Drawing.Size(56, 13); + this.L_Good.TabIndex = 321; + this.L_Good.Text = "Good Rod"; + // + // NUP_SurfMin4 + // + this.NUP_SurfMin4.Location = new System.Drawing.Point(514, 256); + this.NUP_SurfMin4.Name = "NUP_SurfMin4"; + this.NUP_SurfMin4.Size = new System.Drawing.Size(41, 20); + this.NUP_SurfMin4.TabIndex = 279; + // + // CB_Good1 + // + this.CB_Good1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Good1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Good1.FormattingEnabled = true; + this.CB_Good1.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -17071,17 +17071,17 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_Good1.Location = new System.Drawing.Point(340, 29); - this.CB_Good1.Name = "CB_Good1"; - this.CB_Good1.Size = new System.Drawing.Size(121, 21); - this.CB_Good1.TabIndex = 309; - // - // CB_Surf4 - // - this.CB_Surf4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Surf4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Surf4.FormattingEnabled = true; - this.CB_Surf4.Items.AddRange(new object[] { + this.CB_Good1.Location = new System.Drawing.Point(340, 29); + this.CB_Good1.Name = "CB_Good1"; + this.CB_Good1.Size = new System.Drawing.Size(121, 21); + this.CB_Good1.TabIndex = 309; + // + // CB_Surf4 + // + this.CB_Surf4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Surf4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Surf4.FormattingEnabled = true; + this.CB_Surf4.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -17732,45 +17732,45 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_Surf4.Location = new System.Drawing.Point(340, 255); - this.CB_Surf4.Name = "CB_Surf4"; - this.CB_Surf4.Size = new System.Drawing.Size(121, 21); - this.CB_Surf4.TabIndex = 277; - // - // NUP_GoodForme1 - // - this.NUP_GoodForme1.Location = new System.Drawing.Point(467, 30); - this.NUP_GoodForme1.Name = "NUP_GoodForme1"; - this.NUP_GoodForme1.Size = new System.Drawing.Size(41, 20); - this.NUP_GoodForme1.TabIndex = 310; - // - // NUP_SurfForme4 - // - this.NUP_SurfForme4.Location = new System.Drawing.Point(467, 256); - this.NUP_SurfForme4.Name = "NUP_SurfForme4"; - this.NUP_SurfForme4.Size = new System.Drawing.Size(41, 20); - this.NUP_SurfForme4.TabIndex = 278; - // - // NUP_GoodMin1 - // - this.NUP_GoodMin1.Location = new System.Drawing.Point(514, 30); - this.NUP_GoodMin1.Name = "NUP_GoodMin1"; - this.NUP_GoodMin1.Size = new System.Drawing.Size(41, 20); - this.NUP_GoodMin1.TabIndex = 311; - // - // NUP_GoodMax1 - // - this.NUP_GoodMax1.Location = new System.Drawing.Point(561, 30); - this.NUP_GoodMax1.Name = "NUP_GoodMax1"; - this.NUP_GoodMax1.Size = new System.Drawing.Size(41, 20); - this.NUP_GoodMax1.TabIndex = 312; - // - // CB_Good2 - // - this.CB_Good2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Good2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Good2.FormattingEnabled = true; - this.CB_Good2.Items.AddRange(new object[] { + this.CB_Surf4.Location = new System.Drawing.Point(340, 255); + this.CB_Surf4.Name = "CB_Surf4"; + this.CB_Surf4.Size = new System.Drawing.Size(121, 21); + this.CB_Surf4.TabIndex = 277; + // + // NUP_GoodForme1 + // + this.NUP_GoodForme1.Location = new System.Drawing.Point(467, 30); + this.NUP_GoodForme1.Name = "NUP_GoodForme1"; + this.NUP_GoodForme1.Size = new System.Drawing.Size(41, 20); + this.NUP_GoodForme1.TabIndex = 310; + // + // NUP_SurfForme4 + // + this.NUP_SurfForme4.Location = new System.Drawing.Point(467, 256); + this.NUP_SurfForme4.Name = "NUP_SurfForme4"; + this.NUP_SurfForme4.Size = new System.Drawing.Size(41, 20); + this.NUP_SurfForme4.TabIndex = 278; + // + // NUP_GoodMin1 + // + this.NUP_GoodMin1.Location = new System.Drawing.Point(514, 30); + this.NUP_GoodMin1.Name = "NUP_GoodMin1"; + this.NUP_GoodMin1.Size = new System.Drawing.Size(41, 20); + this.NUP_GoodMin1.TabIndex = 311; + // + // NUP_GoodMax1 + // + this.NUP_GoodMax1.Location = new System.Drawing.Point(561, 30); + this.NUP_GoodMax1.Name = "NUP_GoodMax1"; + this.NUP_GoodMax1.Size = new System.Drawing.Size(41, 20); + this.NUP_GoodMax1.TabIndex = 312; + // + // CB_Good2 + // + this.CB_Good2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Good2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Good2.FormattingEnabled = true; + this.CB_Good2.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -18421,38 +18421,38 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_Good2.Location = new System.Drawing.Point(340, 56); - this.CB_Good2.Name = "CB_Good2"; - this.CB_Good2.Size = new System.Drawing.Size(121, 21); - this.CB_Good2.TabIndex = 313; - // - // NUP_GoodForme2 - // - this.NUP_GoodForme2.Location = new System.Drawing.Point(467, 57); - this.NUP_GoodForme2.Name = "NUP_GoodForme2"; - this.NUP_GoodForme2.Size = new System.Drawing.Size(41, 20); - this.NUP_GoodForme2.TabIndex = 314; - // - // NUP_GoodMin2 - // - this.NUP_GoodMin2.Location = new System.Drawing.Point(514, 57); - this.NUP_GoodMin2.Name = "NUP_GoodMin2"; - this.NUP_GoodMin2.Size = new System.Drawing.Size(41, 20); - this.NUP_GoodMin2.TabIndex = 315; - // - // NUP_GoodMax2 - // - this.NUP_GoodMax2.Location = new System.Drawing.Point(561, 57); - this.NUP_GoodMax2.Name = "NUP_GoodMax2"; - this.NUP_GoodMax2.Size = new System.Drawing.Size(41, 20); - this.NUP_GoodMax2.TabIndex = 316; - // - // CB_Good3 - // - this.CB_Good3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Good3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Good3.FormattingEnabled = true; - this.CB_Good3.Items.AddRange(new object[] { + this.CB_Good2.Location = new System.Drawing.Point(340, 56); + this.CB_Good2.Name = "CB_Good2"; + this.CB_Good2.Size = new System.Drawing.Size(121, 21); + this.CB_Good2.TabIndex = 313; + // + // NUP_GoodForme2 + // + this.NUP_GoodForme2.Location = new System.Drawing.Point(467, 57); + this.NUP_GoodForme2.Name = "NUP_GoodForme2"; + this.NUP_GoodForme2.Size = new System.Drawing.Size(41, 20); + this.NUP_GoodForme2.TabIndex = 314; + // + // NUP_GoodMin2 + // + this.NUP_GoodMin2.Location = new System.Drawing.Point(514, 57); + this.NUP_GoodMin2.Name = "NUP_GoodMin2"; + this.NUP_GoodMin2.Size = new System.Drawing.Size(41, 20); + this.NUP_GoodMin2.TabIndex = 315; + // + // NUP_GoodMax2 + // + this.NUP_GoodMax2.Location = new System.Drawing.Point(561, 57); + this.NUP_GoodMax2.Name = "NUP_GoodMax2"; + this.NUP_GoodMax2.Size = new System.Drawing.Size(41, 20); + this.NUP_GoodMax2.TabIndex = 316; + // + // CB_Good3 + // + this.CB_Good3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Good3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Good3.FormattingEnabled = true; + this.CB_Good3.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -19103,101 +19103,101 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_Good3.Location = new System.Drawing.Point(340, 83); - this.CB_Good3.Name = "CB_Good3"; - this.CB_Good3.Size = new System.Drawing.Size(121, 21); - this.CB_Good3.TabIndex = 317; - // - // NUP_GoodForme3 - // - this.NUP_GoodForme3.Location = new System.Drawing.Point(467, 84); - this.NUP_GoodForme3.Name = "NUP_GoodForme3"; - this.NUP_GoodForme3.Size = new System.Drawing.Size(41, 20); - this.NUP_GoodForme3.TabIndex = 318; - // - // NUP_GoodMin3 - // - this.NUP_GoodMin3.Location = new System.Drawing.Point(514, 84); - this.NUP_GoodMin3.Name = "NUP_GoodMin3"; - this.NUP_GoodMin3.Size = new System.Drawing.Size(41, 20); - this.NUP_GoodMin3.TabIndex = 319; - // - // NUP_GoodMax3 - // - this.NUP_GoodMax3.Location = new System.Drawing.Point(561, 84); - this.NUP_GoodMax3.Name = "NUP_GoodMax3"; - this.NUP_GoodMax3.Size = new System.Drawing.Size(41, 20); - this.NUP_GoodMax3.TabIndex = 320; - // - // label27 - // - this.label27.AutoSize = true; - this.label27.Location = new System.Drawing.Point(313, 86); - this.label27.Name = "label27"; - this.label27.Size = new System.Drawing.Size(21, 13); - this.label27.TabIndex = 327; - this.label27.Text = "5%"; - // - // label28 - // - this.label28.AutoSize = true; - this.label28.Location = new System.Drawing.Point(307, 59); - this.label28.Name = "label28"; - this.label28.Size = new System.Drawing.Size(27, 13); - this.label28.TabIndex = 326; - this.label28.Text = "35%"; - // - // label29 - // - this.label29.AutoSize = true; - this.label29.Location = new System.Drawing.Point(307, 32); - this.label29.Name = "label29"; - this.label29.Size = new System.Drawing.Size(27, 13); - this.label29.TabIndex = 325; - this.label29.Text = "60%"; - // - // label30 - // - this.label30.AutoSize = true; - this.label30.Location = new System.Drawing.Point(464, 14); - this.label30.Name = "label30"; - this.label30.Size = new System.Drawing.Size(36, 13); - this.label30.TabIndex = 322; - this.label30.Text = "Forme"; - // - // label46 - // - this.label46.AutoSize = true; - this.label46.Location = new System.Drawing.Point(511, 14); - this.label46.Name = "label46"; - this.label46.Size = new System.Drawing.Size(24, 13); - this.label46.TabIndex = 323; - this.label46.Text = "Min"; - // - // label47 - // - this.label47.AutoSize = true; - this.label47.Location = new System.Drawing.Point(558, 14); - this.label47.Name = "label47"; - this.label47.Size = new System.Drawing.Size(27, 13); - this.label47.TabIndex = 324; - this.label47.Text = "Max"; - // - // L_Old - // - this.L_Old.AutoSize = true; - this.L_Old.Location = new System.Drawing.Point(39, 13); - this.L_Old.Name = "L_Old"; - this.L_Old.Size = new System.Drawing.Size(46, 13); - this.L_Old.TabIndex = 302; - this.L_Old.Text = "Old Rod"; - // - // CB_Old1 - // - this.CB_Old1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Old1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Old1.FormattingEnabled = true; - this.CB_Old1.Items.AddRange(new object[] { + this.CB_Good3.Location = new System.Drawing.Point(340, 83); + this.CB_Good3.Name = "CB_Good3"; + this.CB_Good3.Size = new System.Drawing.Size(121, 21); + this.CB_Good3.TabIndex = 317; + // + // NUP_GoodForme3 + // + this.NUP_GoodForme3.Location = new System.Drawing.Point(467, 84); + this.NUP_GoodForme3.Name = "NUP_GoodForme3"; + this.NUP_GoodForme3.Size = new System.Drawing.Size(41, 20); + this.NUP_GoodForme3.TabIndex = 318; + // + // NUP_GoodMin3 + // + this.NUP_GoodMin3.Location = new System.Drawing.Point(514, 84); + this.NUP_GoodMin3.Name = "NUP_GoodMin3"; + this.NUP_GoodMin3.Size = new System.Drawing.Size(41, 20); + this.NUP_GoodMin3.TabIndex = 319; + // + // NUP_GoodMax3 + // + this.NUP_GoodMax3.Location = new System.Drawing.Point(561, 84); + this.NUP_GoodMax3.Name = "NUP_GoodMax3"; + this.NUP_GoodMax3.Size = new System.Drawing.Size(41, 20); + this.NUP_GoodMax3.TabIndex = 320; + // + // label27 + // + this.label27.AutoSize = true; + this.label27.Location = new System.Drawing.Point(313, 86); + this.label27.Name = "label27"; + this.label27.Size = new System.Drawing.Size(21, 13); + this.label27.TabIndex = 327; + this.label27.Text = "5%"; + // + // label28 + // + this.label28.AutoSize = true; + this.label28.Location = new System.Drawing.Point(307, 59); + this.label28.Name = "label28"; + this.label28.Size = new System.Drawing.Size(27, 13); + this.label28.TabIndex = 326; + this.label28.Text = "35%"; + // + // label29 + // + this.label29.AutoSize = true; + this.label29.Location = new System.Drawing.Point(307, 32); + this.label29.Name = "label29"; + this.label29.Size = new System.Drawing.Size(27, 13); + this.label29.TabIndex = 325; + this.label29.Text = "60%"; + // + // label30 + // + this.label30.AutoSize = true; + this.label30.Location = new System.Drawing.Point(464, 14); + this.label30.Name = "label30"; + this.label30.Size = new System.Drawing.Size(36, 13); + this.label30.TabIndex = 322; + this.label30.Text = "Forme"; + // + // label46 + // + this.label46.AutoSize = true; + this.label46.Location = new System.Drawing.Point(511, 14); + this.label46.Name = "label46"; + this.label46.Size = new System.Drawing.Size(24, 13); + this.label46.TabIndex = 323; + this.label46.Text = "Min"; + // + // label47 + // + this.label47.AutoSize = true; + this.label47.Location = new System.Drawing.Point(558, 14); + this.label47.Name = "label47"; + this.label47.Size = new System.Drawing.Size(27, 13); + this.label47.TabIndex = 324; + this.label47.Text = "Max"; + // + // L_Old + // + this.L_Old.AutoSize = true; + this.L_Old.Location = new System.Drawing.Point(39, 13); + this.L_Old.Name = "L_Old"; + this.L_Old.Size = new System.Drawing.Size(46, 13); + this.L_Old.TabIndex = 302; + this.L_Old.Text = "Old Rod"; + // + // CB_Old1 + // + this.CB_Old1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Old1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Old1.FormattingEnabled = true; + this.CB_Old1.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -19848,38 +19848,38 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_Old1.Location = new System.Drawing.Point(42, 29); - this.CB_Old1.Name = "CB_Old1"; - this.CB_Old1.Size = new System.Drawing.Size(121, 21); - this.CB_Old1.TabIndex = 290; - // - // NUP_OldForme1 - // - this.NUP_OldForme1.Location = new System.Drawing.Point(169, 30); - this.NUP_OldForme1.Name = "NUP_OldForme1"; - this.NUP_OldForme1.Size = new System.Drawing.Size(41, 20); - this.NUP_OldForme1.TabIndex = 291; - // - // NUP_OldMin1 - // - this.NUP_OldMin1.Location = new System.Drawing.Point(216, 30); - this.NUP_OldMin1.Name = "NUP_OldMin1"; - this.NUP_OldMin1.Size = new System.Drawing.Size(41, 20); - this.NUP_OldMin1.TabIndex = 292; - // - // NUP_OldMax1 - // - this.NUP_OldMax1.Location = new System.Drawing.Point(263, 30); - this.NUP_OldMax1.Name = "NUP_OldMax1"; - this.NUP_OldMax1.Size = new System.Drawing.Size(41, 20); - this.NUP_OldMax1.TabIndex = 293; - // - // CB_Old2 - // - this.CB_Old2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Old2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Old2.FormattingEnabled = true; - this.CB_Old2.Items.AddRange(new object[] { + this.CB_Old1.Location = new System.Drawing.Point(42, 29); + this.CB_Old1.Name = "CB_Old1"; + this.CB_Old1.Size = new System.Drawing.Size(121, 21); + this.CB_Old1.TabIndex = 290; + // + // NUP_OldForme1 + // + this.NUP_OldForme1.Location = new System.Drawing.Point(169, 30); + this.NUP_OldForme1.Name = "NUP_OldForme1"; + this.NUP_OldForme1.Size = new System.Drawing.Size(41, 20); + this.NUP_OldForme1.TabIndex = 291; + // + // NUP_OldMin1 + // + this.NUP_OldMin1.Location = new System.Drawing.Point(216, 30); + this.NUP_OldMin1.Name = "NUP_OldMin1"; + this.NUP_OldMin1.Size = new System.Drawing.Size(41, 20); + this.NUP_OldMin1.TabIndex = 292; + // + // NUP_OldMax1 + // + this.NUP_OldMax1.Location = new System.Drawing.Point(263, 30); + this.NUP_OldMax1.Name = "NUP_OldMax1"; + this.NUP_OldMax1.Size = new System.Drawing.Size(41, 20); + this.NUP_OldMax1.TabIndex = 293; + // + // CB_Old2 + // + this.CB_Old2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Old2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Old2.FormattingEnabled = true; + this.CB_Old2.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -20530,38 +20530,38 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_Old2.Location = new System.Drawing.Point(42, 56); - this.CB_Old2.Name = "CB_Old2"; - this.CB_Old2.Size = new System.Drawing.Size(121, 21); - this.CB_Old2.TabIndex = 294; - // - // NUP_OldForme2 - // - this.NUP_OldForme2.Location = new System.Drawing.Point(169, 57); - this.NUP_OldForme2.Name = "NUP_OldForme2"; - this.NUP_OldForme2.Size = new System.Drawing.Size(41, 20); - this.NUP_OldForme2.TabIndex = 295; - // - // NUP_OldMin2 - // - this.NUP_OldMin2.Location = new System.Drawing.Point(216, 57); - this.NUP_OldMin2.Name = "NUP_OldMin2"; - this.NUP_OldMin2.Size = new System.Drawing.Size(41, 20); - this.NUP_OldMin2.TabIndex = 296; - // - // NUP_OldMax2 - // - this.NUP_OldMax2.Location = new System.Drawing.Point(263, 57); - this.NUP_OldMax2.Name = "NUP_OldMax2"; - this.NUP_OldMax2.Size = new System.Drawing.Size(41, 20); - this.NUP_OldMax2.TabIndex = 297; - // - // CB_Old3 - // - this.CB_Old3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Old3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Old3.FormattingEnabled = true; - this.CB_Old3.Items.AddRange(new object[] { + this.CB_Old2.Location = new System.Drawing.Point(42, 56); + this.CB_Old2.Name = "CB_Old2"; + this.CB_Old2.Size = new System.Drawing.Size(121, 21); + this.CB_Old2.TabIndex = 294; + // + // NUP_OldForme2 + // + this.NUP_OldForme2.Location = new System.Drawing.Point(169, 57); + this.NUP_OldForme2.Name = "NUP_OldForme2"; + this.NUP_OldForme2.Size = new System.Drawing.Size(41, 20); + this.NUP_OldForme2.TabIndex = 295; + // + // NUP_OldMin2 + // + this.NUP_OldMin2.Location = new System.Drawing.Point(216, 57); + this.NUP_OldMin2.Name = "NUP_OldMin2"; + this.NUP_OldMin2.Size = new System.Drawing.Size(41, 20); + this.NUP_OldMin2.TabIndex = 296; + // + // NUP_OldMax2 + // + this.NUP_OldMax2.Location = new System.Drawing.Point(263, 57); + this.NUP_OldMax2.Name = "NUP_OldMax2"; + this.NUP_OldMax2.Size = new System.Drawing.Size(41, 20); + this.NUP_OldMax2.TabIndex = 297; + // + // CB_Old3 + // + this.CB_Old3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Old3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Old3.FormattingEnabled = true; + this.CB_Old3.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -21212,881 +21212,881 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_Old3.Location = new System.Drawing.Point(42, 83); - this.CB_Old3.Name = "CB_Old3"; - this.CB_Old3.Size = new System.Drawing.Size(121, 21); - this.CB_Old3.TabIndex = 298; - // - // NUP_OldForme3 - // - this.NUP_OldForme3.Location = new System.Drawing.Point(169, 84); - this.NUP_OldForme3.Name = "NUP_OldForme3"; - this.NUP_OldForme3.Size = new System.Drawing.Size(41, 20); - this.NUP_OldForme3.TabIndex = 299; - // - // NUP_OldMin3 - // - this.NUP_OldMin3.Location = new System.Drawing.Point(216, 84); - this.NUP_OldMin3.Name = "NUP_OldMin3"; - this.NUP_OldMin3.Size = new System.Drawing.Size(41, 20); - this.NUP_OldMin3.TabIndex = 300; - // - // NUP_OldMax3 - // - this.NUP_OldMax3.Location = new System.Drawing.Point(263, 84); - this.NUP_OldMax3.Name = "NUP_OldMax3"; - this.NUP_OldMax3.Size = new System.Drawing.Size(41, 20); - this.NUP_OldMax3.TabIndex = 301; - // - // label45 - // - this.label45.AutoSize = true; - this.label45.Location = new System.Drawing.Point(15, 86); - this.label45.Name = "label45"; - this.label45.Size = new System.Drawing.Size(21, 13); - this.label45.TabIndex = 308; - this.label45.Text = "5%"; - // - // label44 - // - this.label44.AutoSize = true; - this.label44.Location = new System.Drawing.Point(9, 59); - this.label44.Name = "label44"; - this.label44.Size = new System.Drawing.Size(27, 13); - this.label44.TabIndex = 307; - this.label44.Text = "35%"; - // - // label43 - // - this.label43.AutoSize = true; - this.label43.Location = new System.Drawing.Point(9, 32); - this.label43.Name = "label43"; - this.label43.Size = new System.Drawing.Size(27, 13); - this.label43.TabIndex = 306; - this.label43.Text = "60%"; - // - // label23 - // - this.label23.AutoSize = true; - this.label23.Location = new System.Drawing.Point(166, 14); - this.label23.Name = "label23"; - this.label23.Size = new System.Drawing.Size(36, 13); - this.label23.TabIndex = 303; - this.label23.Text = "Forme"; - // - // label24 - // - this.label24.AutoSize = true; - this.label24.Location = new System.Drawing.Point(213, 14); - this.label24.Name = "label24"; - this.label24.Size = new System.Drawing.Size(24, 13); - this.label24.TabIndex = 304; - this.label24.Text = "Min"; - // - // label25 - // - this.label25.AutoSize = true; - this.label25.Location = new System.Drawing.Point(260, 14); - this.label25.Name = "label25"; - this.label25.Size = new System.Drawing.Size(27, 13); - this.label25.TabIndex = 305; - this.label25.Text = "Max"; - // - // TabPage_Land - // - this.TabPage_Land.Controls.Add(this.CB_Swarm3); - this.TabPage_Land.Controls.Add(this.CB_Swarm2); - this.TabPage_Land.Controls.Add(this.CB_Swarm1); - this.TabPage_Land.Controls.Add(this.NUP_SwarmForme1); - this.TabPage_Land.Controls.Add(this.NUP_SwarmMin1); - this.TabPage_Land.Controls.Add(this.label66); - this.TabPage_Land.Controls.Add(this.NUP_SwarmMax1); - this.TabPage_Land.Controls.Add(this.label67); - this.TabPage_Land.Controls.Add(this.NUP_SwarmForme2); - this.TabPage_Land.Controls.Add(this.label68); - this.TabPage_Land.Controls.Add(this.NUP_SwarmMin2); - this.TabPage_Land.Controls.Add(this.L_DexNav); - this.TabPage_Land.Controls.Add(this.NUP_SwarmMax2); - this.TabPage_Land.Controls.Add(this.NUP_SwarmForme3); - this.TabPage_Land.Controls.Add(this.NUP_SwarmMin3); - this.TabPage_Land.Controls.Add(this.NUP_SwarmMax3); - this.TabPage_Land.Controls.Add(this.label70); - this.TabPage_Land.Controls.Add(this.label80); - this.TabPage_Land.Controls.Add(this.label81); - this.TabPage_Land.Controls.Add(this.NUP_TallGrassForme11); - this.TabPage_Land.Controls.Add(this.NUP_TallGrassMin11); - this.TabPage_Land.Controls.Add(this.NUP_TallGrassMax11); - this.TabPage_Land.Controls.Add(this.NUP_TallGrassForme12); - this.TabPage_Land.Controls.Add(this.NUP_TallGrassMin12); - this.TabPage_Land.Controls.Add(this.NUP_TallGrassMax12); - this.TabPage_Land.Controls.Add(this.NUP_TallGrassForme1); - this.TabPage_Land.Controls.Add(this.NUP_TallGrassMin1); - this.TabPage_Land.Controls.Add(this.NUP_TallGrassMax1); - this.TabPage_Land.Controls.Add(this.NUP_TallGrassForme2); - this.TabPage_Land.Controls.Add(this.NUP_TallGrassMin2); - this.TabPage_Land.Controls.Add(this.NUP_TallGrassMax2); - this.TabPage_Land.Controls.Add(this.CB_TallGrass12); - this.TabPage_Land.Controls.Add(this.NUP_TallGrassForme3); - this.TabPage_Land.Controls.Add(this.CB_TallGrass11); - this.TabPage_Land.Controls.Add(this.NUP_TallGrassMin3); - this.TabPage_Land.Controls.Add(this.CB_TallGrass10); - this.TabPage_Land.Controls.Add(this.NUP_TallGrassMax3); - this.TabPage_Land.Controls.Add(this.CB_TallGrass9); - this.TabPage_Land.Controls.Add(this.NUP_TallGrassForme4); - this.TabPage_Land.Controls.Add(this.CB_TallGrass8); - this.TabPage_Land.Controls.Add(this.NUP_TallGrassMin4); - this.TabPage_Land.Controls.Add(this.CB_TallGrass7); - this.TabPage_Land.Controls.Add(this.NUP_TallGrassMax4); - this.TabPage_Land.Controls.Add(this.CB_TallGrass6); - this.TabPage_Land.Controls.Add(this.NUP_TallGrassForme5); - this.TabPage_Land.Controls.Add(this.CB_TallGrass5); - this.TabPage_Land.Controls.Add(this.NUP_TallGrassMin5); - this.TabPage_Land.Controls.Add(this.CB_TallGrass4); - this.TabPage_Land.Controls.Add(this.NUP_TallGrassMax5); - this.TabPage_Land.Controls.Add(this.CB_TallGrass3); - this.TabPage_Land.Controls.Add(this.NUP_TallGrassForme6); - this.TabPage_Land.Controls.Add(this.CB_TallGrass2); - this.TabPage_Land.Controls.Add(this.NUP_TallGrassMin6); - this.TabPage_Land.Controls.Add(this.CB_TallGrass1); - this.TabPage_Land.Controls.Add(this.NUP_TallGrassMax6); - this.TabPage_Land.Controls.Add(this.NUP_TallGrassForme7); - this.TabPage_Land.Controls.Add(this.NUP_TallGrassMin7); - this.TabPage_Land.Controls.Add(this.NUP_TallGrassMax7); - this.TabPage_Land.Controls.Add(this.NUP_TallGrassForme8); - this.TabPage_Land.Controls.Add(this.NUP_TallGrassMin8); - this.TabPage_Land.Controls.Add(this.NUP_TallGrassMax8); - this.TabPage_Land.Controls.Add(this.NUP_TallGrassForme9); - this.TabPage_Land.Controls.Add(this.NUP_TallGrassMin9); - this.TabPage_Land.Controls.Add(this.NUP_TallGrassMax9); - this.TabPage_Land.Controls.Add(this.NUP_TallGrassForme10); - this.TabPage_Land.Controls.Add(this.NUP_TallGrassMin10); - this.TabPage_Land.Controls.Add(this.NUP_TallGrassMax10); - this.TabPage_Land.Controls.Add(this.label107); - this.TabPage_Land.Controls.Add(this.L_RockSmash); - this.TabPage_Land.Controls.Add(this.label108); - this.TabPage_Land.Controls.Add(this.NUP_RockSmashMax5); - this.TabPage_Land.Controls.Add(this.label109); - this.TabPage_Land.Controls.Add(this.NUP_RockSmashMin5); - this.TabPage_Land.Controls.Add(this.label110); - this.TabPage_Land.Controls.Add(this.NUP_RockSmashForme5); - this.TabPage_Land.Controls.Add(this.label111); - this.TabPage_Land.Controls.Add(this.CB_RockSmash5); - this.TabPage_Land.Controls.Add(this.CB_RockSmash1); - this.TabPage_Land.Controls.Add(this.NUP_RockSmashMax4); - this.TabPage_Land.Controls.Add(this.NUP_RockSmashForme1); - this.TabPage_Land.Controls.Add(this.NUP_RockSmashMin4); - this.TabPage_Land.Controls.Add(this.label112); - this.TabPage_Land.Controls.Add(this.NUP_RockSmashForme4); - this.TabPage_Land.Controls.Add(this.NUP_RockSmashMin1); - this.TabPage_Land.Controls.Add(this.CB_RockSmash4); - this.TabPage_Land.Controls.Add(this.label113); - this.TabPage_Land.Controls.Add(this.NUP_RockSmashMax3); - this.TabPage_Land.Controls.Add(this.NUP_RockSmashMax1); - this.TabPage_Land.Controls.Add(this.NUP_RockSmashMin3); - this.TabPage_Land.Controls.Add(this.label114); - this.TabPage_Land.Controls.Add(this.NUP_RockSmashForme3); - this.TabPage_Land.Controls.Add(this.CB_RockSmash2); - this.TabPage_Land.Controls.Add(this.CB_RockSmash3); - this.TabPage_Land.Controls.Add(this.NUP_RockSmashMax2); - this.TabPage_Land.Controls.Add(this.NUP_RockSmashForme2); - this.TabPage_Land.Controls.Add(this.NUP_RockSmashMin2); - this.TabPage_Land.Controls.Add(this.label6); - this.TabPage_Land.Controls.Add(this.label7); - this.TabPage_Land.Controls.Add(this.label8); - this.TabPage_Land.Controls.Add(this.L_TallGrass); - this.TabPage_Land.Controls.Add(this.label10); - this.TabPage_Land.Controls.Add(this.label11); - this.TabPage_Land.Controls.Add(this.label12); - this.TabPage_Land.Controls.Add(this.label13); - this.TabPage_Land.Controls.Add(this.label14); - this.TabPage_Land.Controls.Add(this.label15); - this.TabPage_Land.Controls.Add(this.label16); - this.TabPage_Land.Controls.Add(this.label17); - this.TabPage_Land.Controls.Add(this.label18); - this.TabPage_Land.Controls.Add(this.label19); - this.TabPage_Land.Controls.Add(this.label20); - this.TabPage_Land.Controls.Add(this.label21); - this.TabPage_Land.Controls.Add(this.NUP_GrassForme1); - this.TabPage_Land.Controls.Add(this.NUP_GrassMin1); - this.TabPage_Land.Controls.Add(this.label3); - this.TabPage_Land.Controls.Add(this.NUP_GrassMax1); - this.TabPage_Land.Controls.Add(this.label4); - this.TabPage_Land.Controls.Add(this.NUP_GrassForme2); - this.TabPage_Land.Controls.Add(this.label5); - this.TabPage_Land.Controls.Add(this.NUP_GrassMin2); - this.TabPage_Land.Controls.Add(this.L_Grass); - this.TabPage_Land.Controls.Add(this.NUP_GrassMax2); - this.TabPage_Land.Controls.Add(this.CB_Grass12); - this.TabPage_Land.Controls.Add(this.NUP_GrassForme3); - this.TabPage_Land.Controls.Add(this.CB_Grass11); - this.TabPage_Land.Controls.Add(this.NUP_GrassMin3); - this.TabPage_Land.Controls.Add(this.CB_Grass10); - this.TabPage_Land.Controls.Add(this.NUP_GrassMax3); - this.TabPage_Land.Controls.Add(this.CB_Grass9); - this.TabPage_Land.Controls.Add(this.NUP_GrassForme4); - this.TabPage_Land.Controls.Add(this.CB_Grass8); - this.TabPage_Land.Controls.Add(this.NUP_GrassMin4); - this.TabPage_Land.Controls.Add(this.CB_Grass7); - this.TabPage_Land.Controls.Add(this.NUP_GrassMax4); - this.TabPage_Land.Controls.Add(this.CB_Grass6); - this.TabPage_Land.Controls.Add(this.NUP_GrassForme5); - this.TabPage_Land.Controls.Add(this.CB_Grass5); - this.TabPage_Land.Controls.Add(this.NUP_GrassMin5); - this.TabPage_Land.Controls.Add(this.CB_Grass4); - this.TabPage_Land.Controls.Add(this.NUP_GrassMax5); - this.TabPage_Land.Controls.Add(this.CB_Grass3); - this.TabPage_Land.Controls.Add(this.NUP_GrassForme6); - this.TabPage_Land.Controls.Add(this.CB_Grass2); - this.TabPage_Land.Controls.Add(this.NUP_GrassMin6); - this.TabPage_Land.Controls.Add(this.CB_Grass1); - this.TabPage_Land.Controls.Add(this.NUP_GrassMax6); - this.TabPage_Land.Controls.Add(this.label31); - this.TabPage_Land.Controls.Add(this.NUP_GrassForme7); - this.TabPage_Land.Controls.Add(this.label41); - this.TabPage_Land.Controls.Add(this.NUP_GrassMin7); - this.TabPage_Land.Controls.Add(this.label42); - this.TabPage_Land.Controls.Add(this.NUP_GrassMax7); - this.TabPage_Land.Controls.Add(this.label40); - this.TabPage_Land.Controls.Add(this.NUP_GrassForme8); - this.TabPage_Land.Controls.Add(this.label39); - this.TabPage_Land.Controls.Add(this.NUP_GrassMin8); - this.TabPage_Land.Controls.Add(this.label38); - this.TabPage_Land.Controls.Add(this.NUP_GrassMax8); - this.TabPage_Land.Controls.Add(this.label37); - this.TabPage_Land.Controls.Add(this.NUP_GrassForme9); - this.TabPage_Land.Controls.Add(this.label36); - this.TabPage_Land.Controls.Add(this.NUP_GrassMin9); - this.TabPage_Land.Controls.Add(this.label35); - this.TabPage_Land.Controls.Add(this.NUP_GrassMax9); - this.TabPage_Land.Controls.Add(this.label34); - this.TabPage_Land.Controls.Add(this.NUP_GrassForme10); - this.TabPage_Land.Controls.Add(this.label33); - this.TabPage_Land.Controls.Add(this.NUP_GrassMin10); - this.TabPage_Land.Controls.Add(this.label32); - this.TabPage_Land.Controls.Add(this.NUP_GrassMax10); - this.TabPage_Land.Controls.Add(this.NUP_GrassMax12); - this.TabPage_Land.Controls.Add(this.NUP_GrassForme11); - this.TabPage_Land.Controls.Add(this.NUP_GrassMin12); - this.TabPage_Land.Controls.Add(this.NUP_GrassMin11); - this.TabPage_Land.Controls.Add(this.NUP_GrassForme12); - this.TabPage_Land.Controls.Add(this.NUP_GrassMax11); - this.TabPage_Land.Location = new System.Drawing.Point(4, 22); - this.TabPage_Land.Name = "TabPage_Land"; - this.TabPage_Land.Padding = new System.Windows.Forms.Padding(3); - this.TabPage_Land.Size = new System.Drawing.Size(918, 369); - this.TabPage_Land.TabIndex = 0; - this.TabPage_Land.Text = "Land"; - this.TabPage_Land.UseVisualStyleBackColor = true; - // - // CB_Swarm3 - // - this.CB_Swarm3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Swarm3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Swarm3.FormattingEnabled = true; - this.CB_Swarm3.Location = new System.Drawing.Point(644, 247); - this.CB_Swarm3.Name = "CB_Swarm3"; - this.CB_Swarm3.Size = new System.Drawing.Size(121, 21); - this.CB_Swarm3.TabIndex = 706; - // - // CB_Swarm2 - // - this.CB_Swarm2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Swarm2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Swarm2.FormattingEnabled = true; - this.CB_Swarm2.Location = new System.Drawing.Point(644, 220); - this.CB_Swarm2.Name = "CB_Swarm2"; - this.CB_Swarm2.Size = new System.Drawing.Size(121, 21); - this.CB_Swarm2.TabIndex = 705; - // - // CB_Swarm1 - // - this.CB_Swarm1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Swarm1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Swarm1.FormattingEnabled = true; - this.CB_Swarm1.Location = new System.Drawing.Point(644, 194); - this.CB_Swarm1.Name = "CB_Swarm1"; - this.CB_Swarm1.Size = new System.Drawing.Size(121, 21); - this.CB_Swarm1.TabIndex = 704; - // - // NUP_SwarmForme1 - // - this.NUP_SwarmForme1.Location = new System.Drawing.Point(772, 194); - this.NUP_SwarmForme1.Name = "NUP_SwarmForme1"; - this.NUP_SwarmForme1.Size = new System.Drawing.Size(41, 20); - this.NUP_SwarmForme1.TabIndex = 688; - // - // NUP_SwarmMin1 - // - this.NUP_SwarmMin1.Location = new System.Drawing.Point(819, 194); - this.NUP_SwarmMin1.Name = "NUP_SwarmMin1"; - this.NUP_SwarmMin1.Size = new System.Drawing.Size(41, 20); - this.NUP_SwarmMin1.TabIndex = 689; - // - // label66 - // - this.label66.AutoSize = true; - this.label66.Location = new System.Drawing.Point(771, 178); - this.label66.Name = "label66"; - this.label66.Size = new System.Drawing.Size(36, 13); - this.label66.TabIndex = 701; - this.label66.Text = "Forme"; - // - // NUP_SwarmMax1 - // - this.NUP_SwarmMax1.Location = new System.Drawing.Point(866, 194); - this.NUP_SwarmMax1.Name = "NUP_SwarmMax1"; - this.NUP_SwarmMax1.Size = new System.Drawing.Size(41, 20); - this.NUP_SwarmMax1.TabIndex = 690; - // - // label67 - // - this.label67.AutoSize = true; - this.label67.Location = new System.Drawing.Point(818, 178); - this.label67.Name = "label67"; - this.label67.Size = new System.Drawing.Size(24, 13); - this.label67.TabIndex = 702; - this.label67.Text = "Min"; - // - // NUP_SwarmForme2 - // - this.NUP_SwarmForme2.Location = new System.Drawing.Point(772, 221); - this.NUP_SwarmForme2.Name = "NUP_SwarmForme2"; - this.NUP_SwarmForme2.Size = new System.Drawing.Size(41, 20); - this.NUP_SwarmForme2.TabIndex = 691; - // - // label68 - // - this.label68.AutoSize = true; - this.label68.Location = new System.Drawing.Point(865, 178); - this.label68.Name = "label68"; - this.label68.Size = new System.Drawing.Size(27, 13); - this.label68.TabIndex = 703; - this.label68.Text = "Max"; - // - // NUP_SwarmMin2 - // - this.NUP_SwarmMin2.Location = new System.Drawing.Point(819, 221); - this.NUP_SwarmMin2.Name = "NUP_SwarmMin2"; - this.NUP_SwarmMin2.Size = new System.Drawing.Size(41, 20); - this.NUP_SwarmMin2.TabIndex = 692; - // - // L_DexNav - // - this.L_DexNav.AutoSize = true; - this.L_DexNav.Location = new System.Drawing.Point(643, 177); - this.L_DexNav.Name = "L_DexNav"; - this.L_DexNav.Size = new System.Drawing.Size(89, 13); - this.L_DexNav.TabIndex = 700; - this.L_DexNav.Text = "DexNav Foreigns"; - // - // NUP_SwarmMax2 - // - this.NUP_SwarmMax2.Location = new System.Drawing.Point(866, 221); - this.NUP_SwarmMax2.Name = "NUP_SwarmMax2"; - this.NUP_SwarmMax2.Size = new System.Drawing.Size(41, 20); - this.NUP_SwarmMax2.TabIndex = 693; - // - // NUP_SwarmForme3 - // - this.NUP_SwarmForme3.Location = new System.Drawing.Point(772, 248); - this.NUP_SwarmForme3.Name = "NUP_SwarmForme3"; - this.NUP_SwarmForme3.Size = new System.Drawing.Size(41, 20); - this.NUP_SwarmForme3.TabIndex = 694; - // - // NUP_SwarmMin3 - // - this.NUP_SwarmMin3.Location = new System.Drawing.Point(819, 248); - this.NUP_SwarmMin3.Name = "NUP_SwarmMin3"; - this.NUP_SwarmMin3.Size = new System.Drawing.Size(41, 20); - this.NUP_SwarmMin3.TabIndex = 695; - // - // NUP_SwarmMax3 - // - this.NUP_SwarmMax3.Location = new System.Drawing.Point(866, 248); - this.NUP_SwarmMax3.Name = "NUP_SwarmMax3"; - this.NUP_SwarmMax3.Size = new System.Drawing.Size(41, 20); - this.NUP_SwarmMax3.TabIndex = 696; - // - // label70 - // - this.label70.AutoSize = true; - this.label70.Location = new System.Drawing.Point(619, 197); - this.label70.Name = "label70"; - this.label70.Size = new System.Drawing.Size(21, 13); - this.label70.TabIndex = 697; - this.label70.Text = "?%"; - // - // label80 - // - this.label80.AutoSize = true; - this.label80.Location = new System.Drawing.Point(619, 251); - this.label80.Name = "label80"; - this.label80.Size = new System.Drawing.Size(21, 13); - this.label80.TabIndex = 699; - this.label80.Text = "?%"; - // - // label81 - // - this.label81.AutoSize = true; - this.label81.Location = new System.Drawing.Point(619, 224); - this.label81.Name = "label81"; - this.label81.Size = new System.Drawing.Size(21, 13); - this.label81.TabIndex = 698; - this.label81.Text = "?%"; - // - // NUP_TallGrassForme11 - // - this.NUP_TallGrassForme11.Location = new System.Drawing.Point(470, 301); - this.NUP_TallGrassForme11.Name = "NUP_TallGrassForme11"; - this.NUP_TallGrassForme11.Size = new System.Drawing.Size(41, 20); - this.NUP_TallGrassForme11.TabIndex = 682; - // - // NUP_TallGrassMin11 - // - this.NUP_TallGrassMin11.Location = new System.Drawing.Point(517, 301); - this.NUP_TallGrassMin11.Name = "NUP_TallGrassMin11"; - this.NUP_TallGrassMin11.Size = new System.Drawing.Size(41, 20); - this.NUP_TallGrassMin11.TabIndex = 683; - // - // NUP_TallGrassMax11 - // - this.NUP_TallGrassMax11.Location = new System.Drawing.Point(564, 301); - this.NUP_TallGrassMax11.Name = "NUP_TallGrassMax11"; - this.NUP_TallGrassMax11.Size = new System.Drawing.Size(41, 20); - this.NUP_TallGrassMax11.TabIndex = 684; - // - // NUP_TallGrassForme12 - // - this.NUP_TallGrassForme12.Location = new System.Drawing.Point(470, 327); - this.NUP_TallGrassForme12.Name = "NUP_TallGrassForme12"; - this.NUP_TallGrassForme12.Size = new System.Drawing.Size(41, 20); - this.NUP_TallGrassForme12.TabIndex = 685; - // - // NUP_TallGrassMin12 - // - this.NUP_TallGrassMin12.Location = new System.Drawing.Point(517, 327); - this.NUP_TallGrassMin12.Name = "NUP_TallGrassMin12"; - this.NUP_TallGrassMin12.Size = new System.Drawing.Size(41, 20); - this.NUP_TallGrassMin12.TabIndex = 686; - // - // NUP_TallGrassMax12 - // - this.NUP_TallGrassMax12.Location = new System.Drawing.Point(564, 327); - this.NUP_TallGrassMax12.Name = "NUP_TallGrassMax12"; - this.NUP_TallGrassMax12.Size = new System.Drawing.Size(41, 20); - this.NUP_TallGrassMax12.TabIndex = 687; - // - // NUP_TallGrassForme1 - // - this.NUP_TallGrassForme1.Location = new System.Drawing.Point(470, 36); - this.NUP_TallGrassForme1.Name = "NUP_TallGrassForme1"; - this.NUP_TallGrassForme1.Size = new System.Drawing.Size(41, 20); - this.NUP_TallGrassForme1.TabIndex = 641; - // - // NUP_TallGrassMin1 - // - this.NUP_TallGrassMin1.Location = new System.Drawing.Point(517, 36); - this.NUP_TallGrassMin1.Name = "NUP_TallGrassMin1"; - this.NUP_TallGrassMin1.Size = new System.Drawing.Size(41, 20); - this.NUP_TallGrassMin1.TabIndex = 642; - // - // NUP_TallGrassMax1 - // - this.NUP_TallGrassMax1.Location = new System.Drawing.Point(564, 36); - this.NUP_TallGrassMax1.Name = "NUP_TallGrassMax1"; - this.NUP_TallGrassMax1.Size = new System.Drawing.Size(41, 20); - this.NUP_TallGrassMax1.TabIndex = 643; - // - // NUP_TallGrassForme2 - // - this.NUP_TallGrassForme2.Location = new System.Drawing.Point(470, 63); - this.NUP_TallGrassForme2.Name = "NUP_TallGrassForme2"; - this.NUP_TallGrassForme2.Size = new System.Drawing.Size(41, 20); - this.NUP_TallGrassForme2.TabIndex = 644; - // - // NUP_TallGrassMin2 - // - this.NUP_TallGrassMin2.Location = new System.Drawing.Point(517, 63); - this.NUP_TallGrassMin2.Name = "NUP_TallGrassMin2"; - this.NUP_TallGrassMin2.Size = new System.Drawing.Size(41, 20); - this.NUP_TallGrassMin2.TabIndex = 645; - // - // NUP_TallGrassMax2 - // - this.NUP_TallGrassMax2.Location = new System.Drawing.Point(564, 63); - this.NUP_TallGrassMax2.Name = "NUP_TallGrassMax2"; - this.NUP_TallGrassMax2.Size = new System.Drawing.Size(41, 20); - this.NUP_TallGrassMax2.TabIndex = 646; - // - // CB_TallGrass12 - // - this.CB_TallGrass12.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_TallGrass12.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_TallGrass12.FormattingEnabled = true; - this.CB_TallGrass12.Location = new System.Drawing.Point(343, 327); - this.CB_TallGrass12.Name = "CB_TallGrass12"; - this.CB_TallGrass12.Size = new System.Drawing.Size(121, 21); - this.CB_TallGrass12.TabIndex = 681; - // - // NUP_TallGrassForme3 - // - this.NUP_TallGrassForme3.Location = new System.Drawing.Point(470, 90); - this.NUP_TallGrassForme3.Name = "NUP_TallGrassForme3"; - this.NUP_TallGrassForme3.Size = new System.Drawing.Size(41, 20); - this.NUP_TallGrassForme3.TabIndex = 647; - // - // CB_TallGrass11 - // - this.CB_TallGrass11.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_TallGrass11.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_TallGrass11.FormattingEnabled = true; - this.CB_TallGrass11.Location = new System.Drawing.Point(343, 301); - this.CB_TallGrass11.Name = "CB_TallGrass11"; - this.CB_TallGrass11.Size = new System.Drawing.Size(121, 21); - this.CB_TallGrass11.TabIndex = 680; - // - // NUP_TallGrassMin3 - // - this.NUP_TallGrassMin3.Location = new System.Drawing.Point(517, 90); - this.NUP_TallGrassMin3.Name = "NUP_TallGrassMin3"; - this.NUP_TallGrassMin3.Size = new System.Drawing.Size(41, 20); - this.NUP_TallGrassMin3.TabIndex = 648; - // - // CB_TallGrass10 - // - this.CB_TallGrass10.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_TallGrass10.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_TallGrass10.FormattingEnabled = true; - this.CB_TallGrass10.Location = new System.Drawing.Point(343, 274); - this.CB_TallGrass10.Name = "CB_TallGrass10"; - this.CB_TallGrass10.Size = new System.Drawing.Size(121, 21); - this.CB_TallGrass10.TabIndex = 679; - // - // NUP_TallGrassMax3 - // - this.NUP_TallGrassMax3.Location = new System.Drawing.Point(564, 90); - this.NUP_TallGrassMax3.Name = "NUP_TallGrassMax3"; - this.NUP_TallGrassMax3.Size = new System.Drawing.Size(41, 20); - this.NUP_TallGrassMax3.TabIndex = 649; - // - // CB_TallGrass9 - // - this.CB_TallGrass9.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_TallGrass9.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_TallGrass9.FormattingEnabled = true; - this.CB_TallGrass9.Location = new System.Drawing.Point(343, 248); - this.CB_TallGrass9.Name = "CB_TallGrass9"; - this.CB_TallGrass9.Size = new System.Drawing.Size(121, 21); - this.CB_TallGrass9.TabIndex = 678; - // - // NUP_TallGrassForme4 - // - this.NUP_TallGrassForme4.Location = new System.Drawing.Point(470, 116); - this.NUP_TallGrassForme4.Name = "NUP_TallGrassForme4"; - this.NUP_TallGrassForme4.Size = new System.Drawing.Size(41, 20); - this.NUP_TallGrassForme4.TabIndex = 650; - // - // CB_TallGrass8 - // - this.CB_TallGrass8.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_TallGrass8.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_TallGrass8.FormattingEnabled = true; - this.CB_TallGrass8.Location = new System.Drawing.Point(343, 221); - this.CB_TallGrass8.Name = "CB_TallGrass8"; - this.CB_TallGrass8.Size = new System.Drawing.Size(121, 21); - this.CB_TallGrass8.TabIndex = 677; - // - // NUP_TallGrassMin4 - // - this.NUP_TallGrassMin4.Location = new System.Drawing.Point(517, 116); - this.NUP_TallGrassMin4.Name = "NUP_TallGrassMin4"; - this.NUP_TallGrassMin4.Size = new System.Drawing.Size(41, 20); - this.NUP_TallGrassMin4.TabIndex = 651; - // - // CB_TallGrass7 - // - this.CB_TallGrass7.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_TallGrass7.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_TallGrass7.FormattingEnabled = true; - this.CB_TallGrass7.Location = new System.Drawing.Point(343, 195); - this.CB_TallGrass7.Name = "CB_TallGrass7"; - this.CB_TallGrass7.Size = new System.Drawing.Size(121, 21); - this.CB_TallGrass7.TabIndex = 676; - // - // NUP_TallGrassMax4 - // - this.NUP_TallGrassMax4.Location = new System.Drawing.Point(564, 116); - this.NUP_TallGrassMax4.Name = "NUP_TallGrassMax4"; - this.NUP_TallGrassMax4.Size = new System.Drawing.Size(41, 20); - this.NUP_TallGrassMax4.TabIndex = 652; - // - // CB_TallGrass6 - // - this.CB_TallGrass6.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_TallGrass6.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_TallGrass6.FormattingEnabled = true; - this.CB_TallGrass6.Location = new System.Drawing.Point(343, 168); - this.CB_TallGrass6.Name = "CB_TallGrass6"; - this.CB_TallGrass6.Size = new System.Drawing.Size(121, 21); - this.CB_TallGrass6.TabIndex = 675; - // - // NUP_TallGrassForme5 - // - this.NUP_TallGrassForme5.Location = new System.Drawing.Point(470, 143); - this.NUP_TallGrassForme5.Name = "NUP_TallGrassForme5"; - this.NUP_TallGrassForme5.Size = new System.Drawing.Size(41, 20); - this.NUP_TallGrassForme5.TabIndex = 653; - // - // CB_TallGrass5 - // - this.CB_TallGrass5.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_TallGrass5.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_TallGrass5.FormattingEnabled = true; - this.CB_TallGrass5.Location = new System.Drawing.Point(343, 142); - this.CB_TallGrass5.Name = "CB_TallGrass5"; - this.CB_TallGrass5.Size = new System.Drawing.Size(121, 21); - this.CB_TallGrass5.TabIndex = 674; - // - // NUP_TallGrassMin5 - // - this.NUP_TallGrassMin5.Location = new System.Drawing.Point(517, 143); - this.NUP_TallGrassMin5.Name = "NUP_TallGrassMin5"; - this.NUP_TallGrassMin5.Size = new System.Drawing.Size(41, 20); - this.NUP_TallGrassMin5.TabIndex = 654; - // - // CB_TallGrass4 - // - this.CB_TallGrass4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_TallGrass4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_TallGrass4.FormattingEnabled = true; - this.CB_TallGrass4.Location = new System.Drawing.Point(343, 115); - this.CB_TallGrass4.Name = "CB_TallGrass4"; - this.CB_TallGrass4.Size = new System.Drawing.Size(121, 21); - this.CB_TallGrass4.TabIndex = 673; - // - // NUP_TallGrassMax5 - // - this.NUP_TallGrassMax5.Location = new System.Drawing.Point(564, 143); - this.NUP_TallGrassMax5.Name = "NUP_TallGrassMax5"; - this.NUP_TallGrassMax5.Size = new System.Drawing.Size(41, 20); - this.NUP_TallGrassMax5.TabIndex = 655; - // - // CB_TallGrass3 - // - this.CB_TallGrass3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_TallGrass3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_TallGrass3.FormattingEnabled = true; - this.CB_TallGrass3.Location = new System.Drawing.Point(343, 89); - this.CB_TallGrass3.Name = "CB_TallGrass3"; - this.CB_TallGrass3.Size = new System.Drawing.Size(121, 21); - this.CB_TallGrass3.TabIndex = 672; - // - // NUP_TallGrassForme6 - // - this.NUP_TallGrassForme6.Location = new System.Drawing.Point(470, 170); - this.NUP_TallGrassForme6.Name = "NUP_TallGrassForme6"; - this.NUP_TallGrassForme6.Size = new System.Drawing.Size(41, 20); - this.NUP_TallGrassForme6.TabIndex = 656; - // - // CB_TallGrass2 - // - this.CB_TallGrass2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_TallGrass2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_TallGrass2.FormattingEnabled = true; - this.CB_TallGrass2.Location = new System.Drawing.Point(343, 62); - this.CB_TallGrass2.Name = "CB_TallGrass2"; - this.CB_TallGrass2.Size = new System.Drawing.Size(121, 21); - this.CB_TallGrass2.TabIndex = 671; - // - // NUP_TallGrassMin6 - // - this.NUP_TallGrassMin6.Location = new System.Drawing.Point(517, 170); - this.NUP_TallGrassMin6.Name = "NUP_TallGrassMin6"; - this.NUP_TallGrassMin6.Size = new System.Drawing.Size(41, 20); - this.NUP_TallGrassMin6.TabIndex = 657; - // - // CB_TallGrass1 - // - this.CB_TallGrass1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_TallGrass1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_TallGrass1.FormattingEnabled = true; - this.CB_TallGrass1.Location = new System.Drawing.Point(343, 36); - this.CB_TallGrass1.Name = "CB_TallGrass1"; - this.CB_TallGrass1.Size = new System.Drawing.Size(121, 21); - this.CB_TallGrass1.TabIndex = 640; - // - // NUP_TallGrassMax6 - // - this.NUP_TallGrassMax6.Location = new System.Drawing.Point(564, 170); - this.NUP_TallGrassMax6.Name = "NUP_TallGrassMax6"; - this.NUP_TallGrassMax6.Size = new System.Drawing.Size(41, 20); - this.NUP_TallGrassMax6.TabIndex = 658; - // - // NUP_TallGrassForme7 - // - this.NUP_TallGrassForme7.Location = new System.Drawing.Point(470, 196); - this.NUP_TallGrassForme7.Name = "NUP_TallGrassForme7"; - this.NUP_TallGrassForme7.Size = new System.Drawing.Size(41, 20); - this.NUP_TallGrassForme7.TabIndex = 659; - // - // NUP_TallGrassMin7 - // - this.NUP_TallGrassMin7.Location = new System.Drawing.Point(517, 196); - this.NUP_TallGrassMin7.Name = "NUP_TallGrassMin7"; - this.NUP_TallGrassMin7.Size = new System.Drawing.Size(41, 20); - this.NUP_TallGrassMin7.TabIndex = 660; - // - // NUP_TallGrassMax7 - // - this.NUP_TallGrassMax7.Location = new System.Drawing.Point(564, 196); - this.NUP_TallGrassMax7.Name = "NUP_TallGrassMax7"; - this.NUP_TallGrassMax7.Size = new System.Drawing.Size(41, 20); - this.NUP_TallGrassMax7.TabIndex = 661; - // - // NUP_TallGrassForme8 - // - this.NUP_TallGrassForme8.Location = new System.Drawing.Point(470, 223); - this.NUP_TallGrassForme8.Name = "NUP_TallGrassForme8"; - this.NUP_TallGrassForme8.Size = new System.Drawing.Size(41, 20); - this.NUP_TallGrassForme8.TabIndex = 662; - // - // NUP_TallGrassMin8 - // - this.NUP_TallGrassMin8.Location = new System.Drawing.Point(517, 223); - this.NUP_TallGrassMin8.Name = "NUP_TallGrassMin8"; - this.NUP_TallGrassMin8.Size = new System.Drawing.Size(41, 20); - this.NUP_TallGrassMin8.TabIndex = 663; - // - // NUP_TallGrassMax8 - // - this.NUP_TallGrassMax8.Location = new System.Drawing.Point(564, 223); - this.NUP_TallGrassMax8.Name = "NUP_TallGrassMax8"; - this.NUP_TallGrassMax8.Size = new System.Drawing.Size(41, 20); - this.NUP_TallGrassMax8.TabIndex = 664; - // - // NUP_TallGrassForme9 - // - this.NUP_TallGrassForme9.Location = new System.Drawing.Point(470, 250); - this.NUP_TallGrassForme9.Name = "NUP_TallGrassForme9"; - this.NUP_TallGrassForme9.Size = new System.Drawing.Size(41, 20); - this.NUP_TallGrassForme9.TabIndex = 665; - // - // NUP_TallGrassMin9 - // - this.NUP_TallGrassMin9.Location = new System.Drawing.Point(517, 250); - this.NUP_TallGrassMin9.Name = "NUP_TallGrassMin9"; - this.NUP_TallGrassMin9.Size = new System.Drawing.Size(41, 20); - this.NUP_TallGrassMin9.TabIndex = 666; - // - // NUP_TallGrassMax9 - // - this.NUP_TallGrassMax9.Location = new System.Drawing.Point(564, 250); - this.NUP_TallGrassMax9.Name = "NUP_TallGrassMax9"; - this.NUP_TallGrassMax9.Size = new System.Drawing.Size(41, 20); - this.NUP_TallGrassMax9.TabIndex = 667; - // - // NUP_TallGrassForme10 - // - this.NUP_TallGrassForme10.Location = new System.Drawing.Point(470, 276); - this.NUP_TallGrassForme10.Name = "NUP_TallGrassForme10"; - this.NUP_TallGrassForme10.Size = new System.Drawing.Size(41, 20); - this.NUP_TallGrassForme10.TabIndex = 668; - // - // NUP_TallGrassMin10 - // - this.NUP_TallGrassMin10.Location = new System.Drawing.Point(517, 276); - this.NUP_TallGrassMin10.Name = "NUP_TallGrassMin10"; - this.NUP_TallGrassMin10.Size = new System.Drawing.Size(41, 20); - this.NUP_TallGrassMin10.TabIndex = 669; - // - // NUP_TallGrassMax10 - // - this.NUP_TallGrassMax10.Location = new System.Drawing.Point(564, 276); - this.NUP_TallGrassMax10.Name = "NUP_TallGrassMax10"; - this.NUP_TallGrassMax10.Size = new System.Drawing.Size(41, 20); - this.NUP_TallGrassMax10.TabIndex = 670; - // - // label107 - // - this.label107.AutoSize = true; - this.label107.Location = new System.Drawing.Point(619, 147); - this.label107.Name = "label107"; - this.label107.Size = new System.Drawing.Size(21, 13); - this.label107.TabIndex = 406; - this.label107.Text = "1%"; - // - // L_RockSmash - // - this.L_RockSmash.AutoSize = true; - this.L_RockSmash.Location = new System.Drawing.Point(643, 20); - this.L_RockSmash.Name = "L_RockSmash"; - this.L_RockSmash.Size = new System.Drawing.Size(68, 13); - this.L_RockSmash.TabIndex = 398; - this.L_RockSmash.Text = "Rock Smash"; - // - // label108 - // - this.label108.AutoSize = true; - this.label108.Location = new System.Drawing.Point(619, 120); - this.label108.Name = "label108"; - this.label108.Size = new System.Drawing.Size(21, 13); - this.label108.TabIndex = 405; - this.label108.Text = "4%"; - // - // NUP_RockSmashMax5 - // - this.NUP_RockSmashMax5.Location = new System.Drawing.Point(867, 145); - this.NUP_RockSmashMax5.Name = "NUP_RockSmashMax5"; - this.NUP_RockSmashMax5.Size = new System.Drawing.Size(41, 20); - this.NUP_RockSmashMax5.TabIndex = 397; - // - // label109 - // - this.label109.AutoSize = true; - this.label109.Location = new System.Drawing.Point(613, 93); - this.label109.Name = "label109"; - this.label109.Size = new System.Drawing.Size(27, 13); - this.label109.TabIndex = 404; - this.label109.Text = "15%"; - // - // NUP_RockSmashMin5 - // - this.NUP_RockSmashMin5.Location = new System.Drawing.Point(820, 145); - this.NUP_RockSmashMin5.Name = "NUP_RockSmashMin5"; - this.NUP_RockSmashMin5.Size = new System.Drawing.Size(41, 20); - this.NUP_RockSmashMin5.TabIndex = 396; - // - // label110 - // - this.label110.AutoSize = true; - this.label110.Location = new System.Drawing.Point(613, 66); - this.label110.Name = "label110"; - this.label110.Size = new System.Drawing.Size(27, 13); - this.label110.TabIndex = 403; - this.label110.Text = "30%"; - // - // NUP_RockSmashForme5 - // - this.NUP_RockSmashForme5.Location = new System.Drawing.Point(773, 145); - this.NUP_RockSmashForme5.Name = "NUP_RockSmashForme5"; - this.NUP_RockSmashForme5.Size = new System.Drawing.Size(41, 20); - this.NUP_RockSmashForme5.TabIndex = 395; - // - // label111 - // - this.label111.AutoSize = true; - this.label111.Location = new System.Drawing.Point(613, 39); - this.label111.Name = "label111"; - this.label111.Size = new System.Drawing.Size(27, 13); - this.label111.TabIndex = 402; - this.label111.Text = "50%"; - // - // CB_RockSmash5 - // - this.CB_RockSmash5.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_RockSmash5.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_RockSmash5.FormattingEnabled = true; - this.CB_RockSmash5.Items.AddRange(new object[] { + this.CB_Old3.Location = new System.Drawing.Point(42, 83); + this.CB_Old3.Name = "CB_Old3"; + this.CB_Old3.Size = new System.Drawing.Size(121, 21); + this.CB_Old3.TabIndex = 298; + // + // NUP_OldForme3 + // + this.NUP_OldForme3.Location = new System.Drawing.Point(169, 84); + this.NUP_OldForme3.Name = "NUP_OldForme3"; + this.NUP_OldForme3.Size = new System.Drawing.Size(41, 20); + this.NUP_OldForme3.TabIndex = 299; + // + // NUP_OldMin3 + // + this.NUP_OldMin3.Location = new System.Drawing.Point(216, 84); + this.NUP_OldMin3.Name = "NUP_OldMin3"; + this.NUP_OldMin3.Size = new System.Drawing.Size(41, 20); + this.NUP_OldMin3.TabIndex = 300; + // + // NUP_OldMax3 + // + this.NUP_OldMax3.Location = new System.Drawing.Point(263, 84); + this.NUP_OldMax3.Name = "NUP_OldMax3"; + this.NUP_OldMax3.Size = new System.Drawing.Size(41, 20); + this.NUP_OldMax3.TabIndex = 301; + // + // label45 + // + this.label45.AutoSize = true; + this.label45.Location = new System.Drawing.Point(15, 86); + this.label45.Name = "label45"; + this.label45.Size = new System.Drawing.Size(21, 13); + this.label45.TabIndex = 308; + this.label45.Text = "5%"; + // + // label44 + // + this.label44.AutoSize = true; + this.label44.Location = new System.Drawing.Point(9, 59); + this.label44.Name = "label44"; + this.label44.Size = new System.Drawing.Size(27, 13); + this.label44.TabIndex = 307; + this.label44.Text = "35%"; + // + // label43 + // + this.label43.AutoSize = true; + this.label43.Location = new System.Drawing.Point(9, 32); + this.label43.Name = "label43"; + this.label43.Size = new System.Drawing.Size(27, 13); + this.label43.TabIndex = 306; + this.label43.Text = "60%"; + // + // label23 + // + this.label23.AutoSize = true; + this.label23.Location = new System.Drawing.Point(166, 14); + this.label23.Name = "label23"; + this.label23.Size = new System.Drawing.Size(36, 13); + this.label23.TabIndex = 303; + this.label23.Text = "Forme"; + // + // label24 + // + this.label24.AutoSize = true; + this.label24.Location = new System.Drawing.Point(213, 14); + this.label24.Name = "label24"; + this.label24.Size = new System.Drawing.Size(24, 13); + this.label24.TabIndex = 304; + this.label24.Text = "Min"; + // + // label25 + // + this.label25.AutoSize = true; + this.label25.Location = new System.Drawing.Point(260, 14); + this.label25.Name = "label25"; + this.label25.Size = new System.Drawing.Size(27, 13); + this.label25.TabIndex = 305; + this.label25.Text = "Max"; + // + // TabPage_Land + // + this.TabPage_Land.Controls.Add(this.CB_Swarm3); + this.TabPage_Land.Controls.Add(this.CB_Swarm2); + this.TabPage_Land.Controls.Add(this.CB_Swarm1); + this.TabPage_Land.Controls.Add(this.NUP_SwarmForme1); + this.TabPage_Land.Controls.Add(this.NUP_SwarmMin1); + this.TabPage_Land.Controls.Add(this.label66); + this.TabPage_Land.Controls.Add(this.NUP_SwarmMax1); + this.TabPage_Land.Controls.Add(this.label67); + this.TabPage_Land.Controls.Add(this.NUP_SwarmForme2); + this.TabPage_Land.Controls.Add(this.label68); + this.TabPage_Land.Controls.Add(this.NUP_SwarmMin2); + this.TabPage_Land.Controls.Add(this.L_DexNav); + this.TabPage_Land.Controls.Add(this.NUP_SwarmMax2); + this.TabPage_Land.Controls.Add(this.NUP_SwarmForme3); + this.TabPage_Land.Controls.Add(this.NUP_SwarmMin3); + this.TabPage_Land.Controls.Add(this.NUP_SwarmMax3); + this.TabPage_Land.Controls.Add(this.label70); + this.TabPage_Land.Controls.Add(this.label80); + this.TabPage_Land.Controls.Add(this.label81); + this.TabPage_Land.Controls.Add(this.NUP_TallGrassForme11); + this.TabPage_Land.Controls.Add(this.NUP_TallGrassMin11); + this.TabPage_Land.Controls.Add(this.NUP_TallGrassMax11); + this.TabPage_Land.Controls.Add(this.NUP_TallGrassForme12); + this.TabPage_Land.Controls.Add(this.NUP_TallGrassMin12); + this.TabPage_Land.Controls.Add(this.NUP_TallGrassMax12); + this.TabPage_Land.Controls.Add(this.NUP_TallGrassForme1); + this.TabPage_Land.Controls.Add(this.NUP_TallGrassMin1); + this.TabPage_Land.Controls.Add(this.NUP_TallGrassMax1); + this.TabPage_Land.Controls.Add(this.NUP_TallGrassForme2); + this.TabPage_Land.Controls.Add(this.NUP_TallGrassMin2); + this.TabPage_Land.Controls.Add(this.NUP_TallGrassMax2); + this.TabPage_Land.Controls.Add(this.CB_TallGrass12); + this.TabPage_Land.Controls.Add(this.NUP_TallGrassForme3); + this.TabPage_Land.Controls.Add(this.CB_TallGrass11); + this.TabPage_Land.Controls.Add(this.NUP_TallGrassMin3); + this.TabPage_Land.Controls.Add(this.CB_TallGrass10); + this.TabPage_Land.Controls.Add(this.NUP_TallGrassMax3); + this.TabPage_Land.Controls.Add(this.CB_TallGrass9); + this.TabPage_Land.Controls.Add(this.NUP_TallGrassForme4); + this.TabPage_Land.Controls.Add(this.CB_TallGrass8); + this.TabPage_Land.Controls.Add(this.NUP_TallGrassMin4); + this.TabPage_Land.Controls.Add(this.CB_TallGrass7); + this.TabPage_Land.Controls.Add(this.NUP_TallGrassMax4); + this.TabPage_Land.Controls.Add(this.CB_TallGrass6); + this.TabPage_Land.Controls.Add(this.NUP_TallGrassForme5); + this.TabPage_Land.Controls.Add(this.CB_TallGrass5); + this.TabPage_Land.Controls.Add(this.NUP_TallGrassMin5); + this.TabPage_Land.Controls.Add(this.CB_TallGrass4); + this.TabPage_Land.Controls.Add(this.NUP_TallGrassMax5); + this.TabPage_Land.Controls.Add(this.CB_TallGrass3); + this.TabPage_Land.Controls.Add(this.NUP_TallGrassForme6); + this.TabPage_Land.Controls.Add(this.CB_TallGrass2); + this.TabPage_Land.Controls.Add(this.NUP_TallGrassMin6); + this.TabPage_Land.Controls.Add(this.CB_TallGrass1); + this.TabPage_Land.Controls.Add(this.NUP_TallGrassMax6); + this.TabPage_Land.Controls.Add(this.NUP_TallGrassForme7); + this.TabPage_Land.Controls.Add(this.NUP_TallGrassMin7); + this.TabPage_Land.Controls.Add(this.NUP_TallGrassMax7); + this.TabPage_Land.Controls.Add(this.NUP_TallGrassForme8); + this.TabPage_Land.Controls.Add(this.NUP_TallGrassMin8); + this.TabPage_Land.Controls.Add(this.NUP_TallGrassMax8); + this.TabPage_Land.Controls.Add(this.NUP_TallGrassForme9); + this.TabPage_Land.Controls.Add(this.NUP_TallGrassMin9); + this.TabPage_Land.Controls.Add(this.NUP_TallGrassMax9); + this.TabPage_Land.Controls.Add(this.NUP_TallGrassForme10); + this.TabPage_Land.Controls.Add(this.NUP_TallGrassMin10); + this.TabPage_Land.Controls.Add(this.NUP_TallGrassMax10); + this.TabPage_Land.Controls.Add(this.label107); + this.TabPage_Land.Controls.Add(this.L_RockSmash); + this.TabPage_Land.Controls.Add(this.label108); + this.TabPage_Land.Controls.Add(this.NUP_RockSmashMax5); + this.TabPage_Land.Controls.Add(this.label109); + this.TabPage_Land.Controls.Add(this.NUP_RockSmashMin5); + this.TabPage_Land.Controls.Add(this.label110); + this.TabPage_Land.Controls.Add(this.NUP_RockSmashForme5); + this.TabPage_Land.Controls.Add(this.label111); + this.TabPage_Land.Controls.Add(this.CB_RockSmash5); + this.TabPage_Land.Controls.Add(this.CB_RockSmash1); + this.TabPage_Land.Controls.Add(this.NUP_RockSmashMax4); + this.TabPage_Land.Controls.Add(this.NUP_RockSmashForme1); + this.TabPage_Land.Controls.Add(this.NUP_RockSmashMin4); + this.TabPage_Land.Controls.Add(this.label112); + this.TabPage_Land.Controls.Add(this.NUP_RockSmashForme4); + this.TabPage_Land.Controls.Add(this.NUP_RockSmashMin1); + this.TabPage_Land.Controls.Add(this.CB_RockSmash4); + this.TabPage_Land.Controls.Add(this.label113); + this.TabPage_Land.Controls.Add(this.NUP_RockSmashMax3); + this.TabPage_Land.Controls.Add(this.NUP_RockSmashMax1); + this.TabPage_Land.Controls.Add(this.NUP_RockSmashMin3); + this.TabPage_Land.Controls.Add(this.label114); + this.TabPage_Land.Controls.Add(this.NUP_RockSmashForme3); + this.TabPage_Land.Controls.Add(this.CB_RockSmash2); + this.TabPage_Land.Controls.Add(this.CB_RockSmash3); + this.TabPage_Land.Controls.Add(this.NUP_RockSmashMax2); + this.TabPage_Land.Controls.Add(this.NUP_RockSmashForme2); + this.TabPage_Land.Controls.Add(this.NUP_RockSmashMin2); + this.TabPage_Land.Controls.Add(this.label6); + this.TabPage_Land.Controls.Add(this.label7); + this.TabPage_Land.Controls.Add(this.label8); + this.TabPage_Land.Controls.Add(this.L_TallGrass); + this.TabPage_Land.Controls.Add(this.label10); + this.TabPage_Land.Controls.Add(this.label11); + this.TabPage_Land.Controls.Add(this.label12); + this.TabPage_Land.Controls.Add(this.label13); + this.TabPage_Land.Controls.Add(this.label14); + this.TabPage_Land.Controls.Add(this.label15); + this.TabPage_Land.Controls.Add(this.label16); + this.TabPage_Land.Controls.Add(this.label17); + this.TabPage_Land.Controls.Add(this.label18); + this.TabPage_Land.Controls.Add(this.label19); + this.TabPage_Land.Controls.Add(this.label20); + this.TabPage_Land.Controls.Add(this.label21); + this.TabPage_Land.Controls.Add(this.NUP_GrassForme1); + this.TabPage_Land.Controls.Add(this.NUP_GrassMin1); + this.TabPage_Land.Controls.Add(this.label3); + this.TabPage_Land.Controls.Add(this.NUP_GrassMax1); + this.TabPage_Land.Controls.Add(this.label4); + this.TabPage_Land.Controls.Add(this.NUP_GrassForme2); + this.TabPage_Land.Controls.Add(this.label5); + this.TabPage_Land.Controls.Add(this.NUP_GrassMin2); + this.TabPage_Land.Controls.Add(this.L_Grass); + this.TabPage_Land.Controls.Add(this.NUP_GrassMax2); + this.TabPage_Land.Controls.Add(this.CB_Grass12); + this.TabPage_Land.Controls.Add(this.NUP_GrassForme3); + this.TabPage_Land.Controls.Add(this.CB_Grass11); + this.TabPage_Land.Controls.Add(this.NUP_GrassMin3); + this.TabPage_Land.Controls.Add(this.CB_Grass10); + this.TabPage_Land.Controls.Add(this.NUP_GrassMax3); + this.TabPage_Land.Controls.Add(this.CB_Grass9); + this.TabPage_Land.Controls.Add(this.NUP_GrassForme4); + this.TabPage_Land.Controls.Add(this.CB_Grass8); + this.TabPage_Land.Controls.Add(this.NUP_GrassMin4); + this.TabPage_Land.Controls.Add(this.CB_Grass7); + this.TabPage_Land.Controls.Add(this.NUP_GrassMax4); + this.TabPage_Land.Controls.Add(this.CB_Grass6); + this.TabPage_Land.Controls.Add(this.NUP_GrassForme5); + this.TabPage_Land.Controls.Add(this.CB_Grass5); + this.TabPage_Land.Controls.Add(this.NUP_GrassMin5); + this.TabPage_Land.Controls.Add(this.CB_Grass4); + this.TabPage_Land.Controls.Add(this.NUP_GrassMax5); + this.TabPage_Land.Controls.Add(this.CB_Grass3); + this.TabPage_Land.Controls.Add(this.NUP_GrassForme6); + this.TabPage_Land.Controls.Add(this.CB_Grass2); + this.TabPage_Land.Controls.Add(this.NUP_GrassMin6); + this.TabPage_Land.Controls.Add(this.CB_Grass1); + this.TabPage_Land.Controls.Add(this.NUP_GrassMax6); + this.TabPage_Land.Controls.Add(this.label31); + this.TabPage_Land.Controls.Add(this.NUP_GrassForme7); + this.TabPage_Land.Controls.Add(this.label41); + this.TabPage_Land.Controls.Add(this.NUP_GrassMin7); + this.TabPage_Land.Controls.Add(this.label42); + this.TabPage_Land.Controls.Add(this.NUP_GrassMax7); + this.TabPage_Land.Controls.Add(this.label40); + this.TabPage_Land.Controls.Add(this.NUP_GrassForme8); + this.TabPage_Land.Controls.Add(this.label39); + this.TabPage_Land.Controls.Add(this.NUP_GrassMin8); + this.TabPage_Land.Controls.Add(this.label38); + this.TabPage_Land.Controls.Add(this.NUP_GrassMax8); + this.TabPage_Land.Controls.Add(this.label37); + this.TabPage_Land.Controls.Add(this.NUP_GrassForme9); + this.TabPage_Land.Controls.Add(this.label36); + this.TabPage_Land.Controls.Add(this.NUP_GrassMin9); + this.TabPage_Land.Controls.Add(this.label35); + this.TabPage_Land.Controls.Add(this.NUP_GrassMax9); + this.TabPage_Land.Controls.Add(this.label34); + this.TabPage_Land.Controls.Add(this.NUP_GrassForme10); + this.TabPage_Land.Controls.Add(this.label33); + this.TabPage_Land.Controls.Add(this.NUP_GrassMin10); + this.TabPage_Land.Controls.Add(this.label32); + this.TabPage_Land.Controls.Add(this.NUP_GrassMax10); + this.TabPage_Land.Controls.Add(this.NUP_GrassMax12); + this.TabPage_Land.Controls.Add(this.NUP_GrassForme11); + this.TabPage_Land.Controls.Add(this.NUP_GrassMin12); + this.TabPage_Land.Controls.Add(this.NUP_GrassMin11); + this.TabPage_Land.Controls.Add(this.NUP_GrassForme12); + this.TabPage_Land.Controls.Add(this.NUP_GrassMax11); + this.TabPage_Land.Location = new System.Drawing.Point(4, 22); + this.TabPage_Land.Name = "TabPage_Land"; + this.TabPage_Land.Padding = new System.Windows.Forms.Padding(3); + this.TabPage_Land.Size = new System.Drawing.Size(918, 369); + this.TabPage_Land.TabIndex = 0; + this.TabPage_Land.Text = "Land"; + this.TabPage_Land.UseVisualStyleBackColor = true; + // + // CB_Swarm3 + // + this.CB_Swarm3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Swarm3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Swarm3.FormattingEnabled = true; + this.CB_Swarm3.Location = new System.Drawing.Point(644, 247); + this.CB_Swarm3.Name = "CB_Swarm3"; + this.CB_Swarm3.Size = new System.Drawing.Size(121, 21); + this.CB_Swarm3.TabIndex = 706; + // + // CB_Swarm2 + // + this.CB_Swarm2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Swarm2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Swarm2.FormattingEnabled = true; + this.CB_Swarm2.Location = new System.Drawing.Point(644, 220); + this.CB_Swarm2.Name = "CB_Swarm2"; + this.CB_Swarm2.Size = new System.Drawing.Size(121, 21); + this.CB_Swarm2.TabIndex = 705; + // + // CB_Swarm1 + // + this.CB_Swarm1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Swarm1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Swarm1.FormattingEnabled = true; + this.CB_Swarm1.Location = new System.Drawing.Point(644, 194); + this.CB_Swarm1.Name = "CB_Swarm1"; + this.CB_Swarm1.Size = new System.Drawing.Size(121, 21); + this.CB_Swarm1.TabIndex = 704; + // + // NUP_SwarmForme1 + // + this.NUP_SwarmForme1.Location = new System.Drawing.Point(772, 194); + this.NUP_SwarmForme1.Name = "NUP_SwarmForme1"; + this.NUP_SwarmForme1.Size = new System.Drawing.Size(41, 20); + this.NUP_SwarmForme1.TabIndex = 688; + // + // NUP_SwarmMin1 + // + this.NUP_SwarmMin1.Location = new System.Drawing.Point(819, 194); + this.NUP_SwarmMin1.Name = "NUP_SwarmMin1"; + this.NUP_SwarmMin1.Size = new System.Drawing.Size(41, 20); + this.NUP_SwarmMin1.TabIndex = 689; + // + // label66 + // + this.label66.AutoSize = true; + this.label66.Location = new System.Drawing.Point(771, 178); + this.label66.Name = "label66"; + this.label66.Size = new System.Drawing.Size(36, 13); + this.label66.TabIndex = 701; + this.label66.Text = "Forme"; + // + // NUP_SwarmMax1 + // + this.NUP_SwarmMax1.Location = new System.Drawing.Point(866, 194); + this.NUP_SwarmMax1.Name = "NUP_SwarmMax1"; + this.NUP_SwarmMax1.Size = new System.Drawing.Size(41, 20); + this.NUP_SwarmMax1.TabIndex = 690; + // + // label67 + // + this.label67.AutoSize = true; + this.label67.Location = new System.Drawing.Point(818, 178); + this.label67.Name = "label67"; + this.label67.Size = new System.Drawing.Size(24, 13); + this.label67.TabIndex = 702; + this.label67.Text = "Min"; + // + // NUP_SwarmForme2 + // + this.NUP_SwarmForme2.Location = new System.Drawing.Point(772, 221); + this.NUP_SwarmForme2.Name = "NUP_SwarmForme2"; + this.NUP_SwarmForme2.Size = new System.Drawing.Size(41, 20); + this.NUP_SwarmForme2.TabIndex = 691; + // + // label68 + // + this.label68.AutoSize = true; + this.label68.Location = new System.Drawing.Point(865, 178); + this.label68.Name = "label68"; + this.label68.Size = new System.Drawing.Size(27, 13); + this.label68.TabIndex = 703; + this.label68.Text = "Max"; + // + // NUP_SwarmMin2 + // + this.NUP_SwarmMin2.Location = new System.Drawing.Point(819, 221); + this.NUP_SwarmMin2.Name = "NUP_SwarmMin2"; + this.NUP_SwarmMin2.Size = new System.Drawing.Size(41, 20); + this.NUP_SwarmMin2.TabIndex = 692; + // + // L_DexNav + // + this.L_DexNav.AutoSize = true; + this.L_DexNav.Location = new System.Drawing.Point(643, 177); + this.L_DexNav.Name = "L_DexNav"; + this.L_DexNav.Size = new System.Drawing.Size(89, 13); + this.L_DexNav.TabIndex = 700; + this.L_DexNav.Text = "DexNav Foreigns"; + // + // NUP_SwarmMax2 + // + this.NUP_SwarmMax2.Location = new System.Drawing.Point(866, 221); + this.NUP_SwarmMax2.Name = "NUP_SwarmMax2"; + this.NUP_SwarmMax2.Size = new System.Drawing.Size(41, 20); + this.NUP_SwarmMax2.TabIndex = 693; + // + // NUP_SwarmForme3 + // + this.NUP_SwarmForme3.Location = new System.Drawing.Point(772, 248); + this.NUP_SwarmForme3.Name = "NUP_SwarmForme3"; + this.NUP_SwarmForme3.Size = new System.Drawing.Size(41, 20); + this.NUP_SwarmForme3.TabIndex = 694; + // + // NUP_SwarmMin3 + // + this.NUP_SwarmMin3.Location = new System.Drawing.Point(819, 248); + this.NUP_SwarmMin3.Name = "NUP_SwarmMin3"; + this.NUP_SwarmMin3.Size = new System.Drawing.Size(41, 20); + this.NUP_SwarmMin3.TabIndex = 695; + // + // NUP_SwarmMax3 + // + this.NUP_SwarmMax3.Location = new System.Drawing.Point(866, 248); + this.NUP_SwarmMax3.Name = "NUP_SwarmMax3"; + this.NUP_SwarmMax3.Size = new System.Drawing.Size(41, 20); + this.NUP_SwarmMax3.TabIndex = 696; + // + // label70 + // + this.label70.AutoSize = true; + this.label70.Location = new System.Drawing.Point(619, 197); + this.label70.Name = "label70"; + this.label70.Size = new System.Drawing.Size(21, 13); + this.label70.TabIndex = 697; + this.label70.Text = "?%"; + // + // label80 + // + this.label80.AutoSize = true; + this.label80.Location = new System.Drawing.Point(619, 251); + this.label80.Name = "label80"; + this.label80.Size = new System.Drawing.Size(21, 13); + this.label80.TabIndex = 699; + this.label80.Text = "?%"; + // + // label81 + // + this.label81.AutoSize = true; + this.label81.Location = new System.Drawing.Point(619, 224); + this.label81.Name = "label81"; + this.label81.Size = new System.Drawing.Size(21, 13); + this.label81.TabIndex = 698; + this.label81.Text = "?%"; + // + // NUP_TallGrassForme11 + // + this.NUP_TallGrassForme11.Location = new System.Drawing.Point(470, 301); + this.NUP_TallGrassForme11.Name = "NUP_TallGrassForme11"; + this.NUP_TallGrassForme11.Size = new System.Drawing.Size(41, 20); + this.NUP_TallGrassForme11.TabIndex = 682; + // + // NUP_TallGrassMin11 + // + this.NUP_TallGrassMin11.Location = new System.Drawing.Point(517, 301); + this.NUP_TallGrassMin11.Name = "NUP_TallGrassMin11"; + this.NUP_TallGrassMin11.Size = new System.Drawing.Size(41, 20); + this.NUP_TallGrassMin11.TabIndex = 683; + // + // NUP_TallGrassMax11 + // + this.NUP_TallGrassMax11.Location = new System.Drawing.Point(564, 301); + this.NUP_TallGrassMax11.Name = "NUP_TallGrassMax11"; + this.NUP_TallGrassMax11.Size = new System.Drawing.Size(41, 20); + this.NUP_TallGrassMax11.TabIndex = 684; + // + // NUP_TallGrassForme12 + // + this.NUP_TallGrassForme12.Location = new System.Drawing.Point(470, 327); + this.NUP_TallGrassForme12.Name = "NUP_TallGrassForme12"; + this.NUP_TallGrassForme12.Size = new System.Drawing.Size(41, 20); + this.NUP_TallGrassForme12.TabIndex = 685; + // + // NUP_TallGrassMin12 + // + this.NUP_TallGrassMin12.Location = new System.Drawing.Point(517, 327); + this.NUP_TallGrassMin12.Name = "NUP_TallGrassMin12"; + this.NUP_TallGrassMin12.Size = new System.Drawing.Size(41, 20); + this.NUP_TallGrassMin12.TabIndex = 686; + // + // NUP_TallGrassMax12 + // + this.NUP_TallGrassMax12.Location = new System.Drawing.Point(564, 327); + this.NUP_TallGrassMax12.Name = "NUP_TallGrassMax12"; + this.NUP_TallGrassMax12.Size = new System.Drawing.Size(41, 20); + this.NUP_TallGrassMax12.TabIndex = 687; + // + // NUP_TallGrassForme1 + // + this.NUP_TallGrassForme1.Location = new System.Drawing.Point(470, 36); + this.NUP_TallGrassForme1.Name = "NUP_TallGrassForme1"; + this.NUP_TallGrassForme1.Size = new System.Drawing.Size(41, 20); + this.NUP_TallGrassForme1.TabIndex = 641; + // + // NUP_TallGrassMin1 + // + this.NUP_TallGrassMin1.Location = new System.Drawing.Point(517, 36); + this.NUP_TallGrassMin1.Name = "NUP_TallGrassMin1"; + this.NUP_TallGrassMin1.Size = new System.Drawing.Size(41, 20); + this.NUP_TallGrassMin1.TabIndex = 642; + // + // NUP_TallGrassMax1 + // + this.NUP_TallGrassMax1.Location = new System.Drawing.Point(564, 36); + this.NUP_TallGrassMax1.Name = "NUP_TallGrassMax1"; + this.NUP_TallGrassMax1.Size = new System.Drawing.Size(41, 20); + this.NUP_TallGrassMax1.TabIndex = 643; + // + // NUP_TallGrassForme2 + // + this.NUP_TallGrassForme2.Location = new System.Drawing.Point(470, 63); + this.NUP_TallGrassForme2.Name = "NUP_TallGrassForme2"; + this.NUP_TallGrassForme2.Size = new System.Drawing.Size(41, 20); + this.NUP_TallGrassForme2.TabIndex = 644; + // + // NUP_TallGrassMin2 + // + this.NUP_TallGrassMin2.Location = new System.Drawing.Point(517, 63); + this.NUP_TallGrassMin2.Name = "NUP_TallGrassMin2"; + this.NUP_TallGrassMin2.Size = new System.Drawing.Size(41, 20); + this.NUP_TallGrassMin2.TabIndex = 645; + // + // NUP_TallGrassMax2 + // + this.NUP_TallGrassMax2.Location = new System.Drawing.Point(564, 63); + this.NUP_TallGrassMax2.Name = "NUP_TallGrassMax2"; + this.NUP_TallGrassMax2.Size = new System.Drawing.Size(41, 20); + this.NUP_TallGrassMax2.TabIndex = 646; + // + // CB_TallGrass12 + // + this.CB_TallGrass12.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_TallGrass12.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_TallGrass12.FormattingEnabled = true; + this.CB_TallGrass12.Location = new System.Drawing.Point(343, 327); + this.CB_TallGrass12.Name = "CB_TallGrass12"; + this.CB_TallGrass12.Size = new System.Drawing.Size(121, 21); + this.CB_TallGrass12.TabIndex = 681; + // + // NUP_TallGrassForme3 + // + this.NUP_TallGrassForme3.Location = new System.Drawing.Point(470, 90); + this.NUP_TallGrassForme3.Name = "NUP_TallGrassForme3"; + this.NUP_TallGrassForme3.Size = new System.Drawing.Size(41, 20); + this.NUP_TallGrassForme3.TabIndex = 647; + // + // CB_TallGrass11 + // + this.CB_TallGrass11.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_TallGrass11.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_TallGrass11.FormattingEnabled = true; + this.CB_TallGrass11.Location = new System.Drawing.Point(343, 301); + this.CB_TallGrass11.Name = "CB_TallGrass11"; + this.CB_TallGrass11.Size = new System.Drawing.Size(121, 21); + this.CB_TallGrass11.TabIndex = 680; + // + // NUP_TallGrassMin3 + // + this.NUP_TallGrassMin3.Location = new System.Drawing.Point(517, 90); + this.NUP_TallGrassMin3.Name = "NUP_TallGrassMin3"; + this.NUP_TallGrassMin3.Size = new System.Drawing.Size(41, 20); + this.NUP_TallGrassMin3.TabIndex = 648; + // + // CB_TallGrass10 + // + this.CB_TallGrass10.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_TallGrass10.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_TallGrass10.FormattingEnabled = true; + this.CB_TallGrass10.Location = new System.Drawing.Point(343, 274); + this.CB_TallGrass10.Name = "CB_TallGrass10"; + this.CB_TallGrass10.Size = new System.Drawing.Size(121, 21); + this.CB_TallGrass10.TabIndex = 679; + // + // NUP_TallGrassMax3 + // + this.NUP_TallGrassMax3.Location = new System.Drawing.Point(564, 90); + this.NUP_TallGrassMax3.Name = "NUP_TallGrassMax3"; + this.NUP_TallGrassMax3.Size = new System.Drawing.Size(41, 20); + this.NUP_TallGrassMax3.TabIndex = 649; + // + // CB_TallGrass9 + // + this.CB_TallGrass9.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_TallGrass9.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_TallGrass9.FormattingEnabled = true; + this.CB_TallGrass9.Location = new System.Drawing.Point(343, 248); + this.CB_TallGrass9.Name = "CB_TallGrass9"; + this.CB_TallGrass9.Size = new System.Drawing.Size(121, 21); + this.CB_TallGrass9.TabIndex = 678; + // + // NUP_TallGrassForme4 + // + this.NUP_TallGrassForme4.Location = new System.Drawing.Point(470, 116); + this.NUP_TallGrassForme4.Name = "NUP_TallGrassForme4"; + this.NUP_TallGrassForme4.Size = new System.Drawing.Size(41, 20); + this.NUP_TallGrassForme4.TabIndex = 650; + // + // CB_TallGrass8 + // + this.CB_TallGrass8.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_TallGrass8.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_TallGrass8.FormattingEnabled = true; + this.CB_TallGrass8.Location = new System.Drawing.Point(343, 221); + this.CB_TallGrass8.Name = "CB_TallGrass8"; + this.CB_TallGrass8.Size = new System.Drawing.Size(121, 21); + this.CB_TallGrass8.TabIndex = 677; + // + // NUP_TallGrassMin4 + // + this.NUP_TallGrassMin4.Location = new System.Drawing.Point(517, 116); + this.NUP_TallGrassMin4.Name = "NUP_TallGrassMin4"; + this.NUP_TallGrassMin4.Size = new System.Drawing.Size(41, 20); + this.NUP_TallGrassMin4.TabIndex = 651; + // + // CB_TallGrass7 + // + this.CB_TallGrass7.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_TallGrass7.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_TallGrass7.FormattingEnabled = true; + this.CB_TallGrass7.Location = new System.Drawing.Point(343, 195); + this.CB_TallGrass7.Name = "CB_TallGrass7"; + this.CB_TallGrass7.Size = new System.Drawing.Size(121, 21); + this.CB_TallGrass7.TabIndex = 676; + // + // NUP_TallGrassMax4 + // + this.NUP_TallGrassMax4.Location = new System.Drawing.Point(564, 116); + this.NUP_TallGrassMax4.Name = "NUP_TallGrassMax4"; + this.NUP_TallGrassMax4.Size = new System.Drawing.Size(41, 20); + this.NUP_TallGrassMax4.TabIndex = 652; + // + // CB_TallGrass6 + // + this.CB_TallGrass6.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_TallGrass6.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_TallGrass6.FormattingEnabled = true; + this.CB_TallGrass6.Location = new System.Drawing.Point(343, 168); + this.CB_TallGrass6.Name = "CB_TallGrass6"; + this.CB_TallGrass6.Size = new System.Drawing.Size(121, 21); + this.CB_TallGrass6.TabIndex = 675; + // + // NUP_TallGrassForme5 + // + this.NUP_TallGrassForme5.Location = new System.Drawing.Point(470, 143); + this.NUP_TallGrassForme5.Name = "NUP_TallGrassForme5"; + this.NUP_TallGrassForme5.Size = new System.Drawing.Size(41, 20); + this.NUP_TallGrassForme5.TabIndex = 653; + // + // CB_TallGrass5 + // + this.CB_TallGrass5.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_TallGrass5.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_TallGrass5.FormattingEnabled = true; + this.CB_TallGrass5.Location = new System.Drawing.Point(343, 142); + this.CB_TallGrass5.Name = "CB_TallGrass5"; + this.CB_TallGrass5.Size = new System.Drawing.Size(121, 21); + this.CB_TallGrass5.TabIndex = 674; + // + // NUP_TallGrassMin5 + // + this.NUP_TallGrassMin5.Location = new System.Drawing.Point(517, 143); + this.NUP_TallGrassMin5.Name = "NUP_TallGrassMin5"; + this.NUP_TallGrassMin5.Size = new System.Drawing.Size(41, 20); + this.NUP_TallGrassMin5.TabIndex = 654; + // + // CB_TallGrass4 + // + this.CB_TallGrass4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_TallGrass4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_TallGrass4.FormattingEnabled = true; + this.CB_TallGrass4.Location = new System.Drawing.Point(343, 115); + this.CB_TallGrass4.Name = "CB_TallGrass4"; + this.CB_TallGrass4.Size = new System.Drawing.Size(121, 21); + this.CB_TallGrass4.TabIndex = 673; + // + // NUP_TallGrassMax5 + // + this.NUP_TallGrassMax5.Location = new System.Drawing.Point(564, 143); + this.NUP_TallGrassMax5.Name = "NUP_TallGrassMax5"; + this.NUP_TallGrassMax5.Size = new System.Drawing.Size(41, 20); + this.NUP_TallGrassMax5.TabIndex = 655; + // + // CB_TallGrass3 + // + this.CB_TallGrass3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_TallGrass3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_TallGrass3.FormattingEnabled = true; + this.CB_TallGrass3.Location = new System.Drawing.Point(343, 89); + this.CB_TallGrass3.Name = "CB_TallGrass3"; + this.CB_TallGrass3.Size = new System.Drawing.Size(121, 21); + this.CB_TallGrass3.TabIndex = 672; + // + // NUP_TallGrassForme6 + // + this.NUP_TallGrassForme6.Location = new System.Drawing.Point(470, 170); + this.NUP_TallGrassForme6.Name = "NUP_TallGrassForme6"; + this.NUP_TallGrassForme6.Size = new System.Drawing.Size(41, 20); + this.NUP_TallGrassForme6.TabIndex = 656; + // + // CB_TallGrass2 + // + this.CB_TallGrass2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_TallGrass2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_TallGrass2.FormattingEnabled = true; + this.CB_TallGrass2.Location = new System.Drawing.Point(343, 62); + this.CB_TallGrass2.Name = "CB_TallGrass2"; + this.CB_TallGrass2.Size = new System.Drawing.Size(121, 21); + this.CB_TallGrass2.TabIndex = 671; + // + // NUP_TallGrassMin6 + // + this.NUP_TallGrassMin6.Location = new System.Drawing.Point(517, 170); + this.NUP_TallGrassMin6.Name = "NUP_TallGrassMin6"; + this.NUP_TallGrassMin6.Size = new System.Drawing.Size(41, 20); + this.NUP_TallGrassMin6.TabIndex = 657; + // + // CB_TallGrass1 + // + this.CB_TallGrass1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_TallGrass1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_TallGrass1.FormattingEnabled = true; + this.CB_TallGrass1.Location = new System.Drawing.Point(343, 36); + this.CB_TallGrass1.Name = "CB_TallGrass1"; + this.CB_TallGrass1.Size = new System.Drawing.Size(121, 21); + this.CB_TallGrass1.TabIndex = 640; + // + // NUP_TallGrassMax6 + // + this.NUP_TallGrassMax6.Location = new System.Drawing.Point(564, 170); + this.NUP_TallGrassMax6.Name = "NUP_TallGrassMax6"; + this.NUP_TallGrassMax6.Size = new System.Drawing.Size(41, 20); + this.NUP_TallGrassMax6.TabIndex = 658; + // + // NUP_TallGrassForme7 + // + this.NUP_TallGrassForme7.Location = new System.Drawing.Point(470, 196); + this.NUP_TallGrassForme7.Name = "NUP_TallGrassForme7"; + this.NUP_TallGrassForme7.Size = new System.Drawing.Size(41, 20); + this.NUP_TallGrassForme7.TabIndex = 659; + // + // NUP_TallGrassMin7 + // + this.NUP_TallGrassMin7.Location = new System.Drawing.Point(517, 196); + this.NUP_TallGrassMin7.Name = "NUP_TallGrassMin7"; + this.NUP_TallGrassMin7.Size = new System.Drawing.Size(41, 20); + this.NUP_TallGrassMin7.TabIndex = 660; + // + // NUP_TallGrassMax7 + // + this.NUP_TallGrassMax7.Location = new System.Drawing.Point(564, 196); + this.NUP_TallGrassMax7.Name = "NUP_TallGrassMax7"; + this.NUP_TallGrassMax7.Size = new System.Drawing.Size(41, 20); + this.NUP_TallGrassMax7.TabIndex = 661; + // + // NUP_TallGrassForme8 + // + this.NUP_TallGrassForme8.Location = new System.Drawing.Point(470, 223); + this.NUP_TallGrassForme8.Name = "NUP_TallGrassForme8"; + this.NUP_TallGrassForme8.Size = new System.Drawing.Size(41, 20); + this.NUP_TallGrassForme8.TabIndex = 662; + // + // NUP_TallGrassMin8 + // + this.NUP_TallGrassMin8.Location = new System.Drawing.Point(517, 223); + this.NUP_TallGrassMin8.Name = "NUP_TallGrassMin8"; + this.NUP_TallGrassMin8.Size = new System.Drawing.Size(41, 20); + this.NUP_TallGrassMin8.TabIndex = 663; + // + // NUP_TallGrassMax8 + // + this.NUP_TallGrassMax8.Location = new System.Drawing.Point(564, 223); + this.NUP_TallGrassMax8.Name = "NUP_TallGrassMax8"; + this.NUP_TallGrassMax8.Size = new System.Drawing.Size(41, 20); + this.NUP_TallGrassMax8.TabIndex = 664; + // + // NUP_TallGrassForme9 + // + this.NUP_TallGrassForme9.Location = new System.Drawing.Point(470, 250); + this.NUP_TallGrassForme9.Name = "NUP_TallGrassForme9"; + this.NUP_TallGrassForme9.Size = new System.Drawing.Size(41, 20); + this.NUP_TallGrassForme9.TabIndex = 665; + // + // NUP_TallGrassMin9 + // + this.NUP_TallGrassMin9.Location = new System.Drawing.Point(517, 250); + this.NUP_TallGrassMin9.Name = "NUP_TallGrassMin9"; + this.NUP_TallGrassMin9.Size = new System.Drawing.Size(41, 20); + this.NUP_TallGrassMin9.TabIndex = 666; + // + // NUP_TallGrassMax9 + // + this.NUP_TallGrassMax9.Location = new System.Drawing.Point(564, 250); + this.NUP_TallGrassMax9.Name = "NUP_TallGrassMax9"; + this.NUP_TallGrassMax9.Size = new System.Drawing.Size(41, 20); + this.NUP_TallGrassMax9.TabIndex = 667; + // + // NUP_TallGrassForme10 + // + this.NUP_TallGrassForme10.Location = new System.Drawing.Point(470, 276); + this.NUP_TallGrassForme10.Name = "NUP_TallGrassForme10"; + this.NUP_TallGrassForme10.Size = new System.Drawing.Size(41, 20); + this.NUP_TallGrassForme10.TabIndex = 668; + // + // NUP_TallGrassMin10 + // + this.NUP_TallGrassMin10.Location = new System.Drawing.Point(517, 276); + this.NUP_TallGrassMin10.Name = "NUP_TallGrassMin10"; + this.NUP_TallGrassMin10.Size = new System.Drawing.Size(41, 20); + this.NUP_TallGrassMin10.TabIndex = 669; + // + // NUP_TallGrassMax10 + // + this.NUP_TallGrassMax10.Location = new System.Drawing.Point(564, 276); + this.NUP_TallGrassMax10.Name = "NUP_TallGrassMax10"; + this.NUP_TallGrassMax10.Size = new System.Drawing.Size(41, 20); + this.NUP_TallGrassMax10.TabIndex = 670; + // + // label107 + // + this.label107.AutoSize = true; + this.label107.Location = new System.Drawing.Point(619, 147); + this.label107.Name = "label107"; + this.label107.Size = new System.Drawing.Size(21, 13); + this.label107.TabIndex = 406; + this.label107.Text = "1%"; + // + // L_RockSmash + // + this.L_RockSmash.AutoSize = true; + this.L_RockSmash.Location = new System.Drawing.Point(643, 20); + this.L_RockSmash.Name = "L_RockSmash"; + this.L_RockSmash.Size = new System.Drawing.Size(68, 13); + this.L_RockSmash.TabIndex = 398; + this.L_RockSmash.Text = "Rock Smash"; + // + // label108 + // + this.label108.AutoSize = true; + this.label108.Location = new System.Drawing.Point(619, 120); + this.label108.Name = "label108"; + this.label108.Size = new System.Drawing.Size(21, 13); + this.label108.TabIndex = 405; + this.label108.Text = "4%"; + // + // NUP_RockSmashMax5 + // + this.NUP_RockSmashMax5.Location = new System.Drawing.Point(867, 145); + this.NUP_RockSmashMax5.Name = "NUP_RockSmashMax5"; + this.NUP_RockSmashMax5.Size = new System.Drawing.Size(41, 20); + this.NUP_RockSmashMax5.TabIndex = 397; + // + // label109 + // + this.label109.AutoSize = true; + this.label109.Location = new System.Drawing.Point(613, 93); + this.label109.Name = "label109"; + this.label109.Size = new System.Drawing.Size(27, 13); + this.label109.TabIndex = 404; + this.label109.Text = "15%"; + // + // NUP_RockSmashMin5 + // + this.NUP_RockSmashMin5.Location = new System.Drawing.Point(820, 145); + this.NUP_RockSmashMin5.Name = "NUP_RockSmashMin5"; + this.NUP_RockSmashMin5.Size = new System.Drawing.Size(41, 20); + this.NUP_RockSmashMin5.TabIndex = 396; + // + // label110 + // + this.label110.AutoSize = true; + this.label110.Location = new System.Drawing.Point(613, 66); + this.label110.Name = "label110"; + this.label110.Size = new System.Drawing.Size(27, 13); + this.label110.TabIndex = 403; + this.label110.Text = "30%"; + // + // NUP_RockSmashForme5 + // + this.NUP_RockSmashForme5.Location = new System.Drawing.Point(773, 145); + this.NUP_RockSmashForme5.Name = "NUP_RockSmashForme5"; + this.NUP_RockSmashForme5.Size = new System.Drawing.Size(41, 20); + this.NUP_RockSmashForme5.TabIndex = 395; + // + // label111 + // + this.label111.AutoSize = true; + this.label111.Location = new System.Drawing.Point(613, 39); + this.label111.Name = "label111"; + this.label111.Size = new System.Drawing.Size(27, 13); + this.label111.TabIndex = 402; + this.label111.Text = "50%"; + // + // CB_RockSmash5 + // + this.CB_RockSmash5.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_RockSmash5.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_RockSmash5.FormattingEnabled = true; + this.CB_RockSmash5.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -22737,17 +22737,17 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_RockSmash5.Location = new System.Drawing.Point(646, 144); - this.CB_RockSmash5.Name = "CB_RockSmash5"; - this.CB_RockSmash5.Size = new System.Drawing.Size(121, 21); - this.CB_RockSmash5.TabIndex = 394; - // - // CB_RockSmash1 - // - this.CB_RockSmash1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_RockSmash1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_RockSmash1.FormattingEnabled = true; - this.CB_RockSmash1.Items.AddRange(new object[] { + this.CB_RockSmash5.Location = new System.Drawing.Point(646, 144); + this.CB_RockSmash5.Name = "CB_RockSmash5"; + this.CB_RockSmash5.Size = new System.Drawing.Size(121, 21); + this.CB_RockSmash5.TabIndex = 394; + // + // CB_RockSmash1 + // + this.CB_RockSmash1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_RockSmash1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_RockSmash1.FormattingEnabled = true; + this.CB_RockSmash1.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -23398,61 +23398,61 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_RockSmash1.Location = new System.Drawing.Point(646, 36); - this.CB_RockSmash1.Name = "CB_RockSmash1"; - this.CB_RockSmash1.Size = new System.Drawing.Size(121, 21); - this.CB_RockSmash1.TabIndex = 378; - // - // NUP_RockSmashMax4 - // - this.NUP_RockSmashMax4.Location = new System.Drawing.Point(867, 118); - this.NUP_RockSmashMax4.Name = "NUP_RockSmashMax4"; - this.NUP_RockSmashMax4.Size = new System.Drawing.Size(41, 20); - this.NUP_RockSmashMax4.TabIndex = 393; - // - // NUP_RockSmashForme1 - // - this.NUP_RockSmashForme1.Location = new System.Drawing.Point(773, 37); - this.NUP_RockSmashForme1.Name = "NUP_RockSmashForme1"; - this.NUP_RockSmashForme1.Size = new System.Drawing.Size(41, 20); - this.NUP_RockSmashForme1.TabIndex = 379; - // - // NUP_RockSmashMin4 - // - this.NUP_RockSmashMin4.Location = new System.Drawing.Point(820, 118); - this.NUP_RockSmashMin4.Name = "NUP_RockSmashMin4"; - this.NUP_RockSmashMin4.Size = new System.Drawing.Size(41, 20); - this.NUP_RockSmashMin4.TabIndex = 392; - // - // label112 - // - this.label112.AutoSize = true; - this.label112.Location = new System.Drawing.Point(864, 20); - this.label112.Name = "label112"; - this.label112.Size = new System.Drawing.Size(27, 13); - this.label112.TabIndex = 401; - this.label112.Text = "Max"; - // - // NUP_RockSmashForme4 - // - this.NUP_RockSmashForme4.Location = new System.Drawing.Point(773, 118); - this.NUP_RockSmashForme4.Name = "NUP_RockSmashForme4"; - this.NUP_RockSmashForme4.Size = new System.Drawing.Size(41, 20); - this.NUP_RockSmashForme4.TabIndex = 391; - // - // NUP_RockSmashMin1 - // - this.NUP_RockSmashMin1.Location = new System.Drawing.Point(820, 37); - this.NUP_RockSmashMin1.Name = "NUP_RockSmashMin1"; - this.NUP_RockSmashMin1.Size = new System.Drawing.Size(41, 20); - this.NUP_RockSmashMin1.TabIndex = 380; - // - // CB_RockSmash4 - // - this.CB_RockSmash4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_RockSmash4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_RockSmash4.FormattingEnabled = true; - this.CB_RockSmash4.Items.AddRange(new object[] { + this.CB_RockSmash1.Location = new System.Drawing.Point(646, 36); + this.CB_RockSmash1.Name = "CB_RockSmash1"; + this.CB_RockSmash1.Size = new System.Drawing.Size(121, 21); + this.CB_RockSmash1.TabIndex = 378; + // + // NUP_RockSmashMax4 + // + this.NUP_RockSmashMax4.Location = new System.Drawing.Point(867, 118); + this.NUP_RockSmashMax4.Name = "NUP_RockSmashMax4"; + this.NUP_RockSmashMax4.Size = new System.Drawing.Size(41, 20); + this.NUP_RockSmashMax4.TabIndex = 393; + // + // NUP_RockSmashForme1 + // + this.NUP_RockSmashForme1.Location = new System.Drawing.Point(773, 37); + this.NUP_RockSmashForme1.Name = "NUP_RockSmashForme1"; + this.NUP_RockSmashForme1.Size = new System.Drawing.Size(41, 20); + this.NUP_RockSmashForme1.TabIndex = 379; + // + // NUP_RockSmashMin4 + // + this.NUP_RockSmashMin4.Location = new System.Drawing.Point(820, 118); + this.NUP_RockSmashMin4.Name = "NUP_RockSmashMin4"; + this.NUP_RockSmashMin4.Size = new System.Drawing.Size(41, 20); + this.NUP_RockSmashMin4.TabIndex = 392; + // + // label112 + // + this.label112.AutoSize = true; + this.label112.Location = new System.Drawing.Point(864, 20); + this.label112.Name = "label112"; + this.label112.Size = new System.Drawing.Size(27, 13); + this.label112.TabIndex = 401; + this.label112.Text = "Max"; + // + // NUP_RockSmashForme4 + // + this.NUP_RockSmashForme4.Location = new System.Drawing.Point(773, 118); + this.NUP_RockSmashForme4.Name = "NUP_RockSmashForme4"; + this.NUP_RockSmashForme4.Size = new System.Drawing.Size(41, 20); + this.NUP_RockSmashForme4.TabIndex = 391; + // + // NUP_RockSmashMin1 + // + this.NUP_RockSmashMin1.Location = new System.Drawing.Point(820, 37); + this.NUP_RockSmashMin1.Name = "NUP_RockSmashMin1"; + this.NUP_RockSmashMin1.Size = new System.Drawing.Size(41, 20); + this.NUP_RockSmashMin1.TabIndex = 380; + // + // CB_RockSmash4 + // + this.CB_RockSmash4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_RockSmash4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_RockSmash4.FormattingEnabled = true; + this.CB_RockSmash4.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -24103,63 +24103,63 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_RockSmash4.Location = new System.Drawing.Point(646, 117); - this.CB_RockSmash4.Name = "CB_RockSmash4"; - this.CB_RockSmash4.Size = new System.Drawing.Size(121, 21); - this.CB_RockSmash4.TabIndex = 390; - // - // label113 - // - this.label113.AutoSize = true; - this.label113.Location = new System.Drawing.Point(817, 21); - this.label113.Name = "label113"; - this.label113.Size = new System.Drawing.Size(24, 13); - this.label113.TabIndex = 400; - this.label113.Text = "Min"; - // - // NUP_RockSmashMax3 - // - this.NUP_RockSmashMax3.Location = new System.Drawing.Point(867, 91); - this.NUP_RockSmashMax3.Name = "NUP_RockSmashMax3"; - this.NUP_RockSmashMax3.Size = new System.Drawing.Size(41, 20); - this.NUP_RockSmashMax3.TabIndex = 389; - // - // NUP_RockSmashMax1 - // - this.NUP_RockSmashMax1.Location = new System.Drawing.Point(867, 37); - this.NUP_RockSmashMax1.Name = "NUP_RockSmashMax1"; - this.NUP_RockSmashMax1.Size = new System.Drawing.Size(41, 20); - this.NUP_RockSmashMax1.TabIndex = 381; - // - // NUP_RockSmashMin3 - // - this.NUP_RockSmashMin3.Location = new System.Drawing.Point(820, 91); - this.NUP_RockSmashMin3.Name = "NUP_RockSmashMin3"; - this.NUP_RockSmashMin3.Size = new System.Drawing.Size(41, 20); - this.NUP_RockSmashMin3.TabIndex = 388; - // - // label114 - // - this.label114.AutoSize = true; - this.label114.Location = new System.Drawing.Point(770, 21); - this.label114.Name = "label114"; - this.label114.Size = new System.Drawing.Size(36, 13); - this.label114.TabIndex = 399; - this.label114.Text = "Forme"; - // - // NUP_RockSmashForme3 - // - this.NUP_RockSmashForme3.Location = new System.Drawing.Point(773, 91); - this.NUP_RockSmashForme3.Name = "NUP_RockSmashForme3"; - this.NUP_RockSmashForme3.Size = new System.Drawing.Size(41, 20); - this.NUP_RockSmashForme3.TabIndex = 387; - // - // CB_RockSmash2 - // - this.CB_RockSmash2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_RockSmash2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_RockSmash2.FormattingEnabled = true; - this.CB_RockSmash2.Items.AddRange(new object[] { + this.CB_RockSmash4.Location = new System.Drawing.Point(646, 117); + this.CB_RockSmash4.Name = "CB_RockSmash4"; + this.CB_RockSmash4.Size = new System.Drawing.Size(121, 21); + this.CB_RockSmash4.TabIndex = 390; + // + // label113 + // + this.label113.AutoSize = true; + this.label113.Location = new System.Drawing.Point(817, 21); + this.label113.Name = "label113"; + this.label113.Size = new System.Drawing.Size(24, 13); + this.label113.TabIndex = 400; + this.label113.Text = "Min"; + // + // NUP_RockSmashMax3 + // + this.NUP_RockSmashMax3.Location = new System.Drawing.Point(867, 91); + this.NUP_RockSmashMax3.Name = "NUP_RockSmashMax3"; + this.NUP_RockSmashMax3.Size = new System.Drawing.Size(41, 20); + this.NUP_RockSmashMax3.TabIndex = 389; + // + // NUP_RockSmashMax1 + // + this.NUP_RockSmashMax1.Location = new System.Drawing.Point(867, 37); + this.NUP_RockSmashMax1.Name = "NUP_RockSmashMax1"; + this.NUP_RockSmashMax1.Size = new System.Drawing.Size(41, 20); + this.NUP_RockSmashMax1.TabIndex = 381; + // + // NUP_RockSmashMin3 + // + this.NUP_RockSmashMin3.Location = new System.Drawing.Point(820, 91); + this.NUP_RockSmashMin3.Name = "NUP_RockSmashMin3"; + this.NUP_RockSmashMin3.Size = new System.Drawing.Size(41, 20); + this.NUP_RockSmashMin3.TabIndex = 388; + // + // label114 + // + this.label114.AutoSize = true; + this.label114.Location = new System.Drawing.Point(770, 21); + this.label114.Name = "label114"; + this.label114.Size = new System.Drawing.Size(36, 13); + this.label114.TabIndex = 399; + this.label114.Text = "Forme"; + // + // NUP_RockSmashForme3 + // + this.NUP_RockSmashForme3.Location = new System.Drawing.Point(773, 91); + this.NUP_RockSmashForme3.Name = "NUP_RockSmashForme3"; + this.NUP_RockSmashForme3.Size = new System.Drawing.Size(41, 20); + this.NUP_RockSmashForme3.TabIndex = 387; + // + // CB_RockSmash2 + // + this.CB_RockSmash2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_RockSmash2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_RockSmash2.FormattingEnabled = true; + this.CB_RockSmash2.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -24810,17 +24810,17 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_RockSmash2.Location = new System.Drawing.Point(646, 63); - this.CB_RockSmash2.Name = "CB_RockSmash2"; - this.CB_RockSmash2.Size = new System.Drawing.Size(121, 21); - this.CB_RockSmash2.TabIndex = 382; - // - // CB_RockSmash3 - // - this.CB_RockSmash3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_RockSmash3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_RockSmash3.FormattingEnabled = true; - this.CB_RockSmash3.Items.AddRange(new object[] { + this.CB_RockSmash2.Location = new System.Drawing.Point(646, 63); + this.CB_RockSmash2.Name = "CB_RockSmash2"; + this.CB_RockSmash2.Size = new System.Drawing.Size(121, 21); + this.CB_RockSmash2.TabIndex = 382; + // + // CB_RockSmash3 + // + this.CB_RockSmash3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_RockSmash3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_RockSmash3.FormattingEnabled = true; + this.CB_RockSmash3.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -25471,1314 +25471,1313 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_RockSmash3.Location = new System.Drawing.Point(646, 90); - this.CB_RockSmash3.Name = "CB_RockSmash3"; - this.CB_RockSmash3.Size = new System.Drawing.Size(121, 21); - this.CB_RockSmash3.TabIndex = 386; - // - // NUP_RockSmashMax2 - // - this.NUP_RockSmashMax2.Location = new System.Drawing.Point(867, 64); - this.NUP_RockSmashMax2.Name = "NUP_RockSmashMax2"; - this.NUP_RockSmashMax2.Size = new System.Drawing.Size(41, 20); - this.NUP_RockSmashMax2.TabIndex = 385; - // - // NUP_RockSmashForme2 - // - this.NUP_RockSmashForme2.Location = new System.Drawing.Point(773, 64); - this.NUP_RockSmashForme2.Name = "NUP_RockSmashForme2"; - this.NUP_RockSmashForme2.Size = new System.Drawing.Size(41, 20); - this.NUP_RockSmashForme2.TabIndex = 383; - // - // NUP_RockSmashMin2 - // - this.NUP_RockSmashMin2.Location = new System.Drawing.Point(820, 64); - this.NUP_RockSmashMin2.Name = "NUP_RockSmashMin2"; - this.NUP_RockSmashMin2.Size = new System.Drawing.Size(41, 20); - this.NUP_RockSmashMin2.TabIndex = 384; - // - // label6 - // - this.label6.AutoSize = true; - this.label6.Location = new System.Drawing.Point(469, 20); - this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(36, 13); - this.label6.TabIndex = 375; - this.label6.Text = "Forme"; - // - // label7 - // - this.label7.AutoSize = true; - this.label7.Location = new System.Drawing.Point(516, 20); - this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(24, 13); - this.label7.TabIndex = 376; - this.label7.Text = "Min"; - // - // label8 - // - this.label8.AutoSize = true; - this.label8.Location = new System.Drawing.Point(563, 20); - this.label8.Name = "label8"; - this.label8.Size = new System.Drawing.Size(27, 13); - this.label8.TabIndex = 377; - this.label8.Text = "Max"; - // - // L_TallGrass - // - this.L_TallGrass.AutoSize = true; - this.L_TallGrass.Location = new System.Drawing.Point(343, 20); - this.L_TallGrass.Name = "L_TallGrass"; - this.L_TallGrass.Size = new System.Drawing.Size(61, 13); - this.L_TallGrass.TabIndex = 374; - this.L_TallGrass.Text = "Long Grass"; - // - // label10 - // - this.label10.AutoSize = true; - this.label10.Location = new System.Drawing.Point(310, 39); - this.label10.Name = "label10"; - this.label10.Size = new System.Drawing.Size(27, 13); - this.label10.TabIndex = 351; - this.label10.Text = "10%"; - // - // label11 - // - this.label11.AutoSize = true; - this.label11.Location = new System.Drawing.Point(316, 332); - this.label11.Name = "label11"; - this.label11.Size = new System.Drawing.Size(21, 13); - this.label11.TabIndex = 362; - this.label11.Text = "1%"; - // - // label12 - // - this.label12.AutoSize = true; - this.label12.Location = new System.Drawing.Point(316, 305); - this.label12.Name = "label12"; - this.label12.Size = new System.Drawing.Size(21, 13); - this.label12.TabIndex = 361; - this.label12.Text = "4%"; - // - // label13 - // - this.label13.AutoSize = true; - this.label13.Location = new System.Drawing.Point(316, 278); - this.label13.Name = "label13"; - this.label13.Size = new System.Drawing.Size(21, 13); - this.label13.TabIndex = 360; - this.label13.Text = "5%"; - // - // label14 - // - this.label14.AutoSize = true; - this.label14.Location = new System.Drawing.Point(310, 252); - this.label14.Name = "label14"; - this.label14.Size = new System.Drawing.Size(27, 13); - this.label14.TabIndex = 359; - this.label14.Text = "10%"; - // - // label15 - // - this.label15.AutoSize = true; - this.label15.Location = new System.Drawing.Point(310, 228); - this.label15.Name = "label15"; - this.label15.Size = new System.Drawing.Size(27, 13); - this.label15.TabIndex = 358; - this.label15.Text = "10%"; - // - // label16 - // - this.label16.AutoSize = true; - this.label16.Location = new System.Drawing.Point(310, 201); - this.label16.Name = "label16"; - this.label16.Size = new System.Drawing.Size(27, 13); - this.label16.TabIndex = 357; - this.label16.Text = "10%"; - // - // label17 - // - this.label17.AutoSize = true; - this.label17.Location = new System.Drawing.Point(310, 174); - this.label17.Name = "label17"; - this.label17.Size = new System.Drawing.Size(27, 13); - this.label17.TabIndex = 356; - this.label17.Text = "10%"; - // - // label18 - // - this.label18.AutoSize = true; - this.label18.Location = new System.Drawing.Point(310, 147); - this.label18.Name = "label18"; - this.label18.Size = new System.Drawing.Size(27, 13); - this.label18.TabIndex = 355; - this.label18.Text = "10%"; - // - // label19 - // - this.label19.AutoSize = true; - this.label19.Location = new System.Drawing.Point(310, 120); - this.label19.Name = "label19"; - this.label19.Size = new System.Drawing.Size(27, 13); - this.label19.TabIndex = 354; - this.label19.Text = "10%"; - // - // label20 - // - this.label20.AutoSize = true; - this.label20.Location = new System.Drawing.Point(310, 93); - this.label20.Name = "label20"; - this.label20.Size = new System.Drawing.Size(27, 13); - this.label20.TabIndex = 353; - this.label20.Text = "10%"; - // - // label21 - // - this.label21.AutoSize = true; - this.label21.Location = new System.Drawing.Point(310, 66); - this.label21.Name = "label21"; - this.label21.Size = new System.Drawing.Size(27, 13); - this.label21.TabIndex = 352; - this.label21.Text = "10%"; - // - // NUP_GrassForme1 - // - this.NUP_GrassForme1.Location = new System.Drawing.Point(171, 36); - this.NUP_GrassForme1.Name = "NUP_GrassForme1"; - this.NUP_GrassForme1.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassForme1.TabIndex = 48; - // - // NUP_GrassMin1 - // - this.NUP_GrassMin1.Location = new System.Drawing.Point(218, 36); - this.NUP_GrassMin1.Name = "NUP_GrassMin1"; - this.NUP_GrassMin1.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMin1.TabIndex = 49; - // - // label3 - // - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(170, 20); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(36, 13); - this.label3.TabIndex = 311; - this.label3.Text = "Forme"; - // - // NUP_GrassMax1 - // - this.NUP_GrassMax1.Location = new System.Drawing.Point(265, 36); - this.NUP_GrassMax1.Name = "NUP_GrassMax1"; - this.NUP_GrassMax1.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMax1.TabIndex = 50; - // - // label4 - // - this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(217, 20); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(24, 13); - this.label4.TabIndex = 312; - this.label4.Text = "Min"; - // - // NUP_GrassForme2 - // - this.NUP_GrassForme2.Location = new System.Drawing.Point(171, 63); - this.NUP_GrassForme2.Name = "NUP_GrassForme2"; - this.NUP_GrassForme2.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassForme2.TabIndex = 51; - // - // label5 - // - this.label5.AutoSize = true; - this.label5.Location = new System.Drawing.Point(264, 20); - this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(27, 13); - this.label5.TabIndex = 313; - this.label5.Text = "Max"; - // - // NUP_GrassMin2 - // - this.NUP_GrassMin2.Location = new System.Drawing.Point(218, 63); - this.NUP_GrassMin2.Name = "NUP_GrassMin2"; - this.NUP_GrassMin2.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMin2.TabIndex = 52; - // - // L_Grass - // - this.L_Grass.AutoSize = true; - this.L_Grass.Location = new System.Drawing.Point(44, 20); - this.L_Grass.Name = "L_Grass"; - this.L_Grass.Size = new System.Drawing.Size(54, 13); - this.L_Grass.TabIndex = 310; - this.L_Grass.Text = "Tall Grass"; - // - // NUP_GrassMax2 - // - this.NUP_GrassMax2.Location = new System.Drawing.Point(265, 63); - this.NUP_GrassMax2.Name = "NUP_GrassMax2"; - this.NUP_GrassMax2.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMax2.TabIndex = 53; - // - // CB_Grass12 - // - this.CB_Grass12.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Grass12.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Grass12.FormattingEnabled = true; - this.CB_Grass12.Location = new System.Drawing.Point(44, 327); - this.CB_Grass12.Name = "CB_Grass12"; - this.CB_Grass12.Size = new System.Drawing.Size(121, 21); - this.CB_Grass12.TabIndex = 309; - // - // NUP_GrassForme3 - // - this.NUP_GrassForme3.Location = new System.Drawing.Point(171, 90); - this.NUP_GrassForme3.Name = "NUP_GrassForme3"; - this.NUP_GrassForme3.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassForme3.TabIndex = 54; - // - // CB_Grass11 - // - this.CB_Grass11.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Grass11.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Grass11.FormattingEnabled = true; - this.CB_Grass11.Location = new System.Drawing.Point(44, 301); - this.CB_Grass11.Name = "CB_Grass11"; - this.CB_Grass11.Size = new System.Drawing.Size(121, 21); - this.CB_Grass11.TabIndex = 308; - // - // NUP_GrassMin3 - // - this.NUP_GrassMin3.Location = new System.Drawing.Point(218, 90); - this.NUP_GrassMin3.Name = "NUP_GrassMin3"; - this.NUP_GrassMin3.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMin3.TabIndex = 55; - // - // CB_Grass10 - // - this.CB_Grass10.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Grass10.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Grass10.FormattingEnabled = true; - this.CB_Grass10.Location = new System.Drawing.Point(44, 274); - this.CB_Grass10.Name = "CB_Grass10"; - this.CB_Grass10.Size = new System.Drawing.Size(121, 21); - this.CB_Grass10.TabIndex = 307; - // - // NUP_GrassMax3 - // - this.NUP_GrassMax3.Location = new System.Drawing.Point(265, 90); - this.NUP_GrassMax3.Name = "NUP_GrassMax3"; - this.NUP_GrassMax3.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMax3.TabIndex = 56; - // - // CB_Grass9 - // - this.CB_Grass9.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Grass9.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Grass9.FormattingEnabled = true; - this.CB_Grass9.Location = new System.Drawing.Point(44, 248); - this.CB_Grass9.Name = "CB_Grass9"; - this.CB_Grass9.Size = new System.Drawing.Size(121, 21); - this.CB_Grass9.TabIndex = 306; - // - // NUP_GrassForme4 - // - this.NUP_GrassForme4.Location = new System.Drawing.Point(171, 116); - this.NUP_GrassForme4.Name = "NUP_GrassForme4"; - this.NUP_GrassForme4.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassForme4.TabIndex = 57; - // - // CB_Grass8 - // - this.CB_Grass8.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Grass8.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Grass8.FormattingEnabled = true; - this.CB_Grass8.Location = new System.Drawing.Point(44, 221); - this.CB_Grass8.Name = "CB_Grass8"; - this.CB_Grass8.Size = new System.Drawing.Size(121, 21); - this.CB_Grass8.TabIndex = 305; - // - // NUP_GrassMin4 - // - this.NUP_GrassMin4.Location = new System.Drawing.Point(218, 116); - this.NUP_GrassMin4.Name = "NUP_GrassMin4"; - this.NUP_GrassMin4.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMin4.TabIndex = 58; - // - // CB_Grass7 - // - this.CB_Grass7.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Grass7.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Grass7.FormattingEnabled = true; - this.CB_Grass7.Location = new System.Drawing.Point(44, 195); - this.CB_Grass7.Name = "CB_Grass7"; - this.CB_Grass7.Size = new System.Drawing.Size(121, 21); - this.CB_Grass7.TabIndex = 304; - // - // NUP_GrassMax4 - // - this.NUP_GrassMax4.Location = new System.Drawing.Point(265, 116); - this.NUP_GrassMax4.Name = "NUP_GrassMax4"; - this.NUP_GrassMax4.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMax4.TabIndex = 59; - // - // CB_Grass6 - // - this.CB_Grass6.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Grass6.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Grass6.FormattingEnabled = true; - this.CB_Grass6.Location = new System.Drawing.Point(44, 168); - this.CB_Grass6.Name = "CB_Grass6"; - this.CB_Grass6.Size = new System.Drawing.Size(121, 21); - this.CB_Grass6.TabIndex = 303; - // - // NUP_GrassForme5 - // - this.NUP_GrassForme5.Location = new System.Drawing.Point(171, 143); - this.NUP_GrassForme5.Name = "NUP_GrassForme5"; - this.NUP_GrassForme5.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassForme5.TabIndex = 60; - // - // CB_Grass5 - // - this.CB_Grass5.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Grass5.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Grass5.FormattingEnabled = true; - this.CB_Grass5.Location = new System.Drawing.Point(44, 142); - this.CB_Grass5.Name = "CB_Grass5"; - this.CB_Grass5.Size = new System.Drawing.Size(121, 21); - this.CB_Grass5.TabIndex = 302; - // - // NUP_GrassMin5 - // - this.NUP_GrassMin5.Location = new System.Drawing.Point(218, 143); - this.NUP_GrassMin5.Name = "NUP_GrassMin5"; - this.NUP_GrassMin5.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMin5.TabIndex = 61; - // - // CB_Grass4 - // - this.CB_Grass4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Grass4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Grass4.FormattingEnabled = true; - this.CB_Grass4.Location = new System.Drawing.Point(44, 115); - this.CB_Grass4.Name = "CB_Grass4"; - this.CB_Grass4.Size = new System.Drawing.Size(121, 21); - this.CB_Grass4.TabIndex = 301; - // - // NUP_GrassMax5 - // - this.NUP_GrassMax5.Location = new System.Drawing.Point(265, 143); - this.NUP_GrassMax5.Name = "NUP_GrassMax5"; - this.NUP_GrassMax5.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMax5.TabIndex = 62; - // - // CB_Grass3 - // - this.CB_Grass3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Grass3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Grass3.FormattingEnabled = true; - this.CB_Grass3.Location = new System.Drawing.Point(44, 89); - this.CB_Grass3.Name = "CB_Grass3"; - this.CB_Grass3.Size = new System.Drawing.Size(121, 21); - this.CB_Grass3.TabIndex = 300; - // - // NUP_GrassForme6 - // - this.NUP_GrassForme6.Location = new System.Drawing.Point(171, 170); - this.NUP_GrassForme6.Name = "NUP_GrassForme6"; - this.NUP_GrassForme6.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassForme6.TabIndex = 63; - // - // CB_Grass2 - // - this.CB_Grass2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Grass2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Grass2.FormattingEnabled = true; - this.CB_Grass2.Location = new System.Drawing.Point(44, 62); - this.CB_Grass2.Name = "CB_Grass2"; - this.CB_Grass2.Size = new System.Drawing.Size(121, 21); - this.CB_Grass2.TabIndex = 299; - // - // NUP_GrassMin6 - // - this.NUP_GrassMin6.Location = new System.Drawing.Point(218, 170); - this.NUP_GrassMin6.Name = "NUP_GrassMin6"; - this.NUP_GrassMin6.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMin6.TabIndex = 64; - // - // CB_Grass1 - // - this.CB_Grass1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Grass1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Grass1.FormattingEnabled = true; - this.CB_Grass1.Location = new System.Drawing.Point(44, 36); - this.CB_Grass1.Name = "CB_Grass1"; - this.CB_Grass1.Size = new System.Drawing.Size(121, 21); - this.CB_Grass1.TabIndex = 3; - // - // NUP_GrassMax6 - // - this.NUP_GrassMax6.Location = new System.Drawing.Point(265, 170); - this.NUP_GrassMax6.Name = "NUP_GrassMax6"; - this.NUP_GrassMax6.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMax6.TabIndex = 65; - // - // label31 - // - this.label31.AutoSize = true; - this.label31.Location = new System.Drawing.Point(11, 39); - this.label31.Name = "label31"; - this.label31.Size = new System.Drawing.Size(27, 13); - this.label31.TabIndex = 287; - this.label31.Text = "10%"; - // - // NUP_GrassForme7 - // - this.NUP_GrassForme7.Location = new System.Drawing.Point(171, 196); - this.NUP_GrassForme7.Name = "NUP_GrassForme7"; - this.NUP_GrassForme7.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassForme7.TabIndex = 66; - // - // label41 - // - this.label41.AutoSize = true; - this.label41.Location = new System.Drawing.Point(17, 332); - this.label41.Name = "label41"; - this.label41.Size = new System.Drawing.Size(21, 13); - this.label41.TabIndex = 298; - this.label41.Text = "1%"; - // - // NUP_GrassMin7 - // - this.NUP_GrassMin7.Location = new System.Drawing.Point(218, 196); - this.NUP_GrassMin7.Name = "NUP_GrassMin7"; - this.NUP_GrassMin7.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMin7.TabIndex = 67; - // - // label42 - // - this.label42.AutoSize = true; - this.label42.Location = new System.Drawing.Point(17, 305); - this.label42.Name = "label42"; - this.label42.Size = new System.Drawing.Size(21, 13); - this.label42.TabIndex = 297; - this.label42.Text = "4%"; - // - // NUP_GrassMax7 - // - this.NUP_GrassMax7.Location = new System.Drawing.Point(265, 196); - this.NUP_GrassMax7.Name = "NUP_GrassMax7"; - this.NUP_GrassMax7.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMax7.TabIndex = 68; - // - // label40 - // - this.label40.AutoSize = true; - this.label40.Location = new System.Drawing.Point(17, 278); - this.label40.Name = "label40"; - this.label40.Size = new System.Drawing.Size(21, 13); - this.label40.TabIndex = 296; - this.label40.Text = "5%"; - // - // NUP_GrassForme8 - // - this.NUP_GrassForme8.Location = new System.Drawing.Point(171, 223); - this.NUP_GrassForme8.Name = "NUP_GrassForme8"; - this.NUP_GrassForme8.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassForme8.TabIndex = 69; - // - // label39 - // - this.label39.AutoSize = true; - this.label39.Location = new System.Drawing.Point(11, 252); - this.label39.Name = "label39"; - this.label39.Size = new System.Drawing.Size(27, 13); - this.label39.TabIndex = 295; - this.label39.Text = "10%"; - // - // NUP_GrassMin8 - // - this.NUP_GrassMin8.Location = new System.Drawing.Point(218, 223); - this.NUP_GrassMin8.Name = "NUP_GrassMin8"; - this.NUP_GrassMin8.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMin8.TabIndex = 70; - // - // label38 - // - this.label38.AutoSize = true; - this.label38.Location = new System.Drawing.Point(11, 228); - this.label38.Name = "label38"; - this.label38.Size = new System.Drawing.Size(27, 13); - this.label38.TabIndex = 294; - this.label38.Text = "10%"; - // - // NUP_GrassMax8 - // - this.NUP_GrassMax8.Location = new System.Drawing.Point(265, 223); - this.NUP_GrassMax8.Name = "NUP_GrassMax8"; - this.NUP_GrassMax8.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMax8.TabIndex = 71; - // - // label37 - // - this.label37.AutoSize = true; - this.label37.Location = new System.Drawing.Point(11, 201); - this.label37.Name = "label37"; - this.label37.Size = new System.Drawing.Size(27, 13); - this.label37.TabIndex = 293; - this.label37.Text = "10%"; - // - // NUP_GrassForme9 - // - this.NUP_GrassForme9.Location = new System.Drawing.Point(171, 250); - this.NUP_GrassForme9.Name = "NUP_GrassForme9"; - this.NUP_GrassForme9.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassForme9.TabIndex = 72; - // - // label36 - // - this.label36.AutoSize = true; - this.label36.Location = new System.Drawing.Point(11, 174); - this.label36.Name = "label36"; - this.label36.Size = new System.Drawing.Size(27, 13); - this.label36.TabIndex = 292; - this.label36.Text = "10%"; - // - // NUP_GrassMin9 - // - this.NUP_GrassMin9.Location = new System.Drawing.Point(218, 250); - this.NUP_GrassMin9.Name = "NUP_GrassMin9"; - this.NUP_GrassMin9.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMin9.TabIndex = 73; - // - // label35 - // - this.label35.AutoSize = true; - this.label35.Location = new System.Drawing.Point(11, 147); - this.label35.Name = "label35"; - this.label35.Size = new System.Drawing.Size(27, 13); - this.label35.TabIndex = 291; - this.label35.Text = "10%"; - // - // NUP_GrassMax9 - // - this.NUP_GrassMax9.Location = new System.Drawing.Point(265, 250); - this.NUP_GrassMax9.Name = "NUP_GrassMax9"; - this.NUP_GrassMax9.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMax9.TabIndex = 74; - // - // label34 - // - this.label34.AutoSize = true; - this.label34.Location = new System.Drawing.Point(11, 120); - this.label34.Name = "label34"; - this.label34.Size = new System.Drawing.Size(27, 13); - this.label34.TabIndex = 290; - this.label34.Text = "10%"; - // - // NUP_GrassForme10 - // - this.NUP_GrassForme10.Location = new System.Drawing.Point(171, 276); - this.NUP_GrassForme10.Name = "NUP_GrassForme10"; - this.NUP_GrassForme10.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassForme10.TabIndex = 75; - // - // label33 - // - this.label33.AutoSize = true; - this.label33.Location = new System.Drawing.Point(11, 93); - this.label33.Name = "label33"; - this.label33.Size = new System.Drawing.Size(27, 13); - this.label33.TabIndex = 289; - this.label33.Text = "10%"; - // - // NUP_GrassMin10 - // - this.NUP_GrassMin10.Location = new System.Drawing.Point(218, 276); - this.NUP_GrassMin10.Name = "NUP_GrassMin10"; - this.NUP_GrassMin10.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMin10.TabIndex = 76; - // - // label32 - // - this.label32.AutoSize = true; - this.label32.Location = new System.Drawing.Point(11, 66); - this.label32.Name = "label32"; - this.label32.Size = new System.Drawing.Size(27, 13); - this.label32.TabIndex = 288; - this.label32.Text = "10%"; - // - // NUP_GrassMax10 - // - this.NUP_GrassMax10.Location = new System.Drawing.Point(265, 276); - this.NUP_GrassMax10.Name = "NUP_GrassMax10"; - this.NUP_GrassMax10.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMax10.TabIndex = 77; - // - // NUP_GrassMax12 - // - this.NUP_GrassMax12.Location = new System.Drawing.Point(265, 330); - this.NUP_GrassMax12.Name = "NUP_GrassMax12"; - this.NUP_GrassMax12.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMax12.TabIndex = 83; - // - // NUP_GrassForme11 - // - this.NUP_GrassForme11.Location = new System.Drawing.Point(171, 303); - this.NUP_GrassForme11.Name = "NUP_GrassForme11"; - this.NUP_GrassForme11.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassForme11.TabIndex = 78; - // - // NUP_GrassMin12 - // - this.NUP_GrassMin12.Location = new System.Drawing.Point(218, 330); - this.NUP_GrassMin12.Name = "NUP_GrassMin12"; - this.NUP_GrassMin12.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMin12.TabIndex = 82; - // - // NUP_GrassMin11 - // - this.NUP_GrassMin11.Location = new System.Drawing.Point(218, 303); - this.NUP_GrassMin11.Name = "NUP_GrassMin11"; - this.NUP_GrassMin11.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMin11.TabIndex = 79; - // - // NUP_GrassForme12 - // - this.NUP_GrassForme12.Location = new System.Drawing.Point(171, 330); - this.NUP_GrassForme12.Name = "NUP_GrassForme12"; - this.NUP_GrassForme12.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassForme12.TabIndex = 81; - // - // NUP_GrassMax11 - // - this.NUP_GrassMax11.Location = new System.Drawing.Point(265, 303); - this.NUP_GrassMax11.Name = "NUP_GrassMax11"; - this.NUP_GrassMax11.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMax11.TabIndex = 80; - // - // TabControl_EncounterData - // - this.TabControl_EncounterData.Controls.Add(this.TabPage_Land); - this.TabControl_EncounterData.Controls.Add(this.TabPage_Water); - this.TabControl_EncounterData.Controls.Add(this.TabPage_Horde); - this.TabControl_EncounterData.Location = new System.Drawing.Point(12, 12); - this.TabControl_EncounterData.Name = "TabControl_EncounterData"; - this.TabControl_EncounterData.SelectedIndex = 0; - this.TabControl_EncounterData.Size = new System.Drawing.Size(926, 395); - this.TabControl_EncounterData.TabIndex = 2; - // - // B_Dump - // - this.B_Dump.Enabled = false; - this.B_Dump.Location = new System.Drawing.Point(645, 7); - this.B_Dump.Name = "B_Dump"; - this.B_Dump.Size = new System.Drawing.Size(95, 23); - this.B_Dump.TabIndex = 415; - this.B_Dump.Text = "Dump Tables"; - this.B_Dump.UseVisualStyleBackColor = true; - this.B_Dump.Click += new System.EventHandler(this.B_Dump_Click); - // - // B_Randomize - // - this.B_Randomize.Enabled = false; - this.B_Randomize.Location = new System.Drawing.Point(544, 7); - this.B_Randomize.Name = "B_Randomize"; - this.B_Randomize.Size = new System.Drawing.Size(95, 23); - this.B_Randomize.TabIndex = 416; - this.B_Randomize.Text = "Randomize All"; - this.B_Randomize.UseVisualStyleBackColor = true; - this.B_Randomize.Click += new System.EventHandler(this.B_Randomize_Click); - // - // CHK_HomogeneousHordes - // - this.CHK_HomogeneousHordes.AutoSize = true; - this.CHK_HomogeneousHordes.Location = new System.Drawing.Point(18, 97); - this.CHK_HomogeneousHordes.Name = "CHK_HomogeneousHordes"; - this.CHK_HomogeneousHordes.Size = new System.Drawing.Size(133, 17); - this.CHK_HomogeneousHordes.TabIndex = 296; - this.CHK_HomogeneousHordes.Text = "Single Species Hordes"; - this.CHK_HomogeneousHordes.UseVisualStyleBackColor = true; - // - // RSWE - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(948, 415); - this.Controls.Add(this.B_Randomize); - this.Controls.Add(this.B_Dump); - this.Controls.Add(this.L_FormList); - this.Controls.Add(this.CB_FormeList); - this.Controls.Add(this.L_Location); - this.Controls.Add(this.B_Save); - this.Controls.Add(this.CB_LocationID); - this.Controls.Add(this.TabControl_EncounterData); - this.MaximizeBox = false; - this.MaximumSize = new System.Drawing.Size(964, 454); - this.MinimumSize = new System.Drawing.Size(964, 454); - this.Name = "RSWE"; - this.Text = "ORAS Wild Editor"; - this.TabPage_Horde.ResumeLayout(false); - this.TabPage_Horde.PerformLayout(); - this.GB_Tweak.ResumeLayout(false); - this.GB_Tweak.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_LevelAmp)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMax5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMin5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCForme5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMax4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMin4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCForme4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMax3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMin3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCForme3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMax2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMin2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCForme2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMax1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMin1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCForme1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMax5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMin5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBForme5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAForme1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMin1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMax4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMax5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMin4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMax1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBForme4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMin5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMax3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAForme5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMin3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAForme2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBForme3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMin2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMax2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMax4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMin2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMax2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBForme2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMin4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMax1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAForme4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMin1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAForme3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBForme1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMin3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMax3)).EndInit(); - this.TabPage_Water.ResumeLayout(false); - this.TabPage_Water.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperForme1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMin1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfForme1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMax1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMin1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMax1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperForme2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMin2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfForme2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMax2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMin2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMax5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperForme3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMax2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMin3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMin5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMax3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfForme5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfForme3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMin3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMax4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMax3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMin4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodForme1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfForme4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMin1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMax1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodForme2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMin2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMax2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodForme3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMin3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMax3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_OldForme1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMin1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMax1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_OldForme2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMin2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMax2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_OldForme3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMin3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMax3)).EndInit(); - this.TabPage_Land.ResumeLayout(false); - this.TabPage_Land.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SwarmForme1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SwarmMin1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SwarmMax1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SwarmForme2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SwarmMin2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SwarmMax2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SwarmForme3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SwarmMin3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SwarmMax3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme11)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin11)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax11)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme12)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin12)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax12)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme6)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin6)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax6)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme7)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin7)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax7)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme8)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin8)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax8)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme9)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin9)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax9)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme10)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin10)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax10)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMax5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMin5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashForme5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMax4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashForme1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMin4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashForme4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMin1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMax3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMax1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMin3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashForme3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMax2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashForme2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMin2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme6)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin6)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax6)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme7)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin7)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax7)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme8)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin8)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax8)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme9)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin9)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax9)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme10)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin10)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax10)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax12)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme11)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin12)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin11)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme12)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax11)).EndInit(); - this.TabControl_EncounterData.ResumeLayout(false); - this.ResumeLayout(false); - this.PerformLayout(); - - } + this.CB_RockSmash3.Location = new System.Drawing.Point(646, 90); + this.CB_RockSmash3.Name = "CB_RockSmash3"; + this.CB_RockSmash3.Size = new System.Drawing.Size(121, 21); + this.CB_RockSmash3.TabIndex = 386; + // + // NUP_RockSmashMax2 + // + this.NUP_RockSmashMax2.Location = new System.Drawing.Point(867, 64); + this.NUP_RockSmashMax2.Name = "NUP_RockSmashMax2"; + this.NUP_RockSmashMax2.Size = new System.Drawing.Size(41, 20); + this.NUP_RockSmashMax2.TabIndex = 385; + // + // NUP_RockSmashForme2 + // + this.NUP_RockSmashForme2.Location = new System.Drawing.Point(773, 64); + this.NUP_RockSmashForme2.Name = "NUP_RockSmashForme2"; + this.NUP_RockSmashForme2.Size = new System.Drawing.Size(41, 20); + this.NUP_RockSmashForme2.TabIndex = 383; + // + // NUP_RockSmashMin2 + // + this.NUP_RockSmashMin2.Location = new System.Drawing.Point(820, 64); + this.NUP_RockSmashMin2.Name = "NUP_RockSmashMin2"; + this.NUP_RockSmashMin2.Size = new System.Drawing.Size(41, 20); + this.NUP_RockSmashMin2.TabIndex = 384; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(469, 20); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(36, 13); + this.label6.TabIndex = 375; + this.label6.Text = "Forme"; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(516, 20); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(24, 13); + this.label7.TabIndex = 376; + this.label7.Text = "Min"; + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Location = new System.Drawing.Point(563, 20); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(27, 13); + this.label8.TabIndex = 377; + this.label8.Text = "Max"; + // + // L_TallGrass + // + this.L_TallGrass.AutoSize = true; + this.L_TallGrass.Location = new System.Drawing.Point(343, 20); + this.L_TallGrass.Name = "L_TallGrass"; + this.L_TallGrass.Size = new System.Drawing.Size(61, 13); + this.L_TallGrass.TabIndex = 374; + this.L_TallGrass.Text = "Long Grass"; + // + // label10 + // + this.label10.AutoSize = true; + this.label10.Location = new System.Drawing.Point(310, 39); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(27, 13); + this.label10.TabIndex = 351; + this.label10.Text = "10%"; + // + // label11 + // + this.label11.AutoSize = true; + this.label11.Location = new System.Drawing.Point(316, 332); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(21, 13); + this.label11.TabIndex = 362; + this.label11.Text = "1%"; + // + // label12 + // + this.label12.AutoSize = true; + this.label12.Location = new System.Drawing.Point(316, 305); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(21, 13); + this.label12.TabIndex = 361; + this.label12.Text = "4%"; + // + // label13 + // + this.label13.AutoSize = true; + this.label13.Location = new System.Drawing.Point(316, 278); + this.label13.Name = "label13"; + this.label13.Size = new System.Drawing.Size(21, 13); + this.label13.TabIndex = 360; + this.label13.Text = "5%"; + // + // label14 + // + this.label14.AutoSize = true; + this.label14.Location = new System.Drawing.Point(310, 252); + this.label14.Name = "label14"; + this.label14.Size = new System.Drawing.Size(27, 13); + this.label14.TabIndex = 359; + this.label14.Text = "10%"; + // + // label15 + // + this.label15.AutoSize = true; + this.label15.Location = new System.Drawing.Point(310, 228); + this.label15.Name = "label15"; + this.label15.Size = new System.Drawing.Size(27, 13); + this.label15.TabIndex = 358; + this.label15.Text = "10%"; + // + // label16 + // + this.label16.AutoSize = true; + this.label16.Location = new System.Drawing.Point(310, 201); + this.label16.Name = "label16"; + this.label16.Size = new System.Drawing.Size(27, 13); + this.label16.TabIndex = 357; + this.label16.Text = "10%"; + // + // label17 + // + this.label17.AutoSize = true; + this.label17.Location = new System.Drawing.Point(310, 174); + this.label17.Name = "label17"; + this.label17.Size = new System.Drawing.Size(27, 13); + this.label17.TabIndex = 356; + this.label17.Text = "10%"; + // + // label18 + // + this.label18.AutoSize = true; + this.label18.Location = new System.Drawing.Point(310, 147); + this.label18.Name = "label18"; + this.label18.Size = new System.Drawing.Size(27, 13); + this.label18.TabIndex = 355; + this.label18.Text = "10%"; + // + // label19 + // + this.label19.AutoSize = true; + this.label19.Location = new System.Drawing.Point(310, 120); + this.label19.Name = "label19"; + this.label19.Size = new System.Drawing.Size(27, 13); + this.label19.TabIndex = 354; + this.label19.Text = "10%"; + // + // label20 + // + this.label20.AutoSize = true; + this.label20.Location = new System.Drawing.Point(310, 93); + this.label20.Name = "label20"; + this.label20.Size = new System.Drawing.Size(27, 13); + this.label20.TabIndex = 353; + this.label20.Text = "10%"; + // + // label21 + // + this.label21.AutoSize = true; + this.label21.Location = new System.Drawing.Point(310, 66); + this.label21.Name = "label21"; + this.label21.Size = new System.Drawing.Size(27, 13); + this.label21.TabIndex = 352; + this.label21.Text = "10%"; + // + // NUP_GrassForme1 + // + this.NUP_GrassForme1.Location = new System.Drawing.Point(171, 36); + this.NUP_GrassForme1.Name = "NUP_GrassForme1"; + this.NUP_GrassForme1.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassForme1.TabIndex = 48; + // + // NUP_GrassMin1 + // + this.NUP_GrassMin1.Location = new System.Drawing.Point(218, 36); + this.NUP_GrassMin1.Name = "NUP_GrassMin1"; + this.NUP_GrassMin1.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMin1.TabIndex = 49; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(170, 20); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(36, 13); + this.label3.TabIndex = 311; + this.label3.Text = "Forme"; + // + // NUP_GrassMax1 + // + this.NUP_GrassMax1.Location = new System.Drawing.Point(265, 36); + this.NUP_GrassMax1.Name = "NUP_GrassMax1"; + this.NUP_GrassMax1.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMax1.TabIndex = 50; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(217, 20); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(24, 13); + this.label4.TabIndex = 312; + this.label4.Text = "Min"; + // + // NUP_GrassForme2 + // + this.NUP_GrassForme2.Location = new System.Drawing.Point(171, 63); + this.NUP_GrassForme2.Name = "NUP_GrassForme2"; + this.NUP_GrassForme2.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassForme2.TabIndex = 51; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(264, 20); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(27, 13); + this.label5.TabIndex = 313; + this.label5.Text = "Max"; + // + // NUP_GrassMin2 + // + this.NUP_GrassMin2.Location = new System.Drawing.Point(218, 63); + this.NUP_GrassMin2.Name = "NUP_GrassMin2"; + this.NUP_GrassMin2.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMin2.TabIndex = 52; + // + // L_Grass + // + this.L_Grass.AutoSize = true; + this.L_Grass.Location = new System.Drawing.Point(44, 20); + this.L_Grass.Name = "L_Grass"; + this.L_Grass.Size = new System.Drawing.Size(54, 13); + this.L_Grass.TabIndex = 310; + this.L_Grass.Text = "Tall Grass"; + // + // NUP_GrassMax2 + // + this.NUP_GrassMax2.Location = new System.Drawing.Point(265, 63); + this.NUP_GrassMax2.Name = "NUP_GrassMax2"; + this.NUP_GrassMax2.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMax2.TabIndex = 53; + // + // CB_Grass12 + // + this.CB_Grass12.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Grass12.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Grass12.FormattingEnabled = true; + this.CB_Grass12.Location = new System.Drawing.Point(44, 327); + this.CB_Grass12.Name = "CB_Grass12"; + this.CB_Grass12.Size = new System.Drawing.Size(121, 21); + this.CB_Grass12.TabIndex = 309; + // + // NUP_GrassForme3 + // + this.NUP_GrassForme3.Location = new System.Drawing.Point(171, 90); + this.NUP_GrassForme3.Name = "NUP_GrassForme3"; + this.NUP_GrassForme3.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassForme3.TabIndex = 54; + // + // CB_Grass11 + // + this.CB_Grass11.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Grass11.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Grass11.FormattingEnabled = true; + this.CB_Grass11.Location = new System.Drawing.Point(44, 301); + this.CB_Grass11.Name = "CB_Grass11"; + this.CB_Grass11.Size = new System.Drawing.Size(121, 21); + this.CB_Grass11.TabIndex = 308; + // + // NUP_GrassMin3 + // + this.NUP_GrassMin3.Location = new System.Drawing.Point(218, 90); + this.NUP_GrassMin3.Name = "NUP_GrassMin3"; + this.NUP_GrassMin3.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMin3.TabIndex = 55; + // + // CB_Grass10 + // + this.CB_Grass10.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Grass10.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Grass10.FormattingEnabled = true; + this.CB_Grass10.Location = new System.Drawing.Point(44, 274); + this.CB_Grass10.Name = "CB_Grass10"; + this.CB_Grass10.Size = new System.Drawing.Size(121, 21); + this.CB_Grass10.TabIndex = 307; + // + // NUP_GrassMax3 + // + this.NUP_GrassMax3.Location = new System.Drawing.Point(265, 90); + this.NUP_GrassMax3.Name = "NUP_GrassMax3"; + this.NUP_GrassMax3.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMax3.TabIndex = 56; + // + // CB_Grass9 + // + this.CB_Grass9.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Grass9.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Grass9.FormattingEnabled = true; + this.CB_Grass9.Location = new System.Drawing.Point(44, 248); + this.CB_Grass9.Name = "CB_Grass9"; + this.CB_Grass9.Size = new System.Drawing.Size(121, 21); + this.CB_Grass9.TabIndex = 306; + // + // NUP_GrassForme4 + // + this.NUP_GrassForme4.Location = new System.Drawing.Point(171, 116); + this.NUP_GrassForme4.Name = "NUP_GrassForme4"; + this.NUP_GrassForme4.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassForme4.TabIndex = 57; + // + // CB_Grass8 + // + this.CB_Grass8.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Grass8.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Grass8.FormattingEnabled = true; + this.CB_Grass8.Location = new System.Drawing.Point(44, 221); + this.CB_Grass8.Name = "CB_Grass8"; + this.CB_Grass8.Size = new System.Drawing.Size(121, 21); + this.CB_Grass8.TabIndex = 305; + // + // NUP_GrassMin4 + // + this.NUP_GrassMin4.Location = new System.Drawing.Point(218, 116); + this.NUP_GrassMin4.Name = "NUP_GrassMin4"; + this.NUP_GrassMin4.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMin4.TabIndex = 58; + // + // CB_Grass7 + // + this.CB_Grass7.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Grass7.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Grass7.FormattingEnabled = true; + this.CB_Grass7.Location = new System.Drawing.Point(44, 195); + this.CB_Grass7.Name = "CB_Grass7"; + this.CB_Grass7.Size = new System.Drawing.Size(121, 21); + this.CB_Grass7.TabIndex = 304; + // + // NUP_GrassMax4 + // + this.NUP_GrassMax4.Location = new System.Drawing.Point(265, 116); + this.NUP_GrassMax4.Name = "NUP_GrassMax4"; + this.NUP_GrassMax4.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMax4.TabIndex = 59; + // + // CB_Grass6 + // + this.CB_Grass6.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Grass6.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Grass6.FormattingEnabled = true; + this.CB_Grass6.Location = new System.Drawing.Point(44, 168); + this.CB_Grass6.Name = "CB_Grass6"; + this.CB_Grass6.Size = new System.Drawing.Size(121, 21); + this.CB_Grass6.TabIndex = 303; + // + // NUP_GrassForme5 + // + this.NUP_GrassForme5.Location = new System.Drawing.Point(171, 143); + this.NUP_GrassForme5.Name = "NUP_GrassForme5"; + this.NUP_GrassForme5.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassForme5.TabIndex = 60; + // + // CB_Grass5 + // + this.CB_Grass5.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Grass5.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Grass5.FormattingEnabled = true; + this.CB_Grass5.Location = new System.Drawing.Point(44, 142); + this.CB_Grass5.Name = "CB_Grass5"; + this.CB_Grass5.Size = new System.Drawing.Size(121, 21); + this.CB_Grass5.TabIndex = 302; + // + // NUP_GrassMin5 + // + this.NUP_GrassMin5.Location = new System.Drawing.Point(218, 143); + this.NUP_GrassMin5.Name = "NUP_GrassMin5"; + this.NUP_GrassMin5.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMin5.TabIndex = 61; + // + // CB_Grass4 + // + this.CB_Grass4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Grass4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Grass4.FormattingEnabled = true; + this.CB_Grass4.Location = new System.Drawing.Point(44, 115); + this.CB_Grass4.Name = "CB_Grass4"; + this.CB_Grass4.Size = new System.Drawing.Size(121, 21); + this.CB_Grass4.TabIndex = 301; + // + // NUP_GrassMax5 + // + this.NUP_GrassMax5.Location = new System.Drawing.Point(265, 143); + this.NUP_GrassMax5.Name = "NUP_GrassMax5"; + this.NUP_GrassMax5.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMax5.TabIndex = 62; + // + // CB_Grass3 + // + this.CB_Grass3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Grass3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Grass3.FormattingEnabled = true; + this.CB_Grass3.Location = new System.Drawing.Point(44, 89); + this.CB_Grass3.Name = "CB_Grass3"; + this.CB_Grass3.Size = new System.Drawing.Size(121, 21); + this.CB_Grass3.TabIndex = 300; + // + // NUP_GrassForme6 + // + this.NUP_GrassForme6.Location = new System.Drawing.Point(171, 170); + this.NUP_GrassForme6.Name = "NUP_GrassForme6"; + this.NUP_GrassForme6.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassForme6.TabIndex = 63; + // + // CB_Grass2 + // + this.CB_Grass2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Grass2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Grass2.FormattingEnabled = true; + this.CB_Grass2.Location = new System.Drawing.Point(44, 62); + this.CB_Grass2.Name = "CB_Grass2"; + this.CB_Grass2.Size = new System.Drawing.Size(121, 21); + this.CB_Grass2.TabIndex = 299; + // + // NUP_GrassMin6 + // + this.NUP_GrassMin6.Location = new System.Drawing.Point(218, 170); + this.NUP_GrassMin6.Name = "NUP_GrassMin6"; + this.NUP_GrassMin6.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMin6.TabIndex = 64; + // + // CB_Grass1 + // + this.CB_Grass1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Grass1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Grass1.FormattingEnabled = true; + this.CB_Grass1.Location = new System.Drawing.Point(44, 36); + this.CB_Grass1.Name = "CB_Grass1"; + this.CB_Grass1.Size = new System.Drawing.Size(121, 21); + this.CB_Grass1.TabIndex = 3; + // + // NUP_GrassMax6 + // + this.NUP_GrassMax6.Location = new System.Drawing.Point(265, 170); + this.NUP_GrassMax6.Name = "NUP_GrassMax6"; + this.NUP_GrassMax6.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMax6.TabIndex = 65; + // + // label31 + // + this.label31.AutoSize = true; + this.label31.Location = new System.Drawing.Point(11, 39); + this.label31.Name = "label31"; + this.label31.Size = new System.Drawing.Size(27, 13); + this.label31.TabIndex = 287; + this.label31.Text = "10%"; + // + // NUP_GrassForme7 + // + this.NUP_GrassForme7.Location = new System.Drawing.Point(171, 196); + this.NUP_GrassForme7.Name = "NUP_GrassForme7"; + this.NUP_GrassForme7.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassForme7.TabIndex = 66; + // + // label41 + // + this.label41.AutoSize = true; + this.label41.Location = new System.Drawing.Point(17, 332); + this.label41.Name = "label41"; + this.label41.Size = new System.Drawing.Size(21, 13); + this.label41.TabIndex = 298; + this.label41.Text = "1%"; + // + // NUP_GrassMin7 + // + this.NUP_GrassMin7.Location = new System.Drawing.Point(218, 196); + this.NUP_GrassMin7.Name = "NUP_GrassMin7"; + this.NUP_GrassMin7.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMin7.TabIndex = 67; + // + // label42 + // + this.label42.AutoSize = true; + this.label42.Location = new System.Drawing.Point(17, 305); + this.label42.Name = "label42"; + this.label42.Size = new System.Drawing.Size(21, 13); + this.label42.TabIndex = 297; + this.label42.Text = "4%"; + // + // NUP_GrassMax7 + // + this.NUP_GrassMax7.Location = new System.Drawing.Point(265, 196); + this.NUP_GrassMax7.Name = "NUP_GrassMax7"; + this.NUP_GrassMax7.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMax7.TabIndex = 68; + // + // label40 + // + this.label40.AutoSize = true; + this.label40.Location = new System.Drawing.Point(17, 278); + this.label40.Name = "label40"; + this.label40.Size = new System.Drawing.Size(21, 13); + this.label40.TabIndex = 296; + this.label40.Text = "5%"; + // + // NUP_GrassForme8 + // + this.NUP_GrassForme8.Location = new System.Drawing.Point(171, 223); + this.NUP_GrassForme8.Name = "NUP_GrassForme8"; + this.NUP_GrassForme8.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassForme8.TabIndex = 69; + // + // label39 + // + this.label39.AutoSize = true; + this.label39.Location = new System.Drawing.Point(11, 252); + this.label39.Name = "label39"; + this.label39.Size = new System.Drawing.Size(27, 13); + this.label39.TabIndex = 295; + this.label39.Text = "10%"; + // + // NUP_GrassMin8 + // + this.NUP_GrassMin8.Location = new System.Drawing.Point(218, 223); + this.NUP_GrassMin8.Name = "NUP_GrassMin8"; + this.NUP_GrassMin8.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMin8.TabIndex = 70; + // + // label38 + // + this.label38.AutoSize = true; + this.label38.Location = new System.Drawing.Point(11, 228); + this.label38.Name = "label38"; + this.label38.Size = new System.Drawing.Size(27, 13); + this.label38.TabIndex = 294; + this.label38.Text = "10%"; + // + // NUP_GrassMax8 + // + this.NUP_GrassMax8.Location = new System.Drawing.Point(265, 223); + this.NUP_GrassMax8.Name = "NUP_GrassMax8"; + this.NUP_GrassMax8.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMax8.TabIndex = 71; + // + // label37 + // + this.label37.AutoSize = true; + this.label37.Location = new System.Drawing.Point(11, 201); + this.label37.Name = "label37"; + this.label37.Size = new System.Drawing.Size(27, 13); + this.label37.TabIndex = 293; + this.label37.Text = "10%"; + // + // NUP_GrassForme9 + // + this.NUP_GrassForme9.Location = new System.Drawing.Point(171, 250); + this.NUP_GrassForme9.Name = "NUP_GrassForme9"; + this.NUP_GrassForme9.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassForme9.TabIndex = 72; + // + // label36 + // + this.label36.AutoSize = true; + this.label36.Location = new System.Drawing.Point(11, 174); + this.label36.Name = "label36"; + this.label36.Size = new System.Drawing.Size(27, 13); + this.label36.TabIndex = 292; + this.label36.Text = "10%"; + // + // NUP_GrassMin9 + // + this.NUP_GrassMin9.Location = new System.Drawing.Point(218, 250); + this.NUP_GrassMin9.Name = "NUP_GrassMin9"; + this.NUP_GrassMin9.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMin9.TabIndex = 73; + // + // label35 + // + this.label35.AutoSize = true; + this.label35.Location = new System.Drawing.Point(11, 147); + this.label35.Name = "label35"; + this.label35.Size = new System.Drawing.Size(27, 13); + this.label35.TabIndex = 291; + this.label35.Text = "10%"; + // + // NUP_GrassMax9 + // + this.NUP_GrassMax9.Location = new System.Drawing.Point(265, 250); + this.NUP_GrassMax9.Name = "NUP_GrassMax9"; + this.NUP_GrassMax9.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMax9.TabIndex = 74; + // + // label34 + // + this.label34.AutoSize = true; + this.label34.Location = new System.Drawing.Point(11, 120); + this.label34.Name = "label34"; + this.label34.Size = new System.Drawing.Size(27, 13); + this.label34.TabIndex = 290; + this.label34.Text = "10%"; + // + // NUP_GrassForme10 + // + this.NUP_GrassForme10.Location = new System.Drawing.Point(171, 276); + this.NUP_GrassForme10.Name = "NUP_GrassForme10"; + this.NUP_GrassForme10.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassForme10.TabIndex = 75; + // + // label33 + // + this.label33.AutoSize = true; + this.label33.Location = new System.Drawing.Point(11, 93); + this.label33.Name = "label33"; + this.label33.Size = new System.Drawing.Size(27, 13); + this.label33.TabIndex = 289; + this.label33.Text = "10%"; + // + // NUP_GrassMin10 + // + this.NUP_GrassMin10.Location = new System.Drawing.Point(218, 276); + this.NUP_GrassMin10.Name = "NUP_GrassMin10"; + this.NUP_GrassMin10.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMin10.TabIndex = 76; + // + // label32 + // + this.label32.AutoSize = true; + this.label32.Location = new System.Drawing.Point(11, 66); + this.label32.Name = "label32"; + this.label32.Size = new System.Drawing.Size(27, 13); + this.label32.TabIndex = 288; + this.label32.Text = "10%"; + // + // NUP_GrassMax10 + // + this.NUP_GrassMax10.Location = new System.Drawing.Point(265, 276); + this.NUP_GrassMax10.Name = "NUP_GrassMax10"; + this.NUP_GrassMax10.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMax10.TabIndex = 77; + // + // NUP_GrassMax12 + // + this.NUP_GrassMax12.Location = new System.Drawing.Point(265, 330); + this.NUP_GrassMax12.Name = "NUP_GrassMax12"; + this.NUP_GrassMax12.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMax12.TabIndex = 83; + // + // NUP_GrassForme11 + // + this.NUP_GrassForme11.Location = new System.Drawing.Point(171, 303); + this.NUP_GrassForme11.Name = "NUP_GrassForme11"; + this.NUP_GrassForme11.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassForme11.TabIndex = 78; + // + // NUP_GrassMin12 + // + this.NUP_GrassMin12.Location = new System.Drawing.Point(218, 330); + this.NUP_GrassMin12.Name = "NUP_GrassMin12"; + this.NUP_GrassMin12.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMin12.TabIndex = 82; + // + // NUP_GrassMin11 + // + this.NUP_GrassMin11.Location = new System.Drawing.Point(218, 303); + this.NUP_GrassMin11.Name = "NUP_GrassMin11"; + this.NUP_GrassMin11.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMin11.TabIndex = 79; + // + // NUP_GrassForme12 + // + this.NUP_GrassForme12.Location = new System.Drawing.Point(171, 330); + this.NUP_GrassForme12.Name = "NUP_GrassForme12"; + this.NUP_GrassForme12.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassForme12.TabIndex = 81; + // + // NUP_GrassMax11 + // + this.NUP_GrassMax11.Location = new System.Drawing.Point(265, 303); + this.NUP_GrassMax11.Name = "NUP_GrassMax11"; + this.NUP_GrassMax11.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMax11.TabIndex = 80; + // + // TabControl_EncounterData + // + this.TabControl_EncounterData.Controls.Add(this.TabPage_Land); + this.TabControl_EncounterData.Controls.Add(this.TabPage_Water); + this.TabControl_EncounterData.Controls.Add(this.TabPage_Horde); + this.TabControl_EncounterData.Location = new System.Drawing.Point(12, 12); + this.TabControl_EncounterData.Name = "TabControl_EncounterData"; + this.TabControl_EncounterData.SelectedIndex = 0; + this.TabControl_EncounterData.Size = new System.Drawing.Size(926, 395); + this.TabControl_EncounterData.TabIndex = 2; + // + // B_Dump + // + this.B_Dump.Enabled = false; + this.B_Dump.Location = new System.Drawing.Point(645, 7); + this.B_Dump.Name = "B_Dump"; + this.B_Dump.Size = new System.Drawing.Size(95, 23); + this.B_Dump.TabIndex = 415; + this.B_Dump.Text = "Dump Tables"; + this.B_Dump.UseVisualStyleBackColor = true; + this.B_Dump.Click += new System.EventHandler(this.B_Dump_Click); + // + // B_Randomize + // + this.B_Randomize.Enabled = false; + this.B_Randomize.Location = new System.Drawing.Point(544, 7); + this.B_Randomize.Name = "B_Randomize"; + this.B_Randomize.Size = new System.Drawing.Size(95, 23); + this.B_Randomize.TabIndex = 416; + this.B_Randomize.Text = "Randomize All"; + this.B_Randomize.UseVisualStyleBackColor = true; + this.B_Randomize.Click += new System.EventHandler(this.B_Randomize_Click); + // + // CHK_HomogeneousHordes + // + this.CHK_HomogeneousHordes.AutoSize = true; + this.CHK_HomogeneousHordes.Location = new System.Drawing.Point(18, 97); + this.CHK_HomogeneousHordes.Name = "CHK_HomogeneousHordes"; + this.CHK_HomogeneousHordes.Size = new System.Drawing.Size(133, 17); + this.CHK_HomogeneousHordes.TabIndex = 296; + this.CHK_HomogeneousHordes.Text = "Single Species Hordes"; + this.CHK_HomogeneousHordes.UseVisualStyleBackColor = true; + // + // RSWE + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(948, 415); + this.Controls.Add(this.B_Randomize); + this.Controls.Add(this.B_Dump); + this.Controls.Add(this.L_FormList); + this.Controls.Add(this.CB_FormeList); + this.Controls.Add(this.L_Location); + this.Controls.Add(this.B_Save); + this.Controls.Add(this.CB_LocationID); + this.Controls.Add(this.TabControl_EncounterData); + this.MaximizeBox = false; + this.MaximumSize = new System.Drawing.Size(964, 454); + this.MinimumSize = new System.Drawing.Size(964, 454); + this.Name = "RSWE"; + this.Text = "ORAS Wild Editor"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.RSWE_FormClosing); + this.TabPage_Horde.ResumeLayout(false); + this.TabPage_Horde.PerformLayout(); + this.GB_Tweak.ResumeLayout(false); + this.GB_Tweak.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_LevelAmp)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMax5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMin5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCForme5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMax4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMin4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCForme4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMax3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMin3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCForme3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMax2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMin2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCForme2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMax1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMin1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCForme1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMax5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMin5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBForme5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAForme1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMin1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMax4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMax5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMin4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMax1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBForme4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMin5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMax3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAForme5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMin3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAForme2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBForme3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMin2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMax2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMax4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMin2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMax2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBForme2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMin4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMax1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAForme4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMin1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAForme3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBForme1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMin3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMax3)).EndInit(); + this.TabPage_Water.ResumeLayout(false); + this.TabPage_Water.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperForme1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMin1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfForme1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMax1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMin1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMax1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperForme2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMin2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfForme2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMax2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMin2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMax5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperForme3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMax2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMin3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMin5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMax3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfForme5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfForme3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMin3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMax4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMax3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMin4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodForme1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfForme4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMin1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMax1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodForme2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMin2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMax2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodForme3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMin3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMax3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_OldForme1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMin1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMax1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_OldForme2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMin2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMax2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_OldForme3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMin3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMax3)).EndInit(); + this.TabPage_Land.ResumeLayout(false); + this.TabPage_Land.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SwarmForme1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SwarmMin1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SwarmMax1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SwarmForme2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SwarmMin2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SwarmMax2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SwarmForme3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SwarmMin3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SwarmMax3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme11)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin11)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax11)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme12)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin12)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax12)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme9)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin9)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax9)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassForme10)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMin10)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_TallGrassMax10)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMax5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMin5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashForme5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMax4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashForme1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMin4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashForme4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMin1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMax3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMax1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMin3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashForme3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMax2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashForme2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMin2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme9)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin9)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax9)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme10)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin10)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax10)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax12)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme11)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin12)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin11)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme12)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax11)).EndInit(); + this.TabControl_EncounterData.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); - #endregion - - private System.Windows.Forms.ComboBox CB_LocationID; - private System.Windows.Forms.Button B_Save; - private System.Windows.Forms.Label L_Location; - private System.Windows.Forms.Label L_FormList; - private System.Windows.Forms.ComboBox CB_FormeList; - private System.Windows.Forms.TabPage TabPage_Horde; - private System.Windows.Forms.Label L_HordeC_Max; - private System.Windows.Forms.Label L_HordeC_Min; - private System.Windows.Forms.Label L_HordeC_F; - private System.Windows.Forms.Label L_HordeC; - private System.Windows.Forms.NumericUpDown NUP_HordeCMax5; - private System.Windows.Forms.NumericUpDown NUP_HordeCMin5; - private System.Windows.Forms.NumericUpDown NUP_HordeCForme5; - private System.Windows.Forms.ComboBox CB_HordeC5; - private System.Windows.Forms.NumericUpDown NUP_HordeCMax4; - private System.Windows.Forms.NumericUpDown NUP_HordeCMin4; - private System.Windows.Forms.NumericUpDown NUP_HordeCForme4; - private System.Windows.Forms.ComboBox CB_HordeC4; - private System.Windows.Forms.NumericUpDown NUP_HordeCMax3; - private System.Windows.Forms.NumericUpDown NUP_HordeCMin3; - private System.Windows.Forms.NumericUpDown NUP_HordeCForme3; - private System.Windows.Forms.ComboBox CB_HordeC3; - private System.Windows.Forms.NumericUpDown NUP_HordeCMax2; - private System.Windows.Forms.NumericUpDown NUP_HordeCMin2; - private System.Windows.Forms.NumericUpDown NUP_HordeCForme2; - private System.Windows.Forms.ComboBox CB_HordeC2; - private System.Windows.Forms.NumericUpDown NUP_HordeCMax1; - private System.Windows.Forms.NumericUpDown NUP_HordeCMin1; - private System.Windows.Forms.NumericUpDown NUP_HordeCForme1; - private System.Windows.Forms.ComboBox CB_HordeC1; - private System.Windows.Forms.Label L_HordeB_Max; - private System.Windows.Forms.Label L_HordeA_Max; - private System.Windows.Forms.Label L_HordeB_Min; - private System.Windows.Forms.Label L_HordeA; - private System.Windows.Forms.Label L_HordeB_F; - private System.Windows.Forms.Label L_HordeA_Min; - private System.Windows.Forms.Label L_HordeB; - private System.Windows.Forms.NumericUpDown NUP_HordeBMax5; - private System.Windows.Forms.ComboBox CB_HordeA1; - private System.Windows.Forms.NumericUpDown NUP_HordeBMin5; - private System.Windows.Forms.Label L_HordeA_F; - private System.Windows.Forms.NumericUpDown NUP_HordeBForme5; - private System.Windows.Forms.NumericUpDown NUP_HordeAForme1; - private System.Windows.Forms.ComboBox CB_HordeB5; - private System.Windows.Forms.NumericUpDown NUP_HordeAMin1; - private System.Windows.Forms.NumericUpDown NUP_HordeBMax4; - private System.Windows.Forms.NumericUpDown NUP_HordeAMax5; - private System.Windows.Forms.NumericUpDown NUP_HordeBMin4; - private System.Windows.Forms.NumericUpDown NUP_HordeAMax1; - private System.Windows.Forms.NumericUpDown NUP_HordeBForme4; - private System.Windows.Forms.NumericUpDown NUP_HordeAMin5; - private System.Windows.Forms.ComboBox CB_HordeB4; - private System.Windows.Forms.ComboBox CB_HordeA2; - private System.Windows.Forms.NumericUpDown NUP_HordeBMax3; - private System.Windows.Forms.NumericUpDown NUP_HordeAForme5; - private System.Windows.Forms.NumericUpDown NUP_HordeBMin3; - private System.Windows.Forms.NumericUpDown NUP_HordeAForme2; - private System.Windows.Forms.NumericUpDown NUP_HordeBForme3; - private System.Windows.Forms.ComboBox CB_HordeA5; - private System.Windows.Forms.ComboBox CB_HordeB3; - private System.Windows.Forms.NumericUpDown NUP_HordeAMin2; - private System.Windows.Forms.NumericUpDown NUP_HordeBMax2; - private System.Windows.Forms.NumericUpDown NUP_HordeAMax4; - private System.Windows.Forms.NumericUpDown NUP_HordeBMin2; - private System.Windows.Forms.NumericUpDown NUP_HordeAMax2; - private System.Windows.Forms.NumericUpDown NUP_HordeBForme2; - private System.Windows.Forms.NumericUpDown NUP_HordeAMin4; - private System.Windows.Forms.ComboBox CB_HordeB2; - private System.Windows.Forms.ComboBox CB_HordeA3; - private System.Windows.Forms.NumericUpDown NUP_HordeBMax1; - private System.Windows.Forms.NumericUpDown NUP_HordeAForme4; - private System.Windows.Forms.NumericUpDown NUP_HordeBMin1; - private System.Windows.Forms.NumericUpDown NUP_HordeAForme3; - private System.Windows.Forms.NumericUpDown NUP_HordeBForme1; - private System.Windows.Forms.ComboBox CB_HordeA4; - private System.Windows.Forms.ComboBox CB_HordeB1; - private System.Windows.Forms.NumericUpDown NUP_HordeAMin3; - private System.Windows.Forms.NumericUpDown NUP_HordeAMax3; - private System.Windows.Forms.TabPage TabPage_Water; - private System.Windows.Forms.Label label116; - private System.Windows.Forms.Label label117; - private System.Windows.Forms.Label label118; - private System.Windows.Forms.Label label119; - private System.Windows.Forms.Label label120; - private System.Windows.Forms.Label label103; - private System.Windows.Forms.Label L_Super; - private System.Windows.Forms.Label label104; - private System.Windows.Forms.ComboBox CB_Super1; - private System.Windows.Forms.Label label105; - private System.Windows.Forms.NumericUpDown NUP_SuperForme1; - private System.Windows.Forms.Label L_Surf; - private System.Windows.Forms.ComboBox CB_Surf1; - private System.Windows.Forms.NumericUpDown NUP_SuperMin1; - private System.Windows.Forms.NumericUpDown NUP_SurfForme1; - private System.Windows.Forms.NumericUpDown NUP_SuperMax1; - private System.Windows.Forms.NumericUpDown NUP_SurfMin1; - private System.Windows.Forms.ComboBox CB_Super2; - private System.Windows.Forms.NumericUpDown NUP_SurfMax1; - private System.Windows.Forms.NumericUpDown NUP_SuperForme2; - private System.Windows.Forms.ComboBox CB_Surf2; - private System.Windows.Forms.NumericUpDown NUP_SuperMin2; - private System.Windows.Forms.NumericUpDown NUP_SurfForme2; - private System.Windows.Forms.NumericUpDown NUP_SuperMax2; - private System.Windows.Forms.NumericUpDown NUP_SurfMin2; - private System.Windows.Forms.ComboBox CB_Super3; - private System.Windows.Forms.NumericUpDown NUP_SurfMax5; - private System.Windows.Forms.NumericUpDown NUP_SuperForme3; - private System.Windows.Forms.NumericUpDown NUP_SurfMax2; - private System.Windows.Forms.NumericUpDown NUP_SuperMin3; - private System.Windows.Forms.NumericUpDown NUP_SurfMin5; - private System.Windows.Forms.NumericUpDown NUP_SuperMax3; - private System.Windows.Forms.ComboBox CB_Surf3; - private System.Windows.Forms.Label label49; - private System.Windows.Forms.NumericUpDown NUP_SurfForme5; - private System.Windows.Forms.Label label98; - private System.Windows.Forms.NumericUpDown NUP_SurfForme3; - private System.Windows.Forms.Label label99; - private System.Windows.Forms.ComboBox CB_Surf5; - private System.Windows.Forms.Label label100; - private System.Windows.Forms.NumericUpDown NUP_SurfMin3; - private System.Windows.Forms.Label label101; - private System.Windows.Forms.NumericUpDown NUP_SurfMax4; - private System.Windows.Forms.Label label102; - private System.Windows.Forms.NumericUpDown NUP_SurfMax3; - private System.Windows.Forms.Label L_Good; - private System.Windows.Forms.NumericUpDown NUP_SurfMin4; - private System.Windows.Forms.ComboBox CB_Good1; - private System.Windows.Forms.ComboBox CB_Surf4; - private System.Windows.Forms.NumericUpDown NUP_GoodForme1; - private System.Windows.Forms.NumericUpDown NUP_SurfForme4; - private System.Windows.Forms.NumericUpDown NUP_GoodMin1; - private System.Windows.Forms.NumericUpDown NUP_GoodMax1; - private System.Windows.Forms.ComboBox CB_Good2; - private System.Windows.Forms.NumericUpDown NUP_GoodForme2; - private System.Windows.Forms.NumericUpDown NUP_GoodMin2; - private System.Windows.Forms.NumericUpDown NUP_GoodMax2; - private System.Windows.Forms.ComboBox CB_Good3; - private System.Windows.Forms.NumericUpDown NUP_GoodForme3; - private System.Windows.Forms.NumericUpDown NUP_GoodMin3; - private System.Windows.Forms.NumericUpDown NUP_GoodMax3; - private System.Windows.Forms.Label label27; - private System.Windows.Forms.Label label28; - private System.Windows.Forms.Label label29; - private System.Windows.Forms.Label label30; - private System.Windows.Forms.Label label46; - private System.Windows.Forms.Label label47; - private System.Windows.Forms.Label L_Old; - private System.Windows.Forms.ComboBox CB_Old1; - private System.Windows.Forms.NumericUpDown NUP_OldForme1; - private System.Windows.Forms.NumericUpDown NUP_OldMin1; - private System.Windows.Forms.NumericUpDown NUP_OldMax1; - private System.Windows.Forms.ComboBox CB_Old2; - private System.Windows.Forms.NumericUpDown NUP_OldForme2; - private System.Windows.Forms.NumericUpDown NUP_OldMin2; - private System.Windows.Forms.NumericUpDown NUP_OldMax2; - private System.Windows.Forms.ComboBox CB_Old3; - private System.Windows.Forms.NumericUpDown NUP_OldForme3; - private System.Windows.Forms.NumericUpDown NUP_OldMin3; - private System.Windows.Forms.NumericUpDown NUP_OldMax3; - private System.Windows.Forms.Label label45; - private System.Windows.Forms.Label label44; - private System.Windows.Forms.Label label43; - private System.Windows.Forms.Label label23; - private System.Windows.Forms.Label label24; - private System.Windows.Forms.Label label25; - private System.Windows.Forms.TabPage TabPage_Land; - private System.Windows.Forms.ComboBox CB_Swarm3; - private System.Windows.Forms.ComboBox CB_Swarm2; - private System.Windows.Forms.ComboBox CB_Swarm1; - private System.Windows.Forms.NumericUpDown NUP_SwarmForme1; - private System.Windows.Forms.NumericUpDown NUP_SwarmMin1; - private System.Windows.Forms.Label label66; - private System.Windows.Forms.NumericUpDown NUP_SwarmMax1; - private System.Windows.Forms.Label label67; - private System.Windows.Forms.NumericUpDown NUP_SwarmForme2; - private System.Windows.Forms.Label label68; - private System.Windows.Forms.NumericUpDown NUP_SwarmMin2; - private System.Windows.Forms.Label L_DexNav; - private System.Windows.Forms.NumericUpDown NUP_SwarmMax2; - private System.Windows.Forms.NumericUpDown NUP_SwarmForme3; - private System.Windows.Forms.NumericUpDown NUP_SwarmMin3; - private System.Windows.Forms.NumericUpDown NUP_SwarmMax3; - private System.Windows.Forms.Label label70; - private System.Windows.Forms.Label label80; - private System.Windows.Forms.Label label81; - private System.Windows.Forms.NumericUpDown NUP_TallGrassForme11; - private System.Windows.Forms.NumericUpDown NUP_TallGrassMin11; - private System.Windows.Forms.NumericUpDown NUP_TallGrassMax11; - private System.Windows.Forms.NumericUpDown NUP_TallGrassForme12; - private System.Windows.Forms.NumericUpDown NUP_TallGrassMin12; - private System.Windows.Forms.NumericUpDown NUP_TallGrassMax12; - private System.Windows.Forms.NumericUpDown NUP_TallGrassForme1; - private System.Windows.Forms.NumericUpDown NUP_TallGrassMin1; - private System.Windows.Forms.NumericUpDown NUP_TallGrassMax1; - private System.Windows.Forms.NumericUpDown NUP_TallGrassForme2; - private System.Windows.Forms.NumericUpDown NUP_TallGrassMin2; - private System.Windows.Forms.NumericUpDown NUP_TallGrassMax2; - private System.Windows.Forms.ComboBox CB_TallGrass12; - private System.Windows.Forms.NumericUpDown NUP_TallGrassForme3; - private System.Windows.Forms.ComboBox CB_TallGrass11; - private System.Windows.Forms.NumericUpDown NUP_TallGrassMin3; - private System.Windows.Forms.ComboBox CB_TallGrass10; - private System.Windows.Forms.NumericUpDown NUP_TallGrassMax3; - private System.Windows.Forms.ComboBox CB_TallGrass9; - private System.Windows.Forms.NumericUpDown NUP_TallGrassForme4; - private System.Windows.Forms.ComboBox CB_TallGrass8; - private System.Windows.Forms.NumericUpDown NUP_TallGrassMin4; - private System.Windows.Forms.ComboBox CB_TallGrass7; - private System.Windows.Forms.NumericUpDown NUP_TallGrassMax4; - private System.Windows.Forms.ComboBox CB_TallGrass6; - private System.Windows.Forms.NumericUpDown NUP_TallGrassForme5; - private System.Windows.Forms.ComboBox CB_TallGrass5; - private System.Windows.Forms.NumericUpDown NUP_TallGrassMin5; - private System.Windows.Forms.ComboBox CB_TallGrass4; - private System.Windows.Forms.NumericUpDown NUP_TallGrassMax5; - private System.Windows.Forms.ComboBox CB_TallGrass3; - private System.Windows.Forms.NumericUpDown NUP_TallGrassForme6; - private System.Windows.Forms.ComboBox CB_TallGrass2; - private System.Windows.Forms.NumericUpDown NUP_TallGrassMin6; - private System.Windows.Forms.ComboBox CB_TallGrass1; - private System.Windows.Forms.NumericUpDown NUP_TallGrassMax6; - private System.Windows.Forms.NumericUpDown NUP_TallGrassForme7; - private System.Windows.Forms.NumericUpDown NUP_TallGrassMin7; - private System.Windows.Forms.NumericUpDown NUP_TallGrassMax7; - private System.Windows.Forms.NumericUpDown NUP_TallGrassForme8; - private System.Windows.Forms.NumericUpDown NUP_TallGrassMin8; - private System.Windows.Forms.NumericUpDown NUP_TallGrassMax8; - private System.Windows.Forms.NumericUpDown NUP_TallGrassForme9; - private System.Windows.Forms.NumericUpDown NUP_TallGrassMin9; - private System.Windows.Forms.NumericUpDown NUP_TallGrassMax9; - private System.Windows.Forms.NumericUpDown NUP_TallGrassForme10; - private System.Windows.Forms.NumericUpDown NUP_TallGrassMin10; - private System.Windows.Forms.NumericUpDown NUP_TallGrassMax10; - private System.Windows.Forms.Label label107; - private System.Windows.Forms.Label L_RockSmash; - private System.Windows.Forms.Label label108; - private System.Windows.Forms.NumericUpDown NUP_RockSmashMax5; - private System.Windows.Forms.Label label109; - private System.Windows.Forms.NumericUpDown NUP_RockSmashMin5; - private System.Windows.Forms.Label label110; - private System.Windows.Forms.NumericUpDown NUP_RockSmashForme5; - private System.Windows.Forms.Label label111; - private System.Windows.Forms.ComboBox CB_RockSmash5; - private System.Windows.Forms.ComboBox CB_RockSmash1; - private System.Windows.Forms.NumericUpDown NUP_RockSmashMax4; - private System.Windows.Forms.NumericUpDown NUP_RockSmashForme1; - private System.Windows.Forms.NumericUpDown NUP_RockSmashMin4; - private System.Windows.Forms.Label label112; - private System.Windows.Forms.NumericUpDown NUP_RockSmashForme4; - private System.Windows.Forms.NumericUpDown NUP_RockSmashMin1; - private System.Windows.Forms.ComboBox CB_RockSmash4; - private System.Windows.Forms.Label label113; - private System.Windows.Forms.NumericUpDown NUP_RockSmashMax3; - private System.Windows.Forms.NumericUpDown NUP_RockSmashMax1; - private System.Windows.Forms.NumericUpDown NUP_RockSmashMin3; - private System.Windows.Forms.Label label114; - private System.Windows.Forms.NumericUpDown NUP_RockSmashForme3; - private System.Windows.Forms.ComboBox CB_RockSmash2; - private System.Windows.Forms.ComboBox CB_RockSmash3; - private System.Windows.Forms.NumericUpDown NUP_RockSmashMax2; - private System.Windows.Forms.NumericUpDown NUP_RockSmashForme2; - private System.Windows.Forms.NumericUpDown NUP_RockSmashMin2; - private System.Windows.Forms.Label label6; - private System.Windows.Forms.Label label7; - private System.Windows.Forms.Label label8; - private System.Windows.Forms.Label L_TallGrass; - private System.Windows.Forms.Label label10; - private System.Windows.Forms.Label label11; - private System.Windows.Forms.Label label12; - private System.Windows.Forms.Label label13; - private System.Windows.Forms.Label label14; - private System.Windows.Forms.Label label15; - private System.Windows.Forms.Label label16; - private System.Windows.Forms.Label label17; - private System.Windows.Forms.Label label18; - private System.Windows.Forms.Label label19; - private System.Windows.Forms.Label label20; - private System.Windows.Forms.Label label21; - private System.Windows.Forms.NumericUpDown NUP_GrassForme1; - private System.Windows.Forms.NumericUpDown NUP_GrassMin1; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.NumericUpDown NUP_GrassMax1; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.NumericUpDown NUP_GrassForme2; - private System.Windows.Forms.Label label5; - private System.Windows.Forms.NumericUpDown NUP_GrassMin2; - private System.Windows.Forms.Label L_Grass; - private System.Windows.Forms.NumericUpDown NUP_GrassMax2; - private System.Windows.Forms.ComboBox CB_Grass12; - private System.Windows.Forms.NumericUpDown NUP_GrassForme3; - private System.Windows.Forms.ComboBox CB_Grass11; - private System.Windows.Forms.NumericUpDown NUP_GrassMin3; - private System.Windows.Forms.ComboBox CB_Grass10; - private System.Windows.Forms.NumericUpDown NUP_GrassMax3; - private System.Windows.Forms.ComboBox CB_Grass9; - private System.Windows.Forms.NumericUpDown NUP_GrassForme4; - private System.Windows.Forms.ComboBox CB_Grass8; - private System.Windows.Forms.NumericUpDown NUP_GrassMin4; - private System.Windows.Forms.ComboBox CB_Grass7; - private System.Windows.Forms.NumericUpDown NUP_GrassMax4; - private System.Windows.Forms.ComboBox CB_Grass6; - private System.Windows.Forms.NumericUpDown NUP_GrassForme5; - private System.Windows.Forms.ComboBox CB_Grass5; - private System.Windows.Forms.NumericUpDown NUP_GrassMin5; - private System.Windows.Forms.ComboBox CB_Grass4; - private System.Windows.Forms.NumericUpDown NUP_GrassMax5; - private System.Windows.Forms.ComboBox CB_Grass3; - private System.Windows.Forms.NumericUpDown NUP_GrassForme6; - private System.Windows.Forms.ComboBox CB_Grass2; - private System.Windows.Forms.NumericUpDown NUP_GrassMin6; - private System.Windows.Forms.ComboBox CB_Grass1; - private System.Windows.Forms.NumericUpDown NUP_GrassMax6; - private System.Windows.Forms.Label label31; - private System.Windows.Forms.NumericUpDown NUP_GrassForme7; - private System.Windows.Forms.Label label41; - private System.Windows.Forms.NumericUpDown NUP_GrassMin7; - private System.Windows.Forms.Label label42; - private System.Windows.Forms.NumericUpDown NUP_GrassMax7; - private System.Windows.Forms.Label label40; - private System.Windows.Forms.NumericUpDown NUP_GrassForme8; - private System.Windows.Forms.Label label39; - private System.Windows.Forms.NumericUpDown NUP_GrassMin8; - private System.Windows.Forms.Label label38; - private System.Windows.Forms.NumericUpDown NUP_GrassMax8; - private System.Windows.Forms.Label label37; - private System.Windows.Forms.NumericUpDown NUP_GrassForme9; - private System.Windows.Forms.Label label36; - private System.Windows.Forms.NumericUpDown NUP_GrassMin9; - private System.Windows.Forms.Label label35; - private System.Windows.Forms.NumericUpDown NUP_GrassMax9; - private System.Windows.Forms.Label label34; - private System.Windows.Forms.NumericUpDown NUP_GrassForme10; - private System.Windows.Forms.Label label33; - private System.Windows.Forms.NumericUpDown NUP_GrassMin10; - private System.Windows.Forms.Label label32; - private System.Windows.Forms.NumericUpDown NUP_GrassMax10; - private System.Windows.Forms.NumericUpDown NUP_GrassMax12; - private System.Windows.Forms.NumericUpDown NUP_GrassForme11; - private System.Windows.Forms.NumericUpDown NUP_GrassMin12; - private System.Windows.Forms.NumericUpDown NUP_GrassMin11; - private System.Windows.Forms.NumericUpDown NUP_GrassForme12; - private System.Windows.Forms.NumericUpDown NUP_GrassMax11; - private System.Windows.Forms.TabControl TabControl_EncounterData; - private System.Windows.Forms.Button B_Dump; - private System.Windows.Forms.Button B_Randomize; - private System.Windows.Forms.GroupBox GB_Tweak; - private System.Windows.Forms.Button B_LevelPlus; - private System.Windows.Forms.NumericUpDown NUD_LevelAmp; - private System.Windows.Forms.CheckBox CHK_Level; - private System.Windows.Forms.CheckBox CHK_E; - private System.Windows.Forms.CheckBox CHK_L; - private System.Windows.Forms.CheckBox CHK_G6; - private System.Windows.Forms.CheckBox CHK_G5; - private System.Windows.Forms.CheckBox CHK_G4; - private System.Windows.Forms.CheckBox CHK_G3; - private System.Windows.Forms.CheckBox CHK_G2; - private System.Windows.Forms.CheckBox CHK_G1; - private System.Windows.Forms.CheckBox CHK_BST; - private System.Windows.Forms.Label L_RandOpt; - private System.Windows.Forms.CheckBox CHK_MegaForm; - private System.Windows.Forms.CheckBox CHK_HomogeneousHordes; } -} + #endregion + + private System.Windows.Forms.ComboBox CB_LocationID; + private System.Windows.Forms.Button B_Save; + private System.Windows.Forms.Label L_Location; + private System.Windows.Forms.Label L_FormList; + private System.Windows.Forms.ComboBox CB_FormeList; + private System.Windows.Forms.TabPage TabPage_Horde; + private System.Windows.Forms.Label L_HordeC_Max; + private System.Windows.Forms.Label L_HordeC_Min; + private System.Windows.Forms.Label L_HordeC_F; + private System.Windows.Forms.Label L_HordeC; + private System.Windows.Forms.NumericUpDown NUP_HordeCMax5; + private System.Windows.Forms.NumericUpDown NUP_HordeCMin5; + private System.Windows.Forms.NumericUpDown NUP_HordeCForme5; + private System.Windows.Forms.ComboBox CB_HordeC5; + private System.Windows.Forms.NumericUpDown NUP_HordeCMax4; + private System.Windows.Forms.NumericUpDown NUP_HordeCMin4; + private System.Windows.Forms.NumericUpDown NUP_HordeCForme4; + private System.Windows.Forms.ComboBox CB_HordeC4; + private System.Windows.Forms.NumericUpDown NUP_HordeCMax3; + private System.Windows.Forms.NumericUpDown NUP_HordeCMin3; + private System.Windows.Forms.NumericUpDown NUP_HordeCForme3; + private System.Windows.Forms.ComboBox CB_HordeC3; + private System.Windows.Forms.NumericUpDown NUP_HordeCMax2; + private System.Windows.Forms.NumericUpDown NUP_HordeCMin2; + private System.Windows.Forms.NumericUpDown NUP_HordeCForme2; + private System.Windows.Forms.ComboBox CB_HordeC2; + private System.Windows.Forms.NumericUpDown NUP_HordeCMax1; + private System.Windows.Forms.NumericUpDown NUP_HordeCMin1; + private System.Windows.Forms.NumericUpDown NUP_HordeCForme1; + private System.Windows.Forms.ComboBox CB_HordeC1; + private System.Windows.Forms.Label L_HordeB_Max; + private System.Windows.Forms.Label L_HordeA_Max; + private System.Windows.Forms.Label L_HordeB_Min; + private System.Windows.Forms.Label L_HordeA; + private System.Windows.Forms.Label L_HordeB_F; + private System.Windows.Forms.Label L_HordeA_Min; + private System.Windows.Forms.Label L_HordeB; + private System.Windows.Forms.NumericUpDown NUP_HordeBMax5; + private System.Windows.Forms.ComboBox CB_HordeA1; + private System.Windows.Forms.NumericUpDown NUP_HordeBMin5; + private System.Windows.Forms.Label L_HordeA_F; + private System.Windows.Forms.NumericUpDown NUP_HordeBForme5; + private System.Windows.Forms.NumericUpDown NUP_HordeAForme1; + private System.Windows.Forms.ComboBox CB_HordeB5; + private System.Windows.Forms.NumericUpDown NUP_HordeAMin1; + private System.Windows.Forms.NumericUpDown NUP_HordeBMax4; + private System.Windows.Forms.NumericUpDown NUP_HordeAMax5; + private System.Windows.Forms.NumericUpDown NUP_HordeBMin4; + private System.Windows.Forms.NumericUpDown NUP_HordeAMax1; + private System.Windows.Forms.NumericUpDown NUP_HordeBForme4; + private System.Windows.Forms.NumericUpDown NUP_HordeAMin5; + private System.Windows.Forms.ComboBox CB_HordeB4; + private System.Windows.Forms.ComboBox CB_HordeA2; + private System.Windows.Forms.NumericUpDown NUP_HordeBMax3; + private System.Windows.Forms.NumericUpDown NUP_HordeAForme5; + private System.Windows.Forms.NumericUpDown NUP_HordeBMin3; + private System.Windows.Forms.NumericUpDown NUP_HordeAForme2; + private System.Windows.Forms.NumericUpDown NUP_HordeBForme3; + private System.Windows.Forms.ComboBox CB_HordeA5; + private System.Windows.Forms.ComboBox CB_HordeB3; + private System.Windows.Forms.NumericUpDown NUP_HordeAMin2; + private System.Windows.Forms.NumericUpDown NUP_HordeBMax2; + private System.Windows.Forms.NumericUpDown NUP_HordeAMax4; + private System.Windows.Forms.NumericUpDown NUP_HordeBMin2; + private System.Windows.Forms.NumericUpDown NUP_HordeAMax2; + private System.Windows.Forms.NumericUpDown NUP_HordeBForme2; + private System.Windows.Forms.NumericUpDown NUP_HordeAMin4; + private System.Windows.Forms.ComboBox CB_HordeB2; + private System.Windows.Forms.ComboBox CB_HordeA3; + private System.Windows.Forms.NumericUpDown NUP_HordeBMax1; + private System.Windows.Forms.NumericUpDown NUP_HordeAForme4; + private System.Windows.Forms.NumericUpDown NUP_HordeBMin1; + private System.Windows.Forms.NumericUpDown NUP_HordeAForme3; + private System.Windows.Forms.NumericUpDown NUP_HordeBForme1; + private System.Windows.Forms.ComboBox CB_HordeA4; + private System.Windows.Forms.ComboBox CB_HordeB1; + private System.Windows.Forms.NumericUpDown NUP_HordeAMin3; + private System.Windows.Forms.NumericUpDown NUP_HordeAMax3; + private System.Windows.Forms.TabPage TabPage_Water; + private System.Windows.Forms.Label label116; + private System.Windows.Forms.Label label117; + private System.Windows.Forms.Label label118; + private System.Windows.Forms.Label label119; + private System.Windows.Forms.Label label120; + private System.Windows.Forms.Label label103; + private System.Windows.Forms.Label L_Super; + private System.Windows.Forms.Label label104; + private System.Windows.Forms.ComboBox CB_Super1; + private System.Windows.Forms.Label label105; + private System.Windows.Forms.NumericUpDown NUP_SuperForme1; + private System.Windows.Forms.Label L_Surf; + private System.Windows.Forms.ComboBox CB_Surf1; + private System.Windows.Forms.NumericUpDown NUP_SuperMin1; + private System.Windows.Forms.NumericUpDown NUP_SurfForme1; + private System.Windows.Forms.NumericUpDown NUP_SuperMax1; + private System.Windows.Forms.NumericUpDown NUP_SurfMin1; + private System.Windows.Forms.ComboBox CB_Super2; + private System.Windows.Forms.NumericUpDown NUP_SurfMax1; + private System.Windows.Forms.NumericUpDown NUP_SuperForme2; + private System.Windows.Forms.ComboBox CB_Surf2; + private System.Windows.Forms.NumericUpDown NUP_SuperMin2; + private System.Windows.Forms.NumericUpDown NUP_SurfForme2; + private System.Windows.Forms.NumericUpDown NUP_SuperMax2; + private System.Windows.Forms.NumericUpDown NUP_SurfMin2; + private System.Windows.Forms.ComboBox CB_Super3; + private System.Windows.Forms.NumericUpDown NUP_SurfMax5; + private System.Windows.Forms.NumericUpDown NUP_SuperForme3; + private System.Windows.Forms.NumericUpDown NUP_SurfMax2; + private System.Windows.Forms.NumericUpDown NUP_SuperMin3; + private System.Windows.Forms.NumericUpDown NUP_SurfMin5; + private System.Windows.Forms.NumericUpDown NUP_SuperMax3; + private System.Windows.Forms.ComboBox CB_Surf3; + private System.Windows.Forms.Label label49; + private System.Windows.Forms.NumericUpDown NUP_SurfForme5; + private System.Windows.Forms.Label label98; + private System.Windows.Forms.NumericUpDown NUP_SurfForme3; + private System.Windows.Forms.Label label99; + private System.Windows.Forms.ComboBox CB_Surf5; + private System.Windows.Forms.Label label100; + private System.Windows.Forms.NumericUpDown NUP_SurfMin3; + private System.Windows.Forms.Label label101; + private System.Windows.Forms.NumericUpDown NUP_SurfMax4; + private System.Windows.Forms.Label label102; + private System.Windows.Forms.NumericUpDown NUP_SurfMax3; + private System.Windows.Forms.Label L_Good; + private System.Windows.Forms.NumericUpDown NUP_SurfMin4; + private System.Windows.Forms.ComboBox CB_Good1; + private System.Windows.Forms.ComboBox CB_Surf4; + private System.Windows.Forms.NumericUpDown NUP_GoodForme1; + private System.Windows.Forms.NumericUpDown NUP_SurfForme4; + private System.Windows.Forms.NumericUpDown NUP_GoodMin1; + private System.Windows.Forms.NumericUpDown NUP_GoodMax1; + private System.Windows.Forms.ComboBox CB_Good2; + private System.Windows.Forms.NumericUpDown NUP_GoodForme2; + private System.Windows.Forms.NumericUpDown NUP_GoodMin2; + private System.Windows.Forms.NumericUpDown NUP_GoodMax2; + private System.Windows.Forms.ComboBox CB_Good3; + private System.Windows.Forms.NumericUpDown NUP_GoodForme3; + private System.Windows.Forms.NumericUpDown NUP_GoodMin3; + private System.Windows.Forms.NumericUpDown NUP_GoodMax3; + private System.Windows.Forms.Label label27; + private System.Windows.Forms.Label label28; + private System.Windows.Forms.Label label29; + private System.Windows.Forms.Label label30; + private System.Windows.Forms.Label label46; + private System.Windows.Forms.Label label47; + private System.Windows.Forms.Label L_Old; + private System.Windows.Forms.ComboBox CB_Old1; + private System.Windows.Forms.NumericUpDown NUP_OldForme1; + private System.Windows.Forms.NumericUpDown NUP_OldMin1; + private System.Windows.Forms.NumericUpDown NUP_OldMax1; + private System.Windows.Forms.ComboBox CB_Old2; + private System.Windows.Forms.NumericUpDown NUP_OldForme2; + private System.Windows.Forms.NumericUpDown NUP_OldMin2; + private System.Windows.Forms.NumericUpDown NUP_OldMax2; + private System.Windows.Forms.ComboBox CB_Old3; + private System.Windows.Forms.NumericUpDown NUP_OldForme3; + private System.Windows.Forms.NumericUpDown NUP_OldMin3; + private System.Windows.Forms.NumericUpDown NUP_OldMax3; + private System.Windows.Forms.Label label45; + private System.Windows.Forms.Label label44; + private System.Windows.Forms.Label label43; + private System.Windows.Forms.Label label23; + private System.Windows.Forms.Label label24; + private System.Windows.Forms.Label label25; + private System.Windows.Forms.TabPage TabPage_Land; + private System.Windows.Forms.ComboBox CB_Swarm3; + private System.Windows.Forms.ComboBox CB_Swarm2; + private System.Windows.Forms.ComboBox CB_Swarm1; + private System.Windows.Forms.NumericUpDown NUP_SwarmForme1; + private System.Windows.Forms.NumericUpDown NUP_SwarmMin1; + private System.Windows.Forms.Label label66; + private System.Windows.Forms.NumericUpDown NUP_SwarmMax1; + private System.Windows.Forms.Label label67; + private System.Windows.Forms.NumericUpDown NUP_SwarmForme2; + private System.Windows.Forms.Label label68; + private System.Windows.Forms.NumericUpDown NUP_SwarmMin2; + private System.Windows.Forms.Label L_DexNav; + private System.Windows.Forms.NumericUpDown NUP_SwarmMax2; + private System.Windows.Forms.NumericUpDown NUP_SwarmForme3; + private System.Windows.Forms.NumericUpDown NUP_SwarmMin3; + private System.Windows.Forms.NumericUpDown NUP_SwarmMax3; + private System.Windows.Forms.Label label70; + private System.Windows.Forms.Label label80; + private System.Windows.Forms.Label label81; + private System.Windows.Forms.NumericUpDown NUP_TallGrassForme11; + private System.Windows.Forms.NumericUpDown NUP_TallGrassMin11; + private System.Windows.Forms.NumericUpDown NUP_TallGrassMax11; + private System.Windows.Forms.NumericUpDown NUP_TallGrassForme12; + private System.Windows.Forms.NumericUpDown NUP_TallGrassMin12; + private System.Windows.Forms.NumericUpDown NUP_TallGrassMax12; + private System.Windows.Forms.NumericUpDown NUP_TallGrassForme1; + private System.Windows.Forms.NumericUpDown NUP_TallGrassMin1; + private System.Windows.Forms.NumericUpDown NUP_TallGrassMax1; + private System.Windows.Forms.NumericUpDown NUP_TallGrassForme2; + private System.Windows.Forms.NumericUpDown NUP_TallGrassMin2; + private System.Windows.Forms.NumericUpDown NUP_TallGrassMax2; + private System.Windows.Forms.ComboBox CB_TallGrass12; + private System.Windows.Forms.NumericUpDown NUP_TallGrassForme3; + private System.Windows.Forms.ComboBox CB_TallGrass11; + private System.Windows.Forms.NumericUpDown NUP_TallGrassMin3; + private System.Windows.Forms.ComboBox CB_TallGrass10; + private System.Windows.Forms.NumericUpDown NUP_TallGrassMax3; + private System.Windows.Forms.ComboBox CB_TallGrass9; + private System.Windows.Forms.NumericUpDown NUP_TallGrassForme4; + private System.Windows.Forms.ComboBox CB_TallGrass8; + private System.Windows.Forms.NumericUpDown NUP_TallGrassMin4; + private System.Windows.Forms.ComboBox CB_TallGrass7; + private System.Windows.Forms.NumericUpDown NUP_TallGrassMax4; + private System.Windows.Forms.ComboBox CB_TallGrass6; + private System.Windows.Forms.NumericUpDown NUP_TallGrassForme5; + private System.Windows.Forms.ComboBox CB_TallGrass5; + private System.Windows.Forms.NumericUpDown NUP_TallGrassMin5; + private System.Windows.Forms.ComboBox CB_TallGrass4; + private System.Windows.Forms.NumericUpDown NUP_TallGrassMax5; + private System.Windows.Forms.ComboBox CB_TallGrass3; + private System.Windows.Forms.NumericUpDown NUP_TallGrassForme6; + private System.Windows.Forms.ComboBox CB_TallGrass2; + private System.Windows.Forms.NumericUpDown NUP_TallGrassMin6; + private System.Windows.Forms.ComboBox CB_TallGrass1; + private System.Windows.Forms.NumericUpDown NUP_TallGrassMax6; + private System.Windows.Forms.NumericUpDown NUP_TallGrassForme7; + private System.Windows.Forms.NumericUpDown NUP_TallGrassMin7; + private System.Windows.Forms.NumericUpDown NUP_TallGrassMax7; + private System.Windows.Forms.NumericUpDown NUP_TallGrassForme8; + private System.Windows.Forms.NumericUpDown NUP_TallGrassMin8; + private System.Windows.Forms.NumericUpDown NUP_TallGrassMax8; + private System.Windows.Forms.NumericUpDown NUP_TallGrassForme9; + private System.Windows.Forms.NumericUpDown NUP_TallGrassMin9; + private System.Windows.Forms.NumericUpDown NUP_TallGrassMax9; + private System.Windows.Forms.NumericUpDown NUP_TallGrassForme10; + private System.Windows.Forms.NumericUpDown NUP_TallGrassMin10; + private System.Windows.Forms.NumericUpDown NUP_TallGrassMax10; + private System.Windows.Forms.Label label107; + private System.Windows.Forms.Label L_RockSmash; + private System.Windows.Forms.Label label108; + private System.Windows.Forms.NumericUpDown NUP_RockSmashMax5; + private System.Windows.Forms.Label label109; + private System.Windows.Forms.NumericUpDown NUP_RockSmashMin5; + private System.Windows.Forms.Label label110; + private System.Windows.Forms.NumericUpDown NUP_RockSmashForme5; + private System.Windows.Forms.Label label111; + private System.Windows.Forms.ComboBox CB_RockSmash5; + private System.Windows.Forms.ComboBox CB_RockSmash1; + private System.Windows.Forms.NumericUpDown NUP_RockSmashMax4; + private System.Windows.Forms.NumericUpDown NUP_RockSmashForme1; + private System.Windows.Forms.NumericUpDown NUP_RockSmashMin4; + private System.Windows.Forms.Label label112; + private System.Windows.Forms.NumericUpDown NUP_RockSmashForme4; + private System.Windows.Forms.NumericUpDown NUP_RockSmashMin1; + private System.Windows.Forms.ComboBox CB_RockSmash4; + private System.Windows.Forms.Label label113; + private System.Windows.Forms.NumericUpDown NUP_RockSmashMax3; + private System.Windows.Forms.NumericUpDown NUP_RockSmashMax1; + private System.Windows.Forms.NumericUpDown NUP_RockSmashMin3; + private System.Windows.Forms.Label label114; + private System.Windows.Forms.NumericUpDown NUP_RockSmashForme3; + private System.Windows.Forms.ComboBox CB_RockSmash2; + private System.Windows.Forms.ComboBox CB_RockSmash3; + private System.Windows.Forms.NumericUpDown NUP_RockSmashMax2; + private System.Windows.Forms.NumericUpDown NUP_RockSmashForme2; + private System.Windows.Forms.NumericUpDown NUP_RockSmashMin2; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.Label L_TallGrass; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.Label label12; + private System.Windows.Forms.Label label13; + private System.Windows.Forms.Label label14; + private System.Windows.Forms.Label label15; + private System.Windows.Forms.Label label16; + private System.Windows.Forms.Label label17; + private System.Windows.Forms.Label label18; + private System.Windows.Forms.Label label19; + private System.Windows.Forms.Label label20; + private System.Windows.Forms.Label label21; + private System.Windows.Forms.NumericUpDown NUP_GrassForme1; + private System.Windows.Forms.NumericUpDown NUP_GrassMin1; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.NumericUpDown NUP_GrassMax1; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.NumericUpDown NUP_GrassForme2; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.NumericUpDown NUP_GrassMin2; + private System.Windows.Forms.Label L_Grass; + private System.Windows.Forms.NumericUpDown NUP_GrassMax2; + private System.Windows.Forms.ComboBox CB_Grass12; + private System.Windows.Forms.NumericUpDown NUP_GrassForme3; + private System.Windows.Forms.ComboBox CB_Grass11; + private System.Windows.Forms.NumericUpDown NUP_GrassMin3; + private System.Windows.Forms.ComboBox CB_Grass10; + private System.Windows.Forms.NumericUpDown NUP_GrassMax3; + private System.Windows.Forms.ComboBox CB_Grass9; + private System.Windows.Forms.NumericUpDown NUP_GrassForme4; + private System.Windows.Forms.ComboBox CB_Grass8; + private System.Windows.Forms.NumericUpDown NUP_GrassMin4; + private System.Windows.Forms.ComboBox CB_Grass7; + private System.Windows.Forms.NumericUpDown NUP_GrassMax4; + private System.Windows.Forms.ComboBox CB_Grass6; + private System.Windows.Forms.NumericUpDown NUP_GrassForme5; + private System.Windows.Forms.ComboBox CB_Grass5; + private System.Windows.Forms.NumericUpDown NUP_GrassMin5; + private System.Windows.Forms.ComboBox CB_Grass4; + private System.Windows.Forms.NumericUpDown NUP_GrassMax5; + private System.Windows.Forms.ComboBox CB_Grass3; + private System.Windows.Forms.NumericUpDown NUP_GrassForme6; + private System.Windows.Forms.ComboBox CB_Grass2; + private System.Windows.Forms.NumericUpDown NUP_GrassMin6; + private System.Windows.Forms.ComboBox CB_Grass1; + private System.Windows.Forms.NumericUpDown NUP_GrassMax6; + private System.Windows.Forms.Label label31; + private System.Windows.Forms.NumericUpDown NUP_GrassForme7; + private System.Windows.Forms.Label label41; + private System.Windows.Forms.NumericUpDown NUP_GrassMin7; + private System.Windows.Forms.Label label42; + private System.Windows.Forms.NumericUpDown NUP_GrassMax7; + private System.Windows.Forms.Label label40; + private System.Windows.Forms.NumericUpDown NUP_GrassForme8; + private System.Windows.Forms.Label label39; + private System.Windows.Forms.NumericUpDown NUP_GrassMin8; + private System.Windows.Forms.Label label38; + private System.Windows.Forms.NumericUpDown NUP_GrassMax8; + private System.Windows.Forms.Label label37; + private System.Windows.Forms.NumericUpDown NUP_GrassForme9; + private System.Windows.Forms.Label label36; + private System.Windows.Forms.NumericUpDown NUP_GrassMin9; + private System.Windows.Forms.Label label35; + private System.Windows.Forms.NumericUpDown NUP_GrassMax9; + private System.Windows.Forms.Label label34; + private System.Windows.Forms.NumericUpDown NUP_GrassForme10; + private System.Windows.Forms.Label label33; + private System.Windows.Forms.NumericUpDown NUP_GrassMin10; + private System.Windows.Forms.Label label32; + private System.Windows.Forms.NumericUpDown NUP_GrassMax10; + private System.Windows.Forms.NumericUpDown NUP_GrassMax12; + private System.Windows.Forms.NumericUpDown NUP_GrassForme11; + private System.Windows.Forms.NumericUpDown NUP_GrassMin12; + private System.Windows.Forms.NumericUpDown NUP_GrassMin11; + private System.Windows.Forms.NumericUpDown NUP_GrassForme12; + private System.Windows.Forms.NumericUpDown NUP_GrassMax11; + private System.Windows.Forms.TabControl TabControl_EncounterData; + private System.Windows.Forms.Button B_Dump; + private System.Windows.Forms.Button B_Randomize; + private System.Windows.Forms.GroupBox GB_Tweak; + private System.Windows.Forms.Button B_LevelPlus; + private System.Windows.Forms.NumericUpDown NUD_LevelAmp; + private System.Windows.Forms.CheckBox CHK_Level; + private System.Windows.Forms.CheckBox CHK_E; + private System.Windows.Forms.CheckBox CHK_L; + private System.Windows.Forms.CheckBox CHK_G6; + private System.Windows.Forms.CheckBox CHK_G5; + private System.Windows.Forms.CheckBox CHK_G4; + private System.Windows.Forms.CheckBox CHK_G3; + private System.Windows.Forms.CheckBox CHK_G2; + private System.Windows.Forms.CheckBox CHK_G1; + private System.Windows.Forms.CheckBox CHK_BST; + private System.Windows.Forms.Label L_RandOpt; + private System.Windows.Forms.CheckBox CHK_MegaForm; + private System.Windows.Forms.CheckBox CHK_HomogeneousHordes; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen6/RSWE.cs b/pk3DS.WinForms/Subforms/Gen6/RSWE.cs new file mode 100644 index 0000000000..64dab99235 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/RSWE.cs @@ -0,0 +1,835 @@ +using pk3DS.Core; +using System; +using System.IO; +using System.Linq; +using System.Windows.Forms; +using pk3DS.Core.Randomizers; + +namespace pk3DS.WinForms; + +public partial class RSWE : Form +{ + public RSWE() + { + InitializeComponent(); + All_Species = + [ + CB_Grass1, CB_Grass2, CB_Grass3, CB_Grass4, CB_Grass5, CB_Grass6, CB_Grass7, CB_Grass8, CB_Grass9, CB_Grass10, CB_Grass11, CB_Grass12, + CB_TallGrass1, CB_TallGrass2, CB_TallGrass3, CB_TallGrass4, CB_TallGrass5, CB_TallGrass6, CB_TallGrass7, CB_TallGrass8, CB_TallGrass9, CB_TallGrass10, CB_TallGrass11, CB_TallGrass12, + CB_Swarm1, CB_Swarm2, CB_Swarm3, + CB_Surf1, CB_Surf2, CB_Surf3, CB_Surf4, CB_Surf5, + CB_RockSmash1, CB_RockSmash2, CB_RockSmash3, CB_RockSmash4, CB_RockSmash5, + CB_Old1, CB_Old2, CB_Old3, + CB_Good1, CB_Good2, CB_Good3, + CB_Super1, CB_Super2, CB_Super3, + CB_HordeA1, CB_HordeA2, CB_HordeA3, CB_HordeA4, CB_HordeA5, + CB_HordeB1, CB_HordeB2, CB_HordeB3, CB_HordeB4, CB_HordeB5, + CB_HordeC1, CB_HordeC2, CB_HordeC3, CB_HordeC4, CB_HordeC5, + ]; + All_Min = + [ + NUP_GrassMin1, NUP_GrassMin2, NUP_GrassMin3, NUP_GrassMin4, NUP_GrassMin5, NUP_GrassMin6, NUP_GrassMin7, NUP_GrassMin8, NUP_GrassMin9, NUP_GrassMin10, NUP_GrassMin11, NUP_GrassMin12, + NUP_TallGrassMin1, NUP_TallGrassMin2, NUP_TallGrassMin3, NUP_TallGrassMin4, NUP_TallGrassMin5, NUP_TallGrassMin6, NUP_TallGrassMin7, NUP_TallGrassMin8, NUP_TallGrassMin9, NUP_TallGrassMin10, NUP_TallGrassMin11, NUP_TallGrassMin12, + NUP_SwarmMin1, NUP_SwarmMin2, NUP_SwarmMin3, + NUP_SurfMin1, NUP_SurfMin2, NUP_SurfMin3, NUP_SurfMin4, NUP_SurfMin5, + NUP_RockSmashMin1, NUP_RockSmashMin2, NUP_RockSmashMin3, NUP_RockSmashMin4, NUP_RockSmashMin5, + NUP_OldMin1, NUP_OldMin2, NUP_OldMin3, + NUP_GoodMin1, NUP_GoodMin2, NUP_GoodMin3, + NUP_SuperMin1, NUP_SuperMin2, NUP_SuperMin3, + NUP_HordeAMin1, NUP_HordeAMin2, NUP_HordeAMin3, NUP_HordeAMin4, NUP_HordeAMin5, + NUP_HordeBMin1, NUP_HordeBMin2, NUP_HordeBMin3, NUP_HordeBMin4, NUP_HordeBMin5, + NUP_HordeCMin1, NUP_HordeCMin2, NUP_HordeCMin3, NUP_HordeCMin4, NUP_HordeCMin5, + ]; + All_Max = + [ + NUP_GrassMax1, NUP_GrassMax2, NUP_GrassMax3, NUP_GrassMax4, NUP_GrassMax5, NUP_GrassMax6, NUP_GrassMax7, NUP_GrassMax8, NUP_GrassMax9, NUP_GrassMax10, NUP_GrassMax11, NUP_GrassMax12, + NUP_TallGrassMax1, NUP_TallGrassMax2, NUP_TallGrassMax3, NUP_TallGrassMax4, NUP_TallGrassMax5, NUP_TallGrassMax6, NUP_TallGrassMax7, NUP_TallGrassMax8, NUP_TallGrassMax9, NUP_TallGrassMax10, NUP_TallGrassMax11, NUP_TallGrassMax12, + NUP_SwarmMax1, NUP_SwarmMax2, NUP_SwarmMax3, + NUP_SurfMax1, NUP_SurfMax2, NUP_SurfMax3, NUP_SurfMax4, NUP_SurfMax5, + NUP_RockSmashMax1, NUP_RockSmashMax2, NUP_RockSmashMax3, NUP_RockSmashMax4, NUP_RockSmashMax5, + NUP_OldMax1, NUP_OldMax2, NUP_OldMax3, + NUP_GoodMax1, NUP_GoodMax2, NUP_GoodMax3, + NUP_SuperMax1, NUP_SuperMax2, NUP_SuperMax3, + NUP_HordeAMax1, NUP_HordeAMax2, NUP_HordeAMax3, NUP_HordeAMax4, NUP_HordeAMax5, + NUP_HordeBMax1, NUP_HordeBMax2, NUP_HordeBMax3, NUP_HordeBMax4, NUP_HordeBMax5, + NUP_HordeCMax1, NUP_HordeCMax2, NUP_HordeCMax3, NUP_HordeCMax4, NUP_HordeCMax5, + ]; + All_Forms = + [ + NUP_GrassForme1, NUP_GrassForme2, NUP_GrassForme3, NUP_GrassForme4, NUP_GrassForme5, NUP_GrassForme6, NUP_GrassForme7, NUP_GrassForme8, NUP_GrassForme9, NUP_GrassForme10, NUP_GrassForme11, NUP_GrassForme12, + NUP_TallGrassForme1, NUP_TallGrassForme2, NUP_TallGrassForme3, NUP_TallGrassForme4, NUP_TallGrassForme5, NUP_TallGrassForme6, NUP_TallGrassForme7, NUP_TallGrassForme8, NUP_TallGrassForme9, NUP_TallGrassForme10, NUP_TallGrassForme11, NUP_TallGrassForme12, + NUP_SwarmForme1, NUP_SwarmForme2, NUP_SwarmForme3, + NUP_SurfForme1, NUP_SurfForme2, NUP_SurfForme3, NUP_SurfForme4, NUP_SurfForme5, + NUP_RockSmashForme1, NUP_RockSmashForme2, NUP_RockSmashForme3, NUP_RockSmashForme4, NUP_RockSmashForme5, + NUP_OldForme1, NUP_OldForme2, NUP_OldForme3, + NUP_GoodForme1, NUP_GoodForme2, NUP_GoodForme3, + NUP_SuperForme1, NUP_SuperForme2, NUP_SuperForme3, + NUP_HordeAForme1, NUP_HordeAForme2, NUP_HordeAForme3, NUP_HordeAForme4, NUP_HordeAForme5, + NUP_HordeBForme1, NUP_HordeBForme2, NUP_HordeBForme3, NUP_HordeBForme4, NUP_HordeBForme5, + NUP_HordeCForme1, NUP_HordeCForme2, NUP_HordeCForme3, NUP_HordeCForme4, NUP_HordeCForme5, + ]; + formlist = + [ + "Unown-A - 0", + "Unown-B - 1", + "Unown-C - 2", + "Unown-D - 3", + "Unown-E - 4", + "Unown-F - 5", + "Unown-G - 6", + "Unown-H - 7", + "Unown-I - 8", + "Unown-J - 9", + "Unown-K - 10", + "Unown-L - 11", + "Unown-M - 12", + "Unown-N - 13", + "Unown-O - 14", + "Unown-P - 15", + "Unown-Q - 16", + "Unown-R - 17", + "Unown-S - 18", + "Unown-T - 19", + "Unown-U - 20", + "Unown-V - 21", + "Unown-W - 22", + "Unown-X - 23", + "Unown-Y - 24", + "Unown-Z - 25", + "Unown-! - 26", + "Unown-? - 27", + "", + "Castform-Normal - 0", + "Castform-Sunny - 1", + "Castform-Rainy - 2", + "Castform-Snowy - 3", + "", + "Deoxys-Normal - 0", + "Deoxys-Attack - 1", + "Deoxys-Defense - 2", + "Deoxys-Speed - 3", + "", + "Burmy-Plant Cloak - 0", + "Burmy-Sandy Cloak - 1", + "Burmy-Trash Cloak - 2", + "", + "Wormadam-Plant Cloak - 0", + "Wormadam-Sandy Cloak - 1", + "Wormadam-Trash Cloak - 2", + "", + "Cherrim-Overcast - 0", + "Cherrim-Sunshine - 1", + "", + "Shellos-West Sea - 0", + "Shellos-East Sea - 1", + "", + "Gastrodon-West Sea - 0", + "Gastrodon-East Sea - 1", + "", + "Rotom-Normal - 0", + "Rotom-Heat - 1", + "Rotom-Wash - 2", + "Rotom-Frost - 3", + "Rotom-Fan - 4", + "Rotom-Mow - 5", + "", + "Giratina-Altered - 0", + "Giratina-Origin - 1", + "", + "Shaymin-Land - 0", + "Shaymin-Sky - 1", + "", + "Arceus-Normal - 0", + "Arceus-Fighting - 1", + "Arceus-Flying - 2", + "Arceus-Poison - 3", + "Arceus-Ground - 4", + "Arceus-Rock - 5", + "Arceus-Bug - 6", + "Arceus-Ghost - 7", + "Arceus-Steel - 8", + "Arceus-Fire - 9", + "Arceus-Water - 10", + "Arceus-Grass - 11", + "Arceus-Electric - 12", + "Arceus-Psychic - 13", + "Arceus-Ice - 14", + "Arceus-Dragon - 15", + "Arceus-Dark - 16", + "Arceus-Fairy - 17", + "", + "Basculin-Red-Striped - 0", + "Basculin-Blue-Striped - 1", + "", + "Darmanitan-Standard Mode - 0", + "Darmanitan-Zen Mode - 1", + "", + "Deerling-Spring - 0", + "Deerling-Summer - 1", + "Deerling-Autumn - 2", + "Deerling-Winter - 3", + "", + "Sawsbuck-Spring - 0", + "Sawsbuck-Summer - 1", + "Sawsbuck-Autumn - 2", + "Sawsbuck-Winter - 3", + "", + "Tornadus-Incarnate - 0", + "Tornadus-Therian - 1", + "", + "Thundurus-Incarnate - 0", + "Thundurus-Therian - 1", + "", + "Landorus-Incarnate - 0", + "Landorus-Therian - 1", + "", + "Kyurem-Normal - 0", + "Kyurem-White - 1", + "Kyurem-Black - 2", + "", + "Keldeo-Ordinary - 0", + "Keldeo-Resolute - 1", + "", + "Meloetta-Aria - 0", + "Meloetta-Pirouette - 1", + "", + "Genesect-Normal - 0", + "Genesect-Water - 1", + "Genesect-Electric - 2", + "Genesect-Fire - 3", + "Genesect-Ice - 4", + "", + "Flabebe-Red - 0", + "Flabebe-Yellow - 1", + "Flabebe-Orange - 2", + "Flabebe-Blue - 3", + "Flabebe-White - 4", + "", + "Floette-Red - 0", + "Floette-Yellow - 1", + "Floette-Orange - 2", + "Floette-Blue - 3", + "Floette-White - 4", + "Floette-Eternal - 5", + "", + "Florges-Red - 0", + "Florges-Yellow - 1", + "Florges-Orange - 2", + "Florges-Blue - 3", + "Florges-White - 4", + "", + "Furfrou-Natural - 0", + "Furfrou-Heart - 1", + "Furfrou-Star - 2", + "Furfrou-Diamond - 3", + "Furfrou-Deputante - 4", + "Furfrou-Matron - 5", + "Furfrou-Dandy - 6", + "Furfrou-La Reine- 7", + "Furfrou-Kabuki - 8", + "Furfrou-Pharaoh - 9", + "", + "Aegislash-Shield - 0", + "Aegislash-Blade - 0", + "", + "Vivillon-Icy Snow - 0", + "Vivillon-Polar - 1", + "Vivillon-Tundra - 2", + "Vivillon-Continental - 3", + "Vivillon-Garden - 4", + "Vivillon-Elegant - 5", + "Vivillon-Meadow - 6", + "Vivillon-Modern - 7", + "Vivillon-Marine - 8", + "Vivillon-Archipelago - 9", + "Vivillon-High-Plains - 10", + "Vivillon-Sandstorm - 11", + "Vivillon-River - 12", + "Vivillon-Monsoon - 13", + "Vivillon-Savannah - 14", + "Vivillon-Sun - 15", + "Vivillon-Ocean - 16", + "Vivillon-Jungle - 17", + "Vivillon-Fancy - 18", + "Vivillon-Poké Ball - 19", + "", + "Pumpkaboo-Small - 0", + "Pumpkaboo-Average - 1", + "Pumpkaboo-Large - 2", + "Pumpkaboo-Super - 3", + "", + "Gourgeist-Small - 0", + "Gourgeist-Average - 1", + "Gourgeist-Large - 2", + "Gourgeist-Super - 3", + "", + "Hoopa-Confined - 0", + "Hoopa-Unbound - 1", + "", + "Megas-Normal - 0", + "Megas-Mega (X) - 1", + "Megas-Mega (Y) - 2", + ]; + RSWE_Load(); + OpenQuick(Directory.GetFiles("encdata")); + RandSettings.GetFormSettings(this, GB_Tweak.Controls); + } + + private readonly ComboBox[] All_Species; + private readonly NumericUpDown[] All_Min; + private readonly NumericUpDown[] All_Max; + private readonly NumericUpDown[] All_Forms; + private string[] specieslist = []; + private readonly string[] formlist = []; + private string[] metRS_00000 = []; + private byte[] zonedata = []; + private byte[] decStorage = []; + private string[] LocationNames = []; + private string[] encdatapaths; + private string[] filepaths; + + private void RSWE_Load() + { + specieslist = Main.Config.GetText(TextName.SpeciesNames); + specieslist[0] = "---"; + + CB_FormeList.Items.AddRange(formlist); + + // Clear & Reset Data + for (int i = 0; i < All_Max.Length; i++) + { + All_Species[i].Items.Clear(); + All_Species[i].Items.AddRange(specieslist); + All_Species[i].SelectedIndex = 0; + } + + //Preload Tabs + PreloadTabs(); + } + + internal static uint Random32() => Util.Random32(); + + private void OpenQuick(string[] encdata) + { + encdatapaths = encdata; + Array.Sort(encdatapaths); + filepaths = new string[encdatapaths.Length - 2]; + Array.Copy(encdatapaths, 2, filepaths, 0, filepaths.Length); + metRS_00000 = Main.Config.GetText(TextName.metlist_000000); + zonedata = File.ReadAllBytes(encdatapaths[0]); + decStorage = File.ReadAllBytes(encdatapaths[1]); + LocationNames = new string[filepaths.Length]; + for (int f = 0; f < filepaths.Length; f++) + { + string name = Path.GetFileNameWithoutExtension(filepaths[f]); + + int LocationNum = Convert.ToInt16(name[4..]); + int indNum = (LocationNum * 56) + 0x1C; + string LocationName = metRS_00000[zonedata[indNum] + (0x100 * (zonedata[indNum + 1] & 1))]; + LocationNames[f] = LocationNum.ToString("000") + " - " + LocationName; + } + CB_LocationID.DataSource = LocationNames; + B_Save.Enabled = B_Dump.Enabled = B_Randomize.Enabled = true; + CB_LocationID.Enabled = true; + CB_LocationID_SelectedIndexChanged(null, null); + } + + private void ParseEncounterTable(byte[] ed) + { + // Encounter Slot Counts per Encounter Type + /* OLD XY// 12,12,12,12,12 + // 5,5 + // 3,3,3 + // 5,5,5,*/ + + // ORAS + //12 grass + //12 tall grass + //3 Swarm + //5 surf + //5 rock smash + //3 old rod + //3 good rod + //3 super rod + //5 horde 60 + //5 horde 35 + //5 horde 5 + byte[] slot = new byte[4]; + const int offset = 0x0; + + // read data into form + for (int i = 0; i < All_Max.Length; i++) + { + // Fetch Data + Array.Copy(ed, offset + (i * 4), slot, 0, 4); + int[] data = ParseSlot(slot); + + // Load Data + All_Species[i].SelectedIndex = data[0]; + All_Forms[i].Value = data[1]; + All_Min[i].Value = data[2]; + All_Max[i].Value = data[3]; + } + +#if DUMPER + int r = CB_LocationID.SelectedIndex * 56 + 0x1C; + int loc = zonedata[r] + 0x100 * (zonedata[r + 1] & 1); + byte[] edata = BitConverter.GetBytes((ushort) loc).Concat(ed).ToArray(); + + if (!Directory.Exists("encounter_ao")) + Directory.CreateDirectory("encounter_ao"); + File.WriteAllBytes(Path.Combine("encounter_ao", loc.ToString("000") + CB_LocationID.SelectedIndex.ToString("000") + ".bin"), edata); +#endif + } + + private static int[] ParseSlot(byte[] slot) // Parse Slot to Bytes + { + int index = BitConverter.ToUInt16(slot, 0) & 0x7FF; + int f = BitConverter.ToUInt16(slot, 0) >> 11; + int lo = slot[2]; + int hi = slot[3]; + int[] data = [index, f, lo, hi]; + return data; + } + + public string ConvertSlotToString(byte[] slot) + { + int index = BitConverter.ToUInt16(slot, 0) & 0x7FF; + if (index == 0) return ""; + int form = BitConverter.ToUInt16(slot, 0) >> 11; + int min = slot[2]; + int max = slot[3]; + string species = specieslist[index]; + if (form > 0) species += "-" + form; + return species + ',' + min + ',' + max + ','; + } + + private static byte[] MakeSlotData(int species, int f, int lo, int hi) + { + byte[] data = new byte[4]; + Array.Copy(BitConverter.GetBytes(Convert.ToUInt16((Convert.ToUInt16(f) << 11) + Convert.ToUInt16(species))), 0, data, 0, 2); + data[2] = (byte)lo; + data[3] = (byte)hi; + return data; + } + + private static byte[] ConcatArrays(byte[] b1, byte[] b2) + { + return [..b1, ..b2]; + } + + private void CB_LocationID_SelectedIndexChanged(object sender, EventArgs e) + { + int f = CB_LocationID.SelectedIndex; + + int offset; + using (var s = File.OpenRead(filepaths[f])) + using (var br = new BinaryReader(s)) + { + br.BaseStream.Seek(0x10, SeekOrigin.Begin); + offset = br.ReadInt32() + 0xE; + int ofs2 = br.ReadInt32(); + int length = ofs2 - offset; + if (length < 0xF6) //no encounters in this map + { + ClearData(); + return; + } + } + + byte[] filedata = File.ReadAllBytes(filepaths[f]); + + byte[] encounterdata = new byte[0xF6]; + Array.Copy(filedata, offset, encounterdata, 0, 0xF6); + ParseEncounterTable(encounterdata); + } + + // Utility + private bool NeedsInsertion(int mapID) + { + if (mapID != 535) // Hardcoded, bad, I know. + return BitConverter.ToUInt32(decStorage, (mapID + 2) * 4) == BitConverter.ToUInt32(decStorage, (mapID + 1) * 4); + return BitConverter.ToUInt32(decStorage, (mapID + 1) * 4) == decStorage.Length; + } + + private bool HasData() + { + for (int i = 0; i < All_Max.Length; i++) + { + if (All_Species[i].SelectedIndex > 0) { return true; } + if (All_Forms[i].Value > 0) { return true; } + if (All_Min[i].Value > 0) { return true; } + if (All_Max[i].Value > 0) { return true; } + } + return false; + } + + private void PreloadTabs() + { + for (int i = 0; i < TabControl_EncounterData.TabPages.Count; i++) + TabControl_EncounterData.TabPages[i].Show(); + TabControl_EncounterData.TabPages[0].Show(); + } + + private void ClearData() + { + for (int i = 0; i < All_Max.Length; i++) + { + // Load Data + All_Species[i].SelectedIndex = 0; + All_Forms[i].Value = 0; + All_Min[i].Value = 0; + All_Max[i].Value = 0; + } + } + + private byte[] MakeEncounterData() + { + byte[] ed = new byte[0x102]; + const int offset = 0x0; + for (int i = 0; i < All_Max.Length; i++) + { + byte[] data = MakeSlotData(All_Species[i].SelectedIndex, (int)All_Forms[i].Value, (int)All_Min[i].Value, (int)All_Max[i].Value); + Array.Copy(data, 0, ed, offset + (i * 4), 4); + } + return ed; + } + + private string GetEncDataString() + { + string toret = "======" + Environment.NewLine; + toret += "Map " + CB_LocationID.Text + "" + Environment.NewLine; + toret += "======" + Environment.NewLine; + if (HasData()) + { + toret += "Grass: " + label31.Text + " - " + CB_Grass1.Text + " (Level " + NUP_GrassMin1.Text + ", Forme: " + NUP_GrassForme1.Text + "), " + label32.Text + " - " + CB_Grass2.Text + " (Level " + NUP_GrassMin2.Text + ", Forme: " + NUP_GrassForme2.Text + "), " + label33.Text + " - " + CB_Grass3.Text + " (Level " + NUP_GrassMin3.Text + ", Forme: " + NUP_GrassForme3.Text + "), " + label34.Text + " - " + CB_Grass4.Text + " (Level " + NUP_GrassMin4.Text + ", Forme: " + NUP_GrassForme4.Text + "), " + label35.Text + " - " + CB_Grass5.Text + " (Level " + NUP_GrassMin5.Text + ", Forme: " + NUP_GrassForme5.Text + "), " + label36.Text + " - " + CB_Grass6.Text + " (Level " + NUP_GrassMin6.Text + ", Forme: " + NUP_GrassForme6.Text + "), " + label37.Text + " - " + CB_Grass7.Text + " (Level " + NUP_GrassMin7.Text + ", Forme: " + NUP_GrassForme7.Text + "), " + label38.Text + " - " + CB_Grass8.Text + " (Level " + NUP_GrassMin8.Text + ", Forme: " + NUP_GrassForme8.Text + "), " + label39.Text + " - " + CB_Grass9.Text + " (Level " + NUP_GrassMin9.Text + ", Forme: " + NUP_GrassForme9.Text + "), " + label40.Text + " - " + CB_Grass10.Text + " (Level " + NUP_GrassMin10.Text + ", Forme: " + NUP_GrassForme10.Text + "), " + label42.Text + " - " + CB_Grass11.Text + " (Level " + NUP_GrassMin11.Text + ", Forme: " + NUP_GrassForme11.Text + "), " + label41.Text + " - " + CB_Grass12.Text + " (Level " + NUP_GrassMin12.Text + ", Forme: " + NUP_GrassForme12.Text + ")" + Environment.NewLine; + + toret += "Tall Grass: " + label10.Text + " - " + CB_TallGrass1.Text + " (Level " + NUP_TallGrassMin1.Text + ", Forme: " + NUP_TallGrassForme1.Text + "), " + label21.Text + " - " + CB_TallGrass2.Text + " (Level " + NUP_TallGrassMin2.Text + ", Forme: " + NUP_TallGrassForme2.Text + "), " + label20.Text + " - " + CB_TallGrass3.Text + " (Level " + NUP_TallGrassMin3.Text + ", Forme: " + NUP_TallGrassForme3.Text + "), " + label19.Text + " - " + CB_TallGrass4.Text + " (Level " + NUP_TallGrassMin4.Text + ", Forme: " + NUP_TallGrassForme4.Text + "), " + label18.Text + " - " + CB_TallGrass5.Text + " (Level " + NUP_TallGrassMin5.Text + ", Forme: " + NUP_TallGrassForme5.Text + "), " + label17.Text + " - " + CB_TallGrass6.Text + " (Level " + NUP_TallGrassMin6.Text + ", Forme: " + NUP_TallGrassForme6.Text + "), " + label16.Text + " - " + CB_TallGrass7.Text + " (Level " + NUP_TallGrassMin7.Text + ", Forme: " + NUP_TallGrassForme7.Text + "), " + label15.Text + " - " + CB_TallGrass8.Text + " (Level " + NUP_TallGrassMin8.Text + ", Forme: " + NUP_TallGrassForme8.Text + "), " + label14.Text + " - " + CB_TallGrass9.Text + " (Level " + NUP_TallGrassMin9.Text + ", Forme: " + NUP_TallGrassForme9.Text + "), " + label13.Text + " - " + CB_TallGrass10.Text + " (Level " + NUP_TallGrassMin10.Text + ", Forme: " + NUP_TallGrassForme10.Text + "), " + label12.Text + " - " + CB_TallGrass11.Text + " (Level " + NUP_TallGrassMin11.Text + ", Forme: " + NUP_TallGrassForme11.Text + "), " + label11.Text + " - " + CB_TallGrass12.Text + " (Level " + NUP_TallGrassMin12.Text + ", Forme: " + NUP_TallGrassForme12.Text + ")" + Environment.NewLine; + + toret += "Rock Smash: " + label111.Text + " - " + CB_RockSmash1.Text + " (Level " + NUP_RockSmashMin1.Text + ", Forme: " + NUP_RockSmashForme1.Text + "), " + label110.Text + " - " + CB_RockSmash2.Text + " (Level " + NUP_RockSmashMin2.Text + ", Forme: " + NUP_RockSmashForme2.Text + "), " + label109.Text + " - " + CB_RockSmash3.Text + " (Level " + NUP_RockSmashMin3.Text + ", Forme: " + NUP_RockSmashForme3.Text + "), " + label108.Text + " - " + CB_RockSmash4.Text + " (Level " + NUP_RockSmashMin4.Text + ", Forme: " + NUP_RockSmashForme4.Text + "), " + label107.Text + " - " + CB_RockSmash5.Text + " (Level " + NUP_RockSmashMin5.Text + ", Forme: " + NUP_RockSmashForme5.Text + ")" + Environment.NewLine; + + toret += "Swarm: " + label70.Text + " - " + CB_Swarm1.Text + " (Level " + NUP_SwarmMin1.Text + ", Forme: " + NUP_SwarmForme1.Text + "), " + label81.Text + " - " + CB_Swarm2.Text + " (Level " + NUP_SwarmMin2.Text + ", Forme: " + NUP_SwarmForme2.Text + "), " + label80.Text + " - " + CB_Swarm3.Text + " (Level " + NUP_SwarmMin3.Text + ", Forme: " + NUP_SwarmForme3.Text + ")" + Environment.NewLine; + + toret += "Old Rod: " + label43.Text + " - " + CB_Old1.Text + " (Level " + NUP_OldMin1.Text + ", Forme: " + NUP_OldForme1.Text + "), " + label44.Text + " - " + CB_Old2.Text + " (Level " + NUP_OldMin2.Text + ", Forme: " + NUP_OldForme2.Text + "), " + label45.Text + " - " + CB_Old3.Text + " (Level " + NUP_OldMin3.Text + ", Forme: " + NUP_OldForme3.Text + ")" + Environment.NewLine; + + toret += "Good Rod: " + label29.Text + " - " + CB_Good1.Text + " (Level " + NUP_GoodMin1.Text + ", Forme: " + NUP_GoodForme1.Text + "), " + label28.Text + " - " + CB_Good2.Text + " (Level " + NUP_GoodMin2.Text + ", Forme: " + NUP_GoodForme2.Text + "), " + label27.Text + " - " + CB_Good3.Text + " (Level " + NUP_GoodMin3.Text + ", Forme: " + NUP_GoodForme3.Text + ")" + Environment.NewLine; + + toret += "Super Rod: " + label99.Text + " - " + CB_Super1.Text + " (Level " + NUP_SuperMin1.Text + ", Forme: " + NUP_SuperForme1.Text + "), " + label98.Text + " - " + CB_Super2.Text + " (Level " + NUP_SuperMin2.Text + ", Forme: " + NUP_SuperForme2.Text + "), " + label49.Text + " - " + CB_Super3.Text + " (Level " + NUP_SuperMin3.Text + ", Forme: " + NUP_SuperForme3.Text + ")" + Environment.NewLine; + + toret += "Surf: " + label120.Text + " - " + CB_Surf1.Text + " (Level " + NUP_SurfMin1.Text + ", Forme: " + NUP_SurfForme1.Text + "), " + label119.Text + " - " + CB_Surf2.Text + " (Level " + NUP_SurfMin2.Text + ", Forme: " + NUP_SurfForme2.Text + "), " + label118.Text + " - " + CB_Surf3.Text + " (Level " + NUP_SurfMin3.Text + ", Forme: " + NUP_SurfForme3.Text + "), " + label117.Text + " - " + CB_Surf4.Text + " (Level " + NUP_SurfMin4.Text + ", Forme: " + NUP_SurfForme4.Text + "), " + label116.Text + " - " + CB_Surf5.Text + " (Level " + NUP_SurfMin5.Text + ", Forme: " + NUP_SurfForme5.Text + ")" + Environment.NewLine; + + toret += "Horde A (60%): " + CB_HordeA1.Text + " (Level " + NUP_HordeAMin1.Text + ", Forme: " + NUP_HordeAForme1.Text + "), " + CB_HordeA2.Text + " (Level " + NUP_HordeAMin2.Text + ", Forme: " + NUP_HordeAForme2.Text + "), " + CB_HordeA3.Text + " (Level " + NUP_HordeAMin3.Text + ", Forme: " + NUP_HordeAForme3.Text + "), " + CB_HordeA4.Text + " (Level " + NUP_HordeAMin4.Text + ", Forme: " + NUP_HordeAForme4.Text + "), " + CB_HordeA5.Text + " (Level " + NUP_HordeAMin5.Text + ", Forme: " + NUP_HordeAForme5.Text + ")" + Environment.NewLine; + + toret += "Horde B (35%): " + CB_HordeB1.Text + " (Level " + NUP_HordeBMin1.Text + ", Forme: " + NUP_HordeBForme1.Text + "), " + CB_HordeB2.Text + " (Level " + NUP_HordeBMin2.Text + ", Forme: " + NUP_HordeBForme2.Text + "), " + CB_HordeB3.Text + " (Level " + NUP_HordeBMin3.Text + ", Forme: " + NUP_HordeBForme3.Text + "), " + CB_HordeB4.Text + " (Level " + NUP_HordeBMin4.Text + ", Forme: " + NUP_HordeBForme4.Text + "), " + CB_HordeB5.Text + " (Level " + NUP_HordeBMin5.Text + ", Forme: " + NUP_HordeBForme5.Text + ")" + Environment.NewLine; + + toret += "Horde C (5%): " + CB_HordeC1.Text + " (Level " + NUP_HordeCMin1.Text + ", Forme: " + NUP_HordeCForme1.Text + "), " + CB_HordeC2.Text + " (Level " + NUP_HordeCMin2.Text + ", Forme: " + NUP_HordeCForme2.Text + "), " + CB_HordeC3.Text + " (Level " + NUP_HordeCMin3.Text + ", Forme: " + NUP_HordeCForme3.Text + "), " + CB_HordeC4.Text + " (Level " + NUP_HordeCMin4.Text + ", Forme: " + NUP_HordeCForme4.Text + "), " + CB_HordeC5.Text + " (Level " + NUP_HordeCMin5.Text + ", Forme: " + NUP_HordeCForme5.Text + ")" + Environment.NewLine + Environment.NewLine; + + toret = toret.Replace("--- (No Level)", "None"); + } + else + { + toret += "No encounters found." + Environment.NewLine + Environment.NewLine; + } + + return toret; + } + + // Operation + private void B_Dump_Click(object sender, EventArgs e) + { + string toret = ""; + for (int i = 0; i < 535; i++) //hardcoded map count. Yes, it's bad. No, I don't really care. + { + CB_LocationID.SelectedIndex = i; + string tdata = GetEncDataString(); + toret += tdata; + } + var savetxt = new SaveFileDialog { FileName = "Encounter Slots", Filter = "Text File|*.txt" }; + if (savetxt.ShowDialog() != DialogResult.OK) return; + + string path = savetxt.FileName; + File.WriteAllText(path, toret); + } + + private void B_Save_Click(object sender, EventArgs e) + { + int f = CB_LocationID.SelectedIndex; + string filepath = filepaths[f]; + if (NeedsInsertion(f)) + { + //To be implemented, eventually. + //Spoiler: I am actually probably not going to bother. + //Basically, just don't add encounters to a map that doesn't have any, and don't take away all encounters from a map that does have them. + } + else + { + int offset; + using (var s = File.OpenRead(filepaths[f])) + using (var br = new BinaryReader(s)) + { + br.BaseStream.Seek(0x10, SeekOrigin.Begin); + offset = br.ReadInt32() + 0xE; + } + byte[] filedata = File.ReadAllBytes(filepaths[f]); + byte[] preoffset; + if (offset < filedata.Length) + { + preoffset = new byte[offset]; + Array.Copy(filedata, preoffset, offset); + } + else + { + preoffset = new byte[filedata.Length]; + Array.Copy(filedata, preoffset, filedata.Length); + //overwrite offset so the game actually looks at the data + Array.Copy(BitConverter.GetBytes(Convert.ToUInt32(filedata.Length)), 0, preoffset, 0x10, 4); + } + byte[] encdata = []; + if (HasData()) { encdata = MakeEncounterData(); } + byte[] newdata = ConcatArrays(preoffset, encdata); + File.WriteAllBytes(filepath, newdata); + //Also write to 537.EN (decStorage) + int ENOfs = BitConverter.ToInt32(decStorage, (f + 1) * 4) + 0xE; + encdata = MakeEncounterData(); + Array.Copy(encdata, 0x0, decStorage, ENOfs, 0xF4); //copy encounter tables to EN 2pack storage + File.WriteAllBytes(encdatapaths[1], decStorage); + } + } + + // Randomization + private void B_Randomize_Click(object sender, EventArgs e) + { + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomize all? Cannot undo.", "Double check Randomization settings in the Horde tab.") != DialogResult.Yes) return; + + Enabled = false; + + // Calculate % diff we will apply to each level + decimal leveldiff = NUD_LevelAmp.Value; + + // Nonrepeating List Start + var rand = new SpeciesRandomizer(Main.Config) + { + G1 = CHK_G1.Checked, + G2 = CHK_G2.Checked, + G3 = CHK_G3.Checked, + G4 = CHK_G4.Checked, + G5 = CHK_G5.Checked, + G6 = CHK_G6.Checked, + + L = CHK_L.Checked, + E = CHK_E.Checked, + Shedinja = false, + + rBST = CHK_BST.Checked, + }; + rand.Initialize(); + + int[] slotArray = Enumerable.Range(0, All_Max.Length).Select(a => a).ToArray(); + + for (int i = 0; i < CB_LocationID.Items.Count; i++) // for every location + { + CB_LocationID.SelectedIndex = i; + if (!HasData()) continue; // Don't randomize if doesn't have data. + + // Assign Levels + if (CHK_Level.Checked) + { + for (int l = 0; l < All_Max.Length; l++) + All_Min[l].Value = All_Max[l].Value = All_Max[l].Value <= 1 ? All_Max[l].Value : Math.Max(1, Math.Min(100, (int)(leveldiff * All_Max[l].Value))); + } + + // Get a new list of Pokemon so that DexNav does not crash. + int[] list = new int[All_Max.Length]; + int used = 19; + + // Count up how many slots are active. + for (int s = 0; s < All_Max.Length; s++) + { + if (All_Species[s].SelectedIndex > 0) + list[s] = All_Species[s].SelectedIndex; + } + + // At most 18, but don't chew if there's only a few slots. + int cons = list.Count(a => a != 0); + int[] RandomList = new int[cons > 18 ? 18 - (cons / 8) : cons]; + + // Fill Location List + for (int s = 0; s < RandomList.Length; s++) + RandomList[s] = rand.GetRandomSpecies(All_Species[s].SelectedIndex); + + // Assign Slots + while (used < RandomList.Distinct().Count() || used > 18) // Can just arbitrarily assign slots. + { + Util.Shuffle(slotArray); + for (int s = 0; s < All_Max.Length; s++) + { + int slot = slotArray[s]; + if (All_Species[slot].SelectedIndex != 0) // If the slot is in use + list[slot] = RandomList[Util.Rand.Next(0, RandomList.Length)]; + } + used = CountUnique(list); + if (used != RandomList.Length) + ShuffleSlots(ref list); + used = CountUnique(list); + } + // If Distinct Hordes are selected, homogenize + int hordeslot = 0; + if (CHK_HomogeneousHordes.Checked) + { + for (int slot = All_Max.Length - 15; slot < All_Max.Length; slot++) + { + list[slot] = list[slot - (hordeslot % 5)]; + hordeslot++; + } + } + + // Fill Slots + for (int slot = 0; slot < All_Max.Length; slot++) + { + if (All_Species[slot].SelectedIndex != 0) + { + All_Species[slot].SelectedIndex = list[slot]; + SetRandomForm(slot, All_Species[slot].SelectedIndex); + } + } + + B_Save_Click(sender, e); + } + Enabled = true; + WinFormsUtil.Alert("Randomized all Wild Encounters according to specification!", "Press the Dump Tables button to view the new Wild Encounter information!"); + } + + private static int CountUnique(int[] list) + { + int used = 0; + used += list.Skip(0).Take(12).Distinct().Count(a => a != 0); + used += list.Skip(12).Take(12).Distinct().Count(a => a != 0); + used += list.Skip(24).Take(3).Distinct().Count(a => a != 0); + used += list.Skip(27).Take(5).Distinct().Count(a => a != 0); + used += list.Skip(32).Take(5).Distinct().Count(a => a != 0); + used += list.Skip(37).Take(3).Distinct().Count(a => a != 0); + used += list.Skip(40).Take(3).Distinct().Count(a => a != 0); + used += list.Skip(43).Take(3).Distinct().Count(a => a != 0); + used += list.Skip(46).Take(15).Distinct().Count(a => a != 0); + return used; + } + + private void SetRandomForm(int slot, int species) + { + if (CHK_MegaForm.Checked && Main.SpeciesStat[species].FormeCount > 1 && Legal.Mega_ORAS.Contains((ushort)species)) + All_Forms[slot].Value = Random32() % Main.SpeciesStat[species].FormeCount; // Slot-Random + else if (species is 666 or 665 or 664) // Vivillon + All_Forms[slot].Value = Random32() % 20; + else if (species == 386) // Deoxys + All_Forms[slot].Value = Random32() % 4; + else if (species == 201) // Unown + All_Forms[slot].Value = 31; + else if (species == 550) // Basculin + All_Forms[slot].Value = Random32() % 2; + else if (species is 412 or 413) // Wormadam + All_Forms[slot].Value = Random32() % 3; + else if (species is 422 or 423) // Gastrodon + All_Forms[slot].Value = Random32() % 2; + else if (species is 585 or 586) // Sawsbuck + All_Forms[slot].Value = Random32() % 4; + else if (species is 669 or 671) // Flabebe/Florges + All_Forms[slot].Value = Random32() % 5; + else if (species == 670) // Floette + All_Forms[slot].Value = Random32() % 6; + else if (species is 710 or 711) // Pumpkaboo + All_Forms[slot].Value = Random32() % 4; + else + All_Forms[slot].Value = 0; + } + + private static void ShuffleSlots(ref int[] list) + { + int[] input = (int[])list.Clone(); + // int rawct = input.Distinct().Count(a => a != 0); + // Initialize + int[] slotset = [0, 12, 24, 27, 32, 37, 40, 43, 46]; + int[] slotlen = [12, 12, 3, 5, 5, 3, 3, 3, 5 + 5 + 5]; + int[][] slotdata = new int[slotset.Length][]; + for (int i = 0; i < slotset.Length; i++) + slotdata[i] = list.Skip(slotset[i]).Take(slotlen[i]).ToArray(); + + int used = CountUnique(list); + // Iterate + while (used > 18) + { + for (int n = 0; n <= 20; n++) + { + if (n == 20) + { list = (int[])input.Clone(); continue; } // Reset and try again (shuffle failed) + for (int i = 0; i < slotdata.Length; i++) + { + for (int j = 0; j < slotdata[i].Length; j++) + { + int data = slotdata[i][j]; + if (data == 0) continue; + for (int s = 0; s < slotdata.Length; s++) + { + if (s == i) continue; + if (!slotdata[s].Contains(data)) continue; + + int z = Array.LastIndexOf(slotdata[s], data); + int next = (z + 1 + Util.Rand.Next(slotdata[s].Length - 1)) % slotdata[s].Length; + int donor = slotdata[s][next]; + if (donor == 0) continue; + if (donor != data) + Swap(ref slotdata[s][next], ref slotdata[i][j]); + } + } + } + int[] temp = slotdata[0]; + for (int i = 1; i < slotdata.Length; i++) + temp = [.. temp, .. slotdata[i]]; + list = [.. temp]; + used = CountUnique(list); + if (used < 18) break; + } + } + } + + private static void Swap(ref int a1, ref int a2) + { + var s1 = a1; var s2 = a2; + a2 = s1; a1 = s2; + } + + private void ModifyLevels(object sender, EventArgs e) + { + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Modify all current Level ranges?", "Cannot undo.") != DialogResult.Yes) return; + + // Disable Interface while modifying + Enabled = false; + + // Calculate % diff we will apply to each level + decimal leveldiff = NUD_LevelAmp.Value; + + // Cycle through each location to modify levels + for (int i = 0; i < CB_LocationID.Items.Count; i++) // for every location + { + // Load location + CB_LocationID.SelectedIndex = i; + + // Amp Levels + for (int l = 0; l < All_Max.Length; l++) + { + if (All_Min[l].Value > 1) + All_Min[l].Value = All_Max[l].Value = Randomizer.GetModifiedLevel((int)All_Max[l].Value, leveldiff); + } + + // Save Changes + B_Save_Click(sender, e); + } + // Enable Interface... modification complete. + Enabled = true; + WinFormsUtil.Alert("Modified all Level ranges according to specification!", "Press the Dump Tables button to view the new Level ranges!"); + } + + private void RSWE_FormClosing(object sender, FormClosingEventArgs e) + { + RandSettings.SetFormSettings(this, GB_Tweak.Controls); + } +} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/RSWE.resx b/pk3DS.WinForms/Subforms/Gen6/RSWE.resx similarity index 100% rename from pk3DS/Subforms/Gen6/RSWE.resx rename to pk3DS.WinForms/Subforms/Gen6/RSWE.resx diff --git a/pk3DS.WinForms/Subforms/Gen6/StarterEditor6.Designer.cs b/pk3DS.WinForms/Subforms/Gen6/StarterEditor6.Designer.cs new file mode 100644 index 0000000000..a18cafac29 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/StarterEditor6.Designer.cs @@ -0,0 +1,572 @@ +namespace pk3DS.WinForms; + +partial class StarterEditor6 +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.PB_G1_0 = new System.Windows.Forms.PictureBox(); + this.CB_G1_0 = new System.Windows.Forms.ComboBox(); + this.CB_G1_1 = new System.Windows.Forms.ComboBox(); + this.PB_G1_1 = new System.Windows.Forms.PictureBox(); + this.CB_G1_2 = new System.Windows.Forms.ComboBox(); + this.PB_G1_2 = new System.Windows.Forms.PictureBox(); + this.CB_G2_2 = new System.Windows.Forms.ComboBox(); + this.PB_G2_2 = new System.Windows.Forms.PictureBox(); + this.CB_G2_1 = new System.Windows.Forms.ComboBox(); + this.PB_G2_1 = new System.Windows.Forms.PictureBox(); + this.CB_G2_0 = new System.Windows.Forms.ComboBox(); + this.PB_G2_0 = new System.Windows.Forms.PictureBox(); + this.CB_G3_2 = new System.Windows.Forms.ComboBox(); + this.PB_G3_2 = new System.Windows.Forms.PictureBox(); + this.CB_G3_1 = new System.Windows.Forms.ComboBox(); + this.PB_G3_1 = new System.Windows.Forms.PictureBox(); + this.CB_G3_0 = new System.Windows.Forms.ComboBox(); + this.PB_G3_0 = new System.Windows.Forms.PictureBox(); + this.CB_G4_2 = new System.Windows.Forms.ComboBox(); + this.PB_G4_2 = new System.Windows.Forms.PictureBox(); + this.CB_G4_1 = new System.Windows.Forms.ComboBox(); + this.PB_G4_1 = new System.Windows.Forms.PictureBox(); + this.CB_G4_0 = new System.Windows.Forms.ComboBox(); + this.PB_G4_0 = new System.Windows.Forms.PictureBox(); + this.B_Save = new System.Windows.Forms.Button(); + this.B_Randomize = new System.Windows.Forms.Button(); + this.L_Set1 = new System.Windows.Forms.Label(); + this.L_Set3 = new System.Windows.Forms.Label(); + this.L_Set4 = new System.Windows.Forms.Label(); + this.L_Set2 = new System.Windows.Forms.Label(); + this.CHK_Gen = new System.Windows.Forms.CheckBox(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.CHK_E = new System.Windows.Forms.CheckBox(); + this.CHK_L = new System.Windows.Forms.CheckBox(); + this.CHK_BasicStarter = new System.Windows.Forms.CheckBox(); + this.B_Cancel = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.PB_G1_0)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_G1_1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_G1_2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_G2_2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_G2_1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_G2_0)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_G3_2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_G3_1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_G3_0)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_G4_2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_G4_1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_G4_0)).BeginInit(); + this.groupBox1.SuspendLayout(); + this.SuspendLayout(); + // + // PB_G1_0 + // + this.PB_G1_0.Location = new System.Drawing.Point(12, 20); + this.PB_G1_0.Name = "PB_G1_0"; + this.PB_G1_0.Size = new System.Drawing.Size(120, 90); + this.PB_G1_0.TabIndex = 440; + this.PB_G1_0.TabStop = false; + // + // CB_G1_0 + // + this.CB_G1_0.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_G1_0.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_G1_0.FormattingEnabled = true; + this.CB_G1_0.Location = new System.Drawing.Point(12, 116); + this.CB_G1_0.Name = "CB_G1_0"; + this.CB_G1_0.Size = new System.Drawing.Size(120, 21); + this.CB_G1_0.TabIndex = 441; + this.CB_G1_0.SelectedIndexChanged += new System.EventHandler(this.ChangeSpecies); + // + // CB_G1_1 + // + this.CB_G1_1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_G1_1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_G1_1.FormattingEnabled = true; + this.CB_G1_1.Location = new System.Drawing.Point(138, 116); + this.CB_G1_1.Name = "CB_G1_1"; + this.CB_G1_1.Size = new System.Drawing.Size(120, 21); + this.CB_G1_1.TabIndex = 443; + this.CB_G1_1.SelectedIndexChanged += new System.EventHandler(this.ChangeSpecies); + // + // PB_G1_1 + // + this.PB_G1_1.Location = new System.Drawing.Point(138, 20); + this.PB_G1_1.Name = "PB_G1_1"; + this.PB_G1_1.Size = new System.Drawing.Size(120, 90); + this.PB_G1_1.TabIndex = 442; + this.PB_G1_1.TabStop = false; + // + // CB_G1_2 + // + this.CB_G1_2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_G1_2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_G1_2.FormattingEnabled = true; + this.CB_G1_2.Location = new System.Drawing.Point(264, 116); + this.CB_G1_2.Name = "CB_G1_2"; + this.CB_G1_2.Size = new System.Drawing.Size(120, 21); + this.CB_G1_2.TabIndex = 445; + this.CB_G1_2.SelectedIndexChanged += new System.EventHandler(this.ChangeSpecies); + // + // PB_G1_2 + // + this.PB_G1_2.Location = new System.Drawing.Point(264, 20); + this.PB_G1_2.Name = "PB_G1_2"; + this.PB_G1_2.Size = new System.Drawing.Size(120, 90); + this.PB_G1_2.TabIndex = 444; + this.PB_G1_2.TabStop = false; + // + // CB_G2_2 + // + this.CB_G2_2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.CB_G2_2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_G2_2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_G2_2.FormattingEnabled = true; + this.CB_G2_2.Location = new System.Drawing.Point(264, 254); + this.CB_G2_2.Name = "CB_G2_2"; + this.CB_G2_2.Size = new System.Drawing.Size(120, 21); + this.CB_G2_2.TabIndex = 451; + this.CB_G2_2.SelectedIndexChanged += new System.EventHandler(this.ChangeSpecies); + // + // PB_G2_2 + // + this.PB_G2_2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.PB_G2_2.Location = new System.Drawing.Point(264, 158); + this.PB_G2_2.Name = "PB_G2_2"; + this.PB_G2_2.Size = new System.Drawing.Size(120, 90); + this.PB_G2_2.TabIndex = 450; + this.PB_G2_2.TabStop = false; + // + // CB_G2_1 + // + this.CB_G2_1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.CB_G2_1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_G2_1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_G2_1.FormattingEnabled = true; + this.CB_G2_1.Location = new System.Drawing.Point(138, 254); + this.CB_G2_1.Name = "CB_G2_1"; + this.CB_G2_1.Size = new System.Drawing.Size(120, 21); + this.CB_G2_1.TabIndex = 449; + this.CB_G2_1.SelectedIndexChanged += new System.EventHandler(this.ChangeSpecies); + // + // PB_G2_1 + // + this.PB_G2_1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.PB_G2_1.Location = new System.Drawing.Point(138, 158); + this.PB_G2_1.Name = "PB_G2_1"; + this.PB_G2_1.Size = new System.Drawing.Size(120, 90); + this.PB_G2_1.TabIndex = 448; + this.PB_G2_1.TabStop = false; + // + // CB_G2_0 + // + this.CB_G2_0.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.CB_G2_0.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_G2_0.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_G2_0.FormattingEnabled = true; + this.CB_G2_0.Location = new System.Drawing.Point(12, 254); + this.CB_G2_0.Name = "CB_G2_0"; + this.CB_G2_0.Size = new System.Drawing.Size(120, 21); + this.CB_G2_0.TabIndex = 447; + this.CB_G2_0.SelectedIndexChanged += new System.EventHandler(this.ChangeSpecies); + // + // PB_G2_0 + // + this.PB_G2_0.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.PB_G2_0.Location = new System.Drawing.Point(12, 158); + this.PB_G2_0.Name = "PB_G2_0"; + this.PB_G2_0.Size = new System.Drawing.Size(120, 90); + this.PB_G2_0.TabIndex = 446; + this.PB_G2_0.TabStop = false; + // + // CB_G3_2 + // + this.CB_G3_2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.CB_G3_2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_G3_2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_G3_2.FormattingEnabled = true; + this.CB_G3_2.Location = new System.Drawing.Point(672, 116); + this.CB_G3_2.Name = "CB_G3_2"; + this.CB_G3_2.Size = new System.Drawing.Size(120, 21); + this.CB_G3_2.TabIndex = 457; + this.CB_G3_2.Visible = false; + this.CB_G3_2.SelectedIndexChanged += new System.EventHandler(this.ChangeSpecies); + // + // PB_G3_2 + // + this.PB_G3_2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.PB_G3_2.Location = new System.Drawing.Point(672, 20); + this.PB_G3_2.Name = "PB_G3_2"; + this.PB_G3_2.Size = new System.Drawing.Size(120, 90); + this.PB_G3_2.TabIndex = 456; + this.PB_G3_2.TabStop = false; + this.PB_G3_2.Visible = false; + // + // CB_G3_1 + // + this.CB_G3_1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.CB_G3_1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_G3_1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_G3_1.FormattingEnabled = true; + this.CB_G3_1.Location = new System.Drawing.Point(546, 116); + this.CB_G3_1.Name = "CB_G3_1"; + this.CB_G3_1.Size = new System.Drawing.Size(120, 21); + this.CB_G3_1.TabIndex = 455; + this.CB_G3_1.Visible = false; + this.CB_G3_1.SelectedIndexChanged += new System.EventHandler(this.ChangeSpecies); + // + // PB_G3_1 + // + this.PB_G3_1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.PB_G3_1.Location = new System.Drawing.Point(546, 20); + this.PB_G3_1.Name = "PB_G3_1"; + this.PB_G3_1.Size = new System.Drawing.Size(120, 90); + this.PB_G3_1.TabIndex = 454; + this.PB_G3_1.TabStop = false; + this.PB_G3_1.Visible = false; + // + // CB_G3_0 + // + this.CB_G3_0.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.CB_G3_0.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_G3_0.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_G3_0.FormattingEnabled = true; + this.CB_G3_0.Location = new System.Drawing.Point(420, 116); + this.CB_G3_0.Name = "CB_G3_0"; + this.CB_G3_0.Size = new System.Drawing.Size(120, 21); + this.CB_G3_0.TabIndex = 453; + this.CB_G3_0.Visible = false; + this.CB_G3_0.SelectedIndexChanged += new System.EventHandler(this.ChangeSpecies); + // + // PB_G3_0 + // + this.PB_G3_0.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.PB_G3_0.Location = new System.Drawing.Point(420, 20); + this.PB_G3_0.Name = "PB_G3_0"; + this.PB_G3_0.Size = new System.Drawing.Size(120, 90); + this.PB_G3_0.TabIndex = 452; + this.PB_G3_0.TabStop = false; + this.PB_G3_0.Visible = false; + // + // CB_G4_2 + // + this.CB_G4_2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.CB_G4_2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_G4_2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_G4_2.FormattingEnabled = true; + this.CB_G4_2.Location = new System.Drawing.Point(672, 254); + this.CB_G4_2.Name = "CB_G4_2"; + this.CB_G4_2.Size = new System.Drawing.Size(120, 21); + this.CB_G4_2.TabIndex = 463; + this.CB_G4_2.Visible = false; + this.CB_G4_2.SelectedIndexChanged += new System.EventHandler(this.ChangeSpecies); + // + // PB_G4_2 + // + this.PB_G4_2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.PB_G4_2.Location = new System.Drawing.Point(672, 158); + this.PB_G4_2.Name = "PB_G4_2"; + this.PB_G4_2.Size = new System.Drawing.Size(120, 90); + this.PB_G4_2.TabIndex = 462; + this.PB_G4_2.TabStop = false; + this.PB_G4_2.Visible = false; + // + // CB_G4_1 + // + this.CB_G4_1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.CB_G4_1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_G4_1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_G4_1.FormattingEnabled = true; + this.CB_G4_1.Location = new System.Drawing.Point(546, 254); + this.CB_G4_1.Name = "CB_G4_1"; + this.CB_G4_1.Size = new System.Drawing.Size(120, 21); + this.CB_G4_1.TabIndex = 461; + this.CB_G4_1.Visible = false; + this.CB_G4_1.SelectedIndexChanged += new System.EventHandler(this.ChangeSpecies); + // + // PB_G4_1 + // + this.PB_G4_1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.PB_G4_1.Location = new System.Drawing.Point(546, 158); + this.PB_G4_1.Name = "PB_G4_1"; + this.PB_G4_1.Size = new System.Drawing.Size(120, 90); + this.PB_G4_1.TabIndex = 460; + this.PB_G4_1.TabStop = false; + this.PB_G4_1.Visible = false; + // + // CB_G4_0 + // + this.CB_G4_0.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.CB_G4_0.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_G4_0.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_G4_0.FormattingEnabled = true; + this.CB_G4_0.Location = new System.Drawing.Point(420, 254); + this.CB_G4_0.Name = "CB_G4_0"; + this.CB_G4_0.Size = new System.Drawing.Size(120, 21); + this.CB_G4_0.TabIndex = 459; + this.CB_G4_0.Visible = false; + this.CB_G4_0.SelectedIndexChanged += new System.EventHandler(this.ChangeSpecies); + // + // PB_G4_0 + // + this.PB_G4_0.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.PB_G4_0.Location = new System.Drawing.Point(420, 158); + this.PB_G4_0.Name = "PB_G4_0"; + this.PB_G4_0.Size = new System.Drawing.Size(120, 90); + this.PB_G4_0.TabIndex = 458; + this.PB_G4_0.TabStop = false; + this.PB_G4_0.Visible = false; + // + // B_Save + // + this.B_Save.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.B_Save.Location = new System.Drawing.Point(722, 308); + this.B_Save.Name = "B_Save"; + this.B_Save.Size = new System.Drawing.Size(75, 23); + this.B_Save.TabIndex = 464; + this.B_Save.Text = "Save"; + this.B_Save.UseVisualStyleBackColor = true; + this.B_Save.Click += new System.EventHandler(this.B_Save_Click); + // + // B_Randomize + // + this.B_Randomize.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.B_Randomize.Location = new System.Drawing.Point(22, 299); + this.B_Randomize.Name = "B_Randomize"; + this.B_Randomize.Size = new System.Drawing.Size(87, 35); + this.B_Randomize.TabIndex = 466; + this.B_Randomize.Text = "Randomize\nAll Starters"; + this.B_Randomize.UseVisualStyleBackColor = true; + this.B_Randomize.Click += new System.EventHandler(this.B_Randomize_Click); + // + // L_Set1 + // + this.L_Set1.AutoSize = true; + this.L_Set1.ForeColor = System.Drawing.Color.Red; + this.L_Set1.Location = new System.Drawing.Point(9, 4); + this.L_Set1.Name = "L_Set1"; + this.L_Set1.Size = new System.Drawing.Size(32, 13); + this.L_Set1.TabIndex = 467; + this.L_Set1.Text = "Set 1"; + // + // L_Set3 + // + this.L_Set3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.L_Set3.AutoSize = true; + this.L_Set3.ForeColor = System.Drawing.Color.Green; + this.L_Set3.Location = new System.Drawing.Point(416, 4); + this.L_Set3.Name = "L_Set3"; + this.L_Set3.Size = new System.Drawing.Size(32, 13); + this.L_Set3.TabIndex = 468; + this.L_Set3.Text = "Set 3"; + this.L_Set3.Visible = false; + // + // L_Set4 + // + this.L_Set4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.L_Set4.AutoSize = true; + this.L_Set4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(192))))); + this.L_Set4.Location = new System.Drawing.Point(416, 142); + this.L_Set4.Name = "L_Set4"; + this.L_Set4.Size = new System.Drawing.Size(32, 13); + this.L_Set4.TabIndex = 469; + this.L_Set4.Text = "Set 4"; + this.L_Set4.Visible = false; + // + // L_Set2 + // + this.L_Set2.AutoSize = true; + this.L_Set2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(192))))); + this.L_Set2.Location = new System.Drawing.Point(9, 142); + this.L_Set2.Name = "L_Set2"; + this.L_Set2.Size = new System.Drawing.Size(32, 13); + this.L_Set2.TabIndex = 470; + this.L_Set2.Text = "Set 2"; + // + // CHK_Gen + // + this.CHK_Gen.AutoSize = true; + this.CHK_Gen.Location = new System.Drawing.Point(16, 15); + this.CHK_Gen.Name = "CHK_Gen"; + this.CHK_Gen.Size = new System.Drawing.Size(104, 17); + this.CHK_Gen.TabIndex = 471; + this.CHK_Gen.Text = "Keep Same Gen"; + this.CHK_Gen.UseVisualStyleBackColor = true; + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.CHK_E); + this.groupBox1.Controls.Add(this.CHK_L); + this.groupBox1.Controls.Add(this.CHK_BasicStarter); + this.groupBox1.Controls.Add(this.CHK_Gen); + this.groupBox1.Location = new System.Drawing.Point(124, 280); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(153, 77); + this.groupBox1.TabIndex = 473; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Randomizer Settings"; + // + // CHK_E + // + this.CHK_E.AutoSize = true; + this.CHK_E.Location = new System.Drawing.Point(16, 57); + this.CHK_E.Name = "CHK_E"; + this.CHK_E.Size = new System.Drawing.Size(98, 17); + this.CHK_E.TabIndex = 476; + this.CHK_E.Text = "Event Legends"; + this.CHK_E.UseVisualStyleBackColor = true; + // + // CHK_L + // + this.CHK_L.AutoSize = true; + this.CHK_L.Location = new System.Drawing.Point(16, 43); + this.CHK_L.Name = "CHK_L"; + this.CHK_L.Size = new System.Drawing.Size(98, 17); + this.CHK_L.TabIndex = 475; + this.CHK_L.Text = "Game Legends"; + this.CHK_L.UseVisualStyleBackColor = true; + // + // CHK_BasicStarter + // + this.CHK_BasicStarter.AutoSize = true; + this.CHK_BasicStarter.Checked = true; + this.CHK_BasicStarter.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_BasicStarter.Location = new System.Drawing.Point(16, 29); + this.CHK_BasicStarter.Name = "CHK_BasicStarter"; + this.CHK_BasicStarter.Size = new System.Drawing.Size(134, 17); + this.CHK_BasicStarter.TabIndex = 474; + this.CHK_BasicStarter.Text = "Basic Starter Pokémon"; + this.CHK_BasicStarter.UseVisualStyleBackColor = true; + // + // B_Cancel + // + this.B_Cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.B_Cancel.Location = new System.Drawing.Point(722, 330); + this.B_Cancel.Name = "B_Cancel"; + this.B_Cancel.Size = new System.Drawing.Size(75, 23); + this.B_Cancel.TabIndex = 465; + this.B_Cancel.Text = "Cancel"; + this.B_Cancel.UseVisualStyleBackColor = true; + this.B_Cancel.Click += new System.EventHandler(this.B_Cancel_Click); + // + // StarterEditor6 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(804, 352); + this.Controls.Add(this.groupBox1); + this.Controls.Add(this.L_Set2); + this.Controls.Add(this.L_Set4); + this.Controls.Add(this.L_Set3); + this.Controls.Add(this.L_Set1); + this.Controls.Add(this.B_Randomize); + this.Controls.Add(this.B_Cancel); + this.Controls.Add(this.B_Save); + this.Controls.Add(this.CB_G4_2); + this.Controls.Add(this.PB_G4_2); + this.Controls.Add(this.CB_G4_1); + this.Controls.Add(this.PB_G4_1); + this.Controls.Add(this.CB_G4_0); + this.Controls.Add(this.PB_G4_0); + this.Controls.Add(this.CB_G3_2); + this.Controls.Add(this.PB_G3_2); + this.Controls.Add(this.CB_G3_1); + this.Controls.Add(this.PB_G3_1); + this.Controls.Add(this.CB_G3_0); + this.Controls.Add(this.PB_G3_0); + this.Controls.Add(this.CB_G2_2); + this.Controls.Add(this.PB_G2_2); + this.Controls.Add(this.CB_G2_1); + this.Controls.Add(this.PB_G2_1); + this.Controls.Add(this.CB_G2_0); + this.Controls.Add(this.PB_G2_0); + this.Controls.Add(this.CB_G1_2); + this.Controls.Add(this.PB_G1_2); + this.Controls.Add(this.CB_G1_1); + this.Controls.Add(this.PB_G1_1); + this.Controls.Add(this.CB_G1_0); + this.Controls.Add(this.PB_G1_0); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.MaximizeBox = false; + this.MinimumSize = new System.Drawing.Size(410, 390); + this.Name = "StarterEditor6"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Starter Editor"; + ((System.ComponentModel.ISupportInitialize)(this.PB_G1_0)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_G1_1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_G1_2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_G2_2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_G2_1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_G2_0)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_G3_2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_G3_1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_G3_0)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_G4_2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_G4_1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_G4_0)).EndInit(); + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.PictureBox PB_G1_0; + private System.Windows.Forms.ComboBox CB_G1_0; + private System.Windows.Forms.ComboBox CB_G1_1; + private System.Windows.Forms.PictureBox PB_G1_1; + private System.Windows.Forms.ComboBox CB_G1_2; + private System.Windows.Forms.PictureBox PB_G1_2; + private System.Windows.Forms.ComboBox CB_G2_2; + private System.Windows.Forms.PictureBox PB_G2_2; + private System.Windows.Forms.ComboBox CB_G2_1; + private System.Windows.Forms.PictureBox PB_G2_1; + private System.Windows.Forms.ComboBox CB_G2_0; + private System.Windows.Forms.PictureBox PB_G2_0; + private System.Windows.Forms.ComboBox CB_G3_2; + private System.Windows.Forms.PictureBox PB_G3_2; + private System.Windows.Forms.ComboBox CB_G3_1; + private System.Windows.Forms.PictureBox PB_G3_1; + private System.Windows.Forms.ComboBox CB_G3_0; + private System.Windows.Forms.PictureBox PB_G3_0; + private System.Windows.Forms.ComboBox CB_G4_2; + private System.Windows.Forms.PictureBox PB_G4_2; + private System.Windows.Forms.ComboBox CB_G4_1; + private System.Windows.Forms.PictureBox PB_G4_1; + private System.Windows.Forms.ComboBox CB_G4_0; + private System.Windows.Forms.PictureBox PB_G4_0; + private System.Windows.Forms.Button B_Save; + private System.Windows.Forms.Button B_Randomize; + private System.Windows.Forms.Label L_Set1; + private System.Windows.Forms.Label L_Set3; + private System.Windows.Forms.Label L_Set4; + private System.Windows.Forms.Label L_Set2; + private System.Windows.Forms.CheckBox CHK_Gen; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.CheckBox CHK_BasicStarter; + private System.Windows.Forms.CheckBox CHK_E; + private System.Windows.Forms.CheckBox CHK_L; + private System.Windows.Forms.Button B_Cancel; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen6/StarterEditor6.cs b/pk3DS.WinForms/Subforms/Gen6/StarterEditor6.cs new file mode 100644 index 0000000000..96ff310dc9 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/StarterEditor6.cs @@ -0,0 +1,212 @@ +using pk3DS.Core; +using System; +using System.IO; +using System.Windows.Forms; +using pk3DS.Core.Randomizers; + +namespace pk3DS.WinForms; + +public partial class StarterEditor6 : Form +{ + public StarterEditor6() + { + specieslist[0] = "---"; + Array.Resize(ref specieslist, Main.Config.MaxSpeciesID + 1); + + if (!File.Exists(CROPath)) + { + WinFormsUtil.Error("CRO does not exist! Closing.", CROPath); + Close(); + } + if (!File.Exists(FieldPath)) + { + WinFormsUtil.Error("CRO does not exist! Closing.", FieldPath); + Close(); + } + InitializeComponent(); + + // 2 sets of Starters for X/Y + // 4 sets of Starters for OR/AS + Choices = + [ + [CB_G1_0, CB_G1_1, CB_G1_2], + [CB_G2_0, CB_G2_1, CB_G2_2], + [CB_G3_0, CB_G3_1, CB_G3_2], + [CB_G4_0, CB_G4_1, CB_G4_2], + ]; + Previews = + [ + [PB_G1_0, PB_G1_1, PB_G1_2], + [PB_G2_0, PB_G2_1, PB_G2_2], + [PB_G3_0, PB_G3_1, PB_G3_2], + [PB_G4_0, PB_G4_1, PB_G4_2], + ]; + Labels = [L_Set1, L_Set2, L_Set3, L_Set4]; + + Width = Main.Config.ORAS ? Width : (Width / 2) + 2; + LoadData(); + RandSettings.GetFormSettings(this, groupBox1.Controls); + } + + private readonly string CROPath = Path.Combine(Main.RomFSPath, "DllPoke3Select.cro"); + private readonly string FieldPath = Path.Combine(Main.RomFSPath, "DllField.cro"); + private readonly string[] specieslist = Main.Config.GetText(TextName.SpeciesNames); + private readonly ComboBox[][] Choices; + private readonly PictureBox[][] Previews; + private readonly Label[] Labels; + + private readonly string[] StarterSummary = Main.Config.ORAS + ? ["Gen 3 Starters", "Gen 2 Starters", "Gen 4 Starters", "Gen 5 Starters"] + : ["Gen 6 Starters", "Gen 1 Starters"]; + + private byte[] Data; + private byte[] FieldData; + private readonly int Count = Main.Config.ORAS ? 4 : 2; + private int offset; + private static int[] BasicStarter; + private static int[][] BasicStarterPerGen; + + private void B_Save_Click(object sender, EventArgs e) + { + SaveData(); + RandSettings.SetFormSettings(this, groupBox1.Controls); + Close(); + } + + private void B_Cancel_Click(object sender, EventArgs e) + { + Close(); + } + + private void LoadData() + { + Data = File.ReadAllBytes(CROPath); + FieldData = File.ReadAllBytes(FieldPath); + offset = BitConverter.ToInt32(Data, 0xb8); + if (!Main.Config.ORAS) // XY have 0x10 bytes of zeroes + offset += 0x10; + BasicStarter = Legal.BasicStarters_6; + BasicStarterPerGen = Legal.BasicStarters; + for (int i = 0; i < Count; i++) + { + Labels[i].Visible = true; + Labels[i].Text = StarterSummary[i]; + for (int j = 0; j < 3; j++) + { + Choices[i][j].Items.AddRange(specieslist); + int species = BitConverter.ToUInt16(Data, offset + (((i * 3) + j) * 0x54)); + Choices[i][j].SelectedIndex = species; // changing index prompts loading of sprite + + Choices[i][j].Visible = Previews[i][j].Visible = true; + } + } + } + + private void SaveData() + { + for (int i = 0; i < Count; i++) + { + for (int j = 0; j < 3; j++) + Array.Copy(BitConverter.GetBytes((ushort)Choices[i][j].SelectedIndex), 0, Data, offset + (((i * 3) + j) * 0x54), 2); + } + + // Set the choices back + int fieldOffset = Main.Config.ORAS ? 0xF906C : 0xF805C; + int fieldSize = Main.Config.ORAS ? 0x24 : 0x18; + int[] entries = Main.Config.ORAS + ? + [ + 0, 1, 2, // Gen 3 + 28, 29, 30, // Gen 2 + 31, 32, 33, // Gen 4 + 34, 35, 36, // Gen 5 + ] + : + [ + 0, 1, 2, // Gen 6 + 3, 4, 5, // Gen 1 + ]; + + for (int i = 0; i < Count; i++) + { + for (int j = 0; j < 3; j++) + Array.Copy(BitConverter.GetBytes((ushort)Choices[i][j].SelectedIndex), 0, FieldData, fieldOffset + (entries[(i * 3) + j] * fieldSize), 2); + } + + File.WriteAllBytes(CROPath, Data); // poke3 + File.WriteAllBytes(FieldPath, FieldData); // field + } + + private void ChangeSpecies(object sender, EventArgs e) + { + if (sender is not ComboBox cb) + return; + + // Fetch the corresponding PictureBox to update + string name = cb.Name; + int group = int.Parse(name[4] + "") - 1; + int index = int.Parse(name[6] + ""); + + int species = cb.SelectedIndex; + Previews[group][index].Image = WinFormsUtil.ScaleImage(WinFormsUtil.GetSprite(species, 0, 0, 0, Main.Config), 3); + } + + private void B_Randomize_Click(object sender, EventArgs e) + { + bool blind = DialogResult.Yes == + WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Hide randomization, save, and close?", + "If you want the Starters to be a surprise :)"); + if (blind) + Hide(); + + // Iterate for each group of Starters + for (int i = 0; i < Count; i++) + { + // Get Species List + + int gen = int.Parse(Labels[i].Text[4] + ""); + var rand = new SpeciesRandomizer(Main.Config) + { + G1 = !CHK_Gen.Checked || gen == 1, + G2 = !CHK_Gen.Checked || gen == 2, + G3 = !CHK_Gen.Checked || gen == 3, + G4 = !CHK_Gen.Checked || gen == 4, + G5 = !CHK_Gen.Checked || gen == 5, + G6 = !CHK_Gen.Checked || gen == 6, + + L = CHK_L.Checked, + E = CHK_E.Checked, + Shedinja = false, + }; + rand.Initialize(); + // Assign Species + for (int j = 0; j < 3; j++) + { + // int oldSpecies = BitConverter.ToUInt16(Data, offset + (((i * 3) + j) * 0x54)); + if (CHK_BasicStarter.Checked) + { + if (CHK_Gen.Checked) + { + int basic() => (int)(Util.Random32() % BasicStarterPerGen[gen - 1].Length); + Choices[i][j].SelectedIndex = BasicStarterPerGen[gen - 1][basic()]; + } + else + { + int basic() => (int)(Util.Random32() % BasicStarter.Length); + Choices[i][j].SelectedIndex = BasicStarter[basic()]; + } + } + else + { + Choices[i][j].SelectedIndex = rand.GetRandomSpecies(i); + } + } + } + + if (blind) + { + SaveData(); + Close(); + } + } +} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/StarterEditor6.resx b/pk3DS.WinForms/Subforms/Gen6/StarterEditor6.resx similarity index 100% rename from pk3DS/Subforms/Gen6/StarterEditor6.resx rename to pk3DS.WinForms/Subforms/Gen6/StarterEditor6.resx diff --git a/pk3DS.WinForms/Subforms/Gen6/StaticEncounterEditor6.Designer.cs b/pk3DS.WinForms/Subforms/Gen6/StaticEncounterEditor6.Designer.cs new file mode 100644 index 0000000000..016ed819de --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/StaticEncounterEditor6.Designer.cs @@ -0,0 +1,645 @@ +namespace pk3DS.WinForms; + +partial class StaticEncounterEditor6 +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.B_Cancel = new System.Windows.Forms.Button(); + this.B_Save = new System.Windows.Forms.Button(); + this.LB_Encounters = new System.Windows.Forms.ListBox(); + this.B_RandAll = new System.Windows.Forms.Button(); + this.tabControl1 = new System.Windows.Forms.TabControl(); + this.tabPage1 = new System.Windows.Forms.TabPage(); + this.L_Gender = new System.Windows.Forms.Label(); + this.CB_Gender = new System.Windows.Forms.ComboBox(); + this.L_Ability = new System.Windows.Forms.Label(); + this.CB_Ability = new System.Windows.Forms.ComboBox(); + this.CHK_IV3 = new System.Windows.Forms.CheckBox(); + this.CHK_ShinyLock = new System.Windows.Forms.CheckBox(); + this.CB_Species = new System.Windows.Forms.ComboBox(); + this.L_Species = new System.Windows.Forms.Label(); + this.L_HeldItem = new System.Windows.Forms.Label(); + this.NUD_Level = new System.Windows.Forms.NumericUpDown(); + this.L_Level = new System.Windows.Forms.Label(); + this.L_Form = new System.Windows.Forms.Label(); + this.CB_HeldItem = new System.Windows.Forms.ComboBox(); + this.NUD_Form = new System.Windows.Forms.NumericUpDown(); + this.tabPage2 = new System.Windows.Forms.TabPage(); + this.B_ModifyLevel = new System.Windows.Forms.Button(); + this.GB_Tweak = new System.Windows.Forms.GroupBox(); + this.CHK_ReplaceLegend = new System.Windows.Forms.CheckBox(); + this.CHK_RandomAbility = new System.Windows.Forms.CheckBox(); + this.CHK_RemoveShinyLock = new System.Windows.Forms.CheckBox(); + this.CHK_AllowMega = new System.Windows.Forms.CheckBox(); + this.CHK_Item = new System.Windows.Forms.CheckBox(); + this.L_RandOpt = new System.Windows.Forms.Label(); + this.CHK_BST = new System.Windows.Forms.CheckBox(); + this.CHK_E = new System.Windows.Forms.CheckBox(); + this.CHK_L = new System.Windows.Forms.CheckBox(); + this.CHK_G6 = new System.Windows.Forms.CheckBox(); + this.CHK_G5 = new System.Windows.Forms.CheckBox(); + this.CHK_G4 = new System.Windows.Forms.CheckBox(); + this.CHK_G3 = new System.Windows.Forms.CheckBox(); + this.CHK_G2 = new System.Windows.Forms.CheckBox(); + this.CHK_G1 = new System.Windows.Forms.CheckBox(); + this.NUD_ForceFullyEvolved = new System.Windows.Forms.NumericUpDown(); + this.CHK_ForceFullyEvolved = new System.Windows.Forms.CheckBox(); + this.NUD_LevelBoost = new System.Windows.Forms.NumericUpDown(); + this.CHK_Level = new System.Windows.Forms.CheckBox(); + this.tabControl1.SuspendLayout(); + this.tabPage1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Level)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Form)).BeginInit(); + this.tabPage2.SuspendLayout(); + this.GB_Tweak.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_ForceFullyEvolved)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_LevelBoost)).BeginInit(); + this.SuspendLayout(); + // + // B_Cancel + // + this.B_Cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.B_Cancel.Location = new System.Drawing.Point(264, 338); + this.B_Cancel.Name = "B_Cancel"; + this.B_Cancel.Size = new System.Drawing.Size(70, 23); + this.B_Cancel.TabIndex = 467; + this.B_Cancel.Text = "Cancel"; + this.B_Cancel.UseVisualStyleBackColor = true; + this.B_Cancel.Click += new System.EventHandler(this.B_Cancel_Click); + // + // B_Save + // + this.B_Save.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.B_Save.Location = new System.Drawing.Point(335, 338); + this.B_Save.Name = "B_Save"; + this.B_Save.Size = new System.Drawing.Size(70, 23); + this.B_Save.TabIndex = 466; + this.B_Save.Text = "Save"; + this.B_Save.UseVisualStyleBackColor = true; + this.B_Save.Click += new System.EventHandler(this.B_Save_Click); + // + // LB_Encounters + // + this.LB_Encounters.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.LB_Encounters.FormattingEnabled = true; + this.LB_Encounters.Location = new System.Drawing.Point(12, 12); + this.LB_Encounters.Name = "LB_Encounters"; + this.LB_Encounters.Size = new System.Drawing.Size(110, 342); + this.LB_Encounters.TabIndex = 468; + this.LB_Encounters.SelectedIndexChanged += new System.EventHandler(this.ChangeIndex); + // + // B_RandAll + // + this.B_RandAll.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.B_RandAll.Location = new System.Drawing.Point(181, 338); + this.B_RandAll.Name = "B_RandAll"; + this.B_RandAll.Size = new System.Drawing.Size(83, 23); + this.B_RandAll.TabIndex = 496; + this.B_RandAll.Text = "Randomize All"; + this.B_RandAll.UseVisualStyleBackColor = true; + this.B_RandAll.Click += new System.EventHandler(this.B_RandAll_Click); + // + // tabControl1 + // + this.tabControl1.Controls.Add(this.tabPage1); + this.tabControl1.Controls.Add(this.tabPage2); + this.tabControl1.Location = new System.Drawing.Point(128, 12); + this.tabControl1.Name = "tabControl1"; + this.tabControl1.SelectedIndex = 0; + this.tabControl1.Size = new System.Drawing.Size(277, 322); + this.tabControl1.TabIndex = 501; + // + // tabPage1 + // + this.tabPage1.Controls.Add(this.L_Gender); + this.tabPage1.Controls.Add(this.CB_Gender); + this.tabPage1.Controls.Add(this.L_Ability); + this.tabPage1.Controls.Add(this.CB_Ability); + this.tabPage1.Controls.Add(this.CHK_IV3); + this.tabPage1.Controls.Add(this.CHK_ShinyLock); + this.tabPage1.Controls.Add(this.CB_Species); + this.tabPage1.Controls.Add(this.L_Species); + this.tabPage1.Controls.Add(this.L_HeldItem); + this.tabPage1.Controls.Add(this.NUD_Level); + this.tabPage1.Controls.Add(this.L_Level); + this.tabPage1.Controls.Add(this.L_Form); + this.tabPage1.Controls.Add(this.CB_HeldItem); + this.tabPage1.Controls.Add(this.NUD_Form); + this.tabPage1.Location = new System.Drawing.Point(4, 22); + this.tabPage1.Name = "tabPage1"; + this.tabPage1.Padding = new System.Windows.Forms.Padding(3); + this.tabPage1.Size = new System.Drawing.Size(269, 296); + this.tabPage1.TabIndex = 0; + this.tabPage1.Text = "Editor"; + this.tabPage1.UseVisualStyleBackColor = true; + // + // L_Gender + // + this.L_Gender.Location = new System.Drawing.Point(9, 92); + this.L_Gender.Name = "L_Gender"; + this.L_Gender.Size = new System.Drawing.Size(55, 23); + this.L_Gender.TabIndex = 526; + this.L_Gender.Text = "Gender:"; + this.L_Gender.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_Gender + // + this.CB_Gender.FormattingEnabled = true; + this.CB_Gender.Location = new System.Drawing.Point(65, 93); + this.CB_Gender.Name = "CB_Gender"; + this.CB_Gender.Size = new System.Drawing.Size(136, 21); + this.CB_Gender.TabIndex = 525; + // + // L_Ability + // + this.L_Ability.Location = new System.Drawing.Point(9, 70); + this.L_Ability.Name = "L_Ability"; + this.L_Ability.Size = new System.Drawing.Size(55, 23); + this.L_Ability.TabIndex = 524; + this.L_Ability.Text = "Ability:"; + this.L_Ability.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_Ability + // + this.CB_Ability.FormattingEnabled = true; + this.CB_Ability.Location = new System.Drawing.Point(65, 71); + this.CB_Ability.Name = "CB_Ability"; + this.CB_Ability.Size = new System.Drawing.Size(136, 21); + this.CB_Ability.TabIndex = 523; + // + // CHK_IV3 + // + this.CHK_IV3.AutoSize = true; + this.CHK_IV3.Location = new System.Drawing.Point(65, 153); + this.CHK_IV3.Name = "CHK_IV3"; + this.CHK_IV3.Size = new System.Drawing.Size(42, 17); + this.CHK_IV3.TabIndex = 522; + this.CHK_IV3.Text = "3IV"; + this.CHK_IV3.UseVisualStyleBackColor = true; + // + // CHK_ShinyLock + // + this.CHK_ShinyLock.AutoSize = true; + this.CHK_ShinyLock.Location = new System.Drawing.Point(65, 138); + this.CHK_ShinyLock.Name = "CHK_ShinyLock"; + this.CHK_ShinyLock.Size = new System.Drawing.Size(79, 17); + this.CHK_ShinyLock.TabIndex = 519; + this.CHK_ShinyLock.Text = "Shiny Lock"; + this.CHK_ShinyLock.UseVisualStyleBackColor = true; + // + // CB_Species + // + this.CB_Species.FormattingEnabled = true; + this.CB_Species.Location = new System.Drawing.Point(65, 7); + this.CB_Species.Name = "CB_Species"; + this.CB_Species.Size = new System.Drawing.Size(136, 21); + this.CB_Species.TabIndex = 506; + this.CB_Species.SelectedIndexChanged += new System.EventHandler(this.ChangeSpecies); + // + // L_Species + // + this.L_Species.Location = new System.Drawing.Point(9, 6); + this.L_Species.Name = "L_Species"; + this.L_Species.Size = new System.Drawing.Size(55, 23); + this.L_Species.TabIndex = 508; + this.L_Species.Text = "Species:"; + this.L_Species.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_HeldItem + // + this.L_HeldItem.Location = new System.Drawing.Point(9, 114); + this.L_HeldItem.Name = "L_HeldItem"; + this.L_HeldItem.Size = new System.Drawing.Size(55, 23); + this.L_HeldItem.TabIndex = 509; + this.L_HeldItem.Text = "Held Item:"; + this.L_HeldItem.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_Level + // + this.NUD_Level.Location = new System.Drawing.Point(65, 29); + this.NUD_Level.Name = "NUD_Level"; + this.NUD_Level.Size = new System.Drawing.Size(41, 20); + this.NUD_Level.TabIndex = 510; + this.NUD_Level.Value = new decimal(new int[] { + 100, + 0, + 0, + 0}); + // + // L_Level + // + this.L_Level.Location = new System.Drawing.Point(9, 26); + this.L_Level.Name = "L_Level"; + this.L_Level.Size = new System.Drawing.Size(55, 23); + this.L_Level.TabIndex = 511; + this.L_Level.Text = "Level:"; + this.L_Level.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_Form + // + this.L_Form.Location = new System.Drawing.Point(9, 47); + this.L_Form.Name = "L_Form"; + this.L_Form.Size = new System.Drawing.Size(55, 23); + this.L_Form.TabIndex = 513; + this.L_Form.Text = "Form:"; + this.L_Form.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_HeldItem + // + this.CB_HeldItem.FormattingEnabled = true; + this.CB_HeldItem.Location = new System.Drawing.Point(65, 115); + this.CB_HeldItem.Name = "CB_HeldItem"; + this.CB_HeldItem.Size = new System.Drawing.Size(136, 21); + this.CB_HeldItem.TabIndex = 507; + // + // NUD_Form + // + this.NUD_Form.Location = new System.Drawing.Point(65, 50); + this.NUD_Form.Name = "NUD_Form"; + this.NUD_Form.Size = new System.Drawing.Size(41, 20); + this.NUD_Form.TabIndex = 512; + // + // tabPage2 + // + this.tabPage2.Controls.Add(this.B_ModifyLevel); + this.tabPage2.Controls.Add(this.GB_Tweak); + this.tabPage2.Controls.Add(this.NUD_LevelBoost); + this.tabPage2.Controls.Add(this.CHK_Level); + this.tabPage2.Location = new System.Drawing.Point(4, 22); + this.tabPage2.Name = "tabPage2"; + this.tabPage2.Padding = new System.Windows.Forms.Padding(3); + this.tabPage2.Size = new System.Drawing.Size(269, 296); + this.tabPage2.TabIndex = 1; + this.tabPage2.Text = "Randomizer Options"; + this.tabPage2.UseVisualStyleBackColor = true; + // + // B_ModifyLevel + // + this.B_ModifyLevel.Location = new System.Drawing.Point(189, 16); + this.B_ModifyLevel.Name = "B_ModifyLevel"; + this.B_ModifyLevel.Size = new System.Drawing.Size(70, 23); + this.B_ModifyLevel.TabIndex = 502; + this.B_ModifyLevel.Text = "× Current"; + this.B_ModifyLevel.UseVisualStyleBackColor = true; + this.B_ModifyLevel.Click += new System.EventHandler(this.ModifyLevels); + // + // GB_Tweak + // + this.GB_Tweak.Controls.Add(this.CHK_ReplaceLegend); + this.GB_Tweak.Controls.Add(this.CHK_AllowMega); + this.GB_Tweak.Controls.Add(this.CHK_RandomAbility); + this.GB_Tweak.Controls.Add(this.CHK_RemoveShinyLock); + this.GB_Tweak.Controls.Add(this.CHK_Item); + this.GB_Tweak.Controls.Add(this.L_RandOpt); + this.GB_Tweak.Controls.Add(this.CHK_BST); + this.GB_Tweak.Controls.Add(this.CHK_E); + this.GB_Tweak.Controls.Add(this.CHK_L); + this.GB_Tweak.Controls.Add(this.CHK_G6); + this.GB_Tweak.Controls.Add(this.CHK_G5); + this.GB_Tweak.Controls.Add(this.CHK_G4); + this.GB_Tweak.Controls.Add(this.CHK_G3); + this.GB_Tweak.Controls.Add(this.CHK_G2); + this.GB_Tweak.Controls.Add(this.CHK_G1); + this.GB_Tweak.Controls.Add(this.NUD_ForceFullyEvolved); + this.GB_Tweak.Controls.Add(this.CHK_ForceFullyEvolved); + this.GB_Tweak.Location = new System.Drawing.Point(5, 66); + this.GB_Tweak.Name = "GB_Tweak"; + this.GB_Tweak.Size = new System.Drawing.Size(258, 185); + this.GB_Tweak.TabIndex = 509; + this.GB_Tweak.TabStop = false; + this.GB_Tweak.Text = "Extra Randomization Tweaks"; + // + // CHK_ReplaceLegend + // + this.CHK_ReplaceLegend.AutoSize = true; + this.CHK_ReplaceLegend.Checked = true; + this.CHK_ReplaceLegend.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_ReplaceLegend.Location = new System.Drawing.Point(9, 140); + this.CHK_ReplaceLegend.Name = "CHK_ReplaceLegend"; + this.CHK_ReplaceLegend.Size = new System.Drawing.Size(242, 17); + this.CHK_ReplaceLegend.TabIndex = 304; + this.CHK_ReplaceLegend.Text = "Replace Legendaries with Another Legendary"; + this.CHK_ReplaceLegend.UseVisualStyleBackColor = true; + // + // CHK_RandomAbility + // + this.CHK_RandomAbility.AutoSize = true; + this.CHK_RandomAbility.Location = new System.Drawing.Point(9, 110); + this.CHK_RandomAbility.Name = "CHK_RandomAbility"; + this.CHK_RandomAbility.Size = new System.Drawing.Size(183, 17); + this.CHK_RandomAbility.TabIndex = 303; + this.CHK_RandomAbility.Text = "Random Abilities (1, 2, or Hidden)"; + this.CHK_RandomAbility.UseVisualStyleBackColor = true; + // + // CHK_RemoveShinyLock + // + this.CHK_RemoveShinyLock.AutoSize = true; + this.CHK_RemoveShinyLock.Location = new System.Drawing.Point(9, 95); + this.CHK_RemoveShinyLock.Name = "CHK_RemoveShinyLock"; + this.CHK_RemoveShinyLock.Size = new System.Drawing.Size(127, 17); + this.CHK_RemoveShinyLock.TabIndex = 297; + this.CHK_RemoveShinyLock.Text = "Remove Shiny Locks"; + this.CHK_RemoveShinyLock.UseVisualStyleBackColor = true; + // + // CHK_AllowMega + // + this.CHK_AllowMega.AutoSize = true; + this.CHK_AllowMega.Location = new System.Drawing.Point(9, 125); + this.CHK_AllowMega.Name = "CHK_AllowMega"; + this.CHK_AllowMega.Size = new System.Drawing.Size(155, 17); + this.CHK_AllowMega.TabIndex = 296; + this.CHK_AllowMega.Text = "Allow Random Mega Forms"; + this.CHK_AllowMega.UseVisualStyleBackColor = true; + // + // CHK_Item + // + this.CHK_Item.AutoSize = true; + this.CHK_Item.Checked = true; + this.CHK_Item.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_Item.Location = new System.Drawing.Point(9, 80); + this.CHK_Item.Name = "CHK_Item"; + this.CHK_Item.Size = new System.Drawing.Size(119, 17); + this.CHK_Item.TabIndex = 295; + this.CHK_Item.Text = "Random Held Items"; + this.CHK_Item.UseVisualStyleBackColor = true; + // + // L_RandOpt + // + this.L_RandOpt.AutoSize = true; + this.L_RandOpt.Location = new System.Drawing.Point(6, 17); + this.L_RandOpt.Name = "L_RandOpt"; + this.L_RandOpt.Size = new System.Drawing.Size(105, 13); + this.L_RandOpt.TabIndex = 294; + this.L_RandOpt.Text = "Randomizer Options:"; + // + // CHK_BST + // + this.CHK_BST.AutoSize = true; + this.CHK_BST.Location = new System.Drawing.Point(128, 63); + this.CHK_BST.Name = "CHK_BST"; + this.CHK_BST.Size = new System.Drawing.Size(117, 17); + this.CHK_BST.TabIndex = 288; + this.CHK_BST.Text = "Randomize by BST"; + this.CHK_BST.UseVisualStyleBackColor = true; + // + // CHK_E + // + this.CHK_E.AutoSize = true; + this.CHK_E.Checked = true; + this.CHK_E.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_E.Location = new System.Drawing.Point(128, 49); + this.CHK_E.Name = "CHK_E"; + this.CHK_E.Size = new System.Drawing.Size(98, 17); + this.CHK_E.TabIndex = 287; + this.CHK_E.Text = "Event Legends"; + this.CHK_E.UseVisualStyleBackColor = true; + // + // CHK_L + // + this.CHK_L.AutoSize = true; + this.CHK_L.Checked = true; + this.CHK_L.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_L.Location = new System.Drawing.Point(128, 35); + this.CHK_L.Name = "CHK_L"; + this.CHK_L.Size = new System.Drawing.Size(98, 17); + this.CHK_L.TabIndex = 286; + this.CHK_L.Text = "Game Legends"; + this.CHK_L.UseVisualStyleBackColor = true; + // + // CHK_G6 + // + this.CHK_G6.AutoSize = true; + this.CHK_G6.Checked = true; + this.CHK_G6.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G6.Location = new System.Drawing.Point(67, 63); + this.CHK_G6.Name = "CHK_G6"; + this.CHK_G6.Size = new System.Drawing.Size(55, 17); + this.CHK_G6.TabIndex = 285; + this.CHK_G6.Text = "Gen 6"; + this.CHK_G6.UseVisualStyleBackColor = true; + // + // CHK_G5 + // + this.CHK_G5.AutoSize = true; + this.CHK_G5.Checked = true; + this.CHK_G5.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G5.Location = new System.Drawing.Point(67, 49); + this.CHK_G5.Name = "CHK_G5"; + this.CHK_G5.Size = new System.Drawing.Size(55, 17); + this.CHK_G5.TabIndex = 284; + this.CHK_G5.Text = "Gen 5"; + this.CHK_G5.UseVisualStyleBackColor = true; + // + // CHK_G4 + // + this.CHK_G4.AutoSize = true; + this.CHK_G4.Checked = true; + this.CHK_G4.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G4.Location = new System.Drawing.Point(67, 35); + this.CHK_G4.Name = "CHK_G4"; + this.CHK_G4.Size = new System.Drawing.Size(55, 17); + this.CHK_G4.TabIndex = 283; + this.CHK_G4.Text = "Gen 4"; + this.CHK_G4.UseVisualStyleBackColor = true; + // + // CHK_G3 + // + this.CHK_G3.AutoSize = true; + this.CHK_G3.Checked = true; + this.CHK_G3.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G3.Location = new System.Drawing.Point(9, 63); + this.CHK_G3.Name = "CHK_G3"; + this.CHK_G3.Size = new System.Drawing.Size(55, 17); + this.CHK_G3.TabIndex = 282; + this.CHK_G3.Text = "Gen 3"; + this.CHK_G3.UseVisualStyleBackColor = true; + // + // CHK_G2 + // + this.CHK_G2.AutoSize = true; + this.CHK_G2.Checked = true; + this.CHK_G2.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G2.Location = new System.Drawing.Point(9, 49); + this.CHK_G2.Name = "CHK_G2"; + this.CHK_G2.Size = new System.Drawing.Size(55, 17); + this.CHK_G2.TabIndex = 281; + this.CHK_G2.Text = "Gen 2"; + this.CHK_G2.UseVisualStyleBackColor = true; + // + // CHK_G1 + // + this.CHK_G1.AutoSize = true; + this.CHK_G1.Checked = true; + this.CHK_G1.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G1.Location = new System.Drawing.Point(9, 35); + this.CHK_G1.Name = "CHK_G1"; + this.CHK_G1.Size = new System.Drawing.Size(55, 17); + this.CHK_G1.TabIndex = 280; + this.CHK_G1.Text = "Gen 1"; + this.CHK_G1.UseVisualStyleBackColor = true; + // + // NUD_ForceFullyEvolved + // + this.NUD_ForceFullyEvolved.Location = new System.Drawing.Point(168, 157); + this.NUD_ForceFullyEvolved.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.NUD_ForceFullyEvolved.Name = "NUD_ForceFullyEvolved"; + this.NUD_ForceFullyEvolved.Size = new System.Drawing.Size(40, 20); + this.NUD_ForceFullyEvolved.TabIndex = 516; + this.NUD_ForceFullyEvolved.Value = new decimal(new int[] { + 50, + 0, + 0, + 0}); + // + // CHK_ForceFullyEvolved + // + this.CHK_ForceFullyEvolved.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.CHK_ForceFullyEvolved.AutoSize = true; + this.CHK_ForceFullyEvolved.Location = new System.Drawing.Point(9, 159); + this.CHK_ForceFullyEvolved.Name = "CHK_ForceFullyEvolved"; + this.CHK_ForceFullyEvolved.Size = new System.Drawing.Size(160, 17); + this.CHK_ForceFullyEvolved.TabIndex = 515; + this.CHK_ForceFullyEvolved.Text = "Force Fully Evolved at Level"; + this.CHK_ForceFullyEvolved.UseVisualStyleBackColor = true; + // + // NUD_LevelBoost + // + this.NUD_LevelBoost.DecimalPlaces = 2; + this.NUD_LevelBoost.Increment = new decimal(new int[] { + 5, + 0, + 0, + 131072}); + this.NUD_LevelBoost.Location = new System.Drawing.Point(140, 17); + this.NUD_LevelBoost.Maximum = new decimal(new int[] { + 3, + 0, + 0, + 0}); + this.NUD_LevelBoost.Name = "NUD_LevelBoost"; + this.NUD_LevelBoost.Size = new System.Drawing.Size(43, 20); + this.NUD_LevelBoost.TabIndex = 303; + this.NUD_LevelBoost.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // CHK_Level + // + this.CHK_Level.AutoSize = true; + this.CHK_Level.Checked = true; + this.CHK_Level.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_Level.Location = new System.Drawing.Point(9, 18); + this.CHK_Level.Name = "CHK_Level"; + this.CHK_Level.Size = new System.Drawing.Size(130, 17); + this.CHK_Level.TabIndex = 302; + this.CHK_Level.Text = "Multiply PKM Level by"; + this.CHK_Level.UseVisualStyleBackColor = true; + // + // StaticEncounterEditor6 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(417, 370); + this.Controls.Add(this.tabControl1); + this.Controls.Add(this.B_RandAll); + this.Controls.Add(this.LB_Encounters); + this.Controls.Add(this.B_Cancel); + this.Controls.Add(this.B_Save); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size(380, 370); + this.Name = "StaticEncounterEditor6"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Static Encounter Editor"; + this.tabControl1.ResumeLayout(false); + this.tabPage1.ResumeLayout(false); + this.tabPage1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Level)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Form)).EndInit(); + this.tabPage2.ResumeLayout(false); + this.tabPage2.PerformLayout(); + this.GB_Tweak.ResumeLayout(false); + this.GB_Tweak.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_ForceFullyEvolved)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_LevelBoost)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Button B_Cancel; + private System.Windows.Forms.Button B_Save; + private System.Windows.Forms.ListBox LB_Encounters; + private System.Windows.Forms.Button B_RandAll; + private System.Windows.Forms.TabControl tabControl1; + private System.Windows.Forms.TabPage tabPage1; + private System.Windows.Forms.TabPage tabPage2; + private System.Windows.Forms.NumericUpDown NUD_LevelBoost; + private System.Windows.Forms.CheckBox CHK_Level; + private System.Windows.Forms.GroupBox GB_Tweak; + private System.Windows.Forms.Label L_RandOpt; + private System.Windows.Forms.CheckBox CHK_BST; + private System.Windows.Forms.CheckBox CHK_E; + private System.Windows.Forms.CheckBox CHK_L; + private System.Windows.Forms.CheckBox CHK_G6; + private System.Windows.Forms.CheckBox CHK_G5; + private System.Windows.Forms.CheckBox CHK_G4; + private System.Windows.Forms.CheckBox CHK_G3; + private System.Windows.Forms.CheckBox CHK_G2; + private System.Windows.Forms.CheckBox CHK_G1; + private System.Windows.Forms.CheckBox CHK_Item; + private System.Windows.Forms.CheckBox CHK_AllowMega; + private System.Windows.Forms.CheckBox CHK_RemoveShinyLock; + private System.Windows.Forms.CheckBox CHK_ShinyLock; + private System.Windows.Forms.ComboBox CB_Species; + private System.Windows.Forms.Label L_Species; + private System.Windows.Forms.Label L_HeldItem; + private System.Windows.Forms.NumericUpDown NUD_Level; + private System.Windows.Forms.Label L_Level; + private System.Windows.Forms.Label L_Form; + private System.Windows.Forms.ComboBox CB_HeldItem; + private System.Windows.Forms.NumericUpDown NUD_Form; + private System.Windows.Forms.Button B_ModifyLevel; + private System.Windows.Forms.CheckBox CHK_IV3; + private System.Windows.Forms.Label L_Gender; + private System.Windows.Forms.ComboBox CB_Gender; + private System.Windows.Forms.Label L_Ability; + private System.Windows.Forms.ComboBox CB_Ability; + private System.Windows.Forms.CheckBox CHK_RandomAbility; + private System.Windows.Forms.CheckBox CHK_ReplaceLegend; + private System.Windows.Forms.NumericUpDown NUD_ForceFullyEvolved; + private System.Windows.Forms.CheckBox CHK_ForceFullyEvolved; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen6/StaticEncounterEditor6.cs b/pk3DS.WinForms/Subforms/Gen6/StaticEncounterEditor6.cs new file mode 100644 index 0000000000..f5a7770d99 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/StaticEncounterEditor6.cs @@ -0,0 +1,239 @@ +using pk3DS.Core; +using System; +using System.IO; +using System.Linq; +using System.Windows.Forms; + +using pk3DS.Core.Randomizers; +using pk3DS.Core.Structures; + +namespace pk3DS.WinForms; + +public partial class StaticEncounterEditor6 : Form +{ + public StaticEncounterEditor6() + { + specieslist[0] = "---"; + Array.Resize(ref specieslist, Main.Config.MaxSpeciesID + 1); + if (!File.Exists(FieldPath)) + { + WinFormsUtil.Error("CRO does not exist! Closing.", FieldPath); + Close(); + } + InitializeComponent(); + + specieslist[0] = "---"; + itemlist[0] = "(None)"; // blank == -1 + + CB_Species.Items.Clear(); + CB_Species.Items.AddRange(specieslist); + CB_HeldItem.Items.Clear(); + CB_HeldItem.Items.AddRange(itemlist); + LoadData(); + RandSettings.GetFormSettings(this, tabPage2.Controls); + } + + private readonly string FieldPath = Path.Combine(Main.RomFSPath, "DllField.cro"); + private byte[] FieldData; + private readonly int fieldOffset = Main.Config.ORAS ? 0xF1B20 : 0xEE46C; + private const int fieldSize = 0xC; + private readonly int count = Main.Config.ORAS ? 0x3B : 0xD; + private EncounterStatic6[] EncounterData; + private readonly string[] itemlist = Main.Config.GetText(TextName.ItemNames); + private readonly string[] specieslist = Main.Config.GetText(TextName.SpeciesNames); + private static int[] FinalEvo = Legal.FinalEvolutions_6; + private static readonly int[] Legendary = Legal.Legendary_6; + private static readonly int[] Mythical = Legal.Mythical_6; + private static readonly int[] ReplaceLegend = [.. Legendary, .. Mythical]; + + private readonly string[] ability = + [ + "Any (1 or 2)", + "Ability 1", + "Ability 2", + "Hidden Ability", + ]; + + private void B_Save_Click(object sender, EventArgs e) + { + SaveEntry(); + SaveData(); + RandSettings.SetFormSettings(this, tabPage2.Controls); + Close(); + } + + private void B_Cancel_Click(object sender, EventArgs e) + { + Close(); + } + + private void LoadData() + { + FieldData = File.ReadAllBytes(FieldPath); + EncounterData = new EncounterStatic6[count]; + LB_Encounters.Items.Clear(); + for (int i = 0; i < EncounterData.Length; i++) + { + EncounterData[i] = new EncounterStatic6(FieldData.Skip(fieldOffset + (i * fieldSize)).Take(fieldSize).ToArray()); + LB_Encounters.Items.Add($"{i:00} - {specieslist[EncounterData[i].Species]}"); + } + CB_Ability.Items.AddRange(ability); + + CB_Gender.Items.Clear(); + CB_Gender.Items.Add("- / Genderless/Random"); + CB_Gender.Items.Add("♂ / Male"); + CB_Gender.Items.Add("♀ / Female"); + + loaded = true; + LB_Encounters.SelectedIndex = 0; + } + + private void SaveData() + { + for (int i = 0; i < EncounterData.Length; i++) + { + int offset = fieldOffset + (i * fieldSize); + // Write new data + Array.Copy(EncounterData[i].Write(), 0, FieldData, offset, fieldSize); + } + File.WriteAllBytes(FieldPath, FieldData); + } + + private int entry = -1; + private bool loaded; + + private void ChangeIndex(object sender, EventArgs e) + { + if (LB_Encounters.SelectedIndex < 0) + return; + if (!loaded) + return; + if (entry != -1) + SaveEntry(); + entry = LB_Encounters.SelectedIndex; + LoadEntry(); + } + + private void LoadEntry() + { + bool oldloaded = loaded; + loaded = false; + + CB_Species.SelectedIndex = EncounterData[entry].Species; + CB_HeldItem.SelectedIndex = EncounterData[entry].HeldItem; + NUD_Level.Value = EncounterData[entry].Level; + NUD_Form.Value = EncounterData[entry].Form; + CB_Ability.SelectedIndex = EncounterData[entry].Ability; + CB_Gender.SelectedIndex = EncounterData[entry].Gender; + CHK_ShinyLock.Checked = EncounterData[entry].ShinyLock; + CHK_IV3.Checked = EncounterData[entry].IV3; + + if (EncounterData[entry].HeldItem < 0) + CB_HeldItem.SelectedIndex = 0; // no item = 0xFFFF, set to 0 (None) + + loaded |= oldloaded; + } + + private void SaveEntry() + { + EncounterData[entry].Species = (ushort)CB_Species.SelectedIndex; + EncounterData[entry].HeldItem = CB_HeldItem.SelectedIndex; + EncounterData[entry].Level = (byte)NUD_Level.Value; + EncounterData[entry].Form = (byte)NUD_Form.Value; + EncounterData[entry].Ability = (sbyte)CB_Ability.SelectedIndex; + EncounterData[entry].Gender = (sbyte)CB_Gender.SelectedIndex; + EncounterData[entry].ShinyLock = CHK_ShinyLock.Checked; + EncounterData[entry].IV3 = CHK_IV3.Checked; + } + + private void B_RandAll_Click(object sender, EventArgs e) + { + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomize all? Cannot undo.", "Double check Randomization settings in the Randomizer Options tab.") != DialogResult.Yes) return; + + var formrand = new FormRandomizer(Main.Config) { AllowMega = false, AllowAlolanForm = false }; + var specrand = new SpeciesRandomizer(Main.Config) + { + G1 = CHK_G1.Checked, + G2 = CHK_G2.Checked, + G3 = CHK_G3.Checked, + G4 = CHK_G4.Checked, + G5 = CHK_G5.Checked, + G6 = CHK_G6.Checked, + G7 = false, + + E = CHK_E.Checked, + L = CHK_L.Checked, + + rBST = CHK_BST.Checked, + }; + specrand.Initialize(); + + // add Legendary/Mythical to final evolutions if checked + if (CHK_L.Checked) FinalEvo = [.. FinalEvo, .. Legendary]; + if (CHK_E.Checked) FinalEvo = [.. FinalEvo, .. Mythical]; + + var items = Randomizer.GetRandomItemList(); + for (int i = 0; i < LB_Encounters.Items.Count; i++) + { + LB_Encounters.SelectedIndex = i; + int species = CB_Species.SelectedIndex; + + // replace Legendaries with another Legendary + if (CHK_ReplaceLegend.Checked && ReplaceLegend.Contains(species)) + { + int randLegend() => (int)(Util.Random32() % ReplaceLegend.Length); + species = ReplaceLegend[randLegend()]; + } + + // every other entry + else + { + species = specrand.GetRandomSpecies(species); + } + + if (CHK_AllowMega.Checked) + formrand.AllowMega = true; + + if (CHK_Item.Checked) + CB_HeldItem.SelectedIndex = items[Util.Random32() % items.Length]; + + if (CHK_Level.Checked) + NUD_Level.Value = Randomizer.GetModifiedLevel((int)NUD_Level.Value, NUD_LevelBoost.Value); + + if (CHK_RemoveShinyLock.Checked) + CHK_ShinyLock.Checked = false; + + if (CHK_RandomAbility.Checked) + CB_Ability.SelectedIndex = (Util.Rand.Next(1, 4)); // 1, 2 , or H + + if (CHK_ForceFullyEvolved.Checked && NUD_Level.Value >= NUD_ForceFullyEvolved.Value && !FinalEvo.Contains(species)) + { + int randFinalEvo() => (int)(Util.Random32() % FinalEvo.Length); + species = FinalEvo[randFinalEvo()]; + } + + CB_Species.SelectedIndex = species; + NUD_Form.Value = formrand.GetRandomForme(species); + CB_Gender.SelectedIndex = 0; // random + } + WinFormsUtil.Alert("Randomized all Static Encounters according to specification!"); + } + + private void ChangeSpecies(object sender, EventArgs e) + { + int index = LB_Encounters.SelectedIndex; + LB_Encounters.Items[index] = index.ToString("00") + " - " + CB_Species.Text; + } + + private void ModifyLevels(object sender, EventArgs e) + { + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Modify all current Levels?", "Cannot undo.") != DialogResult.Yes) return; + + for (int i = 0; i < LB_Encounters.Items.Count; i++) + { + LB_Encounters.SelectedIndex = i; + NUD_Level.Value = Randomizer.GetModifiedLevel((int)NUD_Level.Value, NUD_LevelBoost.Value); + } + WinFormsUtil.Alert("Modified all Levels according to specification!"); + } +} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/StaticEncounterEditor6.resx b/pk3DS.WinForms/Subforms/Gen6/StaticEncounterEditor6.resx similarity index 100% rename from pk3DS/Subforms/Gen6/StaticEncounterEditor6.resx rename to pk3DS.WinForms/Subforms/Gen6/StaticEncounterEditor6.resx diff --git a/pk3DS.WinForms/Subforms/Gen6/TMHMEditor6.Designer.cs b/pk3DS.WinForms/Subforms/Gen6/TMHMEditor6.Designer.cs new file mode 100644 index 0000000000..3313f26148 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/TMHMEditor6.Designer.cs @@ -0,0 +1,168 @@ +namespace pk3DS.WinForms; + +partial class TMHMEditor6 +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.dgvTM = new System.Windows.Forms.DataGridView(); + this.L_TM = new System.Windows.Forms.Label(); + this.dgvHM = new System.Windows.Forms.DataGridView(); + this.L_HM = new System.Windows.Forms.Label(); + this.B_RTM = new System.Windows.Forms.Button(); + this.CHK_RandomizeHM = new System.Windows.Forms.CheckBox(); + this.CHK_RandomizeField = new System.Windows.Forms.CheckBox(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + ((System.ComponentModel.ISupportInitialize)(this.dgvTM)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvHM)).BeginInit(); + this.groupBox1.SuspendLayout(); + this.SuspendLayout(); + // + // dgvTM + // + this.dgvTM.AllowUserToAddRows = false; + this.dgvTM.AllowUserToDeleteRows = false; + this.dgvTM.AllowUserToResizeColumns = false; + this.dgvTM.AllowUserToResizeRows = false; + this.dgvTM.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.dgvTM.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvTM.Location = new System.Drawing.Point(9, 25); + this.dgvTM.Name = "dgvTM"; + this.dgvTM.Size = new System.Drawing.Size(240, 300); + this.dgvTM.TabIndex = 1; + // + // L_TM + // + this.L_TM.AutoSize = true; + this.L_TM.Location = new System.Drawing.Point(9, 9); + this.L_TM.Name = "L_TM"; + this.L_TM.Size = new System.Drawing.Size(26, 13); + this.L_TM.TabIndex = 2; + this.L_TM.Text = "TM:"; + // + // dgvHM + // + this.dgvHM.AllowUserToAddRows = false; + this.dgvHM.AllowUserToDeleteRows = false; + this.dgvHM.AllowUserToResizeColumns = false; + this.dgvHM.AllowUserToResizeRows = false; + this.dgvHM.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.dgvHM.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvHM.Location = new System.Drawing.Point(256, 25); + this.dgvHM.Name = "dgvHM"; + this.dgvHM.Size = new System.Drawing.Size(240, 231); + this.dgvHM.TabIndex = 3; + // + // L_HM + // + this.L_HM.AutoSize = true; + this.L_HM.Location = new System.Drawing.Point(253, 9); + this.L_HM.Name = "L_HM"; + this.L_HM.Size = new System.Drawing.Size(27, 13); + this.L_HM.TabIndex = 4; + this.L_HM.Text = "HM:"; + // + // B_RTM + // + this.B_RTM.Location = new System.Drawing.Point(41, 1); + this.B_RTM.Name = "B_RTM"; + this.B_RTM.Size = new System.Drawing.Size(75, 23); + this.B_RTM.TabIndex = 5; + this.B_RTM.Text = "Randomize"; + this.B_RTM.UseVisualStyleBackColor = true; + this.B_RTM.Click += new System.EventHandler(this.B_RandomTM_Click); + // + // CHK_RandomizeHM + // + this.CHK_RandomizeHM.AutoSize = true; + this.CHK_RandomizeHM.Location = new System.Drawing.Point(13, 19); + this.CHK_RandomizeHM.Name = "CHK_RandomizeHM"; + this.CHK_RandomizeHM.Size = new System.Drawing.Size(104, 17); + this.CHK_RandomizeHM.TabIndex = 280; + this.CHK_RandomizeHM.Text = "Randomize HMs"; + this.CHK_RandomizeHM.UseVisualStyleBackColor = true; + // + // CHK_RandomizeField + // + this.CHK_RandomizeField.AutoSize = true; + this.CHK_RandomizeField.Location = new System.Drawing.Point(13, 36); + this.CHK_RandomizeField.Name = "CHK_RandomizeField"; + this.CHK_RandomizeField.Size = new System.Drawing.Size(139, 17); + this.CHK_RandomizeField.TabIndex = 281; + this.CHK_RandomizeField.Text = "Randomize Field Moves"; + this.CHK_RandomizeField.UseVisualStyleBackColor = true; + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.CHK_RandomizeHM); + this.groupBox1.Controls.Add(this.CHK_RandomizeField); + this.groupBox1.Location = new System.Drawing.Point(256, 262); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(240, 63); + this.groupBox1.TabIndex = 282; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Randomization Settings"; + // + // TMHMEditor6 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(504, 332); + this.Controls.Add(this.groupBox1); + this.Controls.Add(this.B_RTM); + this.Controls.Add(this.L_HM); + this.Controls.Add(this.dgvHM); + this.Controls.Add(this.L_TM); + this.Controls.Add(this.dgvTM); + this.MaximizeBox = false; + this.MaximumSize = new System.Drawing.Size(520, 670); + this.MinimumSize = new System.Drawing.Size(520, 370); + this.Name = "TMHMEditor6"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "TM / HM Editor"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form_Closing); + ((System.ComponentModel.ISupportInitialize)(this.dgvTM)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvHM)).EndInit(); + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.DataGridView dgvTM; + private System.Windows.Forms.Label L_TM; + private System.Windows.Forms.DataGridView dgvHM; + private System.Windows.Forms.Label L_HM; + private System.Windows.Forms.Button B_RTM; + private System.Windows.Forms.CheckBox CHK_RandomizeHM; + private System.Windows.Forms.CheckBox CHK_RandomizeField; + private System.Windows.Forms.GroupBox groupBox1; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen6/TMHMEditor6.cs b/pk3DS.WinForms/Subforms/Gen6/TMHMEditor6.cs new file mode 100644 index 0000000000..8334d952d6 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/TMHMEditor6.cs @@ -0,0 +1,239 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Windows.Forms; +using System.Linq; +using pk3DS.Core; + +namespace pk3DS.WinForms; + +public partial class TMHMEditor6 : Form +{ + public TMHMEditor6() + { + InitializeComponent(); + if (Main.ExeFSPath == null) { WinFormsUtil.Alert("No exeFS code to load."); Close(); } + string[] files = Directory.GetFiles(Main.ExeFSPath); + if (!File.Exists(files[0]) || !Path.GetFileNameWithoutExtension(files[0]).Contains("code")) { WinFormsUtil.Alert("No .code.bin detected."); Close(); } + data = File.ReadAllBytes(files[0]); + if (data.Length % 0x200 != 0) { WinFormsUtil.Alert(".code.bin not decompressed. Aborting."); Close(); } + offset = Util.IndexOfBytes(data, Signature, 0x400000, 0) + 8; + codebin = files[0]; + movelist[0] = ""; + SetupDGV(); + GetList(); + RandSettings.GetFormSettings(this, groupBox1.Controls); + } + + private static readonly byte[] Signature = [0xD4, 0x00, 0xAE, 0x02, 0xAF, 0x02, 0xB0, 0x02]; + private readonly string codebin; + private readonly string[] movelist = Main.Config.GetText(TextName.MoveNames); + private readonly int offset = Main.Config.ORAS ? 0x004A67EE : 0x00464796; // Default + private readonly byte[] data; + private int dataoffset; + + private void GetDataOffset() + { + dataoffset = offset; // reset + } + + private void SetupDGV() + { + dgvTM.Columns.Clear(); dgvHM.Columns.Clear(); + var dgvIndex = new DataGridViewTextBoxColumn(); + { + dgvIndex.HeaderText = "Index"; + dgvIndex.DisplayIndex = 0; + dgvIndex.Width = 45; + dgvIndex.ReadOnly = true; + dgvIndex.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; + dgvIndex.SortMode = DataGridViewColumnSortMode.NotSortable; + } + var dgvMove = new DataGridViewComboBoxColumn(); + { + dgvMove.HeaderText = "Move"; + dgvMove.DisplayIndex = 1; + dgvMove.Items.AddRange(movelist); // add only the Names + + dgvMove.Width = 133; + dgvMove.FlatStyle = FlatStyle.Flat; + dgvIndex.SortMode = DataGridViewColumnSortMode.NotSortable; + } + dgvTM.Columns.Add(dgvIndex); + dgvTM.Columns.Add(dgvMove); + dgvHM.Columns.Add((DataGridViewColumn)dgvIndex.Clone()); + dgvHM.Columns.Add((DataGridViewColumn)dgvMove.Clone()); + } + + private List tms = []; + private List hms = []; + + private void GetList() + { + tms = []; + hms = []; + dgvTM.Rows.Clear(); + + GetDataOffset(); + for (int i = 0; i < 92; i++) // 1-92 TMs stored sequentially + tms.Add(BitConverter.ToUInt16(data, dataoffset + (2 * i))); + for (int i = 92; i < 92 + 5; i++) + hms.Add(BitConverter.ToUInt16(data, dataoffset + (2 * i))); + if (Main.Config.ORAS) + { + hms.Add(BitConverter.ToUInt16(data, dataoffset + (2 * 97))); + for (int i = 98; i < 106; i++) + tms.Add(BitConverter.ToUInt16(data, dataoffset + (2 * i))); + hms.Add(BitConverter.ToUInt16(data, dataoffset + (2 * 106))); + } + else + { + for (int i = 97; i < 105; i++) + tms.Add(BitConverter.ToUInt16(data, dataoffset + (2 * i))); + } + + ushort[] tmlist = [.. tms]; + ushort[] hmlist = [.. hms]; + for (int i = 0; i < tmlist.Length; i++) + { dgvTM.Rows.Add(); dgvTM.Rows[i].Cells[0].Value = (i + 1).ToString(); dgvTM.Rows[i].Cells[1].Value = movelist[tmlist[i]]; } + for (int i = 0; i < hmlist.Length; i++) + { dgvHM.Rows.Add(); dgvHM.Rows[i].Cells[0].Value = (i + 1).ToString(); dgvHM.Rows[i].Cells[1].Value = movelist[hmlist[i]]; } + } + + private void SetList() + { + // Gather TM/HM list. + tms = []; + hms = []; + for (int i = 0; i < dgvTM.Rows.Count; i++) + tms.Add((ushort)Array.IndexOf(movelist, dgvTM.Rows[i].Cells[1].Value)); + + for (int i = 0; i < dgvHM.Rows.Count; i++) + hms.Add((ushort)Array.IndexOf(movelist, dgvHM.Rows[i].Cells[1].Value)); + + ushort[] tmlist = [.. tms]; + ushort[] hmlist = [.. hms]; + + // Set TM/HM list in + for (int i = 0; i < 92; i++) + Array.Copy(BitConverter.GetBytes(tmlist[i]), 0, data, offset + (2 * i), 2); + for (int i = 92; i < 92 + 5; i++) + Array.Copy(BitConverter.GetBytes(hmlist[i - 92]), 0, data, offset + (2 * i), 2); + if (Main.Config.ORAS) + { + Array.Copy(BitConverter.GetBytes(hmlist[5]), 0, data, offset + (2 * 97), 2); + for (int i = 98; i < 106; i++) + Array.Copy(BitConverter.GetBytes(tmlist[i - 6]), 0, data, offset + (2 * i), 2); + Array.Copy(BitConverter.GetBytes(hmlist[6]), 0, data, offset + (2 * 106), 2); + } + else + { + for (int i = 97; i < 105; i++) + Array.Copy(BitConverter.GetBytes(tmlist[i - 5]), 0, data, offset + (2 * i), 2); + } + + // Set Move Text Descriptions back into Item Text File + string[] itemDescriptions = Main.Config.GetText(TextName.ItemFlavor); + string[] moveDescriptions = Main.Config.GetText(TextName.MoveFlavor); + for (int i = 1 - 1; i <= 92 - 1; i++) // TM01 - TM92 + itemDescriptions[328 + i] = moveDescriptions[tmlist[i]]; + for (int i = 93 - 1; i <= 95 - 1; i++) // TM92 - TM95 + itemDescriptions[618 + i - 92] = moveDescriptions[tmlist[i]]; + for (int i = 96 - 1; i <= 100 - 1; i++) // TM96 - TM100 + itemDescriptions[690 + i - 95] = moveDescriptions[tmlist[i]]; + for (int i = 1 - 1; i <= 5 - 1; i++) // HM01 - HM05 + itemDescriptions[420 + i] = moveDescriptions[hmlist[i]]; + if (Main.Config.ORAS) + { + itemDescriptions[425] = moveDescriptions[hmlist[5]]; // HM06 + itemDescriptions[737] = moveDescriptions[hmlist[6]]; // HM07 + } + Main.Config.SetText(TextName.ItemFlavor, itemDescriptions); + } + + private void Form_Closing(object sender, FormClosingEventArgs e) + { + SetList(); + File.WriteAllBytes(codebin, data); + RandSettings.SetFormSettings(this, groupBox1.Controls); + } + + private void B_RandomTM_Click(object sender, EventArgs e) + { + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomize TMs? Cannot undo.", "Move compatibility will be the same as the base TMs.") != DialogResult.Yes) return; + if (CHK_RandomizeHM.Checked && WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomizing HMs can halt story progression!", "Continue anyway?") != DialogResult.Yes) return; + + int[] randomMoves = Enumerable.Range(1, movelist.Length - 1).Select(i => i).ToArray(); + Util.Shuffle(randomMoves); + + int[] hm_xy = [015, 019, 057, 070, 127]; + int[] hm_ao = [.. hm_xy, .. new[] { 249, 291 }]; + int[] field = [148, 249, 290]; // TMs with field effects + int[] banned = [165, 621]; // Struggle and Hyperspace Fury + int ctr = 0; + + for (int i = 0; i < dgvTM.Rows.Count; i++) + { + // randomize all TMs + if (CHK_RandomizeField.Checked) + { + while (banned.Contains(randomMoves[ctr])) ctr++; + dgvTM.Rows[i].Cells[1].Value = movelist[randomMoves[ctr++]]; + } + + // randomize all TMs, no Field Moves + else + { + int val = Array.IndexOf(movelist, dgvTM.Rows[i].Cells[1].Value); + if (hm_xy.Contains(val) || hm_ao.Contains(val) || field.Contains(val)) continue; // skip banned moves + while (hm_xy.Contains(randomMoves[ctr]) || hm_ao.Contains(randomMoves[ctr]) || field.Contains(randomMoves[ctr]) || banned.Contains(randomMoves[ctr])) ctr++; + dgvTM.Rows[i].Cells[1].Value = movelist[randomMoves[ctr++]]; + } + } + + if (CHK_RandomizeHM.Checked) + { + for (int j = 0; j < dgvHM.Rows.Count; j++) + { + while (banned.Contains(randomMoves[ctr])) ctr++; + dgvHM.Rows[j].Cells[1].Value = movelist[randomMoves[ctr++]]; + } + } + WinFormsUtil.Alert("Randomized!"); + } + + internal static void GetTMHMList(out ushort[] TMs, out ushort[] HMs) + { + TMs = []; + HMs = []; + if (Main.ExeFSPath == null) return; + string[] files = Directory.GetFiles(Main.ExeFSPath); + if (!File.Exists(files[0]) || !Path.GetFileNameWithoutExtension(files[0]).Contains("code")) return; + byte[] data = File.ReadAllBytes(files[0]); + int dataoffset = Util.IndexOfBytes(data, Signature, 0x400000, 0) + 8; + if (data.Length % 0x200 != 0) return; + + List tms = []; + List hms = []; + + for (int i = 0; i < 92; i++) // 1-92 TMs stored sequentially + tms.Add(BitConverter.ToUInt16(data, dataoffset + (2 * i))); + for (int i = 92; i < 92 + 5; i++) + hms.Add(BitConverter.ToUInt16(data, dataoffset + (2 * i))); + if (Main.Config.ORAS) + { + hms.Add(BitConverter.ToUInt16(data, dataoffset + (2 * 97))); + for (int i = 98; i < 106; i++) + tms.Add(BitConverter.ToUInt16(data, dataoffset + (2 * i))); + hms.Add(BitConverter.ToUInt16(data, dataoffset + (2 * 106))); + } + else + { + for (int i = 97; i < 105; i++) + tms.Add(BitConverter.ToUInt16(data, dataoffset + (2 * i))); + } + + TMs = [.. tms]; + HMs = [.. hms]; + } +} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/TMHMEditor6.resx b/pk3DS.WinForms/Subforms/Gen6/TMHMEditor6.resx similarity index 100% rename from pk3DS/Subforms/Gen6/TMHMEditor6.resx rename to pk3DS.WinForms/Subforms/Gen6/TMHMEditor6.resx diff --git a/pk3DS.WinForms/Subforms/Gen6/TitleScreenEditor6.Designer.cs b/pk3DS.WinForms/Subforms/Gen6/TitleScreenEditor6.Designer.cs new file mode 100644 index 0000000000..47e92a4bf5 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/TitleScreenEditor6.Designer.cs @@ -0,0 +1,118 @@ +namespace pk3DS.WinForms; + +sealed partial class TitleScreenEditor6 +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.PB_Image = new System.Windows.Forms.PictureBox(); + this.CB_DARC = new System.Windows.Forms.ComboBox(); + this.CB_File = new System.Windows.Forms.ComboBox(); + this.L_DARCSelect = new System.Windows.Forms.Label(); + this.L_Dimensions = new System.Windows.Forms.Label(); + ((System.ComponentModel.ISupportInitialize)(this.PB_Image)).BeginInit(); + this.SuspendLayout(); + // + // PB_Image + // + this.PB_Image.Location = new System.Drawing.Point(12, 66); + this.PB_Image.Name = "PB_Image"; + this.PB_Image.Size = new System.Drawing.Size(400, 240); + this.PB_Image.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; + this.PB_Image.TabIndex = 0; + this.PB_Image.TabStop = false; + this.PB_Image.Click += new System.EventHandler(this.PB_Image_Click); + // + // CB_DARC + // + this.CB_DARC.FormattingEnabled = true; + this.CB_DARC.Location = new System.Drawing.Point(58, 8); + this.CB_DARC.Name = "CB_DARC"; + this.CB_DARC.Size = new System.Drawing.Size(100, 21); + this.CB_DARC.TabIndex = 1; + this.CB_DARC.SelectedIndexChanged += new System.EventHandler(this.ChangeDARC); + // + // CB_File + // + this.CB_File.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.CB_File.FormattingEnabled = true; + this.CB_File.Location = new System.Drawing.Point(12, 35); + this.CB_File.Name = "CB_File"; + this.CB_File.Size = new System.Drawing.Size(400, 21); + this.CB_File.TabIndex = 2; + this.CB_File.SelectedIndexChanged += new System.EventHandler(this.ChangeFile); + // + // L_DARCSelect + // + this.L_DARCSelect.AutoSize = true; + this.L_DARCSelect.Location = new System.Drawing.Point(12, 11); + this.L_DARCSelect.Name = "L_DARCSelect"; + this.L_DARCSelect.Size = new System.Drawing.Size(40, 13); + this.L_DARCSelect.TabIndex = 3; + this.L_DARCSelect.Text = "DARC:"; + // + // L_Dimensions + // + this.L_Dimensions.AutoSize = true; + this.L_Dimensions.Location = new System.Drawing.Point(164, 11); + this.L_Dimensions.Name = "L_Dimensions"; + this.L_Dimensions.Size = new System.Drawing.Size(61, 13); + this.L_Dimensions.TabIndex = 4; + this.L_Dimensions.Text = "Dimensions"; + // + // TitleScreen + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(424, 316); + this.Controls.Add(this.L_Dimensions); + this.Controls.Add(this.L_DARCSelect); + this.Controls.Add(this.CB_File); + this.Controls.Add(this.CB_DARC); + this.Controls.Add(this.PB_Image); + this.MaximizeBox = false; + this.MaximumSize = new System.Drawing.Size(555, 420); + this.MinimumSize = new System.Drawing.Size(440, 354); + this.Name = "TitleScreenEditor6"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Title Screen Editor"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form_Closing); + ((System.ComponentModel.ISupportInitialize)(this.PB_Image)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.PictureBox PB_Image; + private System.Windows.Forms.ComboBox CB_DARC; + private System.Windows.Forms.ComboBox CB_File; + private System.Windows.Forms.Label L_DARCSelect; + private System.Windows.Forms.Label L_Dimensions; + +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen6/TitleScreenEditor6.cs b/pk3DS.WinForms/Subforms/Gen6/TitleScreenEditor6.cs new file mode 100644 index 0000000000..1c26d71cf0 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/TitleScreenEditor6.cs @@ -0,0 +1,338 @@ +using pk3DS.Core.CTR; +using System; +using System.Drawing; +using System.Drawing.Imaging; +using System.IO; +using System.Linq; +using System.Windows.Forms; +using pk3DS.Core; + +namespace pk3DS.WinForms; + +public sealed partial class TitleScreenEditor6 : Form +{ + private readonly bool compressed = Main.Config.ORAS; + + public TitleScreenEditor6() + { + InitializeComponent(); + AllowDrop = true; + DragEnter += TC_Main_DragEnter; + DragDrop += TC_Main_DragDrop; + PB_Image.AllowDrop = true; + PB_Image.DragEnter += TC_Main_DragEnter; + PB_Image.DragDrop += TC_Main_DragDrop; + + // Add tooltip to image + new ToolTip().SetToolTip(PB_Image, "Click to toggle Green Screen\nRightClick for I/O\nCTRL+Click for Copy->Clipboard."); + + // Add context menus + var mnu = new ContextMenuStrip(); + var mnuR = new ToolStripMenuItem("Replace with..."); + var mnuS = new ToolStripMenuItem("Save as..."); + // Assign event handlers + mnuR.Click += ClickOpen; + mnuS.Click += ClickSave; + // Add to main context menu + mnu.Items.AddRange(new[] { mnuR, mnuS }); + + // Assign + PB_Image.ContextMenuStrip = mnu; + + // Set up languages + string[] languages = [.. (Main.Config.ORAS ? ["JP1"] : Array.Empty()), .. new[] { "DE", "ES", "FR", "IT", "JP", "KO", "EN" }]; + string[] games = Main.Config.ORAS ? ["OR", "AS"] : ["X", "Y"]; + for (int i = 0; i < darcs.Length / 2; i++) + CB_DARC.Items.Add($"{games[0]} - {languages[i]}"); + for (int i = darcs.Length / 2; i < darcs.Length; i++) + CB_DARC.Items.Add($"{games[1]} - {languages[i - (darcs.Length / 2)]}"); + + // Load darcs + for (int i = 0; i < darcs.Length; i++) + { + // Get DARC name and assign the decompressed name + usedFiles[i] = "titlescreen\\" + (compressed ? "dec_" : "") + Path.GetFileName(files[darcFiles[i]]); + if (compressed) // Decompress file (XY does not compress) + LZSS.Decompress(files[darcFiles[i]], usedFiles[i]); + // Read decompressed file + var data = File.ReadAllBytes(usedFiles[i]); + + // Find darc data offset (ignore header) + int pos = 0; + while (BitConverter.ToUInt32(data, pos) != 0x63726164) + { + pos += 4; + if (pos >= data.Length) + throw new Exception("Invalid DARC?\n\n" + usedFiles[i]); + } + var darcData = data.Skip(pos).ToArray(); + darcs[i] = new pk3DS.Core.CTR.DARC(darcData); + } + + CB_DARC.SelectedIndex = CB_DARC.Items.Count - 1; // last (english game2) + } + + private readonly string[] files = Directory.GetFiles("titlescreen"); + private readonly pk3DS.Core.CTR.DARC[] darcs = new pk3DS.Core.CTR.DARC[2 * (Main.Config.ORAS ? 8 : 7)]; + private readonly string[] usedFiles = new string[2 * (Main.Config.ORAS ? 8 : 7)]; + + private readonly int[] darcFiles = Main.Config.ORAS + ? + [ + 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, + 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, + ] + : + [ + 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 479, 480, + ]; + + private void ChangeDARC(object sender, EventArgs e) + { + // When the darc is changed, we need to re-load the files + CB_File.Items.Clear(); + var darc = darcs[CB_DARC.SelectedIndex]; + for (int i = 0; i < darc.Entries.Length; i++) + { + if (darc.FileNameTable[i].FileName.Contains(".bclim")) + CB_File.Items.Add(darc.FileNameTable[i].FileName); + } + + CB_File.SelectedIndex = CB_File.Items.Count - 1; // Load last (version) + } + + private void ChangeFile(object sender, EventArgs e) + { + // When the file is changed, we need to display the new file. + string filename = CB_File.Text; + int entry = -1; + // Find entry in darc + var darc = darcs[CB_DARC.SelectedIndex]; + for (int i = 0; i < darc.Entries.Length; i++) + { + if (darc.FileNameTable[i].FileName != filename) + continue; + entry = i; + break; + } + + if (entry < 0) throw new Exception("File not found!?"); + + // Load file + var en = darc.Entries[entry]; + var data = new byte[en.DataLength]; + var ofs = en.DataOffset - darc.Header.FileDataOffset; + Array.Copy(darc.Data, ofs, data, 0, data.Length); + BCLIM bclim = BCLIM.Analyze(data, filename); + Image CropBMP = bclim.GetBitmap(); + + PB_Image.Image = CropBMP; + // store image locally for saving if need be + currentBytes = data; + + L_Dimensions.Text = $"Dimensions: {PB_Image.Width}w && {PB_Image.Height}h"; + } + + private byte[] currentBytes; + + private void InsertFile(string path) + { + if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Overwrite image?")) + return; + byte[] bclim; + + if (Path.GetExtension(path) == ".bclim") // bclim opened + { + byte[] data = File.ReadAllBytes(path); + var img = BCLIM.Analyze(data, path); + if (img.Width != PB_Image.Width || img.Height != PB_Image.Height) + { + WinFormsUtil.Alert("Image sizes do not match.", + $"Width: {img.Width} - {PB_Image.Width}\nHeight: {img.Height} - {PB_Image.Height}"); + return; + } + bclim = data; + } + else // image + { + Image img = Image.FromFile(path); + if (img.Width != PB_Image.Width || img.Height != PB_Image.Height) + { + WinFormsUtil.Alert("Image sizes do not match.", + $"Width: {img.Width} - {PB_Image.Width}\nHeight: {img.Height} - {PB_Image.Height}"); + return; + } + bclim = BCLIM.IMGToBCLIM(img, '9'); + } + + string filename = CB_File.Text; + int entry = -1; + // Find entry in darc + var darc = darcs[CB_DARC.SelectedIndex]; + for (int i = 0; i < darc.Entries.Length; i++) + { + if (darc.FileNameTable[i].FileName == filename) + { + entry = i; + break; + } + } + + if (entry < 0) throw new Exception("File not found!?"); + + pk3DS.Core.CTR.DARC.InsertFile(ref darc, entry, bclim); + darcs[CB_DARC.SelectedIndex] = darc; + + // Trigger reloading of the image + ChangeFile(null, null); + } + + // Dropping file in + private void TC_Main_DragEnter(object sender, DragEventArgs e) + { + if (e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = DragDropEffects.Copy; + } + + private void TC_Main_DragDrop(object sender, DragEventArgs e) + { + string path = ((string[])e.Data.GetData(DataFormats.FileDrop))[0]; // open first D&D + InsertFile(path); + } + + private void Form_Closing(object sender, FormClosingEventArgs e) + { + if (compressed) + WinFormsUtil.Alert("Recompressing may take some time...", "Don't panic if the Progress Bar doesn't move!"); + // Write darcs + for (int i = 0; i < darcs.Length; i++) + { + var data = File.ReadAllBytes(usedFiles[i]); + int pos = 0; + while (BitConverter.ToUInt32(data, pos) != 0x63726164) + { + pos += 4; + if (pos >= data.Length) return; + } + byte[] preData = data.Take(pos).ToArray(); + byte[] darcData = pk3DS.Core.CTR.DARC.SetDARC(darcs[i]); + byte[] newData = [.. preData, .. darcData]; + + byte[] oldDarc = File.ReadAllBytes(usedFiles[i]); + if (newData.SequenceEqual(oldDarc)) // if same, just continue. + { + if (compressed) + File.Delete(usedFiles[i]); // Use old compressed file (speedup) + } + else // File is different, replace and allow repacking to compress. + { + if (compressed) + File.Delete(files[darcFiles[i]]); // delete the old compressed file + File.WriteAllBytes(usedFiles[i], newData); // write the new edited (uncompressed) file + } + } + } + + private void ClickSave(object sender, EventArgs e) + { + var sfd = new SaveFileDialog + { + FileName = Path.GetFileNameWithoutExtension(CB_File.Text), + Filter = "PNG Image|*.png|BCLIM Image|*.bclim", + }; + if (sfd.ShowDialog() != DialogResult.OK) return; + if (sfd.FilterIndex == 2) // BCLIM + { + byte[] data = currentBytes; + File.WriteAllBytes(sfd.FileName, data); + } + else // PNG + { + Image img = PB_Image.Image; + using var ms = new MemoryStream(); + //error will throw from here + img.Save(ms, ImageFormat.Png); + byte[] data = ms.ToArray(); + File.WriteAllBytes(sfd.FileName, data); + } + } + + private void ClickOpen(object sender, EventArgs e) + { + var ofd = new OpenFileDialog + { + FileName = Path.GetFileNameWithoutExtension(CB_File.Text), + Filter = "PNG Image|*.png|BCLIM Image|*.bclim", + }; + if (ofd.ShowDialog() != DialogResult.OK) return; + + InsertFile(ofd.FileName); + } + + private void PB_Image_Click(object sender, EventArgs e) + { + if (ModifierKeys == Keys.Control && WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Copy image to clipboard?") == DialogResult.Yes) + Clipboard.SetImage(PB_Image.BackgroundImage); + else if (PB_Image.BackColor == Color.Transparent) + PB_Image.BackColor = Color.GreenYellow; + else PB_Image.BackColor = Color.Transparent; + } +} +#region Documentation +/* Files: + * X + * 467 - X (DE) + * 468 - X (ES) + * 469 - X (FR) + * 470 - X (IT) + * 471 - X (JP) + * 472 - X (KO) + * 473 - X (EN) + * Y + * 474 - Y (DE) + * 475 - Y (ES) + * 476 - Y (FR) + * 477 - Y (IT) + * 478 - Y (JP) + * 479 - Y (KO) + * 480 - Y (EN) + * + * Ruby + * 1120 - オメガルビー (JP) [Single File] + * 1121 - Omega Rubin (DE) + * 1122 - Rubí Omega (ES) + * 1123 - Rubis Oméga (FR) + * 1124 - Rubino Omega (IT) + * 1125 - オメガルビー (JP) + * 1126 - 오메가루비 (KO) + * 1127 - Omega Ruby (EN) + * Sapphire + * 1128 - アルファサファイア (JP) [Single File] + * 1129 - Alpha Saphir (DE) + * 1130 - Zafiro Alfa (ES) + * 1131 - Saphir Alpha (FR) + * 1132 - Zaffiro Alpha (IT) + * 1133 - アルファサファイア (JP) + * 1134 - 알파사파이어 (KO) + * 1135 - Alpha Sapphire (EN) + */ +/* X/Y Title Logos + * \timg\logo_*00.bclim - White Blurred GameVersion & Colored VersionXY + * \timg\logo_*01.bclim - Blurred GameVersion + * \timg\logo_*02.bclim - Blurred GameVersion & Blurred Colored VersionXY + * \timg\logo_*03.bclim - Version + */ +/* OR/AS Title Logos [Single File] + * \timg\title_logo_sapphire.bclim + */ +/* OR/AS Title Logos (Separate) + * \timg\titlelogo_*02.bclim - Blurred Logo + * \timg\titlelogo_*04.bclim - Pokémon whiteback + * \timg\titlelogo_*05.bclim - GameVersion Blurred 1 + * \timg\titlelogo_*06.bclim - GameVersion Blurred 2 + * \timg\title_logo_*01.bclim - Top half of logo (Pokémon) + * \timg\title_logo_*02.bclim - Bottom half of logo (VERSION) + * + * Note: JP/KO are appended with _j or _jp (_ko etc) + */ +#endregion \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/TitleScreenEditor6.resx b/pk3DS.WinForms/Subforms/Gen6/TitleScreenEditor6.resx similarity index 100% rename from pk3DS/Subforms/Gen6/TitleScreenEditor6.resx rename to pk3DS.WinForms/Subforms/Gen6/TitleScreenEditor6.resx diff --git a/pk3DS.WinForms/Subforms/Gen6/TrainerRand.Designer.cs b/pk3DS.WinForms/Subforms/Gen6/TrainerRand.Designer.cs new file mode 100644 index 0000000000..4618a88b5f --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/TrainerRand.Designer.cs @@ -0,0 +1,819 @@ +namespace pk3DS.WinForms; + +partial class TrainerRand +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.CHK_RandomPKM = new System.Windows.Forms.CheckBox(); + this.CHK_RandomItems = new System.Windows.Forms.CheckBox(); + this.CHK_RandomAbilities = new System.Windows.Forms.CheckBox(); + this.CHK_RandomGift = new System.Windows.Forms.CheckBox(); + this.CHK_RandomClass = new System.Windows.Forms.CheckBox(); + this.CHK_MaxDiffAI = new System.Windows.Forms.CheckBox(); + this.CHK_MaxDiffPKM = new System.Windows.Forms.CheckBox(); + this.B_OK = new System.Windows.Forms.Button(); + this.B_Cancel = new System.Windows.Forms.Button(); + this.NUD_GiftPercent = new System.Windows.Forms.NumericUpDown(); + this.label1 = new System.Windows.Forms.Label(); + this.NUD_Level = new System.Windows.Forms.NumericUpDown(); + this.CHK_Level = new System.Windows.Forms.CheckBox(); + this.GB_Tweak = new System.Windows.Forms.GroupBox(); + this.NUD_ForceFullyEvolved = new System.Windows.Forms.NumericUpDown(); + this.CHK_GymE4Only = new System.Windows.Forms.CheckBox(); + this.CHK_ForceFullyEvolved = new System.Windows.Forms.CheckBox(); + this.CHK_GymTrainers = new System.Windows.Forms.CheckBox(); + this.CHK_StoryMEvos = new System.Windows.Forms.CheckBox(); + this.CHK_RandomMegaForm = new System.Windows.Forms.CheckBox(); + this.CHK_TypeTheme = new System.Windows.Forms.CheckBox(); + this.CHK_BST = new System.Windows.Forms.CheckBox(); + this.CHK_E = new System.Windows.Forms.CheckBox(); + this.CHK_L = new System.Windows.Forms.CheckBox(); + this.CHK_G6 = new System.Windows.Forms.CheckBox(); + this.CHK_G5 = new System.Windows.Forms.CheckBox(); + this.CHK_G4 = new System.Windows.Forms.CheckBox(); + this.CHK_G3 = new System.Windows.Forms.CheckBox(); + this.CHK_G2 = new System.Windows.Forms.CheckBox(); + this.CHK_G1 = new System.Windows.Forms.CheckBox(); + this.CHK_6PKM = new System.Windows.Forms.CheckBox(); + this.CHK_IgnoreSpecialClass = new System.Windows.Forms.CheckBox(); + this.CHK_OnlySingles = new System.Windows.Forms.CheckBox(); + this.NUD_Damage = new System.Windows.Forms.NumericUpDown(); + this.CHK_Damage = new System.Windows.Forms.CheckBox(); + this.CHK_STAB = new System.Windows.Forms.CheckBox(); + this.NUD_STAB = new System.Windows.Forms.NumericUpDown(); + this.CB_Moves = new System.Windows.Forms.ComboBox(); + this.L_Moves = new System.Windows.Forms.Label(); + this.CHK_NoFixedDamage = new System.Windows.Forms.CheckBox(); + this.CHK_ForceHighPower = new System.Windows.Forms.CheckBox(); + this.NUD_ForceHighPower = new System.Windows.Forms.NumericUpDown(); + this.L_MinPKM = new System.Windows.Forms.Label(); + this.L_MaxPKM = new System.Windows.Forms.Label(); + this.NUD_RMin = new System.Windows.Forms.NumericUpDown(); + this.NUD_RMax = new System.Windows.Forms.NumericUpDown(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_GiftPercent)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Level)).BeginInit(); + this.GB_Tweak.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_ForceFullyEvolved)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Damage)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_STAB)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_ForceHighPower)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_RMin)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_RMax)).BeginInit(); + this.SuspendLayout(); + // + // CHK_RandomPKM + // + this.CHK_RandomPKM.AutoSize = true; + this.CHK_RandomPKM.Checked = true; + this.CHK_RandomPKM.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_RandomPKM.Location = new System.Drawing.Point(12, 26); + this.CHK_RandomPKM.Name = "CHK_RandomPKM"; + this.CHK_RandomPKM.Size = new System.Drawing.Size(114, 17); + this.CHK_RandomPKM.TabIndex = 0; + this.CHK_RandomPKM.Text = "Random Pokémon"; + this.CHK_RandomPKM.UseVisualStyleBackColor = true; + this.CHK_RandomPKM.CheckedChanged += new System.EventHandler(this.CHK_RandomPKM_CheckedChanged); + // + // CHK_RandomItems + // + this.CHK_RandomItems.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.CHK_RandomItems.AutoSize = true; + this.CHK_RandomItems.Checked = true; + this.CHK_RandomItems.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_RandomItems.Location = new System.Drawing.Point(21, 372); + this.CHK_RandomItems.Name = "CHK_RandomItems"; + this.CHK_RandomItems.Size = new System.Drawing.Size(119, 17); + this.CHK_RandomItems.TabIndex = 6; + this.CHK_RandomItems.Text = "Random Held Items"; + this.CHK_RandomItems.UseVisualStyleBackColor = true; + // + // CHK_RandomAbilities + // + this.CHK_RandomAbilities.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.CHK_RandomAbilities.AutoSize = true; + this.CHK_RandomAbilities.Checked = true; + this.CHK_RandomAbilities.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_RandomAbilities.Location = new System.Drawing.Point(21, 387); + this.CHK_RandomAbilities.Name = "CHK_RandomAbilities"; + this.CHK_RandomAbilities.Size = new System.Drawing.Size(183, 17); + this.CHK_RandomAbilities.TabIndex = 7; + this.CHK_RandomAbilities.Text = "Random Abilities (1, 2, or Hidden)"; + this.CHK_RandomAbilities.UseVisualStyleBackColor = true; + // + // CHK_RandomGift + // + this.CHK_RandomGift.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.CHK_RandomGift.AutoSize = true; + this.CHK_RandomGift.Checked = true; + this.CHK_RandomGift.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_RandomGift.Location = new System.Drawing.Point(21, 466); + this.CHK_RandomGift.Name = "CHK_RandomGift"; + this.CHK_RandomGift.Size = new System.Drawing.Size(145, 17); + this.CHK_RandomGift.TabIndex = 10; + this.CHK_RandomGift.Text = "Random After-Battle Gifts"; + this.CHK_RandomGift.UseVisualStyleBackColor = true; + this.CHK_RandomGift.CheckedChanged += new System.EventHandler(this.CHK_RandomGift_CheckedChanged); + // + // CHK_RandomClass + // + this.CHK_RandomClass.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.CHK_RandomClass.AutoSize = true; + this.CHK_RandomClass.Checked = true; + this.CHK_RandomClass.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_RandomClass.Location = new System.Drawing.Point(21, 419); + this.CHK_RandomClass.Name = "CHK_RandomClass"; + this.CHK_RandomClass.Size = new System.Drawing.Size(141, 17); + this.CHK_RandomClass.TabIndex = 9; + this.CHK_RandomClass.Text = "Random Trainer Classes"; + this.CHK_RandomClass.UseVisualStyleBackColor = true; + this.CHK_RandomClass.CheckedChanged += new System.EventHandler(this.CHK_RandomClass_CheckedChanged); + // + // CHK_MaxDiffAI + // + this.CHK_MaxDiffAI.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.CHK_MaxDiffAI.AutoSize = true; + this.CHK_MaxDiffAI.Checked = true; + this.CHK_MaxDiffAI.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_MaxDiffAI.Location = new System.Drawing.Point(21, 481); + this.CHK_MaxDiffAI.Name = "CHK_MaxDiffAI"; + this.CHK_MaxDiffAI.Size = new System.Drawing.Size(95, 17); + this.CHK_MaxDiffAI.TabIndex = 13; + this.CHK_MaxDiffAI.Text = "Max Trainer AI"; + this.CHK_MaxDiffAI.UseVisualStyleBackColor = true; + // + // CHK_MaxDiffPKM + // + this.CHK_MaxDiffPKM.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.CHK_MaxDiffPKM.AutoSize = true; + this.CHK_MaxDiffPKM.Checked = true; + this.CHK_MaxDiffPKM.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_MaxDiffPKM.Location = new System.Drawing.Point(21, 402); + this.CHK_MaxDiffPKM.Name = "CHK_MaxDiffPKM"; + this.CHK_MaxDiffPKM.Size = new System.Drawing.Size(64, 17); + this.CHK_MaxDiffPKM.TabIndex = 8; + this.CHK_MaxDiffPKM.Text = "Max IVs"; + this.CHK_MaxDiffPKM.UseVisualStyleBackColor = true; + // + // B_OK + // + this.B_OK.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.B_OK.Location = new System.Drawing.Point(247, 457); + this.B_OK.Name = "B_OK"; + this.B_OK.Size = new System.Drawing.Size(50, 23); + this.B_OK.TabIndex = 14; + this.B_OK.Text = "OK"; + this.B_OK.UseVisualStyleBackColor = true; + this.B_OK.Click += new System.EventHandler(this.B_Save_Click); + // + // B_Cancel + // + this.B_Cancel.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.B_Cancel.Location = new System.Drawing.Point(247, 479); + this.B_Cancel.Name = "B_Cancel"; + this.B_Cancel.Size = new System.Drawing.Size(50, 23); + this.B_Cancel.TabIndex = 15; + this.B_Cancel.Text = "Cancel"; + this.B_Cancel.UseVisualStyleBackColor = true; + this.B_Cancel.Click += new System.EventHandler(this.B_Close_Click); + // + // NUD_GiftPercent + // + this.NUD_GiftPercent.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.NUD_GiftPercent.Location = new System.Drawing.Point(166, 463); + this.NUD_GiftPercent.Name = "NUD_GiftPercent"; + this.NUD_GiftPercent.Size = new System.Drawing.Size(43, 20); + this.NUD_GiftPercent.TabIndex = 11; + this.NUD_GiftPercent.Value = new decimal(new int[] { + 15, + 0, + 0, + 0}); + this.NUD_GiftPercent.ValueChanged += new System.EventHandler(this.ChangeGiftPercent); + // + // label1 + // + this.label1.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(211, 465); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(15, 13); + this.label1.TabIndex = 12; + this.label1.Text = "%"; + // + // NUD_Level + // + this.NUD_Level.DecimalPlaces = 2; + this.NUD_Level.Enabled = false; + this.NUD_Level.Increment = new decimal(new int[] { + 5, + 0, + 0, + 131072}); + this.NUD_Level.Location = new System.Drawing.Point(141, 6); + this.NUD_Level.Maximum = new decimal(new int[] { + 3, + 0, + 0, + 0}); + this.NUD_Level.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 65536}); + this.NUD_Level.Name = "NUD_Level"; + this.NUD_Level.Size = new System.Drawing.Size(43, 20); + this.NUD_Level.TabIndex = 3; + this.NUD_Level.Value = new decimal(new int[] { + 10, + 0, + 0, + 65536}); + this.NUD_Level.ValueChanged += new System.EventHandler(this.ChangeLevelPercent); + // + // CHK_Level + // + this.CHK_Level.AutoSize = true; + this.CHK_Level.Location = new System.Drawing.Point(12, 7); + this.CHK_Level.Name = "CHK_Level"; + this.CHK_Level.Size = new System.Drawing.Size(130, 17); + this.CHK_Level.TabIndex = 2; + this.CHK_Level.Text = "Multiply PKM Level by"; + this.CHK_Level.UseVisualStyleBackColor = true; + this.CHK_Level.CheckedChanged += new System.EventHandler(this.CHK_Level_CheckedChanged); + // + // GB_Tweak + // + this.GB_Tweak.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.GB_Tweak.Controls.Add(this.NUD_ForceFullyEvolved); + this.GB_Tweak.Controls.Add(this.CHK_GymE4Only); + this.GB_Tweak.Controls.Add(this.CHK_ForceFullyEvolved); + this.GB_Tweak.Controls.Add(this.CHK_GymTrainers); + this.GB_Tweak.Controls.Add(this.CHK_StoryMEvos); + this.GB_Tweak.Controls.Add(this.CHK_RandomMegaForm); + this.GB_Tweak.Controls.Add(this.CHK_TypeTheme); + this.GB_Tweak.Controls.Add(this.CHK_BST); + this.GB_Tweak.Controls.Add(this.CHK_E); + this.GB_Tweak.Controls.Add(this.CHK_L); + this.GB_Tweak.Controls.Add(this.CHK_G6); + this.GB_Tweak.Controls.Add(this.CHK_G5); + this.GB_Tweak.Controls.Add(this.CHK_G4); + this.GB_Tweak.Controls.Add(this.CHK_G3); + this.GB_Tweak.Controls.Add(this.CHK_G2); + this.GB_Tweak.Controls.Add(this.CHK_G1); + this.GB_Tweak.Location = new System.Drawing.Point(12, 49); + this.GB_Tweak.Name = "GB_Tweak"; + this.GB_Tweak.Size = new System.Drawing.Size(270, 154); + this.GB_Tweak.TabIndex = 323; + this.GB_Tweak.TabStop = false; + this.GB_Tweak.Text = "Options"; + // + // NUD_ForceFullyEvolved + // + this.NUD_ForceFullyEvolved.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.NUD_ForceFullyEvolved.Location = new System.Drawing.Point(168, 97); + this.NUD_ForceFullyEvolved.Name = "NUD_ForceFullyEvolved"; + this.NUD_ForceFullyEvolved.Size = new System.Drawing.Size(43, 20); + this.NUD_ForceFullyEvolved.TabIndex = 334; + this.NUD_ForceFullyEvolved.Value = new decimal(new int[] { + 50, + 0, + 0, + 0}); + // + // CHK_GymE4Only + // + this.CHK_GymE4Only.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.CHK_GymE4Only.AutoSize = true; + this.CHK_GymE4Only.Enabled = false; + this.CHK_GymE4Only.Location = new System.Drawing.Point(141, 132); + this.CHK_GymE4Only.Name = "CHK_GymE4Only"; + this.CHK_GymE4Only.Size = new System.Drawing.Size(125, 17); + this.CHK_GymE4Only.TabIndex = 295; + this.CHK_GymE4Only.Text = "Theme Gym/E4 Only"; + this.CHK_GymE4Only.UseVisualStyleBackColor = true; + // + // CHK_ForceFullyEvolved + // + this.CHK_ForceFullyEvolved.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.CHK_ForceFullyEvolved.AutoSize = true; + this.CHK_ForceFullyEvolved.Location = new System.Drawing.Point(9, 99); + this.CHK_ForceFullyEvolved.Name = "CHK_ForceFullyEvolved"; + this.CHK_ForceFullyEvolved.Size = new System.Drawing.Size(160, 17); + this.CHK_ForceFullyEvolved.TabIndex = 333; + this.CHK_ForceFullyEvolved.Text = "Force Fully Evolved at Level"; + this.CHK_ForceFullyEvolved.UseVisualStyleBackColor = true; + // + // CHK_GymTrainers + // + this.CHK_GymTrainers.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.CHK_GymTrainers.AutoSize = true; + this.CHK_GymTrainers.Enabled = false; + this.CHK_GymTrainers.Location = new System.Drawing.Point(9, 132); + this.CHK_GymTrainers.Name = "CHK_GymTrainers"; + this.CHK_GymTrainers.Size = new System.Drawing.Size(124, 17); + this.CHK_GymTrainers.TabIndex = 292; + this.CHK_GymTrainers.Text = "Theme Gym Trainers"; + this.CHK_GymTrainers.UseVisualStyleBackColor = true; + // + // CHK_StoryMEvos + // + this.CHK_StoryMEvos.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.CHK_StoryMEvos.AutoSize = true; + this.CHK_StoryMEvos.Checked = true; + this.CHK_StoryMEvos.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_StoryMEvos.Location = new System.Drawing.Point(9, 63); + this.CHK_StoryMEvos.Name = "CHK_StoryMEvos"; + this.CHK_StoryMEvos.Size = new System.Drawing.Size(168, 17); + this.CHK_StoryMEvos.TabIndex = 291; + this.CHK_StoryMEvos.Text = "Ensure Story Mega Evolutions"; + this.CHK_StoryMEvos.UseVisualStyleBackColor = true; + // + // CHK_RandomMegaForm + // + this.CHK_RandomMegaForm.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.CHK_RandomMegaForm.AutoSize = true; + this.CHK_RandomMegaForm.Location = new System.Drawing.Point(9, 81); + this.CHK_RandomMegaForm.Name = "CHK_RandomMegaForm"; + this.CHK_RandomMegaForm.Size = new System.Drawing.Size(127, 17); + this.CHK_RandomMegaForm.TabIndex = 294; + this.CHK_RandomMegaForm.Text = "Random Mega Forms"; + this.CHK_RandomMegaForm.UseVisualStyleBackColor = true; + // + // CHK_TypeTheme + // + this.CHK_TypeTheme.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.CHK_TypeTheme.AutoSize = true; + this.CHK_TypeTheme.Location = new System.Drawing.Point(9, 116); + this.CHK_TypeTheme.Name = "CHK_TypeTheme"; + this.CHK_TypeTheme.Size = new System.Drawing.Size(127, 17); + this.CHK_TypeTheme.TabIndex = 289; + this.CHK_TypeTheme.Text = "Type Theme Trainers"; + this.CHK_TypeTheme.UseVisualStyleBackColor = true; + this.CHK_TypeTheme.CheckedChanged += new System.EventHandler(this.CHK_TypeTheme_CheckedChanged); + // + // CHK_BST + // + this.CHK_BST.AutoSize = true; + this.CHK_BST.Location = new System.Drawing.Point(141, 46); + this.CHK_BST.Name = "CHK_BST"; + this.CHK_BST.Size = new System.Drawing.Size(117, 17); + this.CHK_BST.TabIndex = 288; + this.CHK_BST.Text = "Randomize by BST"; + this.CHK_BST.UseVisualStyleBackColor = true; + // + // CHK_E + // + this.CHK_E.AutoSize = true; + this.CHK_E.Checked = true; + this.CHK_E.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_E.Location = new System.Drawing.Point(141, 31); + this.CHK_E.Name = "CHK_E"; + this.CHK_E.Size = new System.Drawing.Size(98, 17); + this.CHK_E.TabIndex = 287; + this.CHK_E.Text = "Event Legends"; + this.CHK_E.UseVisualStyleBackColor = true; + // + // CHK_L + // + this.CHK_L.AutoSize = true; + this.CHK_L.Checked = true; + this.CHK_L.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_L.Location = new System.Drawing.Point(141, 16); + this.CHK_L.Name = "CHK_L"; + this.CHK_L.Size = new System.Drawing.Size(98, 17); + this.CHK_L.TabIndex = 286; + this.CHK_L.Text = "Game Legends"; + this.CHK_L.UseVisualStyleBackColor = true; + // + // CHK_G6 + // + this.CHK_G6.AutoSize = true; + this.CHK_G6.Checked = true; + this.CHK_G6.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G6.Location = new System.Drawing.Point(75, 46); + this.CHK_G6.Name = "CHK_G6"; + this.CHK_G6.Size = new System.Drawing.Size(55, 17); + this.CHK_G6.TabIndex = 285; + this.CHK_G6.Text = "Gen 6"; + this.CHK_G6.UseVisualStyleBackColor = true; + // + // CHK_G5 + // + this.CHK_G5.AutoSize = true; + this.CHK_G5.Checked = true; + this.CHK_G5.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G5.Location = new System.Drawing.Point(75, 31); + this.CHK_G5.Name = "CHK_G5"; + this.CHK_G5.Size = new System.Drawing.Size(55, 17); + this.CHK_G5.TabIndex = 284; + this.CHK_G5.Text = "Gen 5"; + this.CHK_G5.UseVisualStyleBackColor = true; + // + // CHK_G4 + // + this.CHK_G4.AutoSize = true; + this.CHK_G4.Checked = true; + this.CHK_G4.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G4.Location = new System.Drawing.Point(75, 16); + this.CHK_G4.Name = "CHK_G4"; + this.CHK_G4.Size = new System.Drawing.Size(55, 17); + this.CHK_G4.TabIndex = 283; + this.CHK_G4.Text = "Gen 4"; + this.CHK_G4.UseVisualStyleBackColor = true; + // + // CHK_G3 + // + this.CHK_G3.AutoSize = true; + this.CHK_G3.Checked = true; + this.CHK_G3.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G3.Location = new System.Drawing.Point(9, 46); + this.CHK_G3.Name = "CHK_G3"; + this.CHK_G3.Size = new System.Drawing.Size(55, 17); + this.CHK_G3.TabIndex = 282; + this.CHK_G3.Text = "Gen 3"; + this.CHK_G3.UseVisualStyleBackColor = true; + // + // CHK_G2 + // + this.CHK_G2.AutoSize = true; + this.CHK_G2.Checked = true; + this.CHK_G2.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G2.Location = new System.Drawing.Point(9, 31); + this.CHK_G2.Name = "CHK_G2"; + this.CHK_G2.Size = new System.Drawing.Size(55, 17); + this.CHK_G2.TabIndex = 281; + this.CHK_G2.Text = "Gen 2"; + this.CHK_G2.UseVisualStyleBackColor = true; + // + // CHK_G1 + // + this.CHK_G1.AutoSize = true; + this.CHK_G1.Checked = true; + this.CHK_G1.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G1.Location = new System.Drawing.Point(9, 16); + this.CHK_G1.Name = "CHK_G1"; + this.CHK_G1.Size = new System.Drawing.Size(55, 17); + this.CHK_G1.TabIndex = 280; + this.CHK_G1.Text = "Gen 1"; + this.CHK_G1.UseVisualStyleBackColor = true; + // + // CHK_6PKM + // + this.CHK_6PKM.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.CHK_6PKM.AutoSize = true; + this.CHK_6PKM.Location = new System.Drawing.Point(21, 207); + this.CHK_6PKM.Name = "CHK_6PKM"; + this.CHK_6PKM.Size = new System.Drawing.Size(183, 17); + this.CHK_6PKM.TabIndex = 293; + this.CHK_6PKM.Text = "6 Pokémon for Important Trainers"; + this.CHK_6PKM.UseVisualStyleBackColor = true; + this.CHK_6PKM.CheckedChanged += new System.EventHandler(this.CHK_6PKM_CheckedChanged); + // + // CHK_IgnoreSpecialClass + // + this.CHK_IgnoreSpecialClass.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.CHK_IgnoreSpecialClass.AutoSize = true; + this.CHK_IgnoreSpecialClass.Checked = true; + this.CHK_IgnoreSpecialClass.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_IgnoreSpecialClass.Location = new System.Drawing.Point(40, 435); + this.CHK_IgnoreSpecialClass.Name = "CHK_IgnoreSpecialClass"; + this.CHK_IgnoreSpecialClass.Size = new System.Drawing.Size(133, 17); + this.CHK_IgnoreSpecialClass.TabIndex = 324; + this.CHK_IgnoreSpecialClass.Text = "Ignore Special Classes"; + this.CHK_IgnoreSpecialClass.UseVisualStyleBackColor = true; + // + // CHK_OnlySingles + // + this.CHK_OnlySingles.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.CHK_OnlySingles.AutoSize = true; + this.CHK_OnlySingles.Checked = true; + this.CHK_OnlySingles.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_OnlySingles.Location = new System.Drawing.Point(40, 449); + this.CHK_OnlySingles.Name = "CHK_OnlySingles"; + this.CHK_OnlySingles.Size = new System.Drawing.Size(114, 17); + this.CHK_OnlySingles.TabIndex = 325; + this.CHK_OnlySingles.Text = "Only Single Battles"; + this.CHK_OnlySingles.UseVisualStyleBackColor = true; + // + // NUD_Damage + // + this.NUD_Damage.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.NUD_Damage.Location = new System.Drawing.Point(226, 332); + this.NUD_Damage.Maximum = new decimal(new int[] { + 4, + 0, + 0, + 0}); + this.NUD_Damage.Name = "NUD_Damage"; + this.NUD_Damage.Size = new System.Drawing.Size(35, 20); + this.NUD_Damage.TabIndex = 326; + this.NUD_Damage.Value = new decimal(new int[] { + 2, + 0, + 0, + 0}); + // + // CHK_Damage + // + this.CHK_Damage.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.CHK_Damage.AutoSize = true; + this.CHK_Damage.Checked = true; + this.CHK_Damage.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_Damage.Location = new System.Drawing.Point(21, 333); + this.CHK_Damage.Name = "CHK_Damage"; + this.CHK_Damage.Size = new System.Drawing.Size(192, 17); + this.CHK_Damage.TabIndex = 327; + this.CHK_Damage.Text = "Ensure at least # Damaging Moves"; + this.CHK_Damage.UseVisualStyleBackColor = true; + // + // CHK_STAB + // + this.CHK_STAB.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.CHK_STAB.AutoSize = true; + this.CHK_STAB.Checked = true; + this.CHK_STAB.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_STAB.Location = new System.Drawing.Point(21, 354); + this.CHK_STAB.Name = "CHK_STAB"; + this.CHK_STAB.Size = new System.Drawing.Size(172, 17); + this.CHK_STAB.TabIndex = 328; + this.CHK_STAB.Text = "Ensure at least # STAB Moves"; + this.CHK_STAB.UseVisualStyleBackColor = true; + // + // NUD_STAB + // + this.NUD_STAB.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.NUD_STAB.Location = new System.Drawing.Point(226, 353); + this.NUD_STAB.Maximum = new decimal(new int[] { + 4, + 0, + 0, + 0}); + this.NUD_STAB.Name = "NUD_STAB"; + this.NUD_STAB.Size = new System.Drawing.Size(35, 20); + this.NUD_STAB.TabIndex = 329; + this.NUD_STAB.Value = new decimal(new int[] { + 2, + 0, + 0, + 0}); + // + // CB_Moves + // + this.CB_Moves.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.CB_Moves.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_Moves.FormattingEnabled = true; + this.CB_Moves.Items.AddRange(new object[] { + "Don\'t Modify", + "Randomize All", + "Use Levelup Only", + "Metronome Mode"}); + this.CB_Moves.Location = new System.Drawing.Point(67, 269); + this.CB_Moves.Name = "CB_Moves"; + this.CB_Moves.Size = new System.Drawing.Size(135, 21); + this.CB_Moves.TabIndex = 330; + this.CB_Moves.SelectedIndexChanged += new System.EventHandler(this.ChangeMoveRandomization); + // + // L_Moves + // + this.L_Moves.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.L_Moves.AutoSize = true; + this.L_Moves.Location = new System.Drawing.Point(19, 272); + this.L_Moves.Name = "L_Moves"; + this.L_Moves.Size = new System.Drawing.Size(42, 13); + this.L_Moves.TabIndex = 331; + this.L_Moves.Text = "Moves:"; + // + // CHK_NoFixedDamage + // + this.CHK_NoFixedDamage.AutoSize = true; + this.CHK_NoFixedDamage.Checked = true; + this.CHK_NoFixedDamage.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_NoFixedDamage.Location = new System.Drawing.Point(21, 313); + this.CHK_NoFixedDamage.Name = "CHK_NoFixedDamage"; + this.CHK_NoFixedDamage.Size = new System.Drawing.Size(281, 17); + this.CHK_NoFixedDamage.TabIndex = 332; + this.CHK_NoFixedDamage.Text = "No Fixed Damage Moves (Dragon Rage/Sonic Boom)"; + this.CHK_NoFixedDamage.UseVisualStyleBackColor = true; + // + // CHK_ForceHighPower + // + this.CHK_ForceHighPower.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.CHK_ForceHighPower.AutoSize = true; + this.CHK_ForceHighPower.Location = new System.Drawing.Point(21, 293); + this.CHK_ForceHighPower.Name = "CHK_ForceHighPower"; + this.CHK_ForceHighPower.Size = new System.Drawing.Size(203, 17); + this.CHK_ForceHighPower.TabIndex = 344; + this.CHK_ForceHighPower.Text = "Force High-Powered Attacks at Level"; + this.CHK_ForceHighPower.UseVisualStyleBackColor = true; + // + // NUD_ForceHighPower + // + this.NUD_ForceHighPower.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.NUD_ForceHighPower.Location = new System.Drawing.Point(226, 291); + this.NUD_ForceHighPower.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.NUD_ForceHighPower.Name = "NUD_ForceHighPower"; + this.NUD_ForceHighPower.Size = new System.Drawing.Size(35, 20); + this.NUD_ForceHighPower.TabIndex = 343; + this.NUD_ForceHighPower.Value = new decimal(new int[] { + 50, + 0, + 0, + 0}); + // + // L_MinPKM + // + this.L_MinPKM.Location = new System.Drawing.Point(5, 224); + this.L_MinPKM.Name = "L_MinPKM"; + this.L_MinPKM.Size = new System.Drawing.Size(60, 20); + this.L_MinPKM.TabIndex = 348; + this.L_MinPKM.Text = "Min PKM:"; + this.L_MinPKM.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_MaxPKM + // + this.L_MaxPKM.Location = new System.Drawing.Point(5, 244); + this.L_MaxPKM.Name = "L_MaxPKM"; + this.L_MaxPKM.Size = new System.Drawing.Size(60, 20); + this.L_MaxPKM.TabIndex = 347; + this.L_MaxPKM.Text = "Max PKM:"; + this.L_MaxPKM.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_RMin + // + this.NUD_RMin.Location = new System.Drawing.Point(67, 224); + this.NUD_RMin.Maximum = new decimal(new int[] { + 6, + 0, + 0, + 0}); + this.NUD_RMin.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.NUD_RMin.Name = "NUD_RMin"; + this.NUD_RMin.Size = new System.Drawing.Size(40, 20); + this.NUD_RMin.TabIndex = 346; + this.NUD_RMin.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // NUD_RMax + // + this.NUD_RMax.Location = new System.Drawing.Point(67, 246); + this.NUD_RMax.Maximum = new decimal(new int[] { + 6, + 0, + 0, + 0}); + this.NUD_RMax.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.NUD_RMax.Name = "NUD_RMax"; + this.NUD_RMax.Size = new System.Drawing.Size(40, 20); + this.NUD_RMax.TabIndex = 345; + this.NUD_RMax.Value = new decimal(new int[] { + 6, + 0, + 0, + 0}); + // + // TrainerRand + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(304, 513); + this.Controls.Add(this.L_MinPKM); + this.Controls.Add(this.L_MaxPKM); + this.Controls.Add(this.NUD_RMin); + this.Controls.Add(this.NUD_RMax); + this.Controls.Add(this.CHK_ForceHighPower); + this.Controls.Add(this.NUD_ForceHighPower); + this.Controls.Add(this.CHK_NoFixedDamage); + this.Controls.Add(this.L_Moves); + this.Controls.Add(this.CHK_6PKM); + this.Controls.Add(this.CB_Moves); + this.Controls.Add(this.CHK_OnlySingles); + this.Controls.Add(this.GB_Tweak); + this.Controls.Add(this.NUD_GiftPercent); + this.Controls.Add(this.CHK_MaxDiffAI); + this.Controls.Add(this.CHK_MaxDiffPKM); + this.Controls.Add(this.CHK_RandomAbilities); + this.Controls.Add(this.CHK_RandomItems); + this.Controls.Add(this.NUD_Level); + this.Controls.Add(this.CHK_Level); + this.Controls.Add(this.label1); + this.Controls.Add(this.B_Cancel); + this.Controls.Add(this.B_OK); + this.Controls.Add(this.CHK_RandomGift); + this.Controls.Add(this.CHK_RandomPKM); + this.Controls.Add(this.CHK_IgnoreSpecialClass); + this.Controls.Add(this.CHK_RandomClass); + this.Controls.Add(this.NUD_STAB); + this.Controls.Add(this.CHK_STAB); + this.Controls.Add(this.CHK_Damage); + this.Controls.Add(this.NUD_Damage); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.MaximizeBox = false; + this.MaximumSize = new System.Drawing.Size(320, 840); + this.MinimumSize = new System.Drawing.Size(320, 240); + this.Name = "TrainerRand"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Trainer Battle Randomizer"; + ((System.ComponentModel.ISupportInitialize)(this.NUD_GiftPercent)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Level)).EndInit(); + this.GB_Tweak.ResumeLayout(false); + this.GB_Tweak.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_ForceFullyEvolved)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Damage)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_STAB)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_ForceHighPower)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_RMin)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_RMax)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.CheckBox CHK_RandomPKM; + private System.Windows.Forms.CheckBox CHK_RandomItems; + private System.Windows.Forms.CheckBox CHK_RandomAbilities; + private System.Windows.Forms.CheckBox CHK_RandomGift; + private System.Windows.Forms.CheckBox CHK_RandomClass; + private System.Windows.Forms.CheckBox CHK_MaxDiffAI; + private System.Windows.Forms.CheckBox CHK_MaxDiffPKM; + private System.Windows.Forms.Button B_OK; + private System.Windows.Forms.Button B_Cancel; + private System.Windows.Forms.NumericUpDown NUD_GiftPercent; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.NumericUpDown NUD_Level; + private System.Windows.Forms.CheckBox CHK_Level; + private System.Windows.Forms.GroupBox GB_Tweak; + private System.Windows.Forms.CheckBox CHK_BST; + private System.Windows.Forms.CheckBox CHK_E; + private System.Windows.Forms.CheckBox CHK_L; + private System.Windows.Forms.CheckBox CHK_G6; + private System.Windows.Forms.CheckBox CHK_G5; + private System.Windows.Forms.CheckBox CHK_G4; + private System.Windows.Forms.CheckBox CHK_G3; + private System.Windows.Forms.CheckBox CHK_G2; + private System.Windows.Forms.CheckBox CHK_G1; + private System.Windows.Forms.CheckBox CHK_TypeTheme; + private System.Windows.Forms.CheckBox CHK_StoryMEvos; + private System.Windows.Forms.CheckBox CHK_GymTrainers; + private System.Windows.Forms.CheckBox CHK_IgnoreSpecialClass; + private System.Windows.Forms.CheckBox CHK_OnlySingles; + private System.Windows.Forms.NumericUpDown NUD_Damage; + private System.Windows.Forms.CheckBox CHK_Damage; + private System.Windows.Forms.CheckBox CHK_STAB; + private System.Windows.Forms.NumericUpDown NUD_STAB; + private System.Windows.Forms.ComboBox CB_Moves; + private System.Windows.Forms.Label L_Moves; + private System.Windows.Forms.CheckBox CHK_6PKM; + private System.Windows.Forms.CheckBox CHK_RandomMegaForm; + private System.Windows.Forms.CheckBox CHK_GymE4Only; + private System.Windows.Forms.CheckBox CHK_NoFixedDamage; + private System.Windows.Forms.NumericUpDown NUD_ForceFullyEvolved; + private System.Windows.Forms.CheckBox CHK_ForceFullyEvolved; + private System.Windows.Forms.CheckBox CHK_ForceHighPower; + private System.Windows.Forms.NumericUpDown NUD_ForceHighPower; + private System.Windows.Forms.Label L_MinPKM; + private System.Windows.Forms.Label L_MaxPKM; + private System.Windows.Forms.NumericUpDown NUD_RMin; + private System.Windows.Forms.NumericUpDown NUD_RMax; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen6/TrainerRand.cs b/pk3DS.WinForms/Subforms/Gen6/TrainerRand.cs new file mode 100644 index 0000000000..b2ffdfa917 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/TrainerRand.cs @@ -0,0 +1,186 @@ +using pk3DS.Core; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; +using pk3DS.Core.Randomizers; + +namespace pk3DS.WinForms; + +public partial class TrainerRand : Form +{ + public TrainerRand() + { + InitializeComponent(); + CB_Moves.SelectedIndex = 1; + var trClassnorep = new List(); + trClassnorep.AddRange(trClass.Where(tclass => !trClassnorep.Contains(tclass) && !tclass.StartsWith("[~"))); + trClassnorep.Sort(); + RandSettings.GetFormSettings(this, Controls); + } + + //private readonly string[] trName = Main.Config.GetText(TextName.TrainerNames); + private readonly string[] trClass = Main.Config.GetText(TextName.TrainerClasses); + //private readonly List trClassnorep; + private static readonly int[] Legendary = Legal.Legendary_6; + private static readonly int[] Mythical = Legal.Mythical_6; + + private void B_Close_Click(object sender, EventArgs e) + { + Close(); + } + + private void B_Save_Click(object sender, EventArgs e) + { + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomize all? Cannot undo.", "Double check Randomization settings before continuing.") != DialogResult.Yes) + return; + + RSTE.rPKM = CHK_RandomPKM.Checked; + RSTE.rSmart = CHK_BST.Checked; + RSTE.rLevel = CHK_Level.Checked; + RSTE.rLevelMultiplier = NUD_Level.Value; + RSTE.rNoFixedDamage = CHK_NoFixedDamage.Checked; + + RSTE.rMove = CB_Moves.SelectedIndex == 1; + RSTE.rNoMove = CB_Moves.SelectedIndex == 2; + RSTE.rMetronome = CB_Moves.SelectedIndex == 3; + if (RSTE.rMove) + { + RSTE.rDMG = CHK_Damage.Checked; + if (RSTE.rDMG) + RSTE.rDMGCount = (int)NUD_Damage.Value; + RSTE.rSTAB = CHK_STAB.Checked; + if (RSTE.rSTAB) + RSTE.rSTABCount = (int)NUD_STAB.Value; + } + RSTE.rItem = CHK_RandomItems.Checked; + RSTE.rAbility = CHK_RandomAbilities.Checked; + RSTE.rDiffIV = CHK_MaxDiffPKM.Checked; + + RSTE.rClass = CHK_RandomClass.Checked; + if (RSTE.rClass) + { + RSTE.rIgnoreClass = CHK_IgnoreSpecialClass.Checked + ? Main.Config.ORAS + ? Legal.SpecialClasses_ORAS + : Legal.SpecialClasses_XY + : []; + RSTE.rOnlySingles = CHK_OnlySingles.Checked; + } + RSTE.rGift = CHK_RandomGift.Checked; + RSTE.rGiftPercent = NUD_GiftPercent.Value; + RSTE.rDiffAI = CHK_MaxDiffAI.Checked; + RSTE.rTypeTheme = CHK_TypeTheme.Checked; + RSTE.rTypeGymTrainers = CHK_GymTrainers.Checked; + RSTE.rGymE4Only = CHK_GymE4Only.Checked; + RSTE.rMinPKM = NUD_RMin.Value; + RSTE.rMaxPKM = NUD_RMax.Value; + RSTE.r6PKM = CHK_6PKM.Checked; + RSTE.rRandomMegas = CHK_RandomMegaForm.Checked; + RSTE.rForceFullyEvolved = CHK_ForceFullyEvolved.Checked; + RSTE.rForceFullyEvolvedLevel = NUD_ForceFullyEvolved.Value; + RSTE.rForceHighPower = CHK_ForceHighPower.Checked; + RSTE.rForceHighPowerLevel = NUD_ForceHighPower.Value; + + if (CHK_StoryMEvos.Checked) + { + RSTE.rEnsureMEvo = Main.Config.ORAS + ? [178, 235, 557, 583, 687, 698, 699, 700, 701, 713, 906, 907, 908, 909, 910, 911, 912, 913, 942, 944, 946, + ] + : [188, 263, 276, 277, 519, 520, 521, 526, 599, 600, 601]; + } + else + { + RSTE.rEnsureMEvo = []; + } + + RSTE.rThemedClasses = new bool[trClass.Length]; + RSTE.rSpeciesRand = new SpeciesRandomizer(Main.Config) + { + G1 = CHK_G1.Checked, + G2 = CHK_G2.Checked, + G3 = CHK_G3.Checked, + G4 = CHK_G4.Checked, + G5 = CHK_G5.Checked, + G6 = CHK_G6.Checked, + + L = CHK_L.Checked, + E = CHK_E.Checked, + Shedinja = true, + + rBST = CHK_BST.Checked, + rEXP = false, + }; + RSTE.rSpeciesRand.Initialize(); + + // add Legendary/Mythical to final evolutions if checked + if (CHK_L.Checked) RSTE.rFinalEvo = [.. RSTE.rFinalEvo, .. Legendary]; + if (CHK_E.Checked) RSTE.rFinalEvo = [.. RSTE.rFinalEvo, .. Mythical]; + + RSTE.rDoRand = true; + RandSettings.SetFormSettings(this, Controls); + Close(); + } + + private void CHK_RandomPKM_CheckedChanged(object sender, EventArgs e) + { + GB_Tweak.Enabled = + CHK_G1.Checked = CHK_G2.Checked = CHK_G3.Checked = + CHK_G4.Checked = CHK_G5.Checked = CHK_G6.Checked = + CHK_L.Checked = CHK_E.Checked = CHK_StoryMEvos.Checked = CHK_ForceFullyEvolved.Checked = + CHK_RandomPKM.Checked; + + CHK_TypeTheme.Checked = CHK_GymTrainers.Checked = CHK_GymE4Only.Checked = + CHK_BST.Checked = CHK_6PKM.Checked = CHK_RandomMegaForm.Checked = false; // Off by default + } + + private void CHK_Level_CheckedChanged(object sender, EventArgs e) + { + NUD_Level.Enabled = CHK_Level.Checked; + } + + private void ChangeLevelPercent(object sender, EventArgs e) + { + CHK_Level.Checked = NUD_Level.Value != 0; + } + + private void CHK_RandomGift_CheckedChanged(object sender, EventArgs e) + { + NUD_GiftPercent.Enabled = CHK_RandomGift.Checked; + NUD_GiftPercent.Value = Convert.ToDecimal(CHK_RandomGift.Checked) * 15; + } + + private void ChangeGiftPercent(object sender, EventArgs e) + { + CHK_RandomGift.Checked = NUD_GiftPercent.Value != 0; + } + + private void CHK_TypeTheme_CheckedChanged(object sender, EventArgs e) + { + CHK_GymTrainers.Enabled = CHK_GymTrainers.Checked = CHK_GymE4Only.Enabled = CHK_TypeTheme.Checked; + if (!CHK_TypeTheme.Checked) + CHK_GymTrainers.Checked = CHK_GymE4Only.Checked = false; + } + + private void CHK_RandomClass_CheckedChanged(object sender, EventArgs e) + { + CHK_IgnoreSpecialClass.Enabled = CHK_IgnoreSpecialClass.Checked = + CHK_OnlySingles.Enabled = CHK_OnlySingles.Checked = CHK_RandomClass.Checked; + } + + private void ChangeMoveRandomization(object sender, EventArgs e) + { + CHK_Damage.Checked = CHK_STAB.Checked = + CHK_Damage.Enabled = CHK_STAB.Enabled = + NUD_Damage.Enabled = NUD_STAB.Enabled = CB_Moves.SelectedIndex == 1; + + CHK_ForceHighPower.Enabled = CHK_ForceHighPower.Checked = NUD_ForceHighPower.Enabled = + CHK_NoFixedDamage.Enabled = CHK_NoFixedDamage.Checked = CB_Moves.SelectedIndex is 1 or 2; + } + + private void CHK_6PKM_CheckedChanged(object sender, EventArgs e) + { + //if (CB_Moves.SelectedIndex == 0) + // CHK_6PKM.Checked = false; + } +} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/TrainerRand.resx b/pk3DS.WinForms/Subforms/Gen6/TrainerRand.resx similarity index 100% rename from pk3DS/Subforms/Gen6/TrainerRand.resx rename to pk3DS.WinForms/Subforms/Gen6/TrainerRand.resx diff --git a/pk3DS.WinForms/Subforms/Gen6/TutorEditor6.Designer.cs b/pk3DS.WinForms/Subforms/Gen6/TutorEditor6.Designer.cs new file mode 100644 index 0000000000..ed8488dc98 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/TutorEditor6.Designer.cs @@ -0,0 +1,99 @@ +namespace pk3DS.WinForms; + +partial class TutorEditor6 +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.CB_Location = new System.Windows.Forms.ComboBox(); + this.dgv = new System.Windows.Forms.DataGridView(); + this.L_Mart = new System.Windows.Forms.Label(); + ((System.ComponentModel.ISupportInitialize)(this.dgv)).BeginInit(); + this.SuspendLayout(); + // + // CB_Location + // + this.CB_Location.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.CB_Location.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_Location.FormattingEnabled = true; + this.CB_Location.Location = new System.Drawing.Point(69, 6); + this.CB_Location.Name = "CB_Location"; + this.CB_Location.Size = new System.Drawing.Size(243, 21); + this.CB_Location.TabIndex = 0; + this.CB_Location.SelectedIndexChanged += new System.EventHandler(this.ChangeIndex); + // + // dgv + // + this.dgv.AllowUserToAddRows = false; + this.dgv.AllowUserToDeleteRows = false; + this.dgv.AllowUserToResizeColumns = false; + this.dgv.AllowUserToResizeRows = false; + this.dgv.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dgv.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgv.Location = new System.Drawing.Point(12, 33); + this.dgv.Name = "dgv"; + this.dgv.Size = new System.Drawing.Size(300, 317); + this.dgv.TabIndex = 1; + // + // L_Mart + // + this.L_Mart.AutoSize = true; + this.L_Mart.Location = new System.Drawing.Point(12, 9); + this.L_Mart.Name = "L_Mart"; + this.L_Mart.Size = new System.Drawing.Size(51, 13); + this.L_Mart.TabIndex = 2; + this.L_Mart.Text = "Location:"; + // + // Tutors + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(324, 362); + this.Controls.Add(this.L_Mart); + this.Controls.Add(this.dgv); + this.Controls.Add(this.CB_Location); + this.MaximizeBox = false; + this.MaximumSize = new System.Drawing.Size(340, 600); + this.MinimumSize = new System.Drawing.Size(340, 400); + this.Name = "TutorEditor6"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Move Tutor Editor"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form_Closing); + ((System.ComponentModel.ISupportInitialize)(this.dgv)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.ComboBox CB_Location; + private System.Windows.Forms.DataGridView dgv; + private System.Windows.Forms.Label L_Mart; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen6/TutorEditor6.cs b/pk3DS.WinForms/Subforms/Gen6/TutorEditor6.cs new file mode 100644 index 0000000000..497632273d --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/TutorEditor6.cs @@ -0,0 +1,126 @@ +using pk3DS.Core; +using System; +using System.IO; +using System.Windows.Forms; + +namespace pk3DS.WinForms; + +public partial class TutorEditor6 : Form +{ + public TutorEditor6() + { + InitializeComponent(); + if (Main.ExeFSPath == null) { WinFormsUtil.Alert("No exeFS code to load."); Close(); } + string[] files = Directory.GetFiles(Main.ExeFSPath); + if (!File.Exists(files[0]) || !Path.GetFileNameWithoutExtension(files[0]).Contains("code")) { WinFormsUtil.Alert("No .code.bin detected."); Close(); } + data = File.ReadAllBytes(files[0]); + if (data.Length % 0x200 != 0) { WinFormsUtil.Alert(".code.bin not decompressed. Aborting."); Close(); } + offset = GetDataOffset(data); + codebin = files[0]; + movelist[0] = ""; + SetupDGV(); + CB_Location.Items.AddRange(locations); + CB_Location.SelectedIndex = 0; + WinFormsUtil.Alert("Changes made do not reflect ingame.", "Still needs more research."); + } + + private static int GetDataOffset(byte[] data) + { + byte[] vanilla = + [ + 0x00, 0x46, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x00, 0x00, 0x45, 0x64, 0x67, + 0x65, 0x49, 0x44, 0x00, 0xFF, + ]; + int offset = Util.IndexOfBytes(data, vanilla, 0x400000, 0); + if (offset >= 0) + return offset + vanilla.Length; + + byte[] patched = + [ + 0x00, 0x46, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x00, 0x00, 0x45, 0x64, 0x67, + 0x65, 0x49, 0x44, 0x00, 0x00, 0x63, 0x3A, 0x5C, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6F, 0x6E, + 0x31, 0x5F, 0x73, 0x61, 0x6E, 0x67, 0x6F, 0x5C, 0x73, 0x61, 0x6E, 0x67, 0x6F, 0x5F, 0x70, 0x72, + 0x6F, 0x6A, 0x65, 0x63, 0x74, 0x5C, 0x70, 0x72, 0x6F, 0x67, 0x5C, 0x73, 0x72, 0x63, 0x2F, 0x73, + 0x79, 0x73, 0x74, 0x65, 0x6D, 0x2F, 0x6D, 0x6F, 0x74, 0x69, 0x6F, 0x6E, 0x2F, 0x4D, 0x6F, 0x74, + 0x69, 0x6F, 0x6E, 0x2E, 0x63, 0x70, 0x70, 0x00, 0x00, + ]; + offset = Util.IndexOfBytes(data, patched, 0x400000, 0); + + if (offset >= 0) + return offset + patched.Length; + + return -1; + } + + private readonly string codebin; + private readonly string[] movelist = Main.Config.GetText(TextName.MoveNames); + private readonly byte[] data; + private readonly byte[] entries = [0xF, 0x11, 0x10, 0xF]; // Entries per Tutor + private readonly int offset; + private int dataoffset; + private readonly string[] locations = ["1", "2", "3", "4"]; + + private void GetDataOffset(int index) + { + dataoffset = offset; // reset + for (int i = 0; i < index; i++) + dataoffset += (2 * entries[i]) + 2; // There's a EndCap + } + + private void SetupDGV() + { + var dgvIndex = new DataGridViewTextBoxColumn(); + { + dgvIndex.HeaderText = "Index"; + dgvIndex.DisplayIndex = 0; + dgvIndex.Width = 45; + dgvIndex.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; + } + var dgvMove = new DataGridViewComboBoxColumn(); + { + dgvMove.HeaderText = "Move"; + dgvMove.DisplayIndex = 1; + dgvMove.Items.AddRange(movelist); // add only the Names + + dgvMove.Width = 135; + dgvMove.FlatStyle = FlatStyle.Flat; + } + dgv.Columns.Add(dgvIndex); + dgv.Columns.Add(dgvMove); + } + + private int entry = -1; + + private void ChangeIndex(object sender, EventArgs e) + { + if (entry > -1) SetList(); + entry = CB_Location.SelectedIndex; + GetList(); + } + + private void GetList() + { + dgv.Rows.Clear(); + int count = entries[entry]; + dgv.Rows.Add(count); + GetDataOffset(entry); + for (int i = 0; i < count; i++) + { + dgv.Rows[i].Cells[0].Value = i.ToString(); + dgv.Rows[i].Cells[1].Value = movelist[BitConverter.ToUInt16(data, dataoffset + (2 * i))]; + } + } + + private void SetList() + { + int count = dgv.Rows.Count; + for (int i = 0; i < count; i++) + Array.Copy(BitConverter.GetBytes((ushort)Array.IndexOf(movelist, dgv.Rows[i].Cells[1].Value)), 0, data, dataoffset + (2 * i), 2); + } + + private void Form_Closing(object sender, FormClosingEventArgs e) + { + if (entry > -1) SetList(); + File.WriteAllBytes(codebin, data); + } +} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/TutorEditor6.resx b/pk3DS.WinForms/Subforms/Gen6/TutorEditor6.resx similarity index 100% rename from pk3DS/Subforms/Gen6/TutorEditor6.resx rename to pk3DS.WinForms/Subforms/Gen6/TutorEditor6.resx diff --git a/pk3DS.WinForms/Subforms/Gen6/TypeChart6.Designer.cs b/pk3DS.WinForms/Subforms/Gen6/TypeChart6.Designer.cs new file mode 100644 index 0000000000..5e83f7f386 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/TypeChart6.Designer.cs @@ -0,0 +1,108 @@ +namespace pk3DS.WinForms; + +partial class TypeChart6 +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.PB_Chart = new System.Windows.Forms.PictureBox(); + this.B_Cancel = new System.Windows.Forms.Button(); + this.B_Save = new System.Windows.Forms.Button(); + this.L_Hover = new System.Windows.Forms.Label(); + ((System.ComponentModel.ISupportInitialize)(this.PB_Chart)).BeginInit(); + this.SuspendLayout(); + // + // PB_Chart + // + this.PB_Chart.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.PB_Chart.Location = new System.Drawing.Point(12, 12); + this.PB_Chart.Name = "PB_Chart"; + this.PB_Chart.Size = new System.Drawing.Size(579, 579); + this.PB_Chart.TabIndex = 0; + this.PB_Chart.TabStop = false; + this.PB_Chart.MouseClick += new System.Windows.Forms.MouseEventHandler(this.ClickMouse); + this.PB_Chart.MouseMove += new System.Windows.Forms.MouseEventHandler(this.MoveMouse); + // + // B_Cancel + // + this.B_Cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.B_Cancel.Location = new System.Drawing.Point(436, 602); + this.B_Cancel.Name = "B_Cancel"; + this.B_Cancel.Size = new System.Drawing.Size(75, 23); + this.B_Cancel.TabIndex = 467; + this.B_Cancel.Text = "Cancel"; + this.B_Cancel.UseVisualStyleBackColor = true; + this.B_Cancel.Click += new System.EventHandler(this.B_Cancel_Click); + // + // B_Save + // + this.B_Save.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.B_Save.Location = new System.Drawing.Point(517, 602); + this.B_Save.Name = "B_Save"; + this.B_Save.Size = new System.Drawing.Size(75, 23); + this.B_Save.TabIndex = 466; + this.B_Save.Text = "Save"; + this.B_Save.UseVisualStyleBackColor = true; + this.B_Save.Click += new System.EventHandler(this.B_Save_Click); + // + // L_Hover + // + this.L_Hover.AutoSize = true; + this.L_Hover.Location = new System.Drawing.Point(12, 607); + this.L_Hover.Name = "L_Hover"; + this.L_Hover.Size = new System.Drawing.Size(117, 13); + this.L_Hover.TabIndex = 468; + this.L_Hover.Text = "Effectiveness Summary"; + // + // TypeChart6 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(604, 637); + this.Controls.Add(this.L_Hover); + this.Controls.Add(this.B_Cancel); + this.Controls.Add(this.B_Save); + this.Controls.Add(this.PB_Chart); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.MaximizeBox = false; + this.MinimumSize = new System.Drawing.Size(355, 220); + this.Name = "TypeChart6"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Type Chart Editor"; + ((System.ComponentModel.ISupportInitialize)(this.PB_Chart)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.PictureBox PB_Chart; + private System.Windows.Forms.Button B_Cancel; + private System.Windows.Forms.Button B_Save; + private System.Windows.Forms.Label L_Hover; + +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen6/TypeChart6.cs b/pk3DS.WinForms/Subforms/Gen6/TypeChart6.cs new file mode 100644 index 0000000000..a0b6208cb1 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/TypeChart6.cs @@ -0,0 +1,110 @@ +using pk3DS.Core; +using pk3DS.Core.Structures; +using System; +using System.IO; +using System.Windows.Forms; + +namespace pk3DS.WinForms; + +public partial class TypeChart6 : Form +{ + private readonly string CROPath = Path.Combine(Main.RomFSPath, "DllBattle.cro"); + private readonly string[] types = Main.Config.GetText(TextName.Types); + private readonly int offset = Main.Config.ORAS ? 0x000DB428 : 0x000D12A8; + private readonly byte[] chart = new byte[TypeCount * TypeCount]; + private readonly byte[] CROData; + private const int TypeCount = 18; + private const int TypeWidth = 32; + + public TypeChart6() + { + if (!File.Exists(CROPath)) + { WinFormsUtil.Error("CRO does not exist! Closing.", CROPath); Close(); } + + InitializeComponent(); + + CROData = File.ReadAllBytes(CROPath); + Array.Copy(CROData, offset, chart, 0, chart.Length); + + PopulateChart(); + } + + private void PopulateChart() + { + PB_Chart.Image = TypeChart.GetGrid(TypeWidth, TypeCount, chart); + } + + private void B_Save_Click(object sender, EventArgs e) + { + Array.Copy(chart, 0, CROData, offset, chart.Length); + File.WriteAllBytes(CROPath, CROData); + Close(); + } + + private void B_Cancel_Click(object sender, EventArgs e) + { + Close(); + } + + private void MoveMouse(object sender, MouseEventArgs e) + { + GetCoordinate((PictureBox)sender, e, out int X, out int Y); + int index = (Y * TypeCount) + X; + if (index >= chart.Length) + return; + UpdateLabel(X, Y, chart[index]); + } + + private void ClickMouse(object sender, MouseEventArgs e) + { + GetCoordinate((PictureBox)sender, e, out int X, out int Y); + int index = (Y * TypeCount) + X; + if (index >= chart.Length) + return; + + chart[index] = ToggleEffectiveness(chart[index], e.Button == MouseButtons.Left); + + UpdateLabel(X, Y, chart[index]); + PopulateChart(); + } + + private void UpdateLabel(int X, int Y, int value) + { + if (value >= effects.Length || X >= types.Length || Y >= types.Length) + return; // clicking and moving outside the box has invalid values + L_Hover.Text = $"[{X:00}x{Y:00}: {value:00}] {types[Y]} attacking {types[X]} {effects[value]}"; + } + + private readonly string[] effects = + [ + "has no effect!", + "", + "is not very effective.", + "", + "does regular damage.", + "", "", "", + "is super effective!", + ]; + + public static void GetCoordinate(Control sender, MouseEventArgs e, out int X, out int Y) + { + X = e.X / TypeWidth; + Y = e.Y / TypeWidth; + if (e.X == sender.Width - 1 - 2) // tweak because the furthest pixel is unused for transparent effect, and 2 px are used for border + X--; + if (e.Y == sender.Height - 1 - 2) + Y--; + } + + public static byte ToggleEffectiveness(byte currentValue, bool increase) + { + byte[] vals = [0, 2, 4, 8]; + int curIndex = Array.IndexOf(vals, currentValue); + if (curIndex < 0) + return currentValue; + + uint shift = (uint)(curIndex + (increase ? 1 : -1)); + var newIndex = shift % vals.Length; + return vals[newIndex]; + } +} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/TypeChart6.resx b/pk3DS.WinForms/Subforms/Gen6/TypeChart6.resx similarity index 100% rename from pk3DS/Subforms/Gen6/TypeChart6.resx rename to pk3DS.WinForms/Subforms/Gen6/TypeChart6.resx diff --git a/pk3DS/Subforms/Gen6/XYWE.Designer.cs b/pk3DS.WinForms/Subforms/Gen6/XYWE.Designer.cs similarity index 61% rename from pk3DS/Subforms/Gen6/XYWE.Designer.cs rename to pk3DS.WinForms/Subforms/Gen6/XYWE.Designer.cs index 31fac8e593..7786905ced 100644 --- a/pk3DS/Subforms/Gen6/XYWE.Designer.cs +++ b/pk3DS.WinForms/Subforms/Gen6/XYWE.Designer.cs @@ -1,1119 +1,1119 @@ -namespace pk3DS +namespace pk3DS.WinForms; + +partial class XYWE { - partial class XYWE - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); + components.Dispose(); } + base.Dispose(disposing); + } - #region Windows Form Designer generated code + #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.TabControl_EncounterData = new System.Windows.Forms.TabControl(); - this.TabPage_Land = new System.Windows.Forms.TabPage(); - this.label107 = new System.Windows.Forms.Label(); - this.label115 = new System.Windows.Forms.Label(); - this.label108 = new System.Windows.Forms.Label(); - this.NUP_RockSmashMax5 = new System.Windows.Forms.NumericUpDown(); - this.label109 = new System.Windows.Forms.Label(); - this.NUP_RockSmashMin5 = new System.Windows.Forms.NumericUpDown(); - this.label110 = new System.Windows.Forms.Label(); - this.NUP_RockSmashForme5 = new System.Windows.Forms.NumericUpDown(); - this.label111 = new System.Windows.Forms.Label(); - this.CB_RockSmash5 = new System.Windows.Forms.ComboBox(); - this.CB_RockSmash1 = new System.Windows.Forms.ComboBox(); - this.NUP_RockSmashMax4 = new System.Windows.Forms.NumericUpDown(); - this.NUP_RockSmashForme1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_RockSmashMin4 = new System.Windows.Forms.NumericUpDown(); - this.label112 = new System.Windows.Forms.Label(); - this.NUP_RockSmashForme4 = new System.Windows.Forms.NumericUpDown(); - this.NUP_RockSmashMin1 = new System.Windows.Forms.NumericUpDown(); - this.CB_RockSmash4 = new System.Windows.Forms.ComboBox(); - this.label113 = new System.Windows.Forms.Label(); - this.NUP_RockSmashMax3 = new System.Windows.Forms.NumericUpDown(); - this.NUP_RockSmashMax1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_RockSmashMin3 = new System.Windows.Forms.NumericUpDown(); - this.label114 = new System.Windows.Forms.Label(); - this.NUP_RockSmashForme3 = new System.Windows.Forms.NumericUpDown(); - this.CB_RockSmash2 = new System.Windows.Forms.ComboBox(); - this.CB_RockSmash3 = new System.Windows.Forms.ComboBox(); - this.NUP_RockSmashMax2 = new System.Windows.Forms.NumericUpDown(); - this.NUP_RockSmashForme2 = new System.Windows.Forms.NumericUpDown(); - this.NUP_RockSmashMin2 = new System.Windows.Forms.NumericUpDown(); - this.NUP_RTForme1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_RTMin1 = new System.Windows.Forms.NumericUpDown(); - this.label6 = new System.Windows.Forms.Label(); - this.NUP_RTMax1 = new System.Windows.Forms.NumericUpDown(); - this.label7 = new System.Windows.Forms.Label(); - this.NUP_RTForme2 = new System.Windows.Forms.NumericUpDown(); - this.label8 = new System.Windows.Forms.Label(); - this.NUP_RTMin2 = new System.Windows.Forms.NumericUpDown(); - this.label9 = new System.Windows.Forms.Label(); - this.NUP_RTMax2 = new System.Windows.Forms.NumericUpDown(); - this.CB_RT12 = new System.Windows.Forms.ComboBox(); - this.NUP_RTForme3 = new System.Windows.Forms.NumericUpDown(); - this.CB_RT11 = new System.Windows.Forms.ComboBox(); - this.NUP_RTMin3 = new System.Windows.Forms.NumericUpDown(); - this.CB_RT10 = new System.Windows.Forms.ComboBox(); - this.NUP_RTMax3 = new System.Windows.Forms.NumericUpDown(); - this.CB_RT9 = new System.Windows.Forms.ComboBox(); - this.NUP_RTForme4 = new System.Windows.Forms.NumericUpDown(); - this.CB_RT8 = new System.Windows.Forms.ComboBox(); - this.NUP_RTMin4 = new System.Windows.Forms.NumericUpDown(); - this.CB_RT7 = new System.Windows.Forms.ComboBox(); - this.NUP_RTMax4 = new System.Windows.Forms.NumericUpDown(); - this.CB_RT6 = new System.Windows.Forms.ComboBox(); - this.NUP_RTForme5 = new System.Windows.Forms.NumericUpDown(); - this.CB_RT5 = new System.Windows.Forms.ComboBox(); - this.NUP_RTMin5 = new System.Windows.Forms.NumericUpDown(); - this.CB_RT4 = new System.Windows.Forms.ComboBox(); - this.NUP_RTMax5 = new System.Windows.Forms.NumericUpDown(); - this.CB_RT3 = new System.Windows.Forms.ComboBox(); - this.NUP_RTForme6 = new System.Windows.Forms.NumericUpDown(); - this.CB_RT2 = new System.Windows.Forms.ComboBox(); - this.NUP_RTMin6 = new System.Windows.Forms.NumericUpDown(); - this.CB_RT1 = new System.Windows.Forms.ComboBox(); - this.NUP_RTMax6 = new System.Windows.Forms.NumericUpDown(); - this.label10 = new System.Windows.Forms.Label(); - this.NUP_RTForme7 = new System.Windows.Forms.NumericUpDown(); - this.label11 = new System.Windows.Forms.Label(); - this.NUP_RTMin7 = new System.Windows.Forms.NumericUpDown(); - this.label12 = new System.Windows.Forms.Label(); - this.NUP_RTMax7 = new System.Windows.Forms.NumericUpDown(); - this.label13 = new System.Windows.Forms.Label(); - this.NUP_RTForme8 = new System.Windows.Forms.NumericUpDown(); - this.label14 = new System.Windows.Forms.Label(); - this.NUP_RTMin8 = new System.Windows.Forms.NumericUpDown(); - this.label15 = new System.Windows.Forms.Label(); - this.NUP_RTMax8 = new System.Windows.Forms.NumericUpDown(); - this.label16 = new System.Windows.Forms.Label(); - this.NUP_RTForme9 = new System.Windows.Forms.NumericUpDown(); - this.label17 = new System.Windows.Forms.Label(); - this.NUP_RTMin9 = new System.Windows.Forms.NumericUpDown(); - this.label18 = new System.Windows.Forms.Label(); - this.NUP_RTMax9 = new System.Windows.Forms.NumericUpDown(); - this.label19 = new System.Windows.Forms.Label(); - this.NUP_RTForme10 = new System.Windows.Forms.NumericUpDown(); - this.label20 = new System.Windows.Forms.Label(); - this.NUP_RTMin10 = new System.Windows.Forms.NumericUpDown(); - this.label21 = new System.Windows.Forms.Label(); - this.NUP_RTMax10 = new System.Windows.Forms.NumericUpDown(); - this.NUP_RTForme11 = new System.Windows.Forms.NumericUpDown(); - this.NUP_RTMin11 = new System.Windows.Forms.NumericUpDown(); - this.NUP_RTMax11 = new System.Windows.Forms.NumericUpDown(); - this.NUP_RTForme12 = new System.Windows.Forms.NumericUpDown(); - this.NUP_RTMin12 = new System.Windows.Forms.NumericUpDown(); - this.NUP_RTMax12 = new System.Windows.Forms.NumericUpDown(); - this.NUP_GrassForme1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_GrassMin1 = new System.Windows.Forms.NumericUpDown(); - this.label3 = new System.Windows.Forms.Label(); - this.NUP_GrassMax1 = new System.Windows.Forms.NumericUpDown(); - this.label4 = new System.Windows.Forms.Label(); - this.NUP_GrassForme2 = new System.Windows.Forms.NumericUpDown(); - this.label5 = new System.Windows.Forms.Label(); - this.NUP_GrassMin2 = new System.Windows.Forms.NumericUpDown(); - this.label2 = new System.Windows.Forms.Label(); - this.NUP_GrassMax2 = new System.Windows.Forms.NumericUpDown(); - this.CB_Grass12 = new System.Windows.Forms.ComboBox(); - this.NUP_GrassForme3 = new System.Windows.Forms.NumericUpDown(); - this.CB_Grass11 = new System.Windows.Forms.ComboBox(); - this.NUP_GrassMin3 = new System.Windows.Forms.NumericUpDown(); - this.CB_Grass10 = new System.Windows.Forms.ComboBox(); - this.NUP_GrassMax3 = new System.Windows.Forms.NumericUpDown(); - this.CB_Grass9 = new System.Windows.Forms.ComboBox(); - this.NUP_GrassForme4 = new System.Windows.Forms.NumericUpDown(); - this.CB_Grass8 = new System.Windows.Forms.ComboBox(); - this.NUP_GrassMin4 = new System.Windows.Forms.NumericUpDown(); - this.CB_Grass7 = new System.Windows.Forms.ComboBox(); - this.NUP_GrassMax4 = new System.Windows.Forms.NumericUpDown(); - this.CB_Grass6 = new System.Windows.Forms.ComboBox(); - this.NUP_GrassForme5 = new System.Windows.Forms.NumericUpDown(); - this.CB_Grass5 = new System.Windows.Forms.ComboBox(); - this.NUP_GrassMin5 = new System.Windows.Forms.NumericUpDown(); - this.CB_Grass4 = new System.Windows.Forms.ComboBox(); - this.NUP_GrassMax5 = new System.Windows.Forms.NumericUpDown(); - this.CB_Grass3 = new System.Windows.Forms.ComboBox(); - this.NUP_GrassForme6 = new System.Windows.Forms.NumericUpDown(); - this.CB_Grass2 = new System.Windows.Forms.ComboBox(); - this.NUP_GrassMin6 = new System.Windows.Forms.NumericUpDown(); - this.CB_Grass1 = new System.Windows.Forms.ComboBox(); - this.NUP_GrassMax6 = new System.Windows.Forms.NumericUpDown(); - this.label31 = new System.Windows.Forms.Label(); - this.NUP_GrassForme7 = new System.Windows.Forms.NumericUpDown(); - this.label41 = new System.Windows.Forms.Label(); - this.NUP_GrassMin7 = new System.Windows.Forms.NumericUpDown(); - this.label42 = new System.Windows.Forms.Label(); - this.NUP_GrassMax7 = new System.Windows.Forms.NumericUpDown(); - this.label40 = new System.Windows.Forms.Label(); - this.NUP_GrassForme8 = new System.Windows.Forms.NumericUpDown(); - this.label39 = new System.Windows.Forms.Label(); - this.NUP_GrassMin8 = new System.Windows.Forms.NumericUpDown(); - this.label38 = new System.Windows.Forms.Label(); - this.NUP_GrassMax8 = new System.Windows.Forms.NumericUpDown(); - this.label37 = new System.Windows.Forms.Label(); - this.NUP_GrassForme9 = new System.Windows.Forms.NumericUpDown(); - this.label36 = new System.Windows.Forms.Label(); - this.NUP_GrassMin9 = new System.Windows.Forms.NumericUpDown(); - this.label35 = new System.Windows.Forms.Label(); - this.NUP_GrassMax9 = new System.Windows.Forms.NumericUpDown(); - this.label34 = new System.Windows.Forms.Label(); - this.NUP_GrassForme10 = new System.Windows.Forms.NumericUpDown(); - this.label33 = new System.Windows.Forms.Label(); - this.NUP_GrassMin10 = new System.Windows.Forms.NumericUpDown(); - this.label32 = new System.Windows.Forms.Label(); - this.NUP_GrassMax10 = new System.Windows.Forms.NumericUpDown(); - this.NUP_GrassMax12 = new System.Windows.Forms.NumericUpDown(); - this.NUP_GrassForme11 = new System.Windows.Forms.NumericUpDown(); - this.NUP_GrassMin12 = new System.Windows.Forms.NumericUpDown(); - this.NUP_GrassMin11 = new System.Windows.Forms.NumericUpDown(); - this.NUP_GrassForme12 = new System.Windows.Forms.NumericUpDown(); - this.NUP_GrassMax11 = new System.Windows.Forms.NumericUpDown(); - this.TabPage_Water = new System.Windows.Forms.TabPage(); - this.label116 = new System.Windows.Forms.Label(); - this.label117 = new System.Windows.Forms.Label(); - this.label118 = new System.Windows.Forms.Label(); - this.label119 = new System.Windows.Forms.Label(); - this.label120 = new System.Windows.Forms.Label(); - this.label103 = new System.Windows.Forms.Label(); - this.label48 = new System.Windows.Forms.Label(); - this.label104 = new System.Windows.Forms.Label(); - this.CB_Super1 = new System.Windows.Forms.ComboBox(); - this.label105 = new System.Windows.Forms.Label(); - this.NUP_SuperForme1 = new System.Windows.Forms.NumericUpDown(); - this.label106 = new System.Windows.Forms.Label(); - this.CB_Surf1 = new System.Windows.Forms.ComboBox(); - this.NUP_SuperMin1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_SurfForme1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_SuperMax1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_SurfMin1 = new System.Windows.Forms.NumericUpDown(); - this.CB_Super2 = new System.Windows.Forms.ComboBox(); - this.NUP_SurfMax1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_SuperForme2 = new System.Windows.Forms.NumericUpDown(); - this.CB_Surf2 = new System.Windows.Forms.ComboBox(); - this.NUP_SuperMin2 = new System.Windows.Forms.NumericUpDown(); - this.NUP_SurfForme2 = new System.Windows.Forms.NumericUpDown(); - this.NUP_SuperMax2 = new System.Windows.Forms.NumericUpDown(); - this.NUP_SurfMin2 = new System.Windows.Forms.NumericUpDown(); - this.CB_Super3 = new System.Windows.Forms.ComboBox(); - this.NUP_SurfMax5 = new System.Windows.Forms.NumericUpDown(); - this.NUP_SuperForme3 = new System.Windows.Forms.NumericUpDown(); - this.NUP_SurfMax2 = new System.Windows.Forms.NumericUpDown(); - this.NUP_SuperMin3 = new System.Windows.Forms.NumericUpDown(); - this.NUP_SurfMin5 = new System.Windows.Forms.NumericUpDown(); - this.NUP_SuperMax3 = new System.Windows.Forms.NumericUpDown(); - this.CB_Surf3 = new System.Windows.Forms.ComboBox(); - this.label49 = new System.Windows.Forms.Label(); - this.NUP_SurfForme5 = new System.Windows.Forms.NumericUpDown(); - this.label98 = new System.Windows.Forms.Label(); - this.NUP_SurfForme3 = new System.Windows.Forms.NumericUpDown(); - this.label99 = new System.Windows.Forms.Label(); - this.CB_Surf5 = new System.Windows.Forms.ComboBox(); - this.label100 = new System.Windows.Forms.Label(); - this.NUP_SurfMin3 = new System.Windows.Forms.NumericUpDown(); - this.label101 = new System.Windows.Forms.Label(); - this.NUP_SurfMax4 = new System.Windows.Forms.NumericUpDown(); - this.label102 = new System.Windows.Forms.Label(); - this.NUP_SurfMax3 = new System.Windows.Forms.NumericUpDown(); - this.label26 = new System.Windows.Forms.Label(); - this.NUP_SurfMin4 = new System.Windows.Forms.NumericUpDown(); - this.CB_Good1 = new System.Windows.Forms.ComboBox(); - this.CB_Surf4 = new System.Windows.Forms.ComboBox(); - this.NUP_GoodForme1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_SurfForme4 = new System.Windows.Forms.NumericUpDown(); - this.NUP_GoodMin1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_GoodMax1 = new System.Windows.Forms.NumericUpDown(); - this.CB_Good2 = new System.Windows.Forms.ComboBox(); - this.NUP_GoodForme2 = new System.Windows.Forms.NumericUpDown(); - this.NUP_GoodMin2 = new System.Windows.Forms.NumericUpDown(); - this.NUP_GoodMax2 = new System.Windows.Forms.NumericUpDown(); - this.CB_Good3 = new System.Windows.Forms.ComboBox(); - this.NUP_GoodForme3 = new System.Windows.Forms.NumericUpDown(); - this.NUP_GoodMin3 = new System.Windows.Forms.NumericUpDown(); - this.NUP_GoodMax3 = new System.Windows.Forms.NumericUpDown(); - this.label27 = new System.Windows.Forms.Label(); - this.label28 = new System.Windows.Forms.Label(); - this.label29 = new System.Windows.Forms.Label(); - this.label30 = new System.Windows.Forms.Label(); - this.label46 = new System.Windows.Forms.Label(); - this.label47 = new System.Windows.Forms.Label(); - this.label22 = new System.Windows.Forms.Label(); - this.CB_Old1 = new System.Windows.Forms.ComboBox(); - this.NUP_OldForme1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_OldMin1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_OldMax1 = new System.Windows.Forms.NumericUpDown(); - this.CB_Old2 = new System.Windows.Forms.ComboBox(); - this.NUP_OldForme2 = new System.Windows.Forms.NumericUpDown(); - this.NUP_OldMin2 = new System.Windows.Forms.NumericUpDown(); - this.NUP_OldMax2 = new System.Windows.Forms.NumericUpDown(); - this.CB_Old3 = new System.Windows.Forms.ComboBox(); - this.NUP_OldForme3 = new System.Windows.Forms.NumericUpDown(); - this.NUP_OldMin3 = new System.Windows.Forms.NumericUpDown(); - this.NUP_OldMax3 = new System.Windows.Forms.NumericUpDown(); - this.label45 = new System.Windows.Forms.Label(); - this.label44 = new System.Windows.Forms.Label(); - this.label43 = new System.Windows.Forms.Label(); - this.label23 = new System.Windows.Forms.Label(); - this.label24 = new System.Windows.Forms.Label(); - this.label25 = new System.Windows.Forms.Label(); - this.TabPage_Horde = new System.Windows.Forms.TabPage(); - this.GB_Tweak = new System.Windows.Forms.GroupBox(); - this.CHK_MegaForm = new System.Windows.Forms.CheckBox(); - this.L_RandOpt = new System.Windows.Forms.Label(); - this.CHK_BST = new System.Windows.Forms.CheckBox(); - this.CHK_E = new System.Windows.Forms.CheckBox(); - this.CHK_L = new System.Windows.Forms.CheckBox(); - this.CHK_G6 = new System.Windows.Forms.CheckBox(); - this.CHK_G5 = new System.Windows.Forms.CheckBox(); - this.CHK_G4 = new System.Windows.Forms.CheckBox(); - this.CHK_G3 = new System.Windows.Forms.CheckBox(); - this.CHK_G2 = new System.Windows.Forms.CheckBox(); - this.CHK_G1 = new System.Windows.Forms.CheckBox(); - this.B_LevelPlus = new System.Windows.Forms.Button(); - this.NUD_LevelAmp = new System.Windows.Forms.NumericUpDown(); - this.CHK_Level = new System.Windows.Forms.CheckBox(); - this.label129 = new System.Windows.Forms.Label(); - this.label130 = new System.Windows.Forms.Label(); - this.label131 = new System.Windows.Forms.Label(); - this.label132 = new System.Windows.Forms.Label(); - this.NUP_HordeCMax5 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeCMin5 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeCForme5 = new System.Windows.Forms.NumericUpDown(); - this.CB_HordeC5 = new System.Windows.Forms.ComboBox(); - this.NUP_HordeCMax4 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeCMin4 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeCForme4 = new System.Windows.Forms.NumericUpDown(); - this.CB_HordeC4 = new System.Windows.Forms.ComboBox(); - this.NUP_HordeCMax3 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeCMin3 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeCForme3 = new System.Windows.Forms.NumericUpDown(); - this.CB_HordeC3 = new System.Windows.Forms.ComboBox(); - this.NUP_HordeCMax2 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeCMin2 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeCForme2 = new System.Windows.Forms.NumericUpDown(); - this.CB_HordeC2 = new System.Windows.Forms.ComboBox(); - this.NUP_HordeCMax1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeCMin1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeCForme1 = new System.Windows.Forms.NumericUpDown(); - this.CB_HordeC1 = new System.Windows.Forms.ComboBox(); - this.label125 = new System.Windows.Forms.Label(); - this.label121 = new System.Windows.Forms.Label(); - this.label126 = new System.Windows.Forms.Label(); - this.label124 = new System.Windows.Forms.Label(); - this.label127 = new System.Windows.Forms.Label(); - this.label122 = new System.Windows.Forms.Label(); - this.label128 = new System.Windows.Forms.Label(); - this.NUP_HordeBMax5 = new System.Windows.Forms.NumericUpDown(); - this.CB_HordeA1 = new System.Windows.Forms.ComboBox(); - this.NUP_HordeBMin5 = new System.Windows.Forms.NumericUpDown(); - this.label123 = new System.Windows.Forms.Label(); - this.NUP_HordeBForme5 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeAForme1 = new System.Windows.Forms.NumericUpDown(); - this.CB_HordeB5 = new System.Windows.Forms.ComboBox(); - this.NUP_HordeAMin1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeBMax4 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeAMax5 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeBMin4 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeAMax1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeBForme4 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeAMin5 = new System.Windows.Forms.NumericUpDown(); - this.CB_HordeB4 = new System.Windows.Forms.ComboBox(); - this.CB_HordeA2 = new System.Windows.Forms.ComboBox(); - this.NUP_HordeBMax3 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeAForme5 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeBMin3 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeAForme2 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeBForme3 = new System.Windows.Forms.NumericUpDown(); - this.CB_HordeA5 = new System.Windows.Forms.ComboBox(); - this.CB_HordeB3 = new System.Windows.Forms.ComboBox(); - this.NUP_HordeAMin2 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeBMax2 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeAMax4 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeBMin2 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeAMax2 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeBForme2 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeAMin4 = new System.Windows.Forms.NumericUpDown(); - this.CB_HordeB2 = new System.Windows.Forms.ComboBox(); - this.CB_HordeA3 = new System.Windows.Forms.ComboBox(); - this.NUP_HordeBMax1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeAForme4 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeBMin1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeAForme3 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeBForme1 = new System.Windows.Forms.NumericUpDown(); - this.CB_HordeA4 = new System.Windows.Forms.ComboBox(); - this.CB_HordeB1 = new System.Windows.Forms.ComboBox(); - this.NUP_HordeAMin3 = new System.Windows.Forms.NumericUpDown(); - this.NUP_HordeAMax3 = new System.Windows.Forms.NumericUpDown(); - this.tabPage1 = new System.Windows.Forms.TabPage(); - this.NUP_RedForme11 = new System.Windows.Forms.NumericUpDown(); - this.NUP_RedMin11 = new System.Windows.Forms.NumericUpDown(); - this.NUP_RedMax11 = new System.Windows.Forms.NumericUpDown(); - this.NUP_RedForme12 = new System.Windows.Forms.NumericUpDown(); - this.NUP_RedMin12 = new System.Windows.Forms.NumericUpDown(); - this.NUP_RedMax12 = new System.Windows.Forms.NumericUpDown(); - this.NUP_PurpleForme11 = new System.Windows.Forms.NumericUpDown(); - this.NUP_PurpleMin11 = new System.Windows.Forms.NumericUpDown(); - this.NUP_PurpleMax11 = new System.Windows.Forms.NumericUpDown(); - this.NUP_PurpleForme12 = new System.Windows.Forms.NumericUpDown(); - this.NUP_PurpleMin12 = new System.Windows.Forms.NumericUpDown(); - this.NUP_PurpleMax12 = new System.Windows.Forms.NumericUpDown(); - this.NUP_YellowForme11 = new System.Windows.Forms.NumericUpDown(); - this.NUP_YellowMin11 = new System.Windows.Forms.NumericUpDown(); - this.NUP_YellowMax11 = new System.Windows.Forms.NumericUpDown(); - this.NUP_YellowForme12 = new System.Windows.Forms.NumericUpDown(); - this.NUP_YellowMin12 = new System.Windows.Forms.NumericUpDown(); - this.NUP_YellowMax12 = new System.Windows.Forms.NumericUpDown(); - this.NUP_RedForme1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_RedMin1 = new System.Windows.Forms.NumericUpDown(); - this.label82 = new System.Windows.Forms.Label(); - this.NUP_RedMax1 = new System.Windows.Forms.NumericUpDown(); - this.label83 = new System.Windows.Forms.Label(); - this.NUP_RedForme2 = new System.Windows.Forms.NumericUpDown(); - this.label84 = new System.Windows.Forms.Label(); - this.NUP_RedMin2 = new System.Windows.Forms.NumericUpDown(); - this.label85 = new System.Windows.Forms.Label(); - this.NUP_RedMax2 = new System.Windows.Forms.NumericUpDown(); - this.CB_Purple12 = new System.Windows.Forms.ComboBox(); - this.NUP_RedForme3 = new System.Windows.Forms.NumericUpDown(); - this.CB_Purple11 = new System.Windows.Forms.ComboBox(); - this.NUP_RedMin3 = new System.Windows.Forms.NumericUpDown(); - this.CB_Purple10 = new System.Windows.Forms.ComboBox(); - this.NUP_RedMax3 = new System.Windows.Forms.NumericUpDown(); - this.CB_Purple9 = new System.Windows.Forms.ComboBox(); - this.NUP_RedForme4 = new System.Windows.Forms.NumericUpDown(); - this.CB_Purple8 = new System.Windows.Forms.ComboBox(); - this.NUP_RedMin4 = new System.Windows.Forms.NumericUpDown(); - this.CB_Purple7 = new System.Windows.Forms.ComboBox(); - this.NUP_RedMax4 = new System.Windows.Forms.NumericUpDown(); - this.CB_Purple6 = new System.Windows.Forms.ComboBox(); - this.NUP_RedForme5 = new System.Windows.Forms.NumericUpDown(); - this.CB_Purple5 = new System.Windows.Forms.ComboBox(); - this.NUP_RedMin5 = new System.Windows.Forms.NumericUpDown(); - this.CB_Purple4 = new System.Windows.Forms.ComboBox(); - this.NUP_RedMax5 = new System.Windows.Forms.NumericUpDown(); - this.CB_Purple3 = new System.Windows.Forms.ComboBox(); - this.NUP_RedForme6 = new System.Windows.Forms.NumericUpDown(); - this.CB_Purple2 = new System.Windows.Forms.ComboBox(); - this.NUP_RedMin6 = new System.Windows.Forms.NumericUpDown(); - this.CB_Purple1 = new System.Windows.Forms.ComboBox(); - this.NUP_RedMax6 = new System.Windows.Forms.NumericUpDown(); - this.label86 = new System.Windows.Forms.Label(); - this.NUP_RedForme7 = new System.Windows.Forms.NumericUpDown(); - this.label87 = new System.Windows.Forms.Label(); - this.NUP_RedMin7 = new System.Windows.Forms.NumericUpDown(); - this.label88 = new System.Windows.Forms.Label(); - this.NUP_RedMax7 = new System.Windows.Forms.NumericUpDown(); - this.label89 = new System.Windows.Forms.Label(); - this.NUP_RedForme8 = new System.Windows.Forms.NumericUpDown(); - this.label90 = new System.Windows.Forms.Label(); - this.NUP_RedMin8 = new System.Windows.Forms.NumericUpDown(); - this.label91 = new System.Windows.Forms.Label(); - this.NUP_RedMax8 = new System.Windows.Forms.NumericUpDown(); - this.label92 = new System.Windows.Forms.Label(); - this.NUP_RedForme9 = new System.Windows.Forms.NumericUpDown(); - this.label93 = new System.Windows.Forms.Label(); - this.NUP_RedMin9 = new System.Windows.Forms.NumericUpDown(); - this.label94 = new System.Windows.Forms.Label(); - this.NUP_RedMax9 = new System.Windows.Forms.NumericUpDown(); - this.label95 = new System.Windows.Forms.Label(); - this.NUP_RedForme10 = new System.Windows.Forms.NumericUpDown(); - this.label96 = new System.Windows.Forms.Label(); - this.NUP_RedMin10 = new System.Windows.Forms.NumericUpDown(); - this.label97 = new System.Windows.Forms.Label(); - this.NUP_RedMax10 = new System.Windows.Forms.NumericUpDown(); - this.NUP_PurpleForme1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_PurpleMin1 = new System.Windows.Forms.NumericUpDown(); - this.label66 = new System.Windows.Forms.Label(); - this.NUP_PurpleMax1 = new System.Windows.Forms.NumericUpDown(); - this.label67 = new System.Windows.Forms.Label(); - this.NUP_PurpleForme2 = new System.Windows.Forms.NumericUpDown(); - this.label68 = new System.Windows.Forms.Label(); - this.NUP_PurpleMin2 = new System.Windows.Forms.NumericUpDown(); - this.label69 = new System.Windows.Forms.Label(); - this.NUP_PurpleMax2 = new System.Windows.Forms.NumericUpDown(); - this.CB_Red12 = new System.Windows.Forms.ComboBox(); - this.NUP_PurpleForme3 = new System.Windows.Forms.NumericUpDown(); - this.CB_Red11 = new System.Windows.Forms.ComboBox(); - this.NUP_PurpleMin3 = new System.Windows.Forms.NumericUpDown(); - this.CB_Red10 = new System.Windows.Forms.ComboBox(); - this.NUP_PurpleMax3 = new System.Windows.Forms.NumericUpDown(); - this.CB_Red9 = new System.Windows.Forms.ComboBox(); - this.NUP_PurpleForme4 = new System.Windows.Forms.NumericUpDown(); - this.CB_Red8 = new System.Windows.Forms.ComboBox(); - this.NUP_PurpleMin4 = new System.Windows.Forms.NumericUpDown(); - this.CB_Red7 = new System.Windows.Forms.ComboBox(); - this.NUP_PurpleMax4 = new System.Windows.Forms.NumericUpDown(); - this.CB_Red6 = new System.Windows.Forms.ComboBox(); - this.NUP_PurpleForme5 = new System.Windows.Forms.NumericUpDown(); - this.CB_Red5 = new System.Windows.Forms.ComboBox(); - this.NUP_PurpleMin5 = new System.Windows.Forms.NumericUpDown(); - this.CB_Red4 = new System.Windows.Forms.ComboBox(); - this.NUP_PurpleMax5 = new System.Windows.Forms.NumericUpDown(); - this.CB_Red3 = new System.Windows.Forms.ComboBox(); - this.NUP_PurpleForme6 = new System.Windows.Forms.NumericUpDown(); - this.CB_Red2 = new System.Windows.Forms.ComboBox(); - this.NUP_PurpleMin6 = new System.Windows.Forms.NumericUpDown(); - this.CB_Red1 = new System.Windows.Forms.ComboBox(); - this.NUP_PurpleMax6 = new System.Windows.Forms.NumericUpDown(); - this.label70 = new System.Windows.Forms.Label(); - this.NUP_PurpleForme7 = new System.Windows.Forms.NumericUpDown(); - this.label71 = new System.Windows.Forms.Label(); - this.NUP_PurpleMin7 = new System.Windows.Forms.NumericUpDown(); - this.label72 = new System.Windows.Forms.Label(); - this.NUP_PurpleMax7 = new System.Windows.Forms.NumericUpDown(); - this.label73 = new System.Windows.Forms.Label(); - this.NUP_PurpleForme8 = new System.Windows.Forms.NumericUpDown(); - this.label74 = new System.Windows.Forms.Label(); - this.NUP_PurpleMin8 = new System.Windows.Forms.NumericUpDown(); - this.label75 = new System.Windows.Forms.Label(); - this.NUP_PurpleMax8 = new System.Windows.Forms.NumericUpDown(); - this.label76 = new System.Windows.Forms.Label(); - this.NUP_PurpleForme9 = new System.Windows.Forms.NumericUpDown(); - this.label77 = new System.Windows.Forms.Label(); - this.NUP_PurpleMin9 = new System.Windows.Forms.NumericUpDown(); - this.label78 = new System.Windows.Forms.Label(); - this.NUP_PurpleMax9 = new System.Windows.Forms.NumericUpDown(); - this.label79 = new System.Windows.Forms.Label(); - this.NUP_PurpleForme10 = new System.Windows.Forms.NumericUpDown(); - this.label80 = new System.Windows.Forms.Label(); - this.NUP_PurpleMin10 = new System.Windows.Forms.NumericUpDown(); - this.label81 = new System.Windows.Forms.Label(); - this.NUP_PurpleMax10 = new System.Windows.Forms.NumericUpDown(); - this.NUP_YellowForme1 = new System.Windows.Forms.NumericUpDown(); - this.NUP_YellowMin1 = new System.Windows.Forms.NumericUpDown(); - this.label50 = new System.Windows.Forms.Label(); - this.NUP_YellowMax1 = new System.Windows.Forms.NumericUpDown(); - this.label51 = new System.Windows.Forms.Label(); - this.NUP_YellowForme2 = new System.Windows.Forms.NumericUpDown(); - this.label52 = new System.Windows.Forms.Label(); - this.NUP_YellowMin2 = new System.Windows.Forms.NumericUpDown(); - this.label53 = new System.Windows.Forms.Label(); - this.NUP_YellowMax2 = new System.Windows.Forms.NumericUpDown(); - this.CB_Yellow12 = new System.Windows.Forms.ComboBox(); - this.NUP_YellowForme3 = new System.Windows.Forms.NumericUpDown(); - this.CB_Yellow11 = new System.Windows.Forms.ComboBox(); - this.NUP_YellowMin3 = new System.Windows.Forms.NumericUpDown(); - this.CB_Yellow10 = new System.Windows.Forms.ComboBox(); - this.NUP_YellowMax3 = new System.Windows.Forms.NumericUpDown(); - this.CB_Yellow9 = new System.Windows.Forms.ComboBox(); - this.NUP_YellowForme4 = new System.Windows.Forms.NumericUpDown(); - this.CB_Yellow8 = new System.Windows.Forms.ComboBox(); - this.NUP_YellowMin4 = new System.Windows.Forms.NumericUpDown(); - this.CB_Yellow7 = new System.Windows.Forms.ComboBox(); - this.NUP_YellowMax4 = new System.Windows.Forms.NumericUpDown(); - this.CB_Yellow6 = new System.Windows.Forms.ComboBox(); - this.NUP_YellowForme5 = new System.Windows.Forms.NumericUpDown(); - this.CB_Yellow5 = new System.Windows.Forms.ComboBox(); - this.NUP_YellowMin5 = new System.Windows.Forms.NumericUpDown(); - this.CB_Yellow4 = new System.Windows.Forms.ComboBox(); - this.NUP_YellowMax5 = new System.Windows.Forms.NumericUpDown(); - this.CB_Yellow3 = new System.Windows.Forms.ComboBox(); - this.NUP_YellowForme6 = new System.Windows.Forms.NumericUpDown(); - this.CB_Yellow2 = new System.Windows.Forms.ComboBox(); - this.NUP_YellowMin6 = new System.Windows.Forms.NumericUpDown(); - this.CB_Yellow1 = new System.Windows.Forms.ComboBox(); - this.NUP_YellowMax6 = new System.Windows.Forms.NumericUpDown(); - this.label54 = new System.Windows.Forms.Label(); - this.NUP_YellowForme7 = new System.Windows.Forms.NumericUpDown(); - this.label55 = new System.Windows.Forms.Label(); - this.NUP_YellowMin7 = new System.Windows.Forms.NumericUpDown(); - this.label56 = new System.Windows.Forms.Label(); - this.NUP_YellowMax7 = new System.Windows.Forms.NumericUpDown(); - this.label57 = new System.Windows.Forms.Label(); - this.NUP_YellowForme8 = new System.Windows.Forms.NumericUpDown(); - this.label58 = new System.Windows.Forms.Label(); - this.NUP_YellowMin8 = new System.Windows.Forms.NumericUpDown(); - this.label59 = new System.Windows.Forms.Label(); - this.NUP_YellowMax8 = new System.Windows.Forms.NumericUpDown(); - this.label60 = new System.Windows.Forms.Label(); - this.NUP_YellowForme9 = new System.Windows.Forms.NumericUpDown(); - this.label61 = new System.Windows.Forms.Label(); - this.NUP_YellowMin9 = new System.Windows.Forms.NumericUpDown(); - this.label62 = new System.Windows.Forms.Label(); - this.NUP_YellowMax9 = new System.Windows.Forms.NumericUpDown(); - this.label63 = new System.Windows.Forms.Label(); - this.NUP_YellowForme10 = new System.Windows.Forms.NumericUpDown(); - this.label64 = new System.Windows.Forms.Label(); - this.NUP_YellowMin10 = new System.Windows.Forms.NumericUpDown(); - this.label65 = new System.Windows.Forms.Label(); - this.NUP_YellowMax10 = new System.Windows.Forms.NumericUpDown(); - this.CB_LocationID = new System.Windows.Forms.ComboBox(); - this.B_Save = new System.Windows.Forms.Button(); - this.label134 = new System.Windows.Forms.Label(); - this.label136 = new System.Windows.Forms.Label(); - this.CB_FormeList = new System.Windows.Forms.ComboBox(); - this.B_Randomize = new System.Windows.Forms.Button(); - this.B_Dump = new System.Windows.Forms.Button(); - this.CHK_HomogeneousHordes = new System.Windows.Forms.CheckBox(); - this.TabControl_EncounterData.SuspendLayout(); - this.TabPage_Land.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMax5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMin5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashForme5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMax4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashForme1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMin4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashForme4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMin1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMax3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMax1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMin3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashForme3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMax2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashForme2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMin2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme6)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin6)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax6)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme7)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin7)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax7)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme8)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin8)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax8)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme9)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin9)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax9)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme10)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin10)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax10)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme11)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin11)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax11)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme12)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin12)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax12)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme6)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin6)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax6)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme7)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin7)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax7)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme8)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin8)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax8)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme9)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin9)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax9)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme10)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin10)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax10)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax12)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme11)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin12)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin11)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme12)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax11)).BeginInit(); - this.TabPage_Water.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperForme1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMin1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfForme1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMax1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMin1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMax1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperForme2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMin2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfForme2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMax2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMin2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMax5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperForme3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMax2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMin3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMin5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMax3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfForme5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfForme3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMin3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMax4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMax3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMin4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodForme1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfForme4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMin1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMax1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodForme2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMin2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMax2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodForme3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMin3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMax3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_OldForme1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMin1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMax1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_OldForme2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMin2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMax2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_OldForme3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMin3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMax3)).BeginInit(); - this.TabPage_Horde.SuspendLayout(); - this.GB_Tweak.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_LevelAmp)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMax5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMin5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCForme5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMax4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMin4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCForme4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMax3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMin3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCForme3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMax2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMin2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCForme2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMax1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMin1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCForme1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMax5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMin5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBForme5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAForme1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMin1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMax4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMax5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMin4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMax1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBForme4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMin5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMax3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAForme5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMin3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAForme2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBForme3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMin2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMax2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMax4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMin2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMax2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBForme2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMin4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMax1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAForme4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMin1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAForme3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBForme1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMin3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMax3)).BeginInit(); - this.tabPage1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme11)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin11)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax11)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme12)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin12)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax12)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme11)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin11)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax11)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme12)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin12)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax12)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme11)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin11)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax11)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme12)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin12)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax12)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme6)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin6)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax6)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme7)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin7)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax7)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme8)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin8)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax8)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme9)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin9)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax9)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme10)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin10)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax10)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme6)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin6)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax6)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme7)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin7)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax7)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme8)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin8)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax8)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme9)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin9)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax9)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme10)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin10)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax10)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme6)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin6)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax6)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme7)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin7)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax7)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme8)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin8)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax8)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme9)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin9)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax9)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme10)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin10)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax10)).BeginInit(); - this.SuspendLayout(); - // - // TabControl_EncounterData - // - this.TabControl_EncounterData.Controls.Add(this.TabPage_Land); - this.TabControl_EncounterData.Controls.Add(this.TabPage_Water); - this.TabControl_EncounterData.Controls.Add(this.TabPage_Horde); - this.TabControl_EncounterData.Controls.Add(this.tabPage1); - this.TabControl_EncounterData.Location = new System.Drawing.Point(12, 12); - this.TabControl_EncounterData.Name = "TabControl_EncounterData"; - this.TabControl_EncounterData.SelectedIndex = 0; - this.TabControl_EncounterData.Size = new System.Drawing.Size(926, 395); - this.TabControl_EncounterData.TabIndex = 2; - // - // TabPage_Land - // - this.TabPage_Land.Controls.Add(this.label107); - this.TabPage_Land.Controls.Add(this.label115); - this.TabPage_Land.Controls.Add(this.label108); - this.TabPage_Land.Controls.Add(this.NUP_RockSmashMax5); - this.TabPage_Land.Controls.Add(this.label109); - this.TabPage_Land.Controls.Add(this.NUP_RockSmashMin5); - this.TabPage_Land.Controls.Add(this.label110); - this.TabPage_Land.Controls.Add(this.NUP_RockSmashForme5); - this.TabPage_Land.Controls.Add(this.label111); - this.TabPage_Land.Controls.Add(this.CB_RockSmash5); - this.TabPage_Land.Controls.Add(this.CB_RockSmash1); - this.TabPage_Land.Controls.Add(this.NUP_RockSmashMax4); - this.TabPage_Land.Controls.Add(this.NUP_RockSmashForme1); - this.TabPage_Land.Controls.Add(this.NUP_RockSmashMin4); - this.TabPage_Land.Controls.Add(this.label112); - this.TabPage_Land.Controls.Add(this.NUP_RockSmashForme4); - this.TabPage_Land.Controls.Add(this.NUP_RockSmashMin1); - this.TabPage_Land.Controls.Add(this.CB_RockSmash4); - this.TabPage_Land.Controls.Add(this.label113); - this.TabPage_Land.Controls.Add(this.NUP_RockSmashMax3); - this.TabPage_Land.Controls.Add(this.NUP_RockSmashMax1); - this.TabPage_Land.Controls.Add(this.NUP_RockSmashMin3); - this.TabPage_Land.Controls.Add(this.label114); - this.TabPage_Land.Controls.Add(this.NUP_RockSmashForme3); - this.TabPage_Land.Controls.Add(this.CB_RockSmash2); - this.TabPage_Land.Controls.Add(this.CB_RockSmash3); - this.TabPage_Land.Controls.Add(this.NUP_RockSmashMax2); - this.TabPage_Land.Controls.Add(this.NUP_RockSmashForme2); - this.TabPage_Land.Controls.Add(this.NUP_RockSmashMin2); - this.TabPage_Land.Controls.Add(this.NUP_RTForme1); - this.TabPage_Land.Controls.Add(this.NUP_RTMin1); - this.TabPage_Land.Controls.Add(this.label6); - this.TabPage_Land.Controls.Add(this.NUP_RTMax1); - this.TabPage_Land.Controls.Add(this.label7); - this.TabPage_Land.Controls.Add(this.NUP_RTForme2); - this.TabPage_Land.Controls.Add(this.label8); - this.TabPage_Land.Controls.Add(this.NUP_RTMin2); - this.TabPage_Land.Controls.Add(this.label9); - this.TabPage_Land.Controls.Add(this.NUP_RTMax2); - this.TabPage_Land.Controls.Add(this.CB_RT12); - this.TabPage_Land.Controls.Add(this.NUP_RTForme3); - this.TabPage_Land.Controls.Add(this.CB_RT11); - this.TabPage_Land.Controls.Add(this.NUP_RTMin3); - this.TabPage_Land.Controls.Add(this.CB_RT10); - this.TabPage_Land.Controls.Add(this.NUP_RTMax3); - this.TabPage_Land.Controls.Add(this.CB_RT9); - this.TabPage_Land.Controls.Add(this.NUP_RTForme4); - this.TabPage_Land.Controls.Add(this.CB_RT8); - this.TabPage_Land.Controls.Add(this.NUP_RTMin4); - this.TabPage_Land.Controls.Add(this.CB_RT7); - this.TabPage_Land.Controls.Add(this.NUP_RTMax4); - this.TabPage_Land.Controls.Add(this.CB_RT6); - this.TabPage_Land.Controls.Add(this.NUP_RTForme5); - this.TabPage_Land.Controls.Add(this.CB_RT5); - this.TabPage_Land.Controls.Add(this.NUP_RTMin5); - this.TabPage_Land.Controls.Add(this.CB_RT4); - this.TabPage_Land.Controls.Add(this.NUP_RTMax5); - this.TabPage_Land.Controls.Add(this.CB_RT3); - this.TabPage_Land.Controls.Add(this.NUP_RTForme6); - this.TabPage_Land.Controls.Add(this.CB_RT2); - this.TabPage_Land.Controls.Add(this.NUP_RTMin6); - this.TabPage_Land.Controls.Add(this.CB_RT1); - this.TabPage_Land.Controls.Add(this.NUP_RTMax6); - this.TabPage_Land.Controls.Add(this.label10); - this.TabPage_Land.Controls.Add(this.NUP_RTForme7); - this.TabPage_Land.Controls.Add(this.label11); - this.TabPage_Land.Controls.Add(this.NUP_RTMin7); - this.TabPage_Land.Controls.Add(this.label12); - this.TabPage_Land.Controls.Add(this.NUP_RTMax7); - this.TabPage_Land.Controls.Add(this.label13); - this.TabPage_Land.Controls.Add(this.NUP_RTForme8); - this.TabPage_Land.Controls.Add(this.label14); - this.TabPage_Land.Controls.Add(this.NUP_RTMin8); - this.TabPage_Land.Controls.Add(this.label15); - this.TabPage_Land.Controls.Add(this.NUP_RTMax8); - this.TabPage_Land.Controls.Add(this.label16); - this.TabPage_Land.Controls.Add(this.NUP_RTForme9); - this.TabPage_Land.Controls.Add(this.label17); - this.TabPage_Land.Controls.Add(this.NUP_RTMin9); - this.TabPage_Land.Controls.Add(this.label18); - this.TabPage_Land.Controls.Add(this.NUP_RTMax9); - this.TabPage_Land.Controls.Add(this.label19); - this.TabPage_Land.Controls.Add(this.NUP_RTForme10); - this.TabPage_Land.Controls.Add(this.label20); - this.TabPage_Land.Controls.Add(this.NUP_RTMin10); - this.TabPage_Land.Controls.Add(this.label21); - this.TabPage_Land.Controls.Add(this.NUP_RTMax10); - this.TabPage_Land.Controls.Add(this.NUP_RTForme11); - this.TabPage_Land.Controls.Add(this.NUP_RTMin11); - this.TabPage_Land.Controls.Add(this.NUP_RTMax11); - this.TabPage_Land.Controls.Add(this.NUP_RTForme12); - this.TabPage_Land.Controls.Add(this.NUP_RTMin12); - this.TabPage_Land.Controls.Add(this.NUP_RTMax12); - this.TabPage_Land.Controls.Add(this.NUP_GrassForme1); - this.TabPage_Land.Controls.Add(this.NUP_GrassMin1); - this.TabPage_Land.Controls.Add(this.label3); - this.TabPage_Land.Controls.Add(this.NUP_GrassMax1); - this.TabPage_Land.Controls.Add(this.label4); - this.TabPage_Land.Controls.Add(this.NUP_GrassForme2); - this.TabPage_Land.Controls.Add(this.label5); - this.TabPage_Land.Controls.Add(this.NUP_GrassMin2); - this.TabPage_Land.Controls.Add(this.label2); - this.TabPage_Land.Controls.Add(this.NUP_GrassMax2); - this.TabPage_Land.Controls.Add(this.CB_Grass12); - this.TabPage_Land.Controls.Add(this.NUP_GrassForme3); - this.TabPage_Land.Controls.Add(this.CB_Grass11); - this.TabPage_Land.Controls.Add(this.NUP_GrassMin3); - this.TabPage_Land.Controls.Add(this.CB_Grass10); - this.TabPage_Land.Controls.Add(this.NUP_GrassMax3); - this.TabPage_Land.Controls.Add(this.CB_Grass9); - this.TabPage_Land.Controls.Add(this.NUP_GrassForme4); - this.TabPage_Land.Controls.Add(this.CB_Grass8); - this.TabPage_Land.Controls.Add(this.NUP_GrassMin4); - this.TabPage_Land.Controls.Add(this.CB_Grass7); - this.TabPage_Land.Controls.Add(this.NUP_GrassMax4); - this.TabPage_Land.Controls.Add(this.CB_Grass6); - this.TabPage_Land.Controls.Add(this.NUP_GrassForme5); - this.TabPage_Land.Controls.Add(this.CB_Grass5); - this.TabPage_Land.Controls.Add(this.NUP_GrassMin5); - this.TabPage_Land.Controls.Add(this.CB_Grass4); - this.TabPage_Land.Controls.Add(this.NUP_GrassMax5); - this.TabPage_Land.Controls.Add(this.CB_Grass3); - this.TabPage_Land.Controls.Add(this.NUP_GrassForme6); - this.TabPage_Land.Controls.Add(this.CB_Grass2); - this.TabPage_Land.Controls.Add(this.NUP_GrassMin6); - this.TabPage_Land.Controls.Add(this.CB_Grass1); - this.TabPage_Land.Controls.Add(this.NUP_GrassMax6); - this.TabPage_Land.Controls.Add(this.label31); - this.TabPage_Land.Controls.Add(this.NUP_GrassForme7); - this.TabPage_Land.Controls.Add(this.label41); - this.TabPage_Land.Controls.Add(this.NUP_GrassMin7); - this.TabPage_Land.Controls.Add(this.label42); - this.TabPage_Land.Controls.Add(this.NUP_GrassMax7); - this.TabPage_Land.Controls.Add(this.label40); - this.TabPage_Land.Controls.Add(this.NUP_GrassForme8); - this.TabPage_Land.Controls.Add(this.label39); - this.TabPage_Land.Controls.Add(this.NUP_GrassMin8); - this.TabPage_Land.Controls.Add(this.label38); - this.TabPage_Land.Controls.Add(this.NUP_GrassMax8); - this.TabPage_Land.Controls.Add(this.label37); - this.TabPage_Land.Controls.Add(this.NUP_GrassForme9); - this.TabPage_Land.Controls.Add(this.label36); - this.TabPage_Land.Controls.Add(this.NUP_GrassMin9); - this.TabPage_Land.Controls.Add(this.label35); - this.TabPage_Land.Controls.Add(this.NUP_GrassMax9); - this.TabPage_Land.Controls.Add(this.label34); - this.TabPage_Land.Controls.Add(this.NUP_GrassForme10); - this.TabPage_Land.Controls.Add(this.label33); - this.TabPage_Land.Controls.Add(this.NUP_GrassMin10); - this.TabPage_Land.Controls.Add(this.label32); - this.TabPage_Land.Controls.Add(this.NUP_GrassMax10); - this.TabPage_Land.Controls.Add(this.NUP_GrassMax12); - this.TabPage_Land.Controls.Add(this.NUP_GrassForme11); - this.TabPage_Land.Controls.Add(this.NUP_GrassMin12); - this.TabPage_Land.Controls.Add(this.NUP_GrassMin11); - this.TabPage_Land.Controls.Add(this.NUP_GrassForme12); - this.TabPage_Land.Controls.Add(this.NUP_GrassMax11); - this.TabPage_Land.Location = new System.Drawing.Point(4, 22); - this.TabPage_Land.Name = "TabPage_Land"; - this.TabPage_Land.Padding = new System.Windows.Forms.Padding(3); - this.TabPage_Land.Size = new System.Drawing.Size(918, 369); - this.TabPage_Land.TabIndex = 0; - this.TabPage_Land.Text = "Land"; - this.TabPage_Land.UseVisualStyleBackColor = true; - // - // label107 - // - this.label107.AutoSize = true; - this.label107.Location = new System.Drawing.Point(619, 147); - this.label107.Name = "label107"; - this.label107.Size = new System.Drawing.Size(21, 13); - this.label107.TabIndex = 406; - this.label107.Text = "1%"; - // - // label115 - // - this.label115.AutoSize = true; - this.label115.Location = new System.Drawing.Point(643, 20); - this.label115.Name = "label115"; - this.label115.Size = new System.Drawing.Size(68, 13); - this.label115.TabIndex = 398; - this.label115.Text = "Rock Smash"; - // - // label108 - // - this.label108.AutoSize = true; - this.label108.Location = new System.Drawing.Point(619, 120); - this.label108.Name = "label108"; - this.label108.Size = new System.Drawing.Size(21, 13); - this.label108.TabIndex = 405; - this.label108.Text = "4%"; - // - // NUP_RockSmashMax5 - // - this.NUP_RockSmashMax5.Location = new System.Drawing.Point(867, 145); - this.NUP_RockSmashMax5.Name = "NUP_RockSmashMax5"; - this.NUP_RockSmashMax5.Size = new System.Drawing.Size(41, 20); - this.NUP_RockSmashMax5.TabIndex = 397; - // - // label109 - // - this.label109.AutoSize = true; - this.label109.Location = new System.Drawing.Point(614, 93); - this.label109.Name = "label109"; - this.label109.Size = new System.Drawing.Size(27, 13); - this.label109.TabIndex = 404; - this.label109.Text = "15%"; - // - // NUP_RockSmashMin5 - // - this.NUP_RockSmashMin5.Location = new System.Drawing.Point(820, 145); - this.NUP_RockSmashMin5.Name = "NUP_RockSmashMin5"; - this.NUP_RockSmashMin5.Size = new System.Drawing.Size(41, 20); - this.NUP_RockSmashMin5.TabIndex = 396; - // - // label110 - // - this.label110.AutoSize = true; - this.label110.Location = new System.Drawing.Point(613, 66); - this.label110.Name = "label110"; - this.label110.Size = new System.Drawing.Size(27, 13); - this.label110.TabIndex = 403; - this.label110.Text = "30%"; - // - // NUP_RockSmashForme5 - // - this.NUP_RockSmashForme5.Location = new System.Drawing.Point(773, 145); - this.NUP_RockSmashForme5.Name = "NUP_RockSmashForme5"; - this.NUP_RockSmashForme5.Size = new System.Drawing.Size(41, 20); - this.NUP_RockSmashForme5.TabIndex = 395; - // - // label111 - // - this.label111.AutoSize = true; - this.label111.Location = new System.Drawing.Point(613, 39); - this.label111.Name = "label111"; - this.label111.Size = new System.Drawing.Size(27, 13); - this.label111.TabIndex = 402; - this.label111.Text = "50%"; - // - // CB_RockSmash5 - // - this.CB_RockSmash5.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_RockSmash5.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_RockSmash5.FormattingEnabled = true; - this.CB_RockSmash5.Items.AddRange(new object[] { + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.TabControl_EncounterData = new System.Windows.Forms.TabControl(); + this.TabPage_Land = new System.Windows.Forms.TabPage(); + this.label107 = new System.Windows.Forms.Label(); + this.label115 = new System.Windows.Forms.Label(); + this.label108 = new System.Windows.Forms.Label(); + this.NUP_RockSmashMax5 = new System.Windows.Forms.NumericUpDown(); + this.label109 = new System.Windows.Forms.Label(); + this.NUP_RockSmashMin5 = new System.Windows.Forms.NumericUpDown(); + this.label110 = new System.Windows.Forms.Label(); + this.NUP_RockSmashForme5 = new System.Windows.Forms.NumericUpDown(); + this.label111 = new System.Windows.Forms.Label(); + this.CB_RockSmash5 = new System.Windows.Forms.ComboBox(); + this.CB_RockSmash1 = new System.Windows.Forms.ComboBox(); + this.NUP_RockSmashMax4 = new System.Windows.Forms.NumericUpDown(); + this.NUP_RockSmashForme1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_RockSmashMin4 = new System.Windows.Forms.NumericUpDown(); + this.label112 = new System.Windows.Forms.Label(); + this.NUP_RockSmashForme4 = new System.Windows.Forms.NumericUpDown(); + this.NUP_RockSmashMin1 = new System.Windows.Forms.NumericUpDown(); + this.CB_RockSmash4 = new System.Windows.Forms.ComboBox(); + this.label113 = new System.Windows.Forms.Label(); + this.NUP_RockSmashMax3 = new System.Windows.Forms.NumericUpDown(); + this.NUP_RockSmashMax1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_RockSmashMin3 = new System.Windows.Forms.NumericUpDown(); + this.label114 = new System.Windows.Forms.Label(); + this.NUP_RockSmashForme3 = new System.Windows.Forms.NumericUpDown(); + this.CB_RockSmash2 = new System.Windows.Forms.ComboBox(); + this.CB_RockSmash3 = new System.Windows.Forms.ComboBox(); + this.NUP_RockSmashMax2 = new System.Windows.Forms.NumericUpDown(); + this.NUP_RockSmashForme2 = new System.Windows.Forms.NumericUpDown(); + this.NUP_RockSmashMin2 = new System.Windows.Forms.NumericUpDown(); + this.NUP_RTForme1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_RTMin1 = new System.Windows.Forms.NumericUpDown(); + this.label6 = new System.Windows.Forms.Label(); + this.NUP_RTMax1 = new System.Windows.Forms.NumericUpDown(); + this.label7 = new System.Windows.Forms.Label(); + this.NUP_RTForme2 = new System.Windows.Forms.NumericUpDown(); + this.label8 = new System.Windows.Forms.Label(); + this.NUP_RTMin2 = new System.Windows.Forms.NumericUpDown(); + this.label9 = new System.Windows.Forms.Label(); + this.NUP_RTMax2 = new System.Windows.Forms.NumericUpDown(); + this.CB_RT12 = new System.Windows.Forms.ComboBox(); + this.NUP_RTForme3 = new System.Windows.Forms.NumericUpDown(); + this.CB_RT11 = new System.Windows.Forms.ComboBox(); + this.NUP_RTMin3 = new System.Windows.Forms.NumericUpDown(); + this.CB_RT10 = new System.Windows.Forms.ComboBox(); + this.NUP_RTMax3 = new System.Windows.Forms.NumericUpDown(); + this.CB_RT9 = new System.Windows.Forms.ComboBox(); + this.NUP_RTForme4 = new System.Windows.Forms.NumericUpDown(); + this.CB_RT8 = new System.Windows.Forms.ComboBox(); + this.NUP_RTMin4 = new System.Windows.Forms.NumericUpDown(); + this.CB_RT7 = new System.Windows.Forms.ComboBox(); + this.NUP_RTMax4 = new System.Windows.Forms.NumericUpDown(); + this.CB_RT6 = new System.Windows.Forms.ComboBox(); + this.NUP_RTForme5 = new System.Windows.Forms.NumericUpDown(); + this.CB_RT5 = new System.Windows.Forms.ComboBox(); + this.NUP_RTMin5 = new System.Windows.Forms.NumericUpDown(); + this.CB_RT4 = new System.Windows.Forms.ComboBox(); + this.NUP_RTMax5 = new System.Windows.Forms.NumericUpDown(); + this.CB_RT3 = new System.Windows.Forms.ComboBox(); + this.NUP_RTForme6 = new System.Windows.Forms.NumericUpDown(); + this.CB_RT2 = new System.Windows.Forms.ComboBox(); + this.NUP_RTMin6 = new System.Windows.Forms.NumericUpDown(); + this.CB_RT1 = new System.Windows.Forms.ComboBox(); + this.NUP_RTMax6 = new System.Windows.Forms.NumericUpDown(); + this.label10 = new System.Windows.Forms.Label(); + this.NUP_RTForme7 = new System.Windows.Forms.NumericUpDown(); + this.label11 = new System.Windows.Forms.Label(); + this.NUP_RTMin7 = new System.Windows.Forms.NumericUpDown(); + this.label12 = new System.Windows.Forms.Label(); + this.NUP_RTMax7 = new System.Windows.Forms.NumericUpDown(); + this.label13 = new System.Windows.Forms.Label(); + this.NUP_RTForme8 = new System.Windows.Forms.NumericUpDown(); + this.label14 = new System.Windows.Forms.Label(); + this.NUP_RTMin8 = new System.Windows.Forms.NumericUpDown(); + this.label15 = new System.Windows.Forms.Label(); + this.NUP_RTMax8 = new System.Windows.Forms.NumericUpDown(); + this.label16 = new System.Windows.Forms.Label(); + this.NUP_RTForme9 = new System.Windows.Forms.NumericUpDown(); + this.label17 = new System.Windows.Forms.Label(); + this.NUP_RTMin9 = new System.Windows.Forms.NumericUpDown(); + this.label18 = new System.Windows.Forms.Label(); + this.NUP_RTMax9 = new System.Windows.Forms.NumericUpDown(); + this.label19 = new System.Windows.Forms.Label(); + this.NUP_RTForme10 = new System.Windows.Forms.NumericUpDown(); + this.label20 = new System.Windows.Forms.Label(); + this.NUP_RTMin10 = new System.Windows.Forms.NumericUpDown(); + this.label21 = new System.Windows.Forms.Label(); + this.NUP_RTMax10 = new System.Windows.Forms.NumericUpDown(); + this.NUP_RTForme11 = new System.Windows.Forms.NumericUpDown(); + this.NUP_RTMin11 = new System.Windows.Forms.NumericUpDown(); + this.NUP_RTMax11 = new System.Windows.Forms.NumericUpDown(); + this.NUP_RTForme12 = new System.Windows.Forms.NumericUpDown(); + this.NUP_RTMin12 = new System.Windows.Forms.NumericUpDown(); + this.NUP_RTMax12 = new System.Windows.Forms.NumericUpDown(); + this.NUP_GrassForme1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_GrassMin1 = new System.Windows.Forms.NumericUpDown(); + this.label3 = new System.Windows.Forms.Label(); + this.NUP_GrassMax1 = new System.Windows.Forms.NumericUpDown(); + this.label4 = new System.Windows.Forms.Label(); + this.NUP_GrassForme2 = new System.Windows.Forms.NumericUpDown(); + this.label5 = new System.Windows.Forms.Label(); + this.NUP_GrassMin2 = new System.Windows.Forms.NumericUpDown(); + this.label2 = new System.Windows.Forms.Label(); + this.NUP_GrassMax2 = new System.Windows.Forms.NumericUpDown(); + this.CB_Grass12 = new System.Windows.Forms.ComboBox(); + this.NUP_GrassForme3 = new System.Windows.Forms.NumericUpDown(); + this.CB_Grass11 = new System.Windows.Forms.ComboBox(); + this.NUP_GrassMin3 = new System.Windows.Forms.NumericUpDown(); + this.CB_Grass10 = new System.Windows.Forms.ComboBox(); + this.NUP_GrassMax3 = new System.Windows.Forms.NumericUpDown(); + this.CB_Grass9 = new System.Windows.Forms.ComboBox(); + this.NUP_GrassForme4 = new System.Windows.Forms.NumericUpDown(); + this.CB_Grass8 = new System.Windows.Forms.ComboBox(); + this.NUP_GrassMin4 = new System.Windows.Forms.NumericUpDown(); + this.CB_Grass7 = new System.Windows.Forms.ComboBox(); + this.NUP_GrassMax4 = new System.Windows.Forms.NumericUpDown(); + this.CB_Grass6 = new System.Windows.Forms.ComboBox(); + this.NUP_GrassForme5 = new System.Windows.Forms.NumericUpDown(); + this.CB_Grass5 = new System.Windows.Forms.ComboBox(); + this.NUP_GrassMin5 = new System.Windows.Forms.NumericUpDown(); + this.CB_Grass4 = new System.Windows.Forms.ComboBox(); + this.NUP_GrassMax5 = new System.Windows.Forms.NumericUpDown(); + this.CB_Grass3 = new System.Windows.Forms.ComboBox(); + this.NUP_GrassForme6 = new System.Windows.Forms.NumericUpDown(); + this.CB_Grass2 = new System.Windows.Forms.ComboBox(); + this.NUP_GrassMin6 = new System.Windows.Forms.NumericUpDown(); + this.CB_Grass1 = new System.Windows.Forms.ComboBox(); + this.NUP_GrassMax6 = new System.Windows.Forms.NumericUpDown(); + this.label31 = new System.Windows.Forms.Label(); + this.NUP_GrassForme7 = new System.Windows.Forms.NumericUpDown(); + this.label41 = new System.Windows.Forms.Label(); + this.NUP_GrassMin7 = new System.Windows.Forms.NumericUpDown(); + this.label42 = new System.Windows.Forms.Label(); + this.NUP_GrassMax7 = new System.Windows.Forms.NumericUpDown(); + this.label40 = new System.Windows.Forms.Label(); + this.NUP_GrassForme8 = new System.Windows.Forms.NumericUpDown(); + this.label39 = new System.Windows.Forms.Label(); + this.NUP_GrassMin8 = new System.Windows.Forms.NumericUpDown(); + this.label38 = new System.Windows.Forms.Label(); + this.NUP_GrassMax8 = new System.Windows.Forms.NumericUpDown(); + this.label37 = new System.Windows.Forms.Label(); + this.NUP_GrassForme9 = new System.Windows.Forms.NumericUpDown(); + this.label36 = new System.Windows.Forms.Label(); + this.NUP_GrassMin9 = new System.Windows.Forms.NumericUpDown(); + this.label35 = new System.Windows.Forms.Label(); + this.NUP_GrassMax9 = new System.Windows.Forms.NumericUpDown(); + this.label34 = new System.Windows.Forms.Label(); + this.NUP_GrassForme10 = new System.Windows.Forms.NumericUpDown(); + this.label33 = new System.Windows.Forms.Label(); + this.NUP_GrassMin10 = new System.Windows.Forms.NumericUpDown(); + this.label32 = new System.Windows.Forms.Label(); + this.NUP_GrassMax10 = new System.Windows.Forms.NumericUpDown(); + this.NUP_GrassMax12 = new System.Windows.Forms.NumericUpDown(); + this.NUP_GrassForme11 = new System.Windows.Forms.NumericUpDown(); + this.NUP_GrassMin12 = new System.Windows.Forms.NumericUpDown(); + this.NUP_GrassMin11 = new System.Windows.Forms.NumericUpDown(); + this.NUP_GrassForme12 = new System.Windows.Forms.NumericUpDown(); + this.NUP_GrassMax11 = new System.Windows.Forms.NumericUpDown(); + this.TabPage_Water = new System.Windows.Forms.TabPage(); + this.label116 = new System.Windows.Forms.Label(); + this.label117 = new System.Windows.Forms.Label(); + this.label118 = new System.Windows.Forms.Label(); + this.label119 = new System.Windows.Forms.Label(); + this.label120 = new System.Windows.Forms.Label(); + this.label103 = new System.Windows.Forms.Label(); + this.label48 = new System.Windows.Forms.Label(); + this.label104 = new System.Windows.Forms.Label(); + this.CB_Super1 = new System.Windows.Forms.ComboBox(); + this.label105 = new System.Windows.Forms.Label(); + this.NUP_SuperForme1 = new System.Windows.Forms.NumericUpDown(); + this.label106 = new System.Windows.Forms.Label(); + this.CB_Surf1 = new System.Windows.Forms.ComboBox(); + this.NUP_SuperMin1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_SurfForme1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_SuperMax1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_SurfMin1 = new System.Windows.Forms.NumericUpDown(); + this.CB_Super2 = new System.Windows.Forms.ComboBox(); + this.NUP_SurfMax1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_SuperForme2 = new System.Windows.Forms.NumericUpDown(); + this.CB_Surf2 = new System.Windows.Forms.ComboBox(); + this.NUP_SuperMin2 = new System.Windows.Forms.NumericUpDown(); + this.NUP_SurfForme2 = new System.Windows.Forms.NumericUpDown(); + this.NUP_SuperMax2 = new System.Windows.Forms.NumericUpDown(); + this.NUP_SurfMin2 = new System.Windows.Forms.NumericUpDown(); + this.CB_Super3 = new System.Windows.Forms.ComboBox(); + this.NUP_SurfMax5 = new System.Windows.Forms.NumericUpDown(); + this.NUP_SuperForme3 = new System.Windows.Forms.NumericUpDown(); + this.NUP_SurfMax2 = new System.Windows.Forms.NumericUpDown(); + this.NUP_SuperMin3 = new System.Windows.Forms.NumericUpDown(); + this.NUP_SurfMin5 = new System.Windows.Forms.NumericUpDown(); + this.NUP_SuperMax3 = new System.Windows.Forms.NumericUpDown(); + this.CB_Surf3 = new System.Windows.Forms.ComboBox(); + this.label49 = new System.Windows.Forms.Label(); + this.NUP_SurfForme5 = new System.Windows.Forms.NumericUpDown(); + this.label98 = new System.Windows.Forms.Label(); + this.NUP_SurfForme3 = new System.Windows.Forms.NumericUpDown(); + this.label99 = new System.Windows.Forms.Label(); + this.CB_Surf5 = new System.Windows.Forms.ComboBox(); + this.label100 = new System.Windows.Forms.Label(); + this.NUP_SurfMin3 = new System.Windows.Forms.NumericUpDown(); + this.label101 = new System.Windows.Forms.Label(); + this.NUP_SurfMax4 = new System.Windows.Forms.NumericUpDown(); + this.label102 = new System.Windows.Forms.Label(); + this.NUP_SurfMax3 = new System.Windows.Forms.NumericUpDown(); + this.label26 = new System.Windows.Forms.Label(); + this.NUP_SurfMin4 = new System.Windows.Forms.NumericUpDown(); + this.CB_Good1 = new System.Windows.Forms.ComboBox(); + this.CB_Surf4 = new System.Windows.Forms.ComboBox(); + this.NUP_GoodForme1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_SurfForme4 = new System.Windows.Forms.NumericUpDown(); + this.NUP_GoodMin1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_GoodMax1 = new System.Windows.Forms.NumericUpDown(); + this.CB_Good2 = new System.Windows.Forms.ComboBox(); + this.NUP_GoodForme2 = new System.Windows.Forms.NumericUpDown(); + this.NUP_GoodMin2 = new System.Windows.Forms.NumericUpDown(); + this.NUP_GoodMax2 = new System.Windows.Forms.NumericUpDown(); + this.CB_Good3 = new System.Windows.Forms.ComboBox(); + this.NUP_GoodForme3 = new System.Windows.Forms.NumericUpDown(); + this.NUP_GoodMin3 = new System.Windows.Forms.NumericUpDown(); + this.NUP_GoodMax3 = new System.Windows.Forms.NumericUpDown(); + this.label27 = new System.Windows.Forms.Label(); + this.label28 = new System.Windows.Forms.Label(); + this.label29 = new System.Windows.Forms.Label(); + this.label30 = new System.Windows.Forms.Label(); + this.label46 = new System.Windows.Forms.Label(); + this.label47 = new System.Windows.Forms.Label(); + this.label22 = new System.Windows.Forms.Label(); + this.CB_Old1 = new System.Windows.Forms.ComboBox(); + this.NUP_OldForme1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_OldMin1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_OldMax1 = new System.Windows.Forms.NumericUpDown(); + this.CB_Old2 = new System.Windows.Forms.ComboBox(); + this.NUP_OldForme2 = new System.Windows.Forms.NumericUpDown(); + this.NUP_OldMin2 = new System.Windows.Forms.NumericUpDown(); + this.NUP_OldMax2 = new System.Windows.Forms.NumericUpDown(); + this.CB_Old3 = new System.Windows.Forms.ComboBox(); + this.NUP_OldForme3 = new System.Windows.Forms.NumericUpDown(); + this.NUP_OldMin3 = new System.Windows.Forms.NumericUpDown(); + this.NUP_OldMax3 = new System.Windows.Forms.NumericUpDown(); + this.label45 = new System.Windows.Forms.Label(); + this.label44 = new System.Windows.Forms.Label(); + this.label43 = new System.Windows.Forms.Label(); + this.label23 = new System.Windows.Forms.Label(); + this.label24 = new System.Windows.Forms.Label(); + this.label25 = new System.Windows.Forms.Label(); + this.TabPage_Horde = new System.Windows.Forms.TabPage(); + this.GB_Tweak = new System.Windows.Forms.GroupBox(); + this.CHK_HomogeneousHordes = new System.Windows.Forms.CheckBox(); + this.CHK_MegaForm = new System.Windows.Forms.CheckBox(); + this.L_RandOpt = new System.Windows.Forms.Label(); + this.CHK_BST = new System.Windows.Forms.CheckBox(); + this.CHK_E = new System.Windows.Forms.CheckBox(); + this.CHK_L = new System.Windows.Forms.CheckBox(); + this.CHK_G6 = new System.Windows.Forms.CheckBox(); + this.CHK_G5 = new System.Windows.Forms.CheckBox(); + this.CHK_G4 = new System.Windows.Forms.CheckBox(); + this.CHK_G3 = new System.Windows.Forms.CheckBox(); + this.CHK_G2 = new System.Windows.Forms.CheckBox(); + this.CHK_G1 = new System.Windows.Forms.CheckBox(); + this.B_LevelPlus = new System.Windows.Forms.Button(); + this.NUD_LevelAmp = new System.Windows.Forms.NumericUpDown(); + this.CHK_Level = new System.Windows.Forms.CheckBox(); + this.label129 = new System.Windows.Forms.Label(); + this.label130 = new System.Windows.Forms.Label(); + this.label131 = new System.Windows.Forms.Label(); + this.label132 = new System.Windows.Forms.Label(); + this.NUP_HordeCMax5 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeCMin5 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeCForme5 = new System.Windows.Forms.NumericUpDown(); + this.CB_HordeC5 = new System.Windows.Forms.ComboBox(); + this.NUP_HordeCMax4 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeCMin4 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeCForme4 = new System.Windows.Forms.NumericUpDown(); + this.CB_HordeC4 = new System.Windows.Forms.ComboBox(); + this.NUP_HordeCMax3 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeCMin3 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeCForme3 = new System.Windows.Forms.NumericUpDown(); + this.CB_HordeC3 = new System.Windows.Forms.ComboBox(); + this.NUP_HordeCMax2 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeCMin2 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeCForme2 = new System.Windows.Forms.NumericUpDown(); + this.CB_HordeC2 = new System.Windows.Forms.ComboBox(); + this.NUP_HordeCMax1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeCMin1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeCForme1 = new System.Windows.Forms.NumericUpDown(); + this.CB_HordeC1 = new System.Windows.Forms.ComboBox(); + this.label125 = new System.Windows.Forms.Label(); + this.label121 = new System.Windows.Forms.Label(); + this.label126 = new System.Windows.Forms.Label(); + this.label124 = new System.Windows.Forms.Label(); + this.label127 = new System.Windows.Forms.Label(); + this.label122 = new System.Windows.Forms.Label(); + this.label128 = new System.Windows.Forms.Label(); + this.NUP_HordeBMax5 = new System.Windows.Forms.NumericUpDown(); + this.CB_HordeA1 = new System.Windows.Forms.ComboBox(); + this.NUP_HordeBMin5 = new System.Windows.Forms.NumericUpDown(); + this.label123 = new System.Windows.Forms.Label(); + this.NUP_HordeBForme5 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeAForme1 = new System.Windows.Forms.NumericUpDown(); + this.CB_HordeB5 = new System.Windows.Forms.ComboBox(); + this.NUP_HordeAMin1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeBMax4 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeAMax5 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeBMin4 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeAMax1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeBForme4 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeAMin5 = new System.Windows.Forms.NumericUpDown(); + this.CB_HordeB4 = new System.Windows.Forms.ComboBox(); + this.CB_HordeA2 = new System.Windows.Forms.ComboBox(); + this.NUP_HordeBMax3 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeAForme5 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeBMin3 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeAForme2 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeBForme3 = new System.Windows.Forms.NumericUpDown(); + this.CB_HordeA5 = new System.Windows.Forms.ComboBox(); + this.CB_HordeB3 = new System.Windows.Forms.ComboBox(); + this.NUP_HordeAMin2 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeBMax2 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeAMax4 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeBMin2 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeAMax2 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeBForme2 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeAMin4 = new System.Windows.Forms.NumericUpDown(); + this.CB_HordeB2 = new System.Windows.Forms.ComboBox(); + this.CB_HordeA3 = new System.Windows.Forms.ComboBox(); + this.NUP_HordeBMax1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeAForme4 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeBMin1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeAForme3 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeBForme1 = new System.Windows.Forms.NumericUpDown(); + this.CB_HordeA4 = new System.Windows.Forms.ComboBox(); + this.CB_HordeB1 = new System.Windows.Forms.ComboBox(); + this.NUP_HordeAMin3 = new System.Windows.Forms.NumericUpDown(); + this.NUP_HordeAMax3 = new System.Windows.Forms.NumericUpDown(); + this.tabPage1 = new System.Windows.Forms.TabPage(); + this.NUP_RedForme11 = new System.Windows.Forms.NumericUpDown(); + this.NUP_RedMin11 = new System.Windows.Forms.NumericUpDown(); + this.NUP_RedMax11 = new System.Windows.Forms.NumericUpDown(); + this.NUP_RedForme12 = new System.Windows.Forms.NumericUpDown(); + this.NUP_RedMin12 = new System.Windows.Forms.NumericUpDown(); + this.NUP_RedMax12 = new System.Windows.Forms.NumericUpDown(); + this.NUP_PurpleForme11 = new System.Windows.Forms.NumericUpDown(); + this.NUP_PurpleMin11 = new System.Windows.Forms.NumericUpDown(); + this.NUP_PurpleMax11 = new System.Windows.Forms.NumericUpDown(); + this.NUP_PurpleForme12 = new System.Windows.Forms.NumericUpDown(); + this.NUP_PurpleMin12 = new System.Windows.Forms.NumericUpDown(); + this.NUP_PurpleMax12 = new System.Windows.Forms.NumericUpDown(); + this.NUP_YellowForme11 = new System.Windows.Forms.NumericUpDown(); + this.NUP_YellowMin11 = new System.Windows.Forms.NumericUpDown(); + this.NUP_YellowMax11 = new System.Windows.Forms.NumericUpDown(); + this.NUP_YellowForme12 = new System.Windows.Forms.NumericUpDown(); + this.NUP_YellowMin12 = new System.Windows.Forms.NumericUpDown(); + this.NUP_YellowMax12 = new System.Windows.Forms.NumericUpDown(); + this.NUP_RedForme1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_RedMin1 = new System.Windows.Forms.NumericUpDown(); + this.label82 = new System.Windows.Forms.Label(); + this.NUP_RedMax1 = new System.Windows.Forms.NumericUpDown(); + this.label83 = new System.Windows.Forms.Label(); + this.NUP_RedForme2 = new System.Windows.Forms.NumericUpDown(); + this.label84 = new System.Windows.Forms.Label(); + this.NUP_RedMin2 = new System.Windows.Forms.NumericUpDown(); + this.label85 = new System.Windows.Forms.Label(); + this.NUP_RedMax2 = new System.Windows.Forms.NumericUpDown(); + this.CB_Purple12 = new System.Windows.Forms.ComboBox(); + this.NUP_RedForme3 = new System.Windows.Forms.NumericUpDown(); + this.CB_Purple11 = new System.Windows.Forms.ComboBox(); + this.NUP_RedMin3 = new System.Windows.Forms.NumericUpDown(); + this.CB_Purple10 = new System.Windows.Forms.ComboBox(); + this.NUP_RedMax3 = new System.Windows.Forms.NumericUpDown(); + this.CB_Purple9 = new System.Windows.Forms.ComboBox(); + this.NUP_RedForme4 = new System.Windows.Forms.NumericUpDown(); + this.CB_Purple8 = new System.Windows.Forms.ComboBox(); + this.NUP_RedMin4 = new System.Windows.Forms.NumericUpDown(); + this.CB_Purple7 = new System.Windows.Forms.ComboBox(); + this.NUP_RedMax4 = new System.Windows.Forms.NumericUpDown(); + this.CB_Purple6 = new System.Windows.Forms.ComboBox(); + this.NUP_RedForme5 = new System.Windows.Forms.NumericUpDown(); + this.CB_Purple5 = new System.Windows.Forms.ComboBox(); + this.NUP_RedMin5 = new System.Windows.Forms.NumericUpDown(); + this.CB_Purple4 = new System.Windows.Forms.ComboBox(); + this.NUP_RedMax5 = new System.Windows.Forms.NumericUpDown(); + this.CB_Purple3 = new System.Windows.Forms.ComboBox(); + this.NUP_RedForme6 = new System.Windows.Forms.NumericUpDown(); + this.CB_Purple2 = new System.Windows.Forms.ComboBox(); + this.NUP_RedMin6 = new System.Windows.Forms.NumericUpDown(); + this.CB_Purple1 = new System.Windows.Forms.ComboBox(); + this.NUP_RedMax6 = new System.Windows.Forms.NumericUpDown(); + this.label86 = new System.Windows.Forms.Label(); + this.NUP_RedForme7 = new System.Windows.Forms.NumericUpDown(); + this.label87 = new System.Windows.Forms.Label(); + this.NUP_RedMin7 = new System.Windows.Forms.NumericUpDown(); + this.label88 = new System.Windows.Forms.Label(); + this.NUP_RedMax7 = new System.Windows.Forms.NumericUpDown(); + this.label89 = new System.Windows.Forms.Label(); + this.NUP_RedForme8 = new System.Windows.Forms.NumericUpDown(); + this.label90 = new System.Windows.Forms.Label(); + this.NUP_RedMin8 = new System.Windows.Forms.NumericUpDown(); + this.label91 = new System.Windows.Forms.Label(); + this.NUP_RedMax8 = new System.Windows.Forms.NumericUpDown(); + this.label92 = new System.Windows.Forms.Label(); + this.NUP_RedForme9 = new System.Windows.Forms.NumericUpDown(); + this.label93 = new System.Windows.Forms.Label(); + this.NUP_RedMin9 = new System.Windows.Forms.NumericUpDown(); + this.label94 = new System.Windows.Forms.Label(); + this.NUP_RedMax9 = new System.Windows.Forms.NumericUpDown(); + this.label95 = new System.Windows.Forms.Label(); + this.NUP_RedForme10 = new System.Windows.Forms.NumericUpDown(); + this.label96 = new System.Windows.Forms.Label(); + this.NUP_RedMin10 = new System.Windows.Forms.NumericUpDown(); + this.label97 = new System.Windows.Forms.Label(); + this.NUP_RedMax10 = new System.Windows.Forms.NumericUpDown(); + this.NUP_PurpleForme1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_PurpleMin1 = new System.Windows.Forms.NumericUpDown(); + this.label66 = new System.Windows.Forms.Label(); + this.NUP_PurpleMax1 = new System.Windows.Forms.NumericUpDown(); + this.label67 = new System.Windows.Forms.Label(); + this.NUP_PurpleForme2 = new System.Windows.Forms.NumericUpDown(); + this.label68 = new System.Windows.Forms.Label(); + this.NUP_PurpleMin2 = new System.Windows.Forms.NumericUpDown(); + this.label69 = new System.Windows.Forms.Label(); + this.NUP_PurpleMax2 = new System.Windows.Forms.NumericUpDown(); + this.CB_Red12 = new System.Windows.Forms.ComboBox(); + this.NUP_PurpleForme3 = new System.Windows.Forms.NumericUpDown(); + this.CB_Red11 = new System.Windows.Forms.ComboBox(); + this.NUP_PurpleMin3 = new System.Windows.Forms.NumericUpDown(); + this.CB_Red10 = new System.Windows.Forms.ComboBox(); + this.NUP_PurpleMax3 = new System.Windows.Forms.NumericUpDown(); + this.CB_Red9 = new System.Windows.Forms.ComboBox(); + this.NUP_PurpleForme4 = new System.Windows.Forms.NumericUpDown(); + this.CB_Red8 = new System.Windows.Forms.ComboBox(); + this.NUP_PurpleMin4 = new System.Windows.Forms.NumericUpDown(); + this.CB_Red7 = new System.Windows.Forms.ComboBox(); + this.NUP_PurpleMax4 = new System.Windows.Forms.NumericUpDown(); + this.CB_Red6 = new System.Windows.Forms.ComboBox(); + this.NUP_PurpleForme5 = new System.Windows.Forms.NumericUpDown(); + this.CB_Red5 = new System.Windows.Forms.ComboBox(); + this.NUP_PurpleMin5 = new System.Windows.Forms.NumericUpDown(); + this.CB_Red4 = new System.Windows.Forms.ComboBox(); + this.NUP_PurpleMax5 = new System.Windows.Forms.NumericUpDown(); + this.CB_Red3 = new System.Windows.Forms.ComboBox(); + this.NUP_PurpleForme6 = new System.Windows.Forms.NumericUpDown(); + this.CB_Red2 = new System.Windows.Forms.ComboBox(); + this.NUP_PurpleMin6 = new System.Windows.Forms.NumericUpDown(); + this.CB_Red1 = new System.Windows.Forms.ComboBox(); + this.NUP_PurpleMax6 = new System.Windows.Forms.NumericUpDown(); + this.label70 = new System.Windows.Forms.Label(); + this.NUP_PurpleForme7 = new System.Windows.Forms.NumericUpDown(); + this.label71 = new System.Windows.Forms.Label(); + this.NUP_PurpleMin7 = new System.Windows.Forms.NumericUpDown(); + this.label72 = new System.Windows.Forms.Label(); + this.NUP_PurpleMax7 = new System.Windows.Forms.NumericUpDown(); + this.label73 = new System.Windows.Forms.Label(); + this.NUP_PurpleForme8 = new System.Windows.Forms.NumericUpDown(); + this.label74 = new System.Windows.Forms.Label(); + this.NUP_PurpleMin8 = new System.Windows.Forms.NumericUpDown(); + this.label75 = new System.Windows.Forms.Label(); + this.NUP_PurpleMax8 = new System.Windows.Forms.NumericUpDown(); + this.label76 = new System.Windows.Forms.Label(); + this.NUP_PurpleForme9 = new System.Windows.Forms.NumericUpDown(); + this.label77 = new System.Windows.Forms.Label(); + this.NUP_PurpleMin9 = new System.Windows.Forms.NumericUpDown(); + this.label78 = new System.Windows.Forms.Label(); + this.NUP_PurpleMax9 = new System.Windows.Forms.NumericUpDown(); + this.label79 = new System.Windows.Forms.Label(); + this.NUP_PurpleForme10 = new System.Windows.Forms.NumericUpDown(); + this.label80 = new System.Windows.Forms.Label(); + this.NUP_PurpleMin10 = new System.Windows.Forms.NumericUpDown(); + this.label81 = new System.Windows.Forms.Label(); + this.NUP_PurpleMax10 = new System.Windows.Forms.NumericUpDown(); + this.NUP_YellowForme1 = new System.Windows.Forms.NumericUpDown(); + this.NUP_YellowMin1 = new System.Windows.Forms.NumericUpDown(); + this.label50 = new System.Windows.Forms.Label(); + this.NUP_YellowMax1 = new System.Windows.Forms.NumericUpDown(); + this.label51 = new System.Windows.Forms.Label(); + this.NUP_YellowForme2 = new System.Windows.Forms.NumericUpDown(); + this.label52 = new System.Windows.Forms.Label(); + this.NUP_YellowMin2 = new System.Windows.Forms.NumericUpDown(); + this.label53 = new System.Windows.Forms.Label(); + this.NUP_YellowMax2 = new System.Windows.Forms.NumericUpDown(); + this.CB_Yellow12 = new System.Windows.Forms.ComboBox(); + this.NUP_YellowForme3 = new System.Windows.Forms.NumericUpDown(); + this.CB_Yellow11 = new System.Windows.Forms.ComboBox(); + this.NUP_YellowMin3 = new System.Windows.Forms.NumericUpDown(); + this.CB_Yellow10 = new System.Windows.Forms.ComboBox(); + this.NUP_YellowMax3 = new System.Windows.Forms.NumericUpDown(); + this.CB_Yellow9 = new System.Windows.Forms.ComboBox(); + this.NUP_YellowForme4 = new System.Windows.Forms.NumericUpDown(); + this.CB_Yellow8 = new System.Windows.Forms.ComboBox(); + this.NUP_YellowMin4 = new System.Windows.Forms.NumericUpDown(); + this.CB_Yellow7 = new System.Windows.Forms.ComboBox(); + this.NUP_YellowMax4 = new System.Windows.Forms.NumericUpDown(); + this.CB_Yellow6 = new System.Windows.Forms.ComboBox(); + this.NUP_YellowForme5 = new System.Windows.Forms.NumericUpDown(); + this.CB_Yellow5 = new System.Windows.Forms.ComboBox(); + this.NUP_YellowMin5 = new System.Windows.Forms.NumericUpDown(); + this.CB_Yellow4 = new System.Windows.Forms.ComboBox(); + this.NUP_YellowMax5 = new System.Windows.Forms.NumericUpDown(); + this.CB_Yellow3 = new System.Windows.Forms.ComboBox(); + this.NUP_YellowForme6 = new System.Windows.Forms.NumericUpDown(); + this.CB_Yellow2 = new System.Windows.Forms.ComboBox(); + this.NUP_YellowMin6 = new System.Windows.Forms.NumericUpDown(); + this.CB_Yellow1 = new System.Windows.Forms.ComboBox(); + this.NUP_YellowMax6 = new System.Windows.Forms.NumericUpDown(); + this.label54 = new System.Windows.Forms.Label(); + this.NUP_YellowForme7 = new System.Windows.Forms.NumericUpDown(); + this.label55 = new System.Windows.Forms.Label(); + this.NUP_YellowMin7 = new System.Windows.Forms.NumericUpDown(); + this.label56 = new System.Windows.Forms.Label(); + this.NUP_YellowMax7 = new System.Windows.Forms.NumericUpDown(); + this.label57 = new System.Windows.Forms.Label(); + this.NUP_YellowForme8 = new System.Windows.Forms.NumericUpDown(); + this.label58 = new System.Windows.Forms.Label(); + this.NUP_YellowMin8 = new System.Windows.Forms.NumericUpDown(); + this.label59 = new System.Windows.Forms.Label(); + this.NUP_YellowMax8 = new System.Windows.Forms.NumericUpDown(); + this.label60 = new System.Windows.Forms.Label(); + this.NUP_YellowForme9 = new System.Windows.Forms.NumericUpDown(); + this.label61 = new System.Windows.Forms.Label(); + this.NUP_YellowMin9 = new System.Windows.Forms.NumericUpDown(); + this.label62 = new System.Windows.Forms.Label(); + this.NUP_YellowMax9 = new System.Windows.Forms.NumericUpDown(); + this.label63 = new System.Windows.Forms.Label(); + this.NUP_YellowForme10 = new System.Windows.Forms.NumericUpDown(); + this.label64 = new System.Windows.Forms.Label(); + this.NUP_YellowMin10 = new System.Windows.Forms.NumericUpDown(); + this.label65 = new System.Windows.Forms.Label(); + this.NUP_YellowMax10 = new System.Windows.Forms.NumericUpDown(); + this.CB_LocationID = new System.Windows.Forms.ComboBox(); + this.B_Save = new System.Windows.Forms.Button(); + this.label134 = new System.Windows.Forms.Label(); + this.label136 = new System.Windows.Forms.Label(); + this.CB_FormeList = new System.Windows.Forms.ComboBox(); + this.B_Randomize = new System.Windows.Forms.Button(); + this.B_Dump = new System.Windows.Forms.Button(); + this.TabControl_EncounterData.SuspendLayout(); + this.TabPage_Land.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMax5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMin5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashForme5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMax4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashForme1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMin4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashForme4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMin1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMax3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMax1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMin3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashForme3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMax2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashForme2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMin2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme8)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin8)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax8)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme9)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin9)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax9)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme10)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin10)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax10)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme11)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin11)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax11)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme12)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin12)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax12)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme8)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin8)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax8)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme9)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin9)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax9)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme10)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin10)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax10)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax12)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme11)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin12)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin11)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme12)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax11)).BeginInit(); + this.TabPage_Water.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperForme1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMin1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfForme1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMax1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMin1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMax1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperForme2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMin2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfForme2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMax2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMin2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMax5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperForme3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMax2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMin3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMin5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMax3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfForme5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfForme3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMin3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMax4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMax3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMin4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodForme1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfForme4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMin1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMax1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodForme2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMin2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMax2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodForme3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMin3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMax3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_OldForme1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMin1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMax1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_OldForme2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMin2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMax2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_OldForme3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMin3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMax3)).BeginInit(); + this.TabPage_Horde.SuspendLayout(); + this.GB_Tweak.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_LevelAmp)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMax5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMin5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCForme5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMax4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMin4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCForme4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMax3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMin3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCForme3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMax2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMin2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCForme2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMax1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMin1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCForme1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMax5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMin5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBForme5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAForme1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMin1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMax4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMax5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMin4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMax1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBForme4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMin5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMax3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAForme5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMin3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAForme2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBForme3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMin2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMax2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMax4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMin2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMax2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBForme2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMin4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMax1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAForme4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMin1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAForme3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBForme1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMin3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMax3)).BeginInit(); + this.tabPage1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme11)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin11)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax11)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme12)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin12)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax12)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme11)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin11)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax11)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme12)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin12)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax12)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme11)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin11)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax11)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme12)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin12)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax12)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme8)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin8)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax8)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme9)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin9)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax9)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme10)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin10)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax10)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme8)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin8)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax8)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme9)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin9)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax9)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme10)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin10)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax10)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme8)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin8)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax8)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme9)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin9)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax9)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme10)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin10)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax10)).BeginInit(); + this.SuspendLayout(); + // + // TabControl_EncounterData + // + this.TabControl_EncounterData.Controls.Add(this.TabPage_Land); + this.TabControl_EncounterData.Controls.Add(this.TabPage_Water); + this.TabControl_EncounterData.Controls.Add(this.TabPage_Horde); + this.TabControl_EncounterData.Controls.Add(this.tabPage1); + this.TabControl_EncounterData.Location = new System.Drawing.Point(12, 12); + this.TabControl_EncounterData.Name = "TabControl_EncounterData"; + this.TabControl_EncounterData.SelectedIndex = 0; + this.TabControl_EncounterData.Size = new System.Drawing.Size(926, 395); + this.TabControl_EncounterData.TabIndex = 2; + // + // TabPage_Land + // + this.TabPage_Land.Controls.Add(this.label107); + this.TabPage_Land.Controls.Add(this.label115); + this.TabPage_Land.Controls.Add(this.label108); + this.TabPage_Land.Controls.Add(this.NUP_RockSmashMax5); + this.TabPage_Land.Controls.Add(this.label109); + this.TabPage_Land.Controls.Add(this.NUP_RockSmashMin5); + this.TabPage_Land.Controls.Add(this.label110); + this.TabPage_Land.Controls.Add(this.NUP_RockSmashForme5); + this.TabPage_Land.Controls.Add(this.label111); + this.TabPage_Land.Controls.Add(this.CB_RockSmash5); + this.TabPage_Land.Controls.Add(this.CB_RockSmash1); + this.TabPage_Land.Controls.Add(this.NUP_RockSmashMax4); + this.TabPage_Land.Controls.Add(this.NUP_RockSmashForme1); + this.TabPage_Land.Controls.Add(this.NUP_RockSmashMin4); + this.TabPage_Land.Controls.Add(this.label112); + this.TabPage_Land.Controls.Add(this.NUP_RockSmashForme4); + this.TabPage_Land.Controls.Add(this.NUP_RockSmashMin1); + this.TabPage_Land.Controls.Add(this.CB_RockSmash4); + this.TabPage_Land.Controls.Add(this.label113); + this.TabPage_Land.Controls.Add(this.NUP_RockSmashMax3); + this.TabPage_Land.Controls.Add(this.NUP_RockSmashMax1); + this.TabPage_Land.Controls.Add(this.NUP_RockSmashMin3); + this.TabPage_Land.Controls.Add(this.label114); + this.TabPage_Land.Controls.Add(this.NUP_RockSmashForme3); + this.TabPage_Land.Controls.Add(this.CB_RockSmash2); + this.TabPage_Land.Controls.Add(this.CB_RockSmash3); + this.TabPage_Land.Controls.Add(this.NUP_RockSmashMax2); + this.TabPage_Land.Controls.Add(this.NUP_RockSmashForme2); + this.TabPage_Land.Controls.Add(this.NUP_RockSmashMin2); + this.TabPage_Land.Controls.Add(this.NUP_RTForme1); + this.TabPage_Land.Controls.Add(this.NUP_RTMin1); + this.TabPage_Land.Controls.Add(this.label6); + this.TabPage_Land.Controls.Add(this.NUP_RTMax1); + this.TabPage_Land.Controls.Add(this.label7); + this.TabPage_Land.Controls.Add(this.NUP_RTForme2); + this.TabPage_Land.Controls.Add(this.label8); + this.TabPage_Land.Controls.Add(this.NUP_RTMin2); + this.TabPage_Land.Controls.Add(this.label9); + this.TabPage_Land.Controls.Add(this.NUP_RTMax2); + this.TabPage_Land.Controls.Add(this.CB_RT12); + this.TabPage_Land.Controls.Add(this.NUP_RTForme3); + this.TabPage_Land.Controls.Add(this.CB_RT11); + this.TabPage_Land.Controls.Add(this.NUP_RTMin3); + this.TabPage_Land.Controls.Add(this.CB_RT10); + this.TabPage_Land.Controls.Add(this.NUP_RTMax3); + this.TabPage_Land.Controls.Add(this.CB_RT9); + this.TabPage_Land.Controls.Add(this.NUP_RTForme4); + this.TabPage_Land.Controls.Add(this.CB_RT8); + this.TabPage_Land.Controls.Add(this.NUP_RTMin4); + this.TabPage_Land.Controls.Add(this.CB_RT7); + this.TabPage_Land.Controls.Add(this.NUP_RTMax4); + this.TabPage_Land.Controls.Add(this.CB_RT6); + this.TabPage_Land.Controls.Add(this.NUP_RTForme5); + this.TabPage_Land.Controls.Add(this.CB_RT5); + this.TabPage_Land.Controls.Add(this.NUP_RTMin5); + this.TabPage_Land.Controls.Add(this.CB_RT4); + this.TabPage_Land.Controls.Add(this.NUP_RTMax5); + this.TabPage_Land.Controls.Add(this.CB_RT3); + this.TabPage_Land.Controls.Add(this.NUP_RTForme6); + this.TabPage_Land.Controls.Add(this.CB_RT2); + this.TabPage_Land.Controls.Add(this.NUP_RTMin6); + this.TabPage_Land.Controls.Add(this.CB_RT1); + this.TabPage_Land.Controls.Add(this.NUP_RTMax6); + this.TabPage_Land.Controls.Add(this.label10); + this.TabPage_Land.Controls.Add(this.NUP_RTForme7); + this.TabPage_Land.Controls.Add(this.label11); + this.TabPage_Land.Controls.Add(this.NUP_RTMin7); + this.TabPage_Land.Controls.Add(this.label12); + this.TabPage_Land.Controls.Add(this.NUP_RTMax7); + this.TabPage_Land.Controls.Add(this.label13); + this.TabPage_Land.Controls.Add(this.NUP_RTForme8); + this.TabPage_Land.Controls.Add(this.label14); + this.TabPage_Land.Controls.Add(this.NUP_RTMin8); + this.TabPage_Land.Controls.Add(this.label15); + this.TabPage_Land.Controls.Add(this.NUP_RTMax8); + this.TabPage_Land.Controls.Add(this.label16); + this.TabPage_Land.Controls.Add(this.NUP_RTForme9); + this.TabPage_Land.Controls.Add(this.label17); + this.TabPage_Land.Controls.Add(this.NUP_RTMin9); + this.TabPage_Land.Controls.Add(this.label18); + this.TabPage_Land.Controls.Add(this.NUP_RTMax9); + this.TabPage_Land.Controls.Add(this.label19); + this.TabPage_Land.Controls.Add(this.NUP_RTForme10); + this.TabPage_Land.Controls.Add(this.label20); + this.TabPage_Land.Controls.Add(this.NUP_RTMin10); + this.TabPage_Land.Controls.Add(this.label21); + this.TabPage_Land.Controls.Add(this.NUP_RTMax10); + this.TabPage_Land.Controls.Add(this.NUP_RTForme11); + this.TabPage_Land.Controls.Add(this.NUP_RTMin11); + this.TabPage_Land.Controls.Add(this.NUP_RTMax11); + this.TabPage_Land.Controls.Add(this.NUP_RTForme12); + this.TabPage_Land.Controls.Add(this.NUP_RTMin12); + this.TabPage_Land.Controls.Add(this.NUP_RTMax12); + this.TabPage_Land.Controls.Add(this.NUP_GrassForme1); + this.TabPage_Land.Controls.Add(this.NUP_GrassMin1); + this.TabPage_Land.Controls.Add(this.label3); + this.TabPage_Land.Controls.Add(this.NUP_GrassMax1); + this.TabPage_Land.Controls.Add(this.label4); + this.TabPage_Land.Controls.Add(this.NUP_GrassForme2); + this.TabPage_Land.Controls.Add(this.label5); + this.TabPage_Land.Controls.Add(this.NUP_GrassMin2); + this.TabPage_Land.Controls.Add(this.label2); + this.TabPage_Land.Controls.Add(this.NUP_GrassMax2); + this.TabPage_Land.Controls.Add(this.CB_Grass12); + this.TabPage_Land.Controls.Add(this.NUP_GrassForme3); + this.TabPage_Land.Controls.Add(this.CB_Grass11); + this.TabPage_Land.Controls.Add(this.NUP_GrassMin3); + this.TabPage_Land.Controls.Add(this.CB_Grass10); + this.TabPage_Land.Controls.Add(this.NUP_GrassMax3); + this.TabPage_Land.Controls.Add(this.CB_Grass9); + this.TabPage_Land.Controls.Add(this.NUP_GrassForme4); + this.TabPage_Land.Controls.Add(this.CB_Grass8); + this.TabPage_Land.Controls.Add(this.NUP_GrassMin4); + this.TabPage_Land.Controls.Add(this.CB_Grass7); + this.TabPage_Land.Controls.Add(this.NUP_GrassMax4); + this.TabPage_Land.Controls.Add(this.CB_Grass6); + this.TabPage_Land.Controls.Add(this.NUP_GrassForme5); + this.TabPage_Land.Controls.Add(this.CB_Grass5); + this.TabPage_Land.Controls.Add(this.NUP_GrassMin5); + this.TabPage_Land.Controls.Add(this.CB_Grass4); + this.TabPage_Land.Controls.Add(this.NUP_GrassMax5); + this.TabPage_Land.Controls.Add(this.CB_Grass3); + this.TabPage_Land.Controls.Add(this.NUP_GrassForme6); + this.TabPage_Land.Controls.Add(this.CB_Grass2); + this.TabPage_Land.Controls.Add(this.NUP_GrassMin6); + this.TabPage_Land.Controls.Add(this.CB_Grass1); + this.TabPage_Land.Controls.Add(this.NUP_GrassMax6); + this.TabPage_Land.Controls.Add(this.label31); + this.TabPage_Land.Controls.Add(this.NUP_GrassForme7); + this.TabPage_Land.Controls.Add(this.label41); + this.TabPage_Land.Controls.Add(this.NUP_GrassMin7); + this.TabPage_Land.Controls.Add(this.label42); + this.TabPage_Land.Controls.Add(this.NUP_GrassMax7); + this.TabPage_Land.Controls.Add(this.label40); + this.TabPage_Land.Controls.Add(this.NUP_GrassForme8); + this.TabPage_Land.Controls.Add(this.label39); + this.TabPage_Land.Controls.Add(this.NUP_GrassMin8); + this.TabPage_Land.Controls.Add(this.label38); + this.TabPage_Land.Controls.Add(this.NUP_GrassMax8); + this.TabPage_Land.Controls.Add(this.label37); + this.TabPage_Land.Controls.Add(this.NUP_GrassForme9); + this.TabPage_Land.Controls.Add(this.label36); + this.TabPage_Land.Controls.Add(this.NUP_GrassMin9); + this.TabPage_Land.Controls.Add(this.label35); + this.TabPage_Land.Controls.Add(this.NUP_GrassMax9); + this.TabPage_Land.Controls.Add(this.label34); + this.TabPage_Land.Controls.Add(this.NUP_GrassForme10); + this.TabPage_Land.Controls.Add(this.label33); + this.TabPage_Land.Controls.Add(this.NUP_GrassMin10); + this.TabPage_Land.Controls.Add(this.label32); + this.TabPage_Land.Controls.Add(this.NUP_GrassMax10); + this.TabPage_Land.Controls.Add(this.NUP_GrassMax12); + this.TabPage_Land.Controls.Add(this.NUP_GrassForme11); + this.TabPage_Land.Controls.Add(this.NUP_GrassMin12); + this.TabPage_Land.Controls.Add(this.NUP_GrassMin11); + this.TabPage_Land.Controls.Add(this.NUP_GrassForme12); + this.TabPage_Land.Controls.Add(this.NUP_GrassMax11); + this.TabPage_Land.Location = new System.Drawing.Point(4, 22); + this.TabPage_Land.Name = "TabPage_Land"; + this.TabPage_Land.Padding = new System.Windows.Forms.Padding(3); + this.TabPage_Land.Size = new System.Drawing.Size(918, 369); + this.TabPage_Land.TabIndex = 0; + this.TabPage_Land.Text = "Land"; + this.TabPage_Land.UseVisualStyleBackColor = true; + // + // label107 + // + this.label107.AutoSize = true; + this.label107.Location = new System.Drawing.Point(619, 147); + this.label107.Name = "label107"; + this.label107.Size = new System.Drawing.Size(21, 13); + this.label107.TabIndex = 406; + this.label107.Text = "1%"; + // + // label115 + // + this.label115.AutoSize = true; + this.label115.Location = new System.Drawing.Point(643, 20); + this.label115.Name = "label115"; + this.label115.Size = new System.Drawing.Size(68, 13); + this.label115.TabIndex = 398; + this.label115.Text = "Rock Smash"; + // + // label108 + // + this.label108.AutoSize = true; + this.label108.Location = new System.Drawing.Point(619, 120); + this.label108.Name = "label108"; + this.label108.Size = new System.Drawing.Size(21, 13); + this.label108.TabIndex = 405; + this.label108.Text = "4%"; + // + // NUP_RockSmashMax5 + // + this.NUP_RockSmashMax5.Location = new System.Drawing.Point(867, 145); + this.NUP_RockSmashMax5.Name = "NUP_RockSmashMax5"; + this.NUP_RockSmashMax5.Size = new System.Drawing.Size(41, 20); + this.NUP_RockSmashMax5.TabIndex = 397; + // + // label109 + // + this.label109.AutoSize = true; + this.label109.Location = new System.Drawing.Point(614, 93); + this.label109.Name = "label109"; + this.label109.Size = new System.Drawing.Size(27, 13); + this.label109.TabIndex = 404; + this.label109.Text = "15%"; + // + // NUP_RockSmashMin5 + // + this.NUP_RockSmashMin5.Location = new System.Drawing.Point(820, 145); + this.NUP_RockSmashMin5.Name = "NUP_RockSmashMin5"; + this.NUP_RockSmashMin5.Size = new System.Drawing.Size(41, 20); + this.NUP_RockSmashMin5.TabIndex = 396; + // + // label110 + // + this.label110.AutoSize = true; + this.label110.Location = new System.Drawing.Point(613, 66); + this.label110.Name = "label110"; + this.label110.Size = new System.Drawing.Size(27, 13); + this.label110.TabIndex = 403; + this.label110.Text = "30%"; + // + // NUP_RockSmashForme5 + // + this.NUP_RockSmashForme5.Location = new System.Drawing.Point(773, 145); + this.NUP_RockSmashForme5.Name = "NUP_RockSmashForme5"; + this.NUP_RockSmashForme5.Size = new System.Drawing.Size(41, 20); + this.NUP_RockSmashForme5.TabIndex = 395; + // + // label111 + // + this.label111.AutoSize = true; + this.label111.Location = new System.Drawing.Point(613, 39); + this.label111.Name = "label111"; + this.label111.Size = new System.Drawing.Size(27, 13); + this.label111.TabIndex = 402; + this.label111.Text = "50%"; + // + // CB_RockSmash5 + // + this.CB_RockSmash5.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_RockSmash5.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_RockSmash5.FormattingEnabled = true; + this.CB_RockSmash5.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -1764,17 +1764,17 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_RockSmash5.Location = new System.Drawing.Point(646, 144); - this.CB_RockSmash5.Name = "CB_RockSmash5"; - this.CB_RockSmash5.Size = new System.Drawing.Size(121, 21); - this.CB_RockSmash5.TabIndex = 394; - // - // CB_RockSmash1 - // - this.CB_RockSmash1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_RockSmash1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_RockSmash1.FormattingEnabled = true; - this.CB_RockSmash1.Items.AddRange(new object[] { + this.CB_RockSmash5.Location = new System.Drawing.Point(646, 144); + this.CB_RockSmash5.Name = "CB_RockSmash5"; + this.CB_RockSmash5.Size = new System.Drawing.Size(121, 21); + this.CB_RockSmash5.TabIndex = 394; + // + // CB_RockSmash1 + // + this.CB_RockSmash1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_RockSmash1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_RockSmash1.FormattingEnabled = true; + this.CB_RockSmash1.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -2425,61 +2425,61 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_RockSmash1.Location = new System.Drawing.Point(646, 36); - this.CB_RockSmash1.Name = "CB_RockSmash1"; - this.CB_RockSmash1.Size = new System.Drawing.Size(121, 21); - this.CB_RockSmash1.TabIndex = 378; - // - // NUP_RockSmashMax4 - // - this.NUP_RockSmashMax4.Location = new System.Drawing.Point(867, 118); - this.NUP_RockSmashMax4.Name = "NUP_RockSmashMax4"; - this.NUP_RockSmashMax4.Size = new System.Drawing.Size(41, 20); - this.NUP_RockSmashMax4.TabIndex = 393; - // - // NUP_RockSmashForme1 - // - this.NUP_RockSmashForme1.Location = new System.Drawing.Point(773, 37); - this.NUP_RockSmashForme1.Name = "NUP_RockSmashForme1"; - this.NUP_RockSmashForme1.Size = new System.Drawing.Size(41, 20); - this.NUP_RockSmashForme1.TabIndex = 379; - // - // NUP_RockSmashMin4 - // - this.NUP_RockSmashMin4.Location = new System.Drawing.Point(820, 118); - this.NUP_RockSmashMin4.Name = "NUP_RockSmashMin4"; - this.NUP_RockSmashMin4.Size = new System.Drawing.Size(41, 20); - this.NUP_RockSmashMin4.TabIndex = 392; - // - // label112 - // - this.label112.AutoSize = true; - this.label112.Location = new System.Drawing.Point(864, 20); - this.label112.Name = "label112"; - this.label112.Size = new System.Drawing.Size(27, 13); - this.label112.TabIndex = 401; - this.label112.Text = "Max"; - // - // NUP_RockSmashForme4 - // - this.NUP_RockSmashForme4.Location = new System.Drawing.Point(773, 118); - this.NUP_RockSmashForme4.Name = "NUP_RockSmashForme4"; - this.NUP_RockSmashForme4.Size = new System.Drawing.Size(41, 20); - this.NUP_RockSmashForme4.TabIndex = 391; - // - // NUP_RockSmashMin1 - // - this.NUP_RockSmashMin1.Location = new System.Drawing.Point(820, 37); - this.NUP_RockSmashMin1.Name = "NUP_RockSmashMin1"; - this.NUP_RockSmashMin1.Size = new System.Drawing.Size(41, 20); - this.NUP_RockSmashMin1.TabIndex = 380; - // - // CB_RockSmash4 - // - this.CB_RockSmash4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_RockSmash4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_RockSmash4.FormattingEnabled = true; - this.CB_RockSmash4.Items.AddRange(new object[] { + this.CB_RockSmash1.Location = new System.Drawing.Point(646, 36); + this.CB_RockSmash1.Name = "CB_RockSmash1"; + this.CB_RockSmash1.Size = new System.Drawing.Size(121, 21); + this.CB_RockSmash1.TabIndex = 378; + // + // NUP_RockSmashMax4 + // + this.NUP_RockSmashMax4.Location = new System.Drawing.Point(867, 118); + this.NUP_RockSmashMax4.Name = "NUP_RockSmashMax4"; + this.NUP_RockSmashMax4.Size = new System.Drawing.Size(41, 20); + this.NUP_RockSmashMax4.TabIndex = 393; + // + // NUP_RockSmashForme1 + // + this.NUP_RockSmashForme1.Location = new System.Drawing.Point(773, 37); + this.NUP_RockSmashForme1.Name = "NUP_RockSmashForme1"; + this.NUP_RockSmashForme1.Size = new System.Drawing.Size(41, 20); + this.NUP_RockSmashForme1.TabIndex = 379; + // + // NUP_RockSmashMin4 + // + this.NUP_RockSmashMin4.Location = new System.Drawing.Point(820, 118); + this.NUP_RockSmashMin4.Name = "NUP_RockSmashMin4"; + this.NUP_RockSmashMin4.Size = new System.Drawing.Size(41, 20); + this.NUP_RockSmashMin4.TabIndex = 392; + // + // label112 + // + this.label112.AutoSize = true; + this.label112.Location = new System.Drawing.Point(864, 20); + this.label112.Name = "label112"; + this.label112.Size = new System.Drawing.Size(27, 13); + this.label112.TabIndex = 401; + this.label112.Text = "Max"; + // + // NUP_RockSmashForme4 + // + this.NUP_RockSmashForme4.Location = new System.Drawing.Point(773, 118); + this.NUP_RockSmashForme4.Name = "NUP_RockSmashForme4"; + this.NUP_RockSmashForme4.Size = new System.Drawing.Size(41, 20); + this.NUP_RockSmashForme4.TabIndex = 391; + // + // NUP_RockSmashMin1 + // + this.NUP_RockSmashMin1.Location = new System.Drawing.Point(820, 37); + this.NUP_RockSmashMin1.Name = "NUP_RockSmashMin1"; + this.NUP_RockSmashMin1.Size = new System.Drawing.Size(41, 20); + this.NUP_RockSmashMin1.TabIndex = 380; + // + // CB_RockSmash4 + // + this.CB_RockSmash4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_RockSmash4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_RockSmash4.FormattingEnabled = true; + this.CB_RockSmash4.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -3130,63 +3130,63 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_RockSmash4.Location = new System.Drawing.Point(646, 117); - this.CB_RockSmash4.Name = "CB_RockSmash4"; - this.CB_RockSmash4.Size = new System.Drawing.Size(121, 21); - this.CB_RockSmash4.TabIndex = 390; - // - // label113 - // - this.label113.AutoSize = true; - this.label113.Location = new System.Drawing.Point(817, 21); - this.label113.Name = "label113"; - this.label113.Size = new System.Drawing.Size(24, 13); - this.label113.TabIndex = 400; - this.label113.Text = "Min"; - // - // NUP_RockSmashMax3 - // - this.NUP_RockSmashMax3.Location = new System.Drawing.Point(867, 91); - this.NUP_RockSmashMax3.Name = "NUP_RockSmashMax3"; - this.NUP_RockSmashMax3.Size = new System.Drawing.Size(41, 20); - this.NUP_RockSmashMax3.TabIndex = 389; - // - // NUP_RockSmashMax1 - // - this.NUP_RockSmashMax1.Location = new System.Drawing.Point(867, 37); - this.NUP_RockSmashMax1.Name = "NUP_RockSmashMax1"; - this.NUP_RockSmashMax1.Size = new System.Drawing.Size(41, 20); - this.NUP_RockSmashMax1.TabIndex = 381; - // - // NUP_RockSmashMin3 - // - this.NUP_RockSmashMin3.Location = new System.Drawing.Point(820, 91); - this.NUP_RockSmashMin3.Name = "NUP_RockSmashMin3"; - this.NUP_RockSmashMin3.Size = new System.Drawing.Size(41, 20); - this.NUP_RockSmashMin3.TabIndex = 388; - // - // label114 - // - this.label114.AutoSize = true; - this.label114.Location = new System.Drawing.Point(770, 21); - this.label114.Name = "label114"; - this.label114.Size = new System.Drawing.Size(36, 13); - this.label114.TabIndex = 399; - this.label114.Text = "Forme"; - // - // NUP_RockSmashForme3 - // - this.NUP_RockSmashForme3.Location = new System.Drawing.Point(773, 91); - this.NUP_RockSmashForme3.Name = "NUP_RockSmashForme3"; - this.NUP_RockSmashForme3.Size = new System.Drawing.Size(41, 20); - this.NUP_RockSmashForme3.TabIndex = 387; - // - // CB_RockSmash2 - // - this.CB_RockSmash2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_RockSmash2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_RockSmash2.FormattingEnabled = true; - this.CB_RockSmash2.Items.AddRange(new object[] { + this.CB_RockSmash4.Location = new System.Drawing.Point(646, 117); + this.CB_RockSmash4.Name = "CB_RockSmash4"; + this.CB_RockSmash4.Size = new System.Drawing.Size(121, 21); + this.CB_RockSmash4.TabIndex = 390; + // + // label113 + // + this.label113.AutoSize = true; + this.label113.Location = new System.Drawing.Point(817, 21); + this.label113.Name = "label113"; + this.label113.Size = new System.Drawing.Size(24, 13); + this.label113.TabIndex = 400; + this.label113.Text = "Min"; + // + // NUP_RockSmashMax3 + // + this.NUP_RockSmashMax3.Location = new System.Drawing.Point(867, 91); + this.NUP_RockSmashMax3.Name = "NUP_RockSmashMax3"; + this.NUP_RockSmashMax3.Size = new System.Drawing.Size(41, 20); + this.NUP_RockSmashMax3.TabIndex = 389; + // + // NUP_RockSmashMax1 + // + this.NUP_RockSmashMax1.Location = new System.Drawing.Point(867, 37); + this.NUP_RockSmashMax1.Name = "NUP_RockSmashMax1"; + this.NUP_RockSmashMax1.Size = new System.Drawing.Size(41, 20); + this.NUP_RockSmashMax1.TabIndex = 381; + // + // NUP_RockSmashMin3 + // + this.NUP_RockSmashMin3.Location = new System.Drawing.Point(820, 91); + this.NUP_RockSmashMin3.Name = "NUP_RockSmashMin3"; + this.NUP_RockSmashMin3.Size = new System.Drawing.Size(41, 20); + this.NUP_RockSmashMin3.TabIndex = 388; + // + // label114 + // + this.label114.AutoSize = true; + this.label114.Location = new System.Drawing.Point(770, 21); + this.label114.Name = "label114"; + this.label114.Size = new System.Drawing.Size(36, 13); + this.label114.TabIndex = 399; + this.label114.Text = "Forme"; + // + // NUP_RockSmashForme3 + // + this.NUP_RockSmashForme3.Location = new System.Drawing.Point(773, 91); + this.NUP_RockSmashForme3.Name = "NUP_RockSmashForme3"; + this.NUP_RockSmashForme3.Size = new System.Drawing.Size(41, 20); + this.NUP_RockSmashForme3.TabIndex = 387; + // + // CB_RockSmash2 + // + this.CB_RockSmash2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_RockSmash2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_RockSmash2.FormattingEnabled = true; + this.CB_RockSmash2.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -3837,17 +3837,17 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_RockSmash2.Location = new System.Drawing.Point(646, 63); - this.CB_RockSmash2.Name = "CB_RockSmash2"; - this.CB_RockSmash2.Size = new System.Drawing.Size(121, 21); - this.CB_RockSmash2.TabIndex = 382; - // - // CB_RockSmash3 - // - this.CB_RockSmash3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_RockSmash3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_RockSmash3.FormattingEnabled = true; - this.CB_RockSmash3.Items.AddRange(new object[] { + this.CB_RockSmash2.Location = new System.Drawing.Point(646, 63); + this.CB_RockSmash2.Name = "CB_RockSmash2"; + this.CB_RockSmash2.Size = new System.Drawing.Size(121, 21); + this.CB_RockSmash2.TabIndex = 382; + // + // CB_RockSmash3 + // + this.CB_RockSmash3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_RockSmash3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_RockSmash3.FormattingEnabled = true; + this.CB_RockSmash3.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -4498,1190 +4498,1190 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_RockSmash3.Location = new System.Drawing.Point(646, 90); - this.CB_RockSmash3.Name = "CB_RockSmash3"; - this.CB_RockSmash3.Size = new System.Drawing.Size(121, 21); - this.CB_RockSmash3.TabIndex = 386; - // - // NUP_RockSmashMax2 - // - this.NUP_RockSmashMax2.Location = new System.Drawing.Point(867, 64); - this.NUP_RockSmashMax2.Name = "NUP_RockSmashMax2"; - this.NUP_RockSmashMax2.Size = new System.Drawing.Size(41, 20); - this.NUP_RockSmashMax2.TabIndex = 385; - // - // NUP_RockSmashForme2 - // - this.NUP_RockSmashForme2.Location = new System.Drawing.Point(773, 64); - this.NUP_RockSmashForme2.Name = "NUP_RockSmashForme2"; - this.NUP_RockSmashForme2.Size = new System.Drawing.Size(41, 20); - this.NUP_RockSmashForme2.TabIndex = 383; - // - // NUP_RockSmashMin2 - // - this.NUP_RockSmashMin2.Location = new System.Drawing.Point(820, 64); - this.NUP_RockSmashMin2.Name = "NUP_RockSmashMin2"; - this.NUP_RockSmashMin2.Size = new System.Drawing.Size(41, 20); - this.NUP_RockSmashMin2.TabIndex = 384; - // - // NUP_RTForme1 - // - this.NUP_RTForme1.Location = new System.Drawing.Point(470, 36); - this.NUP_RTForme1.Name = "NUP_RTForme1"; - this.NUP_RTForme1.Size = new System.Drawing.Size(41, 20); - this.NUP_RTForme1.TabIndex = 315; - // - // NUP_RTMin1 - // - this.NUP_RTMin1.Location = new System.Drawing.Point(517, 36); - this.NUP_RTMin1.Name = "NUP_RTMin1"; - this.NUP_RTMin1.Size = new System.Drawing.Size(41, 20); - this.NUP_RTMin1.TabIndex = 316; - // - // label6 - // - this.label6.AutoSize = true; - this.label6.Location = new System.Drawing.Point(469, 20); - this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(36, 13); - this.label6.TabIndex = 375; - this.label6.Text = "Forme"; - // - // NUP_RTMax1 - // - this.NUP_RTMax1.Location = new System.Drawing.Point(564, 36); - this.NUP_RTMax1.Name = "NUP_RTMax1"; - this.NUP_RTMax1.Size = new System.Drawing.Size(41, 20); - this.NUP_RTMax1.TabIndex = 317; - // - // label7 - // - this.label7.AutoSize = true; - this.label7.Location = new System.Drawing.Point(516, 20); - this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(24, 13); - this.label7.TabIndex = 376; - this.label7.Text = "Min"; - // - // NUP_RTForme2 - // - this.NUP_RTForme2.Location = new System.Drawing.Point(470, 63); - this.NUP_RTForme2.Name = "NUP_RTForme2"; - this.NUP_RTForme2.Size = new System.Drawing.Size(41, 20); - this.NUP_RTForme2.TabIndex = 318; - // - // label8 - // - this.label8.AutoSize = true; - this.label8.Location = new System.Drawing.Point(563, 20); - this.label8.Name = "label8"; - this.label8.Size = new System.Drawing.Size(27, 13); - this.label8.TabIndex = 377; - this.label8.Text = "Max"; - // - // NUP_RTMin2 - // - this.NUP_RTMin2.Location = new System.Drawing.Point(517, 63); - this.NUP_RTMin2.Name = "NUP_RTMin2"; - this.NUP_RTMin2.Size = new System.Drawing.Size(41, 20); - this.NUP_RTMin2.TabIndex = 319; - // - // label9 - // - this.label9.AutoSize = true; - this.label9.Location = new System.Drawing.Point(343, 20); - this.label9.Name = "label9"; - this.label9.Size = new System.Drawing.Size(75, 13); - this.label9.TabIndex = 374; - this.label9.Text = "Rough Terrain"; - // - // NUP_RTMax2 - // - this.NUP_RTMax2.Location = new System.Drawing.Point(564, 63); - this.NUP_RTMax2.Name = "NUP_RTMax2"; - this.NUP_RTMax2.Size = new System.Drawing.Size(41, 20); - this.NUP_RTMax2.TabIndex = 320; - // - // CB_RT12 - // - this.CB_RT12.FormattingEnabled = true; - this.CB_RT12.Location = new System.Drawing.Point(343, 327); - this.CB_RT12.Name = "CB_RT12"; - this.CB_RT12.Size = new System.Drawing.Size(121, 21); - this.CB_RT12.TabIndex = 373; - // - // NUP_RTForme3 - // - this.NUP_RTForme3.Location = new System.Drawing.Point(470, 90); - this.NUP_RTForme3.Name = "NUP_RTForme3"; - this.NUP_RTForme3.Size = new System.Drawing.Size(41, 20); - this.NUP_RTForme3.TabIndex = 321; - // - // CB_RT11 - // - this.CB_RT11.FormattingEnabled = true; - this.CB_RT11.Location = new System.Drawing.Point(343, 301); - this.CB_RT11.Name = "CB_RT11"; - this.CB_RT11.Size = new System.Drawing.Size(121, 21); - this.CB_RT11.TabIndex = 372; - // - // NUP_RTMin3 - // - this.NUP_RTMin3.Location = new System.Drawing.Point(517, 90); - this.NUP_RTMin3.Name = "NUP_RTMin3"; - this.NUP_RTMin3.Size = new System.Drawing.Size(41, 20); - this.NUP_RTMin3.TabIndex = 322; - // - // CB_RT10 - // - this.CB_RT10.FormattingEnabled = true; - this.CB_RT10.Location = new System.Drawing.Point(343, 274); - this.CB_RT10.Name = "CB_RT10"; - this.CB_RT10.Size = new System.Drawing.Size(121, 21); - this.CB_RT10.TabIndex = 371; - // - // NUP_RTMax3 - // - this.NUP_RTMax3.Location = new System.Drawing.Point(564, 90); - this.NUP_RTMax3.Name = "NUP_RTMax3"; - this.NUP_RTMax3.Size = new System.Drawing.Size(41, 20); - this.NUP_RTMax3.TabIndex = 323; - // - // CB_RT9 - // - this.CB_RT9.FormattingEnabled = true; - this.CB_RT9.Location = new System.Drawing.Point(343, 248); - this.CB_RT9.Name = "CB_RT9"; - this.CB_RT9.Size = new System.Drawing.Size(121, 21); - this.CB_RT9.TabIndex = 370; - // - // NUP_RTForme4 - // - this.NUP_RTForme4.Location = new System.Drawing.Point(470, 116); - this.NUP_RTForme4.Name = "NUP_RTForme4"; - this.NUP_RTForme4.Size = new System.Drawing.Size(41, 20); - this.NUP_RTForme4.TabIndex = 324; - // - // CB_RT8 - // - this.CB_RT8.FormattingEnabled = true; - this.CB_RT8.Location = new System.Drawing.Point(343, 221); - this.CB_RT8.Name = "CB_RT8"; - this.CB_RT8.Size = new System.Drawing.Size(121, 21); - this.CB_RT8.TabIndex = 369; - // - // NUP_RTMin4 - // - this.NUP_RTMin4.Location = new System.Drawing.Point(517, 116); - this.NUP_RTMin4.Name = "NUP_RTMin4"; - this.NUP_RTMin4.Size = new System.Drawing.Size(41, 20); - this.NUP_RTMin4.TabIndex = 325; - // - // CB_RT7 - // - this.CB_RT7.FormattingEnabled = true; - this.CB_RT7.Location = new System.Drawing.Point(343, 195); - this.CB_RT7.Name = "CB_RT7"; - this.CB_RT7.Size = new System.Drawing.Size(121, 21); - this.CB_RT7.TabIndex = 368; - // - // NUP_RTMax4 - // - this.NUP_RTMax4.Location = new System.Drawing.Point(564, 116); - this.NUP_RTMax4.Name = "NUP_RTMax4"; - this.NUP_RTMax4.Size = new System.Drawing.Size(41, 20); - this.NUP_RTMax4.TabIndex = 326; - // - // CB_RT6 - // - this.CB_RT6.FormattingEnabled = true; - this.CB_RT6.Location = new System.Drawing.Point(343, 168); - this.CB_RT6.Name = "CB_RT6"; - this.CB_RT6.Size = new System.Drawing.Size(121, 21); - this.CB_RT6.TabIndex = 367; - // - // NUP_RTForme5 - // - this.NUP_RTForme5.Location = new System.Drawing.Point(470, 143); - this.NUP_RTForme5.Name = "NUP_RTForme5"; - this.NUP_RTForme5.Size = new System.Drawing.Size(41, 20); - this.NUP_RTForme5.TabIndex = 327; - // - // CB_RT5 - // - this.CB_RT5.FormattingEnabled = true; - this.CB_RT5.Location = new System.Drawing.Point(343, 142); - this.CB_RT5.Name = "CB_RT5"; - this.CB_RT5.Size = new System.Drawing.Size(121, 21); - this.CB_RT5.TabIndex = 366; - // - // NUP_RTMin5 - // - this.NUP_RTMin5.Location = new System.Drawing.Point(517, 143); - this.NUP_RTMin5.Name = "NUP_RTMin5"; - this.NUP_RTMin5.Size = new System.Drawing.Size(41, 20); - this.NUP_RTMin5.TabIndex = 328; - // - // CB_RT4 - // - this.CB_RT4.FormattingEnabled = true; - this.CB_RT4.Location = new System.Drawing.Point(343, 115); - this.CB_RT4.Name = "CB_RT4"; - this.CB_RT4.Size = new System.Drawing.Size(121, 21); - this.CB_RT4.TabIndex = 365; - // - // NUP_RTMax5 - // - this.NUP_RTMax5.Location = new System.Drawing.Point(564, 143); - this.NUP_RTMax5.Name = "NUP_RTMax5"; - this.NUP_RTMax5.Size = new System.Drawing.Size(41, 20); - this.NUP_RTMax5.TabIndex = 329; - // - // CB_RT3 - // - this.CB_RT3.FormattingEnabled = true; - this.CB_RT3.Location = new System.Drawing.Point(343, 89); - this.CB_RT3.Name = "CB_RT3"; - this.CB_RT3.Size = new System.Drawing.Size(121, 21); - this.CB_RT3.TabIndex = 364; - // - // NUP_RTForme6 - // - this.NUP_RTForme6.Location = new System.Drawing.Point(470, 170); - this.NUP_RTForme6.Name = "NUP_RTForme6"; - this.NUP_RTForme6.Size = new System.Drawing.Size(41, 20); - this.NUP_RTForme6.TabIndex = 330; - // - // CB_RT2 - // - this.CB_RT2.FormattingEnabled = true; - this.CB_RT2.Location = new System.Drawing.Point(343, 62); - this.CB_RT2.Name = "CB_RT2"; - this.CB_RT2.Size = new System.Drawing.Size(121, 21); - this.CB_RT2.TabIndex = 363; - // - // NUP_RTMin6 - // - this.NUP_RTMin6.Location = new System.Drawing.Point(517, 170); - this.NUP_RTMin6.Name = "NUP_RTMin6"; - this.NUP_RTMin6.Size = new System.Drawing.Size(41, 20); - this.NUP_RTMin6.TabIndex = 331; - // - // CB_RT1 - // - this.CB_RT1.FormattingEnabled = true; - this.CB_RT1.Location = new System.Drawing.Point(343, 36); - this.CB_RT1.Name = "CB_RT1"; - this.CB_RT1.Size = new System.Drawing.Size(121, 21); - this.CB_RT1.TabIndex = 314; - // - // NUP_RTMax6 - // - this.NUP_RTMax6.Location = new System.Drawing.Point(564, 170); - this.NUP_RTMax6.Name = "NUP_RTMax6"; - this.NUP_RTMax6.Size = new System.Drawing.Size(41, 20); - this.NUP_RTMax6.TabIndex = 332; - // - // label10 - // - this.label10.AutoSize = true; - this.label10.Location = new System.Drawing.Point(310, 39); - this.label10.Name = "label10"; - this.label10.Size = new System.Drawing.Size(27, 13); - this.label10.TabIndex = 351; - this.label10.Text = "10%"; - // - // NUP_RTForme7 - // - this.NUP_RTForme7.Location = new System.Drawing.Point(470, 196); - this.NUP_RTForme7.Name = "NUP_RTForme7"; - this.NUP_RTForme7.Size = new System.Drawing.Size(41, 20); - this.NUP_RTForme7.TabIndex = 333; - // - // label11 - // - this.label11.AutoSize = true; - this.label11.Location = new System.Drawing.Point(316, 332); - this.label11.Name = "label11"; - this.label11.Size = new System.Drawing.Size(21, 13); - this.label11.TabIndex = 362; - this.label11.Text = "1%"; - // - // NUP_RTMin7 - // - this.NUP_RTMin7.Location = new System.Drawing.Point(517, 196); - this.NUP_RTMin7.Name = "NUP_RTMin7"; - this.NUP_RTMin7.Size = new System.Drawing.Size(41, 20); - this.NUP_RTMin7.TabIndex = 334; - // - // label12 - // - this.label12.AutoSize = true; - this.label12.Location = new System.Drawing.Point(316, 305); - this.label12.Name = "label12"; - this.label12.Size = new System.Drawing.Size(21, 13); - this.label12.TabIndex = 361; - this.label12.Text = "4%"; - // - // NUP_RTMax7 - // - this.NUP_RTMax7.Location = new System.Drawing.Point(564, 196); - this.NUP_RTMax7.Name = "NUP_RTMax7"; - this.NUP_RTMax7.Size = new System.Drawing.Size(41, 20); - this.NUP_RTMax7.TabIndex = 335; - // - // label13 - // - this.label13.AutoSize = true; - this.label13.Location = new System.Drawing.Point(316, 278); - this.label13.Name = "label13"; - this.label13.Size = new System.Drawing.Size(21, 13); - this.label13.TabIndex = 360; - this.label13.Text = "5%"; - // - // NUP_RTForme8 - // - this.NUP_RTForme8.Location = new System.Drawing.Point(470, 223); - this.NUP_RTForme8.Name = "NUP_RTForme8"; - this.NUP_RTForme8.Size = new System.Drawing.Size(41, 20); - this.NUP_RTForme8.TabIndex = 336; - // - // label14 - // - this.label14.AutoSize = true; - this.label14.Location = new System.Drawing.Point(309, 252); - this.label14.Name = "label14"; - this.label14.Size = new System.Drawing.Size(27, 13); - this.label14.TabIndex = 359; - this.label14.Text = "10%"; - // - // NUP_RTMin8 - // - this.NUP_RTMin8.Location = new System.Drawing.Point(517, 223); - this.NUP_RTMin8.Name = "NUP_RTMin8"; - this.NUP_RTMin8.Size = new System.Drawing.Size(41, 20); - this.NUP_RTMin8.TabIndex = 337; - // - // label15 - // - this.label15.AutoSize = true; - this.label15.Location = new System.Drawing.Point(309, 228); - this.label15.Name = "label15"; - this.label15.Size = new System.Drawing.Size(27, 13); - this.label15.TabIndex = 358; - this.label15.Text = "10%"; - // - // NUP_RTMax8 - // - this.NUP_RTMax8.Location = new System.Drawing.Point(564, 223); - this.NUP_RTMax8.Name = "NUP_RTMax8"; - this.NUP_RTMax8.Size = new System.Drawing.Size(41, 20); - this.NUP_RTMax8.TabIndex = 338; - // - // label16 - // - this.label16.AutoSize = true; - this.label16.Location = new System.Drawing.Point(309, 201); - this.label16.Name = "label16"; - this.label16.Size = new System.Drawing.Size(27, 13); - this.label16.TabIndex = 357; - this.label16.Text = "10%"; - // - // NUP_RTForme9 - // - this.NUP_RTForme9.Location = new System.Drawing.Point(470, 250); - this.NUP_RTForme9.Name = "NUP_RTForme9"; - this.NUP_RTForme9.Size = new System.Drawing.Size(41, 20); - this.NUP_RTForme9.TabIndex = 339; - // - // label17 - // - this.label17.AutoSize = true; - this.label17.Location = new System.Drawing.Point(310, 174); - this.label17.Name = "label17"; - this.label17.Size = new System.Drawing.Size(27, 13); - this.label17.TabIndex = 356; - this.label17.Text = "10%"; - // - // NUP_RTMin9 - // - this.NUP_RTMin9.Location = new System.Drawing.Point(517, 250); - this.NUP_RTMin9.Name = "NUP_RTMin9"; - this.NUP_RTMin9.Size = new System.Drawing.Size(41, 20); - this.NUP_RTMin9.TabIndex = 340; - // - // label18 - // - this.label18.AutoSize = true; - this.label18.Location = new System.Drawing.Point(310, 147); - this.label18.Name = "label18"; - this.label18.Size = new System.Drawing.Size(27, 13); - this.label18.TabIndex = 355; - this.label18.Text = "10%"; - // - // NUP_RTMax9 - // - this.NUP_RTMax9.Location = new System.Drawing.Point(564, 250); - this.NUP_RTMax9.Name = "NUP_RTMax9"; - this.NUP_RTMax9.Size = new System.Drawing.Size(41, 20); - this.NUP_RTMax9.TabIndex = 341; - // - // label19 - // - this.label19.AutoSize = true; - this.label19.Location = new System.Drawing.Point(310, 120); - this.label19.Name = "label19"; - this.label19.Size = new System.Drawing.Size(27, 13); - this.label19.TabIndex = 354; - this.label19.Text = "10%"; - // - // NUP_RTForme10 - // - this.NUP_RTForme10.Location = new System.Drawing.Point(470, 276); - this.NUP_RTForme10.Name = "NUP_RTForme10"; - this.NUP_RTForme10.Size = new System.Drawing.Size(41, 20); - this.NUP_RTForme10.TabIndex = 342; - // - // label20 - // - this.label20.AutoSize = true; - this.label20.Location = new System.Drawing.Point(310, 93); - this.label20.Name = "label20"; - this.label20.Size = new System.Drawing.Size(27, 13); - this.label20.TabIndex = 353; - this.label20.Text = "10%"; - // - // NUP_RTMin10 - // - this.NUP_RTMin10.Location = new System.Drawing.Point(517, 276); - this.NUP_RTMin10.Name = "NUP_RTMin10"; - this.NUP_RTMin10.Size = new System.Drawing.Size(41, 20); - this.NUP_RTMin10.TabIndex = 343; - // - // label21 - // - this.label21.AutoSize = true; - this.label21.Location = new System.Drawing.Point(310, 66); - this.label21.Name = "label21"; - this.label21.Size = new System.Drawing.Size(27, 13); - this.label21.TabIndex = 352; - this.label21.Text = "10%"; - // - // NUP_RTMax10 - // - this.NUP_RTMax10.Location = new System.Drawing.Point(564, 276); - this.NUP_RTMax10.Name = "NUP_RTMax10"; - this.NUP_RTMax10.Size = new System.Drawing.Size(41, 20); - this.NUP_RTMax10.TabIndex = 344; - // - // NUP_RTForme11 - // - this.NUP_RTForme11.Location = new System.Drawing.Point(470, 301); - this.NUP_RTForme11.Name = "NUP_RTForme11"; - this.NUP_RTForme11.Size = new System.Drawing.Size(41, 20); - this.NUP_RTForme11.TabIndex = 350; - // - // NUP_RTMin11 - // - this.NUP_RTMin11.Location = new System.Drawing.Point(517, 301); - this.NUP_RTMin11.Name = "NUP_RTMin11"; - this.NUP_RTMin11.Size = new System.Drawing.Size(41, 20); - this.NUP_RTMin11.TabIndex = 345; - // - // NUP_RTMax11 - // - this.NUP_RTMax11.Location = new System.Drawing.Point(564, 301); - this.NUP_RTMax11.Name = "NUP_RTMax11"; - this.NUP_RTMax11.Size = new System.Drawing.Size(41, 20); - this.NUP_RTMax11.TabIndex = 349; - // - // NUP_RTForme12 - // - this.NUP_RTForme12.Location = new System.Drawing.Point(470, 326); - this.NUP_RTForme12.Name = "NUP_RTForme12"; - this.NUP_RTForme12.Size = new System.Drawing.Size(41, 20); - this.NUP_RTForme12.TabIndex = 346; - // - // NUP_RTMin12 - // - this.NUP_RTMin12.Location = new System.Drawing.Point(517, 326); - this.NUP_RTMin12.Name = "NUP_RTMin12"; - this.NUP_RTMin12.Size = new System.Drawing.Size(41, 20); - this.NUP_RTMin12.TabIndex = 348; - // - // NUP_RTMax12 - // - this.NUP_RTMax12.Location = new System.Drawing.Point(564, 326); - this.NUP_RTMax12.Name = "NUP_RTMax12"; - this.NUP_RTMax12.Size = new System.Drawing.Size(41, 20); - this.NUP_RTMax12.TabIndex = 347; - // - // NUP_GrassForme1 - // - this.NUP_GrassForme1.Location = new System.Drawing.Point(171, 36); - this.NUP_GrassForme1.Name = "NUP_GrassForme1"; - this.NUP_GrassForme1.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassForme1.TabIndex = 48; - // - // NUP_GrassMin1 - // - this.NUP_GrassMin1.Location = new System.Drawing.Point(218, 36); - this.NUP_GrassMin1.Name = "NUP_GrassMin1"; - this.NUP_GrassMin1.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMin1.TabIndex = 49; - // - // label3 - // - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(170, 20); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(36, 13); - this.label3.TabIndex = 311; - this.label3.Text = "Forme"; - // - // NUP_GrassMax1 - // - this.NUP_GrassMax1.Location = new System.Drawing.Point(265, 36); - this.NUP_GrassMax1.Name = "NUP_GrassMax1"; - this.NUP_GrassMax1.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMax1.TabIndex = 50; - // - // label4 - // - this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(217, 20); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(24, 13); - this.label4.TabIndex = 312; - this.label4.Text = "Min"; - // - // NUP_GrassForme2 - // - this.NUP_GrassForme2.Location = new System.Drawing.Point(171, 63); - this.NUP_GrassForme2.Name = "NUP_GrassForme2"; - this.NUP_GrassForme2.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassForme2.TabIndex = 51; - // - // label5 - // - this.label5.AutoSize = true; - this.label5.Location = new System.Drawing.Point(264, 20); - this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(27, 13); - this.label5.TabIndex = 313; - this.label5.Text = "Max"; - // - // NUP_GrassMin2 - // - this.NUP_GrassMin2.Location = new System.Drawing.Point(218, 63); - this.NUP_GrassMin2.Name = "NUP_GrassMin2"; - this.NUP_GrassMin2.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMin2.TabIndex = 52; - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(44, 20); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(54, 13); - this.label2.TabIndex = 310; - this.label2.Text = "Tall Grass"; - // - // NUP_GrassMax2 - // - this.NUP_GrassMax2.Location = new System.Drawing.Point(265, 63); - this.NUP_GrassMax2.Name = "NUP_GrassMax2"; - this.NUP_GrassMax2.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMax2.TabIndex = 53; - // - // CB_Grass12 - // - this.CB_Grass12.FormattingEnabled = true; - this.CB_Grass12.Location = new System.Drawing.Point(44, 327); - this.CB_Grass12.Name = "CB_Grass12"; - this.CB_Grass12.Size = new System.Drawing.Size(121, 21); - this.CB_Grass12.TabIndex = 309; - // - // NUP_GrassForme3 - // - this.NUP_GrassForme3.Location = new System.Drawing.Point(171, 90); - this.NUP_GrassForme3.Name = "NUP_GrassForme3"; - this.NUP_GrassForme3.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassForme3.TabIndex = 54; - // - // CB_Grass11 - // - this.CB_Grass11.FormattingEnabled = true; - this.CB_Grass11.Location = new System.Drawing.Point(44, 301); - this.CB_Grass11.Name = "CB_Grass11"; - this.CB_Grass11.Size = new System.Drawing.Size(121, 21); - this.CB_Grass11.TabIndex = 308; - // - // NUP_GrassMin3 - // - this.NUP_GrassMin3.Location = new System.Drawing.Point(218, 90); - this.NUP_GrassMin3.Name = "NUP_GrassMin3"; - this.NUP_GrassMin3.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMin3.TabIndex = 55; - // - // CB_Grass10 - // - this.CB_Grass10.FormattingEnabled = true; - this.CB_Grass10.Location = new System.Drawing.Point(44, 274); - this.CB_Grass10.Name = "CB_Grass10"; - this.CB_Grass10.Size = new System.Drawing.Size(121, 21); - this.CB_Grass10.TabIndex = 307; - // - // NUP_GrassMax3 - // - this.NUP_GrassMax3.Location = new System.Drawing.Point(265, 90); - this.NUP_GrassMax3.Name = "NUP_GrassMax3"; - this.NUP_GrassMax3.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMax3.TabIndex = 56; - // - // CB_Grass9 - // - this.CB_Grass9.FormattingEnabled = true; - this.CB_Grass9.Location = new System.Drawing.Point(44, 248); - this.CB_Grass9.Name = "CB_Grass9"; - this.CB_Grass9.Size = new System.Drawing.Size(121, 21); - this.CB_Grass9.TabIndex = 306; - // - // NUP_GrassForme4 - // - this.NUP_GrassForme4.Location = new System.Drawing.Point(171, 116); - this.NUP_GrassForme4.Name = "NUP_GrassForme4"; - this.NUP_GrassForme4.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassForme4.TabIndex = 57; - // - // CB_Grass8 - // - this.CB_Grass8.FormattingEnabled = true; - this.CB_Grass8.Location = new System.Drawing.Point(44, 221); - this.CB_Grass8.Name = "CB_Grass8"; - this.CB_Grass8.Size = new System.Drawing.Size(121, 21); - this.CB_Grass8.TabIndex = 305; - // - // NUP_GrassMin4 - // - this.NUP_GrassMin4.Location = new System.Drawing.Point(218, 116); - this.NUP_GrassMin4.Name = "NUP_GrassMin4"; - this.NUP_GrassMin4.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMin4.TabIndex = 58; - // - // CB_Grass7 - // - this.CB_Grass7.FormattingEnabled = true; - this.CB_Grass7.Location = new System.Drawing.Point(44, 195); - this.CB_Grass7.Name = "CB_Grass7"; - this.CB_Grass7.Size = new System.Drawing.Size(121, 21); - this.CB_Grass7.TabIndex = 304; - // - // NUP_GrassMax4 - // - this.NUP_GrassMax4.Location = new System.Drawing.Point(265, 116); - this.NUP_GrassMax4.Name = "NUP_GrassMax4"; - this.NUP_GrassMax4.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMax4.TabIndex = 59; - // - // CB_Grass6 - // - this.CB_Grass6.FormattingEnabled = true; - this.CB_Grass6.Location = new System.Drawing.Point(44, 168); - this.CB_Grass6.Name = "CB_Grass6"; - this.CB_Grass6.Size = new System.Drawing.Size(121, 21); - this.CB_Grass6.TabIndex = 303; - // - // NUP_GrassForme5 - // - this.NUP_GrassForme5.Location = new System.Drawing.Point(171, 143); - this.NUP_GrassForme5.Name = "NUP_GrassForme5"; - this.NUP_GrassForme5.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassForme5.TabIndex = 60; - // - // CB_Grass5 - // - this.CB_Grass5.FormattingEnabled = true; - this.CB_Grass5.Location = new System.Drawing.Point(44, 142); - this.CB_Grass5.Name = "CB_Grass5"; - this.CB_Grass5.Size = new System.Drawing.Size(121, 21); - this.CB_Grass5.TabIndex = 302; - // - // NUP_GrassMin5 - // - this.NUP_GrassMin5.Location = new System.Drawing.Point(218, 143); - this.NUP_GrassMin5.Name = "NUP_GrassMin5"; - this.NUP_GrassMin5.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMin5.TabIndex = 61; - // - // CB_Grass4 - // - this.CB_Grass4.FormattingEnabled = true; - this.CB_Grass4.Location = new System.Drawing.Point(44, 115); - this.CB_Grass4.Name = "CB_Grass4"; - this.CB_Grass4.Size = new System.Drawing.Size(121, 21); - this.CB_Grass4.TabIndex = 301; - // - // NUP_GrassMax5 - // - this.NUP_GrassMax5.Location = new System.Drawing.Point(265, 143); - this.NUP_GrassMax5.Name = "NUP_GrassMax5"; - this.NUP_GrassMax5.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMax5.TabIndex = 62; - // - // CB_Grass3 - // - this.CB_Grass3.FormattingEnabled = true; - this.CB_Grass3.Location = new System.Drawing.Point(44, 89); - this.CB_Grass3.Name = "CB_Grass3"; - this.CB_Grass3.Size = new System.Drawing.Size(121, 21); - this.CB_Grass3.TabIndex = 300; - // - // NUP_GrassForme6 - // - this.NUP_GrassForme6.Location = new System.Drawing.Point(171, 170); - this.NUP_GrassForme6.Name = "NUP_GrassForme6"; - this.NUP_GrassForme6.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassForme6.TabIndex = 63; - // - // CB_Grass2 - // - this.CB_Grass2.FormattingEnabled = true; - this.CB_Grass2.Location = new System.Drawing.Point(44, 62); - this.CB_Grass2.Name = "CB_Grass2"; - this.CB_Grass2.Size = new System.Drawing.Size(121, 21); - this.CB_Grass2.TabIndex = 299; - // - // NUP_GrassMin6 - // - this.NUP_GrassMin6.Location = new System.Drawing.Point(218, 170); - this.NUP_GrassMin6.Name = "NUP_GrassMin6"; - this.NUP_GrassMin6.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMin6.TabIndex = 64; - // - // CB_Grass1 - // - this.CB_Grass1.FormattingEnabled = true; - this.CB_Grass1.Location = new System.Drawing.Point(44, 36); - this.CB_Grass1.Name = "CB_Grass1"; - this.CB_Grass1.Size = new System.Drawing.Size(121, 21); - this.CB_Grass1.TabIndex = 3; - // - // NUP_GrassMax6 - // - this.NUP_GrassMax6.Location = new System.Drawing.Point(265, 170); - this.NUP_GrassMax6.Name = "NUP_GrassMax6"; - this.NUP_GrassMax6.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMax6.TabIndex = 65; - // - // label31 - // - this.label31.AutoSize = true; - this.label31.Location = new System.Drawing.Point(11, 39); - this.label31.Name = "label31"; - this.label31.Size = new System.Drawing.Size(27, 13); - this.label31.TabIndex = 287; - this.label31.Text = "10%"; - // - // NUP_GrassForme7 - // - this.NUP_GrassForme7.Location = new System.Drawing.Point(171, 196); - this.NUP_GrassForme7.Name = "NUP_GrassForme7"; - this.NUP_GrassForme7.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassForme7.TabIndex = 66; - // - // label41 - // - this.label41.AutoSize = true; - this.label41.Location = new System.Drawing.Point(17, 332); - this.label41.Name = "label41"; - this.label41.Size = new System.Drawing.Size(21, 13); - this.label41.TabIndex = 298; - this.label41.Text = "1%"; - // - // NUP_GrassMin7 - // - this.NUP_GrassMin7.Location = new System.Drawing.Point(218, 196); - this.NUP_GrassMin7.Name = "NUP_GrassMin7"; - this.NUP_GrassMin7.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMin7.TabIndex = 67; - // - // label42 - // - this.label42.AutoSize = true; - this.label42.Location = new System.Drawing.Point(17, 305); - this.label42.Name = "label42"; - this.label42.Size = new System.Drawing.Size(21, 13); - this.label42.TabIndex = 297; - this.label42.Text = "4%"; - // - // NUP_GrassMax7 - // - this.NUP_GrassMax7.Location = new System.Drawing.Point(265, 196); - this.NUP_GrassMax7.Name = "NUP_GrassMax7"; - this.NUP_GrassMax7.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMax7.TabIndex = 68; - // - // label40 - // - this.label40.AutoSize = true; - this.label40.Location = new System.Drawing.Point(17, 278); - this.label40.Name = "label40"; - this.label40.Size = new System.Drawing.Size(21, 13); - this.label40.TabIndex = 296; - this.label40.Text = "5%"; - // - // NUP_GrassForme8 - // - this.NUP_GrassForme8.Location = new System.Drawing.Point(171, 223); - this.NUP_GrassForme8.Name = "NUP_GrassForme8"; - this.NUP_GrassForme8.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassForme8.TabIndex = 69; - // - // label39 - // - this.label39.AutoSize = true; - this.label39.Location = new System.Drawing.Point(10, 252); - this.label39.Name = "label39"; - this.label39.Size = new System.Drawing.Size(27, 13); - this.label39.TabIndex = 295; - this.label39.Text = "10%"; - // - // NUP_GrassMin8 - // - this.NUP_GrassMin8.Location = new System.Drawing.Point(218, 223); - this.NUP_GrassMin8.Name = "NUP_GrassMin8"; - this.NUP_GrassMin8.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMin8.TabIndex = 70; - // - // label38 - // - this.label38.AutoSize = true; - this.label38.Location = new System.Drawing.Point(10, 228); - this.label38.Name = "label38"; - this.label38.Size = new System.Drawing.Size(27, 13); - this.label38.TabIndex = 294; - this.label38.Text = "10%"; - // - // NUP_GrassMax8 - // - this.NUP_GrassMax8.Location = new System.Drawing.Point(265, 223); - this.NUP_GrassMax8.Name = "NUP_GrassMax8"; - this.NUP_GrassMax8.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMax8.TabIndex = 71; - // - // label37 - // - this.label37.AutoSize = true; - this.label37.Location = new System.Drawing.Point(10, 201); - this.label37.Name = "label37"; - this.label37.Size = new System.Drawing.Size(27, 13); - this.label37.TabIndex = 293; - this.label37.Text = "10%"; - // - // NUP_GrassForme9 - // - this.NUP_GrassForme9.Location = new System.Drawing.Point(171, 250); - this.NUP_GrassForme9.Name = "NUP_GrassForme9"; - this.NUP_GrassForme9.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassForme9.TabIndex = 72; - // - // label36 - // - this.label36.AutoSize = true; - this.label36.Location = new System.Drawing.Point(11, 174); - this.label36.Name = "label36"; - this.label36.Size = new System.Drawing.Size(27, 13); - this.label36.TabIndex = 292; - this.label36.Text = "10%"; - // - // NUP_GrassMin9 - // - this.NUP_GrassMin9.Location = new System.Drawing.Point(218, 250); - this.NUP_GrassMin9.Name = "NUP_GrassMin9"; - this.NUP_GrassMin9.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMin9.TabIndex = 73; - // - // label35 - // - this.label35.AutoSize = true; - this.label35.Location = new System.Drawing.Point(11, 147); - this.label35.Name = "label35"; - this.label35.Size = new System.Drawing.Size(27, 13); - this.label35.TabIndex = 291; - this.label35.Text = "10%"; - // - // NUP_GrassMax9 - // - this.NUP_GrassMax9.Location = new System.Drawing.Point(265, 250); - this.NUP_GrassMax9.Name = "NUP_GrassMax9"; - this.NUP_GrassMax9.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMax9.TabIndex = 74; - // - // label34 - // - this.label34.AutoSize = true; - this.label34.Location = new System.Drawing.Point(11, 120); - this.label34.Name = "label34"; - this.label34.Size = new System.Drawing.Size(27, 13); - this.label34.TabIndex = 290; - this.label34.Text = "10%"; - // - // NUP_GrassForme10 - // - this.NUP_GrassForme10.Location = new System.Drawing.Point(171, 276); - this.NUP_GrassForme10.Name = "NUP_GrassForme10"; - this.NUP_GrassForme10.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassForme10.TabIndex = 75; - // - // label33 - // - this.label33.AutoSize = true; - this.label33.Location = new System.Drawing.Point(11, 93); - this.label33.Name = "label33"; - this.label33.Size = new System.Drawing.Size(27, 13); - this.label33.TabIndex = 289; - this.label33.Text = "10%"; - // - // NUP_GrassMin10 - // - this.NUP_GrassMin10.Location = new System.Drawing.Point(218, 276); - this.NUP_GrassMin10.Name = "NUP_GrassMin10"; - this.NUP_GrassMin10.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMin10.TabIndex = 76; - // - // label32 - // - this.label32.AutoSize = true; - this.label32.Location = new System.Drawing.Point(11, 66); - this.label32.Name = "label32"; - this.label32.Size = new System.Drawing.Size(27, 13); - this.label32.TabIndex = 288; - this.label32.Text = "10%"; - // - // NUP_GrassMax10 - // - this.NUP_GrassMax10.Location = new System.Drawing.Point(265, 276); - this.NUP_GrassMax10.Name = "NUP_GrassMax10"; - this.NUP_GrassMax10.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMax10.TabIndex = 77; - // - // NUP_GrassMax12 - // - this.NUP_GrassMax12.Location = new System.Drawing.Point(265, 330); - this.NUP_GrassMax12.Name = "NUP_GrassMax12"; - this.NUP_GrassMax12.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMax12.TabIndex = 83; - // - // NUP_GrassForme11 - // - this.NUP_GrassForme11.Location = new System.Drawing.Point(171, 303); - this.NUP_GrassForme11.Name = "NUP_GrassForme11"; - this.NUP_GrassForme11.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassForme11.TabIndex = 78; - // - // NUP_GrassMin12 - // - this.NUP_GrassMin12.Location = new System.Drawing.Point(218, 330); - this.NUP_GrassMin12.Name = "NUP_GrassMin12"; - this.NUP_GrassMin12.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMin12.TabIndex = 82; - // - // NUP_GrassMin11 - // - this.NUP_GrassMin11.Location = new System.Drawing.Point(218, 303); - this.NUP_GrassMin11.Name = "NUP_GrassMin11"; - this.NUP_GrassMin11.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMin11.TabIndex = 79; - // - // NUP_GrassForme12 - // - this.NUP_GrassForme12.Location = new System.Drawing.Point(171, 330); - this.NUP_GrassForme12.Name = "NUP_GrassForme12"; - this.NUP_GrassForme12.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassForme12.TabIndex = 81; - // - // NUP_GrassMax11 - // - this.NUP_GrassMax11.Location = new System.Drawing.Point(265, 303); - this.NUP_GrassMax11.Name = "NUP_GrassMax11"; - this.NUP_GrassMax11.Size = new System.Drawing.Size(41, 20); - this.NUP_GrassMax11.TabIndex = 80; - // - // TabPage_Water - // - this.TabPage_Water.Controls.Add(this.label116); - this.TabPage_Water.Controls.Add(this.label117); - this.TabPage_Water.Controls.Add(this.label118); - this.TabPage_Water.Controls.Add(this.label119); - this.TabPage_Water.Controls.Add(this.label120); - this.TabPage_Water.Controls.Add(this.label103); - this.TabPage_Water.Controls.Add(this.label48); - this.TabPage_Water.Controls.Add(this.label104); - this.TabPage_Water.Controls.Add(this.CB_Super1); - this.TabPage_Water.Controls.Add(this.label105); - this.TabPage_Water.Controls.Add(this.NUP_SuperForme1); - this.TabPage_Water.Controls.Add(this.label106); - this.TabPage_Water.Controls.Add(this.CB_Surf1); - this.TabPage_Water.Controls.Add(this.NUP_SuperMin1); - this.TabPage_Water.Controls.Add(this.NUP_SurfForme1); - this.TabPage_Water.Controls.Add(this.NUP_SuperMax1); - this.TabPage_Water.Controls.Add(this.NUP_SurfMin1); - this.TabPage_Water.Controls.Add(this.CB_Super2); - this.TabPage_Water.Controls.Add(this.NUP_SurfMax1); - this.TabPage_Water.Controls.Add(this.NUP_SuperForme2); - this.TabPage_Water.Controls.Add(this.CB_Surf2); - this.TabPage_Water.Controls.Add(this.NUP_SuperMin2); - this.TabPage_Water.Controls.Add(this.NUP_SurfForme2); - this.TabPage_Water.Controls.Add(this.NUP_SuperMax2); - this.TabPage_Water.Controls.Add(this.NUP_SurfMin2); - this.TabPage_Water.Controls.Add(this.CB_Super3); - this.TabPage_Water.Controls.Add(this.NUP_SurfMax5); - this.TabPage_Water.Controls.Add(this.NUP_SuperForme3); - this.TabPage_Water.Controls.Add(this.NUP_SurfMax2); - this.TabPage_Water.Controls.Add(this.NUP_SuperMin3); - this.TabPage_Water.Controls.Add(this.NUP_SurfMin5); - this.TabPage_Water.Controls.Add(this.NUP_SuperMax3); - this.TabPage_Water.Controls.Add(this.CB_Surf3); - this.TabPage_Water.Controls.Add(this.label49); - this.TabPage_Water.Controls.Add(this.NUP_SurfForme5); - this.TabPage_Water.Controls.Add(this.label98); - this.TabPage_Water.Controls.Add(this.NUP_SurfForme3); - this.TabPage_Water.Controls.Add(this.label99); - this.TabPage_Water.Controls.Add(this.CB_Surf5); - this.TabPage_Water.Controls.Add(this.label100); - this.TabPage_Water.Controls.Add(this.NUP_SurfMin3); - this.TabPage_Water.Controls.Add(this.label101); - this.TabPage_Water.Controls.Add(this.NUP_SurfMax4); - this.TabPage_Water.Controls.Add(this.label102); - this.TabPage_Water.Controls.Add(this.NUP_SurfMax3); - this.TabPage_Water.Controls.Add(this.label26); - this.TabPage_Water.Controls.Add(this.NUP_SurfMin4); - this.TabPage_Water.Controls.Add(this.CB_Good1); - this.TabPage_Water.Controls.Add(this.CB_Surf4); - this.TabPage_Water.Controls.Add(this.NUP_GoodForme1); - this.TabPage_Water.Controls.Add(this.NUP_SurfForme4); - this.TabPage_Water.Controls.Add(this.NUP_GoodMin1); - this.TabPage_Water.Controls.Add(this.NUP_GoodMax1); - this.TabPage_Water.Controls.Add(this.CB_Good2); - this.TabPage_Water.Controls.Add(this.NUP_GoodForme2); - this.TabPage_Water.Controls.Add(this.NUP_GoodMin2); - this.TabPage_Water.Controls.Add(this.NUP_GoodMax2); - this.TabPage_Water.Controls.Add(this.CB_Good3); - this.TabPage_Water.Controls.Add(this.NUP_GoodForme3); - this.TabPage_Water.Controls.Add(this.NUP_GoodMin3); - this.TabPage_Water.Controls.Add(this.NUP_GoodMax3); - this.TabPage_Water.Controls.Add(this.label27); - this.TabPage_Water.Controls.Add(this.label28); - this.TabPage_Water.Controls.Add(this.label29); - this.TabPage_Water.Controls.Add(this.label30); - this.TabPage_Water.Controls.Add(this.label46); - this.TabPage_Water.Controls.Add(this.label47); - this.TabPage_Water.Controls.Add(this.label22); - this.TabPage_Water.Controls.Add(this.CB_Old1); - this.TabPage_Water.Controls.Add(this.NUP_OldForme1); - this.TabPage_Water.Controls.Add(this.NUP_OldMin1); - this.TabPage_Water.Controls.Add(this.NUP_OldMax1); - this.TabPage_Water.Controls.Add(this.CB_Old2); - this.TabPage_Water.Controls.Add(this.NUP_OldForme2); - this.TabPage_Water.Controls.Add(this.NUP_OldMin2); - this.TabPage_Water.Controls.Add(this.NUP_OldMax2); - this.TabPage_Water.Controls.Add(this.CB_Old3); - this.TabPage_Water.Controls.Add(this.NUP_OldForme3); - this.TabPage_Water.Controls.Add(this.NUP_OldMin3); - this.TabPage_Water.Controls.Add(this.NUP_OldMax3); - this.TabPage_Water.Controls.Add(this.label45); - this.TabPage_Water.Controls.Add(this.label44); - this.TabPage_Water.Controls.Add(this.label43); - this.TabPage_Water.Controls.Add(this.label23); - this.TabPage_Water.Controls.Add(this.label24); - this.TabPage_Water.Controls.Add(this.label25); - this.TabPage_Water.Location = new System.Drawing.Point(4, 22); - this.TabPage_Water.Name = "TabPage_Water"; - this.TabPage_Water.Padding = new System.Windows.Forms.Padding(3); - this.TabPage_Water.Size = new System.Drawing.Size(918, 369); - this.TabPage_Water.TabIndex = 1; - this.TabPage_Water.Text = "Water"; - this.TabPage_Water.UseVisualStyleBackColor = true; - // - // label116 - // - this.label116.AutoSize = true; - this.label116.Location = new System.Drawing.Point(313, 285); - this.label116.Name = "label116"; - this.label116.Size = new System.Drawing.Size(21, 13); - this.label116.TabIndex = 351; - this.label116.Text = "1%"; - // - // label117 - // - this.label117.AutoSize = true; - this.label117.Location = new System.Drawing.Point(313, 258); - this.label117.Name = "label117"; - this.label117.Size = new System.Drawing.Size(21, 13); - this.label117.TabIndex = 350; - this.label117.Text = "4%"; - // - // label118 - // - this.label118.AutoSize = true; - this.label118.Location = new System.Drawing.Point(308, 231); - this.label118.Name = "label118"; - this.label118.Size = new System.Drawing.Size(27, 13); - this.label118.TabIndex = 349; - this.label118.Text = "15%"; - // - // label119 - // - this.label119.AutoSize = true; - this.label119.Location = new System.Drawing.Point(307, 204); - this.label119.Name = "label119"; - this.label119.Size = new System.Drawing.Size(27, 13); - this.label119.TabIndex = 348; - this.label119.Text = "30%"; - // - // label120 - // - this.label120.AutoSize = true; - this.label120.Location = new System.Drawing.Point(307, 177); - this.label120.Name = "label120"; - this.label120.Size = new System.Drawing.Size(27, 13); - this.label120.TabIndex = 347; - this.label120.Text = "50%"; - // - // label103 - // - this.label103.AutoSize = true; - this.label103.Location = new System.Drawing.Point(558, 159); - this.label103.Name = "label103"; - this.label103.Size = new System.Drawing.Size(27, 13); - this.label103.TabIndex = 288; - this.label103.Text = "Max"; - // - // label48 - // - this.label48.AutoSize = true; - this.label48.Location = new System.Drawing.Point(639, 13); - this.label48.Name = "label48"; - this.label48.Size = new System.Drawing.Size(58, 13); - this.label48.TabIndex = 340; - this.label48.Text = "Super Rod"; - // - // label104 - // - this.label104.AutoSize = true; - this.label104.Location = new System.Drawing.Point(511, 159); - this.label104.Name = "label104"; - this.label104.Size = new System.Drawing.Size(24, 13); - this.label104.TabIndex = 287; - this.label104.Text = "Min"; - // - // CB_Super1 - // - this.CB_Super1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Super1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Super1.FormattingEnabled = true; - this.CB_Super1.Items.AddRange(new object[] { + this.CB_RockSmash3.Location = new System.Drawing.Point(646, 90); + this.CB_RockSmash3.Name = "CB_RockSmash3"; + this.CB_RockSmash3.Size = new System.Drawing.Size(121, 21); + this.CB_RockSmash3.TabIndex = 386; + // + // NUP_RockSmashMax2 + // + this.NUP_RockSmashMax2.Location = new System.Drawing.Point(867, 64); + this.NUP_RockSmashMax2.Name = "NUP_RockSmashMax2"; + this.NUP_RockSmashMax2.Size = new System.Drawing.Size(41, 20); + this.NUP_RockSmashMax2.TabIndex = 385; + // + // NUP_RockSmashForme2 + // + this.NUP_RockSmashForme2.Location = new System.Drawing.Point(773, 64); + this.NUP_RockSmashForme2.Name = "NUP_RockSmashForme2"; + this.NUP_RockSmashForme2.Size = new System.Drawing.Size(41, 20); + this.NUP_RockSmashForme2.TabIndex = 383; + // + // NUP_RockSmashMin2 + // + this.NUP_RockSmashMin2.Location = new System.Drawing.Point(820, 64); + this.NUP_RockSmashMin2.Name = "NUP_RockSmashMin2"; + this.NUP_RockSmashMin2.Size = new System.Drawing.Size(41, 20); + this.NUP_RockSmashMin2.TabIndex = 384; + // + // NUP_RTForme1 + // + this.NUP_RTForme1.Location = new System.Drawing.Point(470, 36); + this.NUP_RTForme1.Name = "NUP_RTForme1"; + this.NUP_RTForme1.Size = new System.Drawing.Size(41, 20); + this.NUP_RTForme1.TabIndex = 315; + // + // NUP_RTMin1 + // + this.NUP_RTMin1.Location = new System.Drawing.Point(517, 36); + this.NUP_RTMin1.Name = "NUP_RTMin1"; + this.NUP_RTMin1.Size = new System.Drawing.Size(41, 20); + this.NUP_RTMin1.TabIndex = 316; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(469, 20); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(36, 13); + this.label6.TabIndex = 375; + this.label6.Text = "Forme"; + // + // NUP_RTMax1 + // + this.NUP_RTMax1.Location = new System.Drawing.Point(564, 36); + this.NUP_RTMax1.Name = "NUP_RTMax1"; + this.NUP_RTMax1.Size = new System.Drawing.Size(41, 20); + this.NUP_RTMax1.TabIndex = 317; + // + // label7 + // + this.label7.AutoSize = true; + this.label7.Location = new System.Drawing.Point(516, 20); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(24, 13); + this.label7.TabIndex = 376; + this.label7.Text = "Min"; + // + // NUP_RTForme2 + // + this.NUP_RTForme2.Location = new System.Drawing.Point(470, 63); + this.NUP_RTForme2.Name = "NUP_RTForme2"; + this.NUP_RTForme2.Size = new System.Drawing.Size(41, 20); + this.NUP_RTForme2.TabIndex = 318; + // + // label8 + // + this.label8.AutoSize = true; + this.label8.Location = new System.Drawing.Point(563, 20); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(27, 13); + this.label8.TabIndex = 377; + this.label8.Text = "Max"; + // + // NUP_RTMin2 + // + this.NUP_RTMin2.Location = new System.Drawing.Point(517, 63); + this.NUP_RTMin2.Name = "NUP_RTMin2"; + this.NUP_RTMin2.Size = new System.Drawing.Size(41, 20); + this.NUP_RTMin2.TabIndex = 319; + // + // label9 + // + this.label9.AutoSize = true; + this.label9.Location = new System.Drawing.Point(343, 20); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(75, 13); + this.label9.TabIndex = 374; + this.label9.Text = "Rough Terrain"; + // + // NUP_RTMax2 + // + this.NUP_RTMax2.Location = new System.Drawing.Point(564, 63); + this.NUP_RTMax2.Name = "NUP_RTMax2"; + this.NUP_RTMax2.Size = new System.Drawing.Size(41, 20); + this.NUP_RTMax2.TabIndex = 320; + // + // CB_RT12 + // + this.CB_RT12.FormattingEnabled = true; + this.CB_RT12.Location = new System.Drawing.Point(343, 327); + this.CB_RT12.Name = "CB_RT12"; + this.CB_RT12.Size = new System.Drawing.Size(121, 21); + this.CB_RT12.TabIndex = 373; + // + // NUP_RTForme3 + // + this.NUP_RTForme3.Location = new System.Drawing.Point(470, 90); + this.NUP_RTForme3.Name = "NUP_RTForme3"; + this.NUP_RTForme3.Size = new System.Drawing.Size(41, 20); + this.NUP_RTForme3.TabIndex = 321; + // + // CB_RT11 + // + this.CB_RT11.FormattingEnabled = true; + this.CB_RT11.Location = new System.Drawing.Point(343, 301); + this.CB_RT11.Name = "CB_RT11"; + this.CB_RT11.Size = new System.Drawing.Size(121, 21); + this.CB_RT11.TabIndex = 372; + // + // NUP_RTMin3 + // + this.NUP_RTMin3.Location = new System.Drawing.Point(517, 90); + this.NUP_RTMin3.Name = "NUP_RTMin3"; + this.NUP_RTMin3.Size = new System.Drawing.Size(41, 20); + this.NUP_RTMin3.TabIndex = 322; + // + // CB_RT10 + // + this.CB_RT10.FormattingEnabled = true; + this.CB_RT10.Location = new System.Drawing.Point(343, 274); + this.CB_RT10.Name = "CB_RT10"; + this.CB_RT10.Size = new System.Drawing.Size(121, 21); + this.CB_RT10.TabIndex = 371; + // + // NUP_RTMax3 + // + this.NUP_RTMax3.Location = new System.Drawing.Point(564, 90); + this.NUP_RTMax3.Name = "NUP_RTMax3"; + this.NUP_RTMax3.Size = new System.Drawing.Size(41, 20); + this.NUP_RTMax3.TabIndex = 323; + // + // CB_RT9 + // + this.CB_RT9.FormattingEnabled = true; + this.CB_RT9.Location = new System.Drawing.Point(343, 248); + this.CB_RT9.Name = "CB_RT9"; + this.CB_RT9.Size = new System.Drawing.Size(121, 21); + this.CB_RT9.TabIndex = 370; + // + // NUP_RTForme4 + // + this.NUP_RTForme4.Location = new System.Drawing.Point(470, 116); + this.NUP_RTForme4.Name = "NUP_RTForme4"; + this.NUP_RTForme4.Size = new System.Drawing.Size(41, 20); + this.NUP_RTForme4.TabIndex = 324; + // + // CB_RT8 + // + this.CB_RT8.FormattingEnabled = true; + this.CB_RT8.Location = new System.Drawing.Point(343, 221); + this.CB_RT8.Name = "CB_RT8"; + this.CB_RT8.Size = new System.Drawing.Size(121, 21); + this.CB_RT8.TabIndex = 369; + // + // NUP_RTMin4 + // + this.NUP_RTMin4.Location = new System.Drawing.Point(517, 116); + this.NUP_RTMin4.Name = "NUP_RTMin4"; + this.NUP_RTMin4.Size = new System.Drawing.Size(41, 20); + this.NUP_RTMin4.TabIndex = 325; + // + // CB_RT7 + // + this.CB_RT7.FormattingEnabled = true; + this.CB_RT7.Location = new System.Drawing.Point(343, 195); + this.CB_RT7.Name = "CB_RT7"; + this.CB_RT7.Size = new System.Drawing.Size(121, 21); + this.CB_RT7.TabIndex = 368; + // + // NUP_RTMax4 + // + this.NUP_RTMax4.Location = new System.Drawing.Point(564, 116); + this.NUP_RTMax4.Name = "NUP_RTMax4"; + this.NUP_RTMax4.Size = new System.Drawing.Size(41, 20); + this.NUP_RTMax4.TabIndex = 326; + // + // CB_RT6 + // + this.CB_RT6.FormattingEnabled = true; + this.CB_RT6.Location = new System.Drawing.Point(343, 168); + this.CB_RT6.Name = "CB_RT6"; + this.CB_RT6.Size = new System.Drawing.Size(121, 21); + this.CB_RT6.TabIndex = 367; + // + // NUP_RTForme5 + // + this.NUP_RTForme5.Location = new System.Drawing.Point(470, 143); + this.NUP_RTForme5.Name = "NUP_RTForme5"; + this.NUP_RTForme5.Size = new System.Drawing.Size(41, 20); + this.NUP_RTForme5.TabIndex = 327; + // + // CB_RT5 + // + this.CB_RT5.FormattingEnabled = true; + this.CB_RT5.Location = new System.Drawing.Point(343, 142); + this.CB_RT5.Name = "CB_RT5"; + this.CB_RT5.Size = new System.Drawing.Size(121, 21); + this.CB_RT5.TabIndex = 366; + // + // NUP_RTMin5 + // + this.NUP_RTMin5.Location = new System.Drawing.Point(517, 143); + this.NUP_RTMin5.Name = "NUP_RTMin5"; + this.NUP_RTMin5.Size = new System.Drawing.Size(41, 20); + this.NUP_RTMin5.TabIndex = 328; + // + // CB_RT4 + // + this.CB_RT4.FormattingEnabled = true; + this.CB_RT4.Location = new System.Drawing.Point(343, 115); + this.CB_RT4.Name = "CB_RT4"; + this.CB_RT4.Size = new System.Drawing.Size(121, 21); + this.CB_RT4.TabIndex = 365; + // + // NUP_RTMax5 + // + this.NUP_RTMax5.Location = new System.Drawing.Point(564, 143); + this.NUP_RTMax5.Name = "NUP_RTMax5"; + this.NUP_RTMax5.Size = new System.Drawing.Size(41, 20); + this.NUP_RTMax5.TabIndex = 329; + // + // CB_RT3 + // + this.CB_RT3.FormattingEnabled = true; + this.CB_RT3.Location = new System.Drawing.Point(343, 89); + this.CB_RT3.Name = "CB_RT3"; + this.CB_RT3.Size = new System.Drawing.Size(121, 21); + this.CB_RT3.TabIndex = 364; + // + // NUP_RTForme6 + // + this.NUP_RTForme6.Location = new System.Drawing.Point(470, 170); + this.NUP_RTForme6.Name = "NUP_RTForme6"; + this.NUP_RTForme6.Size = new System.Drawing.Size(41, 20); + this.NUP_RTForme6.TabIndex = 330; + // + // CB_RT2 + // + this.CB_RT2.FormattingEnabled = true; + this.CB_RT2.Location = new System.Drawing.Point(343, 62); + this.CB_RT2.Name = "CB_RT2"; + this.CB_RT2.Size = new System.Drawing.Size(121, 21); + this.CB_RT2.TabIndex = 363; + // + // NUP_RTMin6 + // + this.NUP_RTMin6.Location = new System.Drawing.Point(517, 170); + this.NUP_RTMin6.Name = "NUP_RTMin6"; + this.NUP_RTMin6.Size = new System.Drawing.Size(41, 20); + this.NUP_RTMin6.TabIndex = 331; + // + // CB_RT1 + // + this.CB_RT1.FormattingEnabled = true; + this.CB_RT1.Location = new System.Drawing.Point(343, 36); + this.CB_RT1.Name = "CB_RT1"; + this.CB_RT1.Size = new System.Drawing.Size(121, 21); + this.CB_RT1.TabIndex = 314; + // + // NUP_RTMax6 + // + this.NUP_RTMax6.Location = new System.Drawing.Point(564, 170); + this.NUP_RTMax6.Name = "NUP_RTMax6"; + this.NUP_RTMax6.Size = new System.Drawing.Size(41, 20); + this.NUP_RTMax6.TabIndex = 332; + // + // label10 + // + this.label10.AutoSize = true; + this.label10.Location = new System.Drawing.Point(310, 39); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(27, 13); + this.label10.TabIndex = 351; + this.label10.Text = "10%"; + // + // NUP_RTForme7 + // + this.NUP_RTForme7.Location = new System.Drawing.Point(470, 196); + this.NUP_RTForme7.Name = "NUP_RTForme7"; + this.NUP_RTForme7.Size = new System.Drawing.Size(41, 20); + this.NUP_RTForme7.TabIndex = 333; + // + // label11 + // + this.label11.AutoSize = true; + this.label11.Location = new System.Drawing.Point(316, 332); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(21, 13); + this.label11.TabIndex = 362; + this.label11.Text = "1%"; + // + // NUP_RTMin7 + // + this.NUP_RTMin7.Location = new System.Drawing.Point(517, 196); + this.NUP_RTMin7.Name = "NUP_RTMin7"; + this.NUP_RTMin7.Size = new System.Drawing.Size(41, 20); + this.NUP_RTMin7.TabIndex = 334; + // + // label12 + // + this.label12.AutoSize = true; + this.label12.Location = new System.Drawing.Point(316, 305); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(21, 13); + this.label12.TabIndex = 361; + this.label12.Text = "4%"; + // + // NUP_RTMax7 + // + this.NUP_RTMax7.Location = new System.Drawing.Point(564, 196); + this.NUP_RTMax7.Name = "NUP_RTMax7"; + this.NUP_RTMax7.Size = new System.Drawing.Size(41, 20); + this.NUP_RTMax7.TabIndex = 335; + // + // label13 + // + this.label13.AutoSize = true; + this.label13.Location = new System.Drawing.Point(316, 278); + this.label13.Name = "label13"; + this.label13.Size = new System.Drawing.Size(21, 13); + this.label13.TabIndex = 360; + this.label13.Text = "5%"; + // + // NUP_RTForme8 + // + this.NUP_RTForme8.Location = new System.Drawing.Point(470, 223); + this.NUP_RTForme8.Name = "NUP_RTForme8"; + this.NUP_RTForme8.Size = new System.Drawing.Size(41, 20); + this.NUP_RTForme8.TabIndex = 336; + // + // label14 + // + this.label14.AutoSize = true; + this.label14.Location = new System.Drawing.Point(309, 252); + this.label14.Name = "label14"; + this.label14.Size = new System.Drawing.Size(27, 13); + this.label14.TabIndex = 359; + this.label14.Text = "10%"; + // + // NUP_RTMin8 + // + this.NUP_RTMin8.Location = new System.Drawing.Point(517, 223); + this.NUP_RTMin8.Name = "NUP_RTMin8"; + this.NUP_RTMin8.Size = new System.Drawing.Size(41, 20); + this.NUP_RTMin8.TabIndex = 337; + // + // label15 + // + this.label15.AutoSize = true; + this.label15.Location = new System.Drawing.Point(309, 228); + this.label15.Name = "label15"; + this.label15.Size = new System.Drawing.Size(27, 13); + this.label15.TabIndex = 358; + this.label15.Text = "10%"; + // + // NUP_RTMax8 + // + this.NUP_RTMax8.Location = new System.Drawing.Point(564, 223); + this.NUP_RTMax8.Name = "NUP_RTMax8"; + this.NUP_RTMax8.Size = new System.Drawing.Size(41, 20); + this.NUP_RTMax8.TabIndex = 338; + // + // label16 + // + this.label16.AutoSize = true; + this.label16.Location = new System.Drawing.Point(309, 201); + this.label16.Name = "label16"; + this.label16.Size = new System.Drawing.Size(27, 13); + this.label16.TabIndex = 357; + this.label16.Text = "10%"; + // + // NUP_RTForme9 + // + this.NUP_RTForme9.Location = new System.Drawing.Point(470, 250); + this.NUP_RTForme9.Name = "NUP_RTForme9"; + this.NUP_RTForme9.Size = new System.Drawing.Size(41, 20); + this.NUP_RTForme9.TabIndex = 339; + // + // label17 + // + this.label17.AutoSize = true; + this.label17.Location = new System.Drawing.Point(310, 174); + this.label17.Name = "label17"; + this.label17.Size = new System.Drawing.Size(27, 13); + this.label17.TabIndex = 356; + this.label17.Text = "10%"; + // + // NUP_RTMin9 + // + this.NUP_RTMin9.Location = new System.Drawing.Point(517, 250); + this.NUP_RTMin9.Name = "NUP_RTMin9"; + this.NUP_RTMin9.Size = new System.Drawing.Size(41, 20); + this.NUP_RTMin9.TabIndex = 340; + // + // label18 + // + this.label18.AutoSize = true; + this.label18.Location = new System.Drawing.Point(310, 147); + this.label18.Name = "label18"; + this.label18.Size = new System.Drawing.Size(27, 13); + this.label18.TabIndex = 355; + this.label18.Text = "10%"; + // + // NUP_RTMax9 + // + this.NUP_RTMax9.Location = new System.Drawing.Point(564, 250); + this.NUP_RTMax9.Name = "NUP_RTMax9"; + this.NUP_RTMax9.Size = new System.Drawing.Size(41, 20); + this.NUP_RTMax9.TabIndex = 341; + // + // label19 + // + this.label19.AutoSize = true; + this.label19.Location = new System.Drawing.Point(310, 120); + this.label19.Name = "label19"; + this.label19.Size = new System.Drawing.Size(27, 13); + this.label19.TabIndex = 354; + this.label19.Text = "10%"; + // + // NUP_RTForme10 + // + this.NUP_RTForme10.Location = new System.Drawing.Point(470, 276); + this.NUP_RTForme10.Name = "NUP_RTForme10"; + this.NUP_RTForme10.Size = new System.Drawing.Size(41, 20); + this.NUP_RTForme10.TabIndex = 342; + // + // label20 + // + this.label20.AutoSize = true; + this.label20.Location = new System.Drawing.Point(310, 93); + this.label20.Name = "label20"; + this.label20.Size = new System.Drawing.Size(27, 13); + this.label20.TabIndex = 353; + this.label20.Text = "10%"; + // + // NUP_RTMin10 + // + this.NUP_RTMin10.Location = new System.Drawing.Point(517, 276); + this.NUP_RTMin10.Name = "NUP_RTMin10"; + this.NUP_RTMin10.Size = new System.Drawing.Size(41, 20); + this.NUP_RTMin10.TabIndex = 343; + // + // label21 + // + this.label21.AutoSize = true; + this.label21.Location = new System.Drawing.Point(310, 66); + this.label21.Name = "label21"; + this.label21.Size = new System.Drawing.Size(27, 13); + this.label21.TabIndex = 352; + this.label21.Text = "10%"; + // + // NUP_RTMax10 + // + this.NUP_RTMax10.Location = new System.Drawing.Point(564, 276); + this.NUP_RTMax10.Name = "NUP_RTMax10"; + this.NUP_RTMax10.Size = new System.Drawing.Size(41, 20); + this.NUP_RTMax10.TabIndex = 344; + // + // NUP_RTForme11 + // + this.NUP_RTForme11.Location = new System.Drawing.Point(470, 301); + this.NUP_RTForme11.Name = "NUP_RTForme11"; + this.NUP_RTForme11.Size = new System.Drawing.Size(41, 20); + this.NUP_RTForme11.TabIndex = 350; + // + // NUP_RTMin11 + // + this.NUP_RTMin11.Location = new System.Drawing.Point(517, 301); + this.NUP_RTMin11.Name = "NUP_RTMin11"; + this.NUP_RTMin11.Size = new System.Drawing.Size(41, 20); + this.NUP_RTMin11.TabIndex = 345; + // + // NUP_RTMax11 + // + this.NUP_RTMax11.Location = new System.Drawing.Point(564, 301); + this.NUP_RTMax11.Name = "NUP_RTMax11"; + this.NUP_RTMax11.Size = new System.Drawing.Size(41, 20); + this.NUP_RTMax11.TabIndex = 349; + // + // NUP_RTForme12 + // + this.NUP_RTForme12.Location = new System.Drawing.Point(470, 326); + this.NUP_RTForme12.Name = "NUP_RTForme12"; + this.NUP_RTForme12.Size = new System.Drawing.Size(41, 20); + this.NUP_RTForme12.TabIndex = 346; + // + // NUP_RTMin12 + // + this.NUP_RTMin12.Location = new System.Drawing.Point(517, 326); + this.NUP_RTMin12.Name = "NUP_RTMin12"; + this.NUP_RTMin12.Size = new System.Drawing.Size(41, 20); + this.NUP_RTMin12.TabIndex = 348; + // + // NUP_RTMax12 + // + this.NUP_RTMax12.Location = new System.Drawing.Point(564, 326); + this.NUP_RTMax12.Name = "NUP_RTMax12"; + this.NUP_RTMax12.Size = new System.Drawing.Size(41, 20); + this.NUP_RTMax12.TabIndex = 347; + // + // NUP_GrassForme1 + // + this.NUP_GrassForme1.Location = new System.Drawing.Point(171, 36); + this.NUP_GrassForme1.Name = "NUP_GrassForme1"; + this.NUP_GrassForme1.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassForme1.TabIndex = 48; + // + // NUP_GrassMin1 + // + this.NUP_GrassMin1.Location = new System.Drawing.Point(218, 36); + this.NUP_GrassMin1.Name = "NUP_GrassMin1"; + this.NUP_GrassMin1.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMin1.TabIndex = 49; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(170, 20); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(36, 13); + this.label3.TabIndex = 311; + this.label3.Text = "Forme"; + // + // NUP_GrassMax1 + // + this.NUP_GrassMax1.Location = new System.Drawing.Point(265, 36); + this.NUP_GrassMax1.Name = "NUP_GrassMax1"; + this.NUP_GrassMax1.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMax1.TabIndex = 50; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(217, 20); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(24, 13); + this.label4.TabIndex = 312; + this.label4.Text = "Min"; + // + // NUP_GrassForme2 + // + this.NUP_GrassForme2.Location = new System.Drawing.Point(171, 63); + this.NUP_GrassForme2.Name = "NUP_GrassForme2"; + this.NUP_GrassForme2.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassForme2.TabIndex = 51; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(264, 20); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(27, 13); + this.label5.TabIndex = 313; + this.label5.Text = "Max"; + // + // NUP_GrassMin2 + // + this.NUP_GrassMin2.Location = new System.Drawing.Point(218, 63); + this.NUP_GrassMin2.Name = "NUP_GrassMin2"; + this.NUP_GrassMin2.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMin2.TabIndex = 52; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(44, 20); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(54, 13); + this.label2.TabIndex = 310; + this.label2.Text = "Tall Grass"; + // + // NUP_GrassMax2 + // + this.NUP_GrassMax2.Location = new System.Drawing.Point(265, 63); + this.NUP_GrassMax2.Name = "NUP_GrassMax2"; + this.NUP_GrassMax2.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMax2.TabIndex = 53; + // + // CB_Grass12 + // + this.CB_Grass12.FormattingEnabled = true; + this.CB_Grass12.Location = new System.Drawing.Point(44, 327); + this.CB_Grass12.Name = "CB_Grass12"; + this.CB_Grass12.Size = new System.Drawing.Size(121, 21); + this.CB_Grass12.TabIndex = 309; + // + // NUP_GrassForme3 + // + this.NUP_GrassForme3.Location = new System.Drawing.Point(171, 90); + this.NUP_GrassForme3.Name = "NUP_GrassForme3"; + this.NUP_GrassForme3.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassForme3.TabIndex = 54; + // + // CB_Grass11 + // + this.CB_Grass11.FormattingEnabled = true; + this.CB_Grass11.Location = new System.Drawing.Point(44, 301); + this.CB_Grass11.Name = "CB_Grass11"; + this.CB_Grass11.Size = new System.Drawing.Size(121, 21); + this.CB_Grass11.TabIndex = 308; + // + // NUP_GrassMin3 + // + this.NUP_GrassMin3.Location = new System.Drawing.Point(218, 90); + this.NUP_GrassMin3.Name = "NUP_GrassMin3"; + this.NUP_GrassMin3.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMin3.TabIndex = 55; + // + // CB_Grass10 + // + this.CB_Grass10.FormattingEnabled = true; + this.CB_Grass10.Location = new System.Drawing.Point(44, 274); + this.CB_Grass10.Name = "CB_Grass10"; + this.CB_Grass10.Size = new System.Drawing.Size(121, 21); + this.CB_Grass10.TabIndex = 307; + // + // NUP_GrassMax3 + // + this.NUP_GrassMax3.Location = new System.Drawing.Point(265, 90); + this.NUP_GrassMax3.Name = "NUP_GrassMax3"; + this.NUP_GrassMax3.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMax3.TabIndex = 56; + // + // CB_Grass9 + // + this.CB_Grass9.FormattingEnabled = true; + this.CB_Grass9.Location = new System.Drawing.Point(44, 248); + this.CB_Grass9.Name = "CB_Grass9"; + this.CB_Grass9.Size = new System.Drawing.Size(121, 21); + this.CB_Grass9.TabIndex = 306; + // + // NUP_GrassForme4 + // + this.NUP_GrassForme4.Location = new System.Drawing.Point(171, 116); + this.NUP_GrassForme4.Name = "NUP_GrassForme4"; + this.NUP_GrassForme4.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassForme4.TabIndex = 57; + // + // CB_Grass8 + // + this.CB_Grass8.FormattingEnabled = true; + this.CB_Grass8.Location = new System.Drawing.Point(44, 221); + this.CB_Grass8.Name = "CB_Grass8"; + this.CB_Grass8.Size = new System.Drawing.Size(121, 21); + this.CB_Grass8.TabIndex = 305; + // + // NUP_GrassMin4 + // + this.NUP_GrassMin4.Location = new System.Drawing.Point(218, 116); + this.NUP_GrassMin4.Name = "NUP_GrassMin4"; + this.NUP_GrassMin4.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMin4.TabIndex = 58; + // + // CB_Grass7 + // + this.CB_Grass7.FormattingEnabled = true; + this.CB_Grass7.Location = new System.Drawing.Point(44, 195); + this.CB_Grass7.Name = "CB_Grass7"; + this.CB_Grass7.Size = new System.Drawing.Size(121, 21); + this.CB_Grass7.TabIndex = 304; + // + // NUP_GrassMax4 + // + this.NUP_GrassMax4.Location = new System.Drawing.Point(265, 116); + this.NUP_GrassMax4.Name = "NUP_GrassMax4"; + this.NUP_GrassMax4.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMax4.TabIndex = 59; + // + // CB_Grass6 + // + this.CB_Grass6.FormattingEnabled = true; + this.CB_Grass6.Location = new System.Drawing.Point(44, 168); + this.CB_Grass6.Name = "CB_Grass6"; + this.CB_Grass6.Size = new System.Drawing.Size(121, 21); + this.CB_Grass6.TabIndex = 303; + // + // NUP_GrassForme5 + // + this.NUP_GrassForme5.Location = new System.Drawing.Point(171, 143); + this.NUP_GrassForme5.Name = "NUP_GrassForme5"; + this.NUP_GrassForme5.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassForme5.TabIndex = 60; + // + // CB_Grass5 + // + this.CB_Grass5.FormattingEnabled = true; + this.CB_Grass5.Location = new System.Drawing.Point(44, 142); + this.CB_Grass5.Name = "CB_Grass5"; + this.CB_Grass5.Size = new System.Drawing.Size(121, 21); + this.CB_Grass5.TabIndex = 302; + // + // NUP_GrassMin5 + // + this.NUP_GrassMin5.Location = new System.Drawing.Point(218, 143); + this.NUP_GrassMin5.Name = "NUP_GrassMin5"; + this.NUP_GrassMin5.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMin5.TabIndex = 61; + // + // CB_Grass4 + // + this.CB_Grass4.FormattingEnabled = true; + this.CB_Grass4.Location = new System.Drawing.Point(44, 115); + this.CB_Grass4.Name = "CB_Grass4"; + this.CB_Grass4.Size = new System.Drawing.Size(121, 21); + this.CB_Grass4.TabIndex = 301; + // + // NUP_GrassMax5 + // + this.NUP_GrassMax5.Location = new System.Drawing.Point(265, 143); + this.NUP_GrassMax5.Name = "NUP_GrassMax5"; + this.NUP_GrassMax5.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMax5.TabIndex = 62; + // + // CB_Grass3 + // + this.CB_Grass3.FormattingEnabled = true; + this.CB_Grass3.Location = new System.Drawing.Point(44, 89); + this.CB_Grass3.Name = "CB_Grass3"; + this.CB_Grass3.Size = new System.Drawing.Size(121, 21); + this.CB_Grass3.TabIndex = 300; + // + // NUP_GrassForme6 + // + this.NUP_GrassForme6.Location = new System.Drawing.Point(171, 170); + this.NUP_GrassForme6.Name = "NUP_GrassForme6"; + this.NUP_GrassForme6.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassForme6.TabIndex = 63; + // + // CB_Grass2 + // + this.CB_Grass2.FormattingEnabled = true; + this.CB_Grass2.Location = new System.Drawing.Point(44, 62); + this.CB_Grass2.Name = "CB_Grass2"; + this.CB_Grass2.Size = new System.Drawing.Size(121, 21); + this.CB_Grass2.TabIndex = 299; + // + // NUP_GrassMin6 + // + this.NUP_GrassMin6.Location = new System.Drawing.Point(218, 170); + this.NUP_GrassMin6.Name = "NUP_GrassMin6"; + this.NUP_GrassMin6.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMin6.TabIndex = 64; + // + // CB_Grass1 + // + this.CB_Grass1.FormattingEnabled = true; + this.CB_Grass1.Location = new System.Drawing.Point(44, 36); + this.CB_Grass1.Name = "CB_Grass1"; + this.CB_Grass1.Size = new System.Drawing.Size(121, 21); + this.CB_Grass1.TabIndex = 3; + // + // NUP_GrassMax6 + // + this.NUP_GrassMax6.Location = new System.Drawing.Point(265, 170); + this.NUP_GrassMax6.Name = "NUP_GrassMax6"; + this.NUP_GrassMax6.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMax6.TabIndex = 65; + // + // label31 + // + this.label31.AutoSize = true; + this.label31.Location = new System.Drawing.Point(11, 39); + this.label31.Name = "label31"; + this.label31.Size = new System.Drawing.Size(27, 13); + this.label31.TabIndex = 287; + this.label31.Text = "10%"; + // + // NUP_GrassForme7 + // + this.NUP_GrassForme7.Location = new System.Drawing.Point(171, 196); + this.NUP_GrassForme7.Name = "NUP_GrassForme7"; + this.NUP_GrassForme7.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassForme7.TabIndex = 66; + // + // label41 + // + this.label41.AutoSize = true; + this.label41.Location = new System.Drawing.Point(17, 332); + this.label41.Name = "label41"; + this.label41.Size = new System.Drawing.Size(21, 13); + this.label41.TabIndex = 298; + this.label41.Text = "1%"; + // + // NUP_GrassMin7 + // + this.NUP_GrassMin7.Location = new System.Drawing.Point(218, 196); + this.NUP_GrassMin7.Name = "NUP_GrassMin7"; + this.NUP_GrassMin7.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMin7.TabIndex = 67; + // + // label42 + // + this.label42.AutoSize = true; + this.label42.Location = new System.Drawing.Point(17, 305); + this.label42.Name = "label42"; + this.label42.Size = new System.Drawing.Size(21, 13); + this.label42.TabIndex = 297; + this.label42.Text = "4%"; + // + // NUP_GrassMax7 + // + this.NUP_GrassMax7.Location = new System.Drawing.Point(265, 196); + this.NUP_GrassMax7.Name = "NUP_GrassMax7"; + this.NUP_GrassMax7.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMax7.TabIndex = 68; + // + // label40 + // + this.label40.AutoSize = true; + this.label40.Location = new System.Drawing.Point(17, 278); + this.label40.Name = "label40"; + this.label40.Size = new System.Drawing.Size(21, 13); + this.label40.TabIndex = 296; + this.label40.Text = "5%"; + // + // NUP_GrassForme8 + // + this.NUP_GrassForme8.Location = new System.Drawing.Point(171, 223); + this.NUP_GrassForme8.Name = "NUP_GrassForme8"; + this.NUP_GrassForme8.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassForme8.TabIndex = 69; + // + // label39 + // + this.label39.AutoSize = true; + this.label39.Location = new System.Drawing.Point(10, 252); + this.label39.Name = "label39"; + this.label39.Size = new System.Drawing.Size(27, 13); + this.label39.TabIndex = 295; + this.label39.Text = "10%"; + // + // NUP_GrassMin8 + // + this.NUP_GrassMin8.Location = new System.Drawing.Point(218, 223); + this.NUP_GrassMin8.Name = "NUP_GrassMin8"; + this.NUP_GrassMin8.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMin8.TabIndex = 70; + // + // label38 + // + this.label38.AutoSize = true; + this.label38.Location = new System.Drawing.Point(10, 228); + this.label38.Name = "label38"; + this.label38.Size = new System.Drawing.Size(27, 13); + this.label38.TabIndex = 294; + this.label38.Text = "10%"; + // + // NUP_GrassMax8 + // + this.NUP_GrassMax8.Location = new System.Drawing.Point(265, 223); + this.NUP_GrassMax8.Name = "NUP_GrassMax8"; + this.NUP_GrassMax8.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMax8.TabIndex = 71; + // + // label37 + // + this.label37.AutoSize = true; + this.label37.Location = new System.Drawing.Point(10, 201); + this.label37.Name = "label37"; + this.label37.Size = new System.Drawing.Size(27, 13); + this.label37.TabIndex = 293; + this.label37.Text = "10%"; + // + // NUP_GrassForme9 + // + this.NUP_GrassForme9.Location = new System.Drawing.Point(171, 250); + this.NUP_GrassForme9.Name = "NUP_GrassForme9"; + this.NUP_GrassForme9.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassForme9.TabIndex = 72; + // + // label36 + // + this.label36.AutoSize = true; + this.label36.Location = new System.Drawing.Point(11, 174); + this.label36.Name = "label36"; + this.label36.Size = new System.Drawing.Size(27, 13); + this.label36.TabIndex = 292; + this.label36.Text = "10%"; + // + // NUP_GrassMin9 + // + this.NUP_GrassMin9.Location = new System.Drawing.Point(218, 250); + this.NUP_GrassMin9.Name = "NUP_GrassMin9"; + this.NUP_GrassMin9.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMin9.TabIndex = 73; + // + // label35 + // + this.label35.AutoSize = true; + this.label35.Location = new System.Drawing.Point(11, 147); + this.label35.Name = "label35"; + this.label35.Size = new System.Drawing.Size(27, 13); + this.label35.TabIndex = 291; + this.label35.Text = "10%"; + // + // NUP_GrassMax9 + // + this.NUP_GrassMax9.Location = new System.Drawing.Point(265, 250); + this.NUP_GrassMax9.Name = "NUP_GrassMax9"; + this.NUP_GrassMax9.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMax9.TabIndex = 74; + // + // label34 + // + this.label34.AutoSize = true; + this.label34.Location = new System.Drawing.Point(11, 120); + this.label34.Name = "label34"; + this.label34.Size = new System.Drawing.Size(27, 13); + this.label34.TabIndex = 290; + this.label34.Text = "10%"; + // + // NUP_GrassForme10 + // + this.NUP_GrassForme10.Location = new System.Drawing.Point(171, 276); + this.NUP_GrassForme10.Name = "NUP_GrassForme10"; + this.NUP_GrassForme10.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassForme10.TabIndex = 75; + // + // label33 + // + this.label33.AutoSize = true; + this.label33.Location = new System.Drawing.Point(11, 93); + this.label33.Name = "label33"; + this.label33.Size = new System.Drawing.Size(27, 13); + this.label33.TabIndex = 289; + this.label33.Text = "10%"; + // + // NUP_GrassMin10 + // + this.NUP_GrassMin10.Location = new System.Drawing.Point(218, 276); + this.NUP_GrassMin10.Name = "NUP_GrassMin10"; + this.NUP_GrassMin10.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMin10.TabIndex = 76; + // + // label32 + // + this.label32.AutoSize = true; + this.label32.Location = new System.Drawing.Point(11, 66); + this.label32.Name = "label32"; + this.label32.Size = new System.Drawing.Size(27, 13); + this.label32.TabIndex = 288; + this.label32.Text = "10%"; + // + // NUP_GrassMax10 + // + this.NUP_GrassMax10.Location = new System.Drawing.Point(265, 276); + this.NUP_GrassMax10.Name = "NUP_GrassMax10"; + this.NUP_GrassMax10.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMax10.TabIndex = 77; + // + // NUP_GrassMax12 + // + this.NUP_GrassMax12.Location = new System.Drawing.Point(265, 330); + this.NUP_GrassMax12.Name = "NUP_GrassMax12"; + this.NUP_GrassMax12.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMax12.TabIndex = 83; + // + // NUP_GrassForme11 + // + this.NUP_GrassForme11.Location = new System.Drawing.Point(171, 303); + this.NUP_GrassForme11.Name = "NUP_GrassForme11"; + this.NUP_GrassForme11.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassForme11.TabIndex = 78; + // + // NUP_GrassMin12 + // + this.NUP_GrassMin12.Location = new System.Drawing.Point(218, 330); + this.NUP_GrassMin12.Name = "NUP_GrassMin12"; + this.NUP_GrassMin12.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMin12.TabIndex = 82; + // + // NUP_GrassMin11 + // + this.NUP_GrassMin11.Location = new System.Drawing.Point(218, 303); + this.NUP_GrassMin11.Name = "NUP_GrassMin11"; + this.NUP_GrassMin11.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMin11.TabIndex = 79; + // + // NUP_GrassForme12 + // + this.NUP_GrassForme12.Location = new System.Drawing.Point(171, 330); + this.NUP_GrassForme12.Name = "NUP_GrassForme12"; + this.NUP_GrassForme12.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassForme12.TabIndex = 81; + // + // NUP_GrassMax11 + // + this.NUP_GrassMax11.Location = new System.Drawing.Point(265, 303); + this.NUP_GrassMax11.Name = "NUP_GrassMax11"; + this.NUP_GrassMax11.Size = new System.Drawing.Size(41, 20); + this.NUP_GrassMax11.TabIndex = 80; + // + // TabPage_Water + // + this.TabPage_Water.Controls.Add(this.label116); + this.TabPage_Water.Controls.Add(this.label117); + this.TabPage_Water.Controls.Add(this.label118); + this.TabPage_Water.Controls.Add(this.label119); + this.TabPage_Water.Controls.Add(this.label120); + this.TabPage_Water.Controls.Add(this.label103); + this.TabPage_Water.Controls.Add(this.label48); + this.TabPage_Water.Controls.Add(this.label104); + this.TabPage_Water.Controls.Add(this.CB_Super1); + this.TabPage_Water.Controls.Add(this.label105); + this.TabPage_Water.Controls.Add(this.NUP_SuperForme1); + this.TabPage_Water.Controls.Add(this.label106); + this.TabPage_Water.Controls.Add(this.CB_Surf1); + this.TabPage_Water.Controls.Add(this.NUP_SuperMin1); + this.TabPage_Water.Controls.Add(this.NUP_SurfForme1); + this.TabPage_Water.Controls.Add(this.NUP_SuperMax1); + this.TabPage_Water.Controls.Add(this.NUP_SurfMin1); + this.TabPage_Water.Controls.Add(this.CB_Super2); + this.TabPage_Water.Controls.Add(this.NUP_SurfMax1); + this.TabPage_Water.Controls.Add(this.NUP_SuperForme2); + this.TabPage_Water.Controls.Add(this.CB_Surf2); + this.TabPage_Water.Controls.Add(this.NUP_SuperMin2); + this.TabPage_Water.Controls.Add(this.NUP_SurfForme2); + this.TabPage_Water.Controls.Add(this.NUP_SuperMax2); + this.TabPage_Water.Controls.Add(this.NUP_SurfMin2); + this.TabPage_Water.Controls.Add(this.CB_Super3); + this.TabPage_Water.Controls.Add(this.NUP_SurfMax5); + this.TabPage_Water.Controls.Add(this.NUP_SuperForme3); + this.TabPage_Water.Controls.Add(this.NUP_SurfMax2); + this.TabPage_Water.Controls.Add(this.NUP_SuperMin3); + this.TabPage_Water.Controls.Add(this.NUP_SurfMin5); + this.TabPage_Water.Controls.Add(this.NUP_SuperMax3); + this.TabPage_Water.Controls.Add(this.CB_Surf3); + this.TabPage_Water.Controls.Add(this.label49); + this.TabPage_Water.Controls.Add(this.NUP_SurfForme5); + this.TabPage_Water.Controls.Add(this.label98); + this.TabPage_Water.Controls.Add(this.NUP_SurfForme3); + this.TabPage_Water.Controls.Add(this.label99); + this.TabPage_Water.Controls.Add(this.CB_Surf5); + this.TabPage_Water.Controls.Add(this.label100); + this.TabPage_Water.Controls.Add(this.NUP_SurfMin3); + this.TabPage_Water.Controls.Add(this.label101); + this.TabPage_Water.Controls.Add(this.NUP_SurfMax4); + this.TabPage_Water.Controls.Add(this.label102); + this.TabPage_Water.Controls.Add(this.NUP_SurfMax3); + this.TabPage_Water.Controls.Add(this.label26); + this.TabPage_Water.Controls.Add(this.NUP_SurfMin4); + this.TabPage_Water.Controls.Add(this.CB_Good1); + this.TabPage_Water.Controls.Add(this.CB_Surf4); + this.TabPage_Water.Controls.Add(this.NUP_GoodForme1); + this.TabPage_Water.Controls.Add(this.NUP_SurfForme4); + this.TabPage_Water.Controls.Add(this.NUP_GoodMin1); + this.TabPage_Water.Controls.Add(this.NUP_GoodMax1); + this.TabPage_Water.Controls.Add(this.CB_Good2); + this.TabPage_Water.Controls.Add(this.NUP_GoodForme2); + this.TabPage_Water.Controls.Add(this.NUP_GoodMin2); + this.TabPage_Water.Controls.Add(this.NUP_GoodMax2); + this.TabPage_Water.Controls.Add(this.CB_Good3); + this.TabPage_Water.Controls.Add(this.NUP_GoodForme3); + this.TabPage_Water.Controls.Add(this.NUP_GoodMin3); + this.TabPage_Water.Controls.Add(this.NUP_GoodMax3); + this.TabPage_Water.Controls.Add(this.label27); + this.TabPage_Water.Controls.Add(this.label28); + this.TabPage_Water.Controls.Add(this.label29); + this.TabPage_Water.Controls.Add(this.label30); + this.TabPage_Water.Controls.Add(this.label46); + this.TabPage_Water.Controls.Add(this.label47); + this.TabPage_Water.Controls.Add(this.label22); + this.TabPage_Water.Controls.Add(this.CB_Old1); + this.TabPage_Water.Controls.Add(this.NUP_OldForme1); + this.TabPage_Water.Controls.Add(this.NUP_OldMin1); + this.TabPage_Water.Controls.Add(this.NUP_OldMax1); + this.TabPage_Water.Controls.Add(this.CB_Old2); + this.TabPage_Water.Controls.Add(this.NUP_OldForme2); + this.TabPage_Water.Controls.Add(this.NUP_OldMin2); + this.TabPage_Water.Controls.Add(this.NUP_OldMax2); + this.TabPage_Water.Controls.Add(this.CB_Old3); + this.TabPage_Water.Controls.Add(this.NUP_OldForme3); + this.TabPage_Water.Controls.Add(this.NUP_OldMin3); + this.TabPage_Water.Controls.Add(this.NUP_OldMax3); + this.TabPage_Water.Controls.Add(this.label45); + this.TabPage_Water.Controls.Add(this.label44); + this.TabPage_Water.Controls.Add(this.label43); + this.TabPage_Water.Controls.Add(this.label23); + this.TabPage_Water.Controls.Add(this.label24); + this.TabPage_Water.Controls.Add(this.label25); + this.TabPage_Water.Location = new System.Drawing.Point(4, 22); + this.TabPage_Water.Name = "TabPage_Water"; + this.TabPage_Water.Padding = new System.Windows.Forms.Padding(3); + this.TabPage_Water.Size = new System.Drawing.Size(918, 369); + this.TabPage_Water.TabIndex = 1; + this.TabPage_Water.Text = "Water"; + this.TabPage_Water.UseVisualStyleBackColor = true; + // + // label116 + // + this.label116.AutoSize = true; + this.label116.Location = new System.Drawing.Point(313, 285); + this.label116.Name = "label116"; + this.label116.Size = new System.Drawing.Size(21, 13); + this.label116.TabIndex = 351; + this.label116.Text = "1%"; + // + // label117 + // + this.label117.AutoSize = true; + this.label117.Location = new System.Drawing.Point(313, 258); + this.label117.Name = "label117"; + this.label117.Size = new System.Drawing.Size(21, 13); + this.label117.TabIndex = 350; + this.label117.Text = "4%"; + // + // label118 + // + this.label118.AutoSize = true; + this.label118.Location = new System.Drawing.Point(308, 231); + this.label118.Name = "label118"; + this.label118.Size = new System.Drawing.Size(27, 13); + this.label118.TabIndex = 349; + this.label118.Text = "15%"; + // + // label119 + // + this.label119.AutoSize = true; + this.label119.Location = new System.Drawing.Point(307, 204); + this.label119.Name = "label119"; + this.label119.Size = new System.Drawing.Size(27, 13); + this.label119.TabIndex = 348; + this.label119.Text = "30%"; + // + // label120 + // + this.label120.AutoSize = true; + this.label120.Location = new System.Drawing.Point(307, 177); + this.label120.Name = "label120"; + this.label120.Size = new System.Drawing.Size(27, 13); + this.label120.TabIndex = 347; + this.label120.Text = "50%"; + // + // label103 + // + this.label103.AutoSize = true; + this.label103.Location = new System.Drawing.Point(558, 159); + this.label103.Name = "label103"; + this.label103.Size = new System.Drawing.Size(27, 13); + this.label103.TabIndex = 288; + this.label103.Text = "Max"; + // + // label48 + // + this.label48.AutoSize = true; + this.label48.Location = new System.Drawing.Point(639, 13); + this.label48.Name = "label48"; + this.label48.Size = new System.Drawing.Size(58, 13); + this.label48.TabIndex = 340; + this.label48.Text = "Super Rod"; + // + // label104 + // + this.label104.AutoSize = true; + this.label104.Location = new System.Drawing.Point(511, 159); + this.label104.Name = "label104"; + this.label104.Size = new System.Drawing.Size(24, 13); + this.label104.TabIndex = 287; + this.label104.Text = "Min"; + // + // CB_Super1 + // + this.CB_Super1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Super1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Super1.FormattingEnabled = true; + this.CB_Super1.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -6332,42 +6332,42 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_Super1.Location = new System.Drawing.Point(642, 29); - this.CB_Super1.Name = "CB_Super1"; - this.CB_Super1.Size = new System.Drawing.Size(121, 21); - this.CB_Super1.TabIndex = 328; - // - // label105 - // - this.label105.AutoSize = true; - this.label105.Location = new System.Drawing.Point(464, 159); - this.label105.Name = "label105"; - this.label105.Size = new System.Drawing.Size(36, 13); - this.label105.TabIndex = 286; - this.label105.Text = "Forme"; - // - // NUP_SuperForme1 - // - this.NUP_SuperForme1.Location = new System.Drawing.Point(769, 30); - this.NUP_SuperForme1.Name = "NUP_SuperForme1"; - this.NUP_SuperForme1.Size = new System.Drawing.Size(41, 20); - this.NUP_SuperForme1.TabIndex = 329; - // - // label106 - // - this.label106.AutoSize = true; - this.label106.Location = new System.Drawing.Point(340, 159); - this.label106.Name = "label106"; - this.label106.Size = new System.Drawing.Size(40, 13); - this.label106.TabIndex = 285; - this.label106.Text = "Surfing"; - // - // CB_Surf1 - // - this.CB_Surf1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Surf1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Surf1.FormattingEnabled = true; - this.CB_Surf1.Items.AddRange(new object[] { + this.CB_Super1.Location = new System.Drawing.Point(642, 29); + this.CB_Super1.Name = "CB_Super1"; + this.CB_Super1.Size = new System.Drawing.Size(121, 21); + this.CB_Super1.TabIndex = 328; + // + // label105 + // + this.label105.AutoSize = true; + this.label105.Location = new System.Drawing.Point(464, 159); + this.label105.Name = "label105"; + this.label105.Size = new System.Drawing.Size(36, 13); + this.label105.TabIndex = 286; + this.label105.Text = "Forme"; + // + // NUP_SuperForme1 + // + this.NUP_SuperForme1.Location = new System.Drawing.Point(769, 30); + this.NUP_SuperForme1.Name = "NUP_SuperForme1"; + this.NUP_SuperForme1.Size = new System.Drawing.Size(41, 20); + this.NUP_SuperForme1.TabIndex = 329; + // + // label106 + // + this.label106.AutoSize = true; + this.label106.Location = new System.Drawing.Point(340, 159); + this.label106.Name = "label106"; + this.label106.Size = new System.Drawing.Size(40, 13); + this.label106.TabIndex = 285; + this.label106.Text = "Surfing"; + // + // CB_Surf1 + // + this.CB_Surf1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Surf1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Surf1.FormattingEnabled = true; + this.CB_Surf1.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -7018,45 +7018,45 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_Surf1.Location = new System.Drawing.Point(340, 174); - this.CB_Surf1.Name = "CB_Surf1"; - this.CB_Surf1.Size = new System.Drawing.Size(121, 21); - this.CB_Surf1.TabIndex = 265; - // - // NUP_SuperMin1 - // - this.NUP_SuperMin1.Location = new System.Drawing.Point(816, 30); - this.NUP_SuperMin1.Name = "NUP_SuperMin1"; - this.NUP_SuperMin1.Size = new System.Drawing.Size(41, 20); - this.NUP_SuperMin1.TabIndex = 330; - // - // NUP_SurfForme1 - // - this.NUP_SurfForme1.Location = new System.Drawing.Point(467, 175); - this.NUP_SurfForme1.Name = "NUP_SurfForme1"; - this.NUP_SurfForme1.Size = new System.Drawing.Size(41, 20); - this.NUP_SurfForme1.TabIndex = 266; - // - // NUP_SuperMax1 - // - this.NUP_SuperMax1.Location = new System.Drawing.Point(863, 30); - this.NUP_SuperMax1.Name = "NUP_SuperMax1"; - this.NUP_SuperMax1.Size = new System.Drawing.Size(41, 20); - this.NUP_SuperMax1.TabIndex = 331; - // - // NUP_SurfMin1 - // - this.NUP_SurfMin1.Location = new System.Drawing.Point(514, 175); - this.NUP_SurfMin1.Name = "NUP_SurfMin1"; - this.NUP_SurfMin1.Size = new System.Drawing.Size(41, 20); - this.NUP_SurfMin1.TabIndex = 267; - // - // CB_Super2 - // - this.CB_Super2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Super2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Super2.FormattingEnabled = true; - this.CB_Super2.Items.AddRange(new object[] { + this.CB_Surf1.Location = new System.Drawing.Point(340, 174); + this.CB_Surf1.Name = "CB_Surf1"; + this.CB_Surf1.Size = new System.Drawing.Size(121, 21); + this.CB_Surf1.TabIndex = 265; + // + // NUP_SuperMin1 + // + this.NUP_SuperMin1.Location = new System.Drawing.Point(816, 30); + this.NUP_SuperMin1.Name = "NUP_SuperMin1"; + this.NUP_SuperMin1.Size = new System.Drawing.Size(41, 20); + this.NUP_SuperMin1.TabIndex = 330; + // + // NUP_SurfForme1 + // + this.NUP_SurfForme1.Location = new System.Drawing.Point(467, 175); + this.NUP_SurfForme1.Name = "NUP_SurfForme1"; + this.NUP_SurfForme1.Size = new System.Drawing.Size(41, 20); + this.NUP_SurfForme1.TabIndex = 266; + // + // NUP_SuperMax1 + // + this.NUP_SuperMax1.Location = new System.Drawing.Point(863, 30); + this.NUP_SuperMax1.Name = "NUP_SuperMax1"; + this.NUP_SuperMax1.Size = new System.Drawing.Size(41, 20); + this.NUP_SuperMax1.TabIndex = 331; + // + // NUP_SurfMin1 + // + this.NUP_SurfMin1.Location = new System.Drawing.Point(514, 175); + this.NUP_SurfMin1.Name = "NUP_SurfMin1"; + this.NUP_SurfMin1.Size = new System.Drawing.Size(41, 20); + this.NUP_SurfMin1.TabIndex = 267; + // + // CB_Super2 + // + this.CB_Super2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Super2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Super2.FormattingEnabled = true; + this.CB_Super2.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -7707,31 +7707,31 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_Super2.Location = new System.Drawing.Point(642, 56); - this.CB_Super2.Name = "CB_Super2"; - this.CB_Super2.Size = new System.Drawing.Size(121, 21); - this.CB_Super2.TabIndex = 332; - // - // NUP_SurfMax1 - // - this.NUP_SurfMax1.Location = new System.Drawing.Point(561, 175); - this.NUP_SurfMax1.Name = "NUP_SurfMax1"; - this.NUP_SurfMax1.Size = new System.Drawing.Size(41, 20); - this.NUP_SurfMax1.TabIndex = 268; - // - // NUP_SuperForme2 - // - this.NUP_SuperForme2.Location = new System.Drawing.Point(769, 57); - this.NUP_SuperForme2.Name = "NUP_SuperForme2"; - this.NUP_SuperForme2.Size = new System.Drawing.Size(41, 20); - this.NUP_SuperForme2.TabIndex = 333; - // - // CB_Surf2 - // - this.CB_Surf2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Surf2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Surf2.FormattingEnabled = true; - this.CB_Surf2.Items.AddRange(new object[] { + this.CB_Super2.Location = new System.Drawing.Point(642, 56); + this.CB_Super2.Name = "CB_Super2"; + this.CB_Super2.Size = new System.Drawing.Size(121, 21); + this.CB_Super2.TabIndex = 332; + // + // NUP_SurfMax1 + // + this.NUP_SurfMax1.Location = new System.Drawing.Point(561, 175); + this.NUP_SurfMax1.Name = "NUP_SurfMax1"; + this.NUP_SurfMax1.Size = new System.Drawing.Size(41, 20); + this.NUP_SurfMax1.TabIndex = 268; + // + // NUP_SuperForme2 + // + this.NUP_SuperForme2.Location = new System.Drawing.Point(769, 57); + this.NUP_SuperForme2.Name = "NUP_SuperForme2"; + this.NUP_SuperForme2.Size = new System.Drawing.Size(41, 20); + this.NUP_SuperForme2.TabIndex = 333; + // + // CB_Surf2 + // + this.CB_Surf2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Surf2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Surf2.FormattingEnabled = true; + this.CB_Surf2.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -8382,45 +8382,45 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_Surf2.Location = new System.Drawing.Point(340, 201); - this.CB_Surf2.Name = "CB_Surf2"; - this.CB_Surf2.Size = new System.Drawing.Size(121, 21); - this.CB_Surf2.TabIndex = 269; - // - // NUP_SuperMin2 - // - this.NUP_SuperMin2.Location = new System.Drawing.Point(816, 57); - this.NUP_SuperMin2.Name = "NUP_SuperMin2"; - this.NUP_SuperMin2.Size = new System.Drawing.Size(41, 20); - this.NUP_SuperMin2.TabIndex = 334; - // - // NUP_SurfForme2 - // - this.NUP_SurfForme2.Location = new System.Drawing.Point(467, 202); - this.NUP_SurfForme2.Name = "NUP_SurfForme2"; - this.NUP_SurfForme2.Size = new System.Drawing.Size(41, 20); - this.NUP_SurfForme2.TabIndex = 270; - // - // NUP_SuperMax2 - // - this.NUP_SuperMax2.Location = new System.Drawing.Point(863, 57); - this.NUP_SuperMax2.Name = "NUP_SuperMax2"; - this.NUP_SuperMax2.Size = new System.Drawing.Size(41, 20); - this.NUP_SuperMax2.TabIndex = 335; - // - // NUP_SurfMin2 - // - this.NUP_SurfMin2.Location = new System.Drawing.Point(514, 202); - this.NUP_SurfMin2.Name = "NUP_SurfMin2"; - this.NUP_SurfMin2.Size = new System.Drawing.Size(41, 20); - this.NUP_SurfMin2.TabIndex = 271; - // - // CB_Super3 - // - this.CB_Super3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Super3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Super3.FormattingEnabled = true; - this.CB_Super3.Items.AddRange(new object[] { + this.CB_Surf2.Location = new System.Drawing.Point(340, 201); + this.CB_Surf2.Name = "CB_Surf2"; + this.CB_Surf2.Size = new System.Drawing.Size(121, 21); + this.CB_Surf2.TabIndex = 269; + // + // NUP_SuperMin2 + // + this.NUP_SuperMin2.Location = new System.Drawing.Point(816, 57); + this.NUP_SuperMin2.Name = "NUP_SuperMin2"; + this.NUP_SuperMin2.Size = new System.Drawing.Size(41, 20); + this.NUP_SuperMin2.TabIndex = 334; + // + // NUP_SurfForme2 + // + this.NUP_SurfForme2.Location = new System.Drawing.Point(467, 202); + this.NUP_SurfForme2.Name = "NUP_SurfForme2"; + this.NUP_SurfForme2.Size = new System.Drawing.Size(41, 20); + this.NUP_SurfForme2.TabIndex = 270; + // + // NUP_SuperMax2 + // + this.NUP_SuperMax2.Location = new System.Drawing.Point(863, 57); + this.NUP_SuperMax2.Name = "NUP_SuperMax2"; + this.NUP_SuperMax2.Size = new System.Drawing.Size(41, 20); + this.NUP_SuperMax2.TabIndex = 335; + // + // NUP_SurfMin2 + // + this.NUP_SurfMin2.Location = new System.Drawing.Point(514, 202); + this.NUP_SurfMin2.Name = "NUP_SurfMin2"; + this.NUP_SurfMin2.Size = new System.Drawing.Size(41, 20); + this.NUP_SurfMin2.TabIndex = 271; + // + // CB_Super3 + // + this.CB_Super3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Super3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Super3.FormattingEnabled = true; + this.CB_Super3.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -9071,59 +9071,59 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_Super3.Location = new System.Drawing.Point(642, 83); - this.CB_Super3.Name = "CB_Super3"; - this.CB_Super3.Size = new System.Drawing.Size(121, 21); - this.CB_Super3.TabIndex = 336; - // - // NUP_SurfMax5 - // - this.NUP_SurfMax5.Location = new System.Drawing.Point(561, 283); - this.NUP_SurfMax5.Name = "NUP_SurfMax5"; - this.NUP_SurfMax5.Size = new System.Drawing.Size(41, 20); - this.NUP_SurfMax5.TabIndex = 284; - // - // NUP_SuperForme3 - // - this.NUP_SuperForme3.Location = new System.Drawing.Point(769, 84); - this.NUP_SuperForme3.Name = "NUP_SuperForme3"; - this.NUP_SuperForme3.Size = new System.Drawing.Size(41, 20); - this.NUP_SuperForme3.TabIndex = 337; - // - // NUP_SurfMax2 - // - this.NUP_SurfMax2.Location = new System.Drawing.Point(561, 202); - this.NUP_SurfMax2.Name = "NUP_SurfMax2"; - this.NUP_SurfMax2.Size = new System.Drawing.Size(41, 20); - this.NUP_SurfMax2.TabIndex = 272; - // - // NUP_SuperMin3 - // - this.NUP_SuperMin3.Location = new System.Drawing.Point(816, 84); - this.NUP_SuperMin3.Name = "NUP_SuperMin3"; - this.NUP_SuperMin3.Size = new System.Drawing.Size(41, 20); - this.NUP_SuperMin3.TabIndex = 338; - // - // NUP_SurfMin5 - // - this.NUP_SurfMin5.Location = new System.Drawing.Point(514, 283); - this.NUP_SurfMin5.Name = "NUP_SurfMin5"; - this.NUP_SurfMin5.Size = new System.Drawing.Size(41, 20); - this.NUP_SurfMin5.TabIndex = 283; - // - // NUP_SuperMax3 - // - this.NUP_SuperMax3.Location = new System.Drawing.Point(863, 84); - this.NUP_SuperMax3.Name = "NUP_SuperMax3"; - this.NUP_SuperMax3.Size = new System.Drawing.Size(41, 20); - this.NUP_SuperMax3.TabIndex = 339; - // - // CB_Surf3 - // - this.CB_Surf3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Surf3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Surf3.FormattingEnabled = true; - this.CB_Surf3.Items.AddRange(new object[] { + this.CB_Super3.Location = new System.Drawing.Point(642, 83); + this.CB_Super3.Name = "CB_Super3"; + this.CB_Super3.Size = new System.Drawing.Size(121, 21); + this.CB_Super3.TabIndex = 336; + // + // NUP_SurfMax5 + // + this.NUP_SurfMax5.Location = new System.Drawing.Point(561, 283); + this.NUP_SurfMax5.Name = "NUP_SurfMax5"; + this.NUP_SurfMax5.Size = new System.Drawing.Size(41, 20); + this.NUP_SurfMax5.TabIndex = 284; + // + // NUP_SuperForme3 + // + this.NUP_SuperForme3.Location = new System.Drawing.Point(769, 84); + this.NUP_SuperForme3.Name = "NUP_SuperForme3"; + this.NUP_SuperForme3.Size = new System.Drawing.Size(41, 20); + this.NUP_SuperForme3.TabIndex = 337; + // + // NUP_SurfMax2 + // + this.NUP_SurfMax2.Location = new System.Drawing.Point(561, 202); + this.NUP_SurfMax2.Name = "NUP_SurfMax2"; + this.NUP_SurfMax2.Size = new System.Drawing.Size(41, 20); + this.NUP_SurfMax2.TabIndex = 272; + // + // NUP_SuperMin3 + // + this.NUP_SuperMin3.Location = new System.Drawing.Point(816, 84); + this.NUP_SuperMin3.Name = "NUP_SuperMin3"; + this.NUP_SuperMin3.Size = new System.Drawing.Size(41, 20); + this.NUP_SuperMin3.TabIndex = 338; + // + // NUP_SurfMin5 + // + this.NUP_SurfMin5.Location = new System.Drawing.Point(514, 283); + this.NUP_SurfMin5.Name = "NUP_SurfMin5"; + this.NUP_SurfMin5.Size = new System.Drawing.Size(41, 20); + this.NUP_SurfMin5.TabIndex = 283; + // + // NUP_SuperMax3 + // + this.NUP_SuperMax3.Location = new System.Drawing.Point(863, 84); + this.NUP_SuperMax3.Name = "NUP_SuperMax3"; + this.NUP_SuperMax3.Size = new System.Drawing.Size(41, 20); + this.NUP_SuperMax3.TabIndex = 339; + // + // CB_Surf3 + // + this.CB_Surf3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Surf3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Surf3.FormattingEnabled = true; + this.CB_Surf3.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -9774,58 +9774,58 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_Surf3.Location = new System.Drawing.Point(340, 228); - this.CB_Surf3.Name = "CB_Surf3"; - this.CB_Surf3.Size = new System.Drawing.Size(121, 21); - this.CB_Surf3.TabIndex = 273; - // - // label49 - // - this.label49.AutoSize = true; - this.label49.Location = new System.Drawing.Point(615, 86); - this.label49.Name = "label49"; - this.label49.Size = new System.Drawing.Size(21, 13); - this.label49.TabIndex = 346; - this.label49.Text = "5%"; - // - // NUP_SurfForme5 - // - this.NUP_SurfForme5.Location = new System.Drawing.Point(467, 283); - this.NUP_SurfForme5.Name = "NUP_SurfForme5"; - this.NUP_SurfForme5.Size = new System.Drawing.Size(41, 20); - this.NUP_SurfForme5.TabIndex = 282; - // - // label98 - // - this.label98.AutoSize = true; - this.label98.Location = new System.Drawing.Point(609, 59); - this.label98.Name = "label98"; - this.label98.Size = new System.Drawing.Size(27, 13); - this.label98.TabIndex = 345; - this.label98.Text = "35%"; - // - // NUP_SurfForme3 - // - this.NUP_SurfForme3.Location = new System.Drawing.Point(467, 229); - this.NUP_SurfForme3.Name = "NUP_SurfForme3"; - this.NUP_SurfForme3.Size = new System.Drawing.Size(41, 20); - this.NUP_SurfForme3.TabIndex = 274; - // - // label99 - // - this.label99.AutoSize = true; - this.label99.Location = new System.Drawing.Point(609, 32); - this.label99.Name = "label99"; - this.label99.Size = new System.Drawing.Size(27, 13); - this.label99.TabIndex = 344; - this.label99.Text = "60%"; - // - // CB_Surf5 - // - this.CB_Surf5.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Surf5.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Surf5.FormattingEnabled = true; - this.CB_Surf5.Items.AddRange(new object[] { + this.CB_Surf3.Location = new System.Drawing.Point(340, 228); + this.CB_Surf3.Name = "CB_Surf3"; + this.CB_Surf3.Size = new System.Drawing.Size(121, 21); + this.CB_Surf3.TabIndex = 273; + // + // label49 + // + this.label49.AutoSize = true; + this.label49.Location = new System.Drawing.Point(615, 86); + this.label49.Name = "label49"; + this.label49.Size = new System.Drawing.Size(21, 13); + this.label49.TabIndex = 346; + this.label49.Text = "5%"; + // + // NUP_SurfForme5 + // + this.NUP_SurfForme5.Location = new System.Drawing.Point(467, 283); + this.NUP_SurfForme5.Name = "NUP_SurfForme5"; + this.NUP_SurfForme5.Size = new System.Drawing.Size(41, 20); + this.NUP_SurfForme5.TabIndex = 282; + // + // label98 + // + this.label98.AutoSize = true; + this.label98.Location = new System.Drawing.Point(609, 59); + this.label98.Name = "label98"; + this.label98.Size = new System.Drawing.Size(27, 13); + this.label98.TabIndex = 345; + this.label98.Text = "35%"; + // + // NUP_SurfForme3 + // + this.NUP_SurfForme3.Location = new System.Drawing.Point(467, 229); + this.NUP_SurfForme3.Name = "NUP_SurfForme3"; + this.NUP_SurfForme3.Size = new System.Drawing.Size(41, 20); + this.NUP_SurfForme3.TabIndex = 274; + // + // label99 + // + this.label99.AutoSize = true; + this.label99.Location = new System.Drawing.Point(609, 32); + this.label99.Name = "label99"; + this.label99.Size = new System.Drawing.Size(27, 13); + this.label99.TabIndex = 344; + this.label99.Text = "60%"; + // + // CB_Surf5 + // + this.CB_Surf5.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Surf5.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Surf5.FormattingEnabled = true; + this.CB_Surf5.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -10476,81 +10476,81 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_Surf5.Location = new System.Drawing.Point(340, 282); - this.CB_Surf5.Name = "CB_Surf5"; - this.CB_Surf5.Size = new System.Drawing.Size(121, 21); - this.CB_Surf5.TabIndex = 281; - // - // label100 - // - this.label100.AutoSize = true; - this.label100.Location = new System.Drawing.Point(766, 14); - this.label100.Name = "label100"; - this.label100.Size = new System.Drawing.Size(36, 13); - this.label100.TabIndex = 341; - this.label100.Text = "Forme"; - // - // NUP_SurfMin3 - // - this.NUP_SurfMin3.Location = new System.Drawing.Point(514, 229); - this.NUP_SurfMin3.Name = "NUP_SurfMin3"; - this.NUP_SurfMin3.Size = new System.Drawing.Size(41, 20); - this.NUP_SurfMin3.TabIndex = 275; - // - // label101 - // - this.label101.AutoSize = true; - this.label101.Location = new System.Drawing.Point(813, 14); - this.label101.Name = "label101"; - this.label101.Size = new System.Drawing.Size(24, 13); - this.label101.TabIndex = 342; - this.label101.Text = "Min"; - // - // NUP_SurfMax4 - // - this.NUP_SurfMax4.Location = new System.Drawing.Point(561, 256); - this.NUP_SurfMax4.Name = "NUP_SurfMax4"; - this.NUP_SurfMax4.Size = new System.Drawing.Size(41, 20); - this.NUP_SurfMax4.TabIndex = 280; - // - // label102 - // - this.label102.AutoSize = true; - this.label102.Location = new System.Drawing.Point(860, 14); - this.label102.Name = "label102"; - this.label102.Size = new System.Drawing.Size(27, 13); - this.label102.TabIndex = 343; - this.label102.Text = "Max"; - // - // NUP_SurfMax3 - // - this.NUP_SurfMax3.Location = new System.Drawing.Point(561, 229); - this.NUP_SurfMax3.Name = "NUP_SurfMax3"; - this.NUP_SurfMax3.Size = new System.Drawing.Size(41, 20); - this.NUP_SurfMax3.TabIndex = 276; - // - // label26 - // - this.label26.AutoSize = true; - this.label26.Location = new System.Drawing.Point(340, 13); - this.label26.Name = "label26"; - this.label26.Size = new System.Drawing.Size(56, 13); - this.label26.TabIndex = 321; - this.label26.Text = "Good Rod"; - // - // NUP_SurfMin4 - // - this.NUP_SurfMin4.Location = new System.Drawing.Point(514, 256); - this.NUP_SurfMin4.Name = "NUP_SurfMin4"; - this.NUP_SurfMin4.Size = new System.Drawing.Size(41, 20); - this.NUP_SurfMin4.TabIndex = 279; - // - // CB_Good1 - // - this.CB_Good1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Good1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Good1.FormattingEnabled = true; - this.CB_Good1.Items.AddRange(new object[] { + this.CB_Surf5.Location = new System.Drawing.Point(340, 282); + this.CB_Surf5.Name = "CB_Surf5"; + this.CB_Surf5.Size = new System.Drawing.Size(121, 21); + this.CB_Surf5.TabIndex = 281; + // + // label100 + // + this.label100.AutoSize = true; + this.label100.Location = new System.Drawing.Point(766, 14); + this.label100.Name = "label100"; + this.label100.Size = new System.Drawing.Size(36, 13); + this.label100.TabIndex = 341; + this.label100.Text = "Forme"; + // + // NUP_SurfMin3 + // + this.NUP_SurfMin3.Location = new System.Drawing.Point(514, 229); + this.NUP_SurfMin3.Name = "NUP_SurfMin3"; + this.NUP_SurfMin3.Size = new System.Drawing.Size(41, 20); + this.NUP_SurfMin3.TabIndex = 275; + // + // label101 + // + this.label101.AutoSize = true; + this.label101.Location = new System.Drawing.Point(813, 14); + this.label101.Name = "label101"; + this.label101.Size = new System.Drawing.Size(24, 13); + this.label101.TabIndex = 342; + this.label101.Text = "Min"; + // + // NUP_SurfMax4 + // + this.NUP_SurfMax4.Location = new System.Drawing.Point(561, 256); + this.NUP_SurfMax4.Name = "NUP_SurfMax4"; + this.NUP_SurfMax4.Size = new System.Drawing.Size(41, 20); + this.NUP_SurfMax4.TabIndex = 280; + // + // label102 + // + this.label102.AutoSize = true; + this.label102.Location = new System.Drawing.Point(860, 14); + this.label102.Name = "label102"; + this.label102.Size = new System.Drawing.Size(27, 13); + this.label102.TabIndex = 343; + this.label102.Text = "Max"; + // + // NUP_SurfMax3 + // + this.NUP_SurfMax3.Location = new System.Drawing.Point(561, 229); + this.NUP_SurfMax3.Name = "NUP_SurfMax3"; + this.NUP_SurfMax3.Size = new System.Drawing.Size(41, 20); + this.NUP_SurfMax3.TabIndex = 276; + // + // label26 + // + this.label26.AutoSize = true; + this.label26.Location = new System.Drawing.Point(340, 13); + this.label26.Name = "label26"; + this.label26.Size = new System.Drawing.Size(56, 13); + this.label26.TabIndex = 321; + this.label26.Text = "Good Rod"; + // + // NUP_SurfMin4 + // + this.NUP_SurfMin4.Location = new System.Drawing.Point(514, 256); + this.NUP_SurfMin4.Name = "NUP_SurfMin4"; + this.NUP_SurfMin4.Size = new System.Drawing.Size(41, 20); + this.NUP_SurfMin4.TabIndex = 279; + // + // CB_Good1 + // + this.CB_Good1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Good1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Good1.FormattingEnabled = true; + this.CB_Good1.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -11201,17 +11201,17 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_Good1.Location = new System.Drawing.Point(343, 29); - this.CB_Good1.Name = "CB_Good1"; - this.CB_Good1.Size = new System.Drawing.Size(121, 21); - this.CB_Good1.TabIndex = 309; - // - // CB_Surf4 - // - this.CB_Surf4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Surf4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Surf4.FormattingEnabled = true; - this.CB_Surf4.Items.AddRange(new object[] { + this.CB_Good1.Location = new System.Drawing.Point(343, 29); + this.CB_Good1.Name = "CB_Good1"; + this.CB_Good1.Size = new System.Drawing.Size(121, 21); + this.CB_Good1.TabIndex = 309; + // + // CB_Surf4 + // + this.CB_Surf4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Surf4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Surf4.FormattingEnabled = true; + this.CB_Surf4.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -11862,45 +11862,45 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_Surf4.Location = new System.Drawing.Point(340, 255); - this.CB_Surf4.Name = "CB_Surf4"; - this.CB_Surf4.Size = new System.Drawing.Size(121, 21); - this.CB_Surf4.TabIndex = 277; - // - // NUP_GoodForme1 - // - this.NUP_GoodForme1.Location = new System.Drawing.Point(470, 30); - this.NUP_GoodForme1.Name = "NUP_GoodForme1"; - this.NUP_GoodForme1.Size = new System.Drawing.Size(41, 20); - this.NUP_GoodForme1.TabIndex = 310; - // - // NUP_SurfForme4 - // - this.NUP_SurfForme4.Location = new System.Drawing.Point(467, 256); - this.NUP_SurfForme4.Name = "NUP_SurfForme4"; - this.NUP_SurfForme4.Size = new System.Drawing.Size(41, 20); - this.NUP_SurfForme4.TabIndex = 278; - // - // NUP_GoodMin1 - // - this.NUP_GoodMin1.Location = new System.Drawing.Point(517, 30); - this.NUP_GoodMin1.Name = "NUP_GoodMin1"; - this.NUP_GoodMin1.Size = new System.Drawing.Size(41, 20); - this.NUP_GoodMin1.TabIndex = 311; - // - // NUP_GoodMax1 - // - this.NUP_GoodMax1.Location = new System.Drawing.Point(564, 30); - this.NUP_GoodMax1.Name = "NUP_GoodMax1"; - this.NUP_GoodMax1.Size = new System.Drawing.Size(41, 20); - this.NUP_GoodMax1.TabIndex = 312; - // - // CB_Good2 - // - this.CB_Good2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Good2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Good2.FormattingEnabled = true; - this.CB_Good2.Items.AddRange(new object[] { + this.CB_Surf4.Location = new System.Drawing.Point(340, 255); + this.CB_Surf4.Name = "CB_Surf4"; + this.CB_Surf4.Size = new System.Drawing.Size(121, 21); + this.CB_Surf4.TabIndex = 277; + // + // NUP_GoodForme1 + // + this.NUP_GoodForme1.Location = new System.Drawing.Point(470, 30); + this.NUP_GoodForme1.Name = "NUP_GoodForme1"; + this.NUP_GoodForme1.Size = new System.Drawing.Size(41, 20); + this.NUP_GoodForme1.TabIndex = 310; + // + // NUP_SurfForme4 + // + this.NUP_SurfForme4.Location = new System.Drawing.Point(467, 256); + this.NUP_SurfForme4.Name = "NUP_SurfForme4"; + this.NUP_SurfForme4.Size = new System.Drawing.Size(41, 20); + this.NUP_SurfForme4.TabIndex = 278; + // + // NUP_GoodMin1 + // + this.NUP_GoodMin1.Location = new System.Drawing.Point(517, 30); + this.NUP_GoodMin1.Name = "NUP_GoodMin1"; + this.NUP_GoodMin1.Size = new System.Drawing.Size(41, 20); + this.NUP_GoodMin1.TabIndex = 311; + // + // NUP_GoodMax1 + // + this.NUP_GoodMax1.Location = new System.Drawing.Point(564, 30); + this.NUP_GoodMax1.Name = "NUP_GoodMax1"; + this.NUP_GoodMax1.Size = new System.Drawing.Size(41, 20); + this.NUP_GoodMax1.TabIndex = 312; + // + // CB_Good2 + // + this.CB_Good2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Good2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Good2.FormattingEnabled = true; + this.CB_Good2.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -12551,38 +12551,38 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_Good2.Location = new System.Drawing.Point(343, 56); - this.CB_Good2.Name = "CB_Good2"; - this.CB_Good2.Size = new System.Drawing.Size(121, 21); - this.CB_Good2.TabIndex = 313; - // - // NUP_GoodForme2 - // - this.NUP_GoodForme2.Location = new System.Drawing.Point(470, 57); - this.NUP_GoodForme2.Name = "NUP_GoodForme2"; - this.NUP_GoodForme2.Size = new System.Drawing.Size(41, 20); - this.NUP_GoodForme2.TabIndex = 314; - // - // NUP_GoodMin2 - // - this.NUP_GoodMin2.Location = new System.Drawing.Point(517, 57); - this.NUP_GoodMin2.Name = "NUP_GoodMin2"; - this.NUP_GoodMin2.Size = new System.Drawing.Size(41, 20); - this.NUP_GoodMin2.TabIndex = 315; - // - // NUP_GoodMax2 - // - this.NUP_GoodMax2.Location = new System.Drawing.Point(564, 57); - this.NUP_GoodMax2.Name = "NUP_GoodMax2"; - this.NUP_GoodMax2.Size = new System.Drawing.Size(41, 20); - this.NUP_GoodMax2.TabIndex = 316; - // - // CB_Good3 - // - this.CB_Good3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Good3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Good3.FormattingEnabled = true; - this.CB_Good3.Items.AddRange(new object[] { + this.CB_Good2.Location = new System.Drawing.Point(343, 56); + this.CB_Good2.Name = "CB_Good2"; + this.CB_Good2.Size = new System.Drawing.Size(121, 21); + this.CB_Good2.TabIndex = 313; + // + // NUP_GoodForme2 + // + this.NUP_GoodForme2.Location = new System.Drawing.Point(470, 57); + this.NUP_GoodForme2.Name = "NUP_GoodForme2"; + this.NUP_GoodForme2.Size = new System.Drawing.Size(41, 20); + this.NUP_GoodForme2.TabIndex = 314; + // + // NUP_GoodMin2 + // + this.NUP_GoodMin2.Location = new System.Drawing.Point(517, 57); + this.NUP_GoodMin2.Name = "NUP_GoodMin2"; + this.NUP_GoodMin2.Size = new System.Drawing.Size(41, 20); + this.NUP_GoodMin2.TabIndex = 315; + // + // NUP_GoodMax2 + // + this.NUP_GoodMax2.Location = new System.Drawing.Point(564, 57); + this.NUP_GoodMax2.Name = "NUP_GoodMax2"; + this.NUP_GoodMax2.Size = new System.Drawing.Size(41, 20); + this.NUP_GoodMax2.TabIndex = 316; + // + // CB_Good3 + // + this.CB_Good3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Good3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Good3.FormattingEnabled = true; + this.CB_Good3.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -13233,101 +13233,101 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_Good3.Location = new System.Drawing.Point(343, 83); - this.CB_Good3.Name = "CB_Good3"; - this.CB_Good3.Size = new System.Drawing.Size(121, 21); - this.CB_Good3.TabIndex = 317; - // - // NUP_GoodForme3 - // - this.NUP_GoodForme3.Location = new System.Drawing.Point(470, 84); - this.NUP_GoodForme3.Name = "NUP_GoodForme3"; - this.NUP_GoodForme3.Size = new System.Drawing.Size(41, 20); - this.NUP_GoodForme3.TabIndex = 318; - // - // NUP_GoodMin3 - // - this.NUP_GoodMin3.Location = new System.Drawing.Point(517, 84); - this.NUP_GoodMin3.Name = "NUP_GoodMin3"; - this.NUP_GoodMin3.Size = new System.Drawing.Size(41, 20); - this.NUP_GoodMin3.TabIndex = 319; - // - // NUP_GoodMax3 - // - this.NUP_GoodMax3.Location = new System.Drawing.Point(564, 84); - this.NUP_GoodMax3.Name = "NUP_GoodMax3"; - this.NUP_GoodMax3.Size = new System.Drawing.Size(41, 20); - this.NUP_GoodMax3.TabIndex = 320; - // - // label27 - // - this.label27.AutoSize = true; - this.label27.Location = new System.Drawing.Point(316, 86); - this.label27.Name = "label27"; - this.label27.Size = new System.Drawing.Size(21, 13); - this.label27.TabIndex = 327; - this.label27.Text = "5%"; - // - // label28 - // - this.label28.AutoSize = true; - this.label28.Location = new System.Drawing.Point(310, 59); - this.label28.Name = "label28"; - this.label28.Size = new System.Drawing.Size(27, 13); - this.label28.TabIndex = 326; - this.label28.Text = "35%"; - // - // label29 - // - this.label29.AutoSize = true; - this.label29.Location = new System.Drawing.Point(310, 32); - this.label29.Name = "label29"; - this.label29.Size = new System.Drawing.Size(27, 13); - this.label29.TabIndex = 325; - this.label29.Text = "60%"; - // - // label30 - // - this.label30.AutoSize = true; - this.label30.Location = new System.Drawing.Point(467, 14); - this.label30.Name = "label30"; - this.label30.Size = new System.Drawing.Size(36, 13); - this.label30.TabIndex = 322; - this.label30.Text = "Forme"; - // - // label46 - // - this.label46.AutoSize = true; - this.label46.Location = new System.Drawing.Point(514, 14); - this.label46.Name = "label46"; - this.label46.Size = new System.Drawing.Size(24, 13); - this.label46.TabIndex = 323; - this.label46.Text = "Min"; - // - // label47 - // - this.label47.AutoSize = true; - this.label47.Location = new System.Drawing.Point(561, 14); - this.label47.Name = "label47"; - this.label47.Size = new System.Drawing.Size(27, 13); - this.label47.TabIndex = 324; - this.label47.Text = "Max"; - // - // label22 - // - this.label22.AutoSize = true; - this.label22.Location = new System.Drawing.Point(39, 13); - this.label22.Name = "label22"; - this.label22.Size = new System.Drawing.Size(46, 13); - this.label22.TabIndex = 302; - this.label22.Text = "Old Rod"; - // - // CB_Old1 - // - this.CB_Old1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Old1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Old1.FormattingEnabled = true; - this.CB_Old1.Items.AddRange(new object[] { + this.CB_Good3.Location = new System.Drawing.Point(343, 83); + this.CB_Good3.Name = "CB_Good3"; + this.CB_Good3.Size = new System.Drawing.Size(121, 21); + this.CB_Good3.TabIndex = 317; + // + // NUP_GoodForme3 + // + this.NUP_GoodForme3.Location = new System.Drawing.Point(470, 84); + this.NUP_GoodForme3.Name = "NUP_GoodForme3"; + this.NUP_GoodForme3.Size = new System.Drawing.Size(41, 20); + this.NUP_GoodForme3.TabIndex = 318; + // + // NUP_GoodMin3 + // + this.NUP_GoodMin3.Location = new System.Drawing.Point(517, 84); + this.NUP_GoodMin3.Name = "NUP_GoodMin3"; + this.NUP_GoodMin3.Size = new System.Drawing.Size(41, 20); + this.NUP_GoodMin3.TabIndex = 319; + // + // NUP_GoodMax3 + // + this.NUP_GoodMax3.Location = new System.Drawing.Point(564, 84); + this.NUP_GoodMax3.Name = "NUP_GoodMax3"; + this.NUP_GoodMax3.Size = new System.Drawing.Size(41, 20); + this.NUP_GoodMax3.TabIndex = 320; + // + // label27 + // + this.label27.AutoSize = true; + this.label27.Location = new System.Drawing.Point(316, 86); + this.label27.Name = "label27"; + this.label27.Size = new System.Drawing.Size(21, 13); + this.label27.TabIndex = 327; + this.label27.Text = "5%"; + // + // label28 + // + this.label28.AutoSize = true; + this.label28.Location = new System.Drawing.Point(310, 59); + this.label28.Name = "label28"; + this.label28.Size = new System.Drawing.Size(27, 13); + this.label28.TabIndex = 326; + this.label28.Text = "35%"; + // + // label29 + // + this.label29.AutoSize = true; + this.label29.Location = new System.Drawing.Point(310, 32); + this.label29.Name = "label29"; + this.label29.Size = new System.Drawing.Size(27, 13); + this.label29.TabIndex = 325; + this.label29.Text = "60%"; + // + // label30 + // + this.label30.AutoSize = true; + this.label30.Location = new System.Drawing.Point(467, 14); + this.label30.Name = "label30"; + this.label30.Size = new System.Drawing.Size(36, 13); + this.label30.TabIndex = 322; + this.label30.Text = "Forme"; + // + // label46 + // + this.label46.AutoSize = true; + this.label46.Location = new System.Drawing.Point(514, 14); + this.label46.Name = "label46"; + this.label46.Size = new System.Drawing.Size(24, 13); + this.label46.TabIndex = 323; + this.label46.Text = "Min"; + // + // label47 + // + this.label47.AutoSize = true; + this.label47.Location = new System.Drawing.Point(561, 14); + this.label47.Name = "label47"; + this.label47.Size = new System.Drawing.Size(27, 13); + this.label47.TabIndex = 324; + this.label47.Text = "Max"; + // + // label22 + // + this.label22.AutoSize = true; + this.label22.Location = new System.Drawing.Point(39, 13); + this.label22.Name = "label22"; + this.label22.Size = new System.Drawing.Size(46, 13); + this.label22.TabIndex = 302; + this.label22.Text = "Old Rod"; + // + // CB_Old1 + // + this.CB_Old1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Old1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Old1.FormattingEnabled = true; + this.CB_Old1.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -13978,38 +13978,38 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_Old1.Location = new System.Drawing.Point(42, 29); - this.CB_Old1.Name = "CB_Old1"; - this.CB_Old1.Size = new System.Drawing.Size(121, 21); - this.CB_Old1.TabIndex = 290; - // - // NUP_OldForme1 - // - this.NUP_OldForme1.Location = new System.Drawing.Point(169, 30); - this.NUP_OldForme1.Name = "NUP_OldForme1"; - this.NUP_OldForme1.Size = new System.Drawing.Size(41, 20); - this.NUP_OldForme1.TabIndex = 291; - // - // NUP_OldMin1 - // - this.NUP_OldMin1.Location = new System.Drawing.Point(216, 30); - this.NUP_OldMin1.Name = "NUP_OldMin1"; - this.NUP_OldMin1.Size = new System.Drawing.Size(41, 20); - this.NUP_OldMin1.TabIndex = 292; - // - // NUP_OldMax1 - // - this.NUP_OldMax1.Location = new System.Drawing.Point(263, 30); - this.NUP_OldMax1.Name = "NUP_OldMax1"; - this.NUP_OldMax1.Size = new System.Drawing.Size(41, 20); - this.NUP_OldMax1.TabIndex = 293; - // - // CB_Old2 - // - this.CB_Old2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Old2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Old2.FormattingEnabled = true; - this.CB_Old2.Items.AddRange(new object[] { + this.CB_Old1.Location = new System.Drawing.Point(42, 29); + this.CB_Old1.Name = "CB_Old1"; + this.CB_Old1.Size = new System.Drawing.Size(121, 21); + this.CB_Old1.TabIndex = 290; + // + // NUP_OldForme1 + // + this.NUP_OldForme1.Location = new System.Drawing.Point(169, 30); + this.NUP_OldForme1.Name = "NUP_OldForme1"; + this.NUP_OldForme1.Size = new System.Drawing.Size(41, 20); + this.NUP_OldForme1.TabIndex = 291; + // + // NUP_OldMin1 + // + this.NUP_OldMin1.Location = new System.Drawing.Point(216, 30); + this.NUP_OldMin1.Name = "NUP_OldMin1"; + this.NUP_OldMin1.Size = new System.Drawing.Size(41, 20); + this.NUP_OldMin1.TabIndex = 292; + // + // NUP_OldMax1 + // + this.NUP_OldMax1.Location = new System.Drawing.Point(263, 30); + this.NUP_OldMax1.Name = "NUP_OldMax1"; + this.NUP_OldMax1.Size = new System.Drawing.Size(41, 20); + this.NUP_OldMax1.TabIndex = 293; + // + // CB_Old2 + // + this.CB_Old2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Old2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Old2.FormattingEnabled = true; + this.CB_Old2.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -14660,38 +14660,38 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_Old2.Location = new System.Drawing.Point(42, 56); - this.CB_Old2.Name = "CB_Old2"; - this.CB_Old2.Size = new System.Drawing.Size(121, 21); - this.CB_Old2.TabIndex = 294; - // - // NUP_OldForme2 - // - this.NUP_OldForme2.Location = new System.Drawing.Point(169, 57); - this.NUP_OldForme2.Name = "NUP_OldForme2"; - this.NUP_OldForme2.Size = new System.Drawing.Size(41, 20); - this.NUP_OldForme2.TabIndex = 295; - // - // NUP_OldMin2 - // - this.NUP_OldMin2.Location = new System.Drawing.Point(216, 57); - this.NUP_OldMin2.Name = "NUP_OldMin2"; - this.NUP_OldMin2.Size = new System.Drawing.Size(41, 20); - this.NUP_OldMin2.TabIndex = 296; - // - // NUP_OldMax2 - // - this.NUP_OldMax2.Location = new System.Drawing.Point(263, 57); - this.NUP_OldMax2.Name = "NUP_OldMax2"; - this.NUP_OldMax2.Size = new System.Drawing.Size(41, 20); - this.NUP_OldMax2.TabIndex = 297; - // - // CB_Old3 - // - this.CB_Old3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Old3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Old3.FormattingEnabled = true; - this.CB_Old3.Items.AddRange(new object[] { + this.CB_Old2.Location = new System.Drawing.Point(42, 56); + this.CB_Old2.Name = "CB_Old2"; + this.CB_Old2.Size = new System.Drawing.Size(121, 21); + this.CB_Old2.TabIndex = 294; + // + // NUP_OldForme2 + // + this.NUP_OldForme2.Location = new System.Drawing.Point(169, 57); + this.NUP_OldForme2.Name = "NUP_OldForme2"; + this.NUP_OldForme2.Size = new System.Drawing.Size(41, 20); + this.NUP_OldForme2.TabIndex = 295; + // + // NUP_OldMin2 + // + this.NUP_OldMin2.Location = new System.Drawing.Point(216, 57); + this.NUP_OldMin2.Name = "NUP_OldMin2"; + this.NUP_OldMin2.Size = new System.Drawing.Size(41, 20); + this.NUP_OldMin2.TabIndex = 296; + // + // NUP_OldMax2 + // + this.NUP_OldMax2.Location = new System.Drawing.Point(263, 57); + this.NUP_OldMax2.Name = "NUP_OldMax2"; + this.NUP_OldMax2.Size = new System.Drawing.Size(41, 20); + this.NUP_OldMax2.TabIndex = 297; + // + // CB_Old3 + // + this.CB_Old3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Old3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Old3.FormattingEnabled = true; + this.CB_Old3.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -15342,429 +15342,439 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_Old3.Location = new System.Drawing.Point(42, 83); - this.CB_Old3.Name = "CB_Old3"; - this.CB_Old3.Size = new System.Drawing.Size(121, 21); - this.CB_Old3.TabIndex = 298; - // - // NUP_OldForme3 - // - this.NUP_OldForme3.Location = new System.Drawing.Point(169, 84); - this.NUP_OldForme3.Name = "NUP_OldForme3"; - this.NUP_OldForme3.Size = new System.Drawing.Size(41, 20); - this.NUP_OldForme3.TabIndex = 299; - // - // NUP_OldMin3 - // - this.NUP_OldMin3.Location = new System.Drawing.Point(216, 84); - this.NUP_OldMin3.Name = "NUP_OldMin3"; - this.NUP_OldMin3.Size = new System.Drawing.Size(41, 20); - this.NUP_OldMin3.TabIndex = 300; - // - // NUP_OldMax3 - // - this.NUP_OldMax3.Location = new System.Drawing.Point(263, 84); - this.NUP_OldMax3.Name = "NUP_OldMax3"; - this.NUP_OldMax3.Size = new System.Drawing.Size(41, 20); - this.NUP_OldMax3.TabIndex = 301; - // - // label45 - // - this.label45.AutoSize = true; - this.label45.Location = new System.Drawing.Point(15, 86); - this.label45.Name = "label45"; - this.label45.Size = new System.Drawing.Size(21, 13); - this.label45.TabIndex = 308; - this.label45.Text = "5%"; - // - // label44 - // - this.label44.AutoSize = true; - this.label44.Location = new System.Drawing.Point(9, 59); - this.label44.Name = "label44"; - this.label44.Size = new System.Drawing.Size(27, 13); - this.label44.TabIndex = 307; - this.label44.Text = "35%"; - // - // label43 - // - this.label43.AutoSize = true; - this.label43.Location = new System.Drawing.Point(9, 32); - this.label43.Name = "label43"; - this.label43.Size = new System.Drawing.Size(27, 13); - this.label43.TabIndex = 306; - this.label43.Text = "60%"; - // - // label23 - // - this.label23.AutoSize = true; - this.label23.Location = new System.Drawing.Point(166, 14); - this.label23.Name = "label23"; - this.label23.Size = new System.Drawing.Size(36, 13); - this.label23.TabIndex = 303; - this.label23.Text = "Forme"; - // - // label24 - // - this.label24.AutoSize = true; - this.label24.Location = new System.Drawing.Point(213, 14); - this.label24.Name = "label24"; - this.label24.Size = new System.Drawing.Size(24, 13); - this.label24.TabIndex = 304; - this.label24.Text = "Min"; - // - // label25 - // - this.label25.AutoSize = true; - this.label25.Location = new System.Drawing.Point(260, 14); - this.label25.Name = "label25"; - this.label25.Size = new System.Drawing.Size(27, 13); - this.label25.TabIndex = 305; - this.label25.Text = "Max"; - // - // TabPage_Horde - // - this.TabPage_Horde.Controls.Add(this.GB_Tweak); - this.TabPage_Horde.Controls.Add(this.label129); - this.TabPage_Horde.Controls.Add(this.label130); - this.TabPage_Horde.Controls.Add(this.label131); - this.TabPage_Horde.Controls.Add(this.label132); - this.TabPage_Horde.Controls.Add(this.NUP_HordeCMax5); - this.TabPage_Horde.Controls.Add(this.NUP_HordeCMin5); - this.TabPage_Horde.Controls.Add(this.NUP_HordeCForme5); - this.TabPage_Horde.Controls.Add(this.CB_HordeC5); - this.TabPage_Horde.Controls.Add(this.NUP_HordeCMax4); - this.TabPage_Horde.Controls.Add(this.NUP_HordeCMin4); - this.TabPage_Horde.Controls.Add(this.NUP_HordeCForme4); - this.TabPage_Horde.Controls.Add(this.CB_HordeC4); - this.TabPage_Horde.Controls.Add(this.NUP_HordeCMax3); - this.TabPage_Horde.Controls.Add(this.NUP_HordeCMin3); - this.TabPage_Horde.Controls.Add(this.NUP_HordeCForme3); - this.TabPage_Horde.Controls.Add(this.CB_HordeC3); - this.TabPage_Horde.Controls.Add(this.NUP_HordeCMax2); - this.TabPage_Horde.Controls.Add(this.NUP_HordeCMin2); - this.TabPage_Horde.Controls.Add(this.NUP_HordeCForme2); - this.TabPage_Horde.Controls.Add(this.CB_HordeC2); - this.TabPage_Horde.Controls.Add(this.NUP_HordeCMax1); - this.TabPage_Horde.Controls.Add(this.NUP_HordeCMin1); - this.TabPage_Horde.Controls.Add(this.NUP_HordeCForme1); - this.TabPage_Horde.Controls.Add(this.CB_HordeC1); - this.TabPage_Horde.Controls.Add(this.label125); - this.TabPage_Horde.Controls.Add(this.label121); - this.TabPage_Horde.Controls.Add(this.label126); - this.TabPage_Horde.Controls.Add(this.label124); - this.TabPage_Horde.Controls.Add(this.label127); - this.TabPage_Horde.Controls.Add(this.label122); - this.TabPage_Horde.Controls.Add(this.label128); - this.TabPage_Horde.Controls.Add(this.NUP_HordeBMax5); - this.TabPage_Horde.Controls.Add(this.CB_HordeA1); - this.TabPage_Horde.Controls.Add(this.NUP_HordeBMin5); - this.TabPage_Horde.Controls.Add(this.label123); - this.TabPage_Horde.Controls.Add(this.NUP_HordeBForme5); - this.TabPage_Horde.Controls.Add(this.NUP_HordeAForme1); - this.TabPage_Horde.Controls.Add(this.CB_HordeB5); - this.TabPage_Horde.Controls.Add(this.NUP_HordeAMin1); - this.TabPage_Horde.Controls.Add(this.NUP_HordeBMax4); - this.TabPage_Horde.Controls.Add(this.NUP_HordeAMax5); - this.TabPage_Horde.Controls.Add(this.NUP_HordeBMin4); - this.TabPage_Horde.Controls.Add(this.NUP_HordeAMax1); - this.TabPage_Horde.Controls.Add(this.NUP_HordeBForme4); - this.TabPage_Horde.Controls.Add(this.NUP_HordeAMin5); - this.TabPage_Horde.Controls.Add(this.CB_HordeB4); - this.TabPage_Horde.Controls.Add(this.CB_HordeA2); - this.TabPage_Horde.Controls.Add(this.NUP_HordeBMax3); - this.TabPage_Horde.Controls.Add(this.NUP_HordeAForme5); - this.TabPage_Horde.Controls.Add(this.NUP_HordeBMin3); - this.TabPage_Horde.Controls.Add(this.NUP_HordeAForme2); - this.TabPage_Horde.Controls.Add(this.NUP_HordeBForme3); - this.TabPage_Horde.Controls.Add(this.CB_HordeA5); - this.TabPage_Horde.Controls.Add(this.CB_HordeB3); - this.TabPage_Horde.Controls.Add(this.NUP_HordeAMin2); - this.TabPage_Horde.Controls.Add(this.NUP_HordeBMax2); - this.TabPage_Horde.Controls.Add(this.NUP_HordeAMax4); - this.TabPage_Horde.Controls.Add(this.NUP_HordeBMin2); - this.TabPage_Horde.Controls.Add(this.NUP_HordeAMax2); - this.TabPage_Horde.Controls.Add(this.NUP_HordeBForme2); - this.TabPage_Horde.Controls.Add(this.NUP_HordeAMin4); - this.TabPage_Horde.Controls.Add(this.CB_HordeB2); - this.TabPage_Horde.Controls.Add(this.CB_HordeA3); - this.TabPage_Horde.Controls.Add(this.NUP_HordeBMax1); - this.TabPage_Horde.Controls.Add(this.NUP_HordeAForme4); - this.TabPage_Horde.Controls.Add(this.NUP_HordeBMin1); - this.TabPage_Horde.Controls.Add(this.NUP_HordeAForme3); - this.TabPage_Horde.Controls.Add(this.NUP_HordeBForme1); - this.TabPage_Horde.Controls.Add(this.CB_HordeA4); - this.TabPage_Horde.Controls.Add(this.CB_HordeB1); - this.TabPage_Horde.Controls.Add(this.NUP_HordeAMin3); - this.TabPage_Horde.Controls.Add(this.NUP_HordeAMax3); - this.TabPage_Horde.Location = new System.Drawing.Point(4, 22); - this.TabPage_Horde.Name = "TabPage_Horde"; - this.TabPage_Horde.Padding = new System.Windows.Forms.Padding(3); - this.TabPage_Horde.Size = new System.Drawing.Size(918, 369); - this.TabPage_Horde.TabIndex = 2; - this.TabPage_Horde.Text = "Horde"; - this.TabPage_Horde.UseVisualStyleBackColor = true; - // - // GB_Tweak - // - this.GB_Tweak.Controls.Add(this.CHK_HomogeneousHordes); - this.GB_Tweak.Controls.Add(this.CHK_MegaForm); - this.GB_Tweak.Controls.Add(this.L_RandOpt); - this.GB_Tweak.Controls.Add(this.CHK_BST); - this.GB_Tweak.Controls.Add(this.CHK_E); - this.GB_Tweak.Controls.Add(this.CHK_L); - this.GB_Tweak.Controls.Add(this.CHK_G6); - this.GB_Tweak.Controls.Add(this.CHK_G5); - this.GB_Tweak.Controls.Add(this.CHK_G4); - this.GB_Tweak.Controls.Add(this.CHK_G3); - this.GB_Tweak.Controls.Add(this.CHK_G2); - this.GB_Tweak.Controls.Add(this.CHK_G1); - this.GB_Tweak.Controls.Add(this.B_LevelPlus); - this.GB_Tweak.Controls.Add(this.NUD_LevelAmp); - this.GB_Tweak.Controls.Add(this.CHK_Level); - this.GB_Tweak.Location = new System.Drawing.Point(341, 243); - this.GB_Tweak.Name = "GB_Tweak"; - this.GB_Tweak.Size = new System.Drawing.Size(282, 120); - this.GB_Tweak.TabIndex = 323; - this.GB_Tweak.TabStop = false; - this.GB_Tweak.Text = "Extra Tweaks"; - // - // CHK_MegaForm - // - this.CHK_MegaForm.AutoSize = true; - this.CHK_MegaForm.Location = new System.Drawing.Point(152, 97); - this.CHK_MegaForm.Name = "CHK_MegaForm"; - this.CHK_MegaForm.Size = new System.Drawing.Size(127, 17); - this.CHK_MegaForm.TabIndex = 296; - this.CHK_MegaForm.Text = "Random Mega Forms"; - this.CHK_MegaForm.UseVisualStyleBackColor = true; - // - // L_RandOpt - // - this.L_RandOpt.AutoSize = true; - this.L_RandOpt.Location = new System.Drawing.Point(30, 34); - this.L_RandOpt.Name = "L_RandOpt"; - this.L_RandOpt.Size = new System.Drawing.Size(105, 13); - this.L_RandOpt.TabIndex = 294; - this.L_RandOpt.Text = "Randomizer Options:"; - // - // CHK_BST - // - this.CHK_BST.AutoSize = true; - this.CHK_BST.Location = new System.Drawing.Point(152, 82); - this.CHK_BST.Name = "CHK_BST"; - this.CHK_BST.Size = new System.Drawing.Size(117, 17); - this.CHK_BST.TabIndex = 288; - this.CHK_BST.Text = "Randomize by BST"; - this.CHK_BST.UseVisualStyleBackColor = true; - // - // CHK_E - // - this.CHK_E.AutoSize = true; - this.CHK_E.Checked = true; - this.CHK_E.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_E.Location = new System.Drawing.Point(152, 67); - this.CHK_E.Name = "CHK_E"; - this.CHK_E.Size = new System.Drawing.Size(98, 17); - this.CHK_E.TabIndex = 287; - this.CHK_E.Text = "Event Legends"; - this.CHK_E.UseVisualStyleBackColor = true; - // - // CHK_L - // - this.CHK_L.AutoSize = true; - this.CHK_L.Checked = true; - this.CHK_L.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_L.Location = new System.Drawing.Point(152, 52); - this.CHK_L.Name = "CHK_L"; - this.CHK_L.Size = new System.Drawing.Size(98, 17); - this.CHK_L.TabIndex = 286; - this.CHK_L.Text = "Game Legends"; - this.CHK_L.UseVisualStyleBackColor = true; - // - // CHK_G6 - // - this.CHK_G6.AutoSize = true; - this.CHK_G6.Checked = true; - this.CHK_G6.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G6.Location = new System.Drawing.Point(91, 82); - this.CHK_G6.Name = "CHK_G6"; - this.CHK_G6.Size = new System.Drawing.Size(55, 17); - this.CHK_G6.TabIndex = 285; - this.CHK_G6.Text = "Gen 6"; - this.CHK_G6.UseVisualStyleBackColor = true; - // - // CHK_G5 - // - this.CHK_G5.AutoSize = true; - this.CHK_G5.Checked = true; - this.CHK_G5.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G5.Location = new System.Drawing.Point(91, 67); - this.CHK_G5.Name = "CHK_G5"; - this.CHK_G5.Size = new System.Drawing.Size(55, 17); - this.CHK_G5.TabIndex = 284; - this.CHK_G5.Text = "Gen 5"; - this.CHK_G5.UseVisualStyleBackColor = true; - // - // CHK_G4 - // - this.CHK_G4.AutoSize = true; - this.CHK_G4.Checked = true; - this.CHK_G4.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G4.Location = new System.Drawing.Point(91, 52); - this.CHK_G4.Name = "CHK_G4"; - this.CHK_G4.Size = new System.Drawing.Size(55, 17); - this.CHK_G4.TabIndex = 283; - this.CHK_G4.Text = "Gen 4"; - this.CHK_G4.UseVisualStyleBackColor = true; - // - // CHK_G3 - // - this.CHK_G3.AutoSize = true; - this.CHK_G3.Checked = true; - this.CHK_G3.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G3.Location = new System.Drawing.Point(33, 82); - this.CHK_G3.Name = "CHK_G3"; - this.CHK_G3.Size = new System.Drawing.Size(55, 17); - this.CHK_G3.TabIndex = 282; - this.CHK_G3.Text = "Gen 3"; - this.CHK_G3.UseVisualStyleBackColor = true; - // - // CHK_G2 - // - this.CHK_G2.AutoSize = true; - this.CHK_G2.Checked = true; - this.CHK_G2.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G2.Location = new System.Drawing.Point(33, 67); - this.CHK_G2.Name = "CHK_G2"; - this.CHK_G2.Size = new System.Drawing.Size(55, 17); - this.CHK_G2.TabIndex = 281; - this.CHK_G2.Text = "Gen 2"; - this.CHK_G2.UseVisualStyleBackColor = true; - // - // CHK_G1 - // - this.CHK_G1.AutoSize = true; - this.CHK_G1.Checked = true; - this.CHK_G1.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G1.Location = new System.Drawing.Point(33, 52); - this.CHK_G1.Name = "CHK_G1"; - this.CHK_G1.Size = new System.Drawing.Size(55, 17); - this.CHK_G1.TabIndex = 280; - this.CHK_G1.Text = "Gen 1"; - this.CHK_G1.UseVisualStyleBackColor = true; - // - // B_LevelPlus - // - this.B_LevelPlus.Location = new System.Drawing.Point(199, 14); - this.B_LevelPlus.Name = "B_LevelPlus"; - this.B_LevelPlus.Size = new System.Drawing.Size(70, 23); - this.B_LevelPlus.TabIndex = 277; - this.B_LevelPlus.Text = "× Current"; - this.B_LevelPlus.UseVisualStyleBackColor = true; - this.B_LevelPlus.Click += new System.EventHandler(this.modifyLevels); - // - // NUD_LevelAmp - // - this.NUD_LevelAmp.DecimalPlaces = 2; - this.NUD_LevelAmp.Increment = new decimal(new int[] { + this.CB_Old3.Location = new System.Drawing.Point(42, 83); + this.CB_Old3.Name = "CB_Old3"; + this.CB_Old3.Size = new System.Drawing.Size(121, 21); + this.CB_Old3.TabIndex = 298; + // + // NUP_OldForme3 + // + this.NUP_OldForme3.Location = new System.Drawing.Point(169, 84); + this.NUP_OldForme3.Name = "NUP_OldForme3"; + this.NUP_OldForme3.Size = new System.Drawing.Size(41, 20); + this.NUP_OldForme3.TabIndex = 299; + // + // NUP_OldMin3 + // + this.NUP_OldMin3.Location = new System.Drawing.Point(216, 84); + this.NUP_OldMin3.Name = "NUP_OldMin3"; + this.NUP_OldMin3.Size = new System.Drawing.Size(41, 20); + this.NUP_OldMin3.TabIndex = 300; + // + // NUP_OldMax3 + // + this.NUP_OldMax3.Location = new System.Drawing.Point(263, 84); + this.NUP_OldMax3.Name = "NUP_OldMax3"; + this.NUP_OldMax3.Size = new System.Drawing.Size(41, 20); + this.NUP_OldMax3.TabIndex = 301; + // + // label45 + // + this.label45.AutoSize = true; + this.label45.Location = new System.Drawing.Point(15, 86); + this.label45.Name = "label45"; + this.label45.Size = new System.Drawing.Size(21, 13); + this.label45.TabIndex = 308; + this.label45.Text = "5%"; + // + // label44 + // + this.label44.AutoSize = true; + this.label44.Location = new System.Drawing.Point(9, 59); + this.label44.Name = "label44"; + this.label44.Size = new System.Drawing.Size(27, 13); + this.label44.TabIndex = 307; + this.label44.Text = "35%"; + // + // label43 + // + this.label43.AutoSize = true; + this.label43.Location = new System.Drawing.Point(9, 32); + this.label43.Name = "label43"; + this.label43.Size = new System.Drawing.Size(27, 13); + this.label43.TabIndex = 306; + this.label43.Text = "60%"; + // + // label23 + // + this.label23.AutoSize = true; + this.label23.Location = new System.Drawing.Point(166, 14); + this.label23.Name = "label23"; + this.label23.Size = new System.Drawing.Size(36, 13); + this.label23.TabIndex = 303; + this.label23.Text = "Forme"; + // + // label24 + // + this.label24.AutoSize = true; + this.label24.Location = new System.Drawing.Point(213, 14); + this.label24.Name = "label24"; + this.label24.Size = new System.Drawing.Size(24, 13); + this.label24.TabIndex = 304; + this.label24.Text = "Min"; + // + // label25 + // + this.label25.AutoSize = true; + this.label25.Location = new System.Drawing.Point(260, 14); + this.label25.Name = "label25"; + this.label25.Size = new System.Drawing.Size(27, 13); + this.label25.TabIndex = 305; + this.label25.Text = "Max"; + // + // TabPage_Horde + // + this.TabPage_Horde.Controls.Add(this.GB_Tweak); + this.TabPage_Horde.Controls.Add(this.label129); + this.TabPage_Horde.Controls.Add(this.label130); + this.TabPage_Horde.Controls.Add(this.label131); + this.TabPage_Horde.Controls.Add(this.label132); + this.TabPage_Horde.Controls.Add(this.NUP_HordeCMax5); + this.TabPage_Horde.Controls.Add(this.NUP_HordeCMin5); + this.TabPage_Horde.Controls.Add(this.NUP_HordeCForme5); + this.TabPage_Horde.Controls.Add(this.CB_HordeC5); + this.TabPage_Horde.Controls.Add(this.NUP_HordeCMax4); + this.TabPage_Horde.Controls.Add(this.NUP_HordeCMin4); + this.TabPage_Horde.Controls.Add(this.NUP_HordeCForme4); + this.TabPage_Horde.Controls.Add(this.CB_HordeC4); + this.TabPage_Horde.Controls.Add(this.NUP_HordeCMax3); + this.TabPage_Horde.Controls.Add(this.NUP_HordeCMin3); + this.TabPage_Horde.Controls.Add(this.NUP_HordeCForme3); + this.TabPage_Horde.Controls.Add(this.CB_HordeC3); + this.TabPage_Horde.Controls.Add(this.NUP_HordeCMax2); + this.TabPage_Horde.Controls.Add(this.NUP_HordeCMin2); + this.TabPage_Horde.Controls.Add(this.NUP_HordeCForme2); + this.TabPage_Horde.Controls.Add(this.CB_HordeC2); + this.TabPage_Horde.Controls.Add(this.NUP_HordeCMax1); + this.TabPage_Horde.Controls.Add(this.NUP_HordeCMin1); + this.TabPage_Horde.Controls.Add(this.NUP_HordeCForme1); + this.TabPage_Horde.Controls.Add(this.CB_HordeC1); + this.TabPage_Horde.Controls.Add(this.label125); + this.TabPage_Horde.Controls.Add(this.label121); + this.TabPage_Horde.Controls.Add(this.label126); + this.TabPage_Horde.Controls.Add(this.label124); + this.TabPage_Horde.Controls.Add(this.label127); + this.TabPage_Horde.Controls.Add(this.label122); + this.TabPage_Horde.Controls.Add(this.label128); + this.TabPage_Horde.Controls.Add(this.NUP_HordeBMax5); + this.TabPage_Horde.Controls.Add(this.CB_HordeA1); + this.TabPage_Horde.Controls.Add(this.NUP_HordeBMin5); + this.TabPage_Horde.Controls.Add(this.label123); + this.TabPage_Horde.Controls.Add(this.NUP_HordeBForme5); + this.TabPage_Horde.Controls.Add(this.NUP_HordeAForme1); + this.TabPage_Horde.Controls.Add(this.CB_HordeB5); + this.TabPage_Horde.Controls.Add(this.NUP_HordeAMin1); + this.TabPage_Horde.Controls.Add(this.NUP_HordeBMax4); + this.TabPage_Horde.Controls.Add(this.NUP_HordeAMax5); + this.TabPage_Horde.Controls.Add(this.NUP_HordeBMin4); + this.TabPage_Horde.Controls.Add(this.NUP_HordeAMax1); + this.TabPage_Horde.Controls.Add(this.NUP_HordeBForme4); + this.TabPage_Horde.Controls.Add(this.NUP_HordeAMin5); + this.TabPage_Horde.Controls.Add(this.CB_HordeB4); + this.TabPage_Horde.Controls.Add(this.CB_HordeA2); + this.TabPage_Horde.Controls.Add(this.NUP_HordeBMax3); + this.TabPage_Horde.Controls.Add(this.NUP_HordeAForme5); + this.TabPage_Horde.Controls.Add(this.NUP_HordeBMin3); + this.TabPage_Horde.Controls.Add(this.NUP_HordeAForme2); + this.TabPage_Horde.Controls.Add(this.NUP_HordeBForme3); + this.TabPage_Horde.Controls.Add(this.CB_HordeA5); + this.TabPage_Horde.Controls.Add(this.CB_HordeB3); + this.TabPage_Horde.Controls.Add(this.NUP_HordeAMin2); + this.TabPage_Horde.Controls.Add(this.NUP_HordeBMax2); + this.TabPage_Horde.Controls.Add(this.NUP_HordeAMax4); + this.TabPage_Horde.Controls.Add(this.NUP_HordeBMin2); + this.TabPage_Horde.Controls.Add(this.NUP_HordeAMax2); + this.TabPage_Horde.Controls.Add(this.NUP_HordeBForme2); + this.TabPage_Horde.Controls.Add(this.NUP_HordeAMin4); + this.TabPage_Horde.Controls.Add(this.CB_HordeB2); + this.TabPage_Horde.Controls.Add(this.CB_HordeA3); + this.TabPage_Horde.Controls.Add(this.NUP_HordeBMax1); + this.TabPage_Horde.Controls.Add(this.NUP_HordeAForme4); + this.TabPage_Horde.Controls.Add(this.NUP_HordeBMin1); + this.TabPage_Horde.Controls.Add(this.NUP_HordeAForme3); + this.TabPage_Horde.Controls.Add(this.NUP_HordeBForme1); + this.TabPage_Horde.Controls.Add(this.CB_HordeA4); + this.TabPage_Horde.Controls.Add(this.CB_HordeB1); + this.TabPage_Horde.Controls.Add(this.NUP_HordeAMin3); + this.TabPage_Horde.Controls.Add(this.NUP_HordeAMax3); + this.TabPage_Horde.Location = new System.Drawing.Point(4, 22); + this.TabPage_Horde.Name = "TabPage_Horde"; + this.TabPage_Horde.Padding = new System.Windows.Forms.Padding(3); + this.TabPage_Horde.Size = new System.Drawing.Size(918, 369); + this.TabPage_Horde.TabIndex = 2; + this.TabPage_Horde.Text = "Horde"; + this.TabPage_Horde.UseVisualStyleBackColor = true; + // + // GB_Tweak + // + this.GB_Tweak.Controls.Add(this.CHK_HomogeneousHordes); + this.GB_Tweak.Controls.Add(this.CHK_MegaForm); + this.GB_Tweak.Controls.Add(this.L_RandOpt); + this.GB_Tweak.Controls.Add(this.CHK_BST); + this.GB_Tweak.Controls.Add(this.CHK_E); + this.GB_Tweak.Controls.Add(this.CHK_L); + this.GB_Tweak.Controls.Add(this.CHK_G6); + this.GB_Tweak.Controls.Add(this.CHK_G5); + this.GB_Tweak.Controls.Add(this.CHK_G4); + this.GB_Tweak.Controls.Add(this.CHK_G3); + this.GB_Tweak.Controls.Add(this.CHK_G2); + this.GB_Tweak.Controls.Add(this.CHK_G1); + this.GB_Tweak.Controls.Add(this.B_LevelPlus); + this.GB_Tweak.Controls.Add(this.NUD_LevelAmp); + this.GB_Tweak.Controls.Add(this.CHK_Level); + this.GB_Tweak.Location = new System.Drawing.Point(341, 243); + this.GB_Tweak.Name = "GB_Tweak"; + this.GB_Tweak.Size = new System.Drawing.Size(282, 120); + this.GB_Tweak.TabIndex = 323; + this.GB_Tweak.TabStop = false; + this.GB_Tweak.Text = "Extra Tweaks"; + // + // CHK_HomogeneousHordes + // + this.CHK_HomogeneousHordes.AutoSize = true; + this.CHK_HomogeneousHordes.Location = new System.Drawing.Point(18, 97); + this.CHK_HomogeneousHordes.Name = "CHK_HomogeneousHordes"; + this.CHK_HomogeneousHordes.Size = new System.Drawing.Size(133, 17); + this.CHK_HomogeneousHordes.TabIndex = 297; + this.CHK_HomogeneousHordes.Text = "Single Species Hordes"; + this.CHK_HomogeneousHordes.UseVisualStyleBackColor = true; + // + // CHK_MegaForm + // + this.CHK_MegaForm.AutoSize = true; + this.CHK_MegaForm.Location = new System.Drawing.Point(152, 97); + this.CHK_MegaForm.Name = "CHK_MegaForm"; + this.CHK_MegaForm.Size = new System.Drawing.Size(127, 17); + this.CHK_MegaForm.TabIndex = 296; + this.CHK_MegaForm.Text = "Random Mega Forms"; + this.CHK_MegaForm.UseVisualStyleBackColor = true; + // + // L_RandOpt + // + this.L_RandOpt.AutoSize = true; + this.L_RandOpt.Location = new System.Drawing.Point(30, 34); + this.L_RandOpt.Name = "L_RandOpt"; + this.L_RandOpt.Size = new System.Drawing.Size(105, 13); + this.L_RandOpt.TabIndex = 294; + this.L_RandOpt.Text = "Randomizer Options:"; + // + // CHK_BST + // + this.CHK_BST.AutoSize = true; + this.CHK_BST.Location = new System.Drawing.Point(152, 82); + this.CHK_BST.Name = "CHK_BST"; + this.CHK_BST.Size = new System.Drawing.Size(117, 17); + this.CHK_BST.TabIndex = 288; + this.CHK_BST.Text = "Randomize by BST"; + this.CHK_BST.UseVisualStyleBackColor = true; + // + // CHK_E + // + this.CHK_E.AutoSize = true; + this.CHK_E.Checked = true; + this.CHK_E.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_E.Location = new System.Drawing.Point(152, 67); + this.CHK_E.Name = "CHK_E"; + this.CHK_E.Size = new System.Drawing.Size(98, 17); + this.CHK_E.TabIndex = 287; + this.CHK_E.Text = "Event Legends"; + this.CHK_E.UseVisualStyleBackColor = true; + // + // CHK_L + // + this.CHK_L.AutoSize = true; + this.CHK_L.Checked = true; + this.CHK_L.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_L.Location = new System.Drawing.Point(152, 52); + this.CHK_L.Name = "CHK_L"; + this.CHK_L.Size = new System.Drawing.Size(98, 17); + this.CHK_L.TabIndex = 286; + this.CHK_L.Text = "Game Legends"; + this.CHK_L.UseVisualStyleBackColor = true; + // + // CHK_G6 + // + this.CHK_G6.AutoSize = true; + this.CHK_G6.Checked = true; + this.CHK_G6.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G6.Location = new System.Drawing.Point(91, 82); + this.CHK_G6.Name = "CHK_G6"; + this.CHK_G6.Size = new System.Drawing.Size(55, 17); + this.CHK_G6.TabIndex = 285; + this.CHK_G6.Text = "Gen 6"; + this.CHK_G6.UseVisualStyleBackColor = true; + // + // CHK_G5 + // + this.CHK_G5.AutoSize = true; + this.CHK_G5.Checked = true; + this.CHK_G5.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G5.Location = new System.Drawing.Point(91, 67); + this.CHK_G5.Name = "CHK_G5"; + this.CHK_G5.Size = new System.Drawing.Size(55, 17); + this.CHK_G5.TabIndex = 284; + this.CHK_G5.Text = "Gen 5"; + this.CHK_G5.UseVisualStyleBackColor = true; + // + // CHK_G4 + // + this.CHK_G4.AutoSize = true; + this.CHK_G4.Checked = true; + this.CHK_G4.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G4.Location = new System.Drawing.Point(91, 52); + this.CHK_G4.Name = "CHK_G4"; + this.CHK_G4.Size = new System.Drawing.Size(55, 17); + this.CHK_G4.TabIndex = 283; + this.CHK_G4.Text = "Gen 4"; + this.CHK_G4.UseVisualStyleBackColor = true; + // + // CHK_G3 + // + this.CHK_G3.AutoSize = true; + this.CHK_G3.Checked = true; + this.CHK_G3.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G3.Location = new System.Drawing.Point(33, 82); + this.CHK_G3.Name = "CHK_G3"; + this.CHK_G3.Size = new System.Drawing.Size(55, 17); + this.CHK_G3.TabIndex = 282; + this.CHK_G3.Text = "Gen 3"; + this.CHK_G3.UseVisualStyleBackColor = true; + // + // CHK_G2 + // + this.CHK_G2.AutoSize = true; + this.CHK_G2.Checked = true; + this.CHK_G2.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G2.Location = new System.Drawing.Point(33, 67); + this.CHK_G2.Name = "CHK_G2"; + this.CHK_G2.Size = new System.Drawing.Size(55, 17); + this.CHK_G2.TabIndex = 281; + this.CHK_G2.Text = "Gen 2"; + this.CHK_G2.UseVisualStyleBackColor = true; + // + // CHK_G1 + // + this.CHK_G1.AutoSize = true; + this.CHK_G1.Checked = true; + this.CHK_G1.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G1.Location = new System.Drawing.Point(33, 52); + this.CHK_G1.Name = "CHK_G1"; + this.CHK_G1.Size = new System.Drawing.Size(55, 17); + this.CHK_G1.TabIndex = 280; + this.CHK_G1.Text = "Gen 1"; + this.CHK_G1.UseVisualStyleBackColor = true; + // + // B_LevelPlus + // + this.B_LevelPlus.Location = new System.Drawing.Point(199, 14); + this.B_LevelPlus.Name = "B_LevelPlus"; + this.B_LevelPlus.Size = new System.Drawing.Size(70, 23); + this.B_LevelPlus.TabIndex = 277; + this.B_LevelPlus.Text = "× Current"; + this.B_LevelPlus.UseVisualStyleBackColor = true; + this.B_LevelPlus.Click += new System.EventHandler(this.ModifyLevels); + // + // NUD_LevelAmp + // + this.NUD_LevelAmp.DecimalPlaces = 2; + this.NUD_LevelAmp.Increment = new decimal(new int[] { 5, 0, 0, 131072}); - this.NUD_LevelAmp.Location = new System.Drawing.Point(152, 16); - this.NUD_LevelAmp.Maximum = new decimal(new int[] { + this.NUD_LevelAmp.Location = new System.Drawing.Point(152, 16); + this.NUD_LevelAmp.Maximum = new decimal(new int[] { 3, 0, 0, 0}); - this.NUD_LevelAmp.Minimum = new decimal(new int[] { + this.NUD_LevelAmp.Minimum = new decimal(new int[] { 1, 0, 0, 65536}); - this.NUD_LevelAmp.Name = "NUD_LevelAmp"; - this.NUD_LevelAmp.Size = new System.Drawing.Size(41, 20); - this.NUD_LevelAmp.TabIndex = 276; - this.NUD_LevelAmp.Value = new decimal(new int[] { + this.NUD_LevelAmp.Name = "NUD_LevelAmp"; + this.NUD_LevelAmp.Size = new System.Drawing.Size(41, 20); + this.NUD_LevelAmp.TabIndex = 276; + this.NUD_LevelAmp.Value = new decimal(new int[] { 10, 0, 0, 65536}); - // - // CHK_Level - // - this.CHK_Level.AutoSize = true; - this.CHK_Level.Location = new System.Drawing.Point(18, 17); - this.CHK_Level.Name = "CHK_Level"; - this.CHK_Level.Size = new System.Drawing.Size(135, 17); - this.CHK_Level.TabIndex = 279; - this.CHK_Level.Text = "Multiply PKM Levels by"; - this.CHK_Level.UseVisualStyleBackColor = true; - // - // label129 - // - this.label129.AutoSize = true; - this.label129.Location = new System.Drawing.Point(825, 13); - this.label129.Name = "label129"; - this.label129.Size = new System.Drawing.Size(27, 13); - this.label129.TabIndex = 320; - this.label129.Text = "Max"; - // - // label130 - // - this.label130.AutoSize = true; - this.label130.Location = new System.Drawing.Point(778, 13); - this.label130.Name = "label130"; - this.label130.Size = new System.Drawing.Size(24, 13); - this.label130.TabIndex = 319; - this.label130.Text = "Min"; - // - // label131 - // - this.label131.AutoSize = true; - this.label131.Location = new System.Drawing.Point(731, 13); - this.label131.Name = "label131"; - this.label131.Size = new System.Drawing.Size(36, 13); - this.label131.TabIndex = 318; - this.label131.Text = "Forme"; - // - // label132 - // - this.label132.AutoSize = true; - this.label132.Location = new System.Drawing.Point(607, 13); - this.label132.Name = "label132"; - this.label132.Size = new System.Drawing.Size(69, 13); - this.label132.TabIndex = 317; - this.label132.Text = "Horde C (5%)"; - // - // NUP_HordeCMax5 - // - this.NUP_HordeCMax5.Location = new System.Drawing.Point(828, 138); - this.NUP_HordeCMax5.Name = "NUP_HordeCMax5"; - this.NUP_HordeCMax5.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeCMax5.TabIndex = 316; - // - // NUP_HordeCMin5 - // - this.NUP_HordeCMin5.Location = new System.Drawing.Point(781, 138); - this.NUP_HordeCMin5.Name = "NUP_HordeCMin5"; - this.NUP_HordeCMin5.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeCMin5.TabIndex = 315; - // - // NUP_HordeCForme5 - // - this.NUP_HordeCForme5.Location = new System.Drawing.Point(734, 138); - this.NUP_HordeCForme5.Name = "NUP_HordeCForme5"; - this.NUP_HordeCForme5.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeCForme5.TabIndex = 314; - // - // CB_HordeC5 - // - this.CB_HordeC5.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_HordeC5.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_HordeC5.FormattingEnabled = true; - this.CB_HordeC5.Items.AddRange(new object[] { + // + // CHK_Level + // + this.CHK_Level.AutoSize = true; + this.CHK_Level.Location = new System.Drawing.Point(18, 17); + this.CHK_Level.Name = "CHK_Level"; + this.CHK_Level.Size = new System.Drawing.Size(135, 17); + this.CHK_Level.TabIndex = 279; + this.CHK_Level.Text = "Multiply PKM Levels by"; + this.CHK_Level.UseVisualStyleBackColor = true; + // + // label129 + // + this.label129.AutoSize = true; + this.label129.Location = new System.Drawing.Point(825, 13); + this.label129.Name = "label129"; + this.label129.Size = new System.Drawing.Size(27, 13); + this.label129.TabIndex = 320; + this.label129.Text = "Max"; + // + // label130 + // + this.label130.AutoSize = true; + this.label130.Location = new System.Drawing.Point(778, 13); + this.label130.Name = "label130"; + this.label130.Size = new System.Drawing.Size(24, 13); + this.label130.TabIndex = 319; + this.label130.Text = "Min"; + // + // label131 + // + this.label131.AutoSize = true; + this.label131.Location = new System.Drawing.Point(731, 13); + this.label131.Name = "label131"; + this.label131.Size = new System.Drawing.Size(36, 13); + this.label131.TabIndex = 318; + this.label131.Text = "Forme"; + // + // label132 + // + this.label132.AutoSize = true; + this.label132.Location = new System.Drawing.Point(607, 13); + this.label132.Name = "label132"; + this.label132.Size = new System.Drawing.Size(69, 13); + this.label132.TabIndex = 317; + this.label132.Text = "Horde C (5%)"; + // + // NUP_HordeCMax5 + // + this.NUP_HordeCMax5.Location = new System.Drawing.Point(828, 138); + this.NUP_HordeCMax5.Name = "NUP_HordeCMax5"; + this.NUP_HordeCMax5.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeCMax5.TabIndex = 316; + // + // NUP_HordeCMin5 + // + this.NUP_HordeCMin5.Location = new System.Drawing.Point(781, 138); + this.NUP_HordeCMin5.Name = "NUP_HordeCMin5"; + this.NUP_HordeCMin5.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeCMin5.TabIndex = 315; + // + // NUP_HordeCForme5 + // + this.NUP_HordeCForme5.Location = new System.Drawing.Point(734, 138); + this.NUP_HordeCForme5.Name = "NUP_HordeCForme5"; + this.NUP_HordeCForme5.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeCForme5.TabIndex = 314; + // + // CB_HordeC5 + // + this.CB_HordeC5.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_HordeC5.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_HordeC5.FormattingEnabled = true; + this.CB_HordeC5.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -16415,38 +16425,38 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_HordeC5.Location = new System.Drawing.Point(607, 137); - this.CB_HordeC5.Name = "CB_HordeC5"; - this.CB_HordeC5.Size = new System.Drawing.Size(121, 21); - this.CB_HordeC5.TabIndex = 313; - // - // NUP_HordeCMax4 - // - this.NUP_HordeCMax4.Location = new System.Drawing.Point(828, 111); - this.NUP_HordeCMax4.Name = "NUP_HordeCMax4"; - this.NUP_HordeCMax4.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeCMax4.TabIndex = 312; - // - // NUP_HordeCMin4 - // - this.NUP_HordeCMin4.Location = new System.Drawing.Point(781, 111); - this.NUP_HordeCMin4.Name = "NUP_HordeCMin4"; - this.NUP_HordeCMin4.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeCMin4.TabIndex = 311; - // - // NUP_HordeCForme4 - // - this.NUP_HordeCForme4.Location = new System.Drawing.Point(734, 111); - this.NUP_HordeCForme4.Name = "NUP_HordeCForme4"; - this.NUP_HordeCForme4.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeCForme4.TabIndex = 310; - // - // CB_HordeC4 - // - this.CB_HordeC4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_HordeC4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_HordeC4.FormattingEnabled = true; - this.CB_HordeC4.Items.AddRange(new object[] { + this.CB_HordeC5.Location = new System.Drawing.Point(607, 137); + this.CB_HordeC5.Name = "CB_HordeC5"; + this.CB_HordeC5.Size = new System.Drawing.Size(121, 21); + this.CB_HordeC5.TabIndex = 313; + // + // NUP_HordeCMax4 + // + this.NUP_HordeCMax4.Location = new System.Drawing.Point(828, 111); + this.NUP_HordeCMax4.Name = "NUP_HordeCMax4"; + this.NUP_HordeCMax4.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeCMax4.TabIndex = 312; + // + // NUP_HordeCMin4 + // + this.NUP_HordeCMin4.Location = new System.Drawing.Point(781, 111); + this.NUP_HordeCMin4.Name = "NUP_HordeCMin4"; + this.NUP_HordeCMin4.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeCMin4.TabIndex = 311; + // + // NUP_HordeCForme4 + // + this.NUP_HordeCForme4.Location = new System.Drawing.Point(734, 111); + this.NUP_HordeCForme4.Name = "NUP_HordeCForme4"; + this.NUP_HordeCForme4.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeCForme4.TabIndex = 310; + // + // CB_HordeC4 + // + this.CB_HordeC4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_HordeC4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_HordeC4.FormattingEnabled = true; + this.CB_HordeC4.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -17097,38 +17107,38 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_HordeC4.Location = new System.Drawing.Point(607, 110); - this.CB_HordeC4.Name = "CB_HordeC4"; - this.CB_HordeC4.Size = new System.Drawing.Size(121, 21); - this.CB_HordeC4.TabIndex = 309; - // - // NUP_HordeCMax3 - // - this.NUP_HordeCMax3.Location = new System.Drawing.Point(828, 84); - this.NUP_HordeCMax3.Name = "NUP_HordeCMax3"; - this.NUP_HordeCMax3.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeCMax3.TabIndex = 308; - // - // NUP_HordeCMin3 - // - this.NUP_HordeCMin3.Location = new System.Drawing.Point(781, 84); - this.NUP_HordeCMin3.Name = "NUP_HordeCMin3"; - this.NUP_HordeCMin3.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeCMin3.TabIndex = 307; - // - // NUP_HordeCForme3 - // - this.NUP_HordeCForme3.Location = new System.Drawing.Point(734, 84); - this.NUP_HordeCForme3.Name = "NUP_HordeCForme3"; - this.NUP_HordeCForme3.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeCForme3.TabIndex = 306; - // - // CB_HordeC3 - // - this.CB_HordeC3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_HordeC3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_HordeC3.FormattingEnabled = true; - this.CB_HordeC3.Items.AddRange(new object[] { + this.CB_HordeC4.Location = new System.Drawing.Point(607, 110); + this.CB_HordeC4.Name = "CB_HordeC4"; + this.CB_HordeC4.Size = new System.Drawing.Size(121, 21); + this.CB_HordeC4.TabIndex = 309; + // + // NUP_HordeCMax3 + // + this.NUP_HordeCMax3.Location = new System.Drawing.Point(828, 84); + this.NUP_HordeCMax3.Name = "NUP_HordeCMax3"; + this.NUP_HordeCMax3.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeCMax3.TabIndex = 308; + // + // NUP_HordeCMin3 + // + this.NUP_HordeCMin3.Location = new System.Drawing.Point(781, 84); + this.NUP_HordeCMin3.Name = "NUP_HordeCMin3"; + this.NUP_HordeCMin3.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeCMin3.TabIndex = 307; + // + // NUP_HordeCForme3 + // + this.NUP_HordeCForme3.Location = new System.Drawing.Point(734, 84); + this.NUP_HordeCForme3.Name = "NUP_HordeCForme3"; + this.NUP_HordeCForme3.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeCForme3.TabIndex = 306; + // + // CB_HordeC3 + // + this.CB_HordeC3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_HordeC3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_HordeC3.FormattingEnabled = true; + this.CB_HordeC3.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -17779,38 +17789,38 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_HordeC3.Location = new System.Drawing.Point(607, 83); - this.CB_HordeC3.Name = "CB_HordeC3"; - this.CB_HordeC3.Size = new System.Drawing.Size(121, 21); - this.CB_HordeC3.TabIndex = 305; - // - // NUP_HordeCMax2 - // - this.NUP_HordeCMax2.Location = new System.Drawing.Point(828, 57); - this.NUP_HordeCMax2.Name = "NUP_HordeCMax2"; - this.NUP_HordeCMax2.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeCMax2.TabIndex = 304; - // - // NUP_HordeCMin2 - // - this.NUP_HordeCMin2.Location = new System.Drawing.Point(781, 57); - this.NUP_HordeCMin2.Name = "NUP_HordeCMin2"; - this.NUP_HordeCMin2.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeCMin2.TabIndex = 303; - // - // NUP_HordeCForme2 - // - this.NUP_HordeCForme2.Location = new System.Drawing.Point(734, 57); - this.NUP_HordeCForme2.Name = "NUP_HordeCForme2"; - this.NUP_HordeCForme2.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeCForme2.TabIndex = 302; - // - // CB_HordeC2 - // - this.CB_HordeC2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_HordeC2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_HordeC2.FormattingEnabled = true; - this.CB_HordeC2.Items.AddRange(new object[] { + this.CB_HordeC3.Location = new System.Drawing.Point(607, 83); + this.CB_HordeC3.Name = "CB_HordeC3"; + this.CB_HordeC3.Size = new System.Drawing.Size(121, 21); + this.CB_HordeC3.TabIndex = 305; + // + // NUP_HordeCMax2 + // + this.NUP_HordeCMax2.Location = new System.Drawing.Point(828, 57); + this.NUP_HordeCMax2.Name = "NUP_HordeCMax2"; + this.NUP_HordeCMax2.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeCMax2.TabIndex = 304; + // + // NUP_HordeCMin2 + // + this.NUP_HordeCMin2.Location = new System.Drawing.Point(781, 57); + this.NUP_HordeCMin2.Name = "NUP_HordeCMin2"; + this.NUP_HordeCMin2.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeCMin2.TabIndex = 303; + // + // NUP_HordeCForme2 + // + this.NUP_HordeCForme2.Location = new System.Drawing.Point(734, 57); + this.NUP_HordeCForme2.Name = "NUP_HordeCForme2"; + this.NUP_HordeCForme2.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeCForme2.TabIndex = 302; + // + // CB_HordeC2 + // + this.CB_HordeC2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_HordeC2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_HordeC2.FormattingEnabled = true; + this.CB_HordeC2.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -18461,38 +18471,38 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_HordeC2.Location = new System.Drawing.Point(607, 56); - this.CB_HordeC2.Name = "CB_HordeC2"; - this.CB_HordeC2.Size = new System.Drawing.Size(121, 21); - this.CB_HordeC2.TabIndex = 301; - // - // NUP_HordeCMax1 - // - this.NUP_HordeCMax1.Location = new System.Drawing.Point(828, 30); - this.NUP_HordeCMax1.Name = "NUP_HordeCMax1"; - this.NUP_HordeCMax1.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeCMax1.TabIndex = 300; - // - // NUP_HordeCMin1 - // - this.NUP_HordeCMin1.Location = new System.Drawing.Point(781, 30); - this.NUP_HordeCMin1.Name = "NUP_HordeCMin1"; - this.NUP_HordeCMin1.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeCMin1.TabIndex = 299; - // - // NUP_HordeCForme1 - // - this.NUP_HordeCForme1.Location = new System.Drawing.Point(734, 30); - this.NUP_HordeCForme1.Name = "NUP_HordeCForme1"; - this.NUP_HordeCForme1.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeCForme1.TabIndex = 298; - // - // CB_HordeC1 - // - this.CB_HordeC1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_HordeC1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_HordeC1.FormattingEnabled = true; - this.CB_HordeC1.Items.AddRange(new object[] { + this.CB_HordeC2.Location = new System.Drawing.Point(607, 56); + this.CB_HordeC2.Name = "CB_HordeC2"; + this.CB_HordeC2.Size = new System.Drawing.Size(121, 21); + this.CB_HordeC2.TabIndex = 301; + // + // NUP_HordeCMax1 + // + this.NUP_HordeCMax1.Location = new System.Drawing.Point(828, 30); + this.NUP_HordeCMax1.Name = "NUP_HordeCMax1"; + this.NUP_HordeCMax1.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeCMax1.TabIndex = 300; + // + // NUP_HordeCMin1 + // + this.NUP_HordeCMin1.Location = new System.Drawing.Point(781, 30); + this.NUP_HordeCMin1.Name = "NUP_HordeCMin1"; + this.NUP_HordeCMin1.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeCMin1.TabIndex = 299; + // + // NUP_HordeCForme1 + // + this.NUP_HordeCForme1.Location = new System.Drawing.Point(734, 30); + this.NUP_HordeCForme1.Name = "NUP_HordeCForme1"; + this.NUP_HordeCForme1.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeCForme1.TabIndex = 298; + // + // CB_HordeC1 + // + this.CB_HordeC1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_HordeC1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_HordeC1.FormattingEnabled = true; + this.CB_HordeC1.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -19143,87 +19153,87 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_HordeC1.Location = new System.Drawing.Point(607, 29); - this.CB_HordeC1.Name = "CB_HordeC1"; - this.CB_HordeC1.Size = new System.Drawing.Size(121, 21); - this.CB_HordeC1.TabIndex = 297; - // - // label125 - // - this.label125.AutoSize = true; - this.label125.Location = new System.Drawing.Point(530, 13); - this.label125.Name = "label125"; - this.label125.Size = new System.Drawing.Size(27, 13); - this.label125.TabIndex = 296; - this.label125.Text = "Max"; - // - // label121 - // - this.label121.AutoSize = true; - this.label121.Location = new System.Drawing.Point(234, 13); - this.label121.Name = "label121"; - this.label121.Size = new System.Drawing.Size(27, 13); - this.label121.TabIndex = 296; - this.label121.Text = "Max"; - // - // label126 - // - this.label126.AutoSize = true; - this.label126.Location = new System.Drawing.Point(483, 13); - this.label126.Name = "label126"; - this.label126.Size = new System.Drawing.Size(24, 13); - this.label126.TabIndex = 295; - this.label126.Text = "Min"; - // - // label124 - // - this.label124.AutoSize = true; - this.label124.Location = new System.Drawing.Point(16, 13); - this.label124.Name = "label124"; - this.label124.Size = new System.Drawing.Size(75, 13); - this.label124.TabIndex = 293; - this.label124.Text = "Horde A (60%)"; - // - // label127 - // - this.label127.AutoSize = true; - this.label127.Location = new System.Drawing.Point(436, 13); - this.label127.Name = "label127"; - this.label127.Size = new System.Drawing.Size(36, 13); - this.label127.TabIndex = 294; - this.label127.Text = "Forme"; - // - // label122 - // - this.label122.AutoSize = true; - this.label122.Location = new System.Drawing.Point(187, 13); - this.label122.Name = "label122"; - this.label122.Size = new System.Drawing.Size(24, 13); - this.label122.TabIndex = 295; - this.label122.Text = "Min"; - // - // label128 - // - this.label128.AutoSize = true; - this.label128.Location = new System.Drawing.Point(312, 13); - this.label128.Name = "label128"; - this.label128.Size = new System.Drawing.Size(75, 13); - this.label128.TabIndex = 293; - this.label128.Text = "Horde B (35%)"; - // - // NUP_HordeBMax5 - // - this.NUP_HordeBMax5.Location = new System.Drawing.Point(533, 138); - this.NUP_HordeBMax5.Name = "NUP_HordeBMax5"; - this.NUP_HordeBMax5.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeBMax5.TabIndex = 292; - // - // CB_HordeA1 - // - this.CB_HordeA1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_HordeA1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_HordeA1.FormattingEnabled = true; - this.CB_HordeA1.Items.AddRange(new object[] { + this.CB_HordeC1.Location = new System.Drawing.Point(607, 29); + this.CB_HordeC1.Name = "CB_HordeC1"; + this.CB_HordeC1.Size = new System.Drawing.Size(121, 21); + this.CB_HordeC1.TabIndex = 297; + // + // label125 + // + this.label125.AutoSize = true; + this.label125.Location = new System.Drawing.Point(530, 13); + this.label125.Name = "label125"; + this.label125.Size = new System.Drawing.Size(27, 13); + this.label125.TabIndex = 296; + this.label125.Text = "Max"; + // + // label121 + // + this.label121.AutoSize = true; + this.label121.Location = new System.Drawing.Point(234, 13); + this.label121.Name = "label121"; + this.label121.Size = new System.Drawing.Size(27, 13); + this.label121.TabIndex = 296; + this.label121.Text = "Max"; + // + // label126 + // + this.label126.AutoSize = true; + this.label126.Location = new System.Drawing.Point(483, 13); + this.label126.Name = "label126"; + this.label126.Size = new System.Drawing.Size(24, 13); + this.label126.TabIndex = 295; + this.label126.Text = "Min"; + // + // label124 + // + this.label124.AutoSize = true; + this.label124.Location = new System.Drawing.Point(16, 13); + this.label124.Name = "label124"; + this.label124.Size = new System.Drawing.Size(75, 13); + this.label124.TabIndex = 293; + this.label124.Text = "Horde A (60%)"; + // + // label127 + // + this.label127.AutoSize = true; + this.label127.Location = new System.Drawing.Point(436, 13); + this.label127.Name = "label127"; + this.label127.Size = new System.Drawing.Size(36, 13); + this.label127.TabIndex = 294; + this.label127.Text = "Forme"; + // + // label122 + // + this.label122.AutoSize = true; + this.label122.Location = new System.Drawing.Point(187, 13); + this.label122.Name = "label122"; + this.label122.Size = new System.Drawing.Size(24, 13); + this.label122.TabIndex = 295; + this.label122.Text = "Min"; + // + // label128 + // + this.label128.AutoSize = true; + this.label128.Location = new System.Drawing.Point(312, 13); + this.label128.Name = "label128"; + this.label128.Size = new System.Drawing.Size(75, 13); + this.label128.TabIndex = 293; + this.label128.Text = "Horde B (35%)"; + // + // NUP_HordeBMax5 + // + this.NUP_HordeBMax5.Location = new System.Drawing.Point(533, 138); + this.NUP_HordeBMax5.Name = "NUP_HordeBMax5"; + this.NUP_HordeBMax5.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeBMax5.TabIndex = 292; + // + // CB_HordeA1 + // + this.CB_HordeA1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_HordeA1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_HordeA1.FormattingEnabled = true; + this.CB_HordeA1.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -19874,47 +19884,47 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_HordeA1.Location = new System.Drawing.Point(16, 29); - this.CB_HordeA1.Name = "CB_HordeA1"; - this.CB_HordeA1.Size = new System.Drawing.Size(121, 21); - this.CB_HordeA1.TabIndex = 273; - // - // NUP_HordeBMin5 - // - this.NUP_HordeBMin5.Location = new System.Drawing.Point(486, 138); - this.NUP_HordeBMin5.Name = "NUP_HordeBMin5"; - this.NUP_HordeBMin5.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeBMin5.TabIndex = 291; - // - // label123 - // - this.label123.AutoSize = true; - this.label123.Location = new System.Drawing.Point(140, 13); - this.label123.Name = "label123"; - this.label123.Size = new System.Drawing.Size(36, 13); - this.label123.TabIndex = 294; - this.label123.Text = "Forme"; - // - // NUP_HordeBForme5 - // - this.NUP_HordeBForme5.Location = new System.Drawing.Point(439, 138); - this.NUP_HordeBForme5.Name = "NUP_HordeBForme5"; - this.NUP_HordeBForme5.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeBForme5.TabIndex = 290; - // - // NUP_HordeAForme1 - // - this.NUP_HordeAForme1.Location = new System.Drawing.Point(143, 30); - this.NUP_HordeAForme1.Name = "NUP_HordeAForme1"; - this.NUP_HordeAForme1.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeAForme1.TabIndex = 274; - // - // CB_HordeB5 - // - this.CB_HordeB5.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_HordeB5.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_HordeB5.FormattingEnabled = true; - this.CB_HordeB5.Items.AddRange(new object[] { + this.CB_HordeA1.Location = new System.Drawing.Point(16, 29); + this.CB_HordeA1.Name = "CB_HordeA1"; + this.CB_HordeA1.Size = new System.Drawing.Size(121, 21); + this.CB_HordeA1.TabIndex = 273; + // + // NUP_HordeBMin5 + // + this.NUP_HordeBMin5.Location = new System.Drawing.Point(486, 138); + this.NUP_HordeBMin5.Name = "NUP_HordeBMin5"; + this.NUP_HordeBMin5.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeBMin5.TabIndex = 291; + // + // label123 + // + this.label123.AutoSize = true; + this.label123.Location = new System.Drawing.Point(140, 13); + this.label123.Name = "label123"; + this.label123.Size = new System.Drawing.Size(36, 13); + this.label123.TabIndex = 294; + this.label123.Text = "Forme"; + // + // NUP_HordeBForme5 + // + this.NUP_HordeBForme5.Location = new System.Drawing.Point(439, 138); + this.NUP_HordeBForme5.Name = "NUP_HordeBForme5"; + this.NUP_HordeBForme5.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeBForme5.TabIndex = 290; + // + // NUP_HordeAForme1 + // + this.NUP_HordeAForme1.Location = new System.Drawing.Point(143, 30); + this.NUP_HordeAForme1.Name = "NUP_HordeAForme1"; + this.NUP_HordeAForme1.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeAForme1.TabIndex = 274; + // + // CB_HordeB5 + // + this.CB_HordeB5.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_HordeB5.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_HordeB5.FormattingEnabled = true; + this.CB_HordeB5.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -20565,66 +20575,66 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_HordeB5.Location = new System.Drawing.Point(312, 137); - this.CB_HordeB5.Name = "CB_HordeB5"; - this.CB_HordeB5.Size = new System.Drawing.Size(121, 21); - this.CB_HordeB5.TabIndex = 289; - // - // NUP_HordeAMin1 - // - this.NUP_HordeAMin1.Location = new System.Drawing.Point(190, 30); - this.NUP_HordeAMin1.Name = "NUP_HordeAMin1"; - this.NUP_HordeAMin1.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeAMin1.TabIndex = 275; - // - // NUP_HordeBMax4 - // - this.NUP_HordeBMax4.Location = new System.Drawing.Point(533, 111); - this.NUP_HordeBMax4.Name = "NUP_HordeBMax4"; - this.NUP_HordeBMax4.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeBMax4.TabIndex = 288; - // - // NUP_HordeAMax5 - // - this.NUP_HordeAMax5.Location = new System.Drawing.Point(237, 138); - this.NUP_HordeAMax5.Name = "NUP_HordeAMax5"; - this.NUP_HordeAMax5.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeAMax5.TabIndex = 292; - // - // NUP_HordeBMin4 - // - this.NUP_HordeBMin4.Location = new System.Drawing.Point(486, 111); - this.NUP_HordeBMin4.Name = "NUP_HordeBMin4"; - this.NUP_HordeBMin4.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeBMin4.TabIndex = 287; - // - // NUP_HordeAMax1 - // - this.NUP_HordeAMax1.Location = new System.Drawing.Point(237, 30); - this.NUP_HordeAMax1.Name = "NUP_HordeAMax1"; - this.NUP_HordeAMax1.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeAMax1.TabIndex = 276; - // - // NUP_HordeBForme4 - // - this.NUP_HordeBForme4.Location = new System.Drawing.Point(439, 111); - this.NUP_HordeBForme4.Name = "NUP_HordeBForme4"; - this.NUP_HordeBForme4.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeBForme4.TabIndex = 286; - // - // NUP_HordeAMin5 - // - this.NUP_HordeAMin5.Location = new System.Drawing.Point(190, 138); - this.NUP_HordeAMin5.Name = "NUP_HordeAMin5"; - this.NUP_HordeAMin5.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeAMin5.TabIndex = 291; - // - // CB_HordeB4 - // - this.CB_HordeB4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_HordeB4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_HordeB4.FormattingEnabled = true; - this.CB_HordeB4.Items.AddRange(new object[] { + this.CB_HordeB5.Location = new System.Drawing.Point(312, 137); + this.CB_HordeB5.Name = "CB_HordeB5"; + this.CB_HordeB5.Size = new System.Drawing.Size(121, 21); + this.CB_HordeB5.TabIndex = 289; + // + // NUP_HordeAMin1 + // + this.NUP_HordeAMin1.Location = new System.Drawing.Point(190, 30); + this.NUP_HordeAMin1.Name = "NUP_HordeAMin1"; + this.NUP_HordeAMin1.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeAMin1.TabIndex = 275; + // + // NUP_HordeBMax4 + // + this.NUP_HordeBMax4.Location = new System.Drawing.Point(533, 111); + this.NUP_HordeBMax4.Name = "NUP_HordeBMax4"; + this.NUP_HordeBMax4.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeBMax4.TabIndex = 288; + // + // NUP_HordeAMax5 + // + this.NUP_HordeAMax5.Location = new System.Drawing.Point(237, 138); + this.NUP_HordeAMax5.Name = "NUP_HordeAMax5"; + this.NUP_HordeAMax5.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeAMax5.TabIndex = 292; + // + // NUP_HordeBMin4 + // + this.NUP_HordeBMin4.Location = new System.Drawing.Point(486, 111); + this.NUP_HordeBMin4.Name = "NUP_HordeBMin4"; + this.NUP_HordeBMin4.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeBMin4.TabIndex = 287; + // + // NUP_HordeAMax1 + // + this.NUP_HordeAMax1.Location = new System.Drawing.Point(237, 30); + this.NUP_HordeAMax1.Name = "NUP_HordeAMax1"; + this.NUP_HordeAMax1.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeAMax1.TabIndex = 276; + // + // NUP_HordeBForme4 + // + this.NUP_HordeBForme4.Location = new System.Drawing.Point(439, 111); + this.NUP_HordeBForme4.Name = "NUP_HordeBForme4"; + this.NUP_HordeBForme4.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeBForme4.TabIndex = 286; + // + // NUP_HordeAMin5 + // + this.NUP_HordeAMin5.Location = new System.Drawing.Point(190, 138); + this.NUP_HordeAMin5.Name = "NUP_HordeAMin5"; + this.NUP_HordeAMin5.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeAMin5.TabIndex = 291; + // + // CB_HordeB4 + // + this.CB_HordeB4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_HordeB4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_HordeB4.FormattingEnabled = true; + this.CB_HordeB4.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -21275,17 +21285,17 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_HordeB4.Location = new System.Drawing.Point(312, 110); - this.CB_HordeB4.Name = "CB_HordeB4"; - this.CB_HordeB4.Size = new System.Drawing.Size(121, 21); - this.CB_HordeB4.TabIndex = 285; - // - // CB_HordeA2 - // - this.CB_HordeA2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_HordeA2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_HordeA2.FormattingEnabled = true; - this.CB_HordeA2.Items.AddRange(new object[] { + this.CB_HordeB4.Location = new System.Drawing.Point(312, 110); + this.CB_HordeB4.Name = "CB_HordeB4"; + this.CB_HordeB4.Size = new System.Drawing.Size(121, 21); + this.CB_HordeB4.TabIndex = 285; + // + // CB_HordeA2 + // + this.CB_HordeA2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_HordeA2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_HordeA2.FormattingEnabled = true; + this.CB_HordeA2.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -21936,52 +21946,52 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_HordeA2.Location = new System.Drawing.Point(16, 56); - this.CB_HordeA2.Name = "CB_HordeA2"; - this.CB_HordeA2.Size = new System.Drawing.Size(121, 21); - this.CB_HordeA2.TabIndex = 277; - // - // NUP_HordeBMax3 - // - this.NUP_HordeBMax3.Location = new System.Drawing.Point(533, 84); - this.NUP_HordeBMax3.Name = "NUP_HordeBMax3"; - this.NUP_HordeBMax3.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeBMax3.TabIndex = 284; - // - // NUP_HordeAForme5 - // - this.NUP_HordeAForme5.Location = new System.Drawing.Point(143, 138); - this.NUP_HordeAForme5.Name = "NUP_HordeAForme5"; - this.NUP_HordeAForme5.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeAForme5.TabIndex = 290; - // - // NUP_HordeBMin3 - // - this.NUP_HordeBMin3.Location = new System.Drawing.Point(486, 84); - this.NUP_HordeBMin3.Name = "NUP_HordeBMin3"; - this.NUP_HordeBMin3.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeBMin3.TabIndex = 283; - // - // NUP_HordeAForme2 - // - this.NUP_HordeAForme2.Location = new System.Drawing.Point(143, 57); - this.NUP_HordeAForme2.Name = "NUP_HordeAForme2"; - this.NUP_HordeAForme2.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeAForme2.TabIndex = 278; - // - // NUP_HordeBForme3 - // - this.NUP_HordeBForme3.Location = new System.Drawing.Point(439, 84); - this.NUP_HordeBForme3.Name = "NUP_HordeBForme3"; - this.NUP_HordeBForme3.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeBForme3.TabIndex = 282; - // - // CB_HordeA5 - // - this.CB_HordeA5.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_HordeA5.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_HordeA5.FormattingEnabled = true; - this.CB_HordeA5.Items.AddRange(new object[] { + this.CB_HordeA2.Location = new System.Drawing.Point(16, 56); + this.CB_HordeA2.Name = "CB_HordeA2"; + this.CB_HordeA2.Size = new System.Drawing.Size(121, 21); + this.CB_HordeA2.TabIndex = 277; + // + // NUP_HordeBMax3 + // + this.NUP_HordeBMax3.Location = new System.Drawing.Point(533, 84); + this.NUP_HordeBMax3.Name = "NUP_HordeBMax3"; + this.NUP_HordeBMax3.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeBMax3.TabIndex = 284; + // + // NUP_HordeAForme5 + // + this.NUP_HordeAForme5.Location = new System.Drawing.Point(143, 138); + this.NUP_HordeAForme5.Name = "NUP_HordeAForme5"; + this.NUP_HordeAForme5.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeAForme5.TabIndex = 290; + // + // NUP_HordeBMin3 + // + this.NUP_HordeBMin3.Location = new System.Drawing.Point(486, 84); + this.NUP_HordeBMin3.Name = "NUP_HordeBMin3"; + this.NUP_HordeBMin3.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeBMin3.TabIndex = 283; + // + // NUP_HordeAForme2 + // + this.NUP_HordeAForme2.Location = new System.Drawing.Point(143, 57); + this.NUP_HordeAForme2.Name = "NUP_HordeAForme2"; + this.NUP_HordeAForme2.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeAForme2.TabIndex = 278; + // + // NUP_HordeBForme3 + // + this.NUP_HordeBForme3.Location = new System.Drawing.Point(439, 84); + this.NUP_HordeBForme3.Name = "NUP_HordeBForme3"; + this.NUP_HordeBForme3.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeBForme3.TabIndex = 282; + // + // CB_HordeA5 + // + this.CB_HordeA5.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_HordeA5.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_HordeA5.FormattingEnabled = true; + this.CB_HordeA5.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -22632,17 +22642,17 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_HordeA5.Location = new System.Drawing.Point(16, 137); - this.CB_HordeA5.Name = "CB_HordeA5"; - this.CB_HordeA5.Size = new System.Drawing.Size(121, 21); - this.CB_HordeA5.TabIndex = 289; - // - // CB_HordeB3 - // - this.CB_HordeB3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_HordeB3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_HordeB3.FormattingEnabled = true; - this.CB_HordeB3.Items.AddRange(new object[] { + this.CB_HordeA5.Location = new System.Drawing.Point(16, 137); + this.CB_HordeA5.Name = "CB_HordeA5"; + this.CB_HordeA5.Size = new System.Drawing.Size(121, 21); + this.CB_HordeA5.TabIndex = 289; + // + // CB_HordeB3 + // + this.CB_HordeB3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_HordeB3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_HordeB3.FormattingEnabled = true; + this.CB_HordeB3.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -23293,66 +23303,66 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_HordeB3.Location = new System.Drawing.Point(312, 83); - this.CB_HordeB3.Name = "CB_HordeB3"; - this.CB_HordeB3.Size = new System.Drawing.Size(121, 21); - this.CB_HordeB3.TabIndex = 281; - // - // NUP_HordeAMin2 - // - this.NUP_HordeAMin2.Location = new System.Drawing.Point(190, 57); - this.NUP_HordeAMin2.Name = "NUP_HordeAMin2"; - this.NUP_HordeAMin2.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeAMin2.TabIndex = 279; - // - // NUP_HordeBMax2 - // - this.NUP_HordeBMax2.Location = new System.Drawing.Point(533, 57); - this.NUP_HordeBMax2.Name = "NUP_HordeBMax2"; - this.NUP_HordeBMax2.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeBMax2.TabIndex = 280; - // - // NUP_HordeAMax4 - // - this.NUP_HordeAMax4.Location = new System.Drawing.Point(237, 111); - this.NUP_HordeAMax4.Name = "NUP_HordeAMax4"; - this.NUP_HordeAMax4.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeAMax4.TabIndex = 288; - // - // NUP_HordeBMin2 - // - this.NUP_HordeBMin2.Location = new System.Drawing.Point(486, 57); - this.NUP_HordeBMin2.Name = "NUP_HordeBMin2"; - this.NUP_HordeBMin2.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeBMin2.TabIndex = 279; - // - // NUP_HordeAMax2 - // - this.NUP_HordeAMax2.Location = new System.Drawing.Point(237, 57); - this.NUP_HordeAMax2.Name = "NUP_HordeAMax2"; - this.NUP_HordeAMax2.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeAMax2.TabIndex = 280; - // - // NUP_HordeBForme2 - // - this.NUP_HordeBForme2.Location = new System.Drawing.Point(439, 57); - this.NUP_HordeBForme2.Name = "NUP_HordeBForme2"; - this.NUP_HordeBForme2.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeBForme2.TabIndex = 278; - // - // NUP_HordeAMin4 - // - this.NUP_HordeAMin4.Location = new System.Drawing.Point(190, 111); - this.NUP_HordeAMin4.Name = "NUP_HordeAMin4"; - this.NUP_HordeAMin4.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeAMin4.TabIndex = 287; - // - // CB_HordeB2 - // - this.CB_HordeB2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_HordeB2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_HordeB2.FormattingEnabled = true; - this.CB_HordeB2.Items.AddRange(new object[] { + this.CB_HordeB3.Location = new System.Drawing.Point(312, 83); + this.CB_HordeB3.Name = "CB_HordeB3"; + this.CB_HordeB3.Size = new System.Drawing.Size(121, 21); + this.CB_HordeB3.TabIndex = 281; + // + // NUP_HordeAMin2 + // + this.NUP_HordeAMin2.Location = new System.Drawing.Point(190, 57); + this.NUP_HordeAMin2.Name = "NUP_HordeAMin2"; + this.NUP_HordeAMin2.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeAMin2.TabIndex = 279; + // + // NUP_HordeBMax2 + // + this.NUP_HordeBMax2.Location = new System.Drawing.Point(533, 57); + this.NUP_HordeBMax2.Name = "NUP_HordeBMax2"; + this.NUP_HordeBMax2.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeBMax2.TabIndex = 280; + // + // NUP_HordeAMax4 + // + this.NUP_HordeAMax4.Location = new System.Drawing.Point(237, 111); + this.NUP_HordeAMax4.Name = "NUP_HordeAMax4"; + this.NUP_HordeAMax4.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeAMax4.TabIndex = 288; + // + // NUP_HordeBMin2 + // + this.NUP_HordeBMin2.Location = new System.Drawing.Point(486, 57); + this.NUP_HordeBMin2.Name = "NUP_HordeBMin2"; + this.NUP_HordeBMin2.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeBMin2.TabIndex = 279; + // + // NUP_HordeAMax2 + // + this.NUP_HordeAMax2.Location = new System.Drawing.Point(237, 57); + this.NUP_HordeAMax2.Name = "NUP_HordeAMax2"; + this.NUP_HordeAMax2.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeAMax2.TabIndex = 280; + // + // NUP_HordeBForme2 + // + this.NUP_HordeBForme2.Location = new System.Drawing.Point(439, 57); + this.NUP_HordeBForme2.Name = "NUP_HordeBForme2"; + this.NUP_HordeBForme2.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeBForme2.TabIndex = 278; + // + // NUP_HordeAMin4 + // + this.NUP_HordeAMin4.Location = new System.Drawing.Point(190, 111); + this.NUP_HordeAMin4.Name = "NUP_HordeAMin4"; + this.NUP_HordeAMin4.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeAMin4.TabIndex = 287; + // + // CB_HordeB2 + // + this.CB_HordeB2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_HordeB2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_HordeB2.FormattingEnabled = true; + this.CB_HordeB2.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -24003,17 +24013,17 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_HordeB2.Location = new System.Drawing.Point(312, 56); - this.CB_HordeB2.Name = "CB_HordeB2"; - this.CB_HordeB2.Size = new System.Drawing.Size(121, 21); - this.CB_HordeB2.TabIndex = 277; - // - // CB_HordeA3 - // - this.CB_HordeA3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_HordeA3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_HordeA3.FormattingEnabled = true; - this.CB_HordeA3.Items.AddRange(new object[] { + this.CB_HordeB2.Location = new System.Drawing.Point(312, 56); + this.CB_HordeB2.Name = "CB_HordeB2"; + this.CB_HordeB2.Size = new System.Drawing.Size(121, 21); + this.CB_HordeB2.TabIndex = 277; + // + // CB_HordeA3 + // + this.CB_HordeA3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_HordeA3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_HordeA3.FormattingEnabled = true; + this.CB_HordeA3.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -24664,52 +24674,52 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_HordeA3.Location = new System.Drawing.Point(16, 83); - this.CB_HordeA3.Name = "CB_HordeA3"; - this.CB_HordeA3.Size = new System.Drawing.Size(121, 21); - this.CB_HordeA3.TabIndex = 281; - // - // NUP_HordeBMax1 - // - this.NUP_HordeBMax1.Location = new System.Drawing.Point(533, 30); - this.NUP_HordeBMax1.Name = "NUP_HordeBMax1"; - this.NUP_HordeBMax1.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeBMax1.TabIndex = 276; - // - // NUP_HordeAForme4 - // - this.NUP_HordeAForme4.Location = new System.Drawing.Point(143, 111); - this.NUP_HordeAForme4.Name = "NUP_HordeAForme4"; - this.NUP_HordeAForme4.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeAForme4.TabIndex = 286; - // - // NUP_HordeBMin1 - // - this.NUP_HordeBMin1.Location = new System.Drawing.Point(486, 30); - this.NUP_HordeBMin1.Name = "NUP_HordeBMin1"; - this.NUP_HordeBMin1.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeBMin1.TabIndex = 275; - // - // NUP_HordeAForme3 - // - this.NUP_HordeAForme3.Location = new System.Drawing.Point(143, 84); - this.NUP_HordeAForme3.Name = "NUP_HordeAForme3"; - this.NUP_HordeAForme3.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeAForme3.TabIndex = 282; - // - // NUP_HordeBForme1 - // - this.NUP_HordeBForme1.Location = new System.Drawing.Point(439, 30); - this.NUP_HordeBForme1.Name = "NUP_HordeBForme1"; - this.NUP_HordeBForme1.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeBForme1.TabIndex = 274; - // - // CB_HordeA4 - // - this.CB_HordeA4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_HordeA4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_HordeA4.FormattingEnabled = true; - this.CB_HordeA4.Items.AddRange(new object[] { + this.CB_HordeA3.Location = new System.Drawing.Point(16, 83); + this.CB_HordeA3.Name = "CB_HordeA3"; + this.CB_HordeA3.Size = new System.Drawing.Size(121, 21); + this.CB_HordeA3.TabIndex = 281; + // + // NUP_HordeBMax1 + // + this.NUP_HordeBMax1.Location = new System.Drawing.Point(533, 30); + this.NUP_HordeBMax1.Name = "NUP_HordeBMax1"; + this.NUP_HordeBMax1.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeBMax1.TabIndex = 276; + // + // NUP_HordeAForme4 + // + this.NUP_HordeAForme4.Location = new System.Drawing.Point(143, 111); + this.NUP_HordeAForme4.Name = "NUP_HordeAForme4"; + this.NUP_HordeAForme4.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeAForme4.TabIndex = 286; + // + // NUP_HordeBMin1 + // + this.NUP_HordeBMin1.Location = new System.Drawing.Point(486, 30); + this.NUP_HordeBMin1.Name = "NUP_HordeBMin1"; + this.NUP_HordeBMin1.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeBMin1.TabIndex = 275; + // + // NUP_HordeAForme3 + // + this.NUP_HordeAForme3.Location = new System.Drawing.Point(143, 84); + this.NUP_HordeAForme3.Name = "NUP_HordeAForme3"; + this.NUP_HordeAForme3.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeAForme3.TabIndex = 282; + // + // NUP_HordeBForme1 + // + this.NUP_HordeBForme1.Location = new System.Drawing.Point(439, 30); + this.NUP_HordeBForme1.Name = "NUP_HordeBForme1"; + this.NUP_HordeBForme1.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeBForme1.TabIndex = 274; + // + // CB_HordeA4 + // + this.CB_HordeA4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_HordeA4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_HordeA4.FormattingEnabled = true; + this.CB_HordeA4.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -25360,17 +25370,17 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_HordeA4.Location = new System.Drawing.Point(16, 110); - this.CB_HordeA4.Name = "CB_HordeA4"; - this.CB_HordeA4.Size = new System.Drawing.Size(121, 21); - this.CB_HordeA4.TabIndex = 285; - // - // CB_HordeB1 - // - this.CB_HordeB1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_HordeB1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_HordeB1.FormattingEnabled = true; - this.CB_HordeB1.Items.AddRange(new object[] { + this.CB_HordeA4.Location = new System.Drawing.Point(16, 110); + this.CB_HordeA4.Name = "CB_HordeA4"; + this.CB_HordeA4.Size = new System.Drawing.Size(121, 21); + this.CB_HordeA4.TabIndex = 285; + // + // CB_HordeB1 + // + this.CB_HordeB1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_HordeB1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_HordeB1.FormattingEnabled = true; + this.CB_HordeB1.Items.AddRange(new object[] { "-----", "Bulbasaur", "Ivysaur", @@ -26021,1749 +26031,1749 @@ private void InitializeComponent() "Keldeo", "Meloetta", "Genesect"}); - this.CB_HordeB1.Location = new System.Drawing.Point(312, 29); - this.CB_HordeB1.Name = "CB_HordeB1"; - this.CB_HordeB1.Size = new System.Drawing.Size(121, 21); - this.CB_HordeB1.TabIndex = 273; - // - // NUP_HordeAMin3 - // - this.NUP_HordeAMin3.Location = new System.Drawing.Point(190, 84); - this.NUP_HordeAMin3.Name = "NUP_HordeAMin3"; - this.NUP_HordeAMin3.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeAMin3.TabIndex = 283; - // - // NUP_HordeAMax3 - // - this.NUP_HordeAMax3.Location = new System.Drawing.Point(237, 84); - this.NUP_HordeAMax3.Name = "NUP_HordeAMax3"; - this.NUP_HordeAMax3.Size = new System.Drawing.Size(41, 20); - this.NUP_HordeAMax3.TabIndex = 284; - // - // tabPage1 - // - this.tabPage1.Controls.Add(this.NUP_RedForme11); - this.tabPage1.Controls.Add(this.NUP_RedMin11); - this.tabPage1.Controls.Add(this.NUP_RedMax11); - this.tabPage1.Controls.Add(this.NUP_RedForme12); - this.tabPage1.Controls.Add(this.NUP_RedMin12); - this.tabPage1.Controls.Add(this.NUP_RedMax12); - this.tabPage1.Controls.Add(this.NUP_PurpleForme11); - this.tabPage1.Controls.Add(this.NUP_PurpleMin11); - this.tabPage1.Controls.Add(this.NUP_PurpleMax11); - this.tabPage1.Controls.Add(this.NUP_PurpleForme12); - this.tabPage1.Controls.Add(this.NUP_PurpleMin12); - this.tabPage1.Controls.Add(this.NUP_PurpleMax12); - this.tabPage1.Controls.Add(this.NUP_YellowForme11); - this.tabPage1.Controls.Add(this.NUP_YellowMin11); - this.tabPage1.Controls.Add(this.NUP_YellowMax11); - this.tabPage1.Controls.Add(this.NUP_YellowForme12); - this.tabPage1.Controls.Add(this.NUP_YellowMin12); - this.tabPage1.Controls.Add(this.NUP_YellowMax12); - this.tabPage1.Controls.Add(this.NUP_RedForme1); - this.tabPage1.Controls.Add(this.NUP_RedMin1); - this.tabPage1.Controls.Add(this.label82); - this.tabPage1.Controls.Add(this.NUP_RedMax1); - this.tabPage1.Controls.Add(this.label83); - this.tabPage1.Controls.Add(this.NUP_RedForme2); - this.tabPage1.Controls.Add(this.label84); - this.tabPage1.Controls.Add(this.NUP_RedMin2); - this.tabPage1.Controls.Add(this.label85); - this.tabPage1.Controls.Add(this.NUP_RedMax2); - this.tabPage1.Controls.Add(this.CB_Purple12); - this.tabPage1.Controls.Add(this.NUP_RedForme3); - this.tabPage1.Controls.Add(this.CB_Purple11); - this.tabPage1.Controls.Add(this.NUP_RedMin3); - this.tabPage1.Controls.Add(this.CB_Purple10); - this.tabPage1.Controls.Add(this.NUP_RedMax3); - this.tabPage1.Controls.Add(this.CB_Purple9); - this.tabPage1.Controls.Add(this.NUP_RedForme4); - this.tabPage1.Controls.Add(this.CB_Purple8); - this.tabPage1.Controls.Add(this.NUP_RedMin4); - this.tabPage1.Controls.Add(this.CB_Purple7); - this.tabPage1.Controls.Add(this.NUP_RedMax4); - this.tabPage1.Controls.Add(this.CB_Purple6); - this.tabPage1.Controls.Add(this.NUP_RedForme5); - this.tabPage1.Controls.Add(this.CB_Purple5); - this.tabPage1.Controls.Add(this.NUP_RedMin5); - this.tabPage1.Controls.Add(this.CB_Purple4); - this.tabPage1.Controls.Add(this.NUP_RedMax5); - this.tabPage1.Controls.Add(this.CB_Purple3); - this.tabPage1.Controls.Add(this.NUP_RedForme6); - this.tabPage1.Controls.Add(this.CB_Purple2); - this.tabPage1.Controls.Add(this.NUP_RedMin6); - this.tabPage1.Controls.Add(this.CB_Purple1); - this.tabPage1.Controls.Add(this.NUP_RedMax6); - this.tabPage1.Controls.Add(this.label86); - this.tabPage1.Controls.Add(this.NUP_RedForme7); - this.tabPage1.Controls.Add(this.label87); - this.tabPage1.Controls.Add(this.NUP_RedMin7); - this.tabPage1.Controls.Add(this.label88); - this.tabPage1.Controls.Add(this.NUP_RedMax7); - this.tabPage1.Controls.Add(this.label89); - this.tabPage1.Controls.Add(this.NUP_RedForme8); - this.tabPage1.Controls.Add(this.label90); - this.tabPage1.Controls.Add(this.NUP_RedMin8); - this.tabPage1.Controls.Add(this.label91); - this.tabPage1.Controls.Add(this.NUP_RedMax8); - this.tabPage1.Controls.Add(this.label92); - this.tabPage1.Controls.Add(this.NUP_RedForme9); - this.tabPage1.Controls.Add(this.label93); - this.tabPage1.Controls.Add(this.NUP_RedMin9); - this.tabPage1.Controls.Add(this.label94); - this.tabPage1.Controls.Add(this.NUP_RedMax9); - this.tabPage1.Controls.Add(this.label95); - this.tabPage1.Controls.Add(this.NUP_RedForme10); - this.tabPage1.Controls.Add(this.label96); - this.tabPage1.Controls.Add(this.NUP_RedMin10); - this.tabPage1.Controls.Add(this.label97); - this.tabPage1.Controls.Add(this.NUP_RedMax10); - this.tabPage1.Controls.Add(this.NUP_PurpleForme1); - this.tabPage1.Controls.Add(this.NUP_PurpleMin1); - this.tabPage1.Controls.Add(this.label66); - this.tabPage1.Controls.Add(this.NUP_PurpleMax1); - this.tabPage1.Controls.Add(this.label67); - this.tabPage1.Controls.Add(this.NUP_PurpleForme2); - this.tabPage1.Controls.Add(this.label68); - this.tabPage1.Controls.Add(this.NUP_PurpleMin2); - this.tabPage1.Controls.Add(this.label69); - this.tabPage1.Controls.Add(this.NUP_PurpleMax2); - this.tabPage1.Controls.Add(this.CB_Red12); - this.tabPage1.Controls.Add(this.NUP_PurpleForme3); - this.tabPage1.Controls.Add(this.CB_Red11); - this.tabPage1.Controls.Add(this.NUP_PurpleMin3); - this.tabPage1.Controls.Add(this.CB_Red10); - this.tabPage1.Controls.Add(this.NUP_PurpleMax3); - this.tabPage1.Controls.Add(this.CB_Red9); - this.tabPage1.Controls.Add(this.NUP_PurpleForme4); - this.tabPage1.Controls.Add(this.CB_Red8); - this.tabPage1.Controls.Add(this.NUP_PurpleMin4); - this.tabPage1.Controls.Add(this.CB_Red7); - this.tabPage1.Controls.Add(this.NUP_PurpleMax4); - this.tabPage1.Controls.Add(this.CB_Red6); - this.tabPage1.Controls.Add(this.NUP_PurpleForme5); - this.tabPage1.Controls.Add(this.CB_Red5); - this.tabPage1.Controls.Add(this.NUP_PurpleMin5); - this.tabPage1.Controls.Add(this.CB_Red4); - this.tabPage1.Controls.Add(this.NUP_PurpleMax5); - this.tabPage1.Controls.Add(this.CB_Red3); - this.tabPage1.Controls.Add(this.NUP_PurpleForme6); - this.tabPage1.Controls.Add(this.CB_Red2); - this.tabPage1.Controls.Add(this.NUP_PurpleMin6); - this.tabPage1.Controls.Add(this.CB_Red1); - this.tabPage1.Controls.Add(this.NUP_PurpleMax6); - this.tabPage1.Controls.Add(this.label70); - this.tabPage1.Controls.Add(this.NUP_PurpleForme7); - this.tabPage1.Controls.Add(this.label71); - this.tabPage1.Controls.Add(this.NUP_PurpleMin7); - this.tabPage1.Controls.Add(this.label72); - this.tabPage1.Controls.Add(this.NUP_PurpleMax7); - this.tabPage1.Controls.Add(this.label73); - this.tabPage1.Controls.Add(this.NUP_PurpleForme8); - this.tabPage1.Controls.Add(this.label74); - this.tabPage1.Controls.Add(this.NUP_PurpleMin8); - this.tabPage1.Controls.Add(this.label75); - this.tabPage1.Controls.Add(this.NUP_PurpleMax8); - this.tabPage1.Controls.Add(this.label76); - this.tabPage1.Controls.Add(this.NUP_PurpleForme9); - this.tabPage1.Controls.Add(this.label77); - this.tabPage1.Controls.Add(this.NUP_PurpleMin9); - this.tabPage1.Controls.Add(this.label78); - this.tabPage1.Controls.Add(this.NUP_PurpleMax9); - this.tabPage1.Controls.Add(this.label79); - this.tabPage1.Controls.Add(this.NUP_PurpleForme10); - this.tabPage1.Controls.Add(this.label80); - this.tabPage1.Controls.Add(this.NUP_PurpleMin10); - this.tabPage1.Controls.Add(this.label81); - this.tabPage1.Controls.Add(this.NUP_PurpleMax10); - this.tabPage1.Controls.Add(this.NUP_YellowForme1); - this.tabPage1.Controls.Add(this.NUP_YellowMin1); - this.tabPage1.Controls.Add(this.label50); - this.tabPage1.Controls.Add(this.NUP_YellowMax1); - this.tabPage1.Controls.Add(this.label51); - this.tabPage1.Controls.Add(this.NUP_YellowForme2); - this.tabPage1.Controls.Add(this.label52); - this.tabPage1.Controls.Add(this.NUP_YellowMin2); - this.tabPage1.Controls.Add(this.label53); - this.tabPage1.Controls.Add(this.NUP_YellowMax2); - this.tabPage1.Controls.Add(this.CB_Yellow12); - this.tabPage1.Controls.Add(this.NUP_YellowForme3); - this.tabPage1.Controls.Add(this.CB_Yellow11); - this.tabPage1.Controls.Add(this.NUP_YellowMin3); - this.tabPage1.Controls.Add(this.CB_Yellow10); - this.tabPage1.Controls.Add(this.NUP_YellowMax3); - this.tabPage1.Controls.Add(this.CB_Yellow9); - this.tabPage1.Controls.Add(this.NUP_YellowForme4); - this.tabPage1.Controls.Add(this.CB_Yellow8); - this.tabPage1.Controls.Add(this.NUP_YellowMin4); - this.tabPage1.Controls.Add(this.CB_Yellow7); - this.tabPage1.Controls.Add(this.NUP_YellowMax4); - this.tabPage1.Controls.Add(this.CB_Yellow6); - this.tabPage1.Controls.Add(this.NUP_YellowForme5); - this.tabPage1.Controls.Add(this.CB_Yellow5); - this.tabPage1.Controls.Add(this.NUP_YellowMin5); - this.tabPage1.Controls.Add(this.CB_Yellow4); - this.tabPage1.Controls.Add(this.NUP_YellowMax5); - this.tabPage1.Controls.Add(this.CB_Yellow3); - this.tabPage1.Controls.Add(this.NUP_YellowForme6); - this.tabPage1.Controls.Add(this.CB_Yellow2); - this.tabPage1.Controls.Add(this.NUP_YellowMin6); - this.tabPage1.Controls.Add(this.CB_Yellow1); - this.tabPage1.Controls.Add(this.NUP_YellowMax6); - this.tabPage1.Controls.Add(this.label54); - this.tabPage1.Controls.Add(this.NUP_YellowForme7); - this.tabPage1.Controls.Add(this.label55); - this.tabPage1.Controls.Add(this.NUP_YellowMin7); - this.tabPage1.Controls.Add(this.label56); - this.tabPage1.Controls.Add(this.NUP_YellowMax7); - this.tabPage1.Controls.Add(this.label57); - this.tabPage1.Controls.Add(this.NUP_YellowForme8); - this.tabPage1.Controls.Add(this.label58); - this.tabPage1.Controls.Add(this.NUP_YellowMin8); - this.tabPage1.Controls.Add(this.label59); - this.tabPage1.Controls.Add(this.NUP_YellowMax8); - this.tabPage1.Controls.Add(this.label60); - this.tabPage1.Controls.Add(this.NUP_YellowForme9); - this.tabPage1.Controls.Add(this.label61); - this.tabPage1.Controls.Add(this.NUP_YellowMin9); - this.tabPage1.Controls.Add(this.label62); - this.tabPage1.Controls.Add(this.NUP_YellowMax9); - this.tabPage1.Controls.Add(this.label63); - this.tabPage1.Controls.Add(this.NUP_YellowForme10); - this.tabPage1.Controls.Add(this.label64); - this.tabPage1.Controls.Add(this.NUP_YellowMin10); - this.tabPage1.Controls.Add(this.label65); - this.tabPage1.Controls.Add(this.NUP_YellowMax10); - this.tabPage1.Location = new System.Drawing.Point(4, 22); - this.tabPage1.Name = "tabPage1"; - this.tabPage1.Padding = new System.Windows.Forms.Padding(3); - this.tabPage1.Size = new System.Drawing.Size(918, 369); - this.tabPage1.TabIndex = 3; - this.tabPage1.Text = "Flowers"; - this.tabPage1.UseVisualStyleBackColor = true; - // - // NUP_RedForme11 - // - this.NUP_RedForme11.Location = new System.Drawing.Point(773, 300); - this.NUP_RedForme11.Name = "NUP_RedForme11"; - this.NUP_RedForme11.Size = new System.Drawing.Size(41, 20); - this.NUP_RedForme11.TabIndex = 646; - // - // NUP_RedMin11 - // - this.NUP_RedMin11.Location = new System.Drawing.Point(820, 300); - this.NUP_RedMin11.Name = "NUP_RedMin11"; - this.NUP_RedMin11.Size = new System.Drawing.Size(41, 20); - this.NUP_RedMin11.TabIndex = 647; - // - // NUP_RedMax11 - // - this.NUP_RedMax11.Location = new System.Drawing.Point(867, 300); - this.NUP_RedMax11.Name = "NUP_RedMax11"; - this.NUP_RedMax11.Size = new System.Drawing.Size(41, 20); - this.NUP_RedMax11.TabIndex = 648; - // - // NUP_RedForme12 - // - this.NUP_RedForme12.Location = new System.Drawing.Point(773, 326); - this.NUP_RedForme12.Name = "NUP_RedForme12"; - this.NUP_RedForme12.Size = new System.Drawing.Size(41, 20); - this.NUP_RedForme12.TabIndex = 649; - // - // NUP_RedMin12 - // - this.NUP_RedMin12.Location = new System.Drawing.Point(820, 326); - this.NUP_RedMin12.Name = "NUP_RedMin12"; - this.NUP_RedMin12.Size = new System.Drawing.Size(41, 20); - this.NUP_RedMin12.TabIndex = 650; - // - // NUP_RedMax12 - // - this.NUP_RedMax12.Location = new System.Drawing.Point(867, 326); - this.NUP_RedMax12.Name = "NUP_RedMax12"; - this.NUP_RedMax12.Size = new System.Drawing.Size(41, 20); - this.NUP_RedMax12.TabIndex = 651; - // - // NUP_PurpleForme11 - // - this.NUP_PurpleForme11.Location = new System.Drawing.Point(472, 300); - this.NUP_PurpleForme11.Name = "NUP_PurpleForme11"; - this.NUP_PurpleForme11.Size = new System.Drawing.Size(41, 20); - this.NUP_PurpleForme11.TabIndex = 640; - // - // NUP_PurpleMin11 - // - this.NUP_PurpleMin11.Location = new System.Drawing.Point(519, 300); - this.NUP_PurpleMin11.Name = "NUP_PurpleMin11"; - this.NUP_PurpleMin11.Size = new System.Drawing.Size(41, 20); - this.NUP_PurpleMin11.TabIndex = 641; - // - // NUP_PurpleMax11 - // - this.NUP_PurpleMax11.Location = new System.Drawing.Point(566, 300); - this.NUP_PurpleMax11.Name = "NUP_PurpleMax11"; - this.NUP_PurpleMax11.Size = new System.Drawing.Size(41, 20); - this.NUP_PurpleMax11.TabIndex = 642; - // - // NUP_PurpleForme12 - // - this.NUP_PurpleForme12.Location = new System.Drawing.Point(472, 326); - this.NUP_PurpleForme12.Name = "NUP_PurpleForme12"; - this.NUP_PurpleForme12.Size = new System.Drawing.Size(41, 20); - this.NUP_PurpleForme12.TabIndex = 643; - // - // NUP_PurpleMin12 - // - this.NUP_PurpleMin12.Location = new System.Drawing.Point(519, 326); - this.NUP_PurpleMin12.Name = "NUP_PurpleMin12"; - this.NUP_PurpleMin12.Size = new System.Drawing.Size(41, 20); - this.NUP_PurpleMin12.TabIndex = 644; - // - // NUP_PurpleMax12 - // - this.NUP_PurpleMax12.Location = new System.Drawing.Point(566, 326); - this.NUP_PurpleMax12.Name = "NUP_PurpleMax12"; - this.NUP_PurpleMax12.Size = new System.Drawing.Size(41, 20); - this.NUP_PurpleMax12.TabIndex = 645; - // - // NUP_YellowForme11 - // - this.NUP_YellowForme11.Location = new System.Drawing.Point(169, 298); - this.NUP_YellowForme11.Name = "NUP_YellowForme11"; - this.NUP_YellowForme11.Size = new System.Drawing.Size(41, 20); - this.NUP_YellowForme11.TabIndex = 634; - // - // NUP_YellowMin11 - // - this.NUP_YellowMin11.Location = new System.Drawing.Point(216, 298); - this.NUP_YellowMin11.Name = "NUP_YellowMin11"; - this.NUP_YellowMin11.Size = new System.Drawing.Size(41, 20); - this.NUP_YellowMin11.TabIndex = 635; - // - // NUP_YellowMax11 - // - this.NUP_YellowMax11.Location = new System.Drawing.Point(263, 298); - this.NUP_YellowMax11.Name = "NUP_YellowMax11"; - this.NUP_YellowMax11.Size = new System.Drawing.Size(41, 20); - this.NUP_YellowMax11.TabIndex = 636; - // - // NUP_YellowForme12 - // - this.NUP_YellowForme12.Location = new System.Drawing.Point(169, 324); - this.NUP_YellowForme12.Name = "NUP_YellowForme12"; - this.NUP_YellowForme12.Size = new System.Drawing.Size(41, 20); - this.NUP_YellowForme12.TabIndex = 637; - // - // NUP_YellowMin12 - // - this.NUP_YellowMin12.Location = new System.Drawing.Point(216, 324); - this.NUP_YellowMin12.Name = "NUP_YellowMin12"; - this.NUP_YellowMin12.Size = new System.Drawing.Size(41, 20); - this.NUP_YellowMin12.TabIndex = 638; - // - // NUP_YellowMax12 - // - this.NUP_YellowMax12.Location = new System.Drawing.Point(263, 324); - this.NUP_YellowMax12.Name = "NUP_YellowMax12"; - this.NUP_YellowMax12.Size = new System.Drawing.Size(41, 20); - this.NUP_YellowMax12.TabIndex = 639; - // - // NUP_RedForme1 - // - this.NUP_RedForme1.Location = new System.Drawing.Point(773, 35); - this.NUP_RedForme1.Name = "NUP_RedForme1"; - this.NUP_RedForme1.Size = new System.Drawing.Size(41, 20); - this.NUP_RedForme1.TabIndex = 571; - // - // NUP_RedMin1 - // - this.NUP_RedMin1.Location = new System.Drawing.Point(820, 35); - this.NUP_RedMin1.Name = "NUP_RedMin1"; - this.NUP_RedMin1.Size = new System.Drawing.Size(41, 20); - this.NUP_RedMin1.TabIndex = 572; - // - // label82 - // - this.label82.AutoSize = true; - this.label82.Location = new System.Drawing.Point(772, 19); - this.label82.Name = "label82"; - this.label82.Size = new System.Drawing.Size(36, 13); - this.label82.TabIndex = 631; - this.label82.Text = "Forme"; - // - // NUP_RedMax1 - // - this.NUP_RedMax1.Location = new System.Drawing.Point(867, 35); - this.NUP_RedMax1.Name = "NUP_RedMax1"; - this.NUP_RedMax1.Size = new System.Drawing.Size(41, 20); - this.NUP_RedMax1.TabIndex = 573; - // - // label83 - // - this.label83.AutoSize = true; - this.label83.Location = new System.Drawing.Point(819, 19); - this.label83.Name = "label83"; - this.label83.Size = new System.Drawing.Size(24, 13); - this.label83.TabIndex = 632; - this.label83.Text = "Min"; - // - // NUP_RedForme2 - // - this.NUP_RedForme2.Location = new System.Drawing.Point(773, 62); - this.NUP_RedForme2.Name = "NUP_RedForme2"; - this.NUP_RedForme2.Size = new System.Drawing.Size(41, 20); - this.NUP_RedForme2.TabIndex = 574; - // - // label84 - // - this.label84.AutoSize = true; - this.label84.Location = new System.Drawing.Point(866, 19); - this.label84.Name = "label84"; - this.label84.Size = new System.Drawing.Size(27, 13); - this.label84.TabIndex = 633; - this.label84.Text = "Max"; - // - // NUP_RedMin2 - // - this.NUP_RedMin2.Location = new System.Drawing.Point(820, 62); - this.NUP_RedMin2.Name = "NUP_RedMin2"; - this.NUP_RedMin2.Size = new System.Drawing.Size(41, 20); - this.NUP_RedMin2.TabIndex = 575; - // - // label85 - // - this.label85.AutoSize = true; - this.label85.Location = new System.Drawing.Point(646, 18); - this.label85.Name = "label85"; - this.label85.Size = new System.Drawing.Size(66, 13); - this.label85.TabIndex = 630; - this.label85.Text = "Red Flowers"; - // - // NUP_RedMax2 - // - this.NUP_RedMax2.Location = new System.Drawing.Point(867, 62); - this.NUP_RedMax2.Name = "NUP_RedMax2"; - this.NUP_RedMax2.Size = new System.Drawing.Size(41, 20); - this.NUP_RedMax2.TabIndex = 576; - // - // CB_Purple12 - // - this.CB_Purple12.FormattingEnabled = true; - this.CB_Purple12.Location = new System.Drawing.Point(344, 326); - this.CB_Purple12.Name = "CB_Purple12"; - this.CB_Purple12.Size = new System.Drawing.Size(121, 21); - this.CB_Purple12.TabIndex = 629; - // - // NUP_RedForme3 - // - this.NUP_RedForme3.Location = new System.Drawing.Point(773, 89); - this.NUP_RedForme3.Name = "NUP_RedForme3"; - this.NUP_RedForme3.Size = new System.Drawing.Size(41, 20); - this.NUP_RedForme3.TabIndex = 577; - // - // CB_Purple11 - // - this.CB_Purple11.FormattingEnabled = true; - this.CB_Purple11.Location = new System.Drawing.Point(344, 300); - this.CB_Purple11.Name = "CB_Purple11"; - this.CB_Purple11.Size = new System.Drawing.Size(121, 21); - this.CB_Purple11.TabIndex = 628; - // - // NUP_RedMin3 - // - this.NUP_RedMin3.Location = new System.Drawing.Point(820, 89); - this.NUP_RedMin3.Name = "NUP_RedMin3"; - this.NUP_RedMin3.Size = new System.Drawing.Size(41, 20); - this.NUP_RedMin3.TabIndex = 578; - // - // CB_Purple10 - // - this.CB_Purple10.FormattingEnabled = true; - this.CB_Purple10.Location = new System.Drawing.Point(344, 273); - this.CB_Purple10.Name = "CB_Purple10"; - this.CB_Purple10.Size = new System.Drawing.Size(121, 21); - this.CB_Purple10.TabIndex = 627; - // - // NUP_RedMax3 - // - this.NUP_RedMax3.Location = new System.Drawing.Point(867, 89); - this.NUP_RedMax3.Name = "NUP_RedMax3"; - this.NUP_RedMax3.Size = new System.Drawing.Size(41, 20); - this.NUP_RedMax3.TabIndex = 579; - // - // CB_Purple9 - // - this.CB_Purple9.FormattingEnabled = true; - this.CB_Purple9.Location = new System.Drawing.Point(344, 247); - this.CB_Purple9.Name = "CB_Purple9"; - this.CB_Purple9.Size = new System.Drawing.Size(121, 21); - this.CB_Purple9.TabIndex = 626; - // - // NUP_RedForme4 - // - this.NUP_RedForme4.Location = new System.Drawing.Point(773, 115); - this.NUP_RedForme4.Name = "NUP_RedForme4"; - this.NUP_RedForme4.Size = new System.Drawing.Size(41, 20); - this.NUP_RedForme4.TabIndex = 580; - // - // CB_Purple8 - // - this.CB_Purple8.FormattingEnabled = true; - this.CB_Purple8.Location = new System.Drawing.Point(344, 220); - this.CB_Purple8.Name = "CB_Purple8"; - this.CB_Purple8.Size = new System.Drawing.Size(121, 21); - this.CB_Purple8.TabIndex = 625; - // - // NUP_RedMin4 - // - this.NUP_RedMin4.Location = new System.Drawing.Point(820, 115); - this.NUP_RedMin4.Name = "NUP_RedMin4"; - this.NUP_RedMin4.Size = new System.Drawing.Size(41, 20); - this.NUP_RedMin4.TabIndex = 581; - // - // CB_Purple7 - // - this.CB_Purple7.FormattingEnabled = true; - this.CB_Purple7.Location = new System.Drawing.Point(344, 194); - this.CB_Purple7.Name = "CB_Purple7"; - this.CB_Purple7.Size = new System.Drawing.Size(121, 21); - this.CB_Purple7.TabIndex = 624; - // - // NUP_RedMax4 - // - this.NUP_RedMax4.Location = new System.Drawing.Point(867, 115); - this.NUP_RedMax4.Name = "NUP_RedMax4"; - this.NUP_RedMax4.Size = new System.Drawing.Size(41, 20); - this.NUP_RedMax4.TabIndex = 582; - // - // CB_Purple6 - // - this.CB_Purple6.FormattingEnabled = true; - this.CB_Purple6.Location = new System.Drawing.Point(344, 167); - this.CB_Purple6.Name = "CB_Purple6"; - this.CB_Purple6.Size = new System.Drawing.Size(121, 21); - this.CB_Purple6.TabIndex = 623; - // - // NUP_RedForme5 - // - this.NUP_RedForme5.Location = new System.Drawing.Point(773, 142); - this.NUP_RedForme5.Name = "NUP_RedForme5"; - this.NUP_RedForme5.Size = new System.Drawing.Size(41, 20); - this.NUP_RedForme5.TabIndex = 583; - // - // CB_Purple5 - // - this.CB_Purple5.FormattingEnabled = true; - this.CB_Purple5.Location = new System.Drawing.Point(344, 141); - this.CB_Purple5.Name = "CB_Purple5"; - this.CB_Purple5.Size = new System.Drawing.Size(121, 21); - this.CB_Purple5.TabIndex = 622; - // - // NUP_RedMin5 - // - this.NUP_RedMin5.Location = new System.Drawing.Point(820, 142); - this.NUP_RedMin5.Name = "NUP_RedMin5"; - this.NUP_RedMin5.Size = new System.Drawing.Size(41, 20); - this.NUP_RedMin5.TabIndex = 584; - // - // CB_Purple4 - // - this.CB_Purple4.FormattingEnabled = true; - this.CB_Purple4.Location = new System.Drawing.Point(344, 114); - this.CB_Purple4.Name = "CB_Purple4"; - this.CB_Purple4.Size = new System.Drawing.Size(121, 21); - this.CB_Purple4.TabIndex = 621; - // - // NUP_RedMax5 - // - this.NUP_RedMax5.Location = new System.Drawing.Point(867, 142); - this.NUP_RedMax5.Name = "NUP_RedMax5"; - this.NUP_RedMax5.Size = new System.Drawing.Size(41, 20); - this.NUP_RedMax5.TabIndex = 585; - // - // CB_Purple3 - // - this.CB_Purple3.FormattingEnabled = true; - this.CB_Purple3.Location = new System.Drawing.Point(344, 88); - this.CB_Purple3.Name = "CB_Purple3"; - this.CB_Purple3.Size = new System.Drawing.Size(121, 21); - this.CB_Purple3.TabIndex = 620; - // - // NUP_RedForme6 - // - this.NUP_RedForme6.Location = new System.Drawing.Point(773, 169); - this.NUP_RedForme6.Name = "NUP_RedForme6"; - this.NUP_RedForme6.Size = new System.Drawing.Size(41, 20); - this.NUP_RedForme6.TabIndex = 586; - // - // CB_Purple2 - // - this.CB_Purple2.FormattingEnabled = true; - this.CB_Purple2.Location = new System.Drawing.Point(344, 61); - this.CB_Purple2.Name = "CB_Purple2"; - this.CB_Purple2.Size = new System.Drawing.Size(121, 21); - this.CB_Purple2.TabIndex = 619; - // - // NUP_RedMin6 - // - this.NUP_RedMin6.Location = new System.Drawing.Point(820, 169); - this.NUP_RedMin6.Name = "NUP_RedMin6"; - this.NUP_RedMin6.Size = new System.Drawing.Size(41, 20); - this.NUP_RedMin6.TabIndex = 587; - // - // CB_Purple1 - // - this.CB_Purple1.FormattingEnabled = true; - this.CB_Purple1.Location = new System.Drawing.Point(344, 35); - this.CB_Purple1.Name = "CB_Purple1"; - this.CB_Purple1.Size = new System.Drawing.Size(121, 21); - this.CB_Purple1.TabIndex = 570; - // - // NUP_RedMax6 - // - this.NUP_RedMax6.Location = new System.Drawing.Point(867, 169); - this.NUP_RedMax6.Name = "NUP_RedMax6"; - this.NUP_RedMax6.Size = new System.Drawing.Size(41, 20); - this.NUP_RedMax6.TabIndex = 588; - // - // label86 - // - this.label86.AutoSize = true; - this.label86.Location = new System.Drawing.Point(613, 38); - this.label86.Name = "label86"; - this.label86.Size = new System.Drawing.Size(27, 13); - this.label86.TabIndex = 607; - this.label86.Text = "10%"; - // - // NUP_RedForme7 - // - this.NUP_RedForme7.Location = new System.Drawing.Point(773, 195); - this.NUP_RedForme7.Name = "NUP_RedForme7"; - this.NUP_RedForme7.Size = new System.Drawing.Size(41, 20); - this.NUP_RedForme7.TabIndex = 589; - // - // label87 - // - this.label87.AutoSize = true; - this.label87.Location = new System.Drawing.Point(619, 331); - this.label87.Name = "label87"; - this.label87.Size = new System.Drawing.Size(21, 13); - this.label87.TabIndex = 618; - this.label87.Text = "1%"; - // - // NUP_RedMin7 - // - this.NUP_RedMin7.Location = new System.Drawing.Point(820, 195); - this.NUP_RedMin7.Name = "NUP_RedMin7"; - this.NUP_RedMin7.Size = new System.Drawing.Size(41, 20); - this.NUP_RedMin7.TabIndex = 590; - // - // label88 - // - this.label88.AutoSize = true; - this.label88.Location = new System.Drawing.Point(619, 304); - this.label88.Name = "label88"; - this.label88.Size = new System.Drawing.Size(21, 13); - this.label88.TabIndex = 617; - this.label88.Text = "4%"; - // - // NUP_RedMax7 - // - this.NUP_RedMax7.Location = new System.Drawing.Point(867, 195); - this.NUP_RedMax7.Name = "NUP_RedMax7"; - this.NUP_RedMax7.Size = new System.Drawing.Size(41, 20); - this.NUP_RedMax7.TabIndex = 591; - // - // label89 - // - this.label89.AutoSize = true; - this.label89.Location = new System.Drawing.Point(619, 277); - this.label89.Name = "label89"; - this.label89.Size = new System.Drawing.Size(21, 13); - this.label89.TabIndex = 616; - this.label89.Text = "5%"; - // - // NUP_RedForme8 - // - this.NUP_RedForme8.Location = new System.Drawing.Point(773, 222); - this.NUP_RedForme8.Name = "NUP_RedForme8"; - this.NUP_RedForme8.Size = new System.Drawing.Size(41, 20); - this.NUP_RedForme8.TabIndex = 592; - // - // label90 - // - this.label90.AutoSize = true; - this.label90.Location = new System.Drawing.Point(612, 251); - this.label90.Name = "label90"; - this.label90.Size = new System.Drawing.Size(27, 13); - this.label90.TabIndex = 615; - this.label90.Text = "10%"; - // - // NUP_RedMin8 - // - this.NUP_RedMin8.Location = new System.Drawing.Point(820, 222); - this.NUP_RedMin8.Name = "NUP_RedMin8"; - this.NUP_RedMin8.Size = new System.Drawing.Size(41, 20); - this.NUP_RedMin8.TabIndex = 593; - // - // label91 - // - this.label91.AutoSize = true; - this.label91.Location = new System.Drawing.Point(612, 227); - this.label91.Name = "label91"; - this.label91.Size = new System.Drawing.Size(27, 13); - this.label91.TabIndex = 614; - this.label91.Text = "10%"; - // - // NUP_RedMax8 - // - this.NUP_RedMax8.Location = new System.Drawing.Point(867, 222); - this.NUP_RedMax8.Name = "NUP_RedMax8"; - this.NUP_RedMax8.Size = new System.Drawing.Size(41, 20); - this.NUP_RedMax8.TabIndex = 594; - // - // label92 - // - this.label92.AutoSize = true; - this.label92.Location = new System.Drawing.Point(612, 200); - this.label92.Name = "label92"; - this.label92.Size = new System.Drawing.Size(27, 13); - this.label92.TabIndex = 613; - this.label92.Text = "10%"; - // - // NUP_RedForme9 - // - this.NUP_RedForme9.Location = new System.Drawing.Point(773, 249); - this.NUP_RedForme9.Name = "NUP_RedForme9"; - this.NUP_RedForme9.Size = new System.Drawing.Size(41, 20); - this.NUP_RedForme9.TabIndex = 595; - // - // label93 - // - this.label93.AutoSize = true; - this.label93.Location = new System.Drawing.Point(613, 173); - this.label93.Name = "label93"; - this.label93.Size = new System.Drawing.Size(27, 13); - this.label93.TabIndex = 612; - this.label93.Text = "10%"; - // - // NUP_RedMin9 - // - this.NUP_RedMin9.Location = new System.Drawing.Point(820, 249); - this.NUP_RedMin9.Name = "NUP_RedMin9"; - this.NUP_RedMin9.Size = new System.Drawing.Size(41, 20); - this.NUP_RedMin9.TabIndex = 596; - // - // label94 - // - this.label94.AutoSize = true; - this.label94.Location = new System.Drawing.Point(613, 146); - this.label94.Name = "label94"; - this.label94.Size = new System.Drawing.Size(27, 13); - this.label94.TabIndex = 611; - this.label94.Text = "10%"; - // - // NUP_RedMax9 - // - this.NUP_RedMax9.Location = new System.Drawing.Point(867, 249); - this.NUP_RedMax9.Name = "NUP_RedMax9"; - this.NUP_RedMax9.Size = new System.Drawing.Size(41, 20); - this.NUP_RedMax9.TabIndex = 597; - // - // label95 - // - this.label95.AutoSize = true; - this.label95.Location = new System.Drawing.Point(613, 119); - this.label95.Name = "label95"; - this.label95.Size = new System.Drawing.Size(27, 13); - this.label95.TabIndex = 610; - this.label95.Text = "10%"; - // - // NUP_RedForme10 - // - this.NUP_RedForme10.Location = new System.Drawing.Point(773, 275); - this.NUP_RedForme10.Name = "NUP_RedForme10"; - this.NUP_RedForme10.Size = new System.Drawing.Size(41, 20); - this.NUP_RedForme10.TabIndex = 598; - // - // label96 - // - this.label96.AutoSize = true; - this.label96.Location = new System.Drawing.Point(613, 92); - this.label96.Name = "label96"; - this.label96.Size = new System.Drawing.Size(27, 13); - this.label96.TabIndex = 609; - this.label96.Text = "10%"; - // - // NUP_RedMin10 - // - this.NUP_RedMin10.Location = new System.Drawing.Point(820, 275); - this.NUP_RedMin10.Name = "NUP_RedMin10"; - this.NUP_RedMin10.Size = new System.Drawing.Size(41, 20); - this.NUP_RedMin10.TabIndex = 599; - // - // label97 - // - this.label97.AutoSize = true; - this.label97.Location = new System.Drawing.Point(613, 65); - this.label97.Name = "label97"; - this.label97.Size = new System.Drawing.Size(27, 13); - this.label97.TabIndex = 608; - this.label97.Text = "10%"; - // - // NUP_RedMax10 - // - this.NUP_RedMax10.Location = new System.Drawing.Point(867, 275); - this.NUP_RedMax10.Name = "NUP_RedMax10"; - this.NUP_RedMax10.Size = new System.Drawing.Size(41, 20); - this.NUP_RedMax10.TabIndex = 600; - // - // NUP_PurpleForme1 - // - this.NUP_PurpleForme1.Location = new System.Drawing.Point(472, 35); - this.NUP_PurpleForme1.Name = "NUP_PurpleForme1"; - this.NUP_PurpleForme1.Size = new System.Drawing.Size(41, 20); - this.NUP_PurpleForme1.TabIndex = 507; - // - // NUP_PurpleMin1 - // - this.NUP_PurpleMin1.Location = new System.Drawing.Point(519, 35); - this.NUP_PurpleMin1.Name = "NUP_PurpleMin1"; - this.NUP_PurpleMin1.Size = new System.Drawing.Size(41, 20); - this.NUP_PurpleMin1.TabIndex = 508; - // - // label66 - // - this.label66.AutoSize = true; - this.label66.Location = new System.Drawing.Point(471, 19); - this.label66.Name = "label66"; - this.label66.Size = new System.Drawing.Size(36, 13); - this.label66.TabIndex = 567; - this.label66.Text = "Forme"; - // - // NUP_PurpleMax1 - // - this.NUP_PurpleMax1.Location = new System.Drawing.Point(566, 35); - this.NUP_PurpleMax1.Name = "NUP_PurpleMax1"; - this.NUP_PurpleMax1.Size = new System.Drawing.Size(41, 20); - this.NUP_PurpleMax1.TabIndex = 509; - // - // label67 - // - this.label67.AutoSize = true; - this.label67.Location = new System.Drawing.Point(518, 19); - this.label67.Name = "label67"; - this.label67.Size = new System.Drawing.Size(24, 13); - this.label67.TabIndex = 568; - this.label67.Text = "Min"; - // - // NUP_PurpleForme2 - // - this.NUP_PurpleForme2.Location = new System.Drawing.Point(472, 62); - this.NUP_PurpleForme2.Name = "NUP_PurpleForme2"; - this.NUP_PurpleForme2.Size = new System.Drawing.Size(41, 20); - this.NUP_PurpleForme2.TabIndex = 510; - // - // label68 - // - this.label68.AutoSize = true; - this.label68.Location = new System.Drawing.Point(565, 19); - this.label68.Name = "label68"; - this.label68.Size = new System.Drawing.Size(27, 13); - this.label68.TabIndex = 569; - this.label68.Text = "Max"; - // - // NUP_PurpleMin2 - // - this.NUP_PurpleMin2.Location = new System.Drawing.Point(519, 62); - this.NUP_PurpleMin2.Name = "NUP_PurpleMin2"; - this.NUP_PurpleMin2.Size = new System.Drawing.Size(41, 20); - this.NUP_PurpleMin2.TabIndex = 511; - // - // label69 - // - this.label69.AutoSize = true; - this.label69.Location = new System.Drawing.Point(344, 18); - this.label69.Name = "label69"; - this.label69.Size = new System.Drawing.Size(76, 13); - this.label69.TabIndex = 566; - this.label69.Text = "Purple Flowers"; - // - // NUP_PurpleMax2 - // - this.NUP_PurpleMax2.Location = new System.Drawing.Point(566, 62); - this.NUP_PurpleMax2.Name = "NUP_PurpleMax2"; - this.NUP_PurpleMax2.Size = new System.Drawing.Size(41, 20); - this.NUP_PurpleMax2.TabIndex = 512; - // - // CB_Red12 - // - this.CB_Red12.FormattingEnabled = true; - this.CB_Red12.Location = new System.Drawing.Point(646, 327); - this.CB_Red12.Name = "CB_Red12"; - this.CB_Red12.Size = new System.Drawing.Size(121, 21); - this.CB_Red12.TabIndex = 565; - // - // NUP_PurpleForme3 - // - this.NUP_PurpleForme3.Location = new System.Drawing.Point(472, 89); - this.NUP_PurpleForme3.Name = "NUP_PurpleForme3"; - this.NUP_PurpleForme3.Size = new System.Drawing.Size(41, 20); - this.NUP_PurpleForme3.TabIndex = 513; - // - // CB_Red11 - // - this.CB_Red11.FormattingEnabled = true; - this.CB_Red11.Location = new System.Drawing.Point(646, 301); - this.CB_Red11.Name = "CB_Red11"; - this.CB_Red11.Size = new System.Drawing.Size(121, 21); - this.CB_Red11.TabIndex = 564; - // - // NUP_PurpleMin3 - // - this.NUP_PurpleMin3.Location = new System.Drawing.Point(519, 89); - this.NUP_PurpleMin3.Name = "NUP_PurpleMin3"; - this.NUP_PurpleMin3.Size = new System.Drawing.Size(41, 20); - this.NUP_PurpleMin3.TabIndex = 514; - // - // CB_Red10 - // - this.CB_Red10.FormattingEnabled = true; - this.CB_Red10.Location = new System.Drawing.Point(646, 274); - this.CB_Red10.Name = "CB_Red10"; - this.CB_Red10.Size = new System.Drawing.Size(121, 21); - this.CB_Red10.TabIndex = 563; - // - // NUP_PurpleMax3 - // - this.NUP_PurpleMax3.Location = new System.Drawing.Point(566, 89); - this.NUP_PurpleMax3.Name = "NUP_PurpleMax3"; - this.NUP_PurpleMax3.Size = new System.Drawing.Size(41, 20); - this.NUP_PurpleMax3.TabIndex = 515; - // - // CB_Red9 - // - this.CB_Red9.FormattingEnabled = true; - this.CB_Red9.Location = new System.Drawing.Point(646, 248); - this.CB_Red9.Name = "CB_Red9"; - this.CB_Red9.Size = new System.Drawing.Size(121, 21); - this.CB_Red9.TabIndex = 562; - // - // NUP_PurpleForme4 - // - this.NUP_PurpleForme4.Location = new System.Drawing.Point(472, 115); - this.NUP_PurpleForme4.Name = "NUP_PurpleForme4"; - this.NUP_PurpleForme4.Size = new System.Drawing.Size(41, 20); - this.NUP_PurpleForme4.TabIndex = 516; - // - // CB_Red8 - // - this.CB_Red8.FormattingEnabled = true; - this.CB_Red8.Location = new System.Drawing.Point(646, 221); - this.CB_Red8.Name = "CB_Red8"; - this.CB_Red8.Size = new System.Drawing.Size(121, 21); - this.CB_Red8.TabIndex = 561; - // - // NUP_PurpleMin4 - // - this.NUP_PurpleMin4.Location = new System.Drawing.Point(519, 115); - this.NUP_PurpleMin4.Name = "NUP_PurpleMin4"; - this.NUP_PurpleMin4.Size = new System.Drawing.Size(41, 20); - this.NUP_PurpleMin4.TabIndex = 517; - // - // CB_Red7 - // - this.CB_Red7.FormattingEnabled = true; - this.CB_Red7.Location = new System.Drawing.Point(646, 195); - this.CB_Red7.Name = "CB_Red7"; - this.CB_Red7.Size = new System.Drawing.Size(121, 21); - this.CB_Red7.TabIndex = 560; - // - // NUP_PurpleMax4 - // - this.NUP_PurpleMax4.Location = new System.Drawing.Point(566, 115); - this.NUP_PurpleMax4.Name = "NUP_PurpleMax4"; - this.NUP_PurpleMax4.Size = new System.Drawing.Size(41, 20); - this.NUP_PurpleMax4.TabIndex = 518; - // - // CB_Red6 - // - this.CB_Red6.FormattingEnabled = true; - this.CB_Red6.Location = new System.Drawing.Point(646, 168); - this.CB_Red6.Name = "CB_Red6"; - this.CB_Red6.Size = new System.Drawing.Size(121, 21); - this.CB_Red6.TabIndex = 559; - // - // NUP_PurpleForme5 - // - this.NUP_PurpleForme5.Location = new System.Drawing.Point(472, 142); - this.NUP_PurpleForme5.Name = "NUP_PurpleForme5"; - this.NUP_PurpleForme5.Size = new System.Drawing.Size(41, 20); - this.NUP_PurpleForme5.TabIndex = 519; - // - // CB_Red5 - // - this.CB_Red5.FormattingEnabled = true; - this.CB_Red5.Location = new System.Drawing.Point(646, 142); - this.CB_Red5.Name = "CB_Red5"; - this.CB_Red5.Size = new System.Drawing.Size(121, 21); - this.CB_Red5.TabIndex = 558; - // - // NUP_PurpleMin5 - // - this.NUP_PurpleMin5.Location = new System.Drawing.Point(519, 142); - this.NUP_PurpleMin5.Name = "NUP_PurpleMin5"; - this.NUP_PurpleMin5.Size = new System.Drawing.Size(41, 20); - this.NUP_PurpleMin5.TabIndex = 520; - // - // CB_Red4 - // - this.CB_Red4.FormattingEnabled = true; - this.CB_Red4.Location = new System.Drawing.Point(646, 115); - this.CB_Red4.Name = "CB_Red4"; - this.CB_Red4.Size = new System.Drawing.Size(121, 21); - this.CB_Red4.TabIndex = 557; - // - // NUP_PurpleMax5 - // - this.NUP_PurpleMax5.Location = new System.Drawing.Point(566, 142); - this.NUP_PurpleMax5.Name = "NUP_PurpleMax5"; - this.NUP_PurpleMax5.Size = new System.Drawing.Size(41, 20); - this.NUP_PurpleMax5.TabIndex = 521; - // - // CB_Red3 - // - this.CB_Red3.FormattingEnabled = true; - this.CB_Red3.Location = new System.Drawing.Point(646, 89); - this.CB_Red3.Name = "CB_Red3"; - this.CB_Red3.Size = new System.Drawing.Size(121, 21); - this.CB_Red3.TabIndex = 556; - // - // NUP_PurpleForme6 - // - this.NUP_PurpleForme6.Location = new System.Drawing.Point(472, 169); - this.NUP_PurpleForme6.Name = "NUP_PurpleForme6"; - this.NUP_PurpleForme6.Size = new System.Drawing.Size(41, 20); - this.NUP_PurpleForme6.TabIndex = 522; - // - // CB_Red2 - // - this.CB_Red2.FormattingEnabled = true; - this.CB_Red2.Location = new System.Drawing.Point(646, 62); - this.CB_Red2.Name = "CB_Red2"; - this.CB_Red2.Size = new System.Drawing.Size(121, 21); - this.CB_Red2.TabIndex = 555; - // - // NUP_PurpleMin6 - // - this.NUP_PurpleMin6.Location = new System.Drawing.Point(519, 169); - this.NUP_PurpleMin6.Name = "NUP_PurpleMin6"; - this.NUP_PurpleMin6.Size = new System.Drawing.Size(41, 20); - this.NUP_PurpleMin6.TabIndex = 523; - // - // CB_Red1 - // - this.CB_Red1.FormattingEnabled = true; - this.CB_Red1.Location = new System.Drawing.Point(646, 36); - this.CB_Red1.Name = "CB_Red1"; - this.CB_Red1.Size = new System.Drawing.Size(121, 21); - this.CB_Red1.TabIndex = 506; - // - // NUP_PurpleMax6 - // - this.NUP_PurpleMax6.Location = new System.Drawing.Point(566, 169); - this.NUP_PurpleMax6.Name = "NUP_PurpleMax6"; - this.NUP_PurpleMax6.Size = new System.Drawing.Size(41, 20); - this.NUP_PurpleMax6.TabIndex = 524; - // - // label70 - // - this.label70.AutoSize = true; - this.label70.Location = new System.Drawing.Point(312, 38); - this.label70.Name = "label70"; - this.label70.Size = new System.Drawing.Size(27, 13); - this.label70.TabIndex = 543; - this.label70.Text = "10%"; - // - // NUP_PurpleForme7 - // - this.NUP_PurpleForme7.Location = new System.Drawing.Point(472, 195); - this.NUP_PurpleForme7.Name = "NUP_PurpleForme7"; - this.NUP_PurpleForme7.Size = new System.Drawing.Size(41, 20); - this.NUP_PurpleForme7.TabIndex = 525; - // - // label71 - // - this.label71.AutoSize = true; - this.label71.Location = new System.Drawing.Point(318, 331); - this.label71.Name = "label71"; - this.label71.Size = new System.Drawing.Size(21, 13); - this.label71.TabIndex = 554; - this.label71.Text = "1%"; - // - // NUP_PurpleMin7 - // - this.NUP_PurpleMin7.Location = new System.Drawing.Point(519, 195); - this.NUP_PurpleMin7.Name = "NUP_PurpleMin7"; - this.NUP_PurpleMin7.Size = new System.Drawing.Size(41, 20); - this.NUP_PurpleMin7.TabIndex = 526; - // - // label72 - // - this.label72.AutoSize = true; - this.label72.Location = new System.Drawing.Point(318, 304); - this.label72.Name = "label72"; - this.label72.Size = new System.Drawing.Size(21, 13); - this.label72.TabIndex = 553; - this.label72.Text = "4%"; - // - // NUP_PurpleMax7 - // - this.NUP_PurpleMax7.Location = new System.Drawing.Point(566, 195); - this.NUP_PurpleMax7.Name = "NUP_PurpleMax7"; - this.NUP_PurpleMax7.Size = new System.Drawing.Size(41, 20); - this.NUP_PurpleMax7.TabIndex = 527; - // - // label73 - // - this.label73.AutoSize = true; - this.label73.Location = new System.Drawing.Point(318, 277); - this.label73.Name = "label73"; - this.label73.Size = new System.Drawing.Size(21, 13); - this.label73.TabIndex = 552; - this.label73.Text = "5%"; - // - // NUP_PurpleForme8 - // - this.NUP_PurpleForme8.Location = new System.Drawing.Point(472, 222); - this.NUP_PurpleForme8.Name = "NUP_PurpleForme8"; - this.NUP_PurpleForme8.Size = new System.Drawing.Size(41, 20); - this.NUP_PurpleForme8.TabIndex = 528; - // - // label74 - // - this.label74.AutoSize = true; - this.label74.Location = new System.Drawing.Point(311, 251); - this.label74.Name = "label74"; - this.label74.Size = new System.Drawing.Size(27, 13); - this.label74.TabIndex = 551; - this.label74.Text = "10%"; - // - // NUP_PurpleMin8 - // - this.NUP_PurpleMin8.Location = new System.Drawing.Point(519, 222); - this.NUP_PurpleMin8.Name = "NUP_PurpleMin8"; - this.NUP_PurpleMin8.Size = new System.Drawing.Size(41, 20); - this.NUP_PurpleMin8.TabIndex = 529; - // - // label75 - // - this.label75.AutoSize = true; - this.label75.Location = new System.Drawing.Point(311, 227); - this.label75.Name = "label75"; - this.label75.Size = new System.Drawing.Size(27, 13); - this.label75.TabIndex = 550; - this.label75.Text = "10%"; - // - // NUP_PurpleMax8 - // - this.NUP_PurpleMax8.Location = new System.Drawing.Point(566, 222); - this.NUP_PurpleMax8.Name = "NUP_PurpleMax8"; - this.NUP_PurpleMax8.Size = new System.Drawing.Size(41, 20); - this.NUP_PurpleMax8.TabIndex = 530; - // - // label76 - // - this.label76.AutoSize = true; - this.label76.Location = new System.Drawing.Point(311, 200); - this.label76.Name = "label76"; - this.label76.Size = new System.Drawing.Size(27, 13); - this.label76.TabIndex = 549; - this.label76.Text = "10%"; - // - // NUP_PurpleForme9 - // - this.NUP_PurpleForme9.Location = new System.Drawing.Point(472, 249); - this.NUP_PurpleForme9.Name = "NUP_PurpleForme9"; - this.NUP_PurpleForme9.Size = new System.Drawing.Size(41, 20); - this.NUP_PurpleForme9.TabIndex = 531; - // - // label77 - // - this.label77.AutoSize = true; - this.label77.Location = new System.Drawing.Point(312, 173); - this.label77.Name = "label77"; - this.label77.Size = new System.Drawing.Size(27, 13); - this.label77.TabIndex = 548; - this.label77.Text = "10%"; - // - // NUP_PurpleMin9 - // - this.NUP_PurpleMin9.Location = new System.Drawing.Point(519, 249); - this.NUP_PurpleMin9.Name = "NUP_PurpleMin9"; - this.NUP_PurpleMin9.Size = new System.Drawing.Size(41, 20); - this.NUP_PurpleMin9.TabIndex = 532; - // - // label78 - // - this.label78.AutoSize = true; - this.label78.Location = new System.Drawing.Point(312, 146); - this.label78.Name = "label78"; - this.label78.Size = new System.Drawing.Size(27, 13); - this.label78.TabIndex = 547; - this.label78.Text = "10%"; - // - // NUP_PurpleMax9 - // - this.NUP_PurpleMax9.Location = new System.Drawing.Point(566, 249); - this.NUP_PurpleMax9.Name = "NUP_PurpleMax9"; - this.NUP_PurpleMax9.Size = new System.Drawing.Size(41, 20); - this.NUP_PurpleMax9.TabIndex = 533; - // - // label79 - // - this.label79.AutoSize = true; - this.label79.Location = new System.Drawing.Point(312, 119); - this.label79.Name = "label79"; - this.label79.Size = new System.Drawing.Size(27, 13); - this.label79.TabIndex = 546; - this.label79.Text = "10%"; - // - // NUP_PurpleForme10 - // - this.NUP_PurpleForme10.Location = new System.Drawing.Point(472, 275); - this.NUP_PurpleForme10.Name = "NUP_PurpleForme10"; - this.NUP_PurpleForme10.Size = new System.Drawing.Size(41, 20); - this.NUP_PurpleForme10.TabIndex = 534; - // - // label80 - // - this.label80.AutoSize = true; - this.label80.Location = new System.Drawing.Point(312, 92); - this.label80.Name = "label80"; - this.label80.Size = new System.Drawing.Size(27, 13); - this.label80.TabIndex = 545; - this.label80.Text = "10%"; - // - // NUP_PurpleMin10 - // - this.NUP_PurpleMin10.Location = new System.Drawing.Point(519, 275); - this.NUP_PurpleMin10.Name = "NUP_PurpleMin10"; - this.NUP_PurpleMin10.Size = new System.Drawing.Size(41, 20); - this.NUP_PurpleMin10.TabIndex = 535; - // - // label81 - // - this.label81.AutoSize = true; - this.label81.Location = new System.Drawing.Point(312, 65); - this.label81.Name = "label81"; - this.label81.Size = new System.Drawing.Size(27, 13); - this.label81.TabIndex = 544; - this.label81.Text = "10%"; - // - // NUP_PurpleMax10 - // - this.NUP_PurpleMax10.Location = new System.Drawing.Point(566, 275); - this.NUP_PurpleMax10.Name = "NUP_PurpleMax10"; - this.NUP_PurpleMax10.Size = new System.Drawing.Size(41, 20); - this.NUP_PurpleMax10.TabIndex = 536; - // - // NUP_YellowForme1 - // - this.NUP_YellowForme1.Location = new System.Drawing.Point(169, 33); - this.NUP_YellowForme1.Name = "NUP_YellowForme1"; - this.NUP_YellowForme1.Size = new System.Drawing.Size(41, 20); - this.NUP_YellowForme1.TabIndex = 443; - // - // NUP_YellowMin1 - // - this.NUP_YellowMin1.Location = new System.Drawing.Point(216, 33); - this.NUP_YellowMin1.Name = "NUP_YellowMin1"; - this.NUP_YellowMin1.Size = new System.Drawing.Size(41, 20); - this.NUP_YellowMin1.TabIndex = 444; - // - // label50 - // - this.label50.AutoSize = true; - this.label50.Location = new System.Drawing.Point(168, 17); - this.label50.Name = "label50"; - this.label50.Size = new System.Drawing.Size(36, 13); - this.label50.TabIndex = 503; - this.label50.Text = "Forme"; - // - // NUP_YellowMax1 - // - this.NUP_YellowMax1.Location = new System.Drawing.Point(263, 33); - this.NUP_YellowMax1.Name = "NUP_YellowMax1"; - this.NUP_YellowMax1.Size = new System.Drawing.Size(41, 20); - this.NUP_YellowMax1.TabIndex = 445; - // - // label51 - // - this.label51.AutoSize = true; - this.label51.Location = new System.Drawing.Point(215, 17); - this.label51.Name = "label51"; - this.label51.Size = new System.Drawing.Size(24, 13); - this.label51.TabIndex = 504; - this.label51.Text = "Min"; - // - // NUP_YellowForme2 - // - this.NUP_YellowForme2.Location = new System.Drawing.Point(169, 60); - this.NUP_YellowForme2.Name = "NUP_YellowForme2"; - this.NUP_YellowForme2.Size = new System.Drawing.Size(41, 20); - this.NUP_YellowForme2.TabIndex = 446; - // - // label52 - // - this.label52.AutoSize = true; - this.label52.Location = new System.Drawing.Point(262, 17); - this.label52.Name = "label52"; - this.label52.Size = new System.Drawing.Size(27, 13); - this.label52.TabIndex = 505; - this.label52.Text = "Max"; - // - // NUP_YellowMin2 - // - this.NUP_YellowMin2.Location = new System.Drawing.Point(216, 60); - this.NUP_YellowMin2.Name = "NUP_YellowMin2"; - this.NUP_YellowMin2.Size = new System.Drawing.Size(41, 20); - this.NUP_YellowMin2.TabIndex = 447; - // - // label53 - // - this.label53.AutoSize = true; - this.label53.Location = new System.Drawing.Point(42, 17); - this.label53.Name = "label53"; - this.label53.Size = new System.Drawing.Size(77, 13); - this.label53.TabIndex = 502; - this.label53.Text = "Yellow Flowers"; - // - // NUP_YellowMax2 - // - this.NUP_YellowMax2.Location = new System.Drawing.Point(263, 60); - this.NUP_YellowMax2.Name = "NUP_YellowMax2"; - this.NUP_YellowMax2.Size = new System.Drawing.Size(41, 20); - this.NUP_YellowMax2.TabIndex = 448; - // - // CB_Yellow12 - // - this.CB_Yellow12.FormattingEnabled = true; - this.CB_Yellow12.Location = new System.Drawing.Point(42, 324); - this.CB_Yellow12.Name = "CB_Yellow12"; - this.CB_Yellow12.Size = new System.Drawing.Size(121, 21); - this.CB_Yellow12.TabIndex = 501; - // - // NUP_YellowForme3 - // - this.NUP_YellowForme3.Location = new System.Drawing.Point(169, 87); - this.NUP_YellowForme3.Name = "NUP_YellowForme3"; - this.NUP_YellowForme3.Size = new System.Drawing.Size(41, 20); - this.NUP_YellowForme3.TabIndex = 449; - // - // CB_Yellow11 - // - this.CB_Yellow11.FormattingEnabled = true; - this.CB_Yellow11.Location = new System.Drawing.Point(42, 298); - this.CB_Yellow11.Name = "CB_Yellow11"; - this.CB_Yellow11.Size = new System.Drawing.Size(121, 21); - this.CB_Yellow11.TabIndex = 500; - // - // NUP_YellowMin3 - // - this.NUP_YellowMin3.Location = new System.Drawing.Point(216, 87); - this.NUP_YellowMin3.Name = "NUP_YellowMin3"; - this.NUP_YellowMin3.Size = new System.Drawing.Size(41, 20); - this.NUP_YellowMin3.TabIndex = 450; - // - // CB_Yellow10 - // - this.CB_Yellow10.FormattingEnabled = true; - this.CB_Yellow10.Location = new System.Drawing.Point(42, 271); - this.CB_Yellow10.Name = "CB_Yellow10"; - this.CB_Yellow10.Size = new System.Drawing.Size(121, 21); - this.CB_Yellow10.TabIndex = 499; - // - // NUP_YellowMax3 - // - this.NUP_YellowMax3.Location = new System.Drawing.Point(263, 87); - this.NUP_YellowMax3.Name = "NUP_YellowMax3"; - this.NUP_YellowMax3.Size = new System.Drawing.Size(41, 20); - this.NUP_YellowMax3.TabIndex = 451; - // - // CB_Yellow9 - // - this.CB_Yellow9.FormattingEnabled = true; - this.CB_Yellow9.Location = new System.Drawing.Point(42, 245); - this.CB_Yellow9.Name = "CB_Yellow9"; - this.CB_Yellow9.Size = new System.Drawing.Size(121, 21); - this.CB_Yellow9.TabIndex = 498; - // - // NUP_YellowForme4 - // - this.NUP_YellowForme4.Location = new System.Drawing.Point(169, 113); - this.NUP_YellowForme4.Name = "NUP_YellowForme4"; - this.NUP_YellowForme4.Size = new System.Drawing.Size(41, 20); - this.NUP_YellowForme4.TabIndex = 452; - // - // CB_Yellow8 - // - this.CB_Yellow8.FormattingEnabled = true; - this.CB_Yellow8.Location = new System.Drawing.Point(42, 218); - this.CB_Yellow8.Name = "CB_Yellow8"; - this.CB_Yellow8.Size = new System.Drawing.Size(121, 21); - this.CB_Yellow8.TabIndex = 497; - // - // NUP_YellowMin4 - // - this.NUP_YellowMin4.Location = new System.Drawing.Point(216, 113); - this.NUP_YellowMin4.Name = "NUP_YellowMin4"; - this.NUP_YellowMin4.Size = new System.Drawing.Size(41, 20); - this.NUP_YellowMin4.TabIndex = 453; - // - // CB_Yellow7 - // - this.CB_Yellow7.FormattingEnabled = true; - this.CB_Yellow7.Location = new System.Drawing.Point(42, 192); - this.CB_Yellow7.Name = "CB_Yellow7"; - this.CB_Yellow7.Size = new System.Drawing.Size(121, 21); - this.CB_Yellow7.TabIndex = 496; - // - // NUP_YellowMax4 - // - this.NUP_YellowMax4.Location = new System.Drawing.Point(263, 113); - this.NUP_YellowMax4.Name = "NUP_YellowMax4"; - this.NUP_YellowMax4.Size = new System.Drawing.Size(41, 20); - this.NUP_YellowMax4.TabIndex = 454; - // - // CB_Yellow6 - // - this.CB_Yellow6.FormattingEnabled = true; - this.CB_Yellow6.Location = new System.Drawing.Point(42, 165); - this.CB_Yellow6.Name = "CB_Yellow6"; - this.CB_Yellow6.Size = new System.Drawing.Size(121, 21); - this.CB_Yellow6.TabIndex = 495; - // - // NUP_YellowForme5 - // - this.NUP_YellowForme5.Location = new System.Drawing.Point(169, 140); - this.NUP_YellowForme5.Name = "NUP_YellowForme5"; - this.NUP_YellowForme5.Size = new System.Drawing.Size(41, 20); - this.NUP_YellowForme5.TabIndex = 455; - // - // CB_Yellow5 - // - this.CB_Yellow5.FormattingEnabled = true; - this.CB_Yellow5.Location = new System.Drawing.Point(42, 139); - this.CB_Yellow5.Name = "CB_Yellow5"; - this.CB_Yellow5.Size = new System.Drawing.Size(121, 21); - this.CB_Yellow5.TabIndex = 494; - // - // NUP_YellowMin5 - // - this.NUP_YellowMin5.Location = new System.Drawing.Point(216, 140); - this.NUP_YellowMin5.Name = "NUP_YellowMin5"; - this.NUP_YellowMin5.Size = new System.Drawing.Size(41, 20); - this.NUP_YellowMin5.TabIndex = 456; - // - // CB_Yellow4 - // - this.CB_Yellow4.FormattingEnabled = true; - this.CB_Yellow4.Location = new System.Drawing.Point(42, 112); - this.CB_Yellow4.Name = "CB_Yellow4"; - this.CB_Yellow4.Size = new System.Drawing.Size(121, 21); - this.CB_Yellow4.TabIndex = 493; - // - // NUP_YellowMax5 - // - this.NUP_YellowMax5.Location = new System.Drawing.Point(263, 140); - this.NUP_YellowMax5.Name = "NUP_YellowMax5"; - this.NUP_YellowMax5.Size = new System.Drawing.Size(41, 20); - this.NUP_YellowMax5.TabIndex = 457; - // - // CB_Yellow3 - // - this.CB_Yellow3.FormattingEnabled = true; - this.CB_Yellow3.Location = new System.Drawing.Point(42, 86); - this.CB_Yellow3.Name = "CB_Yellow3"; - this.CB_Yellow3.Size = new System.Drawing.Size(121, 21); - this.CB_Yellow3.TabIndex = 492; - // - // NUP_YellowForme6 - // - this.NUP_YellowForme6.Location = new System.Drawing.Point(169, 167); - this.NUP_YellowForme6.Name = "NUP_YellowForme6"; - this.NUP_YellowForme6.Size = new System.Drawing.Size(41, 20); - this.NUP_YellowForme6.TabIndex = 458; - // - // CB_Yellow2 - // - this.CB_Yellow2.FormattingEnabled = true; - this.CB_Yellow2.Location = new System.Drawing.Point(42, 59); - this.CB_Yellow2.Name = "CB_Yellow2"; - this.CB_Yellow2.Size = new System.Drawing.Size(121, 21); - this.CB_Yellow2.TabIndex = 491; - // - // NUP_YellowMin6 - // - this.NUP_YellowMin6.Location = new System.Drawing.Point(216, 167); - this.NUP_YellowMin6.Name = "NUP_YellowMin6"; - this.NUP_YellowMin6.Size = new System.Drawing.Size(41, 20); - this.NUP_YellowMin6.TabIndex = 459; - // - // CB_Yellow1 - // - this.CB_Yellow1.FormattingEnabled = true; - this.CB_Yellow1.Location = new System.Drawing.Point(42, 33); - this.CB_Yellow1.Name = "CB_Yellow1"; - this.CB_Yellow1.Size = new System.Drawing.Size(121, 21); - this.CB_Yellow1.TabIndex = 442; - // - // NUP_YellowMax6 - // - this.NUP_YellowMax6.Location = new System.Drawing.Point(263, 167); - this.NUP_YellowMax6.Name = "NUP_YellowMax6"; - this.NUP_YellowMax6.Size = new System.Drawing.Size(41, 20); - this.NUP_YellowMax6.TabIndex = 460; - // - // label54 - // - this.label54.AutoSize = true; - this.label54.Location = new System.Drawing.Point(9, 36); - this.label54.Name = "label54"; - this.label54.Size = new System.Drawing.Size(27, 13); - this.label54.TabIndex = 479; - this.label54.Text = "10%"; - // - // NUP_YellowForme7 - // - this.NUP_YellowForme7.Location = new System.Drawing.Point(169, 193); - this.NUP_YellowForme7.Name = "NUP_YellowForme7"; - this.NUP_YellowForme7.Size = new System.Drawing.Size(41, 20); - this.NUP_YellowForme7.TabIndex = 461; - // - // label55 - // - this.label55.AutoSize = true; - this.label55.Location = new System.Drawing.Point(15, 329); - this.label55.Name = "label55"; - this.label55.Size = new System.Drawing.Size(21, 13); - this.label55.TabIndex = 490; - this.label55.Text = "1%"; - // - // NUP_YellowMin7 - // - this.NUP_YellowMin7.Location = new System.Drawing.Point(216, 193); - this.NUP_YellowMin7.Name = "NUP_YellowMin7"; - this.NUP_YellowMin7.Size = new System.Drawing.Size(41, 20); - this.NUP_YellowMin7.TabIndex = 462; - // - // label56 - // - this.label56.AutoSize = true; - this.label56.Location = new System.Drawing.Point(15, 302); - this.label56.Name = "label56"; - this.label56.Size = new System.Drawing.Size(21, 13); - this.label56.TabIndex = 489; - this.label56.Text = "4%"; - // - // NUP_YellowMax7 - // - this.NUP_YellowMax7.Location = new System.Drawing.Point(263, 193); - this.NUP_YellowMax7.Name = "NUP_YellowMax7"; - this.NUP_YellowMax7.Size = new System.Drawing.Size(41, 20); - this.NUP_YellowMax7.TabIndex = 463; - // - // label57 - // - this.label57.AutoSize = true; - this.label57.Location = new System.Drawing.Point(15, 275); - this.label57.Name = "label57"; - this.label57.Size = new System.Drawing.Size(21, 13); - this.label57.TabIndex = 488; - this.label57.Text = "5%"; - // - // NUP_YellowForme8 - // - this.NUP_YellowForme8.Location = new System.Drawing.Point(169, 220); - this.NUP_YellowForme8.Name = "NUP_YellowForme8"; - this.NUP_YellowForme8.Size = new System.Drawing.Size(41, 20); - this.NUP_YellowForme8.TabIndex = 464; - // - // label58 - // - this.label58.AutoSize = true; - this.label58.Location = new System.Drawing.Point(8, 249); - this.label58.Name = "label58"; - this.label58.Size = new System.Drawing.Size(27, 13); - this.label58.TabIndex = 487; - this.label58.Text = "10%"; - // - // NUP_YellowMin8 - // - this.NUP_YellowMin8.Location = new System.Drawing.Point(216, 220); - this.NUP_YellowMin8.Name = "NUP_YellowMin8"; - this.NUP_YellowMin8.Size = new System.Drawing.Size(41, 20); - this.NUP_YellowMin8.TabIndex = 465; - // - // label59 - // - this.label59.AutoSize = true; - this.label59.Location = new System.Drawing.Point(8, 225); - this.label59.Name = "label59"; - this.label59.Size = new System.Drawing.Size(27, 13); - this.label59.TabIndex = 486; - this.label59.Text = "10%"; - // - // NUP_YellowMax8 - // - this.NUP_YellowMax8.Location = new System.Drawing.Point(263, 220); - this.NUP_YellowMax8.Name = "NUP_YellowMax8"; - this.NUP_YellowMax8.Size = new System.Drawing.Size(41, 20); - this.NUP_YellowMax8.TabIndex = 466; - // - // label60 - // - this.label60.AutoSize = true; - this.label60.Location = new System.Drawing.Point(8, 198); - this.label60.Name = "label60"; - this.label60.Size = new System.Drawing.Size(27, 13); - this.label60.TabIndex = 485; - this.label60.Text = "10%"; - // - // NUP_YellowForme9 - // - this.NUP_YellowForme9.Location = new System.Drawing.Point(169, 247); - this.NUP_YellowForme9.Name = "NUP_YellowForme9"; - this.NUP_YellowForme9.Size = new System.Drawing.Size(41, 20); - this.NUP_YellowForme9.TabIndex = 467; - // - // label61 - // - this.label61.AutoSize = true; - this.label61.Location = new System.Drawing.Point(9, 171); - this.label61.Name = "label61"; - this.label61.Size = new System.Drawing.Size(27, 13); - this.label61.TabIndex = 484; - this.label61.Text = "10%"; - // - // NUP_YellowMin9 - // - this.NUP_YellowMin9.Location = new System.Drawing.Point(216, 247); - this.NUP_YellowMin9.Name = "NUP_YellowMin9"; - this.NUP_YellowMin9.Size = new System.Drawing.Size(41, 20); - this.NUP_YellowMin9.TabIndex = 468; - // - // label62 - // - this.label62.AutoSize = true; - this.label62.Location = new System.Drawing.Point(9, 144); - this.label62.Name = "label62"; - this.label62.Size = new System.Drawing.Size(27, 13); - this.label62.TabIndex = 483; - this.label62.Text = "10%"; - // - // NUP_YellowMax9 - // - this.NUP_YellowMax9.Location = new System.Drawing.Point(263, 247); - this.NUP_YellowMax9.Name = "NUP_YellowMax9"; - this.NUP_YellowMax9.Size = new System.Drawing.Size(41, 20); - this.NUP_YellowMax9.TabIndex = 469; - // - // label63 - // - this.label63.AutoSize = true; - this.label63.Location = new System.Drawing.Point(9, 117); - this.label63.Name = "label63"; - this.label63.Size = new System.Drawing.Size(27, 13); - this.label63.TabIndex = 482; - this.label63.Text = "10%"; - // - // NUP_YellowForme10 - // - this.NUP_YellowForme10.Location = new System.Drawing.Point(169, 273); - this.NUP_YellowForme10.Name = "NUP_YellowForme10"; - this.NUP_YellowForme10.Size = new System.Drawing.Size(41, 20); - this.NUP_YellowForme10.TabIndex = 470; - // - // label64 - // - this.label64.AutoSize = true; - this.label64.Location = new System.Drawing.Point(9, 90); - this.label64.Name = "label64"; - this.label64.Size = new System.Drawing.Size(27, 13); - this.label64.TabIndex = 481; - this.label64.Text = "10%"; - // - // NUP_YellowMin10 - // - this.NUP_YellowMin10.Location = new System.Drawing.Point(216, 273); - this.NUP_YellowMin10.Name = "NUP_YellowMin10"; - this.NUP_YellowMin10.Size = new System.Drawing.Size(41, 20); - this.NUP_YellowMin10.TabIndex = 471; - // - // label65 - // - this.label65.AutoSize = true; - this.label65.Location = new System.Drawing.Point(9, 63); - this.label65.Name = "label65"; - this.label65.Size = new System.Drawing.Size(27, 13); - this.label65.TabIndex = 480; - this.label65.Text = "10%"; - // - // NUP_YellowMax10 - // - this.NUP_YellowMax10.Location = new System.Drawing.Point(263, 273); - this.NUP_YellowMax10.Name = "NUP_YellowMax10"; - this.NUP_YellowMax10.Size = new System.Drawing.Size(41, 20); - this.NUP_YellowMax10.TabIndex = 472; - // - // CB_LocationID - // - this.CB_LocationID.Enabled = false; - this.CB_LocationID.FormattingEnabled = true; - this.CB_LocationID.Location = new System.Drawing.Point(233, 8); - this.CB_LocationID.Name = "CB_LocationID"; - this.CB_LocationID.Size = new System.Drawing.Size(164, 21); - this.CB_LocationID.TabIndex = 407; - this.CB_LocationID.SelectedIndexChanged += new System.EventHandler(this.CB_LocationID_SelectedIndexChanged); - // - // B_Save - // - this.B_Save.Enabled = false; - this.B_Save.Location = new System.Drawing.Point(403, 7); - this.B_Save.Name = "B_Save"; - this.B_Save.Size = new System.Drawing.Size(135, 23); - this.B_Save.TabIndex = 410; - this.B_Save.Text = "Save Current Encounters"; - this.B_Save.UseVisualStyleBackColor = true; - this.B_Save.Click += new System.EventHandler(this.B_Save_Click); - // - // label134 - // - this.label134.AutoSize = true; - this.label134.Location = new System.Drawing.Point(201, 12); - this.label134.Name = "label134"; - this.label134.Size = new System.Drawing.Size(28, 13); - this.label134.TabIndex = 411; - this.label134.Text = "Loc:"; - // - // label136 - // - this.label136.AutoSize = true; - this.label136.Location = new System.Drawing.Point(752, 12); - this.label136.Name = "label136"; - this.label136.Size = new System.Drawing.Size(58, 13); - this.label136.TabIndex = 414; - this.label136.Text = "Forme List:"; - // - // CB_FormeList - // - this.CB_FormeList.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_FormeList.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_FormeList.DropDownWidth = 150; - this.CB_FormeList.FormattingEnabled = true; - this.CB_FormeList.Items.AddRange(new object[] { + this.CB_HordeB1.Location = new System.Drawing.Point(312, 29); + this.CB_HordeB1.Name = "CB_HordeB1"; + this.CB_HordeB1.Size = new System.Drawing.Size(121, 21); + this.CB_HordeB1.TabIndex = 273; + // + // NUP_HordeAMin3 + // + this.NUP_HordeAMin3.Location = new System.Drawing.Point(190, 84); + this.NUP_HordeAMin3.Name = "NUP_HordeAMin3"; + this.NUP_HordeAMin3.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeAMin3.TabIndex = 283; + // + // NUP_HordeAMax3 + // + this.NUP_HordeAMax3.Location = new System.Drawing.Point(237, 84); + this.NUP_HordeAMax3.Name = "NUP_HordeAMax3"; + this.NUP_HordeAMax3.Size = new System.Drawing.Size(41, 20); + this.NUP_HordeAMax3.TabIndex = 284; + // + // tabPage1 + // + this.tabPage1.Controls.Add(this.NUP_RedForme11); + this.tabPage1.Controls.Add(this.NUP_RedMin11); + this.tabPage1.Controls.Add(this.NUP_RedMax11); + this.tabPage1.Controls.Add(this.NUP_RedForme12); + this.tabPage1.Controls.Add(this.NUP_RedMin12); + this.tabPage1.Controls.Add(this.NUP_RedMax12); + this.tabPage1.Controls.Add(this.NUP_PurpleForme11); + this.tabPage1.Controls.Add(this.NUP_PurpleMin11); + this.tabPage1.Controls.Add(this.NUP_PurpleMax11); + this.tabPage1.Controls.Add(this.NUP_PurpleForme12); + this.tabPage1.Controls.Add(this.NUP_PurpleMin12); + this.tabPage1.Controls.Add(this.NUP_PurpleMax12); + this.tabPage1.Controls.Add(this.NUP_YellowForme11); + this.tabPage1.Controls.Add(this.NUP_YellowMin11); + this.tabPage1.Controls.Add(this.NUP_YellowMax11); + this.tabPage1.Controls.Add(this.NUP_YellowForme12); + this.tabPage1.Controls.Add(this.NUP_YellowMin12); + this.tabPage1.Controls.Add(this.NUP_YellowMax12); + this.tabPage1.Controls.Add(this.NUP_RedForme1); + this.tabPage1.Controls.Add(this.NUP_RedMin1); + this.tabPage1.Controls.Add(this.label82); + this.tabPage1.Controls.Add(this.NUP_RedMax1); + this.tabPage1.Controls.Add(this.label83); + this.tabPage1.Controls.Add(this.NUP_RedForme2); + this.tabPage1.Controls.Add(this.label84); + this.tabPage1.Controls.Add(this.NUP_RedMin2); + this.tabPage1.Controls.Add(this.label85); + this.tabPage1.Controls.Add(this.NUP_RedMax2); + this.tabPage1.Controls.Add(this.CB_Purple12); + this.tabPage1.Controls.Add(this.NUP_RedForme3); + this.tabPage1.Controls.Add(this.CB_Purple11); + this.tabPage1.Controls.Add(this.NUP_RedMin3); + this.tabPage1.Controls.Add(this.CB_Purple10); + this.tabPage1.Controls.Add(this.NUP_RedMax3); + this.tabPage1.Controls.Add(this.CB_Purple9); + this.tabPage1.Controls.Add(this.NUP_RedForme4); + this.tabPage1.Controls.Add(this.CB_Purple8); + this.tabPage1.Controls.Add(this.NUP_RedMin4); + this.tabPage1.Controls.Add(this.CB_Purple7); + this.tabPage1.Controls.Add(this.NUP_RedMax4); + this.tabPage1.Controls.Add(this.CB_Purple6); + this.tabPage1.Controls.Add(this.NUP_RedForme5); + this.tabPage1.Controls.Add(this.CB_Purple5); + this.tabPage1.Controls.Add(this.NUP_RedMin5); + this.tabPage1.Controls.Add(this.CB_Purple4); + this.tabPage1.Controls.Add(this.NUP_RedMax5); + this.tabPage1.Controls.Add(this.CB_Purple3); + this.tabPage1.Controls.Add(this.NUP_RedForme6); + this.tabPage1.Controls.Add(this.CB_Purple2); + this.tabPage1.Controls.Add(this.NUP_RedMin6); + this.tabPage1.Controls.Add(this.CB_Purple1); + this.tabPage1.Controls.Add(this.NUP_RedMax6); + this.tabPage1.Controls.Add(this.label86); + this.tabPage1.Controls.Add(this.NUP_RedForme7); + this.tabPage1.Controls.Add(this.label87); + this.tabPage1.Controls.Add(this.NUP_RedMin7); + this.tabPage1.Controls.Add(this.label88); + this.tabPage1.Controls.Add(this.NUP_RedMax7); + this.tabPage1.Controls.Add(this.label89); + this.tabPage1.Controls.Add(this.NUP_RedForme8); + this.tabPage1.Controls.Add(this.label90); + this.tabPage1.Controls.Add(this.NUP_RedMin8); + this.tabPage1.Controls.Add(this.label91); + this.tabPage1.Controls.Add(this.NUP_RedMax8); + this.tabPage1.Controls.Add(this.label92); + this.tabPage1.Controls.Add(this.NUP_RedForme9); + this.tabPage1.Controls.Add(this.label93); + this.tabPage1.Controls.Add(this.NUP_RedMin9); + this.tabPage1.Controls.Add(this.label94); + this.tabPage1.Controls.Add(this.NUP_RedMax9); + this.tabPage1.Controls.Add(this.label95); + this.tabPage1.Controls.Add(this.NUP_RedForme10); + this.tabPage1.Controls.Add(this.label96); + this.tabPage1.Controls.Add(this.NUP_RedMin10); + this.tabPage1.Controls.Add(this.label97); + this.tabPage1.Controls.Add(this.NUP_RedMax10); + this.tabPage1.Controls.Add(this.NUP_PurpleForme1); + this.tabPage1.Controls.Add(this.NUP_PurpleMin1); + this.tabPage1.Controls.Add(this.label66); + this.tabPage1.Controls.Add(this.NUP_PurpleMax1); + this.tabPage1.Controls.Add(this.label67); + this.tabPage1.Controls.Add(this.NUP_PurpleForme2); + this.tabPage1.Controls.Add(this.label68); + this.tabPage1.Controls.Add(this.NUP_PurpleMin2); + this.tabPage1.Controls.Add(this.label69); + this.tabPage1.Controls.Add(this.NUP_PurpleMax2); + this.tabPage1.Controls.Add(this.CB_Red12); + this.tabPage1.Controls.Add(this.NUP_PurpleForme3); + this.tabPage1.Controls.Add(this.CB_Red11); + this.tabPage1.Controls.Add(this.NUP_PurpleMin3); + this.tabPage1.Controls.Add(this.CB_Red10); + this.tabPage1.Controls.Add(this.NUP_PurpleMax3); + this.tabPage1.Controls.Add(this.CB_Red9); + this.tabPage1.Controls.Add(this.NUP_PurpleForme4); + this.tabPage1.Controls.Add(this.CB_Red8); + this.tabPage1.Controls.Add(this.NUP_PurpleMin4); + this.tabPage1.Controls.Add(this.CB_Red7); + this.tabPage1.Controls.Add(this.NUP_PurpleMax4); + this.tabPage1.Controls.Add(this.CB_Red6); + this.tabPage1.Controls.Add(this.NUP_PurpleForme5); + this.tabPage1.Controls.Add(this.CB_Red5); + this.tabPage1.Controls.Add(this.NUP_PurpleMin5); + this.tabPage1.Controls.Add(this.CB_Red4); + this.tabPage1.Controls.Add(this.NUP_PurpleMax5); + this.tabPage1.Controls.Add(this.CB_Red3); + this.tabPage1.Controls.Add(this.NUP_PurpleForme6); + this.tabPage1.Controls.Add(this.CB_Red2); + this.tabPage1.Controls.Add(this.NUP_PurpleMin6); + this.tabPage1.Controls.Add(this.CB_Red1); + this.tabPage1.Controls.Add(this.NUP_PurpleMax6); + this.tabPage1.Controls.Add(this.label70); + this.tabPage1.Controls.Add(this.NUP_PurpleForme7); + this.tabPage1.Controls.Add(this.label71); + this.tabPage1.Controls.Add(this.NUP_PurpleMin7); + this.tabPage1.Controls.Add(this.label72); + this.tabPage1.Controls.Add(this.NUP_PurpleMax7); + this.tabPage1.Controls.Add(this.label73); + this.tabPage1.Controls.Add(this.NUP_PurpleForme8); + this.tabPage1.Controls.Add(this.label74); + this.tabPage1.Controls.Add(this.NUP_PurpleMin8); + this.tabPage1.Controls.Add(this.label75); + this.tabPage1.Controls.Add(this.NUP_PurpleMax8); + this.tabPage1.Controls.Add(this.label76); + this.tabPage1.Controls.Add(this.NUP_PurpleForme9); + this.tabPage1.Controls.Add(this.label77); + this.tabPage1.Controls.Add(this.NUP_PurpleMin9); + this.tabPage1.Controls.Add(this.label78); + this.tabPage1.Controls.Add(this.NUP_PurpleMax9); + this.tabPage1.Controls.Add(this.label79); + this.tabPage1.Controls.Add(this.NUP_PurpleForme10); + this.tabPage1.Controls.Add(this.label80); + this.tabPage1.Controls.Add(this.NUP_PurpleMin10); + this.tabPage1.Controls.Add(this.label81); + this.tabPage1.Controls.Add(this.NUP_PurpleMax10); + this.tabPage1.Controls.Add(this.NUP_YellowForme1); + this.tabPage1.Controls.Add(this.NUP_YellowMin1); + this.tabPage1.Controls.Add(this.label50); + this.tabPage1.Controls.Add(this.NUP_YellowMax1); + this.tabPage1.Controls.Add(this.label51); + this.tabPage1.Controls.Add(this.NUP_YellowForme2); + this.tabPage1.Controls.Add(this.label52); + this.tabPage1.Controls.Add(this.NUP_YellowMin2); + this.tabPage1.Controls.Add(this.label53); + this.tabPage1.Controls.Add(this.NUP_YellowMax2); + this.tabPage1.Controls.Add(this.CB_Yellow12); + this.tabPage1.Controls.Add(this.NUP_YellowForme3); + this.tabPage1.Controls.Add(this.CB_Yellow11); + this.tabPage1.Controls.Add(this.NUP_YellowMin3); + this.tabPage1.Controls.Add(this.CB_Yellow10); + this.tabPage1.Controls.Add(this.NUP_YellowMax3); + this.tabPage1.Controls.Add(this.CB_Yellow9); + this.tabPage1.Controls.Add(this.NUP_YellowForme4); + this.tabPage1.Controls.Add(this.CB_Yellow8); + this.tabPage1.Controls.Add(this.NUP_YellowMin4); + this.tabPage1.Controls.Add(this.CB_Yellow7); + this.tabPage1.Controls.Add(this.NUP_YellowMax4); + this.tabPage1.Controls.Add(this.CB_Yellow6); + this.tabPage1.Controls.Add(this.NUP_YellowForme5); + this.tabPage1.Controls.Add(this.CB_Yellow5); + this.tabPage1.Controls.Add(this.NUP_YellowMin5); + this.tabPage1.Controls.Add(this.CB_Yellow4); + this.tabPage1.Controls.Add(this.NUP_YellowMax5); + this.tabPage1.Controls.Add(this.CB_Yellow3); + this.tabPage1.Controls.Add(this.NUP_YellowForme6); + this.tabPage1.Controls.Add(this.CB_Yellow2); + this.tabPage1.Controls.Add(this.NUP_YellowMin6); + this.tabPage1.Controls.Add(this.CB_Yellow1); + this.tabPage1.Controls.Add(this.NUP_YellowMax6); + this.tabPage1.Controls.Add(this.label54); + this.tabPage1.Controls.Add(this.NUP_YellowForme7); + this.tabPage1.Controls.Add(this.label55); + this.tabPage1.Controls.Add(this.NUP_YellowMin7); + this.tabPage1.Controls.Add(this.label56); + this.tabPage1.Controls.Add(this.NUP_YellowMax7); + this.tabPage1.Controls.Add(this.label57); + this.tabPage1.Controls.Add(this.NUP_YellowForme8); + this.tabPage1.Controls.Add(this.label58); + this.tabPage1.Controls.Add(this.NUP_YellowMin8); + this.tabPage1.Controls.Add(this.label59); + this.tabPage1.Controls.Add(this.NUP_YellowMax8); + this.tabPage1.Controls.Add(this.label60); + this.tabPage1.Controls.Add(this.NUP_YellowForme9); + this.tabPage1.Controls.Add(this.label61); + this.tabPage1.Controls.Add(this.NUP_YellowMin9); + this.tabPage1.Controls.Add(this.label62); + this.tabPage1.Controls.Add(this.NUP_YellowMax9); + this.tabPage1.Controls.Add(this.label63); + this.tabPage1.Controls.Add(this.NUP_YellowForme10); + this.tabPage1.Controls.Add(this.label64); + this.tabPage1.Controls.Add(this.NUP_YellowMin10); + this.tabPage1.Controls.Add(this.label65); + this.tabPage1.Controls.Add(this.NUP_YellowMax10); + this.tabPage1.Location = new System.Drawing.Point(4, 22); + this.tabPage1.Name = "tabPage1"; + this.tabPage1.Padding = new System.Windows.Forms.Padding(3); + this.tabPage1.Size = new System.Drawing.Size(918, 369); + this.tabPage1.TabIndex = 3; + this.tabPage1.Text = "Flowers"; + this.tabPage1.UseVisualStyleBackColor = true; + // + // NUP_RedForme11 + // + this.NUP_RedForme11.Location = new System.Drawing.Point(773, 300); + this.NUP_RedForme11.Name = "NUP_RedForme11"; + this.NUP_RedForme11.Size = new System.Drawing.Size(41, 20); + this.NUP_RedForme11.TabIndex = 646; + // + // NUP_RedMin11 + // + this.NUP_RedMin11.Location = new System.Drawing.Point(820, 300); + this.NUP_RedMin11.Name = "NUP_RedMin11"; + this.NUP_RedMin11.Size = new System.Drawing.Size(41, 20); + this.NUP_RedMin11.TabIndex = 647; + // + // NUP_RedMax11 + // + this.NUP_RedMax11.Location = new System.Drawing.Point(867, 300); + this.NUP_RedMax11.Name = "NUP_RedMax11"; + this.NUP_RedMax11.Size = new System.Drawing.Size(41, 20); + this.NUP_RedMax11.TabIndex = 648; + // + // NUP_RedForme12 + // + this.NUP_RedForme12.Location = new System.Drawing.Point(773, 326); + this.NUP_RedForme12.Name = "NUP_RedForme12"; + this.NUP_RedForme12.Size = new System.Drawing.Size(41, 20); + this.NUP_RedForme12.TabIndex = 649; + // + // NUP_RedMin12 + // + this.NUP_RedMin12.Location = new System.Drawing.Point(820, 326); + this.NUP_RedMin12.Name = "NUP_RedMin12"; + this.NUP_RedMin12.Size = new System.Drawing.Size(41, 20); + this.NUP_RedMin12.TabIndex = 650; + // + // NUP_RedMax12 + // + this.NUP_RedMax12.Location = new System.Drawing.Point(867, 326); + this.NUP_RedMax12.Name = "NUP_RedMax12"; + this.NUP_RedMax12.Size = new System.Drawing.Size(41, 20); + this.NUP_RedMax12.TabIndex = 651; + // + // NUP_PurpleForme11 + // + this.NUP_PurpleForme11.Location = new System.Drawing.Point(472, 300); + this.NUP_PurpleForme11.Name = "NUP_PurpleForme11"; + this.NUP_PurpleForme11.Size = new System.Drawing.Size(41, 20); + this.NUP_PurpleForme11.TabIndex = 640; + // + // NUP_PurpleMin11 + // + this.NUP_PurpleMin11.Location = new System.Drawing.Point(519, 300); + this.NUP_PurpleMin11.Name = "NUP_PurpleMin11"; + this.NUP_PurpleMin11.Size = new System.Drawing.Size(41, 20); + this.NUP_PurpleMin11.TabIndex = 641; + // + // NUP_PurpleMax11 + // + this.NUP_PurpleMax11.Location = new System.Drawing.Point(566, 300); + this.NUP_PurpleMax11.Name = "NUP_PurpleMax11"; + this.NUP_PurpleMax11.Size = new System.Drawing.Size(41, 20); + this.NUP_PurpleMax11.TabIndex = 642; + // + // NUP_PurpleForme12 + // + this.NUP_PurpleForme12.Location = new System.Drawing.Point(472, 326); + this.NUP_PurpleForme12.Name = "NUP_PurpleForme12"; + this.NUP_PurpleForme12.Size = new System.Drawing.Size(41, 20); + this.NUP_PurpleForme12.TabIndex = 643; + // + // NUP_PurpleMin12 + // + this.NUP_PurpleMin12.Location = new System.Drawing.Point(519, 326); + this.NUP_PurpleMin12.Name = "NUP_PurpleMin12"; + this.NUP_PurpleMin12.Size = new System.Drawing.Size(41, 20); + this.NUP_PurpleMin12.TabIndex = 644; + // + // NUP_PurpleMax12 + // + this.NUP_PurpleMax12.Location = new System.Drawing.Point(566, 326); + this.NUP_PurpleMax12.Name = "NUP_PurpleMax12"; + this.NUP_PurpleMax12.Size = new System.Drawing.Size(41, 20); + this.NUP_PurpleMax12.TabIndex = 645; + // + // NUP_YellowForme11 + // + this.NUP_YellowForme11.Location = new System.Drawing.Point(169, 298); + this.NUP_YellowForme11.Name = "NUP_YellowForme11"; + this.NUP_YellowForme11.Size = new System.Drawing.Size(41, 20); + this.NUP_YellowForme11.TabIndex = 634; + // + // NUP_YellowMin11 + // + this.NUP_YellowMin11.Location = new System.Drawing.Point(216, 298); + this.NUP_YellowMin11.Name = "NUP_YellowMin11"; + this.NUP_YellowMin11.Size = new System.Drawing.Size(41, 20); + this.NUP_YellowMin11.TabIndex = 635; + // + // NUP_YellowMax11 + // + this.NUP_YellowMax11.Location = new System.Drawing.Point(263, 298); + this.NUP_YellowMax11.Name = "NUP_YellowMax11"; + this.NUP_YellowMax11.Size = new System.Drawing.Size(41, 20); + this.NUP_YellowMax11.TabIndex = 636; + // + // NUP_YellowForme12 + // + this.NUP_YellowForme12.Location = new System.Drawing.Point(169, 324); + this.NUP_YellowForme12.Name = "NUP_YellowForme12"; + this.NUP_YellowForme12.Size = new System.Drawing.Size(41, 20); + this.NUP_YellowForme12.TabIndex = 637; + // + // NUP_YellowMin12 + // + this.NUP_YellowMin12.Location = new System.Drawing.Point(216, 324); + this.NUP_YellowMin12.Name = "NUP_YellowMin12"; + this.NUP_YellowMin12.Size = new System.Drawing.Size(41, 20); + this.NUP_YellowMin12.TabIndex = 638; + // + // NUP_YellowMax12 + // + this.NUP_YellowMax12.Location = new System.Drawing.Point(263, 324); + this.NUP_YellowMax12.Name = "NUP_YellowMax12"; + this.NUP_YellowMax12.Size = new System.Drawing.Size(41, 20); + this.NUP_YellowMax12.TabIndex = 639; + // + // NUP_RedForme1 + // + this.NUP_RedForme1.Location = new System.Drawing.Point(773, 35); + this.NUP_RedForme1.Name = "NUP_RedForme1"; + this.NUP_RedForme1.Size = new System.Drawing.Size(41, 20); + this.NUP_RedForme1.TabIndex = 571; + // + // NUP_RedMin1 + // + this.NUP_RedMin1.Location = new System.Drawing.Point(820, 35); + this.NUP_RedMin1.Name = "NUP_RedMin1"; + this.NUP_RedMin1.Size = new System.Drawing.Size(41, 20); + this.NUP_RedMin1.TabIndex = 572; + // + // label82 + // + this.label82.AutoSize = true; + this.label82.Location = new System.Drawing.Point(772, 19); + this.label82.Name = "label82"; + this.label82.Size = new System.Drawing.Size(36, 13); + this.label82.TabIndex = 631; + this.label82.Text = "Forme"; + // + // NUP_RedMax1 + // + this.NUP_RedMax1.Location = new System.Drawing.Point(867, 35); + this.NUP_RedMax1.Name = "NUP_RedMax1"; + this.NUP_RedMax1.Size = new System.Drawing.Size(41, 20); + this.NUP_RedMax1.TabIndex = 573; + // + // label83 + // + this.label83.AutoSize = true; + this.label83.Location = new System.Drawing.Point(819, 19); + this.label83.Name = "label83"; + this.label83.Size = new System.Drawing.Size(24, 13); + this.label83.TabIndex = 632; + this.label83.Text = "Min"; + // + // NUP_RedForme2 + // + this.NUP_RedForme2.Location = new System.Drawing.Point(773, 62); + this.NUP_RedForme2.Name = "NUP_RedForme2"; + this.NUP_RedForme2.Size = new System.Drawing.Size(41, 20); + this.NUP_RedForme2.TabIndex = 574; + // + // label84 + // + this.label84.AutoSize = true; + this.label84.Location = new System.Drawing.Point(866, 19); + this.label84.Name = "label84"; + this.label84.Size = new System.Drawing.Size(27, 13); + this.label84.TabIndex = 633; + this.label84.Text = "Max"; + // + // NUP_RedMin2 + // + this.NUP_RedMin2.Location = new System.Drawing.Point(820, 62); + this.NUP_RedMin2.Name = "NUP_RedMin2"; + this.NUP_RedMin2.Size = new System.Drawing.Size(41, 20); + this.NUP_RedMin2.TabIndex = 575; + // + // label85 + // + this.label85.AutoSize = true; + this.label85.Location = new System.Drawing.Point(646, 18); + this.label85.Name = "label85"; + this.label85.Size = new System.Drawing.Size(66, 13); + this.label85.TabIndex = 630; + this.label85.Text = "Red Flowers"; + // + // NUP_RedMax2 + // + this.NUP_RedMax2.Location = new System.Drawing.Point(867, 62); + this.NUP_RedMax2.Name = "NUP_RedMax2"; + this.NUP_RedMax2.Size = new System.Drawing.Size(41, 20); + this.NUP_RedMax2.TabIndex = 576; + // + // CB_Purple12 + // + this.CB_Purple12.FormattingEnabled = true; + this.CB_Purple12.Location = new System.Drawing.Point(344, 326); + this.CB_Purple12.Name = "CB_Purple12"; + this.CB_Purple12.Size = new System.Drawing.Size(121, 21); + this.CB_Purple12.TabIndex = 629; + // + // NUP_RedForme3 + // + this.NUP_RedForme3.Location = new System.Drawing.Point(773, 89); + this.NUP_RedForme3.Name = "NUP_RedForme3"; + this.NUP_RedForme3.Size = new System.Drawing.Size(41, 20); + this.NUP_RedForme3.TabIndex = 577; + // + // CB_Purple11 + // + this.CB_Purple11.FormattingEnabled = true; + this.CB_Purple11.Location = new System.Drawing.Point(344, 300); + this.CB_Purple11.Name = "CB_Purple11"; + this.CB_Purple11.Size = new System.Drawing.Size(121, 21); + this.CB_Purple11.TabIndex = 628; + // + // NUP_RedMin3 + // + this.NUP_RedMin3.Location = new System.Drawing.Point(820, 89); + this.NUP_RedMin3.Name = "NUP_RedMin3"; + this.NUP_RedMin3.Size = new System.Drawing.Size(41, 20); + this.NUP_RedMin3.TabIndex = 578; + // + // CB_Purple10 + // + this.CB_Purple10.FormattingEnabled = true; + this.CB_Purple10.Location = new System.Drawing.Point(344, 273); + this.CB_Purple10.Name = "CB_Purple10"; + this.CB_Purple10.Size = new System.Drawing.Size(121, 21); + this.CB_Purple10.TabIndex = 627; + // + // NUP_RedMax3 + // + this.NUP_RedMax3.Location = new System.Drawing.Point(867, 89); + this.NUP_RedMax3.Name = "NUP_RedMax3"; + this.NUP_RedMax3.Size = new System.Drawing.Size(41, 20); + this.NUP_RedMax3.TabIndex = 579; + // + // CB_Purple9 + // + this.CB_Purple9.FormattingEnabled = true; + this.CB_Purple9.Location = new System.Drawing.Point(344, 247); + this.CB_Purple9.Name = "CB_Purple9"; + this.CB_Purple9.Size = new System.Drawing.Size(121, 21); + this.CB_Purple9.TabIndex = 626; + // + // NUP_RedForme4 + // + this.NUP_RedForme4.Location = new System.Drawing.Point(773, 115); + this.NUP_RedForme4.Name = "NUP_RedForme4"; + this.NUP_RedForme4.Size = new System.Drawing.Size(41, 20); + this.NUP_RedForme4.TabIndex = 580; + // + // CB_Purple8 + // + this.CB_Purple8.FormattingEnabled = true; + this.CB_Purple8.Location = new System.Drawing.Point(344, 220); + this.CB_Purple8.Name = "CB_Purple8"; + this.CB_Purple8.Size = new System.Drawing.Size(121, 21); + this.CB_Purple8.TabIndex = 625; + // + // NUP_RedMin4 + // + this.NUP_RedMin4.Location = new System.Drawing.Point(820, 115); + this.NUP_RedMin4.Name = "NUP_RedMin4"; + this.NUP_RedMin4.Size = new System.Drawing.Size(41, 20); + this.NUP_RedMin4.TabIndex = 581; + // + // CB_Purple7 + // + this.CB_Purple7.FormattingEnabled = true; + this.CB_Purple7.Location = new System.Drawing.Point(344, 194); + this.CB_Purple7.Name = "CB_Purple7"; + this.CB_Purple7.Size = new System.Drawing.Size(121, 21); + this.CB_Purple7.TabIndex = 624; + // + // NUP_RedMax4 + // + this.NUP_RedMax4.Location = new System.Drawing.Point(867, 115); + this.NUP_RedMax4.Name = "NUP_RedMax4"; + this.NUP_RedMax4.Size = new System.Drawing.Size(41, 20); + this.NUP_RedMax4.TabIndex = 582; + // + // CB_Purple6 + // + this.CB_Purple6.FormattingEnabled = true; + this.CB_Purple6.Location = new System.Drawing.Point(344, 167); + this.CB_Purple6.Name = "CB_Purple6"; + this.CB_Purple6.Size = new System.Drawing.Size(121, 21); + this.CB_Purple6.TabIndex = 623; + // + // NUP_RedForme5 + // + this.NUP_RedForme5.Location = new System.Drawing.Point(773, 142); + this.NUP_RedForme5.Name = "NUP_RedForme5"; + this.NUP_RedForme5.Size = new System.Drawing.Size(41, 20); + this.NUP_RedForme5.TabIndex = 583; + // + // CB_Purple5 + // + this.CB_Purple5.FormattingEnabled = true; + this.CB_Purple5.Location = new System.Drawing.Point(344, 141); + this.CB_Purple5.Name = "CB_Purple5"; + this.CB_Purple5.Size = new System.Drawing.Size(121, 21); + this.CB_Purple5.TabIndex = 622; + // + // NUP_RedMin5 + // + this.NUP_RedMin5.Location = new System.Drawing.Point(820, 142); + this.NUP_RedMin5.Name = "NUP_RedMin5"; + this.NUP_RedMin5.Size = new System.Drawing.Size(41, 20); + this.NUP_RedMin5.TabIndex = 584; + // + // CB_Purple4 + // + this.CB_Purple4.FormattingEnabled = true; + this.CB_Purple4.Location = new System.Drawing.Point(344, 114); + this.CB_Purple4.Name = "CB_Purple4"; + this.CB_Purple4.Size = new System.Drawing.Size(121, 21); + this.CB_Purple4.TabIndex = 621; + // + // NUP_RedMax5 + // + this.NUP_RedMax5.Location = new System.Drawing.Point(867, 142); + this.NUP_RedMax5.Name = "NUP_RedMax5"; + this.NUP_RedMax5.Size = new System.Drawing.Size(41, 20); + this.NUP_RedMax5.TabIndex = 585; + // + // CB_Purple3 + // + this.CB_Purple3.FormattingEnabled = true; + this.CB_Purple3.Location = new System.Drawing.Point(344, 88); + this.CB_Purple3.Name = "CB_Purple3"; + this.CB_Purple3.Size = new System.Drawing.Size(121, 21); + this.CB_Purple3.TabIndex = 620; + // + // NUP_RedForme6 + // + this.NUP_RedForme6.Location = new System.Drawing.Point(773, 169); + this.NUP_RedForme6.Name = "NUP_RedForme6"; + this.NUP_RedForme6.Size = new System.Drawing.Size(41, 20); + this.NUP_RedForme6.TabIndex = 586; + // + // CB_Purple2 + // + this.CB_Purple2.FormattingEnabled = true; + this.CB_Purple2.Location = new System.Drawing.Point(344, 61); + this.CB_Purple2.Name = "CB_Purple2"; + this.CB_Purple2.Size = new System.Drawing.Size(121, 21); + this.CB_Purple2.TabIndex = 619; + // + // NUP_RedMin6 + // + this.NUP_RedMin6.Location = new System.Drawing.Point(820, 169); + this.NUP_RedMin6.Name = "NUP_RedMin6"; + this.NUP_RedMin6.Size = new System.Drawing.Size(41, 20); + this.NUP_RedMin6.TabIndex = 587; + // + // CB_Purple1 + // + this.CB_Purple1.FormattingEnabled = true; + this.CB_Purple1.Location = new System.Drawing.Point(344, 35); + this.CB_Purple1.Name = "CB_Purple1"; + this.CB_Purple1.Size = new System.Drawing.Size(121, 21); + this.CB_Purple1.TabIndex = 570; + // + // NUP_RedMax6 + // + this.NUP_RedMax6.Location = new System.Drawing.Point(867, 169); + this.NUP_RedMax6.Name = "NUP_RedMax6"; + this.NUP_RedMax6.Size = new System.Drawing.Size(41, 20); + this.NUP_RedMax6.TabIndex = 588; + // + // label86 + // + this.label86.AutoSize = true; + this.label86.Location = new System.Drawing.Point(613, 38); + this.label86.Name = "label86"; + this.label86.Size = new System.Drawing.Size(27, 13); + this.label86.TabIndex = 607; + this.label86.Text = "10%"; + // + // NUP_RedForme7 + // + this.NUP_RedForme7.Location = new System.Drawing.Point(773, 195); + this.NUP_RedForme7.Name = "NUP_RedForme7"; + this.NUP_RedForme7.Size = new System.Drawing.Size(41, 20); + this.NUP_RedForme7.TabIndex = 589; + // + // label87 + // + this.label87.AutoSize = true; + this.label87.Location = new System.Drawing.Point(619, 331); + this.label87.Name = "label87"; + this.label87.Size = new System.Drawing.Size(21, 13); + this.label87.TabIndex = 618; + this.label87.Text = "1%"; + // + // NUP_RedMin7 + // + this.NUP_RedMin7.Location = new System.Drawing.Point(820, 195); + this.NUP_RedMin7.Name = "NUP_RedMin7"; + this.NUP_RedMin7.Size = new System.Drawing.Size(41, 20); + this.NUP_RedMin7.TabIndex = 590; + // + // label88 + // + this.label88.AutoSize = true; + this.label88.Location = new System.Drawing.Point(619, 304); + this.label88.Name = "label88"; + this.label88.Size = new System.Drawing.Size(21, 13); + this.label88.TabIndex = 617; + this.label88.Text = "4%"; + // + // NUP_RedMax7 + // + this.NUP_RedMax7.Location = new System.Drawing.Point(867, 195); + this.NUP_RedMax7.Name = "NUP_RedMax7"; + this.NUP_RedMax7.Size = new System.Drawing.Size(41, 20); + this.NUP_RedMax7.TabIndex = 591; + // + // label89 + // + this.label89.AutoSize = true; + this.label89.Location = new System.Drawing.Point(619, 277); + this.label89.Name = "label89"; + this.label89.Size = new System.Drawing.Size(21, 13); + this.label89.TabIndex = 616; + this.label89.Text = "5%"; + // + // NUP_RedForme8 + // + this.NUP_RedForme8.Location = new System.Drawing.Point(773, 222); + this.NUP_RedForme8.Name = "NUP_RedForme8"; + this.NUP_RedForme8.Size = new System.Drawing.Size(41, 20); + this.NUP_RedForme8.TabIndex = 592; + // + // label90 + // + this.label90.AutoSize = true; + this.label90.Location = new System.Drawing.Point(612, 251); + this.label90.Name = "label90"; + this.label90.Size = new System.Drawing.Size(27, 13); + this.label90.TabIndex = 615; + this.label90.Text = "10%"; + // + // NUP_RedMin8 + // + this.NUP_RedMin8.Location = new System.Drawing.Point(820, 222); + this.NUP_RedMin8.Name = "NUP_RedMin8"; + this.NUP_RedMin8.Size = new System.Drawing.Size(41, 20); + this.NUP_RedMin8.TabIndex = 593; + // + // label91 + // + this.label91.AutoSize = true; + this.label91.Location = new System.Drawing.Point(612, 227); + this.label91.Name = "label91"; + this.label91.Size = new System.Drawing.Size(27, 13); + this.label91.TabIndex = 614; + this.label91.Text = "10%"; + // + // NUP_RedMax8 + // + this.NUP_RedMax8.Location = new System.Drawing.Point(867, 222); + this.NUP_RedMax8.Name = "NUP_RedMax8"; + this.NUP_RedMax8.Size = new System.Drawing.Size(41, 20); + this.NUP_RedMax8.TabIndex = 594; + // + // label92 + // + this.label92.AutoSize = true; + this.label92.Location = new System.Drawing.Point(612, 200); + this.label92.Name = "label92"; + this.label92.Size = new System.Drawing.Size(27, 13); + this.label92.TabIndex = 613; + this.label92.Text = "10%"; + // + // NUP_RedForme9 + // + this.NUP_RedForme9.Location = new System.Drawing.Point(773, 249); + this.NUP_RedForme9.Name = "NUP_RedForme9"; + this.NUP_RedForme9.Size = new System.Drawing.Size(41, 20); + this.NUP_RedForme9.TabIndex = 595; + // + // label93 + // + this.label93.AutoSize = true; + this.label93.Location = new System.Drawing.Point(613, 173); + this.label93.Name = "label93"; + this.label93.Size = new System.Drawing.Size(27, 13); + this.label93.TabIndex = 612; + this.label93.Text = "10%"; + // + // NUP_RedMin9 + // + this.NUP_RedMin9.Location = new System.Drawing.Point(820, 249); + this.NUP_RedMin9.Name = "NUP_RedMin9"; + this.NUP_RedMin9.Size = new System.Drawing.Size(41, 20); + this.NUP_RedMin9.TabIndex = 596; + // + // label94 + // + this.label94.AutoSize = true; + this.label94.Location = new System.Drawing.Point(613, 146); + this.label94.Name = "label94"; + this.label94.Size = new System.Drawing.Size(27, 13); + this.label94.TabIndex = 611; + this.label94.Text = "10%"; + // + // NUP_RedMax9 + // + this.NUP_RedMax9.Location = new System.Drawing.Point(867, 249); + this.NUP_RedMax9.Name = "NUP_RedMax9"; + this.NUP_RedMax9.Size = new System.Drawing.Size(41, 20); + this.NUP_RedMax9.TabIndex = 597; + // + // label95 + // + this.label95.AutoSize = true; + this.label95.Location = new System.Drawing.Point(613, 119); + this.label95.Name = "label95"; + this.label95.Size = new System.Drawing.Size(27, 13); + this.label95.TabIndex = 610; + this.label95.Text = "10%"; + // + // NUP_RedForme10 + // + this.NUP_RedForme10.Location = new System.Drawing.Point(773, 275); + this.NUP_RedForme10.Name = "NUP_RedForme10"; + this.NUP_RedForme10.Size = new System.Drawing.Size(41, 20); + this.NUP_RedForme10.TabIndex = 598; + // + // label96 + // + this.label96.AutoSize = true; + this.label96.Location = new System.Drawing.Point(613, 92); + this.label96.Name = "label96"; + this.label96.Size = new System.Drawing.Size(27, 13); + this.label96.TabIndex = 609; + this.label96.Text = "10%"; + // + // NUP_RedMin10 + // + this.NUP_RedMin10.Location = new System.Drawing.Point(820, 275); + this.NUP_RedMin10.Name = "NUP_RedMin10"; + this.NUP_RedMin10.Size = new System.Drawing.Size(41, 20); + this.NUP_RedMin10.TabIndex = 599; + // + // label97 + // + this.label97.AutoSize = true; + this.label97.Location = new System.Drawing.Point(613, 65); + this.label97.Name = "label97"; + this.label97.Size = new System.Drawing.Size(27, 13); + this.label97.TabIndex = 608; + this.label97.Text = "10%"; + // + // NUP_RedMax10 + // + this.NUP_RedMax10.Location = new System.Drawing.Point(867, 275); + this.NUP_RedMax10.Name = "NUP_RedMax10"; + this.NUP_RedMax10.Size = new System.Drawing.Size(41, 20); + this.NUP_RedMax10.TabIndex = 600; + // + // NUP_PurpleForme1 + // + this.NUP_PurpleForme1.Location = new System.Drawing.Point(472, 35); + this.NUP_PurpleForme1.Name = "NUP_PurpleForme1"; + this.NUP_PurpleForme1.Size = new System.Drawing.Size(41, 20); + this.NUP_PurpleForme1.TabIndex = 507; + // + // NUP_PurpleMin1 + // + this.NUP_PurpleMin1.Location = new System.Drawing.Point(519, 35); + this.NUP_PurpleMin1.Name = "NUP_PurpleMin1"; + this.NUP_PurpleMin1.Size = new System.Drawing.Size(41, 20); + this.NUP_PurpleMin1.TabIndex = 508; + // + // label66 + // + this.label66.AutoSize = true; + this.label66.Location = new System.Drawing.Point(471, 19); + this.label66.Name = "label66"; + this.label66.Size = new System.Drawing.Size(36, 13); + this.label66.TabIndex = 567; + this.label66.Text = "Forme"; + // + // NUP_PurpleMax1 + // + this.NUP_PurpleMax1.Location = new System.Drawing.Point(566, 35); + this.NUP_PurpleMax1.Name = "NUP_PurpleMax1"; + this.NUP_PurpleMax1.Size = new System.Drawing.Size(41, 20); + this.NUP_PurpleMax1.TabIndex = 509; + // + // label67 + // + this.label67.AutoSize = true; + this.label67.Location = new System.Drawing.Point(518, 19); + this.label67.Name = "label67"; + this.label67.Size = new System.Drawing.Size(24, 13); + this.label67.TabIndex = 568; + this.label67.Text = "Min"; + // + // NUP_PurpleForme2 + // + this.NUP_PurpleForme2.Location = new System.Drawing.Point(472, 62); + this.NUP_PurpleForme2.Name = "NUP_PurpleForme2"; + this.NUP_PurpleForme2.Size = new System.Drawing.Size(41, 20); + this.NUP_PurpleForme2.TabIndex = 510; + // + // label68 + // + this.label68.AutoSize = true; + this.label68.Location = new System.Drawing.Point(565, 19); + this.label68.Name = "label68"; + this.label68.Size = new System.Drawing.Size(27, 13); + this.label68.TabIndex = 569; + this.label68.Text = "Max"; + // + // NUP_PurpleMin2 + // + this.NUP_PurpleMin2.Location = new System.Drawing.Point(519, 62); + this.NUP_PurpleMin2.Name = "NUP_PurpleMin2"; + this.NUP_PurpleMin2.Size = new System.Drawing.Size(41, 20); + this.NUP_PurpleMin2.TabIndex = 511; + // + // label69 + // + this.label69.AutoSize = true; + this.label69.Location = new System.Drawing.Point(344, 18); + this.label69.Name = "label69"; + this.label69.Size = new System.Drawing.Size(76, 13); + this.label69.TabIndex = 566; + this.label69.Text = "Purple Flowers"; + // + // NUP_PurpleMax2 + // + this.NUP_PurpleMax2.Location = new System.Drawing.Point(566, 62); + this.NUP_PurpleMax2.Name = "NUP_PurpleMax2"; + this.NUP_PurpleMax2.Size = new System.Drawing.Size(41, 20); + this.NUP_PurpleMax2.TabIndex = 512; + // + // CB_Red12 + // + this.CB_Red12.FormattingEnabled = true; + this.CB_Red12.Location = new System.Drawing.Point(646, 327); + this.CB_Red12.Name = "CB_Red12"; + this.CB_Red12.Size = new System.Drawing.Size(121, 21); + this.CB_Red12.TabIndex = 565; + // + // NUP_PurpleForme3 + // + this.NUP_PurpleForme3.Location = new System.Drawing.Point(472, 89); + this.NUP_PurpleForme3.Name = "NUP_PurpleForme3"; + this.NUP_PurpleForme3.Size = new System.Drawing.Size(41, 20); + this.NUP_PurpleForme3.TabIndex = 513; + // + // CB_Red11 + // + this.CB_Red11.FormattingEnabled = true; + this.CB_Red11.Location = new System.Drawing.Point(646, 301); + this.CB_Red11.Name = "CB_Red11"; + this.CB_Red11.Size = new System.Drawing.Size(121, 21); + this.CB_Red11.TabIndex = 564; + // + // NUP_PurpleMin3 + // + this.NUP_PurpleMin3.Location = new System.Drawing.Point(519, 89); + this.NUP_PurpleMin3.Name = "NUP_PurpleMin3"; + this.NUP_PurpleMin3.Size = new System.Drawing.Size(41, 20); + this.NUP_PurpleMin3.TabIndex = 514; + // + // CB_Red10 + // + this.CB_Red10.FormattingEnabled = true; + this.CB_Red10.Location = new System.Drawing.Point(646, 274); + this.CB_Red10.Name = "CB_Red10"; + this.CB_Red10.Size = new System.Drawing.Size(121, 21); + this.CB_Red10.TabIndex = 563; + // + // NUP_PurpleMax3 + // + this.NUP_PurpleMax3.Location = new System.Drawing.Point(566, 89); + this.NUP_PurpleMax3.Name = "NUP_PurpleMax3"; + this.NUP_PurpleMax3.Size = new System.Drawing.Size(41, 20); + this.NUP_PurpleMax3.TabIndex = 515; + // + // CB_Red9 + // + this.CB_Red9.FormattingEnabled = true; + this.CB_Red9.Location = new System.Drawing.Point(646, 248); + this.CB_Red9.Name = "CB_Red9"; + this.CB_Red9.Size = new System.Drawing.Size(121, 21); + this.CB_Red9.TabIndex = 562; + // + // NUP_PurpleForme4 + // + this.NUP_PurpleForme4.Location = new System.Drawing.Point(472, 115); + this.NUP_PurpleForme4.Name = "NUP_PurpleForme4"; + this.NUP_PurpleForme4.Size = new System.Drawing.Size(41, 20); + this.NUP_PurpleForme4.TabIndex = 516; + // + // CB_Red8 + // + this.CB_Red8.FormattingEnabled = true; + this.CB_Red8.Location = new System.Drawing.Point(646, 221); + this.CB_Red8.Name = "CB_Red8"; + this.CB_Red8.Size = new System.Drawing.Size(121, 21); + this.CB_Red8.TabIndex = 561; + // + // NUP_PurpleMin4 + // + this.NUP_PurpleMin4.Location = new System.Drawing.Point(519, 115); + this.NUP_PurpleMin4.Name = "NUP_PurpleMin4"; + this.NUP_PurpleMin4.Size = new System.Drawing.Size(41, 20); + this.NUP_PurpleMin4.TabIndex = 517; + // + // CB_Red7 + // + this.CB_Red7.FormattingEnabled = true; + this.CB_Red7.Location = new System.Drawing.Point(646, 195); + this.CB_Red7.Name = "CB_Red7"; + this.CB_Red7.Size = new System.Drawing.Size(121, 21); + this.CB_Red7.TabIndex = 560; + // + // NUP_PurpleMax4 + // + this.NUP_PurpleMax4.Location = new System.Drawing.Point(566, 115); + this.NUP_PurpleMax4.Name = "NUP_PurpleMax4"; + this.NUP_PurpleMax4.Size = new System.Drawing.Size(41, 20); + this.NUP_PurpleMax4.TabIndex = 518; + // + // CB_Red6 + // + this.CB_Red6.FormattingEnabled = true; + this.CB_Red6.Location = new System.Drawing.Point(646, 168); + this.CB_Red6.Name = "CB_Red6"; + this.CB_Red6.Size = new System.Drawing.Size(121, 21); + this.CB_Red6.TabIndex = 559; + // + // NUP_PurpleForme5 + // + this.NUP_PurpleForme5.Location = new System.Drawing.Point(472, 142); + this.NUP_PurpleForme5.Name = "NUP_PurpleForme5"; + this.NUP_PurpleForme5.Size = new System.Drawing.Size(41, 20); + this.NUP_PurpleForme5.TabIndex = 519; + // + // CB_Red5 + // + this.CB_Red5.FormattingEnabled = true; + this.CB_Red5.Location = new System.Drawing.Point(646, 142); + this.CB_Red5.Name = "CB_Red5"; + this.CB_Red5.Size = new System.Drawing.Size(121, 21); + this.CB_Red5.TabIndex = 558; + // + // NUP_PurpleMin5 + // + this.NUP_PurpleMin5.Location = new System.Drawing.Point(519, 142); + this.NUP_PurpleMin5.Name = "NUP_PurpleMin5"; + this.NUP_PurpleMin5.Size = new System.Drawing.Size(41, 20); + this.NUP_PurpleMin5.TabIndex = 520; + // + // CB_Red4 + // + this.CB_Red4.FormattingEnabled = true; + this.CB_Red4.Location = new System.Drawing.Point(646, 115); + this.CB_Red4.Name = "CB_Red4"; + this.CB_Red4.Size = new System.Drawing.Size(121, 21); + this.CB_Red4.TabIndex = 557; + // + // NUP_PurpleMax5 + // + this.NUP_PurpleMax5.Location = new System.Drawing.Point(566, 142); + this.NUP_PurpleMax5.Name = "NUP_PurpleMax5"; + this.NUP_PurpleMax5.Size = new System.Drawing.Size(41, 20); + this.NUP_PurpleMax5.TabIndex = 521; + // + // CB_Red3 + // + this.CB_Red3.FormattingEnabled = true; + this.CB_Red3.Location = new System.Drawing.Point(646, 89); + this.CB_Red3.Name = "CB_Red3"; + this.CB_Red3.Size = new System.Drawing.Size(121, 21); + this.CB_Red3.TabIndex = 556; + // + // NUP_PurpleForme6 + // + this.NUP_PurpleForme6.Location = new System.Drawing.Point(472, 169); + this.NUP_PurpleForme6.Name = "NUP_PurpleForme6"; + this.NUP_PurpleForme6.Size = new System.Drawing.Size(41, 20); + this.NUP_PurpleForme6.TabIndex = 522; + // + // CB_Red2 + // + this.CB_Red2.FormattingEnabled = true; + this.CB_Red2.Location = new System.Drawing.Point(646, 62); + this.CB_Red2.Name = "CB_Red2"; + this.CB_Red2.Size = new System.Drawing.Size(121, 21); + this.CB_Red2.TabIndex = 555; + // + // NUP_PurpleMin6 + // + this.NUP_PurpleMin6.Location = new System.Drawing.Point(519, 169); + this.NUP_PurpleMin6.Name = "NUP_PurpleMin6"; + this.NUP_PurpleMin6.Size = new System.Drawing.Size(41, 20); + this.NUP_PurpleMin6.TabIndex = 523; + // + // CB_Red1 + // + this.CB_Red1.FormattingEnabled = true; + this.CB_Red1.Location = new System.Drawing.Point(646, 36); + this.CB_Red1.Name = "CB_Red1"; + this.CB_Red1.Size = new System.Drawing.Size(121, 21); + this.CB_Red1.TabIndex = 506; + // + // NUP_PurpleMax6 + // + this.NUP_PurpleMax6.Location = new System.Drawing.Point(566, 169); + this.NUP_PurpleMax6.Name = "NUP_PurpleMax6"; + this.NUP_PurpleMax6.Size = new System.Drawing.Size(41, 20); + this.NUP_PurpleMax6.TabIndex = 524; + // + // label70 + // + this.label70.AutoSize = true; + this.label70.Location = new System.Drawing.Point(312, 38); + this.label70.Name = "label70"; + this.label70.Size = new System.Drawing.Size(27, 13); + this.label70.TabIndex = 543; + this.label70.Text = "10%"; + // + // NUP_PurpleForme7 + // + this.NUP_PurpleForme7.Location = new System.Drawing.Point(472, 195); + this.NUP_PurpleForme7.Name = "NUP_PurpleForme7"; + this.NUP_PurpleForme7.Size = new System.Drawing.Size(41, 20); + this.NUP_PurpleForme7.TabIndex = 525; + // + // label71 + // + this.label71.AutoSize = true; + this.label71.Location = new System.Drawing.Point(318, 331); + this.label71.Name = "label71"; + this.label71.Size = new System.Drawing.Size(21, 13); + this.label71.TabIndex = 554; + this.label71.Text = "1%"; + // + // NUP_PurpleMin7 + // + this.NUP_PurpleMin7.Location = new System.Drawing.Point(519, 195); + this.NUP_PurpleMin7.Name = "NUP_PurpleMin7"; + this.NUP_PurpleMin7.Size = new System.Drawing.Size(41, 20); + this.NUP_PurpleMin7.TabIndex = 526; + // + // label72 + // + this.label72.AutoSize = true; + this.label72.Location = new System.Drawing.Point(318, 304); + this.label72.Name = "label72"; + this.label72.Size = new System.Drawing.Size(21, 13); + this.label72.TabIndex = 553; + this.label72.Text = "4%"; + // + // NUP_PurpleMax7 + // + this.NUP_PurpleMax7.Location = new System.Drawing.Point(566, 195); + this.NUP_PurpleMax7.Name = "NUP_PurpleMax7"; + this.NUP_PurpleMax7.Size = new System.Drawing.Size(41, 20); + this.NUP_PurpleMax7.TabIndex = 527; + // + // label73 + // + this.label73.AutoSize = true; + this.label73.Location = new System.Drawing.Point(318, 277); + this.label73.Name = "label73"; + this.label73.Size = new System.Drawing.Size(21, 13); + this.label73.TabIndex = 552; + this.label73.Text = "5%"; + // + // NUP_PurpleForme8 + // + this.NUP_PurpleForme8.Location = new System.Drawing.Point(472, 222); + this.NUP_PurpleForme8.Name = "NUP_PurpleForme8"; + this.NUP_PurpleForme8.Size = new System.Drawing.Size(41, 20); + this.NUP_PurpleForme8.TabIndex = 528; + // + // label74 + // + this.label74.AutoSize = true; + this.label74.Location = new System.Drawing.Point(311, 251); + this.label74.Name = "label74"; + this.label74.Size = new System.Drawing.Size(27, 13); + this.label74.TabIndex = 551; + this.label74.Text = "10%"; + // + // NUP_PurpleMin8 + // + this.NUP_PurpleMin8.Location = new System.Drawing.Point(519, 222); + this.NUP_PurpleMin8.Name = "NUP_PurpleMin8"; + this.NUP_PurpleMin8.Size = new System.Drawing.Size(41, 20); + this.NUP_PurpleMin8.TabIndex = 529; + // + // label75 + // + this.label75.AutoSize = true; + this.label75.Location = new System.Drawing.Point(311, 227); + this.label75.Name = "label75"; + this.label75.Size = new System.Drawing.Size(27, 13); + this.label75.TabIndex = 550; + this.label75.Text = "10%"; + // + // NUP_PurpleMax8 + // + this.NUP_PurpleMax8.Location = new System.Drawing.Point(566, 222); + this.NUP_PurpleMax8.Name = "NUP_PurpleMax8"; + this.NUP_PurpleMax8.Size = new System.Drawing.Size(41, 20); + this.NUP_PurpleMax8.TabIndex = 530; + // + // label76 + // + this.label76.AutoSize = true; + this.label76.Location = new System.Drawing.Point(311, 200); + this.label76.Name = "label76"; + this.label76.Size = new System.Drawing.Size(27, 13); + this.label76.TabIndex = 549; + this.label76.Text = "10%"; + // + // NUP_PurpleForme9 + // + this.NUP_PurpleForme9.Location = new System.Drawing.Point(472, 249); + this.NUP_PurpleForme9.Name = "NUP_PurpleForme9"; + this.NUP_PurpleForme9.Size = new System.Drawing.Size(41, 20); + this.NUP_PurpleForme9.TabIndex = 531; + // + // label77 + // + this.label77.AutoSize = true; + this.label77.Location = new System.Drawing.Point(312, 173); + this.label77.Name = "label77"; + this.label77.Size = new System.Drawing.Size(27, 13); + this.label77.TabIndex = 548; + this.label77.Text = "10%"; + // + // NUP_PurpleMin9 + // + this.NUP_PurpleMin9.Location = new System.Drawing.Point(519, 249); + this.NUP_PurpleMin9.Name = "NUP_PurpleMin9"; + this.NUP_PurpleMin9.Size = new System.Drawing.Size(41, 20); + this.NUP_PurpleMin9.TabIndex = 532; + // + // label78 + // + this.label78.AutoSize = true; + this.label78.Location = new System.Drawing.Point(312, 146); + this.label78.Name = "label78"; + this.label78.Size = new System.Drawing.Size(27, 13); + this.label78.TabIndex = 547; + this.label78.Text = "10%"; + // + // NUP_PurpleMax9 + // + this.NUP_PurpleMax9.Location = new System.Drawing.Point(566, 249); + this.NUP_PurpleMax9.Name = "NUP_PurpleMax9"; + this.NUP_PurpleMax9.Size = new System.Drawing.Size(41, 20); + this.NUP_PurpleMax9.TabIndex = 533; + // + // label79 + // + this.label79.AutoSize = true; + this.label79.Location = new System.Drawing.Point(312, 119); + this.label79.Name = "label79"; + this.label79.Size = new System.Drawing.Size(27, 13); + this.label79.TabIndex = 546; + this.label79.Text = "10%"; + // + // NUP_PurpleForme10 + // + this.NUP_PurpleForme10.Location = new System.Drawing.Point(472, 275); + this.NUP_PurpleForme10.Name = "NUP_PurpleForme10"; + this.NUP_PurpleForme10.Size = new System.Drawing.Size(41, 20); + this.NUP_PurpleForme10.TabIndex = 534; + // + // label80 + // + this.label80.AutoSize = true; + this.label80.Location = new System.Drawing.Point(312, 92); + this.label80.Name = "label80"; + this.label80.Size = new System.Drawing.Size(27, 13); + this.label80.TabIndex = 545; + this.label80.Text = "10%"; + // + // NUP_PurpleMin10 + // + this.NUP_PurpleMin10.Location = new System.Drawing.Point(519, 275); + this.NUP_PurpleMin10.Name = "NUP_PurpleMin10"; + this.NUP_PurpleMin10.Size = new System.Drawing.Size(41, 20); + this.NUP_PurpleMin10.TabIndex = 535; + // + // label81 + // + this.label81.AutoSize = true; + this.label81.Location = new System.Drawing.Point(312, 65); + this.label81.Name = "label81"; + this.label81.Size = new System.Drawing.Size(27, 13); + this.label81.TabIndex = 544; + this.label81.Text = "10%"; + // + // NUP_PurpleMax10 + // + this.NUP_PurpleMax10.Location = new System.Drawing.Point(566, 275); + this.NUP_PurpleMax10.Name = "NUP_PurpleMax10"; + this.NUP_PurpleMax10.Size = new System.Drawing.Size(41, 20); + this.NUP_PurpleMax10.TabIndex = 536; + // + // NUP_YellowForme1 + // + this.NUP_YellowForme1.Location = new System.Drawing.Point(169, 33); + this.NUP_YellowForme1.Name = "NUP_YellowForme1"; + this.NUP_YellowForme1.Size = new System.Drawing.Size(41, 20); + this.NUP_YellowForme1.TabIndex = 443; + // + // NUP_YellowMin1 + // + this.NUP_YellowMin1.Location = new System.Drawing.Point(216, 33); + this.NUP_YellowMin1.Name = "NUP_YellowMin1"; + this.NUP_YellowMin1.Size = new System.Drawing.Size(41, 20); + this.NUP_YellowMin1.TabIndex = 444; + // + // label50 + // + this.label50.AutoSize = true; + this.label50.Location = new System.Drawing.Point(168, 17); + this.label50.Name = "label50"; + this.label50.Size = new System.Drawing.Size(36, 13); + this.label50.TabIndex = 503; + this.label50.Text = "Forme"; + // + // NUP_YellowMax1 + // + this.NUP_YellowMax1.Location = new System.Drawing.Point(263, 33); + this.NUP_YellowMax1.Name = "NUP_YellowMax1"; + this.NUP_YellowMax1.Size = new System.Drawing.Size(41, 20); + this.NUP_YellowMax1.TabIndex = 445; + // + // label51 + // + this.label51.AutoSize = true; + this.label51.Location = new System.Drawing.Point(215, 17); + this.label51.Name = "label51"; + this.label51.Size = new System.Drawing.Size(24, 13); + this.label51.TabIndex = 504; + this.label51.Text = "Min"; + // + // NUP_YellowForme2 + // + this.NUP_YellowForme2.Location = new System.Drawing.Point(169, 60); + this.NUP_YellowForme2.Name = "NUP_YellowForme2"; + this.NUP_YellowForme2.Size = new System.Drawing.Size(41, 20); + this.NUP_YellowForme2.TabIndex = 446; + // + // label52 + // + this.label52.AutoSize = true; + this.label52.Location = new System.Drawing.Point(262, 17); + this.label52.Name = "label52"; + this.label52.Size = new System.Drawing.Size(27, 13); + this.label52.TabIndex = 505; + this.label52.Text = "Max"; + // + // NUP_YellowMin2 + // + this.NUP_YellowMin2.Location = new System.Drawing.Point(216, 60); + this.NUP_YellowMin2.Name = "NUP_YellowMin2"; + this.NUP_YellowMin2.Size = new System.Drawing.Size(41, 20); + this.NUP_YellowMin2.TabIndex = 447; + // + // label53 + // + this.label53.AutoSize = true; + this.label53.Location = new System.Drawing.Point(42, 17); + this.label53.Name = "label53"; + this.label53.Size = new System.Drawing.Size(77, 13); + this.label53.TabIndex = 502; + this.label53.Text = "Yellow Flowers"; + // + // NUP_YellowMax2 + // + this.NUP_YellowMax2.Location = new System.Drawing.Point(263, 60); + this.NUP_YellowMax2.Name = "NUP_YellowMax2"; + this.NUP_YellowMax2.Size = new System.Drawing.Size(41, 20); + this.NUP_YellowMax2.TabIndex = 448; + // + // CB_Yellow12 + // + this.CB_Yellow12.FormattingEnabled = true; + this.CB_Yellow12.Location = new System.Drawing.Point(42, 324); + this.CB_Yellow12.Name = "CB_Yellow12"; + this.CB_Yellow12.Size = new System.Drawing.Size(121, 21); + this.CB_Yellow12.TabIndex = 501; + // + // NUP_YellowForme3 + // + this.NUP_YellowForme3.Location = new System.Drawing.Point(169, 87); + this.NUP_YellowForme3.Name = "NUP_YellowForme3"; + this.NUP_YellowForme3.Size = new System.Drawing.Size(41, 20); + this.NUP_YellowForme3.TabIndex = 449; + // + // CB_Yellow11 + // + this.CB_Yellow11.FormattingEnabled = true; + this.CB_Yellow11.Location = new System.Drawing.Point(42, 298); + this.CB_Yellow11.Name = "CB_Yellow11"; + this.CB_Yellow11.Size = new System.Drawing.Size(121, 21); + this.CB_Yellow11.TabIndex = 500; + // + // NUP_YellowMin3 + // + this.NUP_YellowMin3.Location = new System.Drawing.Point(216, 87); + this.NUP_YellowMin3.Name = "NUP_YellowMin3"; + this.NUP_YellowMin3.Size = new System.Drawing.Size(41, 20); + this.NUP_YellowMin3.TabIndex = 450; + // + // CB_Yellow10 + // + this.CB_Yellow10.FormattingEnabled = true; + this.CB_Yellow10.Location = new System.Drawing.Point(42, 271); + this.CB_Yellow10.Name = "CB_Yellow10"; + this.CB_Yellow10.Size = new System.Drawing.Size(121, 21); + this.CB_Yellow10.TabIndex = 499; + // + // NUP_YellowMax3 + // + this.NUP_YellowMax3.Location = new System.Drawing.Point(263, 87); + this.NUP_YellowMax3.Name = "NUP_YellowMax3"; + this.NUP_YellowMax3.Size = new System.Drawing.Size(41, 20); + this.NUP_YellowMax3.TabIndex = 451; + // + // CB_Yellow9 + // + this.CB_Yellow9.FormattingEnabled = true; + this.CB_Yellow9.Location = new System.Drawing.Point(42, 245); + this.CB_Yellow9.Name = "CB_Yellow9"; + this.CB_Yellow9.Size = new System.Drawing.Size(121, 21); + this.CB_Yellow9.TabIndex = 498; + // + // NUP_YellowForme4 + // + this.NUP_YellowForme4.Location = new System.Drawing.Point(169, 113); + this.NUP_YellowForme4.Name = "NUP_YellowForme4"; + this.NUP_YellowForme4.Size = new System.Drawing.Size(41, 20); + this.NUP_YellowForme4.TabIndex = 452; + // + // CB_Yellow8 + // + this.CB_Yellow8.FormattingEnabled = true; + this.CB_Yellow8.Location = new System.Drawing.Point(42, 218); + this.CB_Yellow8.Name = "CB_Yellow8"; + this.CB_Yellow8.Size = new System.Drawing.Size(121, 21); + this.CB_Yellow8.TabIndex = 497; + // + // NUP_YellowMin4 + // + this.NUP_YellowMin4.Location = new System.Drawing.Point(216, 113); + this.NUP_YellowMin4.Name = "NUP_YellowMin4"; + this.NUP_YellowMin4.Size = new System.Drawing.Size(41, 20); + this.NUP_YellowMin4.TabIndex = 453; + // + // CB_Yellow7 + // + this.CB_Yellow7.FormattingEnabled = true; + this.CB_Yellow7.Location = new System.Drawing.Point(42, 192); + this.CB_Yellow7.Name = "CB_Yellow7"; + this.CB_Yellow7.Size = new System.Drawing.Size(121, 21); + this.CB_Yellow7.TabIndex = 496; + // + // NUP_YellowMax4 + // + this.NUP_YellowMax4.Location = new System.Drawing.Point(263, 113); + this.NUP_YellowMax4.Name = "NUP_YellowMax4"; + this.NUP_YellowMax4.Size = new System.Drawing.Size(41, 20); + this.NUP_YellowMax4.TabIndex = 454; + // + // CB_Yellow6 + // + this.CB_Yellow6.FormattingEnabled = true; + this.CB_Yellow6.Location = new System.Drawing.Point(42, 165); + this.CB_Yellow6.Name = "CB_Yellow6"; + this.CB_Yellow6.Size = new System.Drawing.Size(121, 21); + this.CB_Yellow6.TabIndex = 495; + // + // NUP_YellowForme5 + // + this.NUP_YellowForme5.Location = new System.Drawing.Point(169, 140); + this.NUP_YellowForme5.Name = "NUP_YellowForme5"; + this.NUP_YellowForme5.Size = new System.Drawing.Size(41, 20); + this.NUP_YellowForme5.TabIndex = 455; + // + // CB_Yellow5 + // + this.CB_Yellow5.FormattingEnabled = true; + this.CB_Yellow5.Location = new System.Drawing.Point(42, 139); + this.CB_Yellow5.Name = "CB_Yellow5"; + this.CB_Yellow5.Size = new System.Drawing.Size(121, 21); + this.CB_Yellow5.TabIndex = 494; + // + // NUP_YellowMin5 + // + this.NUP_YellowMin5.Location = new System.Drawing.Point(216, 140); + this.NUP_YellowMin5.Name = "NUP_YellowMin5"; + this.NUP_YellowMin5.Size = new System.Drawing.Size(41, 20); + this.NUP_YellowMin5.TabIndex = 456; + // + // CB_Yellow4 + // + this.CB_Yellow4.FormattingEnabled = true; + this.CB_Yellow4.Location = new System.Drawing.Point(42, 112); + this.CB_Yellow4.Name = "CB_Yellow4"; + this.CB_Yellow4.Size = new System.Drawing.Size(121, 21); + this.CB_Yellow4.TabIndex = 493; + // + // NUP_YellowMax5 + // + this.NUP_YellowMax5.Location = new System.Drawing.Point(263, 140); + this.NUP_YellowMax5.Name = "NUP_YellowMax5"; + this.NUP_YellowMax5.Size = new System.Drawing.Size(41, 20); + this.NUP_YellowMax5.TabIndex = 457; + // + // CB_Yellow3 + // + this.CB_Yellow3.FormattingEnabled = true; + this.CB_Yellow3.Location = new System.Drawing.Point(42, 86); + this.CB_Yellow3.Name = "CB_Yellow3"; + this.CB_Yellow3.Size = new System.Drawing.Size(121, 21); + this.CB_Yellow3.TabIndex = 492; + // + // NUP_YellowForme6 + // + this.NUP_YellowForme6.Location = new System.Drawing.Point(169, 167); + this.NUP_YellowForme6.Name = "NUP_YellowForme6"; + this.NUP_YellowForme6.Size = new System.Drawing.Size(41, 20); + this.NUP_YellowForme6.TabIndex = 458; + // + // CB_Yellow2 + // + this.CB_Yellow2.FormattingEnabled = true; + this.CB_Yellow2.Location = new System.Drawing.Point(42, 59); + this.CB_Yellow2.Name = "CB_Yellow2"; + this.CB_Yellow2.Size = new System.Drawing.Size(121, 21); + this.CB_Yellow2.TabIndex = 491; + // + // NUP_YellowMin6 + // + this.NUP_YellowMin6.Location = new System.Drawing.Point(216, 167); + this.NUP_YellowMin6.Name = "NUP_YellowMin6"; + this.NUP_YellowMin6.Size = new System.Drawing.Size(41, 20); + this.NUP_YellowMin6.TabIndex = 459; + // + // CB_Yellow1 + // + this.CB_Yellow1.FormattingEnabled = true; + this.CB_Yellow1.Location = new System.Drawing.Point(42, 33); + this.CB_Yellow1.Name = "CB_Yellow1"; + this.CB_Yellow1.Size = new System.Drawing.Size(121, 21); + this.CB_Yellow1.TabIndex = 442; + // + // NUP_YellowMax6 + // + this.NUP_YellowMax6.Location = new System.Drawing.Point(263, 167); + this.NUP_YellowMax6.Name = "NUP_YellowMax6"; + this.NUP_YellowMax6.Size = new System.Drawing.Size(41, 20); + this.NUP_YellowMax6.TabIndex = 460; + // + // label54 + // + this.label54.AutoSize = true; + this.label54.Location = new System.Drawing.Point(9, 36); + this.label54.Name = "label54"; + this.label54.Size = new System.Drawing.Size(27, 13); + this.label54.TabIndex = 479; + this.label54.Text = "10%"; + // + // NUP_YellowForme7 + // + this.NUP_YellowForme7.Location = new System.Drawing.Point(169, 193); + this.NUP_YellowForme7.Name = "NUP_YellowForme7"; + this.NUP_YellowForme7.Size = new System.Drawing.Size(41, 20); + this.NUP_YellowForme7.TabIndex = 461; + // + // label55 + // + this.label55.AutoSize = true; + this.label55.Location = new System.Drawing.Point(15, 329); + this.label55.Name = "label55"; + this.label55.Size = new System.Drawing.Size(21, 13); + this.label55.TabIndex = 490; + this.label55.Text = "1%"; + // + // NUP_YellowMin7 + // + this.NUP_YellowMin7.Location = new System.Drawing.Point(216, 193); + this.NUP_YellowMin7.Name = "NUP_YellowMin7"; + this.NUP_YellowMin7.Size = new System.Drawing.Size(41, 20); + this.NUP_YellowMin7.TabIndex = 462; + // + // label56 + // + this.label56.AutoSize = true; + this.label56.Location = new System.Drawing.Point(15, 302); + this.label56.Name = "label56"; + this.label56.Size = new System.Drawing.Size(21, 13); + this.label56.TabIndex = 489; + this.label56.Text = "4%"; + // + // NUP_YellowMax7 + // + this.NUP_YellowMax7.Location = new System.Drawing.Point(263, 193); + this.NUP_YellowMax7.Name = "NUP_YellowMax7"; + this.NUP_YellowMax7.Size = new System.Drawing.Size(41, 20); + this.NUP_YellowMax7.TabIndex = 463; + // + // label57 + // + this.label57.AutoSize = true; + this.label57.Location = new System.Drawing.Point(15, 275); + this.label57.Name = "label57"; + this.label57.Size = new System.Drawing.Size(21, 13); + this.label57.TabIndex = 488; + this.label57.Text = "5%"; + // + // NUP_YellowForme8 + // + this.NUP_YellowForme8.Location = new System.Drawing.Point(169, 220); + this.NUP_YellowForme8.Name = "NUP_YellowForme8"; + this.NUP_YellowForme8.Size = new System.Drawing.Size(41, 20); + this.NUP_YellowForme8.TabIndex = 464; + // + // label58 + // + this.label58.AutoSize = true; + this.label58.Location = new System.Drawing.Point(8, 249); + this.label58.Name = "label58"; + this.label58.Size = new System.Drawing.Size(27, 13); + this.label58.TabIndex = 487; + this.label58.Text = "10%"; + // + // NUP_YellowMin8 + // + this.NUP_YellowMin8.Location = new System.Drawing.Point(216, 220); + this.NUP_YellowMin8.Name = "NUP_YellowMin8"; + this.NUP_YellowMin8.Size = new System.Drawing.Size(41, 20); + this.NUP_YellowMin8.TabIndex = 465; + // + // label59 + // + this.label59.AutoSize = true; + this.label59.Location = new System.Drawing.Point(8, 225); + this.label59.Name = "label59"; + this.label59.Size = new System.Drawing.Size(27, 13); + this.label59.TabIndex = 486; + this.label59.Text = "10%"; + // + // NUP_YellowMax8 + // + this.NUP_YellowMax8.Location = new System.Drawing.Point(263, 220); + this.NUP_YellowMax8.Name = "NUP_YellowMax8"; + this.NUP_YellowMax8.Size = new System.Drawing.Size(41, 20); + this.NUP_YellowMax8.TabIndex = 466; + // + // label60 + // + this.label60.AutoSize = true; + this.label60.Location = new System.Drawing.Point(8, 198); + this.label60.Name = "label60"; + this.label60.Size = new System.Drawing.Size(27, 13); + this.label60.TabIndex = 485; + this.label60.Text = "10%"; + // + // NUP_YellowForme9 + // + this.NUP_YellowForme9.Location = new System.Drawing.Point(169, 247); + this.NUP_YellowForme9.Name = "NUP_YellowForme9"; + this.NUP_YellowForme9.Size = new System.Drawing.Size(41, 20); + this.NUP_YellowForme9.TabIndex = 467; + // + // label61 + // + this.label61.AutoSize = true; + this.label61.Location = new System.Drawing.Point(9, 171); + this.label61.Name = "label61"; + this.label61.Size = new System.Drawing.Size(27, 13); + this.label61.TabIndex = 484; + this.label61.Text = "10%"; + // + // NUP_YellowMin9 + // + this.NUP_YellowMin9.Location = new System.Drawing.Point(216, 247); + this.NUP_YellowMin9.Name = "NUP_YellowMin9"; + this.NUP_YellowMin9.Size = new System.Drawing.Size(41, 20); + this.NUP_YellowMin9.TabIndex = 468; + // + // label62 + // + this.label62.AutoSize = true; + this.label62.Location = new System.Drawing.Point(9, 144); + this.label62.Name = "label62"; + this.label62.Size = new System.Drawing.Size(27, 13); + this.label62.TabIndex = 483; + this.label62.Text = "10%"; + // + // NUP_YellowMax9 + // + this.NUP_YellowMax9.Location = new System.Drawing.Point(263, 247); + this.NUP_YellowMax9.Name = "NUP_YellowMax9"; + this.NUP_YellowMax9.Size = new System.Drawing.Size(41, 20); + this.NUP_YellowMax9.TabIndex = 469; + // + // label63 + // + this.label63.AutoSize = true; + this.label63.Location = new System.Drawing.Point(9, 117); + this.label63.Name = "label63"; + this.label63.Size = new System.Drawing.Size(27, 13); + this.label63.TabIndex = 482; + this.label63.Text = "10%"; + // + // NUP_YellowForme10 + // + this.NUP_YellowForme10.Location = new System.Drawing.Point(169, 273); + this.NUP_YellowForme10.Name = "NUP_YellowForme10"; + this.NUP_YellowForme10.Size = new System.Drawing.Size(41, 20); + this.NUP_YellowForme10.TabIndex = 470; + // + // label64 + // + this.label64.AutoSize = true; + this.label64.Location = new System.Drawing.Point(9, 90); + this.label64.Name = "label64"; + this.label64.Size = new System.Drawing.Size(27, 13); + this.label64.TabIndex = 481; + this.label64.Text = "10%"; + // + // NUP_YellowMin10 + // + this.NUP_YellowMin10.Location = new System.Drawing.Point(216, 273); + this.NUP_YellowMin10.Name = "NUP_YellowMin10"; + this.NUP_YellowMin10.Size = new System.Drawing.Size(41, 20); + this.NUP_YellowMin10.TabIndex = 471; + // + // label65 + // + this.label65.AutoSize = true; + this.label65.Location = new System.Drawing.Point(9, 63); + this.label65.Name = "label65"; + this.label65.Size = new System.Drawing.Size(27, 13); + this.label65.TabIndex = 480; + this.label65.Text = "10%"; + // + // NUP_YellowMax10 + // + this.NUP_YellowMax10.Location = new System.Drawing.Point(263, 273); + this.NUP_YellowMax10.Name = "NUP_YellowMax10"; + this.NUP_YellowMax10.Size = new System.Drawing.Size(41, 20); + this.NUP_YellowMax10.TabIndex = 472; + // + // CB_LocationID + // + this.CB_LocationID.Enabled = false; + this.CB_LocationID.FormattingEnabled = true; + this.CB_LocationID.Location = new System.Drawing.Point(233, 8); + this.CB_LocationID.Name = "CB_LocationID"; + this.CB_LocationID.Size = new System.Drawing.Size(164, 21); + this.CB_LocationID.TabIndex = 407; + this.CB_LocationID.SelectedIndexChanged += new System.EventHandler(this.CB_LocationID_SelectedIndexChanged); + // + // B_Save + // + this.B_Save.Enabled = false; + this.B_Save.Location = new System.Drawing.Point(403, 7); + this.B_Save.Name = "B_Save"; + this.B_Save.Size = new System.Drawing.Size(135, 23); + this.B_Save.TabIndex = 410; + this.B_Save.Text = "Save Current Encounters"; + this.B_Save.UseVisualStyleBackColor = true; + this.B_Save.Click += new System.EventHandler(this.B_Save_Click); + // + // label134 + // + this.label134.AutoSize = true; + this.label134.Location = new System.Drawing.Point(201, 12); + this.label134.Name = "label134"; + this.label134.Size = new System.Drawing.Size(28, 13); + this.label134.TabIndex = 411; + this.label134.Text = "Loc:"; + // + // label136 + // + this.label136.AutoSize = true; + this.label136.Location = new System.Drawing.Point(752, 12); + this.label136.Name = "label136"; + this.label136.Size = new System.Drawing.Size(58, 13); + this.label136.TabIndex = 414; + this.label136.Text = "Forme List:"; + // + // CB_FormeList + // + this.CB_FormeList.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_FormeList.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_FormeList.DropDownWidth = 150; + this.CB_FormeList.FormattingEnabled = true; + this.CB_FormeList.Items.AddRange(new object[] { "Unown-A - 0", "Unown-B - 1", "Unown-C - 2", @@ -27891,898 +27901,887 @@ private void InitializeComponent() "Genesect-Electric - 2", "Genesect-Fire - 3", "Genesect-Ice - 4"}); - this.CB_FormeList.Location = new System.Drawing.Point(816, 8); - this.CB_FormeList.Name = "CB_FormeList"; - this.CB_FormeList.Size = new System.Drawing.Size(108, 21); - this.CB_FormeList.TabIndex = 413; - // - // B_Randomize - // - this.B_Randomize.Enabled = false; - this.B_Randomize.Location = new System.Drawing.Point(544, 7); - this.B_Randomize.Name = "B_Randomize"; - this.B_Randomize.Size = new System.Drawing.Size(95, 23); - this.B_Randomize.TabIndex = 417; - this.B_Randomize.Text = "Randomize All"; - this.B_Randomize.UseVisualStyleBackColor = true; - this.B_Randomize.Click += new System.EventHandler(this.B_Randomize_Click); - // - // B_Dump - // - this.B_Dump.Enabled = false; - this.B_Dump.Location = new System.Drawing.Point(645, 7); - this.B_Dump.Name = "B_Dump"; - this.B_Dump.Size = new System.Drawing.Size(95, 23); - this.B_Dump.TabIndex = 418; - this.B_Dump.Text = "Dump Tables"; - this.B_Dump.UseVisualStyleBackColor = true; - this.B_Dump.Click += new System.EventHandler(this.B_Dump_Click); - // - // CHK_HomogeneousHordes - // - this.CHK_HomogeneousHordes.AutoSize = true; - this.CHK_HomogeneousHordes.Location = new System.Drawing.Point(18, 97); - this.CHK_HomogeneousHordes.Name = "CHK_HomogeneousHordes"; - this.CHK_HomogeneousHordes.Size = new System.Drawing.Size(133, 17); - this.CHK_HomogeneousHordes.TabIndex = 297; - this.CHK_HomogeneousHordes.Text = "Single Species Hordes"; - this.CHK_HomogeneousHordes.UseVisualStyleBackColor = true; - // - // XYWE - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(948, 415); - this.Controls.Add(this.B_Dump); - this.Controls.Add(this.B_Randomize); - this.Controls.Add(this.label136); - this.Controls.Add(this.CB_FormeList); - this.Controls.Add(this.label134); - this.Controls.Add(this.B_Save); - this.Controls.Add(this.CB_LocationID); - this.Controls.Add(this.TabControl_EncounterData); - this.MaximizeBox = false; - this.MaximumSize = new System.Drawing.Size(964, 454); - this.MinimumSize = new System.Drawing.Size(964, 454); - this.Name = "XYWE"; - this.Text = "XY Wild Editor"; - this.Load += new System.EventHandler(this.PreloadTabs); - this.TabControl_EncounterData.ResumeLayout(false); - this.TabPage_Land.ResumeLayout(false); - this.TabPage_Land.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMax5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMin5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashForme5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMax4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashForme1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMin4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashForme4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMin1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMax3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMax1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMin3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashForme3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMax2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashForme2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMin2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme6)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin6)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax6)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme7)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin7)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax7)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme8)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin8)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax8)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme9)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin9)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax9)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme10)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin10)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax10)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme11)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin11)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax11)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme12)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin12)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax12)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme6)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin6)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax6)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme7)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin7)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax7)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme8)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin8)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax8)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme9)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin9)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax9)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme10)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin10)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax10)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax12)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme11)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin12)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin11)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme12)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax11)).EndInit(); - this.TabPage_Water.ResumeLayout(false); - this.TabPage_Water.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperForme1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMin1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfForme1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMax1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMin1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMax1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperForme2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMin2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfForme2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMax2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMin2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMax5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperForme3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMax2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMin3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMin5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMax3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfForme5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfForme3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMin3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMax4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMax3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMin4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodForme1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfForme4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMin1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMax1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodForme2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMin2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMax2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodForme3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMin3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMax3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_OldForme1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMin1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMax1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_OldForme2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMin2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMax2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_OldForme3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMin3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMax3)).EndInit(); - this.TabPage_Horde.ResumeLayout(false); - this.TabPage_Horde.PerformLayout(); - this.GB_Tweak.ResumeLayout(false); - this.GB_Tweak.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_LevelAmp)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMax5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMin5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCForme5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMax4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMin4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCForme4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMax3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMin3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCForme3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMax2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMin2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCForme2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMax1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMin1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCForme1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMax5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMin5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBForme5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAForme1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMin1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMax4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMax5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMin4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMax1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBForme4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMin5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMax3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAForme5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMin3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAForme2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBForme3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMin2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMax2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMax4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMin2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMax2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBForme2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMin4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMax1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAForme4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMin1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAForme3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBForme1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMin3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMax3)).EndInit(); - this.tabPage1.ResumeLayout(false); - this.tabPage1.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme11)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin11)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax11)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme12)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin12)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax12)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme11)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin11)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax11)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme12)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin12)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax12)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme11)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin11)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax11)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme12)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin12)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax12)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme6)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin6)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax6)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme7)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin7)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax7)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme8)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin8)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax8)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme9)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin9)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax9)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme10)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin10)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax10)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme6)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin6)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax6)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme7)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin7)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax7)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme8)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin8)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax8)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme9)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin9)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax9)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme10)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin10)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax10)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme6)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin6)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax6)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme7)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin7)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax7)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme8)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin8)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax8)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme9)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin9)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax9)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme10)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin10)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax10)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } + this.CB_FormeList.Location = new System.Drawing.Point(816, 8); + this.CB_FormeList.Name = "CB_FormeList"; + this.CB_FormeList.Size = new System.Drawing.Size(108, 21); + this.CB_FormeList.TabIndex = 413; + // + // B_Randomize + // + this.B_Randomize.Enabled = false; + this.B_Randomize.Location = new System.Drawing.Point(544, 7); + this.B_Randomize.Name = "B_Randomize"; + this.B_Randomize.Size = new System.Drawing.Size(95, 23); + this.B_Randomize.TabIndex = 417; + this.B_Randomize.Text = "Randomize All"; + this.B_Randomize.UseVisualStyleBackColor = true; + this.B_Randomize.Click += new System.EventHandler(this.B_Randomize_Click); + // + // B_Dump + // + this.B_Dump.Enabled = false; + this.B_Dump.Location = new System.Drawing.Point(645, 7); + this.B_Dump.Name = "B_Dump"; + this.B_Dump.Size = new System.Drawing.Size(95, 23); + this.B_Dump.TabIndex = 418; + this.B_Dump.Text = "Dump Tables"; + this.B_Dump.UseVisualStyleBackColor = true; + this.B_Dump.Click += new System.EventHandler(this.B_Dump_Click); + // + // XYWE + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(948, 415); + this.Controls.Add(this.B_Dump); + this.Controls.Add(this.B_Randomize); + this.Controls.Add(this.label136); + this.Controls.Add(this.CB_FormeList); + this.Controls.Add(this.label134); + this.Controls.Add(this.B_Save); + this.Controls.Add(this.CB_LocationID); + this.Controls.Add(this.TabControl_EncounterData); + this.MaximizeBox = false; + this.MaximumSize = new System.Drawing.Size(964, 454); + this.MinimumSize = new System.Drawing.Size(964, 454); + this.Name = "XYWE"; + this.Text = "XY Wild Editor"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.XYWE_FormClosing); + this.Load += new System.EventHandler(this.PreloadTabs); + this.TabControl_EncounterData.ResumeLayout(false); + this.TabPage_Land.ResumeLayout(false); + this.TabPage_Land.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMax5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMin5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashForme5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMax4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashForme1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMin4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashForme4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMin1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMax3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMax1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMin3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashForme3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMax2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashForme2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RockSmashMin2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme9)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin9)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax9)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme10)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin10)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax10)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme11)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin11)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax11)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTForme12)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMin12)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RTMax12)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme9)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin9)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax9)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme10)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin10)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax10)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax12)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme11)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin12)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMin11)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassForme12)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GrassMax11)).EndInit(); + this.TabPage_Water.ResumeLayout(false); + this.TabPage_Water.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperForme1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMin1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfForme1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMax1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMin1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMax1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperForme2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMin2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfForme2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMax2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMin2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMax5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperForme3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMax2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMin3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMin5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SuperMax3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfForme5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfForme3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMin3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMax4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMax3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfMin4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodForme1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_SurfForme4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMin1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMax1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodForme2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMin2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMax2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodForme3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMin3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_GoodMax3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_OldForme1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMin1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMax1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_OldForme2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMin2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMax2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_OldForme3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMin3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_OldMax3)).EndInit(); + this.TabPage_Horde.ResumeLayout(false); + this.TabPage_Horde.PerformLayout(); + this.GB_Tweak.ResumeLayout(false); + this.GB_Tweak.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_LevelAmp)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMax5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMin5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCForme5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMax4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMin4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCForme4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMax3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMin3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCForme3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMax2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMin2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCForme2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMax1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCMin1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeCForme1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMax5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMin5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBForme5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAForme1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMin1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMax4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMax5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMin4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMax1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBForme4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMin5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMax3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAForme5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMin3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAForme2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBForme3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMin2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMax2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMax4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMin2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMax2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBForme2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMin4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMax1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAForme4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBMin1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAForme3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeBForme1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMin3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_HordeAMax3)).EndInit(); + this.tabPage1.ResumeLayout(false); + this.tabPage1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme11)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin11)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax11)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme12)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin12)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax12)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme11)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin11)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax11)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme12)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin12)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax12)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme11)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin11)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax11)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme12)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin12)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax12)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme9)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin9)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax9)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedForme10)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMin10)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_RedMax10)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme9)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin9)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax9)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleForme10)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMin10)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_PurpleMax10)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme9)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin9)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax9)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowForme10)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMin10)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_YellowMax10)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); - #endregion - - private System.Windows.Forms.TabControl TabControl_EncounterData; - private System.Windows.Forms.TabPage TabPage_Land; - private System.Windows.Forms.NumericUpDown NUP_RTForme1; - private System.Windows.Forms.NumericUpDown NUP_RTMin1; - private System.Windows.Forms.Label label6; - private System.Windows.Forms.NumericUpDown NUP_RTMax1; - private System.Windows.Forms.Label label7; - private System.Windows.Forms.NumericUpDown NUP_RTForme2; - private System.Windows.Forms.Label label8; - private System.Windows.Forms.NumericUpDown NUP_RTMin2; - private System.Windows.Forms.Label label9; - private System.Windows.Forms.NumericUpDown NUP_RTMax2; - private System.Windows.Forms.ComboBox CB_RT12; - private System.Windows.Forms.NumericUpDown NUP_RTForme3; - private System.Windows.Forms.ComboBox CB_RT11; - private System.Windows.Forms.NumericUpDown NUP_RTMin3; - private System.Windows.Forms.ComboBox CB_RT10; - private System.Windows.Forms.NumericUpDown NUP_RTMax3; - private System.Windows.Forms.ComboBox CB_RT9; - private System.Windows.Forms.NumericUpDown NUP_RTForme4; - private System.Windows.Forms.ComboBox CB_RT8; - private System.Windows.Forms.NumericUpDown NUP_RTMin4; - private System.Windows.Forms.ComboBox CB_RT7; - private System.Windows.Forms.NumericUpDown NUP_RTMax4; - private System.Windows.Forms.ComboBox CB_RT6; - private System.Windows.Forms.NumericUpDown NUP_RTForme5; - private System.Windows.Forms.ComboBox CB_RT5; - private System.Windows.Forms.NumericUpDown NUP_RTMin5; - private System.Windows.Forms.ComboBox CB_RT4; - private System.Windows.Forms.NumericUpDown NUP_RTMax5; - private System.Windows.Forms.ComboBox CB_RT3; - private System.Windows.Forms.NumericUpDown NUP_RTForme6; - private System.Windows.Forms.ComboBox CB_RT2; - private System.Windows.Forms.NumericUpDown NUP_RTMin6; - private System.Windows.Forms.ComboBox CB_RT1; - private System.Windows.Forms.NumericUpDown NUP_RTMax6; - private System.Windows.Forms.Label label10; - private System.Windows.Forms.NumericUpDown NUP_RTForme7; - private System.Windows.Forms.Label label11; - private System.Windows.Forms.NumericUpDown NUP_RTMin7; - private System.Windows.Forms.Label label12; - private System.Windows.Forms.NumericUpDown NUP_RTMax7; - private System.Windows.Forms.Label label13; - private System.Windows.Forms.NumericUpDown NUP_RTForme8; - private System.Windows.Forms.Label label14; - private System.Windows.Forms.NumericUpDown NUP_RTMin8; - private System.Windows.Forms.Label label15; - private System.Windows.Forms.NumericUpDown NUP_RTMax8; - private System.Windows.Forms.Label label16; - private System.Windows.Forms.NumericUpDown NUP_RTForme9; - private System.Windows.Forms.Label label17; - private System.Windows.Forms.NumericUpDown NUP_RTMin9; - private System.Windows.Forms.Label label18; - private System.Windows.Forms.NumericUpDown NUP_RTMax9; - private System.Windows.Forms.Label label19; - private System.Windows.Forms.NumericUpDown NUP_RTForme10; - private System.Windows.Forms.Label label20; - private System.Windows.Forms.NumericUpDown NUP_RTMin10; - private System.Windows.Forms.Label label21; - private System.Windows.Forms.NumericUpDown NUP_RTMax10; - private System.Windows.Forms.NumericUpDown NUP_RTForme11; - private System.Windows.Forms.NumericUpDown NUP_RTMin11; - private System.Windows.Forms.NumericUpDown NUP_RTMax11; - private System.Windows.Forms.NumericUpDown NUP_RTForme12; - private System.Windows.Forms.NumericUpDown NUP_RTMin12; - private System.Windows.Forms.NumericUpDown NUP_RTMax12; - private System.Windows.Forms.NumericUpDown NUP_GrassForme1; - private System.Windows.Forms.NumericUpDown NUP_GrassMin1; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.NumericUpDown NUP_GrassMax1; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.NumericUpDown NUP_GrassForme2; - private System.Windows.Forms.Label label5; - private System.Windows.Forms.NumericUpDown NUP_GrassMin2; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.NumericUpDown NUP_GrassMax2; - private System.Windows.Forms.ComboBox CB_Grass12; - private System.Windows.Forms.NumericUpDown NUP_GrassForme3; - private System.Windows.Forms.ComboBox CB_Grass11; - private System.Windows.Forms.NumericUpDown NUP_GrassMin3; - private System.Windows.Forms.ComboBox CB_Grass10; - private System.Windows.Forms.NumericUpDown NUP_GrassMax3; - private System.Windows.Forms.ComboBox CB_Grass9; - private System.Windows.Forms.NumericUpDown NUP_GrassForme4; - private System.Windows.Forms.ComboBox CB_Grass8; - private System.Windows.Forms.NumericUpDown NUP_GrassMin4; - private System.Windows.Forms.ComboBox CB_Grass7; - private System.Windows.Forms.NumericUpDown NUP_GrassMax4; - private System.Windows.Forms.ComboBox CB_Grass6; - private System.Windows.Forms.NumericUpDown NUP_GrassForme5; - private System.Windows.Forms.ComboBox CB_Grass5; - private System.Windows.Forms.NumericUpDown NUP_GrassMin5; - private System.Windows.Forms.ComboBox CB_Grass4; - private System.Windows.Forms.NumericUpDown NUP_GrassMax5; - private System.Windows.Forms.ComboBox CB_Grass3; - private System.Windows.Forms.NumericUpDown NUP_GrassForme6; - private System.Windows.Forms.ComboBox CB_Grass2; - private System.Windows.Forms.NumericUpDown NUP_GrassMin6; - private System.Windows.Forms.ComboBox CB_Grass1; - private System.Windows.Forms.NumericUpDown NUP_GrassMax6; - private System.Windows.Forms.Label label31; - private System.Windows.Forms.NumericUpDown NUP_GrassForme7; - private System.Windows.Forms.Label label41; - private System.Windows.Forms.NumericUpDown NUP_GrassMin7; - private System.Windows.Forms.Label label42; - private System.Windows.Forms.NumericUpDown NUP_GrassMax7; - private System.Windows.Forms.Label label40; - private System.Windows.Forms.NumericUpDown NUP_GrassForme8; - private System.Windows.Forms.Label label39; - private System.Windows.Forms.NumericUpDown NUP_GrassMin8; - private System.Windows.Forms.Label label38; - private System.Windows.Forms.NumericUpDown NUP_GrassMax8; - private System.Windows.Forms.Label label37; - private System.Windows.Forms.NumericUpDown NUP_GrassForme9; - private System.Windows.Forms.Label label36; - private System.Windows.Forms.NumericUpDown NUP_GrassMin9; - private System.Windows.Forms.Label label35; - private System.Windows.Forms.NumericUpDown NUP_GrassMax9; - private System.Windows.Forms.Label label34; - private System.Windows.Forms.NumericUpDown NUP_GrassForme10; - private System.Windows.Forms.Label label33; - private System.Windows.Forms.NumericUpDown NUP_GrassMin10; - private System.Windows.Forms.Label label32; - private System.Windows.Forms.NumericUpDown NUP_GrassMax10; - private System.Windows.Forms.NumericUpDown NUP_GrassMax12; - private System.Windows.Forms.NumericUpDown NUP_GrassForme11; - private System.Windows.Forms.NumericUpDown NUP_GrassMin12; - private System.Windows.Forms.NumericUpDown NUP_GrassMin11; - private System.Windows.Forms.NumericUpDown NUP_GrassForme12; - private System.Windows.Forms.NumericUpDown NUP_GrassMax11; - private System.Windows.Forms.TabPage TabPage_Water; - private System.Windows.Forms.TabPage TabPage_Horde; - private System.Windows.Forms.TabPage tabPage1; - private System.Windows.Forms.NumericUpDown NUP_RedForme1; - private System.Windows.Forms.NumericUpDown NUP_RedMin1; - private System.Windows.Forms.Label label82; - private System.Windows.Forms.NumericUpDown NUP_RedMax1; - private System.Windows.Forms.Label label83; - private System.Windows.Forms.NumericUpDown NUP_RedForme2; - private System.Windows.Forms.Label label84; - private System.Windows.Forms.NumericUpDown NUP_RedMin2; - private System.Windows.Forms.Label label85; - private System.Windows.Forms.NumericUpDown NUP_RedMax2; - private System.Windows.Forms.ComboBox CB_Purple12; - private System.Windows.Forms.NumericUpDown NUP_RedForme3; - private System.Windows.Forms.ComboBox CB_Purple11; - private System.Windows.Forms.NumericUpDown NUP_RedMin3; - private System.Windows.Forms.ComboBox CB_Purple10; - private System.Windows.Forms.NumericUpDown NUP_RedMax3; - private System.Windows.Forms.ComboBox CB_Purple9; - private System.Windows.Forms.NumericUpDown NUP_RedForme4; - private System.Windows.Forms.ComboBox CB_Purple8; - private System.Windows.Forms.NumericUpDown NUP_RedMin4; - private System.Windows.Forms.ComboBox CB_Purple7; - private System.Windows.Forms.NumericUpDown NUP_RedMax4; - private System.Windows.Forms.ComboBox CB_Purple6; - private System.Windows.Forms.NumericUpDown NUP_RedForme5; - private System.Windows.Forms.ComboBox CB_Purple5; - private System.Windows.Forms.NumericUpDown NUP_RedMin5; - private System.Windows.Forms.ComboBox CB_Purple4; - private System.Windows.Forms.NumericUpDown NUP_RedMax5; - private System.Windows.Forms.ComboBox CB_Purple3; - private System.Windows.Forms.NumericUpDown NUP_RedForme6; - private System.Windows.Forms.ComboBox CB_Purple2; - private System.Windows.Forms.NumericUpDown NUP_RedMin6; - private System.Windows.Forms.ComboBox CB_Purple1; - private System.Windows.Forms.NumericUpDown NUP_RedMax6; - private System.Windows.Forms.Label label86; - private System.Windows.Forms.NumericUpDown NUP_RedForme7; - private System.Windows.Forms.Label label87; - private System.Windows.Forms.NumericUpDown NUP_RedMin7; - private System.Windows.Forms.Label label88; - private System.Windows.Forms.NumericUpDown NUP_RedMax7; - private System.Windows.Forms.Label label89; - private System.Windows.Forms.NumericUpDown NUP_RedForme8; - private System.Windows.Forms.Label label90; - private System.Windows.Forms.NumericUpDown NUP_RedMin8; - private System.Windows.Forms.Label label91; - private System.Windows.Forms.NumericUpDown NUP_RedMax8; - private System.Windows.Forms.Label label92; - private System.Windows.Forms.NumericUpDown NUP_RedForme9; - private System.Windows.Forms.Label label93; - private System.Windows.Forms.NumericUpDown NUP_RedMin9; - private System.Windows.Forms.Label label94; - private System.Windows.Forms.NumericUpDown NUP_RedMax9; - private System.Windows.Forms.Label label95; - private System.Windows.Forms.NumericUpDown NUP_RedForme10; - private System.Windows.Forms.Label label96; - private System.Windows.Forms.NumericUpDown NUP_RedMin10; - private System.Windows.Forms.Label label97; - private System.Windows.Forms.NumericUpDown NUP_RedMax10; - private System.Windows.Forms.NumericUpDown NUP_PurpleForme1; - private System.Windows.Forms.NumericUpDown NUP_PurpleMin1; - private System.Windows.Forms.Label label66; - private System.Windows.Forms.NumericUpDown NUP_PurpleMax1; - private System.Windows.Forms.Label label67; - private System.Windows.Forms.NumericUpDown NUP_PurpleForme2; - private System.Windows.Forms.Label label68; - private System.Windows.Forms.NumericUpDown NUP_PurpleMin2; - private System.Windows.Forms.Label label69; - private System.Windows.Forms.NumericUpDown NUP_PurpleMax2; - private System.Windows.Forms.ComboBox CB_Red12; - private System.Windows.Forms.NumericUpDown NUP_PurpleForme3; - private System.Windows.Forms.ComboBox CB_Red11; - private System.Windows.Forms.NumericUpDown NUP_PurpleMin3; - private System.Windows.Forms.ComboBox CB_Red10; - private System.Windows.Forms.NumericUpDown NUP_PurpleMax3; - private System.Windows.Forms.ComboBox CB_Red9; - private System.Windows.Forms.NumericUpDown NUP_PurpleForme4; - private System.Windows.Forms.ComboBox CB_Red8; - private System.Windows.Forms.NumericUpDown NUP_PurpleMin4; - private System.Windows.Forms.ComboBox CB_Red7; - private System.Windows.Forms.NumericUpDown NUP_PurpleMax4; - private System.Windows.Forms.ComboBox CB_Red6; - private System.Windows.Forms.NumericUpDown NUP_PurpleForme5; - private System.Windows.Forms.ComboBox CB_Red5; - private System.Windows.Forms.NumericUpDown NUP_PurpleMin5; - private System.Windows.Forms.ComboBox CB_Red4; - private System.Windows.Forms.NumericUpDown NUP_PurpleMax5; - private System.Windows.Forms.ComboBox CB_Red3; - private System.Windows.Forms.NumericUpDown NUP_PurpleForme6; - private System.Windows.Forms.ComboBox CB_Red2; - private System.Windows.Forms.NumericUpDown NUP_PurpleMin6; - private System.Windows.Forms.ComboBox CB_Red1; - private System.Windows.Forms.NumericUpDown NUP_PurpleMax6; - private System.Windows.Forms.Label label70; - private System.Windows.Forms.NumericUpDown NUP_PurpleForme7; - private System.Windows.Forms.Label label71; - private System.Windows.Forms.NumericUpDown NUP_PurpleMin7; - private System.Windows.Forms.Label label72; - private System.Windows.Forms.NumericUpDown NUP_PurpleMax7; - private System.Windows.Forms.Label label73; - private System.Windows.Forms.NumericUpDown NUP_PurpleForme8; - private System.Windows.Forms.Label label74; - private System.Windows.Forms.NumericUpDown NUP_PurpleMin8; - private System.Windows.Forms.Label label75; - private System.Windows.Forms.NumericUpDown NUP_PurpleMax8; - private System.Windows.Forms.Label label76; - private System.Windows.Forms.NumericUpDown NUP_PurpleForme9; - private System.Windows.Forms.Label label77; - private System.Windows.Forms.NumericUpDown NUP_PurpleMin9; - private System.Windows.Forms.Label label78; - private System.Windows.Forms.NumericUpDown NUP_PurpleMax9; - private System.Windows.Forms.Label label79; - private System.Windows.Forms.NumericUpDown NUP_PurpleForme10; - private System.Windows.Forms.Label label80; - private System.Windows.Forms.NumericUpDown NUP_PurpleMin10; - private System.Windows.Forms.Label label81; - private System.Windows.Forms.NumericUpDown NUP_PurpleMax10; - private System.Windows.Forms.NumericUpDown NUP_YellowForme1; - private System.Windows.Forms.NumericUpDown NUP_YellowMin1; - private System.Windows.Forms.Label label50; - private System.Windows.Forms.NumericUpDown NUP_YellowMax1; - private System.Windows.Forms.Label label51; - private System.Windows.Forms.NumericUpDown NUP_YellowForme2; - private System.Windows.Forms.Label label52; - private System.Windows.Forms.NumericUpDown NUP_YellowMin2; - private System.Windows.Forms.Label label53; - private System.Windows.Forms.NumericUpDown NUP_YellowMax2; - private System.Windows.Forms.ComboBox CB_Yellow12; - private System.Windows.Forms.NumericUpDown NUP_YellowForme3; - private System.Windows.Forms.ComboBox CB_Yellow11; - private System.Windows.Forms.NumericUpDown NUP_YellowMin3; - private System.Windows.Forms.ComboBox CB_Yellow10; - private System.Windows.Forms.NumericUpDown NUP_YellowMax3; - private System.Windows.Forms.ComboBox CB_Yellow9; - private System.Windows.Forms.NumericUpDown NUP_YellowForme4; - private System.Windows.Forms.ComboBox CB_Yellow8; - private System.Windows.Forms.NumericUpDown NUP_YellowMin4; - private System.Windows.Forms.ComboBox CB_Yellow7; - private System.Windows.Forms.NumericUpDown NUP_YellowMax4; - private System.Windows.Forms.ComboBox CB_Yellow6; - private System.Windows.Forms.NumericUpDown NUP_YellowForme5; - private System.Windows.Forms.ComboBox CB_Yellow5; - private System.Windows.Forms.NumericUpDown NUP_YellowMin5; - private System.Windows.Forms.ComboBox CB_Yellow4; - private System.Windows.Forms.NumericUpDown NUP_YellowMax5; - private System.Windows.Forms.ComboBox CB_Yellow3; - private System.Windows.Forms.NumericUpDown NUP_YellowForme6; - private System.Windows.Forms.ComboBox CB_Yellow2; - private System.Windows.Forms.NumericUpDown NUP_YellowMin6; - private System.Windows.Forms.ComboBox CB_Yellow1; - private System.Windows.Forms.NumericUpDown NUP_YellowMax6; - private System.Windows.Forms.Label label54; - private System.Windows.Forms.NumericUpDown NUP_YellowForme7; - private System.Windows.Forms.Label label55; - private System.Windows.Forms.NumericUpDown NUP_YellowMin7; - private System.Windows.Forms.Label label56; - private System.Windows.Forms.NumericUpDown NUP_YellowMax7; - private System.Windows.Forms.Label label57; - private System.Windows.Forms.NumericUpDown NUP_YellowForme8; - private System.Windows.Forms.Label label58; - private System.Windows.Forms.NumericUpDown NUP_YellowMin8; - private System.Windows.Forms.Label label59; - private System.Windows.Forms.NumericUpDown NUP_YellowMax8; - private System.Windows.Forms.Label label60; - private System.Windows.Forms.NumericUpDown NUP_YellowForme9; - private System.Windows.Forms.Label label61; - private System.Windows.Forms.NumericUpDown NUP_YellowMin9; - private System.Windows.Forms.Label label62; - private System.Windows.Forms.NumericUpDown NUP_YellowMax9; - private System.Windows.Forms.Label label63; - private System.Windows.Forms.NumericUpDown NUP_YellowForme10; - private System.Windows.Forms.Label label64; - private System.Windows.Forms.NumericUpDown NUP_YellowMin10; - private System.Windows.Forms.Label label65; - private System.Windows.Forms.NumericUpDown NUP_YellowMax10; - private System.Windows.Forms.NumericUpDown NUP_RedForme11; - private System.Windows.Forms.NumericUpDown NUP_RedMin11; - private System.Windows.Forms.NumericUpDown NUP_RedMax11; - private System.Windows.Forms.NumericUpDown NUP_RedForme12; - private System.Windows.Forms.NumericUpDown NUP_RedMin12; - private System.Windows.Forms.NumericUpDown NUP_RedMax12; - private System.Windows.Forms.NumericUpDown NUP_PurpleForme11; - private System.Windows.Forms.NumericUpDown NUP_PurpleMin11; - private System.Windows.Forms.NumericUpDown NUP_PurpleMax11; - private System.Windows.Forms.NumericUpDown NUP_PurpleForme12; - private System.Windows.Forms.NumericUpDown NUP_PurpleMin12; - private System.Windows.Forms.NumericUpDown NUP_PurpleMax12; - private System.Windows.Forms.NumericUpDown NUP_YellowForme11; - private System.Windows.Forms.NumericUpDown NUP_YellowMin11; - private System.Windows.Forms.NumericUpDown NUP_YellowMax11; - private System.Windows.Forms.NumericUpDown NUP_YellowForme12; - private System.Windows.Forms.NumericUpDown NUP_YellowMin12; - private System.Windows.Forms.NumericUpDown NUP_YellowMax12; - private System.Windows.Forms.Label label22; - private System.Windows.Forms.ComboBox CB_Old1; - private System.Windows.Forms.NumericUpDown NUP_OldForme1; - private System.Windows.Forms.NumericUpDown NUP_OldMin1; - private System.Windows.Forms.NumericUpDown NUP_OldMax1; - private System.Windows.Forms.ComboBox CB_Old2; - private System.Windows.Forms.NumericUpDown NUP_OldForme2; - private System.Windows.Forms.NumericUpDown NUP_OldMin2; - private System.Windows.Forms.NumericUpDown NUP_OldMax2; - private System.Windows.Forms.ComboBox CB_Old3; - private System.Windows.Forms.NumericUpDown NUP_OldForme3; - private System.Windows.Forms.NumericUpDown NUP_OldMin3; - private System.Windows.Forms.NumericUpDown NUP_OldMax3; - private System.Windows.Forms.Label label45; - private System.Windows.Forms.Label label44; - private System.Windows.Forms.Label label43; - private System.Windows.Forms.Label label23; - private System.Windows.Forms.Label label24; - private System.Windows.Forms.Label label25; - private System.Windows.Forms.Label label103; - private System.Windows.Forms.Label label48; - private System.Windows.Forms.Label label104; - private System.Windows.Forms.ComboBox CB_Super1; - private System.Windows.Forms.Label label105; - private System.Windows.Forms.NumericUpDown NUP_SuperForme1; - private System.Windows.Forms.Label label106; - private System.Windows.Forms.ComboBox CB_Surf1; - private System.Windows.Forms.NumericUpDown NUP_SuperMin1; - private System.Windows.Forms.NumericUpDown NUP_SurfForme1; - private System.Windows.Forms.NumericUpDown NUP_SuperMax1; - private System.Windows.Forms.NumericUpDown NUP_SurfMin1; - private System.Windows.Forms.ComboBox CB_Super2; - private System.Windows.Forms.NumericUpDown NUP_SurfMax1; - private System.Windows.Forms.NumericUpDown NUP_SuperForme2; - private System.Windows.Forms.ComboBox CB_Surf2; - private System.Windows.Forms.NumericUpDown NUP_SuperMin2; - private System.Windows.Forms.NumericUpDown NUP_SurfForme2; - private System.Windows.Forms.NumericUpDown NUP_SuperMax2; - private System.Windows.Forms.NumericUpDown NUP_SurfMin2; - private System.Windows.Forms.ComboBox CB_Super3; - private System.Windows.Forms.NumericUpDown NUP_SurfMax5; - private System.Windows.Forms.NumericUpDown NUP_SuperForme3; - private System.Windows.Forms.NumericUpDown NUP_SurfMax2; - private System.Windows.Forms.NumericUpDown NUP_SuperMin3; - private System.Windows.Forms.NumericUpDown NUP_SurfMin5; - private System.Windows.Forms.NumericUpDown NUP_SuperMax3; - private System.Windows.Forms.ComboBox CB_Surf3; - private System.Windows.Forms.Label label49; - private System.Windows.Forms.NumericUpDown NUP_SurfForme5; - private System.Windows.Forms.Label label98; - private System.Windows.Forms.NumericUpDown NUP_SurfForme3; - private System.Windows.Forms.Label label99; - private System.Windows.Forms.ComboBox CB_Surf5; - private System.Windows.Forms.Label label100; - private System.Windows.Forms.NumericUpDown NUP_SurfMin3; - private System.Windows.Forms.Label label101; - private System.Windows.Forms.NumericUpDown NUP_SurfMax4; - private System.Windows.Forms.Label label102; - private System.Windows.Forms.NumericUpDown NUP_SurfMax3; - private System.Windows.Forms.Label label26; - private System.Windows.Forms.NumericUpDown NUP_SurfMin4; - private System.Windows.Forms.ComboBox CB_Good1; - private System.Windows.Forms.ComboBox CB_Surf4; - private System.Windows.Forms.NumericUpDown NUP_GoodForme1; - private System.Windows.Forms.NumericUpDown NUP_SurfForme4; - private System.Windows.Forms.NumericUpDown NUP_GoodMin1; - private System.Windows.Forms.NumericUpDown NUP_GoodMax1; - private System.Windows.Forms.ComboBox CB_Good2; - private System.Windows.Forms.NumericUpDown NUP_GoodForme2; - private System.Windows.Forms.NumericUpDown NUP_GoodMin2; - private System.Windows.Forms.NumericUpDown NUP_GoodMax2; - private System.Windows.Forms.ComboBox CB_Good3; - private System.Windows.Forms.NumericUpDown NUP_GoodForme3; - private System.Windows.Forms.NumericUpDown NUP_GoodMin3; - private System.Windows.Forms.NumericUpDown NUP_GoodMax3; - private System.Windows.Forms.Label label27; - private System.Windows.Forms.Label label28; - private System.Windows.Forms.Label label29; - private System.Windows.Forms.Label label30; - private System.Windows.Forms.Label label46; - private System.Windows.Forms.Label label47; - private System.Windows.Forms.Label label116; - private System.Windows.Forms.Label label117; - private System.Windows.Forms.Label label118; - private System.Windows.Forms.Label label119; - private System.Windows.Forms.Label label120; - private System.Windows.Forms.Label label107; - private System.Windows.Forms.Label label115; - private System.Windows.Forms.Label label108; - private System.Windows.Forms.NumericUpDown NUP_RockSmashMax5; - private System.Windows.Forms.Label label109; - private System.Windows.Forms.NumericUpDown NUP_RockSmashMin5; - private System.Windows.Forms.Label label110; - private System.Windows.Forms.NumericUpDown NUP_RockSmashForme5; - private System.Windows.Forms.Label label111; - private System.Windows.Forms.ComboBox CB_RockSmash5; - private System.Windows.Forms.ComboBox CB_RockSmash1; - private System.Windows.Forms.NumericUpDown NUP_RockSmashMax4; - private System.Windows.Forms.NumericUpDown NUP_RockSmashForme1; - private System.Windows.Forms.NumericUpDown NUP_RockSmashMin4; - private System.Windows.Forms.Label label112; - private System.Windows.Forms.NumericUpDown NUP_RockSmashForme4; - private System.Windows.Forms.NumericUpDown NUP_RockSmashMin1; - private System.Windows.Forms.ComboBox CB_RockSmash4; - private System.Windows.Forms.Label label113; - private System.Windows.Forms.NumericUpDown NUP_RockSmashMax3; - private System.Windows.Forms.NumericUpDown NUP_RockSmashMax1; - private System.Windows.Forms.NumericUpDown NUP_RockSmashMin3; - private System.Windows.Forms.Label label114; - private System.Windows.Forms.NumericUpDown NUP_RockSmashForme3; - private System.Windows.Forms.ComboBox CB_RockSmash2; - private System.Windows.Forms.ComboBox CB_RockSmash3; - private System.Windows.Forms.NumericUpDown NUP_RockSmashMax2; - private System.Windows.Forms.NumericUpDown NUP_RockSmashForme2; - private System.Windows.Forms.NumericUpDown NUP_RockSmashMin2; - private System.Windows.Forms.Label label121; - private System.Windows.Forms.Label label124; - private System.Windows.Forms.Label label122; - private System.Windows.Forms.ComboBox CB_HordeA1; - private System.Windows.Forms.Label label123; - private System.Windows.Forms.NumericUpDown NUP_HordeAForme1; - private System.Windows.Forms.NumericUpDown NUP_HordeAMin1; - private System.Windows.Forms.NumericUpDown NUP_HordeAMax5; - private System.Windows.Forms.NumericUpDown NUP_HordeAMax1; - private System.Windows.Forms.NumericUpDown NUP_HordeAMin5; - private System.Windows.Forms.ComboBox CB_HordeA2; - private System.Windows.Forms.NumericUpDown NUP_HordeAForme5; - private System.Windows.Forms.NumericUpDown NUP_HordeAForme2; - private System.Windows.Forms.ComboBox CB_HordeA5; - private System.Windows.Forms.NumericUpDown NUP_HordeAMin2; - private System.Windows.Forms.NumericUpDown NUP_HordeAMax4; - private System.Windows.Forms.NumericUpDown NUP_HordeAMax2; - private System.Windows.Forms.NumericUpDown NUP_HordeAMin4; - private System.Windows.Forms.ComboBox CB_HordeA3; - private System.Windows.Forms.NumericUpDown NUP_HordeAForme4; - private System.Windows.Forms.NumericUpDown NUP_HordeAForme3; - private System.Windows.Forms.ComboBox CB_HordeA4; - private System.Windows.Forms.NumericUpDown NUP_HordeAMin3; - private System.Windows.Forms.NumericUpDown NUP_HordeAMax3; - private System.Windows.Forms.Label label125; - private System.Windows.Forms.Label label126; - private System.Windows.Forms.Label label127; - private System.Windows.Forms.Label label128; - private System.Windows.Forms.NumericUpDown NUP_HordeBMax5; - private System.Windows.Forms.NumericUpDown NUP_HordeBMin5; - private System.Windows.Forms.NumericUpDown NUP_HordeBForme5; - private System.Windows.Forms.ComboBox CB_HordeB5; - private System.Windows.Forms.NumericUpDown NUP_HordeBMax4; - private System.Windows.Forms.NumericUpDown NUP_HordeBMin4; - private System.Windows.Forms.NumericUpDown NUP_HordeBForme4; - private System.Windows.Forms.ComboBox CB_HordeB4; - private System.Windows.Forms.NumericUpDown NUP_HordeBMax3; - private System.Windows.Forms.NumericUpDown NUP_HordeBMin3; - private System.Windows.Forms.NumericUpDown NUP_HordeBForme3; - private System.Windows.Forms.ComboBox CB_HordeB3; - private System.Windows.Forms.NumericUpDown NUP_HordeBMax2; - private System.Windows.Forms.NumericUpDown NUP_HordeBMin2; - private System.Windows.Forms.NumericUpDown NUP_HordeBForme2; - private System.Windows.Forms.ComboBox CB_HordeB2; - private System.Windows.Forms.NumericUpDown NUP_HordeBMax1; - private System.Windows.Forms.NumericUpDown NUP_HordeBMin1; - private System.Windows.Forms.NumericUpDown NUP_HordeBForme1; - private System.Windows.Forms.ComboBox CB_HordeB1; - private System.Windows.Forms.Label label129; - private System.Windows.Forms.Label label130; - private System.Windows.Forms.Label label131; - private System.Windows.Forms.Label label132; - private System.Windows.Forms.NumericUpDown NUP_HordeCMax5; - private System.Windows.Forms.NumericUpDown NUP_HordeCMin5; - private System.Windows.Forms.NumericUpDown NUP_HordeCForme5; - private System.Windows.Forms.ComboBox CB_HordeC5; - private System.Windows.Forms.NumericUpDown NUP_HordeCMax4; - private System.Windows.Forms.NumericUpDown NUP_HordeCMin4; - private System.Windows.Forms.NumericUpDown NUP_HordeCForme4; - private System.Windows.Forms.ComboBox CB_HordeC4; - private System.Windows.Forms.NumericUpDown NUP_HordeCMax3; - private System.Windows.Forms.NumericUpDown NUP_HordeCMin3; - private System.Windows.Forms.NumericUpDown NUP_HordeCForme3; - private System.Windows.Forms.ComboBox CB_HordeC3; - private System.Windows.Forms.NumericUpDown NUP_HordeCMax2; - private System.Windows.Forms.NumericUpDown NUP_HordeCMin2; - private System.Windows.Forms.NumericUpDown NUP_HordeCForme2; - private System.Windows.Forms.ComboBox CB_HordeC2; - private System.Windows.Forms.NumericUpDown NUP_HordeCMax1; - private System.Windows.Forms.NumericUpDown NUP_HordeCMin1; - private System.Windows.Forms.NumericUpDown NUP_HordeCForme1; - private System.Windows.Forms.ComboBox CB_HordeC1; - private System.Windows.Forms.ComboBox CB_LocationID; - private System.Windows.Forms.Button B_Save; - private System.Windows.Forms.Label label134; - private System.Windows.Forms.Label label136; - private System.Windows.Forms.ComboBox CB_FormeList; - private System.Windows.Forms.Button B_Randomize; - private System.Windows.Forms.Button B_Dump; - private System.Windows.Forms.GroupBox GB_Tweak; - private System.Windows.Forms.Label L_RandOpt; - private System.Windows.Forms.CheckBox CHK_BST; - private System.Windows.Forms.CheckBox CHK_E; - private System.Windows.Forms.CheckBox CHK_L; - private System.Windows.Forms.CheckBox CHK_G6; - private System.Windows.Forms.CheckBox CHK_G5; - private System.Windows.Forms.CheckBox CHK_G4; - private System.Windows.Forms.CheckBox CHK_G3; - private System.Windows.Forms.CheckBox CHK_G2; - private System.Windows.Forms.CheckBox CHK_G1; - private System.Windows.Forms.Button B_LevelPlus; - private System.Windows.Forms.NumericUpDown NUD_LevelAmp; - private System.Windows.Forms.CheckBox CHK_Level; - private System.Windows.Forms.CheckBox CHK_MegaForm; - private System.Windows.Forms.CheckBox CHK_HomogeneousHordes; } -} + #endregion + + private System.Windows.Forms.TabControl TabControl_EncounterData; + private System.Windows.Forms.TabPage TabPage_Land; + private System.Windows.Forms.NumericUpDown NUP_RTForme1; + private System.Windows.Forms.NumericUpDown NUP_RTMin1; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.NumericUpDown NUP_RTMax1; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.NumericUpDown NUP_RTForme2; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.NumericUpDown NUP_RTMin2; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.NumericUpDown NUP_RTMax2; + private System.Windows.Forms.ComboBox CB_RT12; + private System.Windows.Forms.NumericUpDown NUP_RTForme3; + private System.Windows.Forms.ComboBox CB_RT11; + private System.Windows.Forms.NumericUpDown NUP_RTMin3; + private System.Windows.Forms.ComboBox CB_RT10; + private System.Windows.Forms.NumericUpDown NUP_RTMax3; + private System.Windows.Forms.ComboBox CB_RT9; + private System.Windows.Forms.NumericUpDown NUP_RTForme4; + private System.Windows.Forms.ComboBox CB_RT8; + private System.Windows.Forms.NumericUpDown NUP_RTMin4; + private System.Windows.Forms.ComboBox CB_RT7; + private System.Windows.Forms.NumericUpDown NUP_RTMax4; + private System.Windows.Forms.ComboBox CB_RT6; + private System.Windows.Forms.NumericUpDown NUP_RTForme5; + private System.Windows.Forms.ComboBox CB_RT5; + private System.Windows.Forms.NumericUpDown NUP_RTMin5; + private System.Windows.Forms.ComboBox CB_RT4; + private System.Windows.Forms.NumericUpDown NUP_RTMax5; + private System.Windows.Forms.ComboBox CB_RT3; + private System.Windows.Forms.NumericUpDown NUP_RTForme6; + private System.Windows.Forms.ComboBox CB_RT2; + private System.Windows.Forms.NumericUpDown NUP_RTMin6; + private System.Windows.Forms.ComboBox CB_RT1; + private System.Windows.Forms.NumericUpDown NUP_RTMax6; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.NumericUpDown NUP_RTForme7; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.NumericUpDown NUP_RTMin7; + private System.Windows.Forms.Label label12; + private System.Windows.Forms.NumericUpDown NUP_RTMax7; + private System.Windows.Forms.Label label13; + private System.Windows.Forms.NumericUpDown NUP_RTForme8; + private System.Windows.Forms.Label label14; + private System.Windows.Forms.NumericUpDown NUP_RTMin8; + private System.Windows.Forms.Label label15; + private System.Windows.Forms.NumericUpDown NUP_RTMax8; + private System.Windows.Forms.Label label16; + private System.Windows.Forms.NumericUpDown NUP_RTForme9; + private System.Windows.Forms.Label label17; + private System.Windows.Forms.NumericUpDown NUP_RTMin9; + private System.Windows.Forms.Label label18; + private System.Windows.Forms.NumericUpDown NUP_RTMax9; + private System.Windows.Forms.Label label19; + private System.Windows.Forms.NumericUpDown NUP_RTForme10; + private System.Windows.Forms.Label label20; + private System.Windows.Forms.NumericUpDown NUP_RTMin10; + private System.Windows.Forms.Label label21; + private System.Windows.Forms.NumericUpDown NUP_RTMax10; + private System.Windows.Forms.NumericUpDown NUP_RTForme11; + private System.Windows.Forms.NumericUpDown NUP_RTMin11; + private System.Windows.Forms.NumericUpDown NUP_RTMax11; + private System.Windows.Forms.NumericUpDown NUP_RTForme12; + private System.Windows.Forms.NumericUpDown NUP_RTMin12; + private System.Windows.Forms.NumericUpDown NUP_RTMax12; + private System.Windows.Forms.NumericUpDown NUP_GrassForme1; + private System.Windows.Forms.NumericUpDown NUP_GrassMin1; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.NumericUpDown NUP_GrassMax1; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.NumericUpDown NUP_GrassForme2; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.NumericUpDown NUP_GrassMin2; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.NumericUpDown NUP_GrassMax2; + private System.Windows.Forms.ComboBox CB_Grass12; + private System.Windows.Forms.NumericUpDown NUP_GrassForme3; + private System.Windows.Forms.ComboBox CB_Grass11; + private System.Windows.Forms.NumericUpDown NUP_GrassMin3; + private System.Windows.Forms.ComboBox CB_Grass10; + private System.Windows.Forms.NumericUpDown NUP_GrassMax3; + private System.Windows.Forms.ComboBox CB_Grass9; + private System.Windows.Forms.NumericUpDown NUP_GrassForme4; + private System.Windows.Forms.ComboBox CB_Grass8; + private System.Windows.Forms.NumericUpDown NUP_GrassMin4; + private System.Windows.Forms.ComboBox CB_Grass7; + private System.Windows.Forms.NumericUpDown NUP_GrassMax4; + private System.Windows.Forms.ComboBox CB_Grass6; + private System.Windows.Forms.NumericUpDown NUP_GrassForme5; + private System.Windows.Forms.ComboBox CB_Grass5; + private System.Windows.Forms.NumericUpDown NUP_GrassMin5; + private System.Windows.Forms.ComboBox CB_Grass4; + private System.Windows.Forms.NumericUpDown NUP_GrassMax5; + private System.Windows.Forms.ComboBox CB_Grass3; + private System.Windows.Forms.NumericUpDown NUP_GrassForme6; + private System.Windows.Forms.ComboBox CB_Grass2; + private System.Windows.Forms.NumericUpDown NUP_GrassMin6; + private System.Windows.Forms.ComboBox CB_Grass1; + private System.Windows.Forms.NumericUpDown NUP_GrassMax6; + private System.Windows.Forms.Label label31; + private System.Windows.Forms.NumericUpDown NUP_GrassForme7; + private System.Windows.Forms.Label label41; + private System.Windows.Forms.NumericUpDown NUP_GrassMin7; + private System.Windows.Forms.Label label42; + private System.Windows.Forms.NumericUpDown NUP_GrassMax7; + private System.Windows.Forms.Label label40; + private System.Windows.Forms.NumericUpDown NUP_GrassForme8; + private System.Windows.Forms.Label label39; + private System.Windows.Forms.NumericUpDown NUP_GrassMin8; + private System.Windows.Forms.Label label38; + private System.Windows.Forms.NumericUpDown NUP_GrassMax8; + private System.Windows.Forms.Label label37; + private System.Windows.Forms.NumericUpDown NUP_GrassForme9; + private System.Windows.Forms.Label label36; + private System.Windows.Forms.NumericUpDown NUP_GrassMin9; + private System.Windows.Forms.Label label35; + private System.Windows.Forms.NumericUpDown NUP_GrassMax9; + private System.Windows.Forms.Label label34; + private System.Windows.Forms.NumericUpDown NUP_GrassForme10; + private System.Windows.Forms.Label label33; + private System.Windows.Forms.NumericUpDown NUP_GrassMin10; + private System.Windows.Forms.Label label32; + private System.Windows.Forms.NumericUpDown NUP_GrassMax10; + private System.Windows.Forms.NumericUpDown NUP_GrassMax12; + private System.Windows.Forms.NumericUpDown NUP_GrassForme11; + private System.Windows.Forms.NumericUpDown NUP_GrassMin12; + private System.Windows.Forms.NumericUpDown NUP_GrassMin11; + private System.Windows.Forms.NumericUpDown NUP_GrassForme12; + private System.Windows.Forms.NumericUpDown NUP_GrassMax11; + private System.Windows.Forms.TabPage TabPage_Water; + private System.Windows.Forms.TabPage TabPage_Horde; + private System.Windows.Forms.TabPage tabPage1; + private System.Windows.Forms.NumericUpDown NUP_RedForme1; + private System.Windows.Forms.NumericUpDown NUP_RedMin1; + private System.Windows.Forms.Label label82; + private System.Windows.Forms.NumericUpDown NUP_RedMax1; + private System.Windows.Forms.Label label83; + private System.Windows.Forms.NumericUpDown NUP_RedForme2; + private System.Windows.Forms.Label label84; + private System.Windows.Forms.NumericUpDown NUP_RedMin2; + private System.Windows.Forms.Label label85; + private System.Windows.Forms.NumericUpDown NUP_RedMax2; + private System.Windows.Forms.ComboBox CB_Purple12; + private System.Windows.Forms.NumericUpDown NUP_RedForme3; + private System.Windows.Forms.ComboBox CB_Purple11; + private System.Windows.Forms.NumericUpDown NUP_RedMin3; + private System.Windows.Forms.ComboBox CB_Purple10; + private System.Windows.Forms.NumericUpDown NUP_RedMax3; + private System.Windows.Forms.ComboBox CB_Purple9; + private System.Windows.Forms.NumericUpDown NUP_RedForme4; + private System.Windows.Forms.ComboBox CB_Purple8; + private System.Windows.Forms.NumericUpDown NUP_RedMin4; + private System.Windows.Forms.ComboBox CB_Purple7; + private System.Windows.Forms.NumericUpDown NUP_RedMax4; + private System.Windows.Forms.ComboBox CB_Purple6; + private System.Windows.Forms.NumericUpDown NUP_RedForme5; + private System.Windows.Forms.ComboBox CB_Purple5; + private System.Windows.Forms.NumericUpDown NUP_RedMin5; + private System.Windows.Forms.ComboBox CB_Purple4; + private System.Windows.Forms.NumericUpDown NUP_RedMax5; + private System.Windows.Forms.ComboBox CB_Purple3; + private System.Windows.Forms.NumericUpDown NUP_RedForme6; + private System.Windows.Forms.ComboBox CB_Purple2; + private System.Windows.Forms.NumericUpDown NUP_RedMin6; + private System.Windows.Forms.ComboBox CB_Purple1; + private System.Windows.Forms.NumericUpDown NUP_RedMax6; + private System.Windows.Forms.Label label86; + private System.Windows.Forms.NumericUpDown NUP_RedForme7; + private System.Windows.Forms.Label label87; + private System.Windows.Forms.NumericUpDown NUP_RedMin7; + private System.Windows.Forms.Label label88; + private System.Windows.Forms.NumericUpDown NUP_RedMax7; + private System.Windows.Forms.Label label89; + private System.Windows.Forms.NumericUpDown NUP_RedForme8; + private System.Windows.Forms.Label label90; + private System.Windows.Forms.NumericUpDown NUP_RedMin8; + private System.Windows.Forms.Label label91; + private System.Windows.Forms.NumericUpDown NUP_RedMax8; + private System.Windows.Forms.Label label92; + private System.Windows.Forms.NumericUpDown NUP_RedForme9; + private System.Windows.Forms.Label label93; + private System.Windows.Forms.NumericUpDown NUP_RedMin9; + private System.Windows.Forms.Label label94; + private System.Windows.Forms.NumericUpDown NUP_RedMax9; + private System.Windows.Forms.Label label95; + private System.Windows.Forms.NumericUpDown NUP_RedForme10; + private System.Windows.Forms.Label label96; + private System.Windows.Forms.NumericUpDown NUP_RedMin10; + private System.Windows.Forms.Label label97; + private System.Windows.Forms.NumericUpDown NUP_RedMax10; + private System.Windows.Forms.NumericUpDown NUP_PurpleForme1; + private System.Windows.Forms.NumericUpDown NUP_PurpleMin1; + private System.Windows.Forms.Label label66; + private System.Windows.Forms.NumericUpDown NUP_PurpleMax1; + private System.Windows.Forms.Label label67; + private System.Windows.Forms.NumericUpDown NUP_PurpleForme2; + private System.Windows.Forms.Label label68; + private System.Windows.Forms.NumericUpDown NUP_PurpleMin2; + private System.Windows.Forms.Label label69; + private System.Windows.Forms.NumericUpDown NUP_PurpleMax2; + private System.Windows.Forms.ComboBox CB_Red12; + private System.Windows.Forms.NumericUpDown NUP_PurpleForme3; + private System.Windows.Forms.ComboBox CB_Red11; + private System.Windows.Forms.NumericUpDown NUP_PurpleMin3; + private System.Windows.Forms.ComboBox CB_Red10; + private System.Windows.Forms.NumericUpDown NUP_PurpleMax3; + private System.Windows.Forms.ComboBox CB_Red9; + private System.Windows.Forms.NumericUpDown NUP_PurpleForme4; + private System.Windows.Forms.ComboBox CB_Red8; + private System.Windows.Forms.NumericUpDown NUP_PurpleMin4; + private System.Windows.Forms.ComboBox CB_Red7; + private System.Windows.Forms.NumericUpDown NUP_PurpleMax4; + private System.Windows.Forms.ComboBox CB_Red6; + private System.Windows.Forms.NumericUpDown NUP_PurpleForme5; + private System.Windows.Forms.ComboBox CB_Red5; + private System.Windows.Forms.NumericUpDown NUP_PurpleMin5; + private System.Windows.Forms.ComboBox CB_Red4; + private System.Windows.Forms.NumericUpDown NUP_PurpleMax5; + private System.Windows.Forms.ComboBox CB_Red3; + private System.Windows.Forms.NumericUpDown NUP_PurpleForme6; + private System.Windows.Forms.ComboBox CB_Red2; + private System.Windows.Forms.NumericUpDown NUP_PurpleMin6; + private System.Windows.Forms.ComboBox CB_Red1; + private System.Windows.Forms.NumericUpDown NUP_PurpleMax6; + private System.Windows.Forms.Label label70; + private System.Windows.Forms.NumericUpDown NUP_PurpleForme7; + private System.Windows.Forms.Label label71; + private System.Windows.Forms.NumericUpDown NUP_PurpleMin7; + private System.Windows.Forms.Label label72; + private System.Windows.Forms.NumericUpDown NUP_PurpleMax7; + private System.Windows.Forms.Label label73; + private System.Windows.Forms.NumericUpDown NUP_PurpleForme8; + private System.Windows.Forms.Label label74; + private System.Windows.Forms.NumericUpDown NUP_PurpleMin8; + private System.Windows.Forms.Label label75; + private System.Windows.Forms.NumericUpDown NUP_PurpleMax8; + private System.Windows.Forms.Label label76; + private System.Windows.Forms.NumericUpDown NUP_PurpleForme9; + private System.Windows.Forms.Label label77; + private System.Windows.Forms.NumericUpDown NUP_PurpleMin9; + private System.Windows.Forms.Label label78; + private System.Windows.Forms.NumericUpDown NUP_PurpleMax9; + private System.Windows.Forms.Label label79; + private System.Windows.Forms.NumericUpDown NUP_PurpleForme10; + private System.Windows.Forms.Label label80; + private System.Windows.Forms.NumericUpDown NUP_PurpleMin10; + private System.Windows.Forms.Label label81; + private System.Windows.Forms.NumericUpDown NUP_PurpleMax10; + private System.Windows.Forms.NumericUpDown NUP_YellowForme1; + private System.Windows.Forms.NumericUpDown NUP_YellowMin1; + private System.Windows.Forms.Label label50; + private System.Windows.Forms.NumericUpDown NUP_YellowMax1; + private System.Windows.Forms.Label label51; + private System.Windows.Forms.NumericUpDown NUP_YellowForme2; + private System.Windows.Forms.Label label52; + private System.Windows.Forms.NumericUpDown NUP_YellowMin2; + private System.Windows.Forms.Label label53; + private System.Windows.Forms.NumericUpDown NUP_YellowMax2; + private System.Windows.Forms.ComboBox CB_Yellow12; + private System.Windows.Forms.NumericUpDown NUP_YellowForme3; + private System.Windows.Forms.ComboBox CB_Yellow11; + private System.Windows.Forms.NumericUpDown NUP_YellowMin3; + private System.Windows.Forms.ComboBox CB_Yellow10; + private System.Windows.Forms.NumericUpDown NUP_YellowMax3; + private System.Windows.Forms.ComboBox CB_Yellow9; + private System.Windows.Forms.NumericUpDown NUP_YellowForme4; + private System.Windows.Forms.ComboBox CB_Yellow8; + private System.Windows.Forms.NumericUpDown NUP_YellowMin4; + private System.Windows.Forms.ComboBox CB_Yellow7; + private System.Windows.Forms.NumericUpDown NUP_YellowMax4; + private System.Windows.Forms.ComboBox CB_Yellow6; + private System.Windows.Forms.NumericUpDown NUP_YellowForme5; + private System.Windows.Forms.ComboBox CB_Yellow5; + private System.Windows.Forms.NumericUpDown NUP_YellowMin5; + private System.Windows.Forms.ComboBox CB_Yellow4; + private System.Windows.Forms.NumericUpDown NUP_YellowMax5; + private System.Windows.Forms.ComboBox CB_Yellow3; + private System.Windows.Forms.NumericUpDown NUP_YellowForme6; + private System.Windows.Forms.ComboBox CB_Yellow2; + private System.Windows.Forms.NumericUpDown NUP_YellowMin6; + private System.Windows.Forms.ComboBox CB_Yellow1; + private System.Windows.Forms.NumericUpDown NUP_YellowMax6; + private System.Windows.Forms.Label label54; + private System.Windows.Forms.NumericUpDown NUP_YellowForme7; + private System.Windows.Forms.Label label55; + private System.Windows.Forms.NumericUpDown NUP_YellowMin7; + private System.Windows.Forms.Label label56; + private System.Windows.Forms.NumericUpDown NUP_YellowMax7; + private System.Windows.Forms.Label label57; + private System.Windows.Forms.NumericUpDown NUP_YellowForme8; + private System.Windows.Forms.Label label58; + private System.Windows.Forms.NumericUpDown NUP_YellowMin8; + private System.Windows.Forms.Label label59; + private System.Windows.Forms.NumericUpDown NUP_YellowMax8; + private System.Windows.Forms.Label label60; + private System.Windows.Forms.NumericUpDown NUP_YellowForme9; + private System.Windows.Forms.Label label61; + private System.Windows.Forms.NumericUpDown NUP_YellowMin9; + private System.Windows.Forms.Label label62; + private System.Windows.Forms.NumericUpDown NUP_YellowMax9; + private System.Windows.Forms.Label label63; + private System.Windows.Forms.NumericUpDown NUP_YellowForme10; + private System.Windows.Forms.Label label64; + private System.Windows.Forms.NumericUpDown NUP_YellowMin10; + private System.Windows.Forms.Label label65; + private System.Windows.Forms.NumericUpDown NUP_YellowMax10; + private System.Windows.Forms.NumericUpDown NUP_RedForme11; + private System.Windows.Forms.NumericUpDown NUP_RedMin11; + private System.Windows.Forms.NumericUpDown NUP_RedMax11; + private System.Windows.Forms.NumericUpDown NUP_RedForme12; + private System.Windows.Forms.NumericUpDown NUP_RedMin12; + private System.Windows.Forms.NumericUpDown NUP_RedMax12; + private System.Windows.Forms.NumericUpDown NUP_PurpleForme11; + private System.Windows.Forms.NumericUpDown NUP_PurpleMin11; + private System.Windows.Forms.NumericUpDown NUP_PurpleMax11; + private System.Windows.Forms.NumericUpDown NUP_PurpleForme12; + private System.Windows.Forms.NumericUpDown NUP_PurpleMin12; + private System.Windows.Forms.NumericUpDown NUP_PurpleMax12; + private System.Windows.Forms.NumericUpDown NUP_YellowForme11; + private System.Windows.Forms.NumericUpDown NUP_YellowMin11; + private System.Windows.Forms.NumericUpDown NUP_YellowMax11; + private System.Windows.Forms.NumericUpDown NUP_YellowForme12; + private System.Windows.Forms.NumericUpDown NUP_YellowMin12; + private System.Windows.Forms.NumericUpDown NUP_YellowMax12; + private System.Windows.Forms.Label label22; + private System.Windows.Forms.ComboBox CB_Old1; + private System.Windows.Forms.NumericUpDown NUP_OldForme1; + private System.Windows.Forms.NumericUpDown NUP_OldMin1; + private System.Windows.Forms.NumericUpDown NUP_OldMax1; + private System.Windows.Forms.ComboBox CB_Old2; + private System.Windows.Forms.NumericUpDown NUP_OldForme2; + private System.Windows.Forms.NumericUpDown NUP_OldMin2; + private System.Windows.Forms.NumericUpDown NUP_OldMax2; + private System.Windows.Forms.ComboBox CB_Old3; + private System.Windows.Forms.NumericUpDown NUP_OldForme3; + private System.Windows.Forms.NumericUpDown NUP_OldMin3; + private System.Windows.Forms.NumericUpDown NUP_OldMax3; + private System.Windows.Forms.Label label45; + private System.Windows.Forms.Label label44; + private System.Windows.Forms.Label label43; + private System.Windows.Forms.Label label23; + private System.Windows.Forms.Label label24; + private System.Windows.Forms.Label label25; + private System.Windows.Forms.Label label103; + private System.Windows.Forms.Label label48; + private System.Windows.Forms.Label label104; + private System.Windows.Forms.ComboBox CB_Super1; + private System.Windows.Forms.Label label105; + private System.Windows.Forms.NumericUpDown NUP_SuperForme1; + private System.Windows.Forms.Label label106; + private System.Windows.Forms.ComboBox CB_Surf1; + private System.Windows.Forms.NumericUpDown NUP_SuperMin1; + private System.Windows.Forms.NumericUpDown NUP_SurfForme1; + private System.Windows.Forms.NumericUpDown NUP_SuperMax1; + private System.Windows.Forms.NumericUpDown NUP_SurfMin1; + private System.Windows.Forms.ComboBox CB_Super2; + private System.Windows.Forms.NumericUpDown NUP_SurfMax1; + private System.Windows.Forms.NumericUpDown NUP_SuperForme2; + private System.Windows.Forms.ComboBox CB_Surf2; + private System.Windows.Forms.NumericUpDown NUP_SuperMin2; + private System.Windows.Forms.NumericUpDown NUP_SurfForme2; + private System.Windows.Forms.NumericUpDown NUP_SuperMax2; + private System.Windows.Forms.NumericUpDown NUP_SurfMin2; + private System.Windows.Forms.ComboBox CB_Super3; + private System.Windows.Forms.NumericUpDown NUP_SurfMax5; + private System.Windows.Forms.NumericUpDown NUP_SuperForme3; + private System.Windows.Forms.NumericUpDown NUP_SurfMax2; + private System.Windows.Forms.NumericUpDown NUP_SuperMin3; + private System.Windows.Forms.NumericUpDown NUP_SurfMin5; + private System.Windows.Forms.NumericUpDown NUP_SuperMax3; + private System.Windows.Forms.ComboBox CB_Surf3; + private System.Windows.Forms.Label label49; + private System.Windows.Forms.NumericUpDown NUP_SurfForme5; + private System.Windows.Forms.Label label98; + private System.Windows.Forms.NumericUpDown NUP_SurfForme3; + private System.Windows.Forms.Label label99; + private System.Windows.Forms.ComboBox CB_Surf5; + private System.Windows.Forms.Label label100; + private System.Windows.Forms.NumericUpDown NUP_SurfMin3; + private System.Windows.Forms.Label label101; + private System.Windows.Forms.NumericUpDown NUP_SurfMax4; + private System.Windows.Forms.Label label102; + private System.Windows.Forms.NumericUpDown NUP_SurfMax3; + private System.Windows.Forms.Label label26; + private System.Windows.Forms.NumericUpDown NUP_SurfMin4; + private System.Windows.Forms.ComboBox CB_Good1; + private System.Windows.Forms.ComboBox CB_Surf4; + private System.Windows.Forms.NumericUpDown NUP_GoodForme1; + private System.Windows.Forms.NumericUpDown NUP_SurfForme4; + private System.Windows.Forms.NumericUpDown NUP_GoodMin1; + private System.Windows.Forms.NumericUpDown NUP_GoodMax1; + private System.Windows.Forms.ComboBox CB_Good2; + private System.Windows.Forms.NumericUpDown NUP_GoodForme2; + private System.Windows.Forms.NumericUpDown NUP_GoodMin2; + private System.Windows.Forms.NumericUpDown NUP_GoodMax2; + private System.Windows.Forms.ComboBox CB_Good3; + private System.Windows.Forms.NumericUpDown NUP_GoodForme3; + private System.Windows.Forms.NumericUpDown NUP_GoodMin3; + private System.Windows.Forms.NumericUpDown NUP_GoodMax3; + private System.Windows.Forms.Label label27; + private System.Windows.Forms.Label label28; + private System.Windows.Forms.Label label29; + private System.Windows.Forms.Label label30; + private System.Windows.Forms.Label label46; + private System.Windows.Forms.Label label47; + private System.Windows.Forms.Label label116; + private System.Windows.Forms.Label label117; + private System.Windows.Forms.Label label118; + private System.Windows.Forms.Label label119; + private System.Windows.Forms.Label label120; + private System.Windows.Forms.Label label107; + private System.Windows.Forms.Label label115; + private System.Windows.Forms.Label label108; + private System.Windows.Forms.NumericUpDown NUP_RockSmashMax5; + private System.Windows.Forms.Label label109; + private System.Windows.Forms.NumericUpDown NUP_RockSmashMin5; + private System.Windows.Forms.Label label110; + private System.Windows.Forms.NumericUpDown NUP_RockSmashForme5; + private System.Windows.Forms.Label label111; + private System.Windows.Forms.ComboBox CB_RockSmash5; + private System.Windows.Forms.ComboBox CB_RockSmash1; + private System.Windows.Forms.NumericUpDown NUP_RockSmashMax4; + private System.Windows.Forms.NumericUpDown NUP_RockSmashForme1; + private System.Windows.Forms.NumericUpDown NUP_RockSmashMin4; + private System.Windows.Forms.Label label112; + private System.Windows.Forms.NumericUpDown NUP_RockSmashForme4; + private System.Windows.Forms.NumericUpDown NUP_RockSmashMin1; + private System.Windows.Forms.ComboBox CB_RockSmash4; + private System.Windows.Forms.Label label113; + private System.Windows.Forms.NumericUpDown NUP_RockSmashMax3; + private System.Windows.Forms.NumericUpDown NUP_RockSmashMax1; + private System.Windows.Forms.NumericUpDown NUP_RockSmashMin3; + private System.Windows.Forms.Label label114; + private System.Windows.Forms.NumericUpDown NUP_RockSmashForme3; + private System.Windows.Forms.ComboBox CB_RockSmash2; + private System.Windows.Forms.ComboBox CB_RockSmash3; + private System.Windows.Forms.NumericUpDown NUP_RockSmashMax2; + private System.Windows.Forms.NumericUpDown NUP_RockSmashForme2; + private System.Windows.Forms.NumericUpDown NUP_RockSmashMin2; + private System.Windows.Forms.Label label121; + private System.Windows.Forms.Label label124; + private System.Windows.Forms.Label label122; + private System.Windows.Forms.ComboBox CB_HordeA1; + private System.Windows.Forms.Label label123; + private System.Windows.Forms.NumericUpDown NUP_HordeAForme1; + private System.Windows.Forms.NumericUpDown NUP_HordeAMin1; + private System.Windows.Forms.NumericUpDown NUP_HordeAMax5; + private System.Windows.Forms.NumericUpDown NUP_HordeAMax1; + private System.Windows.Forms.NumericUpDown NUP_HordeAMin5; + private System.Windows.Forms.ComboBox CB_HordeA2; + private System.Windows.Forms.NumericUpDown NUP_HordeAForme5; + private System.Windows.Forms.NumericUpDown NUP_HordeAForme2; + private System.Windows.Forms.ComboBox CB_HordeA5; + private System.Windows.Forms.NumericUpDown NUP_HordeAMin2; + private System.Windows.Forms.NumericUpDown NUP_HordeAMax4; + private System.Windows.Forms.NumericUpDown NUP_HordeAMax2; + private System.Windows.Forms.NumericUpDown NUP_HordeAMin4; + private System.Windows.Forms.ComboBox CB_HordeA3; + private System.Windows.Forms.NumericUpDown NUP_HordeAForme4; + private System.Windows.Forms.NumericUpDown NUP_HordeAForme3; + private System.Windows.Forms.ComboBox CB_HordeA4; + private System.Windows.Forms.NumericUpDown NUP_HordeAMin3; + private System.Windows.Forms.NumericUpDown NUP_HordeAMax3; + private System.Windows.Forms.Label label125; + private System.Windows.Forms.Label label126; + private System.Windows.Forms.Label label127; + private System.Windows.Forms.Label label128; + private System.Windows.Forms.NumericUpDown NUP_HordeBMax5; + private System.Windows.Forms.NumericUpDown NUP_HordeBMin5; + private System.Windows.Forms.NumericUpDown NUP_HordeBForme5; + private System.Windows.Forms.ComboBox CB_HordeB5; + private System.Windows.Forms.NumericUpDown NUP_HordeBMax4; + private System.Windows.Forms.NumericUpDown NUP_HordeBMin4; + private System.Windows.Forms.NumericUpDown NUP_HordeBForme4; + private System.Windows.Forms.ComboBox CB_HordeB4; + private System.Windows.Forms.NumericUpDown NUP_HordeBMax3; + private System.Windows.Forms.NumericUpDown NUP_HordeBMin3; + private System.Windows.Forms.NumericUpDown NUP_HordeBForme3; + private System.Windows.Forms.ComboBox CB_HordeB3; + private System.Windows.Forms.NumericUpDown NUP_HordeBMax2; + private System.Windows.Forms.NumericUpDown NUP_HordeBMin2; + private System.Windows.Forms.NumericUpDown NUP_HordeBForme2; + private System.Windows.Forms.ComboBox CB_HordeB2; + private System.Windows.Forms.NumericUpDown NUP_HordeBMax1; + private System.Windows.Forms.NumericUpDown NUP_HordeBMin1; + private System.Windows.Forms.NumericUpDown NUP_HordeBForme1; + private System.Windows.Forms.ComboBox CB_HordeB1; + private System.Windows.Forms.Label label129; + private System.Windows.Forms.Label label130; + private System.Windows.Forms.Label label131; + private System.Windows.Forms.Label label132; + private System.Windows.Forms.NumericUpDown NUP_HordeCMax5; + private System.Windows.Forms.NumericUpDown NUP_HordeCMin5; + private System.Windows.Forms.NumericUpDown NUP_HordeCForme5; + private System.Windows.Forms.ComboBox CB_HordeC5; + private System.Windows.Forms.NumericUpDown NUP_HordeCMax4; + private System.Windows.Forms.NumericUpDown NUP_HordeCMin4; + private System.Windows.Forms.NumericUpDown NUP_HordeCForme4; + private System.Windows.Forms.ComboBox CB_HordeC4; + private System.Windows.Forms.NumericUpDown NUP_HordeCMax3; + private System.Windows.Forms.NumericUpDown NUP_HordeCMin3; + private System.Windows.Forms.NumericUpDown NUP_HordeCForme3; + private System.Windows.Forms.ComboBox CB_HordeC3; + private System.Windows.Forms.NumericUpDown NUP_HordeCMax2; + private System.Windows.Forms.NumericUpDown NUP_HordeCMin2; + private System.Windows.Forms.NumericUpDown NUP_HordeCForme2; + private System.Windows.Forms.ComboBox CB_HordeC2; + private System.Windows.Forms.NumericUpDown NUP_HordeCMax1; + private System.Windows.Forms.NumericUpDown NUP_HordeCMin1; + private System.Windows.Forms.NumericUpDown NUP_HordeCForme1; + private System.Windows.Forms.ComboBox CB_HordeC1; + private System.Windows.Forms.ComboBox CB_LocationID; + private System.Windows.Forms.Button B_Save; + private System.Windows.Forms.Label label134; + private System.Windows.Forms.Label label136; + private System.Windows.Forms.ComboBox CB_FormeList; + private System.Windows.Forms.Button B_Randomize; + private System.Windows.Forms.Button B_Dump; + private System.Windows.Forms.GroupBox GB_Tweak; + private System.Windows.Forms.Label L_RandOpt; + private System.Windows.Forms.CheckBox CHK_BST; + private System.Windows.Forms.CheckBox CHK_E; + private System.Windows.Forms.CheckBox CHK_L; + private System.Windows.Forms.CheckBox CHK_G6; + private System.Windows.Forms.CheckBox CHK_G5; + private System.Windows.Forms.CheckBox CHK_G4; + private System.Windows.Forms.CheckBox CHK_G3; + private System.Windows.Forms.CheckBox CHK_G2; + private System.Windows.Forms.CheckBox CHK_G1; + private System.Windows.Forms.Button B_LevelPlus; + private System.Windows.Forms.NumericUpDown NUD_LevelAmp; + private System.Windows.Forms.CheckBox CHK_Level; + private System.Windows.Forms.CheckBox CHK_MegaForm; + private System.Windows.Forms.CheckBox CHK_HomogeneousHordes; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen6/XYWE.cs b/pk3DS.WinForms/Subforms/Gen6/XYWE.cs new file mode 100644 index 0000000000..280a048dbf --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen6/XYWE.cs @@ -0,0 +1,675 @@ +using pk3DS.Core; +using System; +using System.IO; +using System.Linq; +using System.Windows.Forms; +using pk3DS.Core.Randomizers; + +namespace pk3DS.WinForms; + +public partial class XYWE : Form +{ + public XYWE() + { + InitializeComponent(); + All_Species = + [ + CB_Grass1, CB_Grass2, CB_Grass3, CB_Grass4, CB_Grass5, CB_Grass6, CB_Grass7, CB_Grass8, CB_Grass9, CB_Grass10, CB_Grass11, CB_Grass12, + CB_Yellow1, CB_Yellow2, CB_Yellow3, CB_Yellow4, CB_Yellow5, CB_Yellow6, CB_Yellow7, CB_Yellow8, CB_Yellow9, CB_Yellow10, CB_Yellow11, CB_Yellow12, + CB_Purple1, CB_Purple2, CB_Purple3, CB_Purple4, CB_Purple5, CB_Purple6, CB_Purple7, CB_Purple8, CB_Purple9, CB_Purple10, CB_Purple11, CB_Purple12, + CB_Red1, CB_Red2, CB_Red3, CB_Red4, CB_Red5, CB_Red6, CB_Red7, CB_Red8, CB_Red9, CB_Red10, CB_Red11, CB_Red12, + CB_RT1, CB_RT2, CB_RT3, CB_RT4, CB_RT5, CB_RT6, CB_RT7, CB_RT8, CB_RT9, CB_RT10, CB_RT11, CB_RT12, + CB_Surf1, CB_Surf2, CB_Surf3, CB_Surf4, CB_Surf5, + CB_RockSmash1, CB_RockSmash2, CB_RockSmash3, CB_RockSmash4, CB_RockSmash5, + CB_Old1, CB_Old2, CB_Old3, + CB_Good1, CB_Good2, CB_Good3, + CB_Super1, CB_Super2, CB_Super3, + CB_HordeA1, CB_HordeA2, CB_HordeA3, CB_HordeA4, CB_HordeA5, + CB_HordeB1, CB_HordeB2, CB_HordeB3, CB_HordeB4, CB_HordeB5, + CB_HordeC1, CB_HordeC2, CB_HordeC3, CB_HordeC4, CB_HordeC5, + ]; + All_Min = + [ + NUP_GrassMin1, NUP_GrassMin2, NUP_GrassMin3, NUP_GrassMin4, NUP_GrassMin5, NUP_GrassMin6, NUP_GrassMin7, NUP_GrassMin8, NUP_GrassMin9, NUP_GrassMin10, NUP_GrassMin11, NUP_GrassMin12, + NUP_YellowMin1, NUP_YellowMin2, NUP_YellowMin3, NUP_YellowMin4, NUP_YellowMin5, NUP_YellowMin6, NUP_YellowMin7, NUP_YellowMin8, NUP_YellowMin9, NUP_YellowMin10, NUP_YellowMin11, NUP_YellowMin12, + NUP_PurpleMin1, NUP_PurpleMin2, NUP_PurpleMin3, NUP_PurpleMin4, NUP_PurpleMin5, NUP_PurpleMin6, NUP_PurpleMin7, NUP_PurpleMin8, NUP_PurpleMin9, NUP_PurpleMin10, NUP_PurpleMin11, NUP_PurpleMin12, + NUP_RedMin1, NUP_RedMin2, NUP_RedMin3, NUP_RedMin4, NUP_RedMin5, NUP_RedMin6, NUP_RedMin7, NUP_RedMin8, NUP_RedMin9, NUP_RedMin10, NUP_RedMin11, NUP_RedMin12, + NUP_RTMin1, NUP_RTMin2, NUP_RTMin3, NUP_RTMin4, NUP_RTMin5, NUP_RTMin6, NUP_RTMin7, NUP_RTMin8, NUP_RTMin9, NUP_RTMin10, NUP_RTMin11, NUP_RTMin12, + NUP_SurfMin1, NUP_SurfMin2, NUP_SurfMin3, NUP_SurfMin4, NUP_SurfMin5, + NUP_RockSmashMin1, NUP_RockSmashMin2, NUP_RockSmashMin3, NUP_RockSmashMin4, NUP_RockSmashMin5, + NUP_OldMin1, NUP_OldMin2, NUP_OldMin3, + NUP_GoodMin1, NUP_GoodMin2, NUP_GoodMin3, + NUP_SuperMin1, NUP_SuperMin2, NUP_SuperMin3, + NUP_HordeAMin1, NUP_HordeAMin2, NUP_HordeAMin3, NUP_HordeAMin4, NUP_HordeAMin5, + NUP_HordeBMin1, NUP_HordeBMin2, NUP_HordeBMin3, NUP_HordeBMin4, NUP_HordeBMin5, + NUP_HordeCMin1, NUP_HordeCMin2, NUP_HordeCMin3, NUP_HordeCMin4, NUP_HordeCMin5, + ]; + All_Max = + [ + NUP_GrassMax1, NUP_GrassMax2, NUP_GrassMax3, NUP_GrassMax4, NUP_GrassMax5, NUP_GrassMax6, NUP_GrassMax7, NUP_GrassMax8, NUP_GrassMax9, NUP_GrassMax10, NUP_GrassMax11, NUP_GrassMax12, + NUP_YellowMax1, NUP_YellowMax2, NUP_YellowMax3, NUP_YellowMax4, NUP_YellowMax5, NUP_YellowMax6, NUP_YellowMax7, NUP_YellowMax8, NUP_YellowMax9, NUP_YellowMax10, NUP_YellowMax11, NUP_YellowMax12, + NUP_PurpleMax1, NUP_PurpleMax2, NUP_PurpleMax3, NUP_PurpleMax4, NUP_PurpleMax5, NUP_PurpleMax6, NUP_PurpleMax7, NUP_PurpleMax8, NUP_PurpleMax9, NUP_PurpleMax10, NUP_PurpleMax11, NUP_PurpleMax12, + NUP_RedMax1, NUP_RedMax2, NUP_RedMax3, NUP_RedMax4, NUP_RedMax5, NUP_RedMax6, NUP_RedMax7, NUP_RedMax8, NUP_RedMax9, NUP_RedMax10, NUP_RedMax11, NUP_RedMax12, + NUP_RTMax1, NUP_RTMax2, NUP_RTMax3, NUP_RTMax4, NUP_RTMax5, NUP_RTMax6, NUP_RTMax7, NUP_RTMax8, NUP_RTMax9, NUP_RTMax10, NUP_RTMax11, NUP_RTMax12, + NUP_SurfMax1, NUP_SurfMax2, NUP_SurfMax3, NUP_SurfMax4, NUP_SurfMax5, + NUP_RockSmashMax1, NUP_RockSmashMax2, NUP_RockSmashMax3, NUP_RockSmashMax4, NUP_RockSmashMax5, + NUP_OldMax1, NUP_OldMax2, NUP_OldMax3, + NUP_GoodMax1, NUP_GoodMax2, NUP_GoodMax3, + NUP_SuperMax1, NUP_SuperMax2, NUP_SuperMax3, + NUP_HordeAMax1, NUP_HordeAMax2, NUP_HordeAMax3, NUP_HordeAMax4, NUP_HordeAMax5, + NUP_HordeBMax1, NUP_HordeBMax2, NUP_HordeBMax3, NUP_HordeBMax4, NUP_HordeBMax5, + NUP_HordeCMax1, NUP_HordeCMax2, NUP_HordeCMax3, NUP_HordeCMax4, NUP_HordeCMax5, + ]; + All_Form = + [ + NUP_GrassForme1, NUP_GrassForme2, NUP_GrassForme3, NUP_GrassForme4, NUP_GrassForme5, NUP_GrassForme6, NUP_GrassForme7, NUP_GrassForme8, NUP_GrassForme9, NUP_GrassForme10, NUP_GrassForme11, NUP_GrassForme12, + NUP_YellowForme1, NUP_YellowForme2, NUP_YellowForme3, NUP_YellowForme4, NUP_YellowForme5, NUP_YellowForme6, NUP_YellowForme7, NUP_YellowForme8, NUP_YellowForme9, NUP_YellowForme10, NUP_YellowForme11, NUP_YellowForme12, + NUP_PurpleForme1, NUP_PurpleForme2, NUP_PurpleForme3, NUP_PurpleForme4, NUP_PurpleForme5, NUP_PurpleForme6, NUP_PurpleForme7, NUP_PurpleForme8, NUP_PurpleForme9, NUP_PurpleForme10, NUP_PurpleForme11, NUP_PurpleForme12, + NUP_RedForme1, NUP_RedForme2, NUP_RedForme3, NUP_RedForme4, NUP_RedForme5, NUP_RedForme6, NUP_RedForme7, NUP_RedForme8, NUP_RedForme9, NUP_RedForme10, NUP_RedForme11, NUP_RedForme12, + NUP_RTForme1, NUP_RTForme2, NUP_RTForme3, NUP_RTForme4, NUP_RTForme5, NUP_RTForme6, NUP_RTForme7, NUP_RTForme8, NUP_RTForme9, NUP_RTForme10, NUP_RTForme11, NUP_RTForme12, + NUP_SurfForme1, NUP_SurfForme2, NUP_SurfForme3, NUP_SurfForme4, NUP_SurfForme5, + NUP_RockSmashForme1, NUP_RockSmashForme2, NUP_RockSmashForme3, NUP_RockSmashForme4, NUP_RockSmashForme5, + NUP_OldForme1, NUP_OldForme2, NUP_OldForme3, + NUP_GoodForme1, NUP_GoodForme2, NUP_GoodForme3, + NUP_SuperForme1, NUP_SuperForme2, NUP_SuperForme3, + NUP_HordeAForme1, NUP_HordeAForme2, NUP_HordeAForme3, NUP_HordeAForme4, NUP_HordeAForme5, + NUP_HordeBForme1, NUP_HordeBForme2, NUP_HordeBForme3, NUP_HordeBForme4, NUP_HordeBForme5, + NUP_HordeCForme1, NUP_HordeCForme2, NUP_HordeCForme3, NUP_HordeCForme4, NUP_HordeCForme5, + ]; + formlist = + [ + "Unown-A - 0", + "Unown-B - 1", + "Unown-C - 2", + "Unown-D - 3", + "Unown-E - 4", + "Unown-F - 5", + "Unown-G - 6", + "Unown-H - 7", + "Unown-I - 8", + "Unown-J - 9", + "Unown-K - 10", + "Unown-L - 11", + "Unown-M - 12", + "Unown-N - 13", + "Unown-O - 14", + "Unown-P - 15", + "Unown-Q - 16", + "Unown-R - 17", + "Unown-S - 18", + "Unown-T - 19", + "Unown-U - 20", + "Unown-V - 21", + "Unown-W - 22", + "Unown-X - 23", + "Unown-Y - 24", + "Unown-Z - 25", + "Unown-! - 26", + "Unown-? - 27", + "", + "Castform-Normal - 0", + "Castform-Sunny - 1", + "Castform-Rainy - 2", + "Castform-Snowy - 3", + "", + "Deoxys-Normal - 0", + "Deoxys-Attack - 1", + "Deoxys-Defense - 2", + "Deoxys-Speed - 3", + "", + "Burmy-Plant Cloak - 0", + "Burmy-Sandy Cloak - 1", + "Burmy-Trash Cloak - 2", + "", + "Wormadam-Plant Cloak - 0", + "Wormadam-Sandy Cloak - 1", + "Wormadam-Trash Cloak - 2", + "", + "Cherrim-Overcast - 0", + "Cherrim-Sunshine - 1", + "", + "Shellos-West Sea - 0", + "Shellos-East Sea - 1", + "", + "Gastrodon-West Sea - 0", + "Gastrodon-East Sea - 1", + "", + "Rotom-Normal - 0", + "Rotom-Heat - 1", + "Rotom-Wash - 2", + "Rotom-Frost - 3", + "Rotom-Fan - 4", + "Rotom-Mow - 5", + "", + "Giratina-Altered - 0", + "Giratina-Origin - 1", + "", + "Shaymin-Land - 0", + "Shaymin-Sky - 1", + "", + "Arceus-Normal - 0", + "Arceus-Fighting - 1", + "Arceus-Flying - 2", + "Arceus-Poison - 3", + "Arceus-Ground - 4", + "Arceus-Rock - 5", + "Arceus-Bug - 6", + "Arceus-Ghost - 7", + "Arceus-Steel - 8", + "Arceus-Fire - 9", + "Arceus-Water - 10", + "Arceus-Grass - 11", + "Arceus-Electric - 12", + "Arceus-Psychic - 13", + "Arceus-Ice - 14", + "Arceus-Dragon - 15", + "Arceus-Dark - 16", + "Arceus-Fairy - 17", + "", + "Basculin-Red-Striped - 0", + "Basculin-Blue-Striped - 1", + "", + "Darmanitan-Standard Mode - 0", + "Darmanitan-Zen Mode - 1", + "", + "Deerling-Spring - 0", + "Deerling-Summer - 1", + "Deerling-Autumn - 2", + "Deerling-Winter - 3", + "", + "Sawsbuck-Spring - 0", + "Sawsbuck-Summer - 1", + "Sawsbuck-Autumn - 2", + "Sawsbuck-Winter - 3", + "", + "Tornadus-Incarnate - 0", + "Tornadus-Therian - 1", + "", + "Thundurus-Incarnate - 0", + "Thundurus-Therian - 1", + "", + "Landorus-Incarnate - 0", + "Landorus-Therian - 1", + "", + "Kyurem-Normal - 0", + "Kyurem-White - 1", + "Kyurem-Black - 2", + "", + "Keldeo-Ordinary - 0", + "Keldeo-Resolute - 1", + "", + "Meloetta-Aria - 0", + "Meloetta-Pirouette - 1", + "", + "Genesect-Normal - 0", + "Genesect-Water - 1", + "Genesect-Electric - 2", + "Genesect-Fire - 3", + "Genesect-Ice - 4", + "", + "Flabebe-Red - 0", + "Flabebe-Yellow - 1", + "Flabebe-Orange - 2", + "Flabebe-Blue - 3", + "Flabebe-White - 4", + "", + "Floette-Red - 0", + "Floette-Yellow - 1", + "Floette-Orange - 2", + "Floette-Blue - 3", + "Floette-White - 4", + "Floette-Eternal - 5", + "", + "Florges-Red - 0", + "Florges-Yellow - 1", + "Florges-Orange - 2", + "Florges-Blue - 3", + "Florges-White - 4", + "", + "Furfrou-Natural - 0", + "Furfrou-Heart - 1", + "Furfrou-Star - 2", + "Furfrou-Diamond - 3", + "Furfrou-Deputante - 4", + "Furfrou-Matron - 5", + "Furfrou-Dandy - 6", + "Furfrou-La Reine- 7", + "Furfrou-Kabuki - 8", + "Furfrou-Pharaoh - 9", + "", + "Aegislash-Shield - 0", + "Aegislash-Blade - 0", + "", + "Vivillon-Icy Snow - 0", + "Vivillon-Polar - 1", + "Vivillon-Tundra - 2", + "Vivillon-Continental - 3", + "Vivillon-Garden - 4", + "Vivillon-Elegant - 5", + "Vivillon-Meadow - 6", + "Vivillon-Modern - 7", + "Vivillon-Marine - 8", + "Vivillon-Archipelago - 9", + "Vivillon-High-Plains - 10", + "Vivillon-Sandstorm - 11", + "Vivillon-River - 12", + "Vivillon-Monsoon - 13", + "Vivillon-Savannah - 14", + "Vivillon-Sun - 15", + "Vivillon-Ocean - 16", + "Vivillon-Jungle - 17", + "Vivillon-Fancy - 18", + "Vivillon-Poké Ball - 19", + "", + "Pumpkaboo-Small - 0", + "Pumpkaboo-Average - 1", + "Pumpkaboo-Large - 2", + "Pumpkaboo-Super - 3", + "", + "Gourgeist-Small - 0", + "Gourgeist-Average - 1", + "Gourgeist-Large - 2", + "Gourgeist-Super - 3", + "", + "Megas-Normal - 0", + "Megas-Mega (X) - 1", + "Megas-Mega (Y) - 2", + ]; + Load_XYWE(); + OpenQuick(Directory.GetFiles("encdata")); + RandSettings.GetFormSettings(this, GB_Tweak.Controls); + } + + private readonly ComboBox[] All_Species; + private readonly NumericUpDown[] All_Min; + private readonly NumericUpDown[] All_Max; + private readonly NumericUpDown[] All_Form; + private string[] specieslist = []; + private readonly string[] formlist = []; + private string[] metXY_00000 = []; + private byte[] zonedata = []; + private string[] LocationNames = []; + private string[] encdatapaths; + private string[] filepaths; + + private void Load_XYWE() + { + specieslist = Main.Config.GetText(TextName.SpeciesNames); + specieslist[0] = "---"; + + CB_FormeList.Items.AddRange(formlist); + + // Clear & Reset Data + for (int i = 0; i < All_Max.Length; i++) + { + All_Species[i].Items.Clear(); + All_Species[i].Items.AddRange(specieslist); + All_Species[i].SelectedIndex = 0; + } + } + + private void OpenQuick(string[] encdata) + { + encdatapaths = encdata; + Array.Sort(encdatapaths); + filepaths = new string[encdatapaths.Length - 1]; + Array.Copy(encdatapaths, 1, filepaths, 0, filepaths.Length); + metXY_00000 = Main.Config.GetText(TextName.metlist_000000); + zonedata = File.ReadAllBytes(encdatapaths[0]); + LocationNames = new string[filepaths.Length]; + for (int f = 0; f < filepaths.Length; f++) + { + string name = Path.GetFileNameWithoutExtension(filepaths[f]); + + int LocationNum = Convert.ToInt16(name[4..]); + int indNum = (LocationNum * 56) + 0x1C; + string LocationName = metXY_00000[zonedata[indNum] + (0x100 * (zonedata[indNum + 1] & 1))]; + LocationNames[f] = LocationNum.ToString("000") + " - " + LocationName; + } + CB_LocationID.DataSource = LocationNames; + B_Save.Enabled = B_Dump.Enabled = B_Randomize.Enabled = true; + CB_LocationID.Enabled = true; + CB_LocationID_SelectedIndexChanged(null, null); + } + + private bool HasData() + { + for (int i = 0; i < All_Max.Length; i++) + { + if (All_Species[i].SelectedIndex > 0) { return true; } + if (All_Form[i].Value > 0) { return true; } + if (All_Min[i].Value > 0) { return true; } + if (All_Max[i].Value > 0) { return true; } + } + return false; + } + + private void ParseEncounterTable(byte[] ed) + { + // 12,12,12,12,12 + // 5,5 + // 3,3,3 + // 5,5,5, + byte[] slot = new byte[4]; + const int offset = 0x0; + + // read data into form + for (int i = 0; i < All_Max.Length; i++) + { + // Fetch Data + Array.Copy(ed, offset + (i * 4), slot, 0, 4); + int[] data = ParseSlot(slot); + + // Load Data + All_Species[i].SelectedIndex = data[0]; + All_Form[i].Value = data[1]; + All_Min[i].Value = data[2]; + All_Max[i].Value = data[3]; + } + +#if DUMPER + int r = CB_LocationID.SelectedIndex * 56 + 0x1C; + int loc = zonedata[r] + 0x100 * (zonedata[r + 1] & 1); + byte[] edata = BitConverter.GetBytes((ushort)loc).Concat(ed).ToArray(); + + if (!Directory.Exists("encounter_xy")) + Directory.CreateDirectory("encounter_xy"); + File.WriteAllBytes(Path.Combine("encounter_xy", loc.ToString("000") + CB_LocationID.SelectedIndex.ToString("000") + ".bin"), edata); +#endif + } + + private static int[] ParseSlot(byte[] slot) + { + int index = BitConverter.ToUInt16(slot, 0) & 0x7FF; + int form = BitConverter.ToUInt16(slot, 0) >> 11; + int min = slot[2]; + int max = slot[3]; + return [index, form, min, max]; + } + + public string ConvertSlotToString(byte[] slot) + { + int index = BitConverter.ToUInt16(slot, 0) & 0x7FF; + if (index == 0) return ""; + int form = BitConverter.ToUInt16(slot, 0) >> 11; + int min = slot[2]; + int max = slot[3]; + string species = specieslist[index]; + if (form > 0) species += "-" + form; + return $"{species},{min},{max},"; + } + + private void CB_LocationID_SelectedIndexChanged(object sender, EventArgs e) + { + int f = CB_LocationID.SelectedIndex; + int offset; + using (var s = File.OpenRead(filepaths[f])) + using (var br = new BinaryReader(s)) + { + br.BaseStream.Seek(0x10, SeekOrigin.Begin); + offset = br.ReadInt32() + 0x10; + int length = (int)br.BaseStream.Length - offset; + if (length < 0x178) //no encounters in this map + { + ClearData(); + return; + } + } + + byte[] filedata = File.ReadAllBytes(filepaths[f]); + + byte[] encounterdata = new byte[0x178]; + Array.Copy(filedata, offset, encounterdata, 0, 0x178); + ParseEncounterTable(encounterdata); + } + + private void ClearData() + { + for (int i = 0; i < All_Max.Length; i++) + { + // Load Data + All_Species[i].SelectedIndex = 0; + All_Form[i].Value = 0; + All_Min[i].Value = 0; + All_Max[i].Value = 0; + } + } + + private static byte[] MakeSlotData(int species, int f, int lo, int hi) + { + byte[] data = new byte[4]; + Array.Copy(BitConverter.GetBytes(Convert.ToUInt16((Convert.ToUInt16(f) << 11) + Convert.ToUInt16(species))), 0, data, 0, 2); + data[2] = (byte)lo; + data[3] = (byte)hi; + return data; + } + + private byte[] MakeEncounterData() + { + byte[] ed = new byte[0x178]; + const int offset = 0x0; + for (int i = 0; i < All_Max.Length; i++) + { + byte[] data = MakeSlotData(All_Species[i].SelectedIndex, (int)All_Form[i].Value, (int)All_Min[i].Value, (int)All_Max[i].Value); + Array.Copy(data, 0, ed, offset + (i * 4), 4); + } + return ed; + } + + private static byte[] ConcatArrays(byte[] b1, byte[] b2) + { + return [..b1, ..b2]; + } + + private void B_Save_Click(object sender, EventArgs e) + { + int f = CB_LocationID.SelectedIndex; + string filepath = filepaths[f]; + byte[] filedata = File.ReadAllBytes(filepath); + int offset = BitConverter.ToInt32(filedata, 0x10) + 0x10; + byte[] preoffset; + if (offset < filedata.Length) + { + preoffset = new byte[offset]; + Array.Copy(filedata, preoffset, offset); + } + else + { + preoffset = new byte[filedata.Length]; + Array.Copy(filedata, preoffset, filedata.Length); + //overwrite offset so the game actually looks at the data + Array.Copy(BitConverter.GetBytes(Convert.ToUInt32(filedata.Length)), 0, preoffset, 0x10, 4); + } + byte[] encdata = []; + if (HasData()) { encdata = MakeEncounterData(); } + byte[] newdata = ConcatArrays(preoffset, encdata); + File.WriteAllBytes(filepath, newdata); + } + + private void PreloadTabs(object sender, EventArgs e) + { + for (int i = 0; i < TabControl_EncounterData.TabPages.Count; i++) + { + TabControl_EncounterData.TabPages[i].Show(); + Console.WriteLine("Loading Tab " + (i + 1).ToString("0") + "."); + } + TabControl_EncounterData.TabPages[0].Show(); + } + + internal static uint Random32() => Util.Random32(); + + private void B_Randomize_Click(object sender, EventArgs e) + { + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomize all? Cannot undo.", "Double check Randomization settings in the Horde tab.") != DialogResult.Yes) return; + + Enabled = false; + + // Calculate % diff we will apply to each level + decimal leveldiff = (100 + NUD_LevelAmp.Value) / 100; + + var rand = new SpeciesRandomizer(Main.Config) + { + G1 = CHK_G1.Checked, + G2 = CHK_G2.Checked, + G3 = CHK_G3.Checked, + G4 = CHK_G4.Checked, + G5 = CHK_G5.Checked, + G6 = CHK_G6.Checked, + + L = CHK_L.Checked, + E = CHK_E.Checked, + Shedinja = false, + + rBST = CHK_BST.Checked, + }; + rand.Initialize(); + + for (int i = 0; i < CB_LocationID.Items.Count; i++) // for every location + { + CB_LocationID.SelectedIndex = i; + if (!HasData()) continue; // Don't randomize if doesn't have data. + + // Assign Levels + if (CHK_Level.Checked) + { + for (int l = 0; l < All_Max.Length; l++) + All_Min[l].Value = All_Max[l].Value = All_Max[l].Value <= 1 ? All_Max[l].Value : Math.Max(1, Math.Min(100, (int)(leveldiff * All_Max[l].Value))); + } + + // If Distinct Hordes are selected, homogenize + int hordeslot = 0; + for (int slot = 0; slot < All_Max.Length; slot++) + { + if (All_Species[slot].SelectedIndex == 0) continue; + if (CHK_HomogeneousHordes.Checked && slot >= All_Max.Length - 15) + { + int shift = hordeslot % 5; + hordeslot++; + if (shift != 0) + { + All_Species[slot].SelectedIndex = All_Species[slot - shift].SelectedIndex; + All_Form[slot].Value = All_Form[slot - shift].Value; + continue; + } + } + + int species = rand.GetRandomSpecies(All_Species[slot].SelectedIndex); + All_Species[slot].SelectedIndex = species; + SetRandomForm(slot, species); + } + B_Save_Click(sender, e); + } + Enabled = true; + WinFormsUtil.Alert("Randomized all Wild Encounters according to specification!", "Press the Dump Tables button to view the new Wild Encounter information!"); + } + + private void SetRandomForm(int slot, int species) + { + if (CHK_MegaForm.Checked && Main.SpeciesStat[species].FormeCount > 1 && Legal.Mega_XY.Contains((ushort)species)) + All_Form[slot].Value = Random32() % Main.SpeciesStat[species].FormeCount; // Slot-Random + else if (species is 666 or 665 or 664) // Vivillon + All_Form[slot].Value = Random32() % 20; + else if (species == 386) // Deoxys + All_Form[slot].Value = Random32() % 4; + else if (species == 201) // Unown + All_Form[slot].Value = 31; + else if (species == 550) // Basculin + All_Form[slot].Value = Random32() % 2; + else if (species is 412 or 413) // Wormadam + All_Form[slot].Value = Random32() % 3; + else if (species is 422 or 423) // Gastrodon + All_Form[slot].Value = Random32() % 2; + else if (species is 585 or 586) // Sawsbuck + All_Form[slot].Value = Random32() % 4; + else if (species is 669 or 671) // Flabebe/Florges + All_Form[slot].Value = Random32() % 5; + else if (species == 670) // Floette + All_Form[slot].Value = Random32() % 6; + else if (species is 710 or 711) // Pumpkaboo + All_Form[slot].Value = Random32() % 4; + else + All_Form[slot].Value = 0; + } + + private void B_Dump_Click(object sender, EventArgs e) + { + string toret = ""; + for (int i = 0; i < 360; i++) //hardcoded map count. Yes, it's bad. No, I don't really care. + { + CB_LocationID.SelectedIndex = i; + string tdata = GetEncDataString(); + toret += tdata; + } + var savetxt = new SaveFileDialog { FileName = "Encounter Slots", Filter = "Text File|*.txt" }; + if (savetxt.ShowDialog() != DialogResult.OK) return; + + string path = savetxt.FileName; + File.WriteAllText(path, toret); + } + + private string GetEncDataString() + { + string toret = "======" + Environment.NewLine; + toret += "Map " + CB_LocationID.Text + "" + Environment.NewLine; + toret += "======" + Environment.NewLine; + if (HasData()) + { + toret += $"Grass: {label31.Text} - {CB_Grass1.Text} (Level {NUP_GrassMin1.Text}, Forme: {NUP_GrassForme1.Text}), {label32.Text} - {CB_Grass2.Text} (Level {NUP_GrassMin2.Text}, Forme: {NUP_GrassForme2.Text}), {label33.Text} - {CB_Grass3.Text} (Level {NUP_GrassMin3.Text}, Forme: {NUP_GrassForme3.Text}), {label34.Text} - {CB_Grass4.Text} (Level {NUP_GrassMin4.Text}, Forme: {NUP_GrassForme4.Text}), {label35.Text} - {CB_Grass5.Text} (Level {NUP_GrassMin5.Text}, Forme: {NUP_GrassForme5.Text}), {label36.Text} - {CB_Grass6.Text} (Level {NUP_GrassMin6.Text}, Forme: {NUP_GrassForme6.Text}), {label37.Text} - {CB_Grass7.Text} (Level {NUP_GrassMin7.Text}, Forme: {NUP_GrassForme7.Text}), {label38.Text} - {CB_Grass8.Text} (Level {NUP_GrassMin8.Text}, Forme: {NUP_GrassForme8.Text}), {label39.Text} - {CB_Grass9.Text} (Level {NUP_GrassMin9.Text}, Forme: {NUP_GrassForme9.Text}), {label40.Text} - {CB_Grass10.Text} (Level {NUP_GrassMin10.Text}, Forme: {NUP_GrassForme10.Text}), {label42.Text} - {CB_Grass11.Text} (Level {NUP_GrassMin11.Text}, Forme: {NUP_GrassForme11.Text}), {label41.Text} - {CB_Grass12.Text} (Level {NUP_GrassMin12.Text}, Forme: {NUP_GrassForme12.Text}){Environment.NewLine}"; + toret += $"Rough Terrain: {label10.Text} - {CB_RT1.Text} (Level {NUP_RTMin1.Text}, Forme: {NUP_RTForme1.Text}), {label21.Text} - {CB_RT2.Text} (Level {NUP_RTMin2.Text}, Forme: {NUP_RTForme2.Text}), {label20.Text} - {CB_RT3.Text} (Level {NUP_RTMin3.Text}, Forme: {NUP_RTForme3.Text}), {label19.Text} - {CB_RT4.Text} (Level {NUP_RTMin4.Text}, Forme: {NUP_RTForme4.Text}), {label18.Text} - {CB_RT5.Text} (Level {NUP_RTMin5.Text}, Forme: {NUP_RTForme5.Text}), {label17.Text} - {CB_RT6.Text} (Level {NUP_RTMin6.Text}, Forme: {NUP_RTForme6.Text}), {label16.Text} - {CB_RT7.Text} (Level {NUP_RTMin7.Text}, Forme: {NUP_RTForme7.Text}), {label15.Text} - {CB_RT8.Text} (Level {NUP_RTMin8.Text}, Forme: {NUP_RTForme8.Text}), {label14.Text} - {CB_RT9.Text} (Level {NUP_RTMin9.Text}, Forme: {NUP_RTForme9.Text}), {label13.Text} - {CB_RT10.Text} (Level {NUP_RTMin10.Text}, Forme: {NUP_RTForme10.Text}), {label12.Text} - {CB_RT11.Text} (Level {NUP_RTMin11.Text}, Forme: {NUP_RTForme11.Text}), {label11.Text} - {CB_RT12.Text} (Level {NUP_RTMin12.Text}, Forme: {NUP_RTForme12.Text}){Environment.NewLine}"; + toret += $"Rock Smash: {label111.Text} - {CB_RockSmash1.Text} (Level {NUP_RockSmashMin1.Text}, Forme: {NUP_RockSmashForme1.Text}), {label110.Text} - {CB_RockSmash2.Text} (Level {NUP_RockSmashMin2.Text}, Forme: {NUP_RockSmashForme2.Text}), {label109.Text} - {CB_RockSmash3.Text} (Level {NUP_RockSmashMin3.Text}, Forme: {NUP_RockSmashForme3.Text}), {label108.Text} - {CB_RockSmash4.Text} (Level {NUP_RockSmashMin4.Text}, Forme: {NUP_RockSmashForme4.Text}), {label107.Text} - {CB_RockSmash5.Text} (Level {NUP_RockSmashMin5.Text}, Forme: {NUP_RockSmashForme5.Text}){Environment.NewLine}"; + toret += $"Yellow Flowers: {label54.Text} - {CB_Yellow1.Text} (Level {NUP_YellowMin1.Text}, Forme: {NUP_YellowForme1.Text}), {label65.Text} - {CB_Yellow2.Text} (Level {NUP_YellowMin2.Text}, Forme: {NUP_YellowForme2.Text}), {label64.Text} - {CB_Yellow3.Text} (Level {NUP_YellowMin3.Text}, Forme: {NUP_YellowForme3.Text}), {label63.Text} - {CB_Yellow4.Text} (Level {NUP_YellowMin4.Text}, Forme: {NUP_YellowForme4.Text}), {label62.Text} - {CB_Yellow5.Text} (Level {NUP_YellowMin5.Text}, Forme: {NUP_YellowForme5.Text}), {label61.Text} - {CB_Yellow6.Text} (Level {NUP_YellowMin6.Text}, Forme: {NUP_YellowForme6.Text}), {label60.Text} - {CB_Yellow7.Text} (Level {NUP_YellowMin7.Text}, Forme: {NUP_YellowForme7.Text}), {label59.Text} - {CB_Yellow8.Text} (Level {NUP_YellowMin8.Text}, Forme: {NUP_YellowForme8.Text}), {label58.Text} - {CB_Yellow9.Text} (Level {NUP_YellowMin9.Text}, Forme: {NUP_YellowForme9.Text}), {label57.Text} - {CB_Yellow10.Text} (Level {NUP_YellowMin10.Text}, Forme: {NUP_YellowForme10.Text}), {label56.Text} - {CB_Yellow11.Text} (Level {NUP_YellowMin11.Text}, Forme: {NUP_YellowForme11.Text}), {label55.Text} - {CB_Yellow12.Text} (Level {NUP_YellowMin12.Text}, Forme: {NUP_YellowForme12.Text}){Environment.NewLine}"; + toret += $"Purple Flowers: {label70.Text} - {CB_Purple1.Text} (Level {NUP_PurpleMin1.Text}, Forme: {NUP_PurpleForme1.Text}), {label81.Text} - {CB_Purple2.Text} (Level {NUP_PurpleMin2.Text}, Forme: {NUP_PurpleForme2.Text}), {label80.Text} - {CB_Purple3.Text} (Level {NUP_PurpleMin3.Text}, Forme: {NUP_PurpleForme3.Text}), {label79.Text} - {CB_Purple4.Text} (Level {NUP_PurpleMin4.Text}, Forme: {NUP_PurpleForme4.Text}), {label78.Text} - {CB_Purple5.Text} (Level {NUP_PurpleMin5.Text}, Forme: {NUP_PurpleForme5.Text}), {label77.Text} - {CB_Purple6.Text} (Level {NUP_PurpleMin6.Text}, Forme: {NUP_PurpleForme6.Text}), {label76.Text} - {CB_Purple7.Text} (Level {NUP_PurpleMin7.Text}, Forme: {NUP_PurpleForme7.Text}), {label75.Text} - {CB_Purple8.Text} (Level {NUP_PurpleMin8.Text}, Forme: {NUP_PurpleForme8.Text}), {label74.Text} - {CB_Purple9.Text} (Level {NUP_PurpleMin9.Text}, Forme: {NUP_PurpleForme9.Text}), {label73.Text} - {CB_Purple10.Text} (Level {NUP_PurpleMin10.Text}, Forme: {NUP_PurpleForme10.Text}), {label72.Text} - {CB_Purple11.Text} (Level {NUP_PurpleMin11.Text}, Forme: {NUP_PurpleForme11.Text}), {label71.Text} - {CB_Purple12.Text} (Level {NUP_PurpleMin12.Text}, Forme: {NUP_PurpleForme12.Text}){Environment.NewLine}"; + toret += $"Red Flowers: {label86.Text} - {CB_Red1.Text} (Level {NUP_RedMin1.Text}, Forme: {NUP_RedForme1.Text}), {label97.Text} - {CB_Red2.Text} (Level {NUP_RedMin2.Text}, Forme: {NUP_RedForme2.Text}), {label96.Text} - {CB_Red3.Text} (Level {NUP_RedMin3.Text}, Forme: {NUP_RedForme3.Text}), {label95.Text} - {CB_Red4.Text} (Level {NUP_RedMin4.Text}, Forme: {NUP_RedForme4.Text}), {label94.Text} - {CB_Red5.Text} (Level {NUP_RedMin5.Text}, Forme: {NUP_RedForme5.Text}), {label93.Text} - {CB_Red6.Text} (Level {NUP_RedMin6.Text}, Forme: {NUP_RedForme6.Text}), {label92.Text} - {CB_Red7.Text} (Level {NUP_RedMin7.Text}, Forme: {NUP_RedForme7.Text}), {label91.Text} - {CB_Red8.Text} (Level {NUP_RedMin8.Text}, Forme: {NUP_RedForme8.Text}), {label90.Text} - {CB_Red9.Text} (Level {NUP_RedMin9.Text}, Forme: {NUP_RedForme9.Text}), {label89.Text} - {CB_Red10.Text} (Level {NUP_RedMin10.Text}, Forme: {NUP_RedForme10.Text}), {label88.Text} - {CB_Red11.Text} (Level {NUP_RedMin11.Text}, Forme: {NUP_RedForme11.Text}), {label87.Text} - {CB_Red12.Text} (Level {NUP_RedMin12.Text}, Forme: {NUP_RedForme12.Text}){Environment.NewLine}"; + toret += $"Old Rod: {label43.Text} - {CB_Old1.Text} (Level {NUP_OldMin1.Text}, Forme: {NUP_OldForme1.Text}), {label44.Text} - {CB_Old2.Text} (Level {NUP_OldMin2.Text}, Forme: {NUP_OldForme2.Text}), {label45.Text} - {CB_Old3.Text} (Level {NUP_OldMin3.Text}, Forme: {NUP_OldForme3.Text}){Environment.NewLine}"; + toret += $"Good Rod: {label29.Text} - {CB_Good1.Text} (Level {NUP_GoodMin1.Text}, Forme: {NUP_GoodForme1.Text}), {label28.Text} - {CB_Good2.Text} (Level {NUP_GoodMin2.Text}, Forme: {NUP_GoodForme2.Text}), {label27.Text} - {CB_Good3.Text} (Level {NUP_GoodMin3.Text}, Forme: {NUP_GoodForme3.Text}){Environment.NewLine}"; + toret += $"Super Rod: {label99.Text} - {CB_Super1.Text} (Level {NUP_SuperMin1.Text}, Forme: {NUP_SuperForme1.Text}), {label98.Text} - {CB_Super2.Text} (Level {NUP_SuperMin2.Text}, Forme: {NUP_SuperForme2.Text}), {label49.Text} - {CB_Super3.Text} (Level {NUP_SuperMin3.Text}, Forme: {NUP_SuperForme3.Text}){Environment.NewLine}"; + toret += $"Surf: {label120.Text} - {CB_Surf1.Text} (Level {NUP_SurfMin1.Text}, Forme: {NUP_SurfForme1.Text}), {label119.Text} - {CB_Surf2.Text} (Level {NUP_SurfMin2.Text}, Forme: {NUP_SurfForme2.Text}), {label118.Text} - {CB_Surf3.Text} (Level {NUP_SurfMin3.Text}, Forme: {NUP_SurfForme3.Text}), {label117.Text} - {CB_Surf4.Text} (Level {NUP_SurfMin4.Text}, Forme: {NUP_SurfForme4.Text}), {label116.Text} - {CB_Surf5.Text} (Level {NUP_SurfMin5.Text}, Forme: {NUP_SurfForme5.Text}){Environment.NewLine}"; + toret += $"Horde A (60%): {CB_HordeA1.Text} (Level {NUP_HordeAMin1.Text}, Forme: {NUP_HordeAForme1.Text}), {CB_HordeA2.Text} (Level {NUP_HordeAMin2.Text}, Forme: {NUP_HordeAForme2.Text}), {CB_HordeA3.Text} (Level {NUP_HordeAMin3.Text}, Forme: {NUP_HordeAForme3.Text}), {CB_HordeA4.Text} (Level {NUP_HordeAMin4.Text}, Forme: {NUP_HordeAForme4.Text}), {CB_HordeA5.Text} (Level {NUP_HordeAMin5.Text}, Forme: {NUP_HordeAForme5.Text}){Environment.NewLine}"; + toret += $"Horde B (35%): {CB_HordeB1.Text} (Level {NUP_HordeBMin1.Text}, Forme: {NUP_HordeBForme1.Text}), {CB_HordeB2.Text} (Level {NUP_HordeBMin2.Text}, Forme: {NUP_HordeBForme2.Text}), {CB_HordeB3.Text} (Level {NUP_HordeBMin3.Text}, Forme: {NUP_HordeBForme3.Text}), {CB_HordeB4.Text} (Level {NUP_HordeBMin4.Text}, Forme: {NUP_HordeBForme4.Text}), {CB_HordeB5.Text} (Level {NUP_HordeBMin5.Text}, Forme: {NUP_HordeBForme5.Text}){Environment.NewLine}"; + toret += $"Horde C (5%): {CB_HordeC1.Text} (Level {NUP_HordeCMin1.Text}, Forme: {NUP_HordeCForme1.Text}), {CB_HordeC2.Text} (Level {NUP_HordeCMin2.Text}, Forme: {NUP_HordeCForme2.Text}), {CB_HordeC3.Text} (Level {NUP_HordeCMin3.Text}, Forme: {NUP_HordeCForme3.Text}), {CB_HordeC4.Text} (Level {NUP_HordeCMin4.Text}, Forme: {NUP_HordeCForme4.Text}), {CB_HordeC5.Text} (Level {NUP_HordeCMin5.Text}, Forme: {NUP_HordeCForme5.Text}){Environment.NewLine}{Environment.NewLine}"; + toret = toret.Replace("--- (No Level)", "None"); + } + else + { + toret += "No encounters found." + Environment.NewLine + Environment.NewLine; + } + + return toret; + } + + private void ModifyLevels(object sender, EventArgs e) + { + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Modify all current Level ranges?", "Cannot undo.") != DialogResult.Yes) return; + + // Disable Interface while modifying + Enabled = false; + + // Calculate % diff we will apply to each level + decimal leveldiff = NUD_LevelAmp.Value; + + // Cycle through each location to modify levels + for (int i = 0; i < CB_LocationID.Items.Count; i++) // for every location + { + // Load location + CB_LocationID.SelectedIndex = i; + + // Amp Levels + for (int l = 0; l < All_Max.Length; l++) + { + if (All_Min[l].Value > 1) + All_Min[l].Value = All_Max[l].Value = Randomizer.GetModifiedLevel((int)All_Max[l].Value, leveldiff); + } + + // Save Changes + B_Save_Click(sender, e); + } + // Enable Interface... modification complete. + Enabled = true; + WinFormsUtil.Alert("Modified all Level ranges according to specification!", "Press the Dump Tables button to view the new Level ranges!"); + } + + private void XYWE_FormClosing(object sender, FormClosingEventArgs e) + { + RandSettings.SetFormSettings(this, GB_Tweak.Controls); + } +} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/XYWE.resx b/pk3DS.WinForms/Subforms/Gen6/XYWE.resx similarity index 100% rename from pk3DS/Subforms/Gen6/XYWE.resx rename to pk3DS.WinForms/Subforms/Gen6/XYWE.resx diff --git a/pk3DS.WinForms/Subforms/Gen7/EggMoveEditor7.Designer.cs b/pk3DS.WinForms/Subforms/Gen7/EggMoveEditor7.Designer.cs new file mode 100644 index 0000000000..118c900037 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen7/EggMoveEditor7.Designer.cs @@ -0,0 +1,287 @@ +namespace pk3DS.WinForms; + +partial class EggMoveEditor7 +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.dgv = new System.Windows.Forms.DataGridView(); + this.CB_Species = new System.Windows.Forms.ComboBox(); + this.L_Species = new System.Windows.Forms.Label(); + this.B_RandAll = new System.Windows.Forms.Button(); + this.B_Dump = new System.Windows.Forms.Button(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.L_Moves = new System.Windows.Forms.Label(); + this.NUD_Moves = new System.Windows.Forms.NumericUpDown(); + this.CHK_Expand = new System.Windows.Forms.CheckBox(); + this.L_STAB = new System.Windows.Forms.Label(); + this.NUD_STAB = new System.Windows.Forms.NumericUpDown(); + this.CHK_STAB = new System.Windows.Forms.CheckBox(); + this.PB_MonSprite = new System.Windows.Forms.PictureBox(); + this.NUD_FormTable = new System.Windows.Forms.NumericUpDown(); + this.label1 = new System.Windows.Forms.Label(); + this.B_Goto = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.dgv)).BeginInit(); + this.groupBox1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Moves)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_STAB)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_MonSprite)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_FormTable)).BeginInit(); + this.SuspendLayout(); + // + // dgv + // + this.dgv.AllowUserToResizeColumns = false; + this.dgv.AllowUserToResizeRows = false; + this.dgv.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dgv.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgv.Location = new System.Drawing.Point(12, 41); + this.dgv.Name = "dgv"; + this.dgv.Size = new System.Drawing.Size(282, 359); + this.dgv.TabIndex = 0; + // + // CB_Species + // + this.CB_Species.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Species.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Species.FormattingEnabled = true; + this.CB_Species.Location = new System.Drawing.Point(66, 12); + this.CB_Species.Name = "CB_Species"; + this.CB_Species.Size = new System.Drawing.Size(121, 21); + this.CB_Species.TabIndex = 1; + this.CB_Species.SelectedIndexChanged += new System.EventHandler(this.ChangeEntry); + // + // L_Species + // + this.L_Species.AutoSize = true; + this.L_Species.Location = new System.Drawing.Point(12, 15); + this.L_Species.Name = "L_Species"; + this.L_Species.Size = new System.Drawing.Size(48, 13); + this.L_Species.TabIndex = 2; + this.L_Species.Text = "Species:"; + // + // B_RandAll + // + this.B_RandAll.Location = new System.Drawing.Point(300, 377); + this.B_RandAll.Name = "B_RandAll"; + this.B_RandAll.Size = new System.Drawing.Size(95, 23); + this.B_RandAll.TabIndex = 4; + this.B_RandAll.Text = "Randomize!"; + this.B_RandAll.UseVisualStyleBackColor = true; + this.B_RandAll.Click += new System.EventHandler(this.B_RandAll_Click); + // + // B_Dump + // + this.B_Dump.Location = new System.Drawing.Point(300, 155); + this.B_Dump.Name = "B_Dump"; + this.B_Dump.Size = new System.Drawing.Size(95, 23); + this.B_Dump.TabIndex = 5; + this.B_Dump.Text = "Dump All"; + this.B_Dump.UseVisualStyleBackColor = true; + this.B_Dump.Click += new System.EventHandler(this.B_Dump_Click); + // + // groupBox1 + // + this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupBox1.Controls.Add(this.L_Moves); + this.groupBox1.Controls.Add(this.NUD_Moves); + this.groupBox1.Controls.Add(this.CHK_Expand); + this.groupBox1.Controls.Add(this.L_STAB); + this.groupBox1.Controls.Add(this.NUD_STAB); + this.groupBox1.Controls.Add(this.CHK_STAB); + this.groupBox1.Location = new System.Drawing.Point(300, 184); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(95, 187); + this.groupBox1.TabIndex = 7; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Options"; + // + // L_Moves + // + this.L_Moves.AutoSize = true; + this.L_Moves.Location = new System.Drawing.Point(10, 130); + this.L_Moves.Name = "L_Moves"; + this.L_Moves.Size = new System.Drawing.Size(42, 13); + this.L_Moves.TabIndex = 10; + this.L_Moves.Text = "Moves:"; + // + // NUD_Moves + // + this.NUD_Moves.Location = new System.Drawing.Point(53, 128); + this.NUD_Moves.Maximum = new decimal(new int[] { + 30, + 0, + 0, + 0}); + this.NUD_Moves.Minimum = new decimal(new int[] { + 18, + 0, + 0, + 0}); + this.NUD_Moves.Name = "NUD_Moves"; + this.NUD_Moves.Size = new System.Drawing.Size(36, 20); + this.NUD_Moves.TabIndex = 9; + this.NUD_Moves.Value = new decimal(new int[] { + 18, + 0, + 0, + 0}); + // + // CHK_Expand + // + this.CHK_Expand.AutoSize = true; + this.CHK_Expand.Location = new System.Drawing.Point(5, 110); + this.CHK_Expand.Name = "CHK_Expand"; + this.CHK_Expand.Size = new System.Drawing.Size(86, 17); + this.CHK_Expand.TabIndex = 8; + this.CHK_Expand.Text = "Expand Pool"; + this.CHK_Expand.UseVisualStyleBackColor = true; + // + // L_STAB + // + this.L_STAB.AutoSize = true; + this.L_STAB.Location = new System.Drawing.Point(6, 74); + this.L_STAB.Name = "L_STAB"; + this.L_STAB.Size = new System.Drawing.Size(46, 13); + this.L_STAB.TabIndex = 3; + this.L_STAB.Text = "% STAB"; + // + // NUD_STAB + // + this.NUD_STAB.Location = new System.Drawing.Point(53, 72); + this.NUD_STAB.Minimum = new decimal(new int[] { + 5, + 0, + 0, + 0}); + this.NUD_STAB.Name = "NUD_STAB"; + this.NUD_STAB.Size = new System.Drawing.Size(36, 20); + this.NUD_STAB.TabIndex = 2; + this.NUD_STAB.Value = new decimal(new int[] { + 32, + 0, + 0, + 0}); + // + // CHK_STAB + // + this.CHK_STAB.AutoSize = true; + this.CHK_STAB.Location = new System.Drawing.Point(5, 54); + this.CHK_STAB.Name = "CHK_STAB"; + this.CHK_STAB.Size = new System.Drawing.Size(87, 17); + this.CHK_STAB.TabIndex = 1; + this.CHK_STAB.Text = "Bias by Type"; + this.CHK_STAB.UseVisualStyleBackColor = true; + // + // PB_MonSprite + // + this.PB_MonSprite.Location = new System.Drawing.Point(193, 5); + this.PB_MonSprite.Name = "PB_MonSprite"; + this.PB_MonSprite.Size = new System.Drawing.Size(40, 30); + this.PB_MonSprite.TabIndex = 91; + this.PB_MonSprite.TabStop = false; + // + // NUD_FormTable + // + this.NUD_FormTable.Location = new System.Drawing.Point(305, 41); + this.NUD_FormTable.Name = "NUD_FormTable"; + this.NUD_FormTable.Size = new System.Drawing.Size(47, 20); + this.NUD_FormTable.TabIndex = 92; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(272, 20); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(107, 13); + this.label1.TabIndex = 93; + this.label1.Text = "FormTableReference"; + // + // B_Goto + // + this.B_Goto.Location = new System.Drawing.Point(356, 41); + this.B_Goto.Name = "B_Goto"; + this.B_Goto.Size = new System.Drawing.Size(39, 24); + this.B_Goto.TabIndex = 94; + this.B_Goto.Text = "goto"; + this.B_Goto.UseVisualStyleBackColor = true; + this.B_Goto.Click += new System.EventHandler(this.B_Goto_Click); + // + // EggMoveEditor7 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(404, 412); + this.Controls.Add(this.B_Goto); + this.Controls.Add(this.label1); + this.Controls.Add(this.NUD_FormTable); + this.Controls.Add(this.PB_MonSprite); + this.Controls.Add(this.groupBox1); + this.Controls.Add(this.B_Dump); + this.Controls.Add(this.B_RandAll); + this.Controls.Add(this.L_Species); + this.Controls.Add(this.CB_Species); + this.Controls.Add(this.dgv); + this.MaximizeBox = false; + this.MinimumSize = new System.Drawing.Size(322, 450); + this.Name = "EggMoveEditor7"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Egg Move Editor"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form_Closing); + ((System.ComponentModel.ISupportInitialize)(this.dgv)).EndInit(); + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Moves)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_STAB)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_MonSprite)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_FormTable)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.DataGridView dgv; + private System.Windows.Forms.ComboBox CB_Species; + private System.Windows.Forms.Label L_Species; + private System.Windows.Forms.Button B_RandAll; + private System.Windows.Forms.Button B_Dump; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Label L_Moves; + private System.Windows.Forms.NumericUpDown NUD_Moves; + private System.Windows.Forms.CheckBox CHK_Expand; + private System.Windows.Forms.Label L_STAB; + private System.Windows.Forms.NumericUpDown NUD_STAB; + private System.Windows.Forms.CheckBox CHK_STAB; + private System.Windows.Forms.PictureBox PB_MonSprite; + private System.Windows.Forms.NumericUpDown NUD_FormTable; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Button B_Goto; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen7/EggMoveEditor7.cs b/pk3DS.WinForms/Subforms/Gen7/EggMoveEditor7.cs new file mode 100644 index 0000000000..c89ca37d81 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen7/EggMoveEditor7.cs @@ -0,0 +1,209 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Media; +using System.Text; +using System.Windows.Forms; +using pk3DS.Core.Structures; +using pk3DS.Core; +using pk3DS.Core.Randomizers; +using pk3DS.WinForms.Properties; + +namespace pk3DS.WinForms; + +public partial class EggMoveEditor7 : Form +{ + public EggMoveEditor7(byte[][] infiles) + { + InitializeComponent(); + files = infiles; + string[] species = Main.Config.GetText(TextName.SpeciesNames); + string[][] AltForms = Main.Config.Personal.GetFormList(species, Main.Config.MaxSpeciesID); + string[] specieslist = Main.Config.Personal.GetPersonalEntryList(AltForms, species, Main.Config.MaxSpeciesID, out _, out _); + specieslist[0] = movelist[0] = ""; + + SetupDGV(); + entries = infiles.Select(z => new EggMoves7(z)).ToArray(); + string[] names = new string[entries.Length]; + + for (int i = 0; i < species.Length; i++) // add all species & forms + { + names[i] = species[i]; + int formoff = entries[i].FormTableIndex; + int count = Main.Config.Personal[i].FormeCount; + for (int j = 1; j < count; j++) + { + names[formoff + j - 1] ??= $"{species[i]} [{AltForms[i][j].Replace(species[i] + " ", "")}]"; + } + } + + var newlist = names.Select((_, i) => new ComboItem { Text = (names[i] ?? "Extra") + $" ({i})", Value = i }); + newlist = newlist.GroupBy(z => z.Text.StartsWith("Extra")) + .Select(z => z.OrderBy(item => item.Text)) + .SelectMany(z => z).ToList(); + NUD_FormTable.Maximum = files.Length; + + CB_Species.DisplayMember = "Text"; + CB_Species.ValueMember = "Value"; + CB_Species.DataSource = newlist; + + CB_Species.SelectedIndex = 0; + RandSettings.GetFormSettings(this, groupBox1.Controls); + } + + private readonly EggMoves7[] entries; + + private readonly byte[][] files; + private int entry = -1; + private readonly string[] movelist = Main.Config.GetText(TextName.MoveNames); + private bool dumping; + //private readonly int[] baseForms, formVal; + + private void SetupDGV() + { + string[] sortedmoves = (string[])movelist.Clone(); + Array.Sort(sortedmoves); + var dgvMove = new DataGridViewComboBoxColumn(); + { + dgvMove.HeaderText = "Move"; + dgvMove.DisplayIndex = 0; + for (int i = 0; i < movelist.Length; i++) + dgvMove.Items.Add(sortedmoves[i]); // add only the Names + + dgvMove.Width = 135; + dgvMove.FlatStyle = FlatStyle.Flat; + } + dgv.Columns.Add(dgvMove); + } + + private EggMoves pkm = new EggMoves7([]); + + private void GetList() + { + entry = WinFormsUtil.GetIndex(CB_Species); + int s = 0, f = 0; + if (entry <= Main.Config.MaxSpeciesID) + { + s = entry; + } + int[] specForm = [s, f]; + string filename = "_" + specForm[0] + (entry > Main.Config.MaxSpeciesID ? "_" + (specForm[1] + 1) : ""); + PB_MonSprite.Image = (Bitmap)Resources.ResourceManager.GetObject(filename); + + dgv.Rows.Clear(); + pkm = entries[entry]; + NUD_FormTable.Value = pkm.FormTableIndex; + if (pkm.Count < 1) { files[entry] = []; return; } + dgv.Rows.Add(pkm.Count); + + // Fill Entries + for (int i = 0; i < pkm.Count; i++) + dgv.Rows[i].Cells[0].Value = movelist[pkm.Moves[i]]; + + dgv.CancelEdit(); + } + + private void SetList() + { + if (entry < 1 || dumping) return; + List moves = []; + for (int i = 0; i < dgv.Rows.Count - 1; i++) + { + int move = Array.IndexOf(movelist, dgv.Rows[i].Cells[0].Value); + if (move > 0 && !moves.Contains((ushort)move)) moves.Add(move); + } + pkm.Moves = [.. moves]; + pkm.FormTableIndex = (int)NUD_FormTable.Value; + + entries[entry] = (EggMoves7)pkm; + } + + private void ChangeEntry(object sender, EventArgs e) + { + SetList(); + GetList(); + } + + private void B_RandAll_Click(object sender, EventArgs e) + { + var sets = entries; + var rand = new EggMoveRandomizer(Main.Config, sets) + { + Expand = CHK_Expand.Checked, + ExpandTo = (int)NUD_Moves.Value, + STAB = CHK_STAB.Checked, + STABPercent = NUD_STAB.Value, + BannedMoves = [165, 621, 464, .. Legal.Z_Moves], // Struggle, Hyperspace Fury, Dark Void + }; + rand.Execute(); + // sets.Select(z => z.Write()).ToArray().CopyTo(files, 0); + GetList(); + WinFormsUtil.Alert("All Pokémon's Egg Moves have been randomized!", "Press the Dump All button to see the new Egg Moves!"); + } + + private void B_Dump_Click(object sender, EventArgs e) + { + if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Dump all Egg Moves to Text File?")) + return; + + dumping = true; + string result = ""; + for (int i = 0; i < CB_Species.Items.Count; i++) + { + CB_Species.SelectedIndex = i; // Get new Species + result += "======" + Environment.NewLine + entry + " " + CB_Species.Text + Environment.NewLine + "======" + Environment.NewLine; + for (int j = 0; j < dgv.Rows.Count - 1; j++) + result += dgv.Rows[j].Cells[0].Value + Environment.NewLine; + + result += Environment.NewLine; + } + var sfd = new SaveFileDialog { FileName = "Egg Moves.txt", Filter = "Text File|*.txt" }; + + SystemSounds.Asterisk.Play(); + if (sfd.ShowDialog() == DialogResult.OK) + { + string path = sfd.FileName; + File.WriteAllText(path, result, Encoding.Unicode); + } + dumping = false; + } + + private void Form_Closing(object sender, FormClosingEventArgs e) + { + SetList(); + entries.Select(z => z.Write()).ToArray().CopyTo(files, 0); + RandSettings.SetFormSettings(this, groupBox1.Controls); + } + + private void B_Goto_Click(object sender, EventArgs e) + { + CB_Species.SelectedValue = (int)NUD_FormTable.Value; + } + + public void CalcStats() + { + Move[] MoveData = Main.Config.Moves; + int movectr = 0; + int max = 0; + int spec = 0; + int stab = 0; + for (int i = 0; i < Main.Config.MaxSpeciesID; i++) + { + byte[] movedata = files[i]; + int movecount = BitConverter.ToUInt16(movedata, 2); + if (movecount == 65535) + continue; + movectr += movecount; // Average Moves + if (max < movecount) { max = movecount; spec = i; } // Max Moves (and species) + for (int m = 0; m < movecount; m++) + { + int move = BitConverter.ToUInt16(movedata, (m * 2) + 4); + if (Main.SpeciesStat[i].Types.Contains(MoveData[move].Type)) + stab++; + } + } + WinFormsUtil.Alert($"Egg Moves: {movectr}\r\nMost Moves: {max} @ {spec}\r\nSTAB Count: {stab}"); + } +} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/EggMoveEditor7.resx b/pk3DS.WinForms/Subforms/Gen7/EggMoveEditor7.resx similarity index 100% rename from pk3DS/Subforms/Gen7/EggMoveEditor7.resx rename to pk3DS.WinForms/Subforms/Gen7/EggMoveEditor7.resx diff --git a/pk3DS.WinForms/Subforms/Gen7/EvolutionEditor7.Designer.cs b/pk3DS.WinForms/Subforms/Gen7/EvolutionEditor7.Designer.cs new file mode 100644 index 0000000000..88640b4c12 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen7/EvolutionEditor7.Designer.cs @@ -0,0 +1,1125 @@ +namespace pk3DS.WinForms; + +partial class EvolutionEditor7 +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.CB_Species = new System.Windows.Forms.ComboBox(); + this.L_Species = new System.Windows.Forms.Label(); + this.B_Dump = new System.Windows.Forms.Button(); + this.CB_M1 = new System.Windows.Forms.ComboBox(); + this.L_M1 = new System.Windows.Forms.Label(); + this.CB_I1 = new System.Windows.Forms.ComboBox(); + this.CB_P1 = new System.Windows.Forms.ComboBox(); + this.PB_1 = new System.Windows.Forms.PictureBox(); + this.B_RandAll = new System.Windows.Forms.Button(); + this.GB_Randomizer = new System.Windows.Forms.GroupBox(); + this.L_Protip = new System.Windows.Forms.Label(); + this.CHK_BST = new System.Windows.Forms.CheckBox(); + this.CHK_Type = new System.Windows.Forms.CheckBox(); + this.CHK_Exp = new System.Windows.Forms.CheckBox(); + this.NUD_F1 = new System.Windows.Forms.NumericUpDown(); + this.NUD_L1 = new System.Windows.Forms.NumericUpDown(); + this.NUD_L2 = new System.Windows.Forms.NumericUpDown(); + this.NUD_F2 = new System.Windows.Forms.NumericUpDown(); + this.PB_2 = new System.Windows.Forms.PictureBox(); + this.CB_P2 = new System.Windows.Forms.ComboBox(); + this.CB_I2 = new System.Windows.Forms.ComboBox(); + this.label1 = new System.Windows.Forms.Label(); + this.CB_M2 = new System.Windows.Forms.ComboBox(); + this.NUD_L3 = new System.Windows.Forms.NumericUpDown(); + this.NUD_F3 = new System.Windows.Forms.NumericUpDown(); + this.PB_3 = new System.Windows.Forms.PictureBox(); + this.CB_P3 = new System.Windows.Forms.ComboBox(); + this.CB_I3 = new System.Windows.Forms.ComboBox(); + this.label2 = new System.Windows.Forms.Label(); + this.CB_M3 = new System.Windows.Forms.ComboBox(); + this.NUD_L4 = new System.Windows.Forms.NumericUpDown(); + this.NUD_F4 = new System.Windows.Forms.NumericUpDown(); + this.PB_4 = new System.Windows.Forms.PictureBox(); + this.CB_P4 = new System.Windows.Forms.ComboBox(); + this.CB_I4 = new System.Windows.Forms.ComboBox(); + this.label3 = new System.Windows.Forms.Label(); + this.CB_M4 = new System.Windows.Forms.ComboBox(); + this.NUD_L5 = new System.Windows.Forms.NumericUpDown(); + this.NUD_F5 = new System.Windows.Forms.NumericUpDown(); + this.PB_5 = new System.Windows.Forms.PictureBox(); + this.CB_P5 = new System.Windows.Forms.ComboBox(); + this.CB_I5 = new System.Windows.Forms.ComboBox(); + this.label4 = new System.Windows.Forms.Label(); + this.CB_M5 = new System.Windows.Forms.ComboBox(); + this.NUD_L6 = new System.Windows.Forms.NumericUpDown(); + this.NUD_F6 = new System.Windows.Forms.NumericUpDown(); + this.PB_6 = new System.Windows.Forms.PictureBox(); + this.CB_P6 = new System.Windows.Forms.ComboBox(); + this.CB_I6 = new System.Windows.Forms.ComboBox(); + this.label5 = new System.Windows.Forms.Label(); + this.CB_M6 = new System.Windows.Forms.ComboBox(); + this.NUD_L7 = new System.Windows.Forms.NumericUpDown(); + this.NUD_F7 = new System.Windows.Forms.NumericUpDown(); + this.PB_7 = new System.Windows.Forms.PictureBox(); + this.CB_P7 = new System.Windows.Forms.ComboBox(); + this.CB_I7 = new System.Windows.Forms.ComboBox(); + this.label6 = new System.Windows.Forms.Label(); + this.CB_M7 = new System.Windows.Forms.ComboBox(); + this.NUD_L8 = new System.Windows.Forms.NumericUpDown(); + this.NUD_F8 = new System.Windows.Forms.NumericUpDown(); + this.PB_8 = new System.Windows.Forms.PictureBox(); + this.CB_P8 = new System.Windows.Forms.ComboBox(); + this.CB_I8 = new System.Windows.Forms.ComboBox(); + this.label7 = new System.Windows.Forms.Label(); + this.CB_M8 = new System.Windows.Forms.ComboBox(); + this.B_Trade = new System.Windows.Forms.Button(); + this.B_EveryLevel = new System.Windows.Forms.Button(); + this.CHK_E = new System.Windows.Forms.CheckBox(); + this.CHK_L = new System.Windows.Forms.CheckBox(); + ((System.ComponentModel.ISupportInitialize)(this.PB_1)).BeginInit(); + this.GB_Randomizer.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_F1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_L1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_L2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_F2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_L3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_F3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_L4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_F4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_L5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_F5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_L6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_F6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_L7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_F7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_L8)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_F8)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_8)).BeginInit(); + this.SuspendLayout(); + // + // CB_Species + // + this.CB_Species.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Species.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Species.FormattingEnabled = true; + this.CB_Species.Location = new System.Drawing.Point(66, 12); + this.CB_Species.Name = "CB_Species"; + this.CB_Species.Size = new System.Drawing.Size(121, 21); + this.CB_Species.TabIndex = 1; + this.CB_Species.SelectedIndexChanged += new System.EventHandler(this.ChangeEntry); + // + // L_Species + // + this.L_Species.AutoSize = true; + this.L_Species.Location = new System.Drawing.Point(12, 15); + this.L_Species.Name = "L_Species"; + this.L_Species.Size = new System.Drawing.Size(48, 13); + this.L_Species.TabIndex = 2; + this.L_Species.Text = "Species:"; + // + // B_Dump + // + this.B_Dump.Location = new System.Drawing.Point(193, 11); + this.B_Dump.Name = "B_Dump"; + this.B_Dump.Size = new System.Drawing.Size(59, 23); + this.B_Dump.TabIndex = 5; + this.B_Dump.Text = "Dump"; + this.B_Dump.UseVisualStyleBackColor = true; + this.B_Dump.Click += new System.EventHandler(this.B_Dump_Click); + // + // CB_M1 + // + this.CB_M1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_M1.DropDownWidth = 200; + this.CB_M1.FormattingEnabled = true; + this.CB_M1.Location = new System.Drawing.Point(125, 46); + this.CB_M1.MaxDropDownItems = 10; + this.CB_M1.Name = "CB_M1"; + this.CB_M1.Size = new System.Drawing.Size(150, 21); + this.CB_M1.TabIndex = 6; + this.CB_M1.SelectedIndexChanged += new System.EventHandler(this.ChangeMethod); + // + // L_M1 + // + this.L_M1.Location = new System.Drawing.Point(13, 45); + this.L_M1.Name = "L_M1"; + this.L_M1.Size = new System.Drawing.Size(60, 20); + this.L_M1.TabIndex = 7; + this.L_M1.Text = "Method 1:"; + this.L_M1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_I1 + // + this.CB_I1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_I1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_I1.FormattingEnabled = true; + this.CB_I1.Location = new System.Drawing.Point(281, 46); + this.CB_I1.Name = "CB_I1"; + this.CB_I1.Size = new System.Drawing.Size(101, 21); + this.CB_I1.TabIndex = 9; + this.CB_I1.SelectedIndexChanged += new System.EventHandler(this.ChangeInto); + // + // CB_P1 + // + this.CB_P1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_P1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_P1.FormattingEnabled = true; + this.CB_P1.Location = new System.Drawing.Point(388, 46); + this.CB_P1.Name = "CB_P1"; + this.CB_P1.Size = new System.Drawing.Size(121, 21); + this.CB_P1.TabIndex = 10; + // + // PB_1 + // + this.PB_1.Location = new System.Drawing.Point(79, 39); + this.PB_1.Name = "PB_1"; + this.PB_1.Size = new System.Drawing.Size(40, 30); + this.PB_1.TabIndex = 54; + this.PB_1.TabStop = false; + // + // B_RandAll + // + this.B_RandAll.Location = new System.Drawing.Point(511, 324); + this.B_RandAll.Name = "B_RandAll"; + this.B_RandAll.Size = new System.Drawing.Size(100, 23); + this.B_RandAll.TabIndex = 62; + this.B_RandAll.Text = "Randomize All"; + this.B_RandAll.UseVisualStyleBackColor = true; + this.B_RandAll.Click += new System.EventHandler(this.B_RandAll_Click); + // + // GB_Randomizer + // + this.GB_Randomizer.Controls.Add(this.CHK_E); + this.GB_Randomizer.Controls.Add(this.CHK_L); + this.GB_Randomizer.Controls.Add(this.L_Protip); + this.GB_Randomizer.Controls.Add(this.CHK_BST); + this.GB_Randomizer.Controls.Add(this.CHK_Type); + this.GB_Randomizer.Controls.Add(this.CHK_Exp); + this.GB_Randomizer.Location = new System.Drawing.Point(16, 292); + this.GB_Randomizer.Name = "GB_Randomizer"; + this.GB_Randomizer.Size = new System.Drawing.Size(357, 104); + this.GB_Randomizer.TabIndex = 63; + this.GB_Randomizer.TabStop = false; + this.GB_Randomizer.Text = "Randomizer Options"; + // + // L_Protip + // + this.L_Protip.AutoSize = true; + this.L_Protip.ForeColor = System.Drawing.Color.Red; + this.L_Protip.Location = new System.Drawing.Point(198, 9); + this.L_Protip.Name = "L_Protip"; + this.L_Protip.Size = new System.Drawing.Size(153, 13); + this.L_Protip.TabIndex = 66; + this.L_Protip.Text = "(Protip: Difficulty++ in Personal)"; + // + // CHK_BST + // + this.CHK_BST.AutoSize = true; + this.CHK_BST.Checked = true; + this.CHK_BST.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_BST.Location = new System.Drawing.Point(6, 53); + this.CHK_BST.Name = "CHK_BST"; + this.CHK_BST.Size = new System.Drawing.Size(179, 17); + this.CHK_BST.TabIndex = 65; + this.CHK_BST.Text = "Share a similar BST as Evolution"; + this.CHK_BST.UseVisualStyleBackColor = true; + // + // CHK_Type + // + this.CHK_Type.AutoSize = true; + this.CHK_Type.Checked = true; + this.CHK_Type.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_Type.Location = new System.Drawing.Point(6, 38); + this.CHK_Type.Name = "CHK_Type"; + this.CHK_Type.Size = new System.Drawing.Size(200, 17); + this.CHK_Type.TabIndex = 64; + this.CHK_Type.Text = "Share at least one Type as Evolution"; + this.CHK_Type.UseVisualStyleBackColor = true; + // + // CHK_Exp + // + this.CHK_Exp.AutoSize = true; + this.CHK_Exp.Checked = true; + this.CHK_Exp.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_Exp.Location = new System.Drawing.Point(6, 23); + this.CHK_Exp.Name = "CHK_Exp"; + this.CHK_Exp.Size = new System.Drawing.Size(222, 17); + this.CHK_Exp.TabIndex = 63; + this.CHK_Exp.Text = "Share the same EXP Growth as Evolution"; + this.CHK_Exp.UseVisualStyleBackColor = true; + // + // NUD_F1 + // + this.NUD_F1.Location = new System.Drawing.Point(515, 47); + this.NUD_F1.Maximum = new decimal(new int[] { + 127, + 0, + 0, + 0}); + this.NUD_F1.Minimum = new decimal(new int[] { + 127, + 0, + 0, + -2147483648}); + this.NUD_F1.Name = "NUD_F1"; + this.NUD_F1.Size = new System.Drawing.Size(45, 20); + this.NUD_F1.TabIndex = 64; + this.NUD_F1.ValueChanged += new System.EventHandler(this.ChangeInto); + // + // NUD_L1 + // + this.NUD_L1.Location = new System.Drawing.Point(566, 47); + this.NUD_L1.Maximum = new decimal(new int[] { + 127, + 0, + 0, + 0}); + this.NUD_L1.Minimum = new decimal(new int[] { + 127, + 0, + 0, + -2147483648}); + this.NUD_L1.Name = "NUD_L1"; + this.NUD_L1.Size = new System.Drawing.Size(45, 20); + this.NUD_L1.TabIndex = 65; + // + // NUD_L2 + // + this.NUD_L2.Location = new System.Drawing.Point(566, 78); + this.NUD_L2.Maximum = new decimal(new int[] { + 127, + 0, + 0, + 0}); + this.NUD_L2.Minimum = new decimal(new int[] { + 127, + 0, + 0, + -2147483648}); + this.NUD_L2.Name = "NUD_L2"; + this.NUD_L2.Size = new System.Drawing.Size(45, 20); + this.NUD_L2.TabIndex = 72; + // + // NUD_F2 + // + this.NUD_F2.Location = new System.Drawing.Point(515, 78); + this.NUD_F2.Maximum = new decimal(new int[] { + 127, + 0, + 0, + 0}); + this.NUD_F2.Minimum = new decimal(new int[] { + 127, + 0, + 0, + -2147483648}); + this.NUD_F2.Name = "NUD_F2"; + this.NUD_F2.Size = new System.Drawing.Size(45, 20); + this.NUD_F2.TabIndex = 71; + this.NUD_F2.ValueChanged += new System.EventHandler(this.ChangeInto); + // + // PB_2 + // + this.PB_2.Location = new System.Drawing.Point(79, 70); + this.PB_2.Name = "PB_2"; + this.PB_2.Size = new System.Drawing.Size(40, 30); + this.PB_2.TabIndex = 70; + this.PB_2.TabStop = false; + // + // CB_P2 + // + this.CB_P2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_P2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_P2.FormattingEnabled = true; + this.CB_P2.Location = new System.Drawing.Point(388, 77); + this.CB_P2.Name = "CB_P2"; + this.CB_P2.Size = new System.Drawing.Size(121, 21); + this.CB_P2.TabIndex = 69; + // + // CB_I2 + // + this.CB_I2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_I2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_I2.FormattingEnabled = true; + this.CB_I2.Location = new System.Drawing.Point(281, 77); + this.CB_I2.Name = "CB_I2"; + this.CB_I2.Size = new System.Drawing.Size(101, 21); + this.CB_I2.TabIndex = 68; + this.CB_I2.SelectedIndexChanged += new System.EventHandler(this.ChangeInto); + // + // label1 + // + this.label1.Location = new System.Drawing.Point(13, 76); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(60, 20); + this.label1.TabIndex = 67; + this.label1.Text = "Method 2:"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_M2 + // + this.CB_M2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_M2.DropDownWidth = 200; + this.CB_M2.FormattingEnabled = true; + this.CB_M2.Location = new System.Drawing.Point(125, 77); + this.CB_M2.MaxDropDownItems = 10; + this.CB_M2.Name = "CB_M2"; + this.CB_M2.Size = new System.Drawing.Size(150, 21); + this.CB_M2.TabIndex = 66; + this.CB_M2.SelectedIndexChanged += new System.EventHandler(this.ChangeMethod); + // + // NUD_L3 + // + this.NUD_L3.Location = new System.Drawing.Point(566, 109); + this.NUD_L3.Maximum = new decimal(new int[] { + 127, + 0, + 0, + 0}); + this.NUD_L3.Minimum = new decimal(new int[] { + 127, + 0, + 0, + -2147483648}); + this.NUD_L3.Name = "NUD_L3"; + this.NUD_L3.Size = new System.Drawing.Size(45, 20); + this.NUD_L3.TabIndex = 79; + // + // NUD_F3 + // + this.NUD_F3.Location = new System.Drawing.Point(515, 109); + this.NUD_F3.Maximum = new decimal(new int[] { + 127, + 0, + 0, + 0}); + this.NUD_F3.Minimum = new decimal(new int[] { + 127, + 0, + 0, + -2147483648}); + this.NUD_F3.Name = "NUD_F3"; + this.NUD_F3.Size = new System.Drawing.Size(45, 20); + this.NUD_F3.TabIndex = 78; + this.NUD_F3.ValueChanged += new System.EventHandler(this.ChangeInto); + // + // PB_3 + // + this.PB_3.Location = new System.Drawing.Point(79, 101); + this.PB_3.Name = "PB_3"; + this.PB_3.Size = new System.Drawing.Size(40, 30); + this.PB_3.TabIndex = 77; + this.PB_3.TabStop = false; + // + // CB_P3 + // + this.CB_P3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_P3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_P3.FormattingEnabled = true; + this.CB_P3.Location = new System.Drawing.Point(388, 108); + this.CB_P3.Name = "CB_P3"; + this.CB_P3.Size = new System.Drawing.Size(121, 21); + this.CB_P3.TabIndex = 76; + // + // CB_I3 + // + this.CB_I3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_I3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_I3.FormattingEnabled = true; + this.CB_I3.Location = new System.Drawing.Point(281, 108); + this.CB_I3.Name = "CB_I3"; + this.CB_I3.Size = new System.Drawing.Size(101, 21); + this.CB_I3.TabIndex = 75; + this.CB_I3.SelectedIndexChanged += new System.EventHandler(this.ChangeInto); + // + // label2 + // + this.label2.Location = new System.Drawing.Point(13, 107); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(60, 20); + this.label2.TabIndex = 74; + this.label2.Text = "Method 3:"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_M3 + // + this.CB_M3.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_M3.DropDownWidth = 200; + this.CB_M3.FormattingEnabled = true; + this.CB_M3.Location = new System.Drawing.Point(125, 108); + this.CB_M3.MaxDropDownItems = 10; + this.CB_M3.Name = "CB_M3"; + this.CB_M3.Size = new System.Drawing.Size(150, 21); + this.CB_M3.TabIndex = 73; + this.CB_M3.SelectedIndexChanged += new System.EventHandler(this.ChangeMethod); + // + // NUD_L4 + // + this.NUD_L4.Location = new System.Drawing.Point(566, 140); + this.NUD_L4.Maximum = new decimal(new int[] { + 127, + 0, + 0, + 0}); + this.NUD_L4.Minimum = new decimal(new int[] { + 127, + 0, + 0, + -2147483648}); + this.NUD_L4.Name = "NUD_L4"; + this.NUD_L4.Size = new System.Drawing.Size(45, 20); + this.NUD_L4.TabIndex = 86; + // + // NUD_F4 + // + this.NUD_F4.Location = new System.Drawing.Point(515, 140); + this.NUD_F4.Maximum = new decimal(new int[] { + 127, + 0, + 0, + 0}); + this.NUD_F4.Minimum = new decimal(new int[] { + 127, + 0, + 0, + -2147483648}); + this.NUD_F4.Name = "NUD_F4"; + this.NUD_F4.Size = new System.Drawing.Size(45, 20); + this.NUD_F4.TabIndex = 85; + this.NUD_F4.ValueChanged += new System.EventHandler(this.ChangeInto); + // + // PB_4 + // + this.PB_4.Location = new System.Drawing.Point(79, 132); + this.PB_4.Name = "PB_4"; + this.PB_4.Size = new System.Drawing.Size(40, 30); + this.PB_4.TabIndex = 84; + this.PB_4.TabStop = false; + // + // CB_P4 + // + this.CB_P4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_P4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_P4.FormattingEnabled = true; + this.CB_P4.Location = new System.Drawing.Point(388, 139); + this.CB_P4.Name = "CB_P4"; + this.CB_P4.Size = new System.Drawing.Size(121, 21); + this.CB_P4.TabIndex = 83; + // + // CB_I4 + // + this.CB_I4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_I4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_I4.FormattingEnabled = true; + this.CB_I4.Location = new System.Drawing.Point(281, 139); + this.CB_I4.Name = "CB_I4"; + this.CB_I4.Size = new System.Drawing.Size(101, 21); + this.CB_I4.TabIndex = 82; + this.CB_I4.SelectedIndexChanged += new System.EventHandler(this.ChangeInto); + // + // label3 + // + this.label3.Location = new System.Drawing.Point(13, 138); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(60, 20); + this.label3.TabIndex = 81; + this.label3.Text = "Method 4:"; + this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_M4 + // + this.CB_M4.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_M4.DropDownWidth = 200; + this.CB_M4.FormattingEnabled = true; + this.CB_M4.Location = new System.Drawing.Point(125, 139); + this.CB_M4.MaxDropDownItems = 10; + this.CB_M4.Name = "CB_M4"; + this.CB_M4.Size = new System.Drawing.Size(150, 21); + this.CB_M4.TabIndex = 80; + this.CB_M4.SelectedIndexChanged += new System.EventHandler(this.ChangeMethod); + // + // NUD_L5 + // + this.NUD_L5.Location = new System.Drawing.Point(566, 171); + this.NUD_L5.Maximum = new decimal(new int[] { + 127, + 0, + 0, + 0}); + this.NUD_L5.Minimum = new decimal(new int[] { + 127, + 0, + 0, + -2147483648}); + this.NUD_L5.Name = "NUD_L5"; + this.NUD_L5.Size = new System.Drawing.Size(45, 20); + this.NUD_L5.TabIndex = 93; + // + // NUD_F5 + // + this.NUD_F5.Location = new System.Drawing.Point(515, 171); + this.NUD_F5.Maximum = new decimal(new int[] { + 127, + 0, + 0, + 0}); + this.NUD_F5.Minimum = new decimal(new int[] { + 127, + 0, + 0, + -2147483648}); + this.NUD_F5.Name = "NUD_F5"; + this.NUD_F5.Size = new System.Drawing.Size(45, 20); + this.NUD_F5.TabIndex = 92; + this.NUD_F5.ValueChanged += new System.EventHandler(this.ChangeInto); + // + // PB_5 + // + this.PB_5.Location = new System.Drawing.Point(79, 163); + this.PB_5.Name = "PB_5"; + this.PB_5.Size = new System.Drawing.Size(40, 30); + this.PB_5.TabIndex = 91; + this.PB_5.TabStop = false; + // + // CB_P5 + // + this.CB_P5.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_P5.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_P5.FormattingEnabled = true; + this.CB_P5.Location = new System.Drawing.Point(388, 170); + this.CB_P5.Name = "CB_P5"; + this.CB_P5.Size = new System.Drawing.Size(121, 21); + this.CB_P5.TabIndex = 90; + // + // CB_I5 + // + this.CB_I5.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_I5.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_I5.FormattingEnabled = true; + this.CB_I5.Location = new System.Drawing.Point(281, 170); + this.CB_I5.Name = "CB_I5"; + this.CB_I5.Size = new System.Drawing.Size(101, 21); + this.CB_I5.TabIndex = 89; + this.CB_I5.SelectedIndexChanged += new System.EventHandler(this.ChangeInto); + // + // label4 + // + this.label4.Location = new System.Drawing.Point(13, 169); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(60, 20); + this.label4.TabIndex = 88; + this.label4.Text = "Method 5:"; + this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_M5 + // + this.CB_M5.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_M5.DropDownWidth = 200; + this.CB_M5.FormattingEnabled = true; + this.CB_M5.Location = new System.Drawing.Point(125, 170); + this.CB_M5.MaxDropDownItems = 10; + this.CB_M5.Name = "CB_M5"; + this.CB_M5.Size = new System.Drawing.Size(150, 21); + this.CB_M5.TabIndex = 87; + this.CB_M5.SelectedIndexChanged += new System.EventHandler(this.ChangeMethod); + // + // NUD_L6 + // + this.NUD_L6.Location = new System.Drawing.Point(566, 202); + this.NUD_L6.Maximum = new decimal(new int[] { + 127, + 0, + 0, + 0}); + this.NUD_L6.Minimum = new decimal(new int[] { + 127, + 0, + 0, + -2147483648}); + this.NUD_L6.Name = "NUD_L6"; + this.NUD_L6.Size = new System.Drawing.Size(45, 20); + this.NUD_L6.TabIndex = 100; + // + // NUD_F6 + // + this.NUD_F6.Location = new System.Drawing.Point(515, 202); + this.NUD_F6.Maximum = new decimal(new int[] { + 127, + 0, + 0, + 0}); + this.NUD_F6.Minimum = new decimal(new int[] { + 127, + 0, + 0, + -2147483648}); + this.NUD_F6.Name = "NUD_F6"; + this.NUD_F6.Size = new System.Drawing.Size(45, 20); + this.NUD_F6.TabIndex = 99; + this.NUD_F6.ValueChanged += new System.EventHandler(this.ChangeInto); + // + // PB_6 + // + this.PB_6.Location = new System.Drawing.Point(79, 194); + this.PB_6.Name = "PB_6"; + this.PB_6.Size = new System.Drawing.Size(40, 30); + this.PB_6.TabIndex = 98; + this.PB_6.TabStop = false; + // + // CB_P6 + // + this.CB_P6.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_P6.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_P6.FormattingEnabled = true; + this.CB_P6.Location = new System.Drawing.Point(388, 201); + this.CB_P6.Name = "CB_P6"; + this.CB_P6.Size = new System.Drawing.Size(121, 21); + this.CB_P6.TabIndex = 97; + // + // CB_I6 + // + this.CB_I6.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_I6.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_I6.FormattingEnabled = true; + this.CB_I6.Location = new System.Drawing.Point(281, 201); + this.CB_I6.Name = "CB_I6"; + this.CB_I6.Size = new System.Drawing.Size(101, 21); + this.CB_I6.TabIndex = 96; + this.CB_I6.SelectedIndexChanged += new System.EventHandler(this.ChangeInto); + // + // label5 + // + this.label5.Location = new System.Drawing.Point(13, 200); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(60, 20); + this.label5.TabIndex = 95; + this.label5.Text = "Method 6:"; + this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_M6 + // + this.CB_M6.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_M6.DropDownWidth = 200; + this.CB_M6.FormattingEnabled = true; + this.CB_M6.Location = new System.Drawing.Point(125, 201); + this.CB_M6.MaxDropDownItems = 10; + this.CB_M6.Name = "CB_M6"; + this.CB_M6.Size = new System.Drawing.Size(150, 21); + this.CB_M6.TabIndex = 94; + this.CB_M6.SelectedIndexChanged += new System.EventHandler(this.ChangeMethod); + // + // NUD_L7 + // + this.NUD_L7.Location = new System.Drawing.Point(566, 233); + this.NUD_L7.Maximum = new decimal(new int[] { + 127, + 0, + 0, + 0}); + this.NUD_L7.Minimum = new decimal(new int[] { + 127, + 0, + 0, + -2147483648}); + this.NUD_L7.Name = "NUD_L7"; + this.NUD_L7.Size = new System.Drawing.Size(45, 20); + this.NUD_L7.TabIndex = 107; + // + // NUD_F7 + // + this.NUD_F7.Location = new System.Drawing.Point(515, 233); + this.NUD_F7.Maximum = new decimal(new int[] { + 127, + 0, + 0, + 0}); + this.NUD_F7.Minimum = new decimal(new int[] { + 127, + 0, + 0, + -2147483648}); + this.NUD_F7.Name = "NUD_F7"; + this.NUD_F7.Size = new System.Drawing.Size(45, 20); + this.NUD_F7.TabIndex = 106; + this.NUD_F7.ValueChanged += new System.EventHandler(this.ChangeInto); + // + // PB_7 + // + this.PB_7.Location = new System.Drawing.Point(79, 225); + this.PB_7.Name = "PB_7"; + this.PB_7.Size = new System.Drawing.Size(40, 30); + this.PB_7.TabIndex = 105; + this.PB_7.TabStop = false; + // + // CB_P7 + // + this.CB_P7.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_P7.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_P7.FormattingEnabled = true; + this.CB_P7.Location = new System.Drawing.Point(388, 232); + this.CB_P7.Name = "CB_P7"; + this.CB_P7.Size = new System.Drawing.Size(121, 21); + this.CB_P7.TabIndex = 104; + // + // CB_I7 + // + this.CB_I7.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_I7.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_I7.FormattingEnabled = true; + this.CB_I7.Location = new System.Drawing.Point(281, 232); + this.CB_I7.Name = "CB_I7"; + this.CB_I7.Size = new System.Drawing.Size(101, 21); + this.CB_I7.TabIndex = 103; + this.CB_I7.SelectedIndexChanged += new System.EventHandler(this.ChangeInto); + // + // label6 + // + this.label6.Location = new System.Drawing.Point(13, 231); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(60, 20); + this.label6.TabIndex = 102; + this.label6.Text = "Method 7:"; + this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_M7 + // + this.CB_M7.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_M7.DropDownWidth = 200; + this.CB_M7.FormattingEnabled = true; + this.CB_M7.Location = new System.Drawing.Point(125, 232); + this.CB_M7.MaxDropDownItems = 10; + this.CB_M7.Name = "CB_M7"; + this.CB_M7.Size = new System.Drawing.Size(150, 21); + this.CB_M7.TabIndex = 101; + this.CB_M7.SelectedIndexChanged += new System.EventHandler(this.ChangeMethod); + // + // NUD_L8 + // + this.NUD_L8.Location = new System.Drawing.Point(566, 264); + this.NUD_L8.Maximum = new decimal(new int[] { + 127, + 0, + 0, + 0}); + this.NUD_L8.Minimum = new decimal(new int[] { + 127, + 0, + 0, + -2147483648}); + this.NUD_L8.Name = "NUD_L8"; + this.NUD_L8.Size = new System.Drawing.Size(45, 20); + this.NUD_L8.TabIndex = 114; + // + // NUD_F8 + // + this.NUD_F8.Location = new System.Drawing.Point(515, 264); + this.NUD_F8.Maximum = new decimal(new int[] { + 127, + 0, + 0, + 0}); + this.NUD_F8.Minimum = new decimal(new int[] { + 127, + 0, + 0, + -2147483648}); + this.NUD_F8.Name = "NUD_F8"; + this.NUD_F8.Size = new System.Drawing.Size(45, 20); + this.NUD_F8.TabIndex = 113; + this.NUD_F8.ValueChanged += new System.EventHandler(this.ChangeInto); + // + // PB_8 + // + this.PB_8.Location = new System.Drawing.Point(79, 256); + this.PB_8.Name = "PB_8"; + this.PB_8.Size = new System.Drawing.Size(40, 30); + this.PB_8.TabIndex = 112; + this.PB_8.TabStop = false; + // + // CB_P8 + // + this.CB_P8.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_P8.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_P8.FormattingEnabled = true; + this.CB_P8.Location = new System.Drawing.Point(388, 263); + this.CB_P8.Name = "CB_P8"; + this.CB_P8.Size = new System.Drawing.Size(121, 21); + this.CB_P8.TabIndex = 111; + // + // CB_I8 + // + this.CB_I8.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_I8.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_I8.FormattingEnabled = true; + this.CB_I8.Location = new System.Drawing.Point(281, 263); + this.CB_I8.Name = "CB_I8"; + this.CB_I8.Size = new System.Drawing.Size(101, 21); + this.CB_I8.TabIndex = 110; + this.CB_I8.SelectedIndexChanged += new System.EventHandler(this.ChangeInto); + // + // label7 + // + this.label7.Location = new System.Drawing.Point(13, 262); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(60, 20); + this.label7.TabIndex = 109; + this.label7.Text = "Method 8:"; + this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_M8 + // + this.CB_M8.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_M8.DropDownWidth = 200; + this.CB_M8.FormattingEnabled = true; + this.CB_M8.Location = new System.Drawing.Point(125, 263); + this.CB_M8.MaxDropDownItems = 10; + this.CB_M8.Name = "CB_M8"; + this.CB_M8.Size = new System.Drawing.Size(150, 21); + this.CB_M8.TabIndex = 108; + this.CB_M8.SelectedIndexChanged += new System.EventHandler(this.ChangeMethod); + // + // B_Trade + // + this.B_Trade.Location = new System.Drawing.Point(468, 347); + this.B_Trade.Name = "B_Trade"; + this.B_Trade.Size = new System.Drawing.Size(143, 23); + this.B_Trade.TabIndex = 115; + this.B_Trade.Text = "Remove Trade Evolutions"; + this.B_Trade.UseVisualStyleBackColor = true; + this.B_Trade.Click += new System.EventHandler(this.B_Trade_Click); + // + // B_EveryLevel + // + this.B_EveryLevel.Location = new System.Drawing.Point(446, 370); + this.B_EveryLevel.Name = "B_EveryLevel"; + this.B_EveryLevel.Size = new System.Drawing.Size(165, 23); + this.B_EveryLevel.TabIndex = 118; + this.B_EveryLevel.Text = "Random Evolution Every Level"; + this.B_EveryLevel.UseVisualStyleBackColor = true; + this.B_EveryLevel.Click += new System.EventHandler(this.B_EveryLevel_Click); + // + // CHK_E + // + this.CHK_E.AutoSize = true; + this.CHK_E.Location = new System.Drawing.Point(6, 83); + this.CHK_E.Name = "CHK_E"; + this.CHK_E.Size = new System.Drawing.Size(98, 17); + this.CHK_E.TabIndex = 480; + this.CHK_E.Text = "Event Legends"; + this.CHK_E.UseVisualStyleBackColor = true; + // + // CHK_L + // + this.CHK_L.AutoSize = true; + this.CHK_L.Location = new System.Drawing.Point(6, 68); + this.CHK_L.Name = "CHK_L"; + this.CHK_L.Size = new System.Drawing.Size(98, 17); + this.CHK_L.TabIndex = 479; + this.CHK_L.Text = "Game Legends"; + this.CHK_L.UseVisualStyleBackColor = true; + // + // EvolutionEditor7 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(624, 406); + this.Controls.Add(this.B_EveryLevel); + this.Controls.Add(this.B_Trade); + this.Controls.Add(this.NUD_L8); + this.Controls.Add(this.NUD_F8); + this.Controls.Add(this.PB_8); + this.Controls.Add(this.CB_P8); + this.Controls.Add(this.B_RandAll); + this.Controls.Add(this.CB_I8); + this.Controls.Add(this.label7); + this.Controls.Add(this.CB_M8); + this.Controls.Add(this.NUD_L7); + this.Controls.Add(this.NUD_F7); + this.Controls.Add(this.PB_7); + this.Controls.Add(this.CB_P7); + this.Controls.Add(this.CB_I7); + this.Controls.Add(this.label6); + this.Controls.Add(this.CB_M7); + this.Controls.Add(this.NUD_L6); + this.Controls.Add(this.NUD_F6); + this.Controls.Add(this.PB_6); + this.Controls.Add(this.CB_P6); + this.Controls.Add(this.CB_I6); + this.Controls.Add(this.label5); + this.Controls.Add(this.CB_M6); + this.Controls.Add(this.NUD_L5); + this.Controls.Add(this.NUD_F5); + this.Controls.Add(this.PB_5); + this.Controls.Add(this.CB_P5); + this.Controls.Add(this.CB_I5); + this.Controls.Add(this.label4); + this.Controls.Add(this.CB_M5); + this.Controls.Add(this.NUD_L4); + this.Controls.Add(this.NUD_F4); + this.Controls.Add(this.PB_4); + this.Controls.Add(this.CB_P4); + this.Controls.Add(this.CB_I4); + this.Controls.Add(this.label3); + this.Controls.Add(this.CB_M4); + this.Controls.Add(this.NUD_L3); + this.Controls.Add(this.NUD_F3); + this.Controls.Add(this.PB_3); + this.Controls.Add(this.CB_P3); + this.Controls.Add(this.CB_I3); + this.Controls.Add(this.label2); + this.Controls.Add(this.CB_M3); + this.Controls.Add(this.NUD_L2); + this.Controls.Add(this.NUD_F2); + this.Controls.Add(this.PB_2); + this.Controls.Add(this.CB_P2); + this.Controls.Add(this.CB_I2); + this.Controls.Add(this.label1); + this.Controls.Add(this.CB_M2); + this.Controls.Add(this.NUD_L1); + this.Controls.Add(this.NUD_F1); + this.Controls.Add(this.GB_Randomizer); + this.Controls.Add(this.PB_1); + this.Controls.Add(this.CB_P1); + this.Controls.Add(this.CB_I1); + this.Controls.Add(this.L_M1); + this.Controls.Add(this.CB_M1); + this.Controls.Add(this.B_Dump); + this.Controls.Add(this.L_Species); + this.Controls.Add(this.CB_Species); + this.MaximizeBox = false; + this.MaximumSize = new System.Drawing.Size(640, 445); + this.MinimumSize = new System.Drawing.Size(640, 445); + this.Name = "EvolutionEditor7"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Evolution Editor"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form_Closing); + ((System.ComponentModel.ISupportInitialize)(this.PB_1)).EndInit(); + this.GB_Randomizer.ResumeLayout(false); + this.GB_Randomizer.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_F1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_L1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_L2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_F2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_L3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_F3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_L4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_F4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_L5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_F5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_L6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_F6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_L7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_F7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_L8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_F8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_8)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.ComboBox CB_Species; + private System.Windows.Forms.Label L_Species; + private System.Windows.Forms.Button B_Dump; + private System.Windows.Forms.ComboBox CB_M1; + private System.Windows.Forms.Label L_M1; + private System.Windows.Forms.ComboBox CB_I1; + private System.Windows.Forms.ComboBox CB_P1; + private System.Windows.Forms.PictureBox PB_1; + private System.Windows.Forms.Button B_RandAll; + private System.Windows.Forms.GroupBox GB_Randomizer; + private System.Windows.Forms.CheckBox CHK_Exp; + private System.Windows.Forms.CheckBox CHK_Type; + private System.Windows.Forms.CheckBox CHK_BST; + private System.Windows.Forms.Label L_Protip; + private System.Windows.Forms.NumericUpDown NUD_F1; + private System.Windows.Forms.NumericUpDown NUD_L1; + private System.Windows.Forms.NumericUpDown NUD_L2; + private System.Windows.Forms.NumericUpDown NUD_F2; + private System.Windows.Forms.PictureBox PB_2; + private System.Windows.Forms.ComboBox CB_P2; + private System.Windows.Forms.ComboBox CB_I2; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.ComboBox CB_M2; + private System.Windows.Forms.NumericUpDown NUD_L3; + private System.Windows.Forms.NumericUpDown NUD_F3; + private System.Windows.Forms.PictureBox PB_3; + private System.Windows.Forms.ComboBox CB_P3; + private System.Windows.Forms.ComboBox CB_I3; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.ComboBox CB_M3; + private System.Windows.Forms.NumericUpDown NUD_L4; + private System.Windows.Forms.NumericUpDown NUD_F4; + private System.Windows.Forms.PictureBox PB_4; + private System.Windows.Forms.ComboBox CB_P4; + private System.Windows.Forms.ComboBox CB_I4; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.ComboBox CB_M4; + private System.Windows.Forms.NumericUpDown NUD_L5; + private System.Windows.Forms.NumericUpDown NUD_F5; + private System.Windows.Forms.PictureBox PB_5; + private System.Windows.Forms.ComboBox CB_P5; + private System.Windows.Forms.ComboBox CB_I5; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.ComboBox CB_M5; + private System.Windows.Forms.NumericUpDown NUD_L6; + private System.Windows.Forms.NumericUpDown NUD_F6; + private System.Windows.Forms.PictureBox PB_6; + private System.Windows.Forms.ComboBox CB_P6; + private System.Windows.Forms.ComboBox CB_I6; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.ComboBox CB_M6; + private System.Windows.Forms.NumericUpDown NUD_L7; + private System.Windows.Forms.NumericUpDown NUD_F7; + private System.Windows.Forms.PictureBox PB_7; + private System.Windows.Forms.ComboBox CB_P7; + private System.Windows.Forms.ComboBox CB_I7; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.ComboBox CB_M7; + private System.Windows.Forms.NumericUpDown NUD_L8; + private System.Windows.Forms.NumericUpDown NUD_F8; + private System.Windows.Forms.PictureBox PB_8; + private System.Windows.Forms.ComboBox CB_P8; + private System.Windows.Forms.ComboBox CB_I8; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.ComboBox CB_M8; + private System.Windows.Forms.Button B_Trade; + private System.Windows.Forms.Button B_EveryLevel; + private System.Windows.Forms.CheckBox CHK_E; + private System.Windows.Forms.CheckBox CHK_L; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen7/EvolutionEditor7.cs b/pk3DS.WinForms/Subforms/Gen7/EvolutionEditor7.cs new file mode 100644 index 0000000000..f673605afd --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen7/EvolutionEditor7.cs @@ -0,0 +1,336 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Media; +using System.Text; +using System.Windows.Forms; + +using pk3DS.Core; +using pk3DS.Core.Randomizers; +using pk3DS.Core.Structures; + +namespace pk3DS.WinForms; + +public partial class EvolutionEditor7 : Form +{ + public EvolutionEditor7(byte[][] infiles) + { + files = infiles; + InitializeComponent(); + + specieslist[0] = movelist[0] = itemlist[0] = ""; + Array.Resize(ref specieslist, Main.Config.MaxSpeciesID + 1); + string[][] AltForms = Main.Config.Personal.GetFormList(specieslist, Main.Config.MaxSpeciesID); + specieslist = Main.Config.Personal.GetPersonalEntryList(AltForms, specieslist, Main.Config.MaxSpeciesID, out baseForms, out formVal); + + string[] evolutionMethods = + [ + "", + "Level Up with Friendship", + "Level Up at Morning with Friendship", + "Level Up at Night with Friendship", + "Level Up", + "Trade", + "Trade with Held Item", + $"Trade for opposite {specieslist[588]}/{specieslist[616]}", // Shelmet&Karrablast + "Used Item", + "Level Up (Attack > Defense)", + "Level Up (Attack = Defense)", + "Level Up (Attack < Defense)", + "Level Up (Random < 5)", + "Level Up (Random > 5)", + $"Level Up ({specieslist[291]})", // Ninjask + $"Level Up ({specieslist[292]})", // Shedinja + "Level Up (Beauty)", + "Used Item (Male)", // Kirlia->Gallade + "Used Item (Female)", // Snorunt->Froslass + "Level Up with Held Item (Day)", + "Level Up with Held Item (Night)", + "Level Up with Move", + "Level Up with Party", + "Level Up Male", + "Level Up Female", + "Level Up at Electric", + "Level Up at Forest", + "Level Up at Cold", + "Level Up with 3DS Upside Down", + "Level Up with 50 Affection + MoveType", + $"{typelist[16]} Type in Party", + "Overworld Rain", + "Level Up (@) at Morning", + "Level Up (@) at Night", + "Level Up Female (SetForm 1)", + "UNUSED", + "Level Up Any Time on Version", + "Level Up Daytime on Version", + "Level Up Nighttime on Version", + "Level Up Summit", + ]; + + var evos = new List(evolutionMethods); + if (Main.Config.USUM) + { + evos.AddRange([ + "Level Up (@) Dusk", // 40 + "Level Up (Wormhole)", // 41 + "Used Item (Wormhole)", // 42 + ]); + } + + mb = [CB_M1, CB_M2, CB_M3, CB_M4, CB_M5, CB_M6, CB_M7, CB_M8]; + pb = [CB_P1, CB_P2, CB_P3, CB_P4, CB_P5, CB_P6, CB_P7, CB_P8]; + rb = [CB_I1, CB_I2, CB_I3, CB_I4, CB_I5, CB_I6, CB_I7, CB_I8]; + fb = [NUD_F1, NUD_F2, NUD_F3, NUD_F4, NUD_F5, NUD_F6, NUD_F7, NUD_F8]; + lb = [NUD_L1, NUD_L2, NUD_L3, NUD_L4, NUD_L5, NUD_L6, NUD_L7, NUD_L8]; + pic = [PB_1, PB_2, PB_3, PB_4, PB_5, PB_6, PB_7, PB_8]; + + maxEvoMethod = evos.Count; + foreach (ComboBox cb in mb) { cb.Items.AddRange(evos.ToArray()); } + foreach (ComboBox cb in rb) { cb.Items.AddRange(specieslist.Take(Main.Config.MaxSpeciesID + 1).ToArray()); } + + CB_Species.Items.Clear(); + CB_Species.Items.AddRange(specieslist); + + CB_Species.SelectedIndex = 1; + RandSettings.GetFormSettings(this, GB_Randomizer.Controls); + } + + private readonly byte[][] files; + private readonly ComboBox[] pb, mb, rb; + private readonly NumericUpDown[] fb, lb; + private readonly PictureBox[] pic; + private int entry = -1; + private readonly string[] specieslist = Main.Config.GetText(TextName.SpeciesNames); + private readonly string[] movelist = Main.Config.GetText(TextName.MoveNames); + private readonly string[] itemlist = Main.Config.GetText(TextName.ItemNames); + private readonly string[] typelist = Main.Config.GetText(TextName.Types); + private bool dumping, loading; + private readonly int[] baseForms, formVal; + private EvolutionSet7 evo = new(new byte[EvolutionSet7.SIZE]); + private readonly int maxEvoMethod; + + private void GetList() + { + entry = Array.IndexOf(specieslist, CB_Species.Text); + byte[] input = files[entry]; + if (input.Length != EvolutionSet7.SIZE) return; // error + evo = new EvolutionSet7(input); + + for (int i = 0; i < evo.PossibleEvolutions.Length; i++) + { + if (evo.PossibleEvolutions[i].Method > maxEvoMethod) + return; // Invalid! + + loading = true; + fb[i].Value = evo.PossibleEvolutions[i].Form; + lb[i].Value = evo.PossibleEvolutions[i].Level; + mb[i].SelectedIndex = evo.PossibleEvolutions[i].Method; // Which will trigger the params cb to reload the valid params list + pb[i].SelectedIndex = evo.PossibleEvolutions[i].Argument; + rb[i].SelectedIndex = evo.PossibleEvolutions[i].Species; // Triggers sprite to reload + loading = false; + ChangeInto(rb[i], null); // refresh sprite + } + } + + private void SetList() + { + if (entry < 1 || dumping) return; + + for (int i = 0; i < 8; i++) + { + evo.PossibleEvolutions[i].Species = rb[i].SelectedIndex; + evo.PossibleEvolutions[i].Method = mb[i].SelectedIndex; + evo.PossibleEvolutions[i].Argument = pb[i].SelectedIndex; + evo.PossibleEvolutions[i].Form = (sbyte)fb[i].Value; + evo.PossibleEvolutions[i].Level = (int)lb[i].Value; + } + files[entry] = evo.Write(); + } + + private void ChangeEntry(object sender, EventArgs e) + { + SetList(); + GetList(); + } + + private void B_RandAll_Click(object sender, EventArgs e) + { + if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomize all resulting species?", "Evolution methods and parameters will stay the same.")) + return; + + SetList(); + // Set up advanced randomization options + var evos = files.Select(z => new EvolutionSet7(z)).ToArray(); + var evoRand = new EvolutionRandomizer(Main.Config, evos) + { + Randomizer = + { + rBST = CHK_BST.Checked, + rEXP = CHK_Exp.Checked, + rType = CHK_Type.Checked, + L = CHK_L.Checked, + E = CHK_E.Checked, + }, + }; + evoRand.Randomizer.Initialize(); + evoRand.Execute(); + evos.Select(z => z.Write()).ToArray().CopyTo(files, 0); + GetList(); + + WinFormsUtil.Alert("All Pokémon's Evolutions have been randomized!"); + } + + private void B_Trade_Click(object sender, EventArgs e) + { + if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Remove all trade evolutions?", "Evolution methods will be altered so that evolutions will be possible with only one game.")) + return; + + SetList(); + var evos = files.Select(z => new EvolutionSet7(z)).ToArray(); + var evoRand = new EvolutionRandomizer(Main.Config, evos); + evoRand.Randomizer.Initialize(); + evoRand.ExecuteTrade(); + evos.Select(z => z.Write()).ToArray().CopyTo(files, 0); + GetList(); + + WinFormsUtil.Alert("All trade evolutions have been removed!", "Trade evolutions will now occur after reaching a certain Level, or after leveling up while holding its appropriate trade item."); + } + + private void B_EveryLevel_Click(object sender, EventArgs e) + { + if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Modify evolutions?", "This will make it to where your Pokémon will evolve into something random every time it levels up.")) + return; + + SetList(); + var evos = files.Select(z => new EvolutionSet7(z)).ToArray(); + var evoRand = new EvolutionRandomizer(Main.Config, evos) + { + Randomizer = + { + rBST = CHK_BST.Checked, + rEXP = CHK_Exp.Checked, + rType = CHK_Type.Checked, + L = CHK_L.Checked, + E = CHK_E.Checked, + }, + }; + evoRand.Randomizer.Initialize(); + evoRand.ExecuteEvolveEveryLevel(); + evoRand.Execute(); // randomize right after + evos.Select(z => z.Write()).ToArray().CopyTo(files, 0); + GetList(); + SystemSounds.Asterisk.Play(); + } + + private void B_Dump_Click(object sender, EventArgs e) + { + if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Dump all Evolutions to Text File?")) + return; + + dumping = true; + string result = ""; + for (int i = 0; i < CB_Species.Items.Count; i++) + { + CB_Species.Text = specieslist[i]; // Get new Species + result += "======" + Environment.NewLine + entry + " " + CB_Species.Text + Environment.NewLine + "======" + Environment.NewLine; + for (int j = 0; j < 8; j++) + { + int methodval = mb[j].SelectedIndex; + // int param = pb[j].SelectedIndex; + int poke = rb[j].SelectedIndex; + if (poke > 0 && methodval > 0) + { + string species = rb[j].Text; + int bf = formVal[entry]; + string param = pb[j].Visible ? " [" + pb[j].Text + "]" : ""; + if (lb[j].Value > 0) + param += $"@ level {lb[j].Value}"; + string method = mb[j].Text; + int f = fb[j].Value == -1 ? bf : (int)fb[j].Value; + string form = f == 0 ? "" : "-" + f; + + result += $"{method} {param} into {species}{form}".Replace(" ", " ") + Environment.NewLine; + } + } + + result += Environment.NewLine; + } + var sfd = new SaveFileDialog { FileName = "Evolutions.txt", Filter = "Text File|*.txt" }; + + SystemSounds.Asterisk.Play(); + if (sfd.ShowDialog() == DialogResult.OK) + { + string path = sfd.FileName; + File.WriteAllText(path, result, Encoding.Unicode); + } + dumping = false; + } + + private void Form_Closing(object sender, FormClosingEventArgs e) + { + SetList(); + RandSettings.SetFormSettings(this, GB_Randomizer.Controls); + } + + private void ChangeMethod(object sender, EventArgs e) + { + int op = Array.IndexOf(mb, sender as ComboBox); + ushort[] methodCase = + [ + 0,0,0,0,1,0,2,0,2,1,1,1,1,1,1,1,5,2,2,2,2,3,4,1,1,0,0,0, // 27, Past Methods + // New Methods + 1, // 28 - Dark Type Party + 6, // 29 - Affection + MoveType + 1, // 30 - UpsideDown 3DS + 1, // 31 - Overworld Rain + 1, // 32 - Level @ Day + 1, // 33 - Level @ Night + 1, // 34 - Gender Branch + 1, // 35 - UNUSED + 7, 7, 7, // Version Specific + 1, + 1, // 40 - Level Up with Condition (???) + 1, // 41 - Level Up with Condition (???) + 2, // 42 - Use Item with Condition (???) + ]; + + pb[op].Visible = pic[op].Visible = rb[op].Visible = fb[op].Visible = lb[op].Visible = mb[op].SelectedIndex > 0; + + pb[op].Items.Clear(); + int cv = methodCase[mb[op].SelectedIndex]; + switch (cv) + { + case 0: // No Parameter Required + { pb[op].Visible = false; pb[op].Items.Add(""); break; } + case 1: // Level + { pb[op].Visible = false; pb[op].Items.Add(""); break; } + case 2: // Items + { pb[op].Items.AddRange(itemlist); break; } + case 3: // Moves + { pb[op].Items.AddRange(movelist); break; } + case 4: // Species + { pb[op].Items.AddRange(specieslist); break; } + case 5: // 0-255 (Beauty) + { for (int i = 0; i <= 255; i++) pb[op].Items.Add(i.ToString()); break; } + case 6: + { pb[op].Items.AddRange(typelist); break; } + case 7: // Version + { for (int i = 0; i <= 255; i++) pb[op].Items.Add(i.ToString()); break; } + } + pb[op].SelectedIndex = 0; + } + + private void ChangeInto(object sender, EventArgs e) + { + if (loading || dumping) + return; + int index = sender is ComboBox ? Array.IndexOf(rb, sender) : Array.IndexOf(fb, sender); + int species = Array.IndexOf(specieslist, rb[index].Text); + int form = (int)fb[index].Value; + if (form == -1) + form = baseForms[species]; + + pic[index].Image = WinFormsUtil.GetSprite(species, form, 0, 0, Main.Config); + } +} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/EvolutionEditor7.resx b/pk3DS.WinForms/Subforms/Gen7/EvolutionEditor7.resx similarity index 100% rename from pk3DS/Subforms/Gen7/EvolutionEditor7.resx rename to pk3DS.WinForms/Subforms/Gen7/EvolutionEditor7.resx diff --git a/pk3DS.WinForms/Subforms/Gen7/Experimental/OWSE7.Designer.cs b/pk3DS.WinForms/Subforms/Gen7/Experimental/OWSE7.Designer.cs new file mode 100644 index 0000000000..4d6b073afe --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen7/Experimental/OWSE7.Designer.cs @@ -0,0 +1,286 @@ +namespace pk3DS.WinForms; + +partial class OWSE7 +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.L_Location = new System.Windows.Forms.Label(); + this.CB_LocationID = new System.Windows.Forms.ComboBox(); + this.tabControl1 = new System.Windows.Forms.TabControl(); + this.tab_7_ZS = new System.Windows.Forms.TabPage(); + this.RTB_7_Parse = new System.Windows.Forms.RichTextBox(); + this.NUD_7_Count = new System.Windows.Forms.NumericUpDown(); + this.L_7_Count = new System.Windows.Forms.Label(); + this.RTB_7_Script = new System.Windows.Forms.RichTextBox(); + this.RTB_7_Raw = new System.Windows.Forms.RichTextBox(); + this.tab_8_ZI = new System.Windows.Forms.TabPage(); + this.RTB_8_Parse = new System.Windows.Forms.RichTextBox(); + this.NUD_8_Count = new System.Windows.Forms.NumericUpDown(); + this.L_8_Count = new System.Windows.Forms.Label(); + this.RTB_8_Script = new System.Windows.Forms.RichTextBox(); + this.RTB_8_Raw = new System.Windows.Forms.RichTextBox(); + this.L_7_Info = new System.Windows.Forms.Label(); + this.L_8_Info = new System.Windows.Forms.Label(); + this.tabControl1.SuspendLayout(); + this.tab_7_ZS.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_7_Count)).BeginInit(); + this.tab_8_ZI.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_8_Count)).BeginInit(); + this.SuspendLayout(); + // + // L_Location + // + this.L_Location.AutoSize = true; + this.L_Location.Location = new System.Drawing.Point(12, 9); + this.L_Location.Name = "L_Location"; + this.L_Location.Size = new System.Drawing.Size(28, 13); + this.L_Location.TabIndex = 433; + this.L_Location.Text = "Loc:"; + // + // CB_LocationID + // + this.CB_LocationID.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_LocationID.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_LocationID.FormattingEnabled = true; + this.CB_LocationID.Location = new System.Drawing.Point(46, 6); + this.CB_LocationID.Name = "CB_LocationID"; + this.CB_LocationID.Size = new System.Drawing.Size(164, 21); + this.CB_LocationID.TabIndex = 432; + this.CB_LocationID.SelectedIndexChanged += new System.EventHandler(this.CB_LocationID_SelectedIndexChanged); + // + // tabControl1 + // + this.tabControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tabControl1.Controls.Add(this.tab_7_ZS); + this.tabControl1.Controls.Add(this.tab_8_ZI); + this.tabControl1.Location = new System.Drawing.Point(15, 33); + this.tabControl1.Name = "tabControl1"; + this.tabControl1.SelectedIndex = 0; + this.tabControl1.Size = new System.Drawing.Size(460, 466); + this.tabControl1.TabIndex = 434; + // + // tab_7_ZS + // + this.tab_7_ZS.Controls.Add(this.L_7_Info); + this.tab_7_ZS.Controls.Add(this.RTB_7_Parse); + this.tab_7_ZS.Controls.Add(this.NUD_7_Count); + this.tab_7_ZS.Controls.Add(this.L_7_Count); + this.tab_7_ZS.Controls.Add(this.RTB_7_Script); + this.tab_7_ZS.Controls.Add(this.RTB_7_Raw); + this.tab_7_ZS.Location = new System.Drawing.Point(4, 22); + this.tab_7_ZS.Name = "tab_7_ZS"; + this.tab_7_ZS.Padding = new System.Windows.Forms.Padding(3); + this.tab_7_ZS.Size = new System.Drawing.Size(452, 440); + this.tab_7_ZS.TabIndex = 0; + this.tab_7_ZS.Text = "7.ZS"; + this.tab_7_ZS.UseVisualStyleBackColor = true; + // + // RTB_7_Parse + // + this.RTB_7_Parse.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.RTB_7_Parse.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.RTB_7_Parse.Location = new System.Drawing.Point(208, 207); + this.RTB_7_Parse.Name = "RTB_7_Parse"; + this.RTB_7_Parse.ReadOnly = true; + this.RTB_7_Parse.Size = new System.Drawing.Size(238, 225); + this.RTB_7_Parse.TabIndex = 437; + this.RTB_7_Parse.Text = "Script CMDs"; + // + // NUD_7_Count + // + this.NUD_7_Count.Location = new System.Drawing.Point(140, 223); + this.NUD_7_Count.Name = "NUD_7_Count"; + this.NUD_7_Count.Size = new System.Drawing.Size(62, 20); + this.NUD_7_Count.TabIndex = 436; + this.NUD_7_Count.ValueChanged += new System.EventHandler(this.NUD_7_Count_ValueChanged); + // + // L_7_Count + // + this.L_7_Count.AutoSize = true; + this.L_7_Count.Location = new System.Drawing.Point(137, 207); + this.L_7_Count.Name = "L_7_Count"; + this.L_7_Count.Size = new System.Drawing.Size(41, 13); + this.L_7_Count.TabIndex = 435; + this.L_7_Count.Text = "Count7"; + // + // RTB_7_Script + // + this.RTB_7_Script.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.RTB_7_Script.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.RTB_7_Script.Location = new System.Drawing.Point(6, 207); + this.RTB_7_Script.Name = "RTB_7_Script"; + this.RTB_7_Script.ReadOnly = true; + this.RTB_7_Script.Size = new System.Drawing.Size(125, 225); + this.RTB_7_Script.TabIndex = 431; + this.RTB_7_Script.Text = "Script CMDs"; + // + // RTB_7_Raw + // + this.RTB_7_Raw.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.RTB_7_Raw.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.RTB_7_Raw.Location = new System.Drawing.Point(6, 6); + this.RTB_7_Raw.Name = "RTB_7_Raw"; + this.RTB_7_Raw.ReadOnly = true; + this.RTB_7_Raw.Size = new System.Drawing.Size(440, 195); + this.RTB_7_Raw.TabIndex = 430; + this.RTB_7_Raw.Text = "Raw Data"; + // + // tab_8_ZI + // + this.tab_8_ZI.Controls.Add(this.L_8_Info); + this.tab_8_ZI.Controls.Add(this.RTB_8_Parse); + this.tab_8_ZI.Controls.Add(this.NUD_8_Count); + this.tab_8_ZI.Controls.Add(this.L_8_Count); + this.tab_8_ZI.Controls.Add(this.RTB_8_Script); + this.tab_8_ZI.Controls.Add(this.RTB_8_Raw); + this.tab_8_ZI.Location = new System.Drawing.Point(4, 22); + this.tab_8_ZI.Name = "tab_8_ZI"; + this.tab_8_ZI.Padding = new System.Windows.Forms.Padding(3); + this.tab_8_ZI.Size = new System.Drawing.Size(452, 440); + this.tab_8_ZI.TabIndex = 1; + this.tab_8_ZI.Text = "8.ZI"; + this.tab_8_ZI.UseVisualStyleBackColor = true; + // + // RTB_8_Parse + // + this.RTB_8_Parse.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.RTB_8_Parse.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.RTB_8_Parse.Location = new System.Drawing.Point(208, 207); + this.RTB_8_Parse.Name = "RTB_8_Parse"; + this.RTB_8_Parse.ReadOnly = true; + this.RTB_8_Parse.Size = new System.Drawing.Size(238, 225); + this.RTB_8_Parse.TabIndex = 438; + this.RTB_8_Parse.Text = "Script CMDs"; + // + // NUD_8_Count + // + this.NUD_8_Count.Location = new System.Drawing.Point(140, 223); + this.NUD_8_Count.Name = "NUD_8_Count"; + this.NUD_8_Count.Size = new System.Drawing.Size(62, 20); + this.NUD_8_Count.TabIndex = 435; + this.NUD_8_Count.ValueChanged += new System.EventHandler(this.NUD_8_Count_ValueChanged); + // + // L_8_Count + // + this.L_8_Count.AutoSize = true; + this.L_8_Count.Location = new System.Drawing.Point(137, 207); + this.L_8_Count.Name = "L_8_Count"; + this.L_8_Count.Size = new System.Drawing.Size(41, 13); + this.L_8_Count.TabIndex = 434; + this.L_8_Count.Text = "Count8"; + // + // RTB_8_Script + // + this.RTB_8_Script.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.RTB_8_Script.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.RTB_8_Script.Location = new System.Drawing.Point(6, 207); + this.RTB_8_Script.Name = "RTB_8_Script"; + this.RTB_8_Script.ReadOnly = true; + this.RTB_8_Script.Size = new System.Drawing.Size(125, 225); + this.RTB_8_Script.TabIndex = 433; + this.RTB_8_Script.Text = "Script CMDs"; + // + // RTB_8_Raw + // + this.RTB_8_Raw.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.RTB_8_Raw.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.RTB_8_Raw.Location = new System.Drawing.Point(6, 6); + this.RTB_8_Raw.Name = "RTB_8_Raw"; + this.RTB_8_Raw.ReadOnly = true; + this.RTB_8_Raw.Size = new System.Drawing.Size(440, 195); + this.RTB_8_Raw.TabIndex = 432; + this.RTB_8_Raw.Text = "Raw Data"; + // + // L_7_Info + // + this.L_7_Info.AutoSize = true; + this.L_7_Info.Location = new System.Drawing.Point(137, 246); + this.L_7_Info.Name = "L_7_Info"; + this.L_7_Info.Size = new System.Drawing.Size(41, 13); + this.L_7_Info.TabIndex = 438; + this.L_7_Info.Text = "Count7"; + // + // L_8_Info + // + this.L_8_Info.AutoSize = true; + this.L_8_Info.Location = new System.Drawing.Point(137, 246); + this.L_8_Info.Name = "L_8_Info"; + this.L_8_Info.Size = new System.Drawing.Size(41, 13); + this.L_8_Info.TabIndex = 439; + this.L_8_Info.Text = "Count8"; + // + // OWSE7 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(484, 511); + this.Controls.Add(this.tabControl1); + this.Controls.Add(this.L_Location); + this.Controls.Add(this.CB_LocationID); + this.Name = "OWSE7"; + this.Text = "OWSE7"; + this.tabControl1.ResumeLayout(false); + this.tab_7_ZS.ResumeLayout(false); + this.tab_7_ZS.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_7_Count)).EndInit(); + this.tab_8_ZI.ResumeLayout(false); + this.tab_8_ZI.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_8_Count)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + private System.Windows.Forms.Label L_Location; + private System.Windows.Forms.ComboBox CB_LocationID; + private System.Windows.Forms.TabControl tabControl1; + private System.Windows.Forms.TabPage tab_7_ZS; + private System.Windows.Forms.TabPage tab_8_ZI; + private System.Windows.Forms.RichTextBox RTB_7_Script; + private System.Windows.Forms.RichTextBox RTB_7_Raw; + private System.Windows.Forms.RichTextBox RTB_8_Script; + private System.Windows.Forms.RichTextBox RTB_8_Raw; + private System.Windows.Forms.Label L_8_Count; + private System.Windows.Forms.Label L_7_Count; + private System.Windows.Forms.NumericUpDown NUD_8_Count; + private System.Windows.Forms.NumericUpDown NUD_7_Count; + private System.Windows.Forms.RichTextBox RTB_7_Parse; + private System.Windows.Forms.RichTextBox RTB_8_Parse; + private System.Windows.Forms.Label L_7_Info; + private System.Windows.Forms.Label L_8_Info; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen7/Experimental/OWSE7.cs b/pk3DS.WinForms/Subforms/Gen7/Experimental/OWSE7.cs new file mode 100644 index 0000000000..0356c3ab72 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen7/Experimental/OWSE7.cs @@ -0,0 +1,175 @@ +using System; +using System.Linq; +using System.Windows.Forms; + +using pk3DS.Core; +using pk3DS.Core.CTR; +using pk3DS.Core.Structures; + +namespace pk3DS.WinForms; + +public partial class OWSE7 : Form +{ + private readonly LazyGARCFile EncounterData; + //private readonly LazyGARCFile WorldData; + // private readonly LazyGARCFile ZoneData; + + public OWSE7(LazyGARCFile ed, LazyGARCFile zd) + { + EncounterData = ed; + var ZoneData = zd; + //WorldData = wd; + + locationList = Main.Config.GetText(TextName.metlist_000000); + locationList = SMWE.GetGoodLocationList(locationList); + + InitializeComponent(); + + var zdFiles = ZoneData.Files; + zoneData = zdFiles[0]; + //worldData = zdFiles[1]; + LoadData(); + } + + private readonly byte[] zoneData; + //private readonly byte[] worldData; + private readonly string[] locationList; + + private void LoadData() + { + // get zonedata array + var zd = ZoneData7.GetArray(zoneData); + + string[] locations = zd.Select((z, i) => $"{i:000} - {locationList[z.ParentMap]}").ToArray(); + CB_LocationID.Items.AddRange(locations); + CB_LocationID.SelectedIndex = 0; + } + + private void CB_LocationID_SelectedIndexChanged(object sender, EventArgs e) + { + SetEntry(); + entry = CB_LocationID.SelectedIndex; + GetEntry(); + } + + private int entry = -1; + + private void SetEntry() + { + if (entry < 0) + return; + + Console.WriteLine($"Setting {CB_LocationID.Text}"); + // research only, no set + } + + private bool loading; + private World Map; + + private void GetEntry() + { + Console.WriteLine($"Loading {CB_LocationID.Text}"); + int index = entry * 11; + // 00 - ED (???) + // 01 - BG (???) + // 02 - TR (???) + // 03 - AC (???) + // 04 - AS (???) + // 05 - ??? + // 06 - AE (Area Environment) + // 07 - ZS (Zone Script) + // 08 - ZI (Zone Info) + // 09 - EA (Encounter Area) + // 10 - BG (???) + + if (index > EncounterData.FileCount) + { + Console.WriteLine("Out of range."); + tabControl1.Visible = false; + return; + } + tabControl1.Visible = true; + + Map = new World(EncounterData, entry); + loading = true; + + NUD_7_Count.Maximum = Map.ZoneScripts.Length; + NUD_7_Count.Value = Math.Min(Map.ZoneScripts.Length, 1); + + NUD_8_Count.Maximum = Map.ZoneInfoScripts.Length; + NUD_8_Count.Value = Math.Min(Map.ZoneInfoScripts.Length, 1); + loading = false; + + NUD_7_Count_ValueChanged(NUD_7_Count, null); + NUD_8_Count_ValueChanged(NUD_8_Count, null); + } + + private class World + { + private readonly byte[][] _7; + private readonly byte[][] _8; + + private bool HasZS => _7 != null; + private bool HasZI => _8 != null; + public readonly Script[] ZoneScripts; + public readonly Script[] ZoneInfoScripts; + + public World(LazyGARCFile garc, int worldID) + { + int index = worldID * 11; + _7 = Mini.UnpackMini(garc[index + 7], "ZS"); + _8 = Mini.UnpackMini(garc[index + 8], "ZI"); + + ZoneScripts = HasZS ? _7.Select(arr => new Script(arr)).ToArray() : []; + ZoneInfoScripts = HasZI ? _8.Select(arr => new Script(arr)).ToArray() : []; + } + } + + private void NUD_7_Count_ValueChanged(object sender, EventArgs e) + { + if (loading) + return; + + bool vis = ((sender as NumericUpDown)?.Value ?? 0) != 0; + RTB_7_Raw.Visible = RTB_7_Script.Visible = L_7_Info.Visible = RTB_7_Parse.Visible = vis; + if (!vis) + return; + + var script = Map.ZoneScripts[(int)NUD_7_Count.Value - 1]; + L_7_Count.Text = $"Files: {Map.ZoneScripts.Length}"; + RTB_7_Raw.Lines = Scripts.GetHexLines(script.Raw, 16); + RTB_7_Script.Lines = Scripts.GetHexLines(script.DecompressedInstructions); + RTB_7_Parse.Lines = script.ParseScript; + + string[] lines = + [ + "Commands:" + Environment.NewLine + RTB_7_Script.Lines.Length, + "CBytes:" + Environment.NewLine + script.CompressedBytes.Length, + ]; + L_7_Info.Text = string.Join(Environment.NewLine, lines); + } + + private void NUD_8_Count_ValueChanged(object sender, EventArgs e) + { + if (loading) + return; + + bool vis = ((sender as NumericUpDown)?.Value ?? 0) != 0; + RTB_8_Raw.Visible = RTB_8_Script.Visible = L_8_Info.Visible = RTB_8_Parse.Visible = vis; + if (!vis) + return; + + var script = Map.ZoneInfoScripts[(int)NUD_8_Count.Value - 1]; + L_8_Count.Text = $"Files: {Map.ZoneInfoScripts.Length}"; + RTB_8_Raw.Lines = Scripts.GetHexLines(script.Raw, 16); + RTB_8_Script.Lines = Scripts.GetHexLines(script.DecompressedInstructions); + RTB_8_Parse.Lines = script.ParseScript; + + string[] lines = + [ + "Commands:" + Environment.NewLine + RTB_8_Script.Lines.Length, + "CBytes:" + Environment.NewLine + script.CompressedBytes.Length, + ]; + L_8_Info.Text = string.Join(Environment.NewLine, lines); + } +} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/Experimental/OWSE7.resx b/pk3DS.WinForms/Subforms/Gen7/Experimental/OWSE7.resx similarity index 100% rename from pk3DS/Subforms/Gen7/Experimental/OWSE7.resx rename to pk3DS.WinForms/Subforms/Gen7/Experimental/OWSE7.resx diff --git a/pk3DS.WinForms/Subforms/Gen7/ItemEditor7.Designer.cs b/pk3DS.WinForms/Subforms/Gen7/ItemEditor7.Designer.cs new file mode 100644 index 0000000000..645babb969 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen7/ItemEditor7.Designer.cs @@ -0,0 +1,132 @@ +namespace pk3DS.WinForms; + +partial class ItemEditor7 +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.CB_Item = new System.Windows.Forms.ComboBox(); + this.L_Item = new System.Windows.Forms.Label(); + this.RTB = new System.Windows.Forms.RichTextBox(); + this.L_Index = new System.Windows.Forms.Label(); + this.Grid = new System.Windows.Forms.PropertyGrid(); + this.B_Table = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // CB_Item + // + this.CB_Item.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_Item.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Item.DropDownWidth = 120; + this.CB_Item.FormattingEnabled = true; + this.CB_Item.Location = new System.Drawing.Point(71, 10); + this.CB_Item.Name = "CB_Item"; + this.CB_Item.Size = new System.Drawing.Size(144, 21); + this.CB_Item.TabIndex = 1; + this.CB_Item.SelectedIndexChanged += new System.EventHandler(this.ChangeEntry); + // + // L_Item + // + this.L_Item.Location = new System.Drawing.Point(12, 10); + this.L_Item.Name = "L_Item"; + this.L_Item.Size = new System.Drawing.Size(51, 21); + this.L_Item.TabIndex = 2; + this.L_Item.Text = "Item:"; + this.L_Item.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // RTB + // + this.RTB.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.RTB.Location = new System.Drawing.Point(11, 37); + this.RTB.Name = "RTB"; + this.RTB.ReadOnly = true; + this.RTB.Size = new System.Drawing.Size(316, 51); + this.RTB.TabIndex = 38; + this.RTB.Text = ""; + // + // L_Index + // + this.L_Index.AutoSize = true; + this.L_Index.Location = new System.Drawing.Point(221, 14); + this.L_Index.Name = "L_Index"; + this.L_Index.Size = new System.Drawing.Size(39, 13); + this.L_Index.TabIndex = 46; + this.L_Index.Text = "Index: "; + // + // Grid + // + this.Grid.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.Grid.LineColor = System.Drawing.SystemColors.ControlDark; + this.Grid.Location = new System.Drawing.Point(12, 94); + this.Grid.Name = "Grid"; + this.Grid.Size = new System.Drawing.Size(316, 280); + this.Grid.TabIndex = 47; + // + // B_Table + // + this.B_Table.Location = new System.Drawing.Point(253, 94); + this.B_Table.Name = "B_Table"; + this.B_Table.Size = new System.Drawing.Size(75, 23); + this.B_Table.TabIndex = 48; + this.B_Table.Text = "Export Table"; + this.B_Table.UseVisualStyleBackColor = true; + this.B_Table.Click += new System.EventHandler(this.B_Table_Click); + // + // ItemEditor7 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(339, 381); + this.Controls.Add(this.B_Table); + this.Controls.Add(this.Grid); + this.Controls.Add(this.L_Index); + this.Controls.Add(this.RTB); + this.Controls.Add(this.L_Item); + this.Controls.Add(this.CB_Item); + this.MaximizeBox = false; + this.MaximumSize = new System.Drawing.Size(355, 1000); + this.MinimumSize = new System.Drawing.Size(355, 420); + this.Name = "ItemEditor7"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Item Editor"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form_Closing); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.ComboBox CB_Item; + private System.Windows.Forms.Label L_Item; + private System.Windows.Forms.RichTextBox RTB; + private System.Windows.Forms.Label L_Index; + private System.Windows.Forms.PropertyGrid Grid; + private System.Windows.Forms.Button B_Table; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen7/ItemEditor7.cs b/pk3DS.WinForms/Subforms/Gen7/ItemEditor7.cs new file mode 100644 index 0000000000..5722a9c909 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen7/ItemEditor7.cs @@ -0,0 +1,87 @@ +using System; +using System.IO; +using System.Linq; +using System.Windows.Forms; + +using pk3DS.Core; +using pk3DS.Core.Structures; + +namespace pk3DS.WinForms; + +public partial class ItemEditor7 : Form +{ + public ItemEditor7(byte[][] infiles) + { + files = infiles; + itemlist[0] = ""; + + InitializeComponent(); + Setup(); + } + + private readonly byte[][] files; + private readonly string[] itemlist = Main.Config.GetText(TextName.ItemNames); + private readonly string[] itemflavor = Main.Config.GetText(TextName.ItemFlavor); + + private void Setup() + { + CB_Item.Items.AddRange(itemlist); + CB_Item.SelectedIndex = 1; + } + + private int entry = -1; + + private void ChangeEntry(object sender, EventArgs e) + { + SetEntry(); + entry = CB_Item.SelectedIndex; + L_Index.Text = $"Index: {entry:000}"; + GetEntry(); + } + + private void GetEntry() + { + if (entry < 1) return; + Grid.SelectedObject = new Item(files[entry]); + + RTB.Text = itemflavor[entry].Replace("\\n", Environment.NewLine); + } + + private void SetEntry() + { + if (entry < 1) return; + files[entry] = ((Item)Grid.SelectedObject).Write(); + } + + private void Form_Closing(object sender, FormClosingEventArgs e) + { + SetEntry(); + } + + private static readonly byte[] ItemIconTableSignature = + [ + 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x01, 0x00, + ]; + + public static int GetItemMapOffset() + { + if (Main.ExeFSPath == null) { WinFormsUtil.Alert("No exeFS code to load."); return -1; } + string[] exefsFiles = Directory.GetFiles(Main.ExeFSPath); + if (!File.Exists(exefsFiles[0]) || !Path.GetFileNameWithoutExtension(exefsFiles[0]).Contains("code")) { WinFormsUtil.Alert("No .code.bin detected."); return -1; } + byte[] data = File.ReadAllBytes(exefsFiles[0]); + + byte[] reference = ItemIconTableSignature; + + return Util.IndexOfBytes(data, reference, 0x400000, 0) - 2 + reference.Length; + } + + private void B_Table_Click(object sender, EventArgs e) + { + var items = files.Select(z => new Item(z)); + Clipboard.SetText(TableUtil.GetTable(items, itemlist)); + System.Media.SystemSounds.Asterisk.Play(); + } +} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/ItemEditor7.resx b/pk3DS.WinForms/Subforms/Gen7/ItemEditor7.resx similarity index 100% rename from pk3DS/Subforms/Gen7/ItemEditor7.resx rename to pk3DS.WinForms/Subforms/Gen7/ItemEditor7.resx diff --git a/pk3DS.WinForms/Subforms/Gen7/LevelUpEditor7.Designer.cs b/pk3DS.WinForms/Subforms/Gen7/LevelUpEditor7.Designer.cs new file mode 100644 index 0000000000..b0673393b8 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen7/LevelUpEditor7.Designer.cs @@ -0,0 +1,367 @@ +namespace pk3DS.WinForms; + +partial class LevelUpEditor7 +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.dgv = new System.Windows.Forms.DataGridView(); + this.CB_Species = new System.Windows.Forms.ComboBox(); + this.L_Species = new System.Windows.Forms.Label(); + this.B_RandAll = new System.Windows.Forms.Button(); + this.B_Dump = new System.Windows.Forms.Button(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.CHK_NoFixedDamage = new System.Windows.Forms.CheckBox(); + this.CHK_4MovesLvl1 = new System.Windows.Forms.CheckBox(); + this.L_Moves = new System.Windows.Forms.Label(); + this.NUD_Moves = new System.Windows.Forms.NumericUpDown(); + this.CHK_Expand = new System.Windows.Forms.CheckBox(); + this.L_Scale2 = new System.Windows.Forms.Label(); + this.NUD_Level = new System.Windows.Forms.NumericUpDown(); + this.L_Scale1 = new System.Windows.Forms.Label(); + this.CHK_Spread = new System.Windows.Forms.CheckBox(); + this.L_STAB = new System.Windows.Forms.Label(); + this.NUD_STAB = new System.Windows.Forms.NumericUpDown(); + this.CHK_STAB = new System.Windows.Forms.CheckBox(); + this.CHK_HMs = new System.Windows.Forms.CheckBox(); + this.PB_MonSprite = new System.Windows.Forms.PictureBox(); + this.B_Metronome = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.dgv)).BeginInit(); + this.groupBox1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Moves)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Level)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_STAB)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_MonSprite)).BeginInit(); + this.SuspendLayout(); + // + // dgv + // + this.dgv.AllowUserToResizeColumns = false; + this.dgv.AllowUserToResizeRows = false; + this.dgv.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dgv.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgv.Location = new System.Drawing.Point(4, 41); + this.dgv.Name = "dgv"; + this.dgv.Size = new System.Drawing.Size(282, 359); + this.dgv.TabIndex = 0; + // + // CB_Species + // + this.CB_Species.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Species.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Species.FormattingEnabled = true; + this.CB_Species.Location = new System.Drawing.Point(58, 12); + this.CB_Species.Name = "CB_Species"; + this.CB_Species.Size = new System.Drawing.Size(121, 21); + this.CB_Species.TabIndex = 1; + this.CB_Species.SelectedIndexChanged += new System.EventHandler(this.ChangeEntry); + // + // L_Species + // + this.L_Species.AutoSize = true; + this.L_Species.Location = new System.Drawing.Point(4, 15); + this.L_Species.Name = "L_Species"; + this.L_Species.Size = new System.Drawing.Size(48, 13); + this.L_Species.TabIndex = 2; + this.L_Species.Text = "Species:"; + // + // B_RandAll + // + this.B_RandAll.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.B_RandAll.Location = new System.Drawing.Point(292, 10); + this.B_RandAll.Name = "B_RandAll"; + this.B_RandAll.Size = new System.Drawing.Size(103, 23); + this.B_RandAll.TabIndex = 4; + this.B_RandAll.Text = "Randomize!"; + this.B_RandAll.UseVisualStyleBackColor = true; + this.B_RandAll.Click += new System.EventHandler(this.B_RandAll_Click); + // + // B_Dump + // + this.B_Dump.Location = new System.Drawing.Point(240, 10); + this.B_Dump.Name = "B_Dump"; + this.B_Dump.Size = new System.Drawing.Size(46, 23); + this.B_Dump.TabIndex = 5; + this.B_Dump.Text = "Dump"; + this.B_Dump.UseVisualStyleBackColor = true; + this.B_Dump.Click += new System.EventHandler(this.B_Dump_Click); + // + // groupBox1 + // + this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupBox1.Controls.Add(this.CHK_NoFixedDamage); + this.groupBox1.Controls.Add(this.CHK_4MovesLvl1); + this.groupBox1.Controls.Add(this.L_Moves); + this.groupBox1.Controls.Add(this.NUD_Moves); + this.groupBox1.Controls.Add(this.CHK_Expand); + this.groupBox1.Controls.Add(this.L_Scale2); + this.groupBox1.Controls.Add(this.NUD_Level); + this.groupBox1.Controls.Add(this.L_Scale1); + this.groupBox1.Controls.Add(this.CHK_Spread); + this.groupBox1.Controls.Add(this.L_STAB); + this.groupBox1.Controls.Add(this.NUD_STAB); + this.groupBox1.Controls.Add(this.CHK_STAB); + this.groupBox1.Controls.Add(this.CHK_HMs); + this.groupBox1.Location = new System.Drawing.Point(296, 65); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(95, 343); + this.groupBox1.TabIndex = 6; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Options"; + // + // CHK_NoFixedDamage + // + this.CHK_NoFixedDamage.AutoSize = true; + this.CHK_NoFixedDamage.Checked = true; + this.CHK_NoFixedDamage.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_NoFixedDamage.Location = new System.Drawing.Point(5, 271); + this.CHK_NoFixedDamage.Name = "CHK_NoFixedDamage"; + this.CHK_NoFixedDamage.Size = new System.Drawing.Size(95, 69); + this.CHK_NoFixedDamage.TabIndex = 13; + this.CHK_NoFixedDamage.Text = "No Fixed\nDamage\nMoves\n(Dragon Rage\n+ Sonic Boom)"; + this.CHK_NoFixedDamage.UseVisualStyleBackColor = true; + // + // CHK_4MovesLvl1 + // + this.CHK_4MovesLvl1.AutoSize = true; + this.CHK_4MovesLvl1.Location = new System.Drawing.Point(5, 159); + this.CHK_4MovesLvl1.Name = "CHK_4MovesLvl1"; + this.CHK_4MovesLvl1.Size = new System.Drawing.Size(70, 30); + this.CHK_4MovesLvl1.TabIndex = 12; + this.CHK_4MovesLvl1.Text = "Start with\n4 Moves"; + this.CHK_4MovesLvl1.UseVisualStyleBackColor = true; + // + // L_Moves + // + this.L_Moves.AutoSize = true; + this.L_Moves.Location = new System.Drawing.Point(10, 130); + this.L_Moves.Name = "L_Moves"; + this.L_Moves.Size = new System.Drawing.Size(42, 13); + this.L_Moves.TabIndex = 10; + this.L_Moves.Text = "Moves:"; + // + // NUD_Moves + // + this.NUD_Moves.Enabled = false; + this.NUD_Moves.Location = new System.Drawing.Point(53, 128); + this.NUD_Moves.Maximum = new decimal(new int[] { + 75, + 0, + 0, + 0}); + this.NUD_Moves.Minimum = new decimal(new int[] { + 25, + 0, + 0, + 0}); + this.NUD_Moves.Name = "NUD_Moves"; + this.NUD_Moves.Size = new System.Drawing.Size(36, 20); + this.NUD_Moves.TabIndex = 9; + this.NUD_Moves.Value = new decimal(new int[] { + 25, + 0, + 0, + 0}); + // + // CHK_Expand + // + this.CHK_Expand.AutoSize = true; + this.CHK_Expand.Location = new System.Drawing.Point(5, 110); + this.CHK_Expand.Name = "CHK_Expand"; + this.CHK_Expand.Size = new System.Drawing.Size(86, 17); + this.CHK_Expand.TabIndex = 8; + this.CHK_Expand.Text = "Expand Pool"; + this.CHK_Expand.UseVisualStyleBackColor = true; + // + // L_Scale2 + // + this.L_Scale2.AutoSize = true; + this.L_Scale2.Location = new System.Drawing.Point(2, 242); + this.L_Scale2.Name = "L_Scale2"; + this.L_Scale2.Size = new System.Drawing.Size(50, 13); + this.L_Scale2.TabIndex = 7; + this.L_Scale2.Text = "@ Level:"; + // + // NUD_Level + // + this.NUD_Level.Location = new System.Drawing.Point(54, 240); + this.NUD_Level.Minimum = new decimal(new int[] { + 16, + 0, + 0, + 0}); + this.NUD_Level.Name = "NUD_Level"; + this.NUD_Level.Size = new System.Drawing.Size(36, 20); + this.NUD_Level.TabIndex = 6; + this.NUD_Level.Value = new decimal(new int[] { + 75, + 0, + 0, + 0}); + // + // L_Scale1 + // + this.L_Scale1.AutoSize = true; + this.L_Scale1.Location = new System.Drawing.Point(5, 224); + this.L_Scale1.Name = "L_Scale1"; + this.L_Scale1.Size = new System.Drawing.Size(73, 13); + this.L_Scale1.TabIndex = 5; + this.L_Scale1.Text = "Stop Learning"; + // + // CHK_Spread + // + this.CHK_Spread.AutoSize = true; + this.CHK_Spread.Location = new System.Drawing.Point(5, 204); + this.CHK_Spread.Name = "CHK_Spread"; + this.CHK_Spread.Size = new System.Drawing.Size(95, 17); + this.CHK_Spread.TabIndex = 4; + this.CHK_Spread.Text = "Spread Evenly"; + this.CHK_Spread.UseVisualStyleBackColor = true; + // + // L_STAB + // + this.L_STAB.AutoSize = true; + this.L_STAB.Location = new System.Drawing.Point(6, 74); + this.L_STAB.Name = "L_STAB"; + this.L_STAB.Size = new System.Drawing.Size(46, 13); + this.L_STAB.TabIndex = 3; + this.L_STAB.Text = "% STAB"; + // + // NUD_STAB + // + this.NUD_STAB.Location = new System.Drawing.Point(53, 72); + this.NUD_STAB.Minimum = new decimal(new int[] { + 5, + 0, + 0, + 0}); + this.NUD_STAB.Name = "NUD_STAB"; + this.NUD_STAB.Size = new System.Drawing.Size(36, 20); + this.NUD_STAB.TabIndex = 2; + this.NUD_STAB.Value = new decimal(new int[] { + 52, + 0, + 0, + 0}); + // + // CHK_STAB + // + this.CHK_STAB.AutoSize = true; + this.CHK_STAB.Location = new System.Drawing.Point(5, 54); + this.CHK_STAB.Name = "CHK_STAB"; + this.CHK_STAB.Size = new System.Drawing.Size(87, 17); + this.CHK_STAB.TabIndex = 1; + this.CHK_STAB.Text = "Bias by Type"; + this.CHK_STAB.UseVisualStyleBackColor = true; + this.CHK_STAB.CheckedChanged += new System.EventHandler(this.CHK_TypeBias_CheckedChanged); + // + // CHK_HMs + // + this.CHK_HMs.AutoSize = true; + this.CHK_HMs.Location = new System.Drawing.Point(5, 19); + this.CHK_HMs.Name = "CHK_HMs"; + this.CHK_HMs.Size = new System.Drawing.Size(76, 17); + this.CHK_HMs.TabIndex = 0; + this.CHK_HMs.Text = "Allow HMs"; + this.CHK_HMs.UseVisualStyleBackColor = true; + // + // PB_MonSprite + // + this.PB_MonSprite.Location = new System.Drawing.Point(185, 5); + this.PB_MonSprite.Name = "PB_MonSprite"; + this.PB_MonSprite.Size = new System.Drawing.Size(40, 30); + this.PB_MonSprite.TabIndex = 90; + this.PB_MonSprite.TabStop = false; + // + // B_Metronome + // + this.B_Metronome.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.B_Metronome.Location = new System.Drawing.Point(292, 36); + this.B_Metronome.Name = "B_Metronome"; + this.B_Metronome.Size = new System.Drawing.Size(103, 23); + this.B_Metronome.TabIndex = 92; + this.B_Metronome.Text = "Metronome Mode"; + this.B_Metronome.UseVisualStyleBackColor = true; + this.B_Metronome.Click += new System.EventHandler(this.B_Metronome_Click); + // + // LevelUpEditor7 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(404, 412); + this.Controls.Add(this.B_Metronome); + this.Controls.Add(this.PB_MonSprite); + this.Controls.Add(this.groupBox1); + this.Controls.Add(this.B_Dump); + this.Controls.Add(this.B_RandAll); + this.Controls.Add(this.L_Species); + this.Controls.Add(this.CB_Species); + this.Controls.Add(this.dgv); + this.MaximizeBox = false; + this.MinimumSize = new System.Drawing.Size(322, 450); + this.Name = "LevelUpEditor7"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Level Up Move Editor"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form_Closing); + ((System.ComponentModel.ISupportInitialize)(this.dgv)).EndInit(); + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Moves)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Level)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_STAB)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_MonSprite)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.DataGridView dgv; + private System.Windows.Forms.ComboBox CB_Species; + private System.Windows.Forms.Label L_Species; + private System.Windows.Forms.Button B_RandAll; + private System.Windows.Forms.Button B_Dump; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.CheckBox CHK_STAB; + private System.Windows.Forms.CheckBox CHK_HMs; + private System.Windows.Forms.Label L_STAB; + private System.Windows.Forms.NumericUpDown NUD_STAB; + private System.Windows.Forms.Label L_Scale2; + private System.Windows.Forms.NumericUpDown NUD_Level; + private System.Windows.Forms.Label L_Scale1; + private System.Windows.Forms.CheckBox CHK_Spread; + private System.Windows.Forms.Label L_Moves; + private System.Windows.Forms.NumericUpDown NUD_Moves; + private System.Windows.Forms.CheckBox CHK_Expand; + private System.Windows.Forms.PictureBox PB_MonSprite; + private System.Windows.Forms.CheckBox CHK_4MovesLvl1; + private System.Windows.Forms.CheckBox CHK_NoFixedDamage; + private System.Windows.Forms.Button B_Metronome; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen7/LevelUpEditor7.cs b/pk3DS.WinForms/Subforms/Gen7/LevelUpEditor7.cs new file mode 100644 index 0000000000..518d07c147 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen7/LevelUpEditor7.cs @@ -0,0 +1,247 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Media; +using System.Text; +using System.Windows.Forms; +using pk3DS.Core.Structures; +using pk3DS.Core; +using pk3DS.Core.Randomizers; +using pk3DS.WinForms.Properties; + +namespace pk3DS.WinForms; + +public partial class LevelUpEditor7 : Form +{ + public LevelUpEditor7(byte[][] infiles) + { + InitializeComponent(); + files = infiles; + string[] species = Main.Config.GetText(TextName.SpeciesNames); + string[][] AltForms = Main.Config.Personal.GetFormList(species, Main.Config.MaxSpeciesID); + string[] specieslist = Main.Config.Personal.GetPersonalEntryList(AltForms, species, Main.Config.MaxSpeciesID, out baseForms, out formVal); + specieslist[0] = movelist[0] = ""; + + string[] sortedspecies = (string[])specieslist.Clone(); + Array.Resize(ref sortedspecies, Main.Config.MaxSpeciesID + 1); Array.Sort(sortedspecies); + SetupDGV(); + + var newlist = new List(); + for (int i = 1; i <= Main.Config.MaxSpeciesID; i++) // add all species + newlist.Add(new ComboItem { Text = sortedspecies[i], Value = Array.IndexOf(specieslist, sortedspecies[i]) }); + for (int i = Main.Config.MaxSpeciesID + 1; i < specieslist.Length; i++) // add all forms + newlist.Add(new ComboItem { Text = specieslist[i], Value = i }); + + CB_Species.DisplayMember = "Text"; + CB_Species.ValueMember = "Value"; + CB_Species.DataSource = newlist; + CB_Species.SelectedIndex = 0; + RandSettings.GetFormSettings(this, groupBox1.Controls); + } + + private readonly byte[][] files; + private int entry = -1; + private readonly string[] movelist = Main.Config.GetText(TextName.MoveNames); + private bool dumping; + private readonly int[] baseForms, formVal; + + private void SetupDGV() + { + string[] sortedmoves = (string[])movelist.Clone(); + Array.Sort(sortedmoves); + var dgvLevel = new DataGridViewTextBoxColumn(); + { + dgvLevel.HeaderText = "Level"; + dgvLevel.DisplayIndex = 0; + dgvLevel.Width = 45; + dgvLevel.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; + } + var dgvMove = new DataGridViewComboBoxColumn(); + { + dgvMove.HeaderText = "Move"; + dgvMove.DisplayIndex = 1; + for (int i = 0; i < movelist.Length; i++) + dgvMove.Items.Add(sortedmoves[i]); // add only the Names + + dgvMove.Width = 135; + dgvMove.FlatStyle = FlatStyle.Flat; + } + dgv.Columns.Add(dgvLevel); + dgv.Columns.Add(dgvMove); + } + + private Learnset6 pkm; + + private void GetList() + { + entry = WinFormsUtil.GetIndex(CB_Species); + int s = baseForms[entry]; + int f = formVal[entry]; + if (entry <= Main.Config.MaxSpeciesID) + s = entry; + int[] specForm = [s, f]; + string filename = "_" + specForm[0] + (entry > Main.Config.MaxSpeciesID ? "_" + (specForm[1] + 1) : ""); + PB_MonSprite.Image = (Bitmap)Resources.ResourceManager.GetObject(filename); + + dgv.Rows.Clear(); + byte[] input = files[entry]; + if (input.Length <= 4) { files[entry] = BitConverter.GetBytes(-1); return; } + pkm = new Learnset6(input); + + dgv.Rows.Add(pkm.Count); + + // Fill Entries + for (int i = 0; i < pkm.Count; i++) + { + dgv.Rows[i].Cells[0].Value = pkm.Levels[i]; + dgv.Rows[i].Cells[1].Value = movelist[pkm.Moves[i]]; + } + + dgv.CancelEdit(); + } + + private void SetList() + { + if (entry < 1 || dumping) return; + List moves = []; + List levels = []; + for (int i = 0; i < dgv.Rows.Count - 1; i++) + { + int move = Array.IndexOf(movelist, dgv.Rows[i].Cells[1].Value); + if (move < 1) continue; + + moves.Add((short)move); + string level = (dgv.Rows[i].Cells[0].Value ?? 0).ToString(); + _ = short.TryParse(level, out var lv); + if (lv > 100) lv = 100; + levels.Add(lv); + } + pkm.Moves = [.. moves]; + pkm.Levels = [.. levels]; + files[entry] = pkm.Write(); + } + + private void ChangeEntry(object sender, EventArgs e) + { + SetList(); + GetList(); + } + + // Struggle, Hyperspace Fury, Dark Void + private static readonly int[] usualBan = [165, 621, 464]; + + private void B_RandAll_Click(object sender, EventArgs e) + { + SetList(); + var sets = files.Select(z => new Learnset6(z)).ToArray(); + var banned = new List(usualBan.Concat(Legal.Z_Moves)); + if (CHK_NoFixedDamage.Checked) + banned.AddRange(MoveRandomizer.FixedDamageMoves); + + var rand = new LearnsetRandomizer(Main.Config, sets) + { + Expand = CHK_Expand.Checked, + ExpandTo = (int)NUD_Moves.Value, + Spread = CHK_Spread.Checked, + SpreadTo = (int)NUD_Level.Value, + STAB = CHK_STAB.Checked, + STABPercent = NUD_STAB.Value, + STABFirst = CHK_STAB.Checked, + BannedMoves = banned, + Learn4Level1 = CHK_4MovesLvl1.Checked, + }; + rand.Execute(); + sets.Select(z => z.Write()).ToArray().CopyTo(files, 0); + GetList(); + WinFormsUtil.Alert("All Pokémon's Level Up Moves have been randomized!", "Press the Dump button to see the new Level Up Moves!"); + } + + private void B_Metronome_Click(object sender, EventArgs e) + { + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Play using Metronome Mode?", "This will modify learnsets to only have Metronome.") != DialogResult.Yes) + return; + + // clear all data, then only assign Metronome at Lv1 + for (int i = 0; i < CB_Species.Items.Count; i++) + { + CB_Species.SelectedIndex = i; + dgv.Rows.Clear(); + dgv.Rows.Add(); + dgv.Rows[0].Cells[0].Value = 1; + dgv.Rows[0].Cells[1].Value = movelist[118]; + } + CB_Species.SelectedIndex = 0; + WinFormsUtil.Alert("All Pokémon now only know the move Metronome!"); + } + + private void B_Dump_Click(object sender, EventArgs e) + { + if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Dump all Level Up Moves to Text File?")) + return; + + dumping = true; + string result = ""; + for (int i = 0; i < CB_Species.Items.Count; i++) + { + CB_Species.SelectedIndex = i; // Get new Species + result += "======" + Environment.NewLine + entry + " " + CB_Species.Text + Environment.NewLine + "======" + Environment.NewLine; + for (int j = 0; j < dgv.Rows.Count - 1; j++) + result += $"{dgv.Rows[j].Cells[0].Value} - {dgv.Rows[j].Cells[1].Value + Environment.NewLine}"; + + result += Environment.NewLine; + } + var sfd = new SaveFileDialog { FileName = "Level Up Moves.txt", Filter = "Text File|*.txt" }; + + SystemSounds.Asterisk.Play(); + if (sfd.ShowDialog() == DialogResult.OK) + { + string path = sfd.FileName; + File.WriteAllText(path, result, Encoding.Unicode); + } + dumping = false; + } + + private void Form_Closing(object sender, FormClosingEventArgs e) + { + SetList(); + RandSettings.SetFormSettings(this, groupBox1.Controls); + } + + private void CHK_TypeBias_CheckedChanged(object sender, EventArgs e) + { + NUD_STAB.Enabled = CHK_STAB.Checked; + NUD_STAB.Value = CHK_STAB.Checked ? 52 : NUD_STAB.Minimum; + } + + public void CalcStats() // Debug Function + { + Move[] MoveData = Main.Config.Moves; + int movectr = 0; + int max = 0; + int spec = 0; + int stab = 0; + for (int i = 0; i < Main.Config.MaxSpeciesID; i++) + { + byte[] movedata = files[i]; + int movecount = (movedata.Length - 4) / 4; + if (movecount == 65535) + continue; + movectr += movecount; // Average Moves + if (max < movecount) { max = movecount; spec = i; } // Max Moves (and species) + for (int m = 0; m < movedata.Length / 4; m++) + { + int move = BitConverter.ToUInt16(movedata, m * 4); + if (move == 65535) + { + movectr--; + continue; + } + if (Main.SpeciesStat[i].Types.Contains(MoveData[move].Type)) + stab++; + } + } + WinFormsUtil.Alert($"Moves Learned: {movectr}\r\nMost Learned: {max} @ {spec}\r\nSTAB Count: {stab}"); + } +} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/LevelUpEditor7.resx b/pk3DS.WinForms/Subforms/Gen7/LevelUpEditor7.resx similarity index 100% rename from pk3DS/Subforms/Gen7/LevelUpEditor7.resx rename to pk3DS.WinForms/Subforms/Gen7/LevelUpEditor7.resx diff --git a/pk3DS.WinForms/Subforms/Gen7/MaisonEditor7.Designer.cs b/pk3DS.WinForms/Subforms/Gen7/MaisonEditor7.Designer.cs new file mode 100644 index 0000000000..38e385dd85 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen7/MaisonEditor7.Designer.cs @@ -0,0 +1,491 @@ +namespace pk3DS.WinForms; + +partial class MaisonEditor7 +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.CB_Trainer = new System.Windows.Forms.ComboBox(); + this.CB_Pokemon = new System.Windows.Forms.ComboBox(); + this.L_Trainer = new System.Windows.Forms.Label(); + this.L_Pokemon = new System.Windows.Forms.Label(); + this.GB_Trainer = new System.Windows.Forms.GroupBox(); + this.L_Class = new System.Windows.Forms.Label(); + this.B_Remove = new System.Windows.Forms.Button(); + this.B_Set = new System.Windows.Forms.Button(); + this.LB_Choices = new System.Windows.Forms.ListBox(); + this.CB_Class = new System.Windows.Forms.ComboBox(); + this.GB_Pokemon = new System.Windows.Forms.GroupBox(); + this.L_Form = new System.Windows.Forms.Label(); + this.NUD_Form = new System.Windows.Forms.NumericUpDown(); + this.PB_PKM = new System.Windows.Forms.PictureBox(); + this.CHK_Spe = new System.Windows.Forms.CheckBox(); + this.CHK_SpD = new System.Windows.Forms.CheckBox(); + this.CHK_SpA = new System.Windows.Forms.CheckBox(); + this.CHK_DEF = new System.Windows.Forms.CheckBox(); + this.CHK_ATK = new System.Windows.Forms.CheckBox(); + this.CHK_HP = new System.Windows.Forms.CheckBox(); + this.L_Species = new System.Windows.Forms.Label(); + this.L_Item = new System.Windows.Forms.Label(); + this.L_Nature = new System.Windows.Forms.Label(); + this.L_Moves = new System.Windows.Forms.Label(); + this.CB_Item = new System.Windows.Forms.ComboBox(); + this.CB_Nature = new System.Windows.Forms.ComboBox(); + this.CB_Move4 = new System.Windows.Forms.ComboBox(); + this.CB_Move2 = new System.Windows.Forms.ComboBox(); + this.CB_Move3 = new System.Windows.Forms.ComboBox(); + this.CB_Move1 = new System.Windows.Forms.ComboBox(); + this.CB_Species = new System.Windows.Forms.ComboBox(); + this.B_DumpPKs = new System.Windows.Forms.Button(); + this.DumpTRs = new System.Windows.Forms.Button(); + this.GB_Trainer.SuspendLayout(); + this.GB_Pokemon.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Form)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_PKM)).BeginInit(); + this.SuspendLayout(); + // + // CB_Trainer + // + this.CB_Trainer.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Trainer.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Trainer.FormattingEnabled = true; + this.CB_Trainer.Location = new System.Drawing.Point(67, 8); + this.CB_Trainer.Name = "CB_Trainer"; + this.CB_Trainer.Size = new System.Drawing.Size(121, 21); + this.CB_Trainer.TabIndex = 0; + this.CB_Trainer.SelectedIndexChanged += new System.EventHandler(this.ChangeTrainer); + // + // CB_Pokemon + // + this.CB_Pokemon.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Pokemon.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Pokemon.FormattingEnabled = true; + this.CB_Pokemon.Location = new System.Drawing.Point(361, 8); + this.CB_Pokemon.Name = "CB_Pokemon"; + this.CB_Pokemon.Size = new System.Drawing.Size(106, 21); + this.CB_Pokemon.TabIndex = 1; + this.CB_Pokemon.SelectedIndexChanged += new System.EventHandler(this.ChangePokemon); + // + // L_Trainer + // + this.L_Trainer.AutoSize = true; + this.L_Trainer.Location = new System.Drawing.Point(18, 11); + this.L_Trainer.Name = "L_Trainer"; + this.L_Trainer.Size = new System.Drawing.Size(43, 13); + this.L_Trainer.TabIndex = 2; + this.L_Trainer.Text = "Trainer:"; + // + // L_Pokemon + // + this.L_Pokemon.AutoSize = true; + this.L_Pokemon.Location = new System.Drawing.Point(300, 11); + this.L_Pokemon.Name = "L_Pokemon"; + this.L_Pokemon.Size = new System.Drawing.Size(55, 13); + this.L_Pokemon.TabIndex = 3; + this.L_Pokemon.Text = "Pokémon:"; + // + // GB_Trainer + // + this.GB_Trainer.Controls.Add(this.L_Class); + this.GB_Trainer.Controls.Add(this.B_Remove); + this.GB_Trainer.Controls.Add(this.B_Set); + this.GB_Trainer.Controls.Add(this.LB_Choices); + this.GB_Trainer.Controls.Add(this.CB_Class); + this.GB_Trainer.Location = new System.Drawing.Point(12, 33); + this.GB_Trainer.Name = "GB_Trainer"; + this.GB_Trainer.Size = new System.Drawing.Size(276, 187); + this.GB_Trainer.TabIndex = 4; + this.GB_Trainer.TabStop = false; + this.GB_Trainer.Text = "Trainer Summary"; + // + // L_Class + // + this.L_Class.AutoSize = true; + this.L_Class.Location = new System.Drawing.Point(14, 23); + this.L_Class.Name = "L_Class"; + this.L_Class.Size = new System.Drawing.Size(35, 13); + this.L_Class.TabIndex = 5; + this.L_Class.Text = "Class:"; + // + // B_Remove + // + this.B_Remove.Location = new System.Drawing.Point(182, 158); + this.B_Remove.Name = "B_Remove"; + this.B_Remove.Size = new System.Drawing.Size(62, 23); + this.B_Remove.TabIndex = 4; + this.B_Remove.Text = "[X] Delete"; + this.B_Remove.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.B_Remove.UseVisualStyleBackColor = true; + this.B_Remove.Click += new System.EventHandler(this.B_Remove_Click); + // + // B_Set + // + this.B_Set.Location = new System.Drawing.Point(182, 47); + this.B_Set.Name = "B_Set"; + this.B_Set.Size = new System.Drawing.Size(62, 23); + this.B_Set.TabIndex = 2; + this.B_Set.Text = "[<] Set"; + this.B_Set.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.B_Set.UseVisualStyleBackColor = true; + this.B_Set.Click += new System.EventHandler(this.B_Set_Click); + // + // LB_Choices + // + this.LB_Choices.FormattingEnabled = true; + this.LB_Choices.Location = new System.Drawing.Point(9, 47); + this.LB_Choices.Name = "LB_Choices"; + this.LB_Choices.Size = new System.Drawing.Size(167, 134); + this.LB_Choices.TabIndex = 1; + this.LB_Choices.SelectedIndexChanged += new System.EventHandler(this.B_View_Click); + // + // CB_Class + // + this.CB_Class.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Class.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Class.FormattingEnabled = true; + this.CB_Class.Location = new System.Drawing.Point(55, 20); + this.CB_Class.Name = "CB_Class"; + this.CB_Class.Size = new System.Drawing.Size(121, 21); + this.CB_Class.TabIndex = 0; + // + // GB_Pokemon + // + this.GB_Pokemon.Controls.Add(this.L_Form); + this.GB_Pokemon.Controls.Add(this.NUD_Form); + this.GB_Pokemon.Controls.Add(this.PB_PKM); + this.GB_Pokemon.Controls.Add(this.CHK_Spe); + this.GB_Pokemon.Controls.Add(this.CHK_SpD); + this.GB_Pokemon.Controls.Add(this.CHK_SpA); + this.GB_Pokemon.Controls.Add(this.CHK_DEF); + this.GB_Pokemon.Controls.Add(this.CHK_ATK); + this.GB_Pokemon.Controls.Add(this.CHK_HP); + this.GB_Pokemon.Controls.Add(this.L_Species); + this.GB_Pokemon.Controls.Add(this.L_Item); + this.GB_Pokemon.Controls.Add(this.L_Nature); + this.GB_Pokemon.Controls.Add(this.L_Moves); + this.GB_Pokemon.Controls.Add(this.CB_Item); + this.GB_Pokemon.Controls.Add(this.CB_Nature); + this.GB_Pokemon.Controls.Add(this.CB_Move4); + this.GB_Pokemon.Controls.Add(this.CB_Move2); + this.GB_Pokemon.Controls.Add(this.CB_Move3); + this.GB_Pokemon.Controls.Add(this.CB_Move1); + this.GB_Pokemon.Controls.Add(this.CB_Species); + this.GB_Pokemon.Location = new System.Drawing.Point(294, 33); + this.GB_Pokemon.Name = "GB_Pokemon"; + this.GB_Pokemon.Size = new System.Drawing.Size(275, 187); + this.GB_Pokemon.TabIndex = 5; + this.GB_Pokemon.TabStop = false; + this.GB_Pokemon.Text = "Pokémon Summary"; + // + // L_Form + // + this.L_Form.AutoSize = true; + this.L_Form.Location = new System.Drawing.Point(71, 163); + this.L_Form.Name = "L_Form"; + this.L_Form.Size = new System.Drawing.Size(33, 13); + this.L_Form.TabIndex = 27; + this.L_Form.Text = "Form:"; + // + // NUD_Form + // + this.NUD_Form.Location = new System.Drawing.Point(107, 161); + this.NUD_Form.Maximum = new decimal(new int[] { + 65535, + 0, + 0, + 0}); + this.NUD_Form.Name = "NUD_Form"; + this.NUD_Form.Size = new System.Drawing.Size(59, 20); + this.NUD_Form.TabIndex = 26; + this.NUD_Form.Value = new decimal(new int[] { + 65535, + 0, + 0, + 0}); + this.NUD_Form.ValueChanged += new System.EventHandler(this.ChangeSpecies); + // + // PB_PKM + // + this.PB_PKM.Location = new System.Drawing.Point(179, 15); + this.PB_PKM.Name = "PB_PKM"; + this.PB_PKM.Size = new System.Drawing.Size(40, 30); + this.PB_PKM.TabIndex = 25; + this.PB_PKM.TabStop = false; + // + // CHK_Spe + // + this.CHK_Spe.AutoSize = true; + this.CHK_Spe.Location = new System.Drawing.Point(219, 157); + this.CHK_Spe.Name = "CHK_Spe"; + this.CHK_Spe.Size = new System.Drawing.Size(45, 17); + this.CHK_Spe.TabIndex = 24; + this.CHK_Spe.Text = "Spe"; + this.CHK_Spe.UseVisualStyleBackColor = true; + // + // CHK_SpD + // + this.CHK_SpD.AutoSize = true; + this.CHK_SpD.Location = new System.Drawing.Point(219, 143); + this.CHK_SpD.Name = "CHK_SpD"; + this.CHK_SpD.Size = new System.Drawing.Size(47, 17); + this.CHK_SpD.TabIndex = 23; + this.CHK_SpD.Text = "SpD"; + this.CHK_SpD.UseVisualStyleBackColor = true; + // + // CHK_SpA + // + this.CHK_SpA.AutoSize = true; + this.CHK_SpA.Location = new System.Drawing.Point(219, 129); + this.CHK_SpA.Name = "CHK_SpA"; + this.CHK_SpA.Size = new System.Drawing.Size(46, 17); + this.CHK_SpA.TabIndex = 22; + this.CHK_SpA.Text = "SpA"; + this.CHK_SpA.UseVisualStyleBackColor = true; + // + // CHK_DEF + // + this.CHK_DEF.AutoSize = true; + this.CHK_DEF.Location = new System.Drawing.Point(172, 157); + this.CHK_DEF.Name = "CHK_DEF"; + this.CHK_DEF.Size = new System.Drawing.Size(43, 17); + this.CHK_DEF.TabIndex = 21; + this.CHK_DEF.Text = "Def"; + this.CHK_DEF.UseVisualStyleBackColor = true; + // + // CHK_ATK + // + this.CHK_ATK.AutoSize = true; + this.CHK_ATK.Location = new System.Drawing.Point(172, 143); + this.CHK_ATK.Name = "CHK_ATK"; + this.CHK_ATK.Size = new System.Drawing.Size(42, 17); + this.CHK_ATK.TabIndex = 20; + this.CHK_ATK.Text = "Atk"; + this.CHK_ATK.UseVisualStyleBackColor = true; + // + // CHK_HP + // + this.CHK_HP.AutoSize = true; + this.CHK_HP.Location = new System.Drawing.Point(172, 129); + this.CHK_HP.Name = "CHK_HP"; + this.CHK_HP.Size = new System.Drawing.Size(41, 17); + this.CHK_HP.TabIndex = 19; + this.CHK_HP.Text = "HP"; + this.CHK_HP.UseVisualStyleBackColor = true; + // + // L_Species + // + this.L_Species.AutoSize = true; + this.L_Species.Location = new System.Drawing.Point(13, 23); + this.L_Species.Name = "L_Species"; + this.L_Species.Size = new System.Drawing.Size(48, 13); + this.L_Species.TabIndex = 18; + this.L_Species.Text = "Species:"; + // + // L_Item + // + this.L_Item.AutoSize = true; + this.L_Item.Location = new System.Drawing.Point(29, 141); + this.L_Item.Name = "L_Item"; + this.L_Item.Size = new System.Drawing.Size(30, 13); + this.L_Item.TabIndex = 17; + this.L_Item.Text = "Item:"; + // + // L_Nature + // + this.L_Nature.AutoSize = true; + this.L_Nature.Location = new System.Drawing.Point(17, 119); + this.L_Nature.Name = "L_Nature"; + this.L_Nature.Size = new System.Drawing.Size(42, 13); + this.L_Nature.TabIndex = 16; + this.L_Nature.Text = "Nature:"; + // + // L_Moves + // + this.L_Moves.AutoSize = true; + this.L_Moves.Location = new System.Drawing.Point(13, 48); + this.L_Moves.Name = "L_Moves"; + this.L_Moves.Size = new System.Drawing.Size(42, 13); + this.L_Moves.TabIndex = 15; + this.L_Moves.Text = "Moves:"; + // + // CB_Item + // + this.CB_Item.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Item.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Item.FormattingEnabled = true; + this.CB_Item.Location = new System.Drawing.Point(65, 138); + this.CB_Item.Name = "CB_Item"; + this.CB_Item.Size = new System.Drawing.Size(101, 21); + this.CB_Item.TabIndex = 14; + // + // CB_Nature + // + this.CB_Nature.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Nature.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Nature.FormattingEnabled = true; + this.CB_Nature.Location = new System.Drawing.Point(65, 116); + this.CB_Nature.Name = "CB_Nature"; + this.CB_Nature.Size = new System.Drawing.Size(101, 21); + this.CB_Nature.TabIndex = 13; + // + // CB_Move4 + // + this.CB_Move4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Move4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Move4.FormattingEnabled = true; + this.CB_Move4.Location = new System.Drawing.Point(140, 91); + this.CB_Move4.Name = "CB_Move4"; + this.CB_Move4.Size = new System.Drawing.Size(121, 21); + this.CB_Move4.TabIndex = 12; + // + // CB_Move2 + // + this.CB_Move2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Move2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Move2.FormattingEnabled = true; + this.CB_Move2.Location = new System.Drawing.Point(140, 64); + this.CB_Move2.Name = "CB_Move2"; + this.CB_Move2.Size = new System.Drawing.Size(121, 21); + this.CB_Move2.TabIndex = 11; + // + // CB_Move3 + // + this.CB_Move3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Move3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Move3.FormattingEnabled = true; + this.CB_Move3.Location = new System.Drawing.Point(13, 91); + this.CB_Move3.Name = "CB_Move3"; + this.CB_Move3.Size = new System.Drawing.Size(121, 21); + this.CB_Move3.TabIndex = 10; + // + // CB_Move1 + // + this.CB_Move1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Move1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Move1.FormattingEnabled = true; + this.CB_Move1.Location = new System.Drawing.Point(13, 64); + this.CB_Move1.Name = "CB_Move1"; + this.CB_Move1.Size = new System.Drawing.Size(121, 21); + this.CB_Move1.TabIndex = 9; + // + // CB_Species + // + this.CB_Species.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Species.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Species.FormattingEnabled = true; + this.CB_Species.Location = new System.Drawing.Point(67, 20); + this.CB_Species.Name = "CB_Species"; + this.CB_Species.Size = new System.Drawing.Size(106, 21); + this.CB_Species.TabIndex = 8; + this.CB_Species.SelectedIndexChanged += new System.EventHandler(this.ChangeSpecies); + // + // B_DumpPKs + // + this.B_DumpPKs.Location = new System.Drawing.Point(494, 7); + this.B_DumpPKs.Name = "B_DumpPKs"; + this.B_DumpPKs.Size = new System.Drawing.Size(75, 23); + this.B_DumpPKs.TabIndex = 6; + this.B_DumpPKs.Text = "Dump PKMs"; + this.B_DumpPKs.UseVisualStyleBackColor = true; + this.B_DumpPKs.Click += new System.EventHandler(this.B_DumpPKs_Click); + // + // DumpTRs + // + this.DumpTRs.Location = new System.Drawing.Point(213, 6); + this.DumpTRs.Name = "DumpTRs"; + this.DumpTRs.Size = new System.Drawing.Size(75, 23); + this.DumpTRs.TabIndex = 7; + this.DumpTRs.Text = "Dump TRs"; + this.DumpTRs.UseVisualStyleBackColor = true; + this.DumpTRs.Click += new System.EventHandler(this.DumpTRs_Click); + // + // MaisonEditor7 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(579, 226); + this.Controls.Add(this.DumpTRs); + this.Controls.Add(this.B_DumpPKs); + this.Controls.Add(this.GB_Pokemon); + this.Controls.Add(this.GB_Trainer); + this.Controls.Add(this.L_Pokemon); + this.Controls.Add(this.L_Trainer); + this.Controls.Add(this.CB_Pokemon); + this.Controls.Add(this.CB_Trainer); + this.MaximizeBox = false; + this.MaximumSize = new System.Drawing.Size(595, 265); + this.MinimumSize = new System.Drawing.Size(595, 265); + this.Name = "MaisonEditor7"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Royal/Tree Editor"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form_Closing); + this.GB_Trainer.ResumeLayout(false); + this.GB_Trainer.PerformLayout(); + this.GB_Pokemon.ResumeLayout(false); + this.GB_Pokemon.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Form)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_PKM)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.ComboBox CB_Trainer; + private System.Windows.Forms.ComboBox CB_Pokemon; + private System.Windows.Forms.Label L_Trainer; + private System.Windows.Forms.Label L_Pokemon; + private System.Windows.Forms.GroupBox GB_Trainer; + private System.Windows.Forms.GroupBox GB_Pokemon; + private System.Windows.Forms.Button B_DumpPKs; + private System.Windows.Forms.Button DumpTRs; + private System.Windows.Forms.Label L_Item; + private System.Windows.Forms.Label L_Nature; + private System.Windows.Forms.Label L_Moves; + private System.Windows.Forms.ComboBox CB_Item; + private System.Windows.Forms.ComboBox CB_Nature; + private System.Windows.Forms.ComboBox CB_Move4; + private System.Windows.Forms.ComboBox CB_Move2; + private System.Windows.Forms.ComboBox CB_Move3; + private System.Windows.Forms.ComboBox CB_Move1; + private System.Windows.Forms.ComboBox CB_Species; + private System.Windows.Forms.Label L_Species; + private System.Windows.Forms.CheckBox CHK_Spe; + private System.Windows.Forms.CheckBox CHK_SpD; + private System.Windows.Forms.CheckBox CHK_SpA; + private System.Windows.Forms.CheckBox CHK_DEF; + private System.Windows.Forms.CheckBox CHK_ATK; + private System.Windows.Forms.CheckBox CHK_HP; + private System.Windows.Forms.PictureBox PB_PKM; + private System.Windows.Forms.Label L_Class; + private System.Windows.Forms.Button B_Remove; + private System.Windows.Forms.Button B_Set; + private System.Windows.Forms.ListBox LB_Choices; + private System.Windows.Forms.ComboBox CB_Class; + private System.Windows.Forms.Label L_Form; + private System.Windows.Forms.NumericUpDown NUD_Form; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen7/MaisonEditor7.cs b/pk3DS.WinForms/Subforms/Gen7/MaisonEditor7.cs new file mode 100644 index 0000000000..f0afd352d4 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen7/MaisonEditor7.cs @@ -0,0 +1,271 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Media; +using System.Text; +using System.Windows.Forms; + +using pk3DS.Core; +using pk3DS.Core.Structures; + +namespace pk3DS.WinForms; + +public partial class MaisonEditor7 : Form +{ + public MaisonEditor7(byte[][] trd, byte[][] trp, bool royal) + { + trFiles = trd; + pkFiles = trp; + Array.Resize(ref specieslist, Main.Config.MaxSpeciesID + 1); + movelist[0] = specieslist[0] = itemlist[0] = ""; + + trNames = Main.Config.GetText(royal ? TextName.BattleRoyalNames : TextName.BattleTreeNames); Array.Resize(ref trNames, trFiles.Length); + + InitializeComponent(); + Setup(); + } + + private readonly byte[][] trFiles; + private readonly string[] trNames; + private readonly byte[][] pkFiles; + private readonly string[] natures = Main.Config.GetText(TextName.Natures); + private readonly string[] movelist = Main.Config.GetText(TextName.MoveNames); + private readonly string[] specieslist = Main.Config.GetText(TextName.SpeciesNames); + private readonly string[] trClass = Main.Config.GetText(TextName.TrainerClasses); + private readonly string[] itemlist = Main.Config.GetText(TextName.ItemNames); + private int trEntry = -1; + private int pkEntry = -1; + private bool dumping; + + private void Setup() + { + for (int i = 0; i < trClass.Length; i++) + CB_Class.Items.Add($"{trClass[i]} - {i:000}"); + CB_Species.Items.AddRange(specieslist); + CB_Move1.Items.AddRange(movelist); + CB_Move2.Items.AddRange(movelist); + CB_Move3.Items.AddRange(movelist); + CB_Move4.Items.AddRange(movelist); + CB_Nature.Items.AddRange(natures); + CB_Item.Items.AddRange(itemlist); + for (int i = 0; i < trNames.Length; i++) + CB_Trainer.Items.Add($"{trNames[i] ?? "UNKNOWN"} - {i:000}"); + for (int i = 0; i < pkFiles.Length; i++) CB_Pokemon.Items.Add(i.ToString()); + + CB_Trainer.SelectedIndex = 1; + } + + private void ChangeTrainer(object sender, EventArgs e) + { + SetTrainer(); + trEntry = CB_Trainer.SelectedIndex; + GetTrainer(); + if (GB_Trainer.Enabled) + LB_Choices.SelectedIndex = 0; + } + + private void ChangePokemon(object sender, EventArgs e) + { + SetPokemon(); + pkEntry = CB_Pokemon.SelectedIndex; + GetPokemon(); + } + + private void GetTrainer() + { + if (trEntry < 0) return; + + // Get + LB_Choices.Items.Clear(); + var tr = new Maison7.Trainer(trFiles[trEntry]); + + CB_Class.SelectedIndex = tr.Class; + GB_Trainer.Enabled = tr.Count > 0; + + foreach (ushort Entry in tr.Choices) + LB_Choices.Items.Add(Entry.ToString()); + } + + private void SetTrainer() + { + if (trEntry < 0 || !GB_Trainer.Enabled || dumping) return; + // Gather + var tr = new Maison7.Trainer + { + Class = (ushort)CB_Class.SelectedIndex, + Count = (ushort)LB_Choices.Items.Count, + }; + tr.Choices = new ushort[tr.Count]; + for (int i = 0; i < tr.Count; i++) + tr.Choices[i] = Convert.ToUInt16(LB_Choices.Items[i].ToString()); + Array.Sort(tr.Choices); + trFiles[trEntry] = tr.Write(); + } + + private void GetPokemon() + { + if (pkEntry < 0 || dumping) return; + var pkm = new Maison7.Pokemon(pkFiles[pkEntry]); + + // Get + CB_Move1.SelectedIndex = pkm.Moves[0]; + CB_Move2.SelectedIndex = pkm.Moves[1]; + CB_Move3.SelectedIndex = pkm.Moves[2]; + CB_Move4.SelectedIndex = pkm.Moves[3]; + CHK_HP.Checked = pkm.HP; + CHK_ATK.Checked = pkm.ATK; + CHK_DEF.Checked = pkm.DEF; + CHK_Spe.Checked = pkm.SPE; + CHK_SpA.Checked = pkm.SPA; + CHK_SpD.Checked = pkm.SPD; + CB_Nature.SelectedIndex = pkm.Nature; + CB_Item.SelectedIndex = pkm.Item; + NUD_Form.Value = pkm.Form; + + CB_Species.SelectedIndex = pkm.Species; // Loaded last in order to refresh the sprite with all info. + // Last 2 Bytes are unused. + } + + private void SetPokemon() + { + if (pkEntry < 0 || dumping) return; + + // Each File is 16 Bytes. + var pkm = new Maison7.Pokemon(pkFiles[pkEntry]) + { + Species = (ushort)CB_Species.SelectedIndex, + HP = CHK_HP.Checked, + ATK = CHK_ATK.Checked, + DEF = CHK_DEF.Checked, + SPE = CHK_Spe.Checked, + SPA = CHK_SpA.Checked, + SPD = CHK_SpD.Checked, + Nature = (byte)CB_Nature.SelectedIndex, + Item = (ushort)CB_Item.SelectedIndex, + Move1 = CB_Move1.SelectedIndex, + Move2 = CB_Move2.SelectedIndex, + Move3 = CB_Move3.SelectedIndex, + Move4 = CB_Move4.SelectedIndex, + Form = (ushort)NUD_Form.Value, + }; + + byte[] data = pkm.Write(); + pkFiles[pkEntry] = data; + } + + private void ChangeSpecies(object sender, EventArgs e) + { + PB_PKM.Image = WinFormsUtil.GetSprite(CB_Species.SelectedIndex, (int)NUD_Form.Value, 0, CB_Item.SelectedIndex, Main.Config); + } + + private void B_Remove_Click(object sender, EventArgs e) + { + if (LB_Choices.SelectedIndex > -1 && GB_Trainer.Enabled) + LB_Choices.Items.RemoveAt(LB_Choices.SelectedIndex); + } + + private void B_Set_Click(object sender, EventArgs e) + { + if (LB_Choices.SelectedIndex <= -1 || !GB_Trainer.Enabled) return; + + int toAdd = CB_Pokemon.SelectedIndex; + int count = LB_Choices.Items.Count; + List choices = []; + for (int i = 0; i < count; i++) + choices.Add(Convert.ToUInt16(LB_Choices.Items[i].ToString())); + + if (Array.IndexOf(choices.ToArray(), toAdd) > 0) return; // Abort if already in the list + choices.Add((ushort)toAdd); // Add it to the list. + + // Get new list, and sort it. + ushort[] choiceList = [.. choices]; Array.Sort(choiceList); + + // Set new list. + LB_Choices.Items.Clear(); + foreach (ushort t in choiceList) + LB_Choices.Items.Add(t.ToString()); + + // Set current index to the one just added. + LB_Choices.SelectedIndex = Array.IndexOf(choiceList, toAdd); + } + + private void B_View_Click(object sender, EventArgs e) + { + if (LB_Choices.SelectedIndex > -1 && GB_Trainer.Enabled) + CB_Pokemon.SelectedIndex = Convert.ToUInt16(LB_Choices.Items[LB_Choices.SelectedIndex].ToString()); + } + + private void Form_Closing(object sender, FormClosingEventArgs e) + { + SetTrainer(); + SetPokemon(); + } + + private void DumpTRs_Click(object sender, EventArgs e) + { + dumping = true; + string result = ""; + for (int i = 0; i < CB_Trainer.Items.Count; i++) + { + CB_Trainer.SelectedIndex = i; + int count = LB_Choices.Items.Count; + if (count > 0) + { + result += "======" + Environment.NewLine + i + " - (" + CB_Class.Text + ") " + CB_Trainer.Text + Environment.NewLine + "======" + Environment.NewLine; + result += "Choices: "; + for (int c = 0; c < count; c++) + result += LB_Choices.Items[c] + ", "; + + result += Environment.NewLine; result += Environment.NewLine; + } + } + var sfd = new SaveFileDialog { FileName = "Maison Trainers.txt", Filter = "Text File|*.txt" }; + + SystemSounds.Asterisk.Play(); + if (sfd.ShowDialog() == DialogResult.OK) + { + string path = sfd.FileName; + File.WriteAllText(path, result, Encoding.Unicode); + } + dumping = false; + CB_Trainer.SelectedIndex = 0; + } + + private void B_DumpPKs_Click(object sender, EventArgs e) + { + //File.WriteAllBytes("maiz", pkFiles.SelectMany(t => t).ToArray()); + string[] stats = ["HP", "ATK", "DEF", "Spe", "SpA", "SpD"]; + string result = ""; + for (int i = 0; i < pkFiles.Length; i++) + { + var pk = new Maison7.Pokemon(pkFiles[i]); + if (pk.Species == 0) + continue; + + result += "======" + Environment.NewLine; + result += $"{i} - {specieslist[pk.Species]}" + Environment.NewLine; + result += "======" + Environment.NewLine; + result += $"Held Item: {itemlist[pk.Item]}" + Environment.NewLine; + result += $"Nature: {natures[pk.Nature]}" + Environment.NewLine; + result += $"Move 1: {movelist[pk.Move1]}" + Environment.NewLine; + result += $"Move 2: {movelist[pk.Move2]}" + Environment.NewLine; + result += $"Move 3: {movelist[pk.Move3]}" + Environment.NewLine; + result += $"Move 4: {movelist[pk.Move4]}" + Environment.NewLine; + + var EVstr = string.Join(",", pk.EVs.Select((iv, x) => iv ? stats[x] : string.Empty).Where(x => !string.IsNullOrWhiteSpace(x))); + result += $"EV'd in: {(pk.EVs.Length > 0 ? EVstr : "None")}" + Environment.NewLine; + + if (pk.Form > 0) + result += $"Form: {pk.Form}" + Environment.NewLine; + + result += Environment.NewLine; + } + var sfd = new SaveFileDialog { FileName = "Maison Pokemon.txt", Filter = "Text File|*.txt" }; + + if (sfd.ShowDialog() != DialogResult.OK) + return; + + File.WriteAllText(sfd.FileName, result, Encoding.Unicode); + } +} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/MaisonEditor7.resx b/pk3DS.WinForms/Subforms/Gen7/MaisonEditor7.resx similarity index 100% rename from pk3DS/Subforms/Gen7/MaisonEditor7.resx rename to pk3DS.WinForms/Subforms/Gen7/MaisonEditor7.resx diff --git a/pk3DS.WinForms/Subforms/Gen7/MartEditor7.Designer.cs b/pk3DS.WinForms/Subforms/Gen7/MartEditor7.Designer.cs new file mode 100644 index 0000000000..ea7cf79a83 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen7/MartEditor7.Designer.cs @@ -0,0 +1,260 @@ +namespace pk3DS.WinForms; + +partial class MartEditor7 +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); + this.CB_Location = new System.Windows.Forms.ComboBox(); + this.dgv = new System.Windows.Forms.DataGridView(); + this.dgvIndex = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dgvItem = new System.Windows.Forms.DataGridViewComboBoxColumn(); + this.L_Mart = new System.Windows.Forms.Label(); + this.B_Randomize = new System.Windows.Forms.Button(); + this.B_Save = new System.Windows.Forms.Button(); + this.B_Cancel = new System.Windows.Forms.Button(); + this.label1 = new System.Windows.Forms.Label(); + this.CB_LocationBP = new System.Windows.Forms.ComboBox(); + this.B_RandomizeBP = new System.Windows.Forms.Button(); + this.dgvbp = new System.Windows.Forms.DataGridView(); + this.dgvIndexBP = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dgvItemBP = new System.Windows.Forms.DataGridViewComboBoxColumn(); + this.dgvPriceBP = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.CHK_XItems = new System.Windows.Forms.CheckBox(); + ((System.ComponentModel.ISupportInitialize)(this.dgv)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvbp)).BeginInit(); + this.SuspendLayout(); + // + // CB_Location + // + this.CB_Location.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_Location.FormattingEnabled = true; + this.CB_Location.Location = new System.Drawing.Point(69, 6); + this.CB_Location.Name = "CB_Location"; + this.CB_Location.Size = new System.Drawing.Size(243, 21); + this.CB_Location.TabIndex = 0; + this.CB_Location.SelectedIndexChanged += new System.EventHandler(this.ChangeIndex); + // + // dgv + // + this.dgv.AllowUserToAddRows = false; + this.dgv.AllowUserToDeleteRows = false; + this.dgv.AllowUserToResizeColumns = false; + this.dgv.AllowUserToResizeRows = false; + this.dgv.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgv.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.dgvIndex, + this.dgvItem}); + this.dgv.Location = new System.Drawing.Point(12, 33); + this.dgv.Name = "dgv"; + this.dgv.Size = new System.Drawing.Size(300, 284); + this.dgv.TabIndex = 1; + // + // dgvIndex + // + dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + this.dgvIndex.DefaultCellStyle = dataGridViewCellStyle1; + this.dgvIndex.HeaderText = "Index"; + this.dgvIndex.Name = "dgvIndex"; + this.dgvIndex.ReadOnly = true; + this.dgvIndex.Width = 45; + // + // dgvItem + // + this.dgvItem.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.dgvItem.HeaderText = "Item"; + this.dgvItem.Name = "dgvItem"; + this.dgvItem.Width = 135; + // + // L_Mart + // + this.L_Mart.AutoSize = true; + this.L_Mart.Location = new System.Drawing.Point(12, 9); + this.L_Mart.Name = "L_Mart"; + this.L_Mart.Size = new System.Drawing.Size(51, 13); + this.L_Mart.TabIndex = 2; + this.L_Mart.Text = "Location:"; + // + // B_Randomize + // + this.B_Randomize.Location = new System.Drawing.Point(12, 326); + this.B_Randomize.Name = "B_Randomize"; + this.B_Randomize.Size = new System.Drawing.Size(87, 23); + this.B_Randomize.TabIndex = 3; + this.B_Randomize.Text = "Randomize"; + this.B_Randomize.UseVisualStyleBackColor = true; + this.B_Randomize.Click += new System.EventHandler(this.B_Randomize_Click); + // + // B_Save + // + this.B_Save.Location = new System.Drawing.Point(559, 326); + this.B_Save.Name = "B_Save"; + this.B_Save.Size = new System.Drawing.Size(68, 23); + this.B_Save.TabIndex = 4; + this.B_Save.Text = "Save"; + this.B_Save.UseVisualStyleBackColor = true; + this.B_Save.Click += new System.EventHandler(this.B_Save_Click); + // + // B_Cancel + // + this.B_Cancel.Location = new System.Drawing.Point(485, 326); + this.B_Cancel.Name = "B_Cancel"; + this.B_Cancel.Size = new System.Drawing.Size(68, 23); + this.B_Cancel.TabIndex = 5; + this.B_Cancel.Text = "Cancel"; + this.B_Cancel.UseVisualStyleBackColor = true; + this.B_Cancel.Click += new System.EventHandler(this.B_Cancel_Click); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(327, 9); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(51, 13); + this.label1.TabIndex = 8; + this.label1.Text = "Location:"; + // + // CB_LocationBP + // + this.CB_LocationBP.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_LocationBP.FormattingEnabled = true; + this.CB_LocationBP.Location = new System.Drawing.Point(384, 6); + this.CB_LocationBP.Name = "CB_LocationBP"; + this.CB_LocationBP.Size = new System.Drawing.Size(243, 21); + this.CB_LocationBP.TabIndex = 6; + this.CB_LocationBP.SelectedIndexChanged += new System.EventHandler(this.ChangeIndexBP); + // + // B_RandomizeBP + // + this.B_RandomizeBP.Location = new System.Drawing.Point(327, 326); + this.B_RandomizeBP.Name = "B_RandomizeBP"; + this.B_RandomizeBP.Size = new System.Drawing.Size(87, 23); + this.B_RandomizeBP.TabIndex = 9; + this.B_RandomizeBP.Text = "Randomize"; + this.B_RandomizeBP.UseVisualStyleBackColor = true; + this.B_RandomizeBP.Click += new System.EventHandler(this.B_RandomizeBP_Click); + // + // dgvbp + // + this.dgvbp.AllowUserToAddRows = false; + this.dgvbp.AllowUserToDeleteRows = false; + this.dgvbp.AllowUserToResizeColumns = false; + this.dgvbp.AllowUserToResizeRows = false; + this.dgvbp.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvbp.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.dgvIndexBP, + this.dgvItemBP, + this.dgvPriceBP}); + this.dgvbp.Location = new System.Drawing.Point(327, 33); + this.dgvbp.Name = "dgvbp"; + this.dgvbp.Size = new System.Drawing.Size(300, 284); + this.dgvbp.TabIndex = 10; + // + // dgvIndexBP + // + dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + this.dgvIndexBP.DefaultCellStyle = dataGridViewCellStyle2; + this.dgvIndexBP.HeaderText = "Index"; + this.dgvIndexBP.MaxInputLength = 3; + this.dgvIndexBP.Name = "dgvIndexBP"; + this.dgvIndexBP.ReadOnly = true; + this.dgvIndexBP.Width = 45; + // + // dgvItemBP + // + this.dgvItemBP.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.dgvItemBP.HeaderText = "Item"; + this.dgvItemBP.Name = "dgvItemBP"; + this.dgvItemBP.Width = 135; + // + // dgvPriceBP + // + this.dgvPriceBP.HeaderText = "Price"; + this.dgvPriceBP.MaxInputLength = 3; + this.dgvPriceBP.Name = "dgvPriceBP"; + this.dgvPriceBP.Width = 65; + // + // CHK_XItems + // + this.CHK_XItems.AutoSize = true; + this.CHK_XItems.Checked = true; + this.CHK_XItems.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_XItems.Location = new System.Drawing.Point(106, 330); + this.CHK_XItems.Name = "CHK_XItems"; + this.CHK_XItems.Size = new System.Drawing.Size(200, 17); + this.CHK_XItems.TabIndex = 304; + this.CHK_XItems.Text = "Don\'t Randomize X Items (Speedrun)"; + this.CHK_XItems.UseVisualStyleBackColor = true; + // + // MartEditor7 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(639, 361); + this.Controls.Add(this.CHK_XItems); + this.Controls.Add(this.dgvbp); + this.Controls.Add(this.B_RandomizeBP); + this.Controls.Add(this.label1); + this.Controls.Add(this.CB_LocationBP); + this.Controls.Add(this.B_Cancel); + this.Controls.Add(this.B_Save); + this.Controls.Add(this.B_Randomize); + this.Controls.Add(this.L_Mart); + this.Controls.Add(this.dgv); + this.Controls.Add(this.CB_Location); + this.MaximizeBox = false; + this.MinimumSize = new System.Drawing.Size(340, 400); + this.Name = "MartEditor7"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Mart Editor"; + ((System.ComponentModel.ISupportInitialize)(this.dgv)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvbp)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.ComboBox CB_Location; + private System.Windows.Forms.DataGridView dgv; + private System.Windows.Forms.Label L_Mart; + private System.Windows.Forms.Button B_Randomize; + private System.Windows.Forms.Button B_Save; + private System.Windows.Forms.Button B_Cancel; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.ComboBox CB_LocationBP; + private System.Windows.Forms.Button B_RandomizeBP; + private System.Windows.Forms.DataGridViewComboBoxColumn dgvItem; + private System.Windows.Forms.DataGridViewTextBoxColumn dgvIndex; + private System.Windows.Forms.DataGridView dgvbp; + private System.Windows.Forms.DataGridViewTextBoxColumn dgvIndexBP; + private System.Windows.Forms.DataGridViewComboBoxColumn dgvItemBP; + private System.Windows.Forms.DataGridViewTextBoxColumn dgvPriceBP; + private System.Windows.Forms.CheckBox CHK_XItems; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen7/MartEditor7.cs b/pk3DS.WinForms/Subforms/Gen7/MartEditor7.cs new file mode 100644 index 0000000000..18ba29ea71 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen7/MartEditor7.cs @@ -0,0 +1,287 @@ +using pk3DS.Core; +using System; +using System.Collections.Generic; +using System.IO; +using System.Windows.Forms; + +namespace pk3DS.WinForms; + +public partial class MartEditor7 : Form +{ + private readonly string CROPath = Path.Combine(Main.RomFSPath, "Shop.cro"); + + public MartEditor7() + { + if (!File.Exists(CROPath)) + { + WinFormsUtil.Error("CRO does not exist! Closing.", CROPath); + Close(); + } + InitializeComponent(); + + data = File.ReadAllBytes(CROPath); + offset = Util.IndexOfBytes(data, Signature, 0x5000, 0) + Signature.Length; + offsetBP = Util.IndexOfBytes(data, BPSignature, 0x5000, 0) + BPSignature.Length; + + itemlist[0] = ""; + SetupDGV(); + CB_Location.Items.AddRange(locations); + CB_LocationBP.Items.AddRange(locationsBP); + CB_Location.SelectedIndex = 0; + CB_LocationBP.SelectedIndex = 0; + } + + private readonly string[] itemlist = Main.Config.GetText(TextName.ItemNames); + private readonly byte[] data; + + #region Tables + private readonly byte[] Signature = // Leadup to the Shop Data, the shop arrays are the 3rd data array in the rodata section. + [ + 0x2D, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, + 0x10, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, + ]; + + private readonly byte[] BPSignature = // 2 arrays after the regular shops, the BP shops start. Skip over the second one to get BP offset. + [ + 0x09, 0x0B, 0x0D, 0x0F, 0x11, 0x13, 0x14, 0x15, 0x09, 0x04, 0x08, 0x0C, 0x05, 0x04, 0x0B, 0x03, + 0x0A, 0x06, 0x0A, 0x06, 0x04, 0x05, 0x07, 0x01, + ]; + + private readonly byte[] entries = + [ + 9, 11, 13, 15, 17, 19, 20, 21, // Regular Mart + 9, // KoniKoni Incense + 4, // KoniKoni Herb + 8, // Hau'oli Battle + 12, // Route 2 + 5, // Heahea + 4, // Royal Avenue + 11, // Route 8 + 3, // Paniola + 10, // Malie TMs + 6, // Mount Hokulani + 10, // Seafolk TM + 6, // KoniKoni TM + 4, // KoniKoni Jewelry + 5, // Thrifty 1 + 7, // Thrifty 2 + 1, // Thrifty 3 (Souvenir) + ]; + + private readonly string[] locations = + [ + "No Trials", "1 Trial", "2 Trials", "3 Trials", "4 Trials", "5 Trials", "6 Trials", "7 Trials", + "Konikoni City [Incenses]", + "Konikoni City [Herbs]", + "Hau'oli City [X Items]", + "Route 2 [Misc]", + "Heahea City [TMs]", + "Royal Avenue [TMs]", + "Route 8 [Misc]", + "Paniola Town [Poké Balls]", + "Malie City [TMs]", + "Mount Hokulani [Vitamins]", + "Seafolk Village [TMs]", + "Konikoni City [TMs]", + "Konikoni City [Stones]", + "Thrifty Megamart, Left [Poké Balls]", + "Thrifty Megamart, Middle [Misc]", + "Thrifty Megamart, Right [Strange Souvenir]", + ]; + + private readonly int[] entriesBP = + [ + 8, // Royal 1 (Abil Capsule) + 7, // Royal 2 + 18, // Royal 3 + 12, // Tree 1 + 21, // Tree 2 + 16, // Tree 3 + ]; + + private readonly string[] locationsBP = + [ + "Battle Royal Dome [Medicine]", + "Battle Royal Dome [EV Training]", + "Battle Royal Dome [Held Items]", + "Battle Tree [Trade Evolution Items]", + "Battle Tree [Held Items]", + "Battle Tree [Mega Stones]", + ]; + #endregion + + private void B_Save_Click(object sender, EventArgs e) + { + if (entry > -1) SetList(); + if (entryBP > -1) SetListBP(); + File.WriteAllBytes(CROPath, data); + Close(); + } + + private void B_Cancel_Click(object sender, EventArgs e) + { + Close(); + } + + private readonly int offset; + private int dataoffset; + + private void GetDataOffset(int index) + { + dataoffset = offset; // reset + for (int i = 0; i < index; i++) + dataoffset += 2 * entries[i]; + } + + private void SetupDGV() + { + dgvItem.Items.AddRange(itemlist); // add only the Names + dgvItemBP.Items.AddRange(itemlist); // add only the Names + } + + private int entry = -1; + + private void ChangeIndex(object sender, EventArgs e) + { + if (entry > -1) SetList(); + entry = CB_Location.SelectedIndex; + GetList(); + } + + private void GetList() + { + dgv.Rows.Clear(); + int count = entries[entry]; + dgv.Rows.Add(count); + GetDataOffset(entry); + for (int i = 0; i < count; i++) + { + dgv.Rows[i].Cells[0].Value = i.ToString(); + dgv.Rows[i].Cells[1].Value = itemlist[BitConverter.ToUInt16(data, dataoffset + (2 * i))]; + } + } + + private void SetList() + { + int count = dgv.Rows.Count; + for (int i = 0; i < count; i++) + Array.Copy(BitConverter.GetBytes((ushort)Array.IndexOf(itemlist, dgv.Rows[i].Cells[1].Value)), 0, data, dataoffset + (2 * i), 2); + } + + /// + /// Just TMs & HMs; don't want these to be changed; if changed, they are not available elsewhere ingame. + /// + internal static readonly HashSet BannedItems = + [ + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 618, 619, 620, 690, 691, + 692, 693, 694, 701, 737, + ]; + + /// + /// All X Items usable in Generations 6 and 7. Speedrunners utilize these Items a lot, so make sure they are still available. + /// + internal static readonly HashSet XItems = [055, 056, 057, 058, 059, 060, 061, 062]; + + private void B_Randomize_Click(object sender, EventArgs e) + { + if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Randomize mart inventories?")) + return; + + int[] validItems = Randomizer.GetRandomItemList(); + + int ctr = 0; + Util.Shuffle(validItems); + + bool specialOnly = DialogResult.Yes == WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomize only special marts?", "Will leave regular necessities intact."); + int start = specialOnly ? 8 : 0; + for (int i = start; i < CB_Location.Items.Count; i++) + { + CB_Location.SelectedIndex = i; + for (int r = 0; r < dgv.Rows.Count; r++) + { + int currentItem = Array.IndexOf(itemlist, dgv.Rows[r].Cells[1].Value); + if (CHK_XItems.Checked && XItems.Contains(currentItem)) + continue; + if (BannedItems.Contains(currentItem)) + continue; + dgv.Rows[r].Cells[1].Value = itemlist[validItems[ctr++]]; + if (ctr <= validItems.Length) continue; + Util.Shuffle(validItems); ctr = 0; + } + } + WinFormsUtil.Alert("Randomized!"); + } + + private void GetDataOffsetBP(int index) + { + dataoffsetBP = offsetBP; // reset + for (int i = 0; i < index; i++) + dataoffsetBP += 4 * entriesBP[i]; + } + + private readonly int offsetBP; + private int dataoffsetBP; + private int entryBP = -1; + + private void ChangeIndexBP(object sender, EventArgs e) + { + if (entryBP > -1) SetListBP(); + entryBP = CB_LocationBP.SelectedIndex; + GetListBP(); + } + + private void GetListBP() + { + dgvbp.Rows.Clear(); + int count = entriesBP[entryBP]; + dgvbp.Rows.Add(count); + GetDataOffsetBP(entryBP); + for (int i = 0; i < count; i++) + { + dgvbp.Rows[i].Cells[0].Value = i.ToString(); + dgvbp.Rows[i].Cells[1].Value = itemlist[BitConverter.ToUInt16(data, dataoffsetBP + (4 * i))]; + dgvbp.Rows[i].Cells[2].Value = BitConverter.ToUInt16(data, dataoffsetBP + (4 * i) + 2).ToString(); + } + } + + private void SetListBP() + { + int count = dgvbp.Rows.Count; + for (int i = 0; i < count; i++) + { + int item = Array.IndexOf(itemlist, dgvbp.Rows[i].Cells[1].Value); + Array.Copy(BitConverter.GetBytes((ushort)item), 0, data, dataoffsetBP + (4 * i), 2); + string p = dgvbp.Rows[i].Cells[2].Value.ToString(); + if (int.TryParse(p, out var price)) + Array.Copy(BitConverter.GetBytes((ushort)price), 0, data, dataoffsetBP + (4 * i) + 2, 2); + } + } + + private void B_RandomizeBP_Click(object sender, EventArgs e) + { + if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Randomize BP inventories?")) + return; + + int[] validItems = Randomizer.GetRandomItemList(); + + int ctr = 0; + Util.Shuffle(validItems); + + for (int i = 0; i < CB_LocationBP.Items.Count; i++) + { + CB_LocationBP.SelectedIndex = i; + for (int r = 0; r < dgvbp.Rows.Count; r++) + { + dgvbp.Rows[r].Cells[1].Value = itemlist[validItems[ctr++]]; + if (ctr <= validItems.Length) continue; + Util.Shuffle(validItems); ctr = 0; + } + } + WinFormsUtil.Alert("Randomized!"); + } +} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/MartEditor7.resx b/pk3DS.WinForms/Subforms/Gen7/MartEditor7.resx similarity index 94% rename from pk3DS/Subforms/Gen7/MartEditor7.resx rename to pk3DS.WinForms/Subforms/Gen7/MartEditor7.resx index ebef7fda3d..8af5c467a4 100644 --- a/pk3DS/Subforms/Gen7/MartEditor7.resx +++ b/pk3DS.WinForms/Subforms/Gen7/MartEditor7.resx @@ -123,12 +123,6 @@ True - - True - - - True - True diff --git a/pk3DS.WinForms/Subforms/Gen7/MartEditor7UU.Designer.cs b/pk3DS.WinForms/Subforms/Gen7/MartEditor7UU.Designer.cs new file mode 100644 index 0000000000..ef6aef6aa2 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen7/MartEditor7UU.Designer.cs @@ -0,0 +1,308 @@ +namespace pk3DS.WinForms; + +partial class MartEditor7UU +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); + this.CB_Location = new System.Windows.Forms.ComboBox(); + this.dgv = new System.Windows.Forms.DataGridView(); + this.dgvIndex = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dgvItem = new System.Windows.Forms.DataGridViewComboBoxColumn(); + this.L_Mart = new System.Windows.Forms.Label(); + this.B_Randomize = new System.Windows.Forms.Button(); + this.B_Save = new System.Windows.Forms.Button(); + this.B_Cancel = new System.Windows.Forms.Button(); + this.label1 = new System.Windows.Forms.Label(); + this.CB_LocationBPItem = new System.Windows.Forms.ComboBox(); + this.dgvbp = new System.Windows.Forms.DataGridView(); + this.dgvIndexBP = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dgvItemBP = new System.Windows.Forms.DataGridViewComboBoxColumn(); + this.dgvPriceBP = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.tabControl1 = new System.Windows.Forms.TabControl(); + this.tabPage1 = new System.Windows.Forms.TabPage(); + this.tabPage2 = new System.Windows.Forms.TabPage(); + this.CHK_XItems = new System.Windows.Forms.CheckBox(); + ((System.ComponentModel.ISupportInitialize)(this.dgv)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvbp)).BeginInit(); + this.tabControl1.SuspendLayout(); + this.tabPage1.SuspendLayout(); + this.tabPage2.SuspendLayout(); + this.SuspendLayout(); + // + // CB_Location + // + this.CB_Location.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.CB_Location.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_Location.FormattingEnabled = true; + this.CB_Location.Location = new System.Drawing.Point(60, 3); + this.CB_Location.Name = "CB_Location"; + this.CB_Location.Size = new System.Drawing.Size(254, 21); + this.CB_Location.TabIndex = 0; + this.CB_Location.SelectedIndexChanged += new System.EventHandler(this.ChangeIndexItem); + // + // dgv + // + this.dgv.AllowUserToAddRows = false; + this.dgv.AllowUserToDeleteRows = false; + this.dgv.AllowUserToResizeColumns = false; + this.dgv.AllowUserToResizeRows = false; + this.dgv.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dgv.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgv.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.dgvIndex, + this.dgvItem}); + this.dgv.Location = new System.Drawing.Point(0, 27); + this.dgv.Name = "dgv"; + this.dgv.Size = new System.Drawing.Size(317, 265); + this.dgv.TabIndex = 1; + // + // dgvIndex + // + dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + this.dgvIndex.DefaultCellStyle = dataGridViewCellStyle1; + this.dgvIndex.HeaderText = "Index"; + this.dgvIndex.Name = "dgvIndex"; + this.dgvIndex.ReadOnly = true; + this.dgvIndex.Width = 45; + // + // dgvItem + // + this.dgvItem.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.dgvItem.HeaderText = "Item"; + this.dgvItem.Name = "dgvItem"; + this.dgvItem.Width = 135; + // + // L_Mart + // + this.L_Mart.AutoSize = true; + this.L_Mart.Location = new System.Drawing.Point(6, 6); + this.L_Mart.Name = "L_Mart"; + this.L_Mart.Size = new System.Drawing.Size(51, 13); + this.L_Mart.TabIndex = 2; + this.L_Mart.Text = "Location:"; + // + // B_Randomize + // + this.B_Randomize.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.B_Randomize.Location = new System.Drawing.Point(12, 336); + this.B_Randomize.Name = "B_Randomize"; + this.B_Randomize.Size = new System.Drawing.Size(87, 23); + this.B_Randomize.TabIndex = 3; + this.B_Randomize.Text = "Randomize"; + this.B_Randomize.UseVisualStyleBackColor = true; + this.B_Randomize.Click += new System.EventHandler(this.B_Randomize_Click); + // + // B_Save + // + this.B_Save.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.B_Save.Location = new System.Drawing.Point(265, 336); + this.B_Save.Name = "B_Save"; + this.B_Save.Size = new System.Drawing.Size(68, 23); + this.B_Save.TabIndex = 4; + this.B_Save.Text = "Save"; + this.B_Save.UseVisualStyleBackColor = true; + this.B_Save.Click += new System.EventHandler(this.B_Save_Click); + // + // B_Cancel + // + this.B_Cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.B_Cancel.Location = new System.Drawing.Point(191, 336); + this.B_Cancel.Name = "B_Cancel"; + this.B_Cancel.Size = new System.Drawing.Size(68, 23); + this.B_Cancel.TabIndex = 5; + this.B_Cancel.Text = "Cancel"; + this.B_Cancel.UseVisualStyleBackColor = true; + this.B_Cancel.Click += new System.EventHandler(this.B_Cancel_Click); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(6, 6); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(51, 13); + this.label1.TabIndex = 8; + this.label1.Text = "Location:"; + // + // CB_LocationBPItem + // + this.CB_LocationBPItem.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.CB_LocationBPItem.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_LocationBPItem.FormattingEnabled = true; + this.CB_LocationBPItem.Location = new System.Drawing.Point(60, 3); + this.CB_LocationBPItem.Name = "CB_LocationBPItem"; + this.CB_LocationBPItem.Size = new System.Drawing.Size(254, 21); + this.CB_LocationBPItem.TabIndex = 6; + this.CB_LocationBPItem.SelectedIndexChanged += new System.EventHandler(this.ChangeIndexBPItem); + // + // dgvbp + // + this.dgvbp.AllowUserToAddRows = false; + this.dgvbp.AllowUserToDeleteRows = false; + this.dgvbp.AllowUserToResizeColumns = false; + this.dgvbp.AllowUserToResizeRows = false; + this.dgvbp.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dgvbp.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvbp.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.dgvIndexBP, + this.dgvItemBP, + this.dgvPriceBP}); + this.dgvbp.Location = new System.Drawing.Point(0, 27); + this.dgvbp.Name = "dgvbp"; + this.dgvbp.Size = new System.Drawing.Size(317, 241); + this.dgvbp.TabIndex = 10; + // + // dgvIndexBP + // + dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + this.dgvIndexBP.DefaultCellStyle = dataGridViewCellStyle2; + this.dgvIndexBP.HeaderText = "Index"; + this.dgvIndexBP.MaxInputLength = 3; + this.dgvIndexBP.Name = "dgvIndexBP"; + this.dgvIndexBP.ReadOnly = true; + this.dgvIndexBP.Width = 45; + // + // dgvItemBP + // + this.dgvItemBP.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.dgvItemBP.HeaderText = "Item"; + this.dgvItemBP.Name = "dgvItemBP"; + this.dgvItemBP.Width = 135; + // + // dgvPriceBP + // + this.dgvPriceBP.HeaderText = "Price"; + this.dgvPriceBP.MaxInputLength = 3; + this.dgvPriceBP.Name = "dgvPriceBP"; + this.dgvPriceBP.Width = 65; + // + // tabControl1 + // + this.tabControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tabControl1.Controls.Add(this.tabPage1); + this.tabControl1.Controls.Add(this.tabPage2); + this.tabControl1.Location = new System.Drawing.Point(12, 12); + this.tabControl1.Name = "tabControl1"; + this.tabControl1.SelectedIndex = 0; + this.tabControl1.Size = new System.Drawing.Size(325, 318); + this.tabControl1.TabIndex = 15; + // + // tabPage1 + // + this.tabPage1.Controls.Add(this.L_Mart); + this.tabPage1.Controls.Add(this.CB_Location); + this.tabPage1.Controls.Add(this.dgv); + this.tabPage1.Location = new System.Drawing.Point(4, 22); + this.tabPage1.Name = "tabPage1"; + this.tabPage1.Padding = new System.Windows.Forms.Padding(3); + this.tabPage1.Size = new System.Drawing.Size(317, 292); + this.tabPage1.TabIndex = 0; + this.tabPage1.Text = "Poké Mart"; + this.tabPage1.UseVisualStyleBackColor = true; + // + // tabPage2 + // + this.tabPage2.Controls.Add(this.CB_LocationBPItem); + this.tabPage2.Controls.Add(this.label1); + this.tabPage2.Controls.Add(this.dgvbp); + this.tabPage2.Location = new System.Drawing.Point(4, 22); + this.tabPage2.Name = "tabPage2"; + this.tabPage2.Padding = new System.Windows.Forms.Padding(3); + this.tabPage2.Size = new System.Drawing.Size(317, 268); + this.tabPage2.TabIndex = 1; + this.tabPage2.Text = "BP Items"; + this.tabPage2.UseVisualStyleBackColor = true; + // + // CHK_XItems + // + this.CHK_XItems.AutoSize = true; + this.CHK_XItems.Checked = true; + this.CHK_XItems.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_XItems.Location = new System.Drawing.Point(13, 364); + this.CHK_XItems.Name = "CHK_XItems"; + this.CHK_XItems.Size = new System.Drawing.Size(200, 17); + this.CHK_XItems.TabIndex = 304; + this.CHK_XItems.Text = "Don\'t Randomize X Items (Speedrun)"; + this.CHK_XItems.UseVisualStyleBackColor = true; + // + // MartEditor7UU + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(344, 387); + this.Controls.Add(this.CHK_XItems); + this.Controls.Add(this.tabControl1); + this.Controls.Add(this.B_Cancel); + this.Controls.Add(this.B_Save); + this.Controls.Add(this.B_Randomize); + this.MaximizeBox = false; + this.MinimumSize = new System.Drawing.Size(360, 300); + this.Name = "MartEditor7UU"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Mart Editor"; + ((System.ComponentModel.ISupportInitialize)(this.dgv)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.dgvbp)).EndInit(); + this.tabControl1.ResumeLayout(false); + this.tabPage1.ResumeLayout(false); + this.tabPage1.PerformLayout(); + this.tabPage2.ResumeLayout(false); + this.tabPage2.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.ComboBox CB_Location; + private System.Windows.Forms.DataGridView dgv; + private System.Windows.Forms.Label L_Mart; + private System.Windows.Forms.Button B_Randomize; + private System.Windows.Forms.Button B_Save; + private System.Windows.Forms.Button B_Cancel; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.ComboBox CB_LocationBPItem; + private System.Windows.Forms.DataGridViewComboBoxColumn dgvItem; + private System.Windows.Forms.DataGridViewTextBoxColumn dgvIndex; + private System.Windows.Forms.DataGridView dgvbp; + private System.Windows.Forms.DataGridViewTextBoxColumn dgvIndexBP; + private System.Windows.Forms.DataGridViewComboBoxColumn dgvItemBP; + private System.Windows.Forms.DataGridViewTextBoxColumn dgvPriceBP; + private System.Windows.Forms.TabControl tabControl1; + private System.Windows.Forms.TabPage tabPage1; + private System.Windows.Forms.TabPage tabPage2; + private System.Windows.Forms.CheckBox CHK_XItems; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen7/MartEditor7UU.cs b/pk3DS.WinForms/Subforms/Gen7/MartEditor7UU.cs new file mode 100644 index 0000000000..24ee3d1470 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen7/MartEditor7UU.cs @@ -0,0 +1,250 @@ +using pk3DS.Core; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Windows.Forms; + +namespace pk3DS.WinForms; + +public partial class MartEditor7UU : Form +{ + private readonly string CROPath = Path.Combine(Main.RomFSPath, "Shop.cro"); + + public MartEditor7UU() + { + if (!File.Exists(CROPath)) + { + WinFormsUtil.Error("CRO does not exist! Closing.", CROPath); + Close(); + } + InitializeComponent(); + + data = File.ReadAllBytes(CROPath); + //len_BPTutor = data.Skip(0x52D2).Take(4).ToArray(); + len_BPItem = data.Skip(0x52D2 + 4).Take(7).ToArray(); + len_Items = data.Skip(0x52D2 + 4 + 7).TakeWhile(z => (sbyte)z > 0).ToArray(); + + itemlist[0] = ""; + SetupDGV(); + CB_Location.Items.AddRange(locations); + CB_LocationBPItem.Items.AddRange(locationsBP); + CB_Location.SelectedIndex = + CB_LocationBPItem.SelectedIndex = 0; + } + + private const int ofs_Item = 0x50BC; + private const int ofs_BPItem = 0x52FA; + //private const int ofs_BPTutor = 0x54DE; + private readonly byte[] len_Items; + private readonly byte[] len_BPItem; + //private readonly byte[] len_BPTutor; + + private readonly string[] itemlist = Main.Config.GetText(TextName.ItemNames); + //private readonly string[] movelist = Main.Config.GetText(TextName.MoveNames); + private readonly byte[] data; + + #region Tables + private readonly string[] locations = + [ + "No Trials", "1 Trial", "2 Trials", "3 Trials", "4 Trials", "5 Trials", "6 Trials", "7 Trials", + "Konikoni City [Incenses]", + "Konikoni City [Herbs]", + "Hau'oli City [X Items]", + "Route 2 [Misc]", + "Heahea City [TMs]", + "Royal Avenue [TMs]", + "Route 8 [Misc]", + "Paniola Town [Poké Balls]", + "Malie City [TMs]", + "Mount Hokulani [Vitamins]", + "Seafolk Village [TMs]", + "Konikoni City [TMs]", + "Konikoni City [Stones]", + "Thrifty Megamart, Left [Poké Balls]", + "Thrifty Megamart, Middle [Misc]", + "Thrifty Megamart, Right [Strange Souvenir]", + "Route 3 [X Items]", + "Konikoni City [X Items]", + "Tapu Village [X Items]", + "Mount Lanakila [X Items]", + ]; + + private readonly string[] locationsBP = + [ + "Battle Royal Dome [Medicine]", + "Battle Royal Dome [EV Training]", + "Battle Royal Dome [Held Items]", + "Battle Tree [Trade Evolution Items]", + "Battle Tree [Held Items]", + "Battle Tree [Mega Stones]", + "Beaches [Medicine]", + ]; + #endregion + + private void B_Save_Click(object sender, EventArgs e) + { + if (entryItem > -1) SetListItem(); + if (entryBPItem > -1) SetListBPItem(); + File.WriteAllBytes(CROPath, data); + Close(); + } + + private void B_Cancel_Click(object sender, EventArgs e) => Close(); + + private void SetupDGV() + { + dgvItem.Items.AddRange(itemlist); // add only the Names + dgvItemBP.Items.AddRange(itemlist); // add only the Names + } + + private int entryItem = -1; + private int entryBPItem = -1; + + private void ChangeIndexItem(object sender, EventArgs e) + { + if (entryItem > -1) SetListItem(); + entryItem = CB_Location.SelectedIndex; + GetListItem(); + } + + private void ChangeIndexBPItem(object sender, EventArgs e) + { + if (entryBPItem > -1) SetListBPItem(); + entryBPItem = CB_LocationBPItem.SelectedIndex; + GetListBPItem(); + } + + private void GetListItem() + { + dgv.Rows.Clear(); + int count = len_Items[entryItem]; + dgv.Rows.Add(count); + var ofs = ofs_Item + (len_Items.Take(entryItem).Sum(z => z) * 2); + for (int i = 0; i < count; i++) + { + dgv.Rows[i].Cells[0].Value = i.ToString(); + dgv.Rows[i].Cells[1].Value = itemlist[BitConverter.ToUInt16(data, ofs + (2 * i))]; + } + } + + private void GetListBPItem() + { + dgvbp.Rows.Clear(); + int count = len_BPItem[entryBPItem]; + dgvbp.Rows.Add(count); + var ofs = ofs_BPItem + (len_BPItem.Take(entryBPItem).Sum(z => z) * 4); + for (int i = 0; i < count; i++) + { + dgvbp.Rows[i].Cells[0].Value = i.ToString(); + dgvbp.Rows[i].Cells[1].Value = itemlist[BitConverter.ToUInt16(data, ofs + (4 * i))]; + dgvbp.Rows[i].Cells[2].Value = BitConverter.ToUInt16(data, ofs + (4 * i) + 2).ToString(); + } + } + + private void SetListItem() + { + int count = dgv.Rows.Count; + var ofs = ofs_Item + (len_Items.Take(entryItem).Sum(z => z) * 2); + for (int i = 0; i < count; i++) + Array.Copy(BitConverter.GetBytes((ushort)Array.IndexOf(itemlist, dgv.Rows[i].Cells[1].Value)), 0, data, ofs + (2 * i), 2); + } + + private void SetListBPItem() + { + int count = dgvbp.Rows.Count; + var ofs = ofs_BPItem + (len_BPItem.Take(entryBPItem).Sum(z => z) * 4); + for (int i = 0; i < count; i++) + { + int item = Array.IndexOf(itemlist, dgvbp.Rows[i].Cells[1].Value); + Array.Copy(BitConverter.GetBytes((ushort)item), 0, data, ofs + (4 * i), 2); + string p = dgvbp.Rows[i].Cells[2].Value.ToString(); + if (int.TryParse(p, out var price)) + Array.Copy(BitConverter.GetBytes((ushort)price), 0, data, ofs + (4 * i) + 2, 2); + } + } + + private void B_Randomize_Click(object sender, EventArgs e) + { + switch (tabControl1.SelectedIndex) + { + case 0: + RandomizeItems(); + break; + case 1: + RandomizeBPItems(); + break; + } + } + + private void RandomizeItems() + { + if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Randomize mart inventories?")) + return; + + int[] validItems = Randomizer.GetRandomItemList(); + + int ctr = 0; + Util.Shuffle(validItems); + + bool specialOnly = DialogResult.Yes == WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomize only special marts?", "Will leave regular necessities intact."); + int start = specialOnly ? 8 : 0; + for (int i = start; i < CB_Location.Items.Count; i++) + { + CB_Location.SelectedIndex = i; + for (int r = 0; r < dgv.Rows.Count; r++) + { + int currentItem = Array.IndexOf(itemlist, dgv.Rows[r].Cells[1].Value); + if (CHK_XItems.Checked && XItems.Contains(currentItem)) + continue; + if (BannedItems.Contains(currentItem)) + continue; + dgv.Rows[r].Cells[1].Value = itemlist[validItems[ctr++]]; + if (ctr <= validItems.Length) continue; + Util.Shuffle(validItems); ctr = 0; + } + } + WinFormsUtil.Alert("Randomized!"); + } + + private void RandomizeBPItems() + { + if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Randomize BP inventories?")) + return; + + int[] validItems = Randomizer.GetRandomItemList(); + + int ctr = 0; + Util.Shuffle(validItems); + + for (int i = 0; i < CB_LocationBPItem.Items.Count; i++) + { + CB_LocationBPItem.SelectedIndex = i; + for (int r = 0; r < dgvbp.Rows.Count; r++) + { + dgvbp.Rows[r].Cells[1].Value = itemlist[validItems[ctr++]]; + if (ctr <= validItems.Length) continue; + Util.Shuffle(validItems); ctr = 0; + } + } + WinFormsUtil.Alert("Randomized!"); + } + + /// + /// Just TMs & HMs; don't want these to be changed; if changed, they are not available elsewhere ingame. + /// + internal static readonly HashSet BannedItems = + [ + 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, + 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, + 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 618, 619, 620, 690, 691, + 692, 693, 694, 701, 737, + ]; + + /// + /// All X Items usable in Generations 6 and 7. Speedrunners utilize these Items a lot, so make sure they are still available. + /// + internal static readonly HashSet XItems = [055, 056, 057, 058, 059, 060, 061, 062]; +} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/MartEditor7UU.resx b/pk3DS.WinForms/Subforms/Gen7/MartEditor7UU.resx similarity index 92% rename from pk3DS/Subforms/Gen7/MartEditor7UU.resx rename to pk3DS.WinForms/Subforms/Gen7/MartEditor7UU.resx index 88ba2a3377..8af5c467a4 100644 --- a/pk3DS/Subforms/Gen7/MartEditor7UU.resx +++ b/pk3DS.WinForms/Subforms/Gen7/MartEditor7UU.resx @@ -132,13 +132,4 @@ True - - True - - - True - - - True - \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen7/MegaEvoEditor7.Designer.cs b/pk3DS.WinForms/Subforms/Gen7/MegaEvoEditor7.Designer.cs new file mode 100644 index 0000000000..7e81df51d8 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen7/MegaEvoEditor7.Designer.cs @@ -0,0 +1,341 @@ +namespace pk3DS.WinForms; + +partial class MegaEvoEditor7 +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.LBL_Item1 = new System.Windows.Forms.Label(); + this.LBL_Forme1 = new System.Windows.Forms.Label(); + this.GB_MEvo1 = new System.Windows.Forms.GroupBox(); + this.LBL_Into1 = new System.Windows.Forms.Label(); + this.PB_M1 = new System.Windows.Forms.PictureBox(); + this.PB_S1 = new System.Windows.Forms.PictureBox(); + this.CB_Forme1 = new System.Windows.Forms.ComboBox(); + this.CB_Item1 = new System.Windows.Forms.ComboBox(); + this.GB_MEvo2 = new System.Windows.Forms.GroupBox(); + this.LBL_Into2 = new System.Windows.Forms.Label(); + this.PB_M2 = new System.Windows.Forms.PictureBox(); + this.CB_Forme2 = new System.Windows.Forms.ComboBox(); + this.PB_S2 = new System.Windows.Forms.PictureBox(); + this.CB_Item2 = new System.Windows.Forms.ComboBox(); + this.LBL_Forme2 = new System.Windows.Forms.Label(); + this.LBL_Item2 = new System.Windows.Forms.Label(); + this.CHK_MEvo1 = new System.Windows.Forms.CheckBox(); + this.CHK_MEvo2 = new System.Windows.Forms.CheckBox(); + this.CB_Species = new System.Windows.Forms.ComboBox(); + this.bpkx = new System.Windows.Forms.PictureBox(); + this.B_Dump = new System.Windows.Forms.Button(); + this.GB_MEvo1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.PB_M1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_S1)).BeginInit(); + this.GB_MEvo2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.PB_M2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_S2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.bpkx)).BeginInit(); + this.SuspendLayout(); + // + // LBL_Item1 + // + this.LBL_Item1.AutoSize = true; + this.LBL_Item1.Location = new System.Drawing.Point(6, 20); + this.LBL_Item1.Name = "LBL_Item1"; + this.LBL_Item1.Size = new System.Drawing.Size(27, 13); + this.LBL_Item1.TabIndex = 9; + this.LBL_Item1.Text = "Item"; + // + // LBL_Forme1 + // + this.LBL_Forme1.AutoSize = true; + this.LBL_Forme1.Location = new System.Drawing.Point(6, 65); + this.LBL_Forme1.Name = "LBL_Forme1"; + this.LBL_Forme1.Size = new System.Drawing.Size(85, 13); + this.LBL_Forme1.TabIndex = 10; + this.LBL_Forme1.Text = "Alt Forme (if any)"; + // + // GB_MEvo1 + // + this.GB_MEvo1.Controls.Add(this.LBL_Into1); + this.GB_MEvo1.Controls.Add(this.PB_M1); + this.GB_MEvo1.Controls.Add(this.PB_S1); + this.GB_MEvo1.Controls.Add(this.CB_Forme1); + this.GB_MEvo1.Controls.Add(this.CB_Item1); + this.GB_MEvo1.Controls.Add(this.LBL_Forme1); + this.GB_MEvo1.Controls.Add(this.LBL_Item1); + this.GB_MEvo1.Enabled = false; + this.GB_MEvo1.Location = new System.Drawing.Point(12, 62); + this.GB_MEvo1.Name = "GB_MEvo1"; + this.GB_MEvo1.Size = new System.Drawing.Size(126, 142); + this.GB_MEvo1.TabIndex = 11; + this.GB_MEvo1.TabStop = false; + this.GB_MEvo1.Text = "Evolution 1"; + // + // LBL_Into1 + // + this.LBL_Into1.AutoSize = true; + this.LBL_Into1.Location = new System.Drawing.Point(51, 117); + this.LBL_Into1.Name = "LBL_Into1"; + this.LBL_Into1.Size = new System.Drawing.Size(28, 13); + this.LBL_Into1.TabIndex = 34; + this.LBL_Into1.Text = "Into:"; + // + // PB_M1 + // + this.PB_M1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.PB_M1.Location = new System.Drawing.Point(81, 106); + this.PB_M1.Name = "PB_M1"; + this.PB_M1.Size = new System.Drawing.Size(42, 32); + this.PB_M1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.PB_M1.TabIndex = 33; + this.PB_M1.TabStop = false; + // + // PB_S1 + // + this.PB_S1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.PB_S1.Location = new System.Drawing.Point(5, 106); + this.PB_S1.Name = "PB_S1"; + this.PB_S1.Size = new System.Drawing.Size(42, 32); + this.PB_S1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.PB_S1.TabIndex = 32; + this.PB_S1.TabStop = false; + // + // CB_Forme1 + // + this.CB_Forme1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Forme1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Forme1.FormattingEnabled = true; + this.CB_Forme1.Location = new System.Drawing.Point(5, 82); + this.CB_Forme1.Name = "CB_Forme1"; + this.CB_Forme1.Size = new System.Drawing.Size(121, 21); + this.CB_Forme1.TabIndex = 18; + this.CB_Forme1.SelectedIndexChanged += new System.EventHandler(this.Update_PBs); + // + // CB_Item1 + // + this.CB_Item1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Item1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Item1.FormattingEnabled = true; + this.CB_Item1.Location = new System.Drawing.Point(2, 35); + this.CB_Item1.Name = "CB_Item1"; + this.CB_Item1.Size = new System.Drawing.Size(121, 21); + this.CB_Item1.TabIndex = 12; + this.CB_Item1.SelectedValueChanged += new System.EventHandler(this.Update_PBs); + // + // GB_MEvo2 + // + this.GB_MEvo2.Controls.Add(this.LBL_Into2); + this.GB_MEvo2.Controls.Add(this.PB_M2); + this.GB_MEvo2.Controls.Add(this.CB_Forme2); + this.GB_MEvo2.Controls.Add(this.PB_S2); + this.GB_MEvo2.Controls.Add(this.CB_Item2); + this.GB_MEvo2.Controls.Add(this.LBL_Forme2); + this.GB_MEvo2.Controls.Add(this.LBL_Item2); + this.GB_MEvo2.Enabled = false; + this.GB_MEvo2.Location = new System.Drawing.Point(144, 62); + this.GB_MEvo2.Name = "GB_MEvo2"; + this.GB_MEvo2.Size = new System.Drawing.Size(126, 142); + this.GB_MEvo2.TabIndex = 12; + this.GB_MEvo2.TabStop = false; + this.GB_MEvo2.Text = "Evolution 2"; + // + // LBL_Into2 + // + this.LBL_Into2.AutoSize = true; + this.LBL_Into2.Location = new System.Drawing.Point(52, 117); + this.LBL_Into2.Name = "LBL_Into2"; + this.LBL_Into2.Size = new System.Drawing.Size(28, 13); + this.LBL_Into2.TabIndex = 35; + this.LBL_Into2.Text = "Into:"; + // + // PB_M2 + // + this.PB_M2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.PB_M2.Location = new System.Drawing.Point(80, 106); + this.PB_M2.Name = "PB_M2"; + this.PB_M2.Size = new System.Drawing.Size(42, 32); + this.PB_M2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.PB_M2.TabIndex = 35; + this.PB_M2.TabStop = false; + // + // CB_Forme2 + // + this.CB_Forme2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Forme2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Forme2.FormattingEnabled = true; + this.CB_Forme2.Location = new System.Drawing.Point(2, 82); + this.CB_Forme2.Name = "CB_Forme2"; + this.CB_Forme2.Size = new System.Drawing.Size(121, 21); + this.CB_Forme2.TabIndex = 19; + this.CB_Forme2.SelectedIndexChanged += new System.EventHandler(this.Update_PBs); + // + // PB_S2 + // + this.PB_S2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.PB_S2.Location = new System.Drawing.Point(4, 106); + this.PB_S2.Name = "PB_S2"; + this.PB_S2.Size = new System.Drawing.Size(42, 32); + this.PB_S2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.PB_S2.TabIndex = 34; + this.PB_S2.TabStop = false; + // + // CB_Item2 + // + this.CB_Item2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Item2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Item2.FormattingEnabled = true; + this.CB_Item2.Location = new System.Drawing.Point(2, 36); + this.CB_Item2.Name = "CB_Item2"; + this.CB_Item2.Size = new System.Drawing.Size(121, 21); + this.CB_Item2.TabIndex = 13; + this.CB_Item2.SelectedValueChanged += new System.EventHandler(this.Update_PBs); + // + // LBL_Forme2 + // + this.LBL_Forme2.AutoSize = true; + this.LBL_Forme2.Location = new System.Drawing.Point(6, 65); + this.LBL_Forme2.Name = "LBL_Forme2"; + this.LBL_Forme2.Size = new System.Drawing.Size(85, 13); + this.LBL_Forme2.TabIndex = 10; + this.LBL_Forme2.Text = "Alt Forme (if any)"; + // + // LBL_Item2 + // + this.LBL_Item2.AutoSize = true; + this.LBL_Item2.Location = new System.Drawing.Point(6, 20); + this.LBL_Item2.Name = "LBL_Item2"; + this.LBL_Item2.Size = new System.Drawing.Size(27, 13); + this.LBL_Item2.TabIndex = 9; + this.LBL_Item2.Text = "Item"; + // + // CHK_MEvo1 + // + this.CHK_MEvo1.AutoSize = true; + this.CHK_MEvo1.Location = new System.Drawing.Point(12, 39); + this.CHK_MEvo1.Name = "CHK_MEvo1"; + this.CHK_MEvo1.Size = new System.Drawing.Size(65, 17); + this.CHK_MEvo1.TabIndex = 13; + this.CHK_MEvo1.Text = "Enabled"; + this.CHK_MEvo1.UseVisualStyleBackColor = true; + this.CHK_MEvo1.CheckedChanged += new System.EventHandler(this.CHK_Changed); + // + // CHK_MEvo2 + // + this.CHK_MEvo2.AutoSize = true; + this.CHK_MEvo2.Location = new System.Drawing.Point(144, 39); + this.CHK_MEvo2.Name = "CHK_MEvo2"; + this.CHK_MEvo2.Size = new System.Drawing.Size(65, 17); + this.CHK_MEvo2.TabIndex = 14; + this.CHK_MEvo2.Text = "Enabled"; + this.CHK_MEvo2.UseVisualStyleBackColor = true; + this.CHK_MEvo2.CheckedChanged += new System.EventHandler(this.CHK_Changed); + // + // CB_Species + // + this.CB_Species.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Species.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Species.FormattingEnabled = true; + this.CB_Species.Location = new System.Drawing.Point(12, 12); + this.CB_Species.Name = "CB_Species"; + this.CB_Species.Size = new System.Drawing.Size(181, 21); + this.CB_Species.TabIndex = 15; + this.CB_Species.SelectedIndexChanged += new System.EventHandler(this.ChangeIndex); + // + // bpkx + // + this.bpkx.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.bpkx.Location = new System.Drawing.Point(308, 99); + this.bpkx.Name = "bpkx"; + this.bpkx.Size = new System.Drawing.Size(42, 32); + this.bpkx.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; + this.bpkx.TabIndex = 31; + this.bpkx.TabStop = false; + // + // B_Dump + // + this.B_Dump.Location = new System.Drawing.Point(199, 10); + this.B_Dump.Name = "B_Dump"; + this.B_Dump.Size = new System.Drawing.Size(75, 23); + this.B_Dump.TabIndex = 18; + this.B_Dump.Text = "Dump"; + this.B_Dump.UseVisualStyleBackColor = true; + this.B_Dump.Click += new System.EventHandler(this.B_Dump_Click); + // + // MegaEvoEditor7 + // + this.AllowDrop = true; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(284, 211); + this.Controls.Add(this.B_Dump); + this.Controls.Add(this.CB_Species); + this.Controls.Add(this.CHK_MEvo2); + this.Controls.Add(this.CHK_MEvo1); + this.Controls.Add(this.GB_MEvo2); + this.Controls.Add(this.GB_MEvo1); + this.MaximizeBox = false; + this.MaximumSize = new System.Drawing.Size(300, 250); + this.MinimumSize = new System.Drawing.Size(300, 250); + this.Name = "MegaEvoEditor7"; + this.Text = "Mega Evo Editor"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form_Closing); + this.GB_MEvo1.ResumeLayout(false); + this.GB_MEvo1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.PB_M1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_S1)).EndInit(); + this.GB_MEvo2.ResumeLayout(false); + this.GB_MEvo2.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.PB_M2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_S2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.bpkx)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label LBL_Item1; + private System.Windows.Forms.Label LBL_Forme1; + private System.Windows.Forms.GroupBox GB_MEvo1; + private System.Windows.Forms.GroupBox GB_MEvo2; + private System.Windows.Forms.Label LBL_Forme2; + private System.Windows.Forms.Label LBL_Item2; + private System.Windows.Forms.CheckBox CHK_MEvo1; + private System.Windows.Forms.CheckBox CHK_MEvo2; + private System.Windows.Forms.ComboBox CB_Species; + private System.Windows.Forms.ComboBox CB_Item1; + private System.Windows.Forms.ComboBox CB_Item2; + private System.Windows.Forms.ComboBox CB_Forme1; + private System.Windows.Forms.ComboBox CB_Forme2; + private System.Windows.Forms.PictureBox PB_M1; + private System.Windows.Forms.PictureBox PB_S1; + private System.Windows.Forms.PictureBox PB_M2; + private System.Windows.Forms.PictureBox PB_S2; + private System.Windows.Forms.PictureBox bpkx; + private System.Windows.Forms.Label LBL_Into1; + private System.Windows.Forms.Label LBL_Into2; + private System.Windows.Forms.Button B_Dump; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen7/MegaEvoEditor7.cs b/pk3DS.WinForms/Subforms/Gen7/MegaEvoEditor7.cs new file mode 100644 index 0000000000..b5e21703b8 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen7/MegaEvoEditor7.cs @@ -0,0 +1,222 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Media; +using System.Text; +using System.Windows.Forms; + +using pk3DS.Core; +using pk3DS.Core.Structures; + +namespace pk3DS.WinForms; + +public partial class MegaEvoEditor7 : Form +{ + private readonly byte[][] files; + //private readonly string[] forms = Main.Config.GetText(TextName.Forms); + //private readonly string[] types = Main.Config.GetText(TextName.Types); + private readonly string[] specieslist = Main.Config.GetText(TextName.SpeciesNames); + private readonly string[] itemlist = Main.Config.GetText(TextName.ItemNames); + private readonly GroupBox[] groupbox_spec; + private readonly ComboBox[] forme_spec; + private readonly ComboBox[] item_spec; + private readonly CheckBox[] checkbox_spec; + private readonly PictureBox[][] picturebox_spec; + private bool loaded; + private readonly string[][] AltForms; + private int entry = -1; + private bool dumping; + private MegaEvolutions me; + + public MegaEvoEditor7(byte[][] infiles) // All the initial settings + { + files = infiles; + InitializeComponent(); + CB_Species.DisplayMember = "Text"; + CB_Species.ValueMember = "Value"; + #region Intializations + + Array.Resize(ref specieslist, Main.Config.MaxSpeciesID + 1); + specieslist[0] = itemlist[0] = ""; + specieslist[32] += "♂"; specieslist[29] += "♀"; + AltForms = Main.Config.Personal.GetFormList(specieslist, Main.Config.MaxSpeciesID); + + groupbox_spec = [GB_MEvo1, GB_MEvo2]; + item_spec = [CB_Item1, CB_Item2]; + forme_spec = [CB_Forme1, CB_Forme2]; + checkbox_spec = [CHK_MEvo1, CHK_MEvo2]; + picturebox_spec = [[PB_S1, PB_S2], [PB_M1, PB_M2]]; + #endregion + Setup(); + CB_Species.SelectedIndex = 0; + } + + private void Setup() + { + List temp_list = [.. specieslist]; + temp_list.Sort(); + + CB_Species.DataSource = temp_list.ConvertAll(mon => new ComboItem { Text = mon, Value = Array.IndexOf(specieslist, mon) }); + + List items = [.. itemlist]; + List sorted_items = [.. itemlist]; + List[] item_lists = new List[item_spec.Length]; + for (int i = 0; i < item_lists.Length; i++) + item_lists[i] = []; + + sorted_items.Sort(); + for (int i = 0; i < items.Count; i++) + { + int index = items.IndexOf(sorted_items[i]); + { + var ncbi = new ComboItem(); + if (sorted_items[i] == "???") continue; // Don't allow stubbed items. + ncbi.Text = sorted_items[i] + " - " + index.ToString("000"); + ncbi.Value = index; + foreach (List l in item_lists) + l.Add(ncbi); + } + items[index] = ""; + } + for (int i = 0; i < item_spec.Length; i++) + { + item_spec[i].ValueMember = "Value"; + item_spec[i].DisplayMember = "Text"; + item_spec[i].DataSource = item_lists[i]; + item_spec[i].SelectedValue = 0; + } + + loaded = true; + } + + private void CHK_Changed(object sender, EventArgs e) + { + for (int i = 0; i < groupbox_spec.Length; i++) + { + groupbox_spec[i].Enabled = checkbox_spec[i].Checked; + Update_PBs(i); + } + } + + private void ChangeIndex(object sender, EventArgs e) + { + SetEntry(); + entry = (int)CB_Species.SelectedValue; + GetEntry(); + } + + private void GetEntry() + { + if (!loaded) return; + if (Main.Config.ORAS && entry == 384 && !dumping) // Current Mon is Rayquaza + WinFormsUtil.Alert("Rayquaza is special and uses a different activator for its evolution. If it knows Dragon Ascent, it can Mega Evolve", "Don't edit its evolution table if you want to keep this functionality."); + + byte[] data = files[entry]; + + foreach (ComboBox CB in forme_spec) + FormUtil.SetForms(entry, CB, AltForms); + + me = new MegaEvolutions(data); + for (int i = 0; i < 2; i++) + { + checkbox_spec[i].Checked = me.Method[i] == 1; + item_spec[i].SelectedValue = (int)me.Argument[i]; + forme_spec[i].SelectedIndex = me.Form[i]; + } + } + + private void SetEntry() + { + if (entry is < 1 or 384) return; // Don't edit invalid / Rayquaza. + for (int i = 0; i < 2; i++) + { + if (me.Method[i] > 1) + return; // Shouldn't hit this. + me.Method[i] = checkbox_spec[i].Checked ? (byte)1 : (byte)0; + me.Argument[i] = (ushort)WinFormsUtil.GetIndex(item_spec[i]); + me.Form[i] = (ushort)forme_spec[i].SelectedIndex; + } + files[entry] = me.Write(); + } + + private void Update_PBs(object sender, EventArgs e) + { + if (!loaded) return; + for (int i = 0; i < checkbox_spec.Length; i++) + { + CheckBox CB = checkbox_spec[i]; + if (CB.Checked) + { + UpdateImage(picturebox_spec[0][i], entry, 0, WinFormsUtil.GetIndex(item_spec[i]), 0); + UpdateImage(picturebox_spec[1][i], entry, forme_spec[i].SelectedIndex, WinFormsUtil.GetIndex(item_spec[i]), 0); + } + else + { + UpdateImage(picturebox_spec[0][i], 0, 0, WinFormsUtil.GetIndex(item_spec[i]), 0); + UpdateImage(picturebox_spec[1][i], 0, 0, WinFormsUtil.GetIndex(item_spec[i]), 0); + } + } + } + + private void Update_PBs(int i) + { + if (!loaded) return; + CheckBox CB = checkbox_spec[i]; + if (CB.Checked) + { + UpdateImage(picturebox_spec[0][i], entry, 0, WinFormsUtil.GetIndex(item_spec[i]), 0); + UpdateImage(picturebox_spec[1][i], entry, forme_spec[i].SelectedIndex, WinFormsUtil.GetIndex(item_spec[i]), 0); + } + else + { + UpdateImage(picturebox_spec[0][i], 0, 0, WinFormsUtil.GetIndex(item_spec[i]), 0); + UpdateImage(picturebox_spec[1][i], 0, 0, WinFormsUtil.GetIndex(item_spec[i]), 0); + } + } + + private static void UpdateImage(PictureBox pb, int species, int form, int item, int gender) + { + if (!pb.Enabled) + { + pb.Image = null; + return; + } + pb.Image = WinFormsUtil.GetSprite(species, form, gender, item, Main.Config); + } + + private void Form_Closing(object sender, FormClosingEventArgs e) + { + SetEntry(); + } + + private void B_Dump_Click(object sender, EventArgs e) + { + if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Dump all Mega Evolutions to Text File?")) + return; + dumping = true; + string result = ""; + + for (int i = 0; i < Main.Config.MaxSpeciesID; i++) + { + CB_Species.SelectedValue = i; // Get new Species + string header = "======" + Environment.NewLine + entry + " " + CB_Species.Text + Environment.NewLine + "======" + Environment.NewLine; + bool headered = false; + for (int j = 0; j < 2; j++) + { + if (!checkbox_spec[j].Checked) continue; + if (!headered) { result += header; headered = true; } + result += string.Format("Can Mega Evolve into {1} if its held item is {0}." + Environment.NewLine, itemlist[(int)item_spec[j].SelectedValue], forme_spec[j].Text); + } + + if (headered) + result += Environment.NewLine; + } + var sfd = new SaveFileDialog { FileName = "Mega Evolutions.txt", Filter = "Text File|*.txt" }; + + SystemSounds.Asterisk.Play(); + if (sfd.ShowDialog() == DialogResult.OK) + File.WriteAllText(sfd.FileName, result, Encoding.Unicode); + + dumping = false; + } +} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/MegaEvoEditor7.resx b/pk3DS.WinForms/Subforms/Gen7/MegaEvoEditor7.resx similarity index 100% rename from pk3DS/Subforms/Gen7/MegaEvoEditor7.resx rename to pk3DS.WinForms/Subforms/Gen7/MegaEvoEditor7.resx diff --git a/pk3DS.WinForms/Subforms/Gen7/MoveEditor7.Designer.cs b/pk3DS.WinForms/Subforms/Gen7/MoveEditor7.Designer.cs new file mode 100644 index 0000000000..c7992ee6dc --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen7/MoveEditor7.Designer.cs @@ -0,0 +1,1101 @@ +namespace pk3DS.WinForms; + +partial class MoveEditor7 +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.L_Type = new System.Windows.Forms.Label(); + this.CB_Move = new System.Windows.Forms.ComboBox(); + this.L_Move = new System.Windows.Forms.Label(); + this.CB_Type = new System.Windows.Forms.ComboBox(); + this.CB_Category = new System.Windows.Forms.ComboBox(); + this.L_Category = new System.Windows.Forms.Label(); + this.L_BP = new System.Windows.Forms.Label(); + this.L_PP = new System.Windows.Forms.Label(); + this.L_Min = new System.Windows.Forms.Label(); + this.L_Max = new System.Windows.Forms.Label(); + this.L_Priority = new System.Windows.Forms.Label(); + this.NUD_HitMax = new System.Windows.Forms.NumericUpDown(); + this.NUD_HitMin = new System.Windows.Forms.NumericUpDown(); + this.NUD_Priority = new System.Windows.Forms.NumericUpDown(); + this.NUD_PP = new System.Windows.Forms.NumericUpDown(); + this.NUD_Power = new System.Windows.Forms.NumericUpDown(); + this.NUD_TurnMin = new System.Windows.Forms.NumericUpDown(); + this.L_TrapMin = new System.Windows.Forms.Label(); + this.NUD_TurnMax = new System.Windows.Forms.NumericUpDown(); + this.L_TrapMax = new System.Windows.Forms.Label(); + this.NUD_Recoil = new System.Windows.Forms.NumericUpDown(); + this.L_Recoil = new System.Windows.Forms.Label(); + this.NUD_Heal = new System.Windows.Forms.NumericUpDown(); + this.L_Heal = new System.Windows.Forms.Label(); + this.NUD_CritStage = new System.Windows.Forms.NumericUpDown(); + this.L_CritStage = new System.Windows.Forms.Label(); + this.NUD_Flinch = new System.Windows.Forms.NumericUpDown(); + this.L_Flinch = new System.Windows.Forms.Label(); + this.GB_Stat = new System.Windows.Forms.GroupBox(); + this.NUD_StatP3 = new System.Windows.Forms.NumericUpDown(); + this.NUD_StatP2 = new System.Windows.Forms.NumericUpDown(); + this.NUD_StatP1 = new System.Windows.Forms.NumericUpDown(); + this.NUD_Stat2 = new System.Windows.Forms.NumericUpDown(); + this.NUD_Stat3 = new System.Windows.Forms.NumericUpDown(); + this.NUD_Stat1 = new System.Windows.Forms.NumericUpDown(); + this.CB_Stat3 = new System.Windows.Forms.ComboBox(); + this.CB_Stat2 = new System.Windows.Forms.ComboBox(); + this.CB_Stat1 = new System.Windows.Forms.ComboBox(); + this.L_Stage3 = new System.Windows.Forms.Label(); + this.L_Stage2 = new System.Windows.Forms.Label(); + this.L_Stage1 = new System.Windows.Forms.Label(); + this.L_Targeting = new System.Windows.Forms.Label(); + this.L_Influcts = new System.Windows.Forms.Label(); + this.RTB = new System.Windows.Forms.RichTextBox(); + this.CB_Targeting = new System.Windows.Forms.ComboBox(); + this.CB_Inflict = new System.Windows.Forms.ComboBox(); + this.L_Inflict = new System.Windows.Forms.Label(); + this.NUD_Inflict = new System.Windows.Forms.NumericUpDown(); + this.NUD_Effect = new System.Windows.Forms.NumericUpDown(); + this.L_Effect = new System.Windows.Forms.Label(); + this.NUD_Accuracy = new System.Windows.Forms.NumericUpDown(); + this.L_Accuracy = new System.Windows.Forms.Label(); + this.CB_Quality = new System.Windows.Forms.ComboBox(); + this.L_Quality = new System.Windows.Forms.Label(); + this.L_0xB = new System.Windows.Forms.Label(); + this.NUD_0xB = new System.Windows.Forms.NumericUpDown(); + this.B_RandAll = new System.Windows.Forms.Button(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.CHK_Category = new System.Windows.Forms.CheckBox(); + this.CHK_Type = new System.Windows.Forms.CheckBox(); + this.B_Metronome = new System.Windows.Forms.Button(); + this.B_Table = new System.Windows.Forms.Button(); + this.CLB_Flags = new System.Windows.Forms.CheckedListBox(); + this.NUD_ZPower = new System.Windows.Forms.NumericUpDown(); + this.NUD_RefreshAfflictPercent = new System.Windows.Forms.NumericUpDown(); + this.CB_ZMove = new System.Windows.Forms.ComboBox(); + this.L_ZMove = new System.Windows.Forms.Label(); + this.L_ZPower = new System.Windows.Forms.Label(); + this.L_ZEffect = new System.Windows.Forms.Label(); + this.CB_ZEffect = new System.Windows.Forms.ComboBox(); + this.CB_AfflictRefresh = new System.Windows.Forms.ComboBox(); + this.L_Refresh = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_HitMax)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_HitMin)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Priority)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_PP)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Power)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_TurnMin)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_TurnMax)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Recoil)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Heal)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_CritStage)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Flinch)).BeginInit(); + this.GB_Stat.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_StatP3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_StatP2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_StatP1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Stat2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Stat3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Stat1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Inflict)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Effect)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Accuracy)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_0xB)).BeginInit(); + this.groupBox1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_ZPower)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_RefreshAfflictPercent)).BeginInit(); + this.SuspendLayout(); + // + // L_Type + // + this.L_Type.AutoSize = true; + this.L_Type.Location = new System.Drawing.Point(32, 38); + this.L_Type.Name = "L_Type"; + this.L_Type.Size = new System.Drawing.Size(34, 13); + this.L_Type.TabIndex = 0; + this.L_Type.Text = "Type:"; + this.L_Type.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_Move + // + this.CB_Move.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Move.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Move.DropDownWidth = 120; + this.CB_Move.FormattingEnabled = true; + this.CB_Move.Location = new System.Drawing.Point(71, 10); + this.CB_Move.Name = "CB_Move"; + this.CB_Move.Size = new System.Drawing.Size(157, 21); + this.CB_Move.TabIndex = 1; + this.CB_Move.SelectedIndexChanged += new System.EventHandler(this.ChangeEntry); + // + // L_Move + // + this.L_Move.AutoSize = true; + this.L_Move.Location = new System.Drawing.Point(33, 13); + this.L_Move.Name = "L_Move"; + this.L_Move.Size = new System.Drawing.Size(37, 13); + this.L_Move.TabIndex = 2; + this.L_Move.Text = "Move:"; + this.L_Move.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_Type + // + this.CB_Type.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_Type.FormattingEnabled = true; + this.CB_Type.Location = new System.Drawing.Point(71, 35); + this.CB_Type.Name = "CB_Type"; + this.CB_Type.Size = new System.Drawing.Size(99, 21); + this.CB_Type.TabIndex = 3; + // + // CB_Category + // + this.CB_Category.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_Category.FormattingEnabled = true; + this.CB_Category.Location = new System.Drawing.Point(71, 58); + this.CB_Category.Name = "CB_Category"; + this.CB_Category.Size = new System.Drawing.Size(99, 21); + this.CB_Category.TabIndex = 4; + // + // L_Category + // + this.L_Category.AutoSize = true; + this.L_Category.Location = new System.Drawing.Point(18, 61); + this.L_Category.Name = "L_Category"; + this.L_Category.Size = new System.Drawing.Size(52, 13); + this.L_Category.TabIndex = 5; + this.L_Category.Text = "Category:"; + this.L_Category.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_BP + // + this.L_BP.AutoSize = true; + this.L_BP.Location = new System.Drawing.Point(26, 132); + this.L_BP.Name = "L_BP"; + this.L_BP.Size = new System.Drawing.Size(40, 13); + this.L_BP.TabIndex = 7; + this.L_BP.Text = "Power:"; + this.L_BP.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_PP + // + this.L_PP.AutoSize = true; + this.L_PP.Location = new System.Drawing.Point(15, 174); + this.L_PP.Name = "L_PP"; + this.L_PP.Size = new System.Drawing.Size(51, 13); + this.L_PP.TabIndex = 8; + this.L_PP.Text = "Base PP:"; + this.L_PP.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_Min + // + this.L_Min.AutoSize = true; + this.L_Min.Location = new System.Drawing.Point(236, 132); + this.L_Min.Name = "L_Min"; + this.L_Min.Size = new System.Drawing.Size(48, 13); + this.L_Min.TabIndex = 10; + this.L_Min.Text = "Min Hits:"; + this.L_Min.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_Max + // + this.L_Max.AutoSize = true; + this.L_Max.Location = new System.Drawing.Point(233, 153); + this.L_Max.Name = "L_Max"; + this.L_Max.Size = new System.Drawing.Size(51, 13); + this.L_Max.TabIndex = 12; + this.L_Max.Text = "Max Hits:"; + this.L_Max.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_Priority + // + this.L_Priority.AutoSize = true; + this.L_Priority.Location = new System.Drawing.Point(25, 195); + this.L_Priority.Name = "L_Priority"; + this.L_Priority.Size = new System.Drawing.Size(41, 13); + this.L_Priority.TabIndex = 17; + this.L_Priority.Text = "Priority:"; + // + // NUD_HitMax + // + this.NUD_HitMax.Location = new System.Drawing.Point(290, 151); + this.NUD_HitMax.Maximum = new decimal(new int[] { + 6, + 0, + 0, + 0}); + this.NUD_HitMax.Name = "NUD_HitMax"; + this.NUD_HitMax.Size = new System.Drawing.Size(30, 20); + this.NUD_HitMax.TabIndex = 18; + // + // NUD_HitMin + // + this.NUD_HitMin.Location = new System.Drawing.Point(290, 130); + this.NUD_HitMin.Maximum = new decimal(new int[] { + 6, + 0, + 0, + 0}); + this.NUD_HitMin.Name = "NUD_HitMin"; + this.NUD_HitMin.Size = new System.Drawing.Size(30, 20); + this.NUD_HitMin.TabIndex = 19; + // + // NUD_Priority + // + this.NUD_Priority.Location = new System.Drawing.Point(72, 193); + this.NUD_Priority.Maximum = new decimal(new int[] { + 8, + 0, + 0, + 0}); + this.NUD_Priority.Minimum = new decimal(new int[] { + 8, + 0, + 0, + -2147483648}); + this.NUD_Priority.Name = "NUD_Priority"; + this.NUD_Priority.Size = new System.Drawing.Size(35, 20); + this.NUD_Priority.TabIndex = 20; + // + // NUD_PP + // + this.NUD_PP.Location = new System.Drawing.Point(72, 172); + this.NUD_PP.Maximum = new decimal(new int[] { + 40, + 0, + 0, + 0}); + this.NUD_PP.Name = "NUD_PP"; + this.NUD_PP.Size = new System.Drawing.Size(35, 20); + this.NUD_PP.TabIndex = 21; + // + // NUD_Power + // + this.NUD_Power.Location = new System.Drawing.Point(72, 130); + this.NUD_Power.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.NUD_Power.Name = "NUD_Power"; + this.NUD_Power.Size = new System.Drawing.Size(45, 20); + this.NUD_Power.TabIndex = 22; + // + // NUD_TurnMin + // + this.NUD_TurnMin.Location = new System.Drawing.Point(290, 172); + this.NUD_TurnMin.Maximum = new decimal(new int[] { + 15, + 0, + 0, + 0}); + this.NUD_TurnMin.Name = "NUD_TurnMin"; + this.NUD_TurnMin.Size = new System.Drawing.Size(30, 20); + this.NUD_TurnMin.TabIndex = 26; + // + // L_TrapMin + // + this.L_TrapMin.AutoSize = true; + this.L_TrapMin.Location = new System.Drawing.Point(227, 174); + this.L_TrapMin.Name = "L_TrapMin"; + this.L_TrapMin.Size = new System.Drawing.Size(57, 13); + this.L_TrapMin.TabIndex = 23; + this.L_TrapMin.Text = "Min Turns:"; + this.L_TrapMin.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_TurnMax + // + this.NUD_TurnMax.Location = new System.Drawing.Point(290, 193); + this.NUD_TurnMax.Maximum = new decimal(new int[] { + 15, + 0, + 0, + 0}); + this.NUD_TurnMax.Name = "NUD_TurnMax"; + this.NUD_TurnMax.Size = new System.Drawing.Size(30, 20); + this.NUD_TurnMax.TabIndex = 25; + // + // L_TrapMax + // + this.L_TrapMax.AutoSize = true; + this.L_TrapMax.Location = new System.Drawing.Point(224, 195); + this.L_TrapMax.Name = "L_TrapMax"; + this.L_TrapMax.Size = new System.Drawing.Size(60, 13); + this.L_TrapMax.TabIndex = 24; + this.L_TrapMax.Text = "Max Turns:"; + this.L_TrapMax.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_Recoil + // + this.NUD_Recoil.Location = new System.Drawing.Point(184, 172); + this.NUD_Recoil.Minimum = new decimal(new int[] { + 100, + 0, + 0, + -2147483648}); + this.NUD_Recoil.Name = "NUD_Recoil"; + this.NUD_Recoil.Size = new System.Drawing.Size(40, 20); + this.NUD_Recoil.TabIndex = 34; + // + // L_Recoil + // + this.L_Recoil.AutoSize = true; + this.L_Recoil.Location = new System.Drawing.Point(114, 174); + this.L_Recoil.Name = "L_Recoil"; + this.L_Recoil.Size = new System.Drawing.Size(64, 13); + this.L_Recoil.TabIndex = 31; + this.L_Recoil.Text = "Rec/Abs %:"; + this.L_Recoil.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_Heal + // + this.NUD_Heal.Location = new System.Drawing.Point(184, 151); + this.NUD_Heal.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.NUD_Heal.Name = "NUD_Heal"; + this.NUD_Heal.Size = new System.Drawing.Size(40, 20); + this.NUD_Heal.TabIndex = 33; + // + // L_Heal + // + this.L_Heal.AutoSize = true; + this.L_Heal.Location = new System.Drawing.Point(135, 153); + this.L_Heal.Name = "L_Heal"; + this.L_Heal.Size = new System.Drawing.Size(43, 13); + this.L_Heal.TabIndex = 32; + this.L_Heal.Text = "Heal %:"; + this.L_Heal.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_CritStage + // + this.NUD_CritStage.Location = new System.Drawing.Point(184, 193); + this.NUD_CritStage.Maximum = new decimal(new int[] { + 6, + 0, + 0, + 0}); + this.NUD_CritStage.Name = "NUD_CritStage"; + this.NUD_CritStage.Size = new System.Drawing.Size(30, 20); + this.NUD_CritStage.TabIndex = 30; + // + // L_CritStage + // + this.L_CritStage.AutoSize = true; + this.L_CritStage.Location = new System.Drawing.Point(122, 195); + this.L_CritStage.Name = "L_CritStage"; + this.L_CritStage.Size = new System.Drawing.Size(56, 13); + this.L_CritStage.TabIndex = 27; + this.L_CritStage.Text = "Crit Stage:"; + this.L_CritStage.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_Flinch + // + this.NUD_Flinch.Location = new System.Drawing.Point(184, 130); + this.NUD_Flinch.Maximum = new decimal(new int[] { + 101, + 0, + 0, + 0}); + this.NUD_Flinch.Name = "NUD_Flinch"; + this.NUD_Flinch.Size = new System.Drawing.Size(40, 20); + this.NUD_Flinch.TabIndex = 29; + // + // L_Flinch + // + this.L_Flinch.AutoSize = true; + this.L_Flinch.Location = new System.Drawing.Point(129, 132); + this.L_Flinch.Name = "L_Flinch"; + this.L_Flinch.Size = new System.Drawing.Size(49, 13); + this.L_Flinch.TabIndex = 28; + this.L_Flinch.Text = "Flinch %:"; + this.L_Flinch.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // GB_Stat + // + this.GB_Stat.Controls.Add(this.NUD_StatP3); + this.GB_Stat.Controls.Add(this.NUD_StatP2); + this.GB_Stat.Controls.Add(this.NUD_StatP1); + this.GB_Stat.Controls.Add(this.NUD_Stat2); + this.GB_Stat.Controls.Add(this.NUD_Stat3); + this.GB_Stat.Controls.Add(this.NUD_Stat1); + this.GB_Stat.Controls.Add(this.CB_Stat3); + this.GB_Stat.Controls.Add(this.CB_Stat2); + this.GB_Stat.Controls.Add(this.CB_Stat1); + this.GB_Stat.Controls.Add(this.L_Stage3); + this.GB_Stat.Controls.Add(this.L_Stage2); + this.GB_Stat.Controls.Add(this.L_Stage1); + this.GB_Stat.Location = new System.Drawing.Point(11, 216); + this.GB_Stat.Name = "GB_Stat"; + this.GB_Stat.Size = new System.Drawing.Size(212, 100); + this.GB_Stat.TabIndex = 35; + this.GB_Stat.TabStop = false; + this.GB_Stat.Text = "Stat Stage Changes"; + // + // NUD_StatP3 + // + this.NUD_StatP3.Location = new System.Drawing.Point(165, 68); + this.NUD_StatP3.Maximum = new decimal(new int[] { + 101, + 0, + 0, + 0}); + this.NUD_StatP3.Name = "NUD_StatP3"; + this.NUD_StatP3.Size = new System.Drawing.Size(40, 20); + this.NUD_StatP3.TabIndex = 44; + // + // NUD_StatP2 + // + this.NUD_StatP2.Location = new System.Drawing.Point(165, 46); + this.NUD_StatP2.Maximum = new decimal(new int[] { + 101, + 0, + 0, + 0}); + this.NUD_StatP2.Name = "NUD_StatP2"; + this.NUD_StatP2.Size = new System.Drawing.Size(40, 20); + this.NUD_StatP2.TabIndex = 43; + // + // NUD_StatP1 + // + this.NUD_StatP1.Location = new System.Drawing.Point(165, 24); + this.NUD_StatP1.Maximum = new decimal(new int[] { + 101, + 0, + 0, + 0}); + this.NUD_StatP1.Name = "NUD_StatP1"; + this.NUD_StatP1.Size = new System.Drawing.Size(40, 20); + this.NUD_StatP1.TabIndex = 42; + // + // NUD_Stat2 + // + this.NUD_Stat2.Location = new System.Drawing.Point(127, 46); + this.NUD_Stat2.Maximum = new decimal(new int[] { + 5, + 0, + 0, + 0}); + this.NUD_Stat2.Minimum = new decimal(new int[] { + 5, + 0, + 0, + -2147483648}); + this.NUD_Stat2.Name = "NUD_Stat2"; + this.NUD_Stat2.Size = new System.Drawing.Size(35, 20); + this.NUD_Stat2.TabIndex = 41; + // + // NUD_Stat3 + // + this.NUD_Stat3.Location = new System.Drawing.Point(127, 68); + this.NUD_Stat3.Maximum = new decimal(new int[] { + 5, + 0, + 0, + 0}); + this.NUD_Stat3.Minimum = new decimal(new int[] { + 5, + 0, + 0, + -2147483648}); + this.NUD_Stat3.Name = "NUD_Stat3"; + this.NUD_Stat3.Size = new System.Drawing.Size(35, 20); + this.NUD_Stat3.TabIndex = 40; + // + // NUD_Stat1 + // + this.NUD_Stat1.Location = new System.Drawing.Point(127, 24); + this.NUD_Stat1.Maximum = new decimal(new int[] { + 5, + 0, + 0, + 0}); + this.NUD_Stat1.Minimum = new decimal(new int[] { + 5, + 0, + 0, + -2147483648}); + this.NUD_Stat1.Name = "NUD_Stat1"; + this.NUD_Stat1.Size = new System.Drawing.Size(35, 20); + this.NUD_Stat1.TabIndex = 39; + // + // CB_Stat3 + // + this.CB_Stat3.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_Stat3.FormattingEnabled = true; + this.CB_Stat3.Location = new System.Drawing.Point(27, 67); + this.CB_Stat3.Name = "CB_Stat3"; + this.CB_Stat3.Size = new System.Drawing.Size(99, 21); + this.CB_Stat3.TabIndex = 38; + // + // CB_Stat2 + // + this.CB_Stat2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_Stat2.FormattingEnabled = true; + this.CB_Stat2.Location = new System.Drawing.Point(27, 45); + this.CB_Stat2.Name = "CB_Stat2"; + this.CB_Stat2.Size = new System.Drawing.Size(99, 21); + this.CB_Stat2.TabIndex = 37; + // + // CB_Stat1 + // + this.CB_Stat1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_Stat1.FormattingEnabled = true; + this.CB_Stat1.Location = new System.Drawing.Point(27, 23); + this.CB_Stat1.Name = "CB_Stat1"; + this.CB_Stat1.Size = new System.Drawing.Size(99, 21); + this.CB_Stat1.TabIndex = 36; + // + // L_Stage3 + // + this.L_Stage3.AutoSize = true; + this.L_Stage3.Location = new System.Drawing.Point(5, 70); + this.L_Stage3.Name = "L_Stage3"; + this.L_Stage3.Size = new System.Drawing.Size(16, 13); + this.L_Stage3.TabIndex = 2; + this.L_Stage3.Text = "3:"; + // + // L_Stage2 + // + this.L_Stage2.AutoSize = true; + this.L_Stage2.Location = new System.Drawing.Point(5, 48); + this.L_Stage2.Name = "L_Stage2"; + this.L_Stage2.Size = new System.Drawing.Size(16, 13); + this.L_Stage2.TabIndex = 1; + this.L_Stage2.Text = "2:"; + // + // L_Stage1 + // + this.L_Stage1.AutoSize = true; + this.L_Stage1.Location = new System.Drawing.Point(5, 26); + this.L_Stage1.Name = "L_Stage1"; + this.L_Stage1.Size = new System.Drawing.Size(16, 13); + this.L_Stage1.TabIndex = 0; + this.L_Stage1.Text = "1:"; + // + // L_Targeting + // + this.L_Targeting.AutoSize = true; + this.L_Targeting.Location = new System.Drawing.Point(173, 38); + this.L_Targeting.Name = "L_Targeting"; + this.L_Targeting.Size = new System.Drawing.Size(55, 13); + this.L_Targeting.TabIndex = 36; + this.L_Targeting.Text = "Targeting:"; + this.L_Targeting.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_Influcts + // + this.L_Influcts.AutoSize = true; + this.L_Influcts.Location = new System.Drawing.Point(188, 60); + this.L_Influcts.Name = "L_Influcts"; + this.L_Influcts.Size = new System.Drawing.Size(40, 13); + this.L_Influcts.TabIndex = 37; + this.L_Influcts.Text = "Inflicts:"; + this.L_Influcts.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // RTB + // + this.RTB.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.RTB.Location = new System.Drawing.Point(12, 370); + this.RTB.Name = "RTB"; + this.RTB.ReadOnly = true; + this.RTB.Size = new System.Drawing.Size(316, 51); + this.RTB.TabIndex = 38; + this.RTB.Text = ""; + // + // CB_Targeting + // + this.CB_Targeting.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_Targeting.DropDownWidth = 150; + this.CB_Targeting.FormattingEnabled = true; + this.CB_Targeting.Location = new System.Drawing.Point(228, 35); + this.CB_Targeting.Name = "CB_Targeting"; + this.CB_Targeting.Size = new System.Drawing.Size(99, 21); + this.CB_Targeting.TabIndex = 39; + // + // CB_Inflict + // + this.CB_Inflict.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_Inflict.DropDownWidth = 150; + this.CB_Inflict.FormattingEnabled = true; + this.CB_Inflict.Location = new System.Drawing.Point(228, 57); + this.CB_Inflict.Name = "CB_Inflict"; + this.CB_Inflict.Size = new System.Drawing.Size(99, 21); + this.CB_Inflict.TabIndex = 40; + // + // L_Inflict + // + this.L_Inflict.AutoSize = true; + this.L_Inflict.Location = new System.Drawing.Point(238, 81); + this.L_Inflict.Name = "L_Inflict"; + this.L_Inflict.Size = new System.Drawing.Size(46, 13); + this.L_Inflict.TabIndex = 41; + this.L_Inflict.Text = "Inflict %:"; + this.L_Inflict.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_Inflict + // + this.NUD_Inflict.Location = new System.Drawing.Point(287, 78); + this.NUD_Inflict.Maximum = new decimal(new int[] { + 101, + 0, + 0, + 0}); + this.NUD_Inflict.Name = "NUD_Inflict"; + this.NUD_Inflict.Size = new System.Drawing.Size(40, 20); + this.NUD_Inflict.TabIndex = 42; + // + // NUD_Effect + // + this.NUD_Effect.Location = new System.Drawing.Point(150, 103); + this.NUD_Effect.Maximum = new decimal(new int[] { + 65535, + 0, + 0, + 0}); + this.NUD_Effect.Name = "NUD_Effect"; + this.NUD_Effect.Size = new System.Drawing.Size(50, 20); + this.NUD_Effect.TabIndex = 44; + // + // L_Effect + // + this.L_Effect.AutoSize = true; + this.L_Effect.Location = new System.Drawing.Point(106, 106); + this.L_Effect.Name = "L_Effect"; + this.L_Effect.Size = new System.Drawing.Size(38, 13); + this.L_Effect.TabIndex = 45; + this.L_Effect.Text = "Effect:"; + this.L_Effect.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_Accuracy + // + this.NUD_Accuracy.Location = new System.Drawing.Point(72, 151); + this.NUD_Accuracy.Maximum = new decimal(new int[] { + 101, + 0, + 0, + 0}); + this.NUD_Accuracy.Name = "NUD_Accuracy"; + this.NUD_Accuracy.Size = new System.Drawing.Size(40, 20); + this.NUD_Accuracy.TabIndex = 47; + // + // L_Accuracy + // + this.L_Accuracy.AutoSize = true; + this.L_Accuracy.Location = new System.Drawing.Point(17, 153); + this.L_Accuracy.Name = "L_Accuracy"; + this.L_Accuracy.Size = new System.Drawing.Size(49, 13); + this.L_Accuracy.TabIndex = 46; + this.L_Accuracy.Text = "Accur %:"; + this.L_Accuracy.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_Quality + // + this.CB_Quality.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_Quality.DropDownWidth = 170; + this.CB_Quality.FormattingEnabled = true; + this.CB_Quality.Location = new System.Drawing.Point(71, 81); + this.CB_Quality.Name = "CB_Quality"; + this.CB_Quality.Size = new System.Drawing.Size(129, 21); + this.CB_Quality.TabIndex = 48; + // + // L_Quality + // + this.L_Quality.AutoSize = true; + this.L_Quality.Location = new System.Drawing.Point(20, 84); + this.L_Quality.Name = "L_Quality"; + this.L_Quality.Size = new System.Drawing.Size(50, 13); + this.L_Quality.TabIndex = 49; + this.L_Quality.Text = "Qualities:"; + this.L_Quality.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_0xB + // + this.L_0xB.AutoSize = true; + this.L_0xB.Location = new System.Drawing.Point(256, 101); + this.L_0xB.Name = "L_0xB"; + this.L_0xB.Size = new System.Drawing.Size(28, 13); + this.L_0xB.TabIndex = 50; + this.L_0xB.Text = "0xB:"; + this.L_0xB.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_0xB + // + this.NUD_0xB.Location = new System.Drawing.Point(287, 99); + this.NUD_0xB.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.NUD_0xB.Name = "NUD_0xB"; + this.NUD_0xB.Size = new System.Drawing.Size(40, 20); + this.NUD_0xB.TabIndex = 51; + // + // B_RandAll + // + this.B_RandAll.Location = new System.Drawing.Point(333, 10); + this.B_RandAll.Name = "B_RandAll"; + this.B_RandAll.Size = new System.Drawing.Size(98, 23); + this.B_RandAll.TabIndex = 63; + this.B_RandAll.Text = "Randomize!"; + this.B_RandAll.UseVisualStyleBackColor = true; + this.B_RandAll.Click += new System.EventHandler(this.B_RandAll_Click); + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.CHK_Category); + this.groupBox1.Controls.Add(this.CHK_Type); + this.groupBox1.Location = new System.Drawing.Point(333, 60); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(98, 55); + this.groupBox1.TabIndex = 64; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "Options"; + // + // CHK_Category + // + this.CHK_Category.AutoSize = true; + this.CHK_Category.Location = new System.Drawing.Point(6, 34); + this.CHK_Category.Name = "CHK_Category"; + this.CHK_Category.Size = new System.Drawing.Size(68, 17); + this.CHK_Category.TabIndex = 1; + this.CHK_Category.Text = "Category"; + this.CHK_Category.UseVisualStyleBackColor = true; + // + // CHK_Type + // + this.CHK_Type.AutoSize = true; + this.CHK_Type.Location = new System.Drawing.Point(6, 19); + this.CHK_Type.Name = "CHK_Type"; + this.CHK_Type.Size = new System.Drawing.Size(50, 17); + this.CHK_Type.TabIndex = 0; + this.CHK_Type.Text = "Type"; + this.CHK_Type.UseVisualStyleBackColor = true; + // + // B_Metronome + // + this.B_Metronome.Location = new System.Drawing.Point(333, 33); + this.B_Metronome.Name = "B_Metronome"; + this.B_Metronome.Size = new System.Drawing.Size(98, 23); + this.B_Metronome.TabIndex = 66; + this.B_Metronome.Text = "Metronome Mode"; + this.B_Metronome.UseVisualStyleBackColor = true; + this.B_Metronome.Click += new System.EventHandler(this.B_Metronome_Click); + // + // B_Table + // + this.B_Table.Location = new System.Drawing.Point(356, 117); + this.B_Table.Name = "B_Table"; + this.B_Table.Size = new System.Drawing.Size(75, 23); + this.B_Table.TabIndex = 67; + this.B_Table.Text = "Export Table"; + this.B_Table.UseVisualStyleBackColor = true; + this.B_Table.Click += new System.EventHandler(this.B_Table_Click); + // + // CLB_Flags + // + this.CLB_Flags.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.CLB_Flags.FormattingEnabled = true; + this.CLB_Flags.Location = new System.Drawing.Point(328, 146); + this.CLB_Flags.Name = "CLB_Flags"; + this.CLB_Flags.Size = new System.Drawing.Size(103, 274); + this.CLB_Flags.TabIndex = 71; + // + // NUD_ZPower + // + this.NUD_ZPower.Location = new System.Drawing.Point(71, 343); + this.NUD_ZPower.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.NUD_ZPower.Name = "NUD_ZPower"; + this.NUD_ZPower.Size = new System.Drawing.Size(40, 20); + this.NUD_ZPower.TabIndex = 72; + // + // NUD_RefreshAfflictPercent + // + this.NUD_RefreshAfflictPercent.Location = new System.Drawing.Point(282, 284); + this.NUD_RefreshAfflictPercent.Name = "NUD_RefreshAfflictPercent"; + this.NUD_RefreshAfflictPercent.Size = new System.Drawing.Size(40, 20); + this.NUD_RefreshAfflictPercent.TabIndex = 73; + // + // CB_ZMove + // + this.CB_ZMove.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_ZMove.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_ZMove.DropDownWidth = 150; + this.CB_ZMove.FormattingEnabled = true; + this.CB_ZMove.Location = new System.Drawing.Point(71, 320); + this.CB_ZMove.Name = "CB_ZMove"; + this.CB_ZMove.Size = new System.Drawing.Size(157, 21); + this.CB_ZMove.TabIndex = 75; + // + // L_ZMove + // + this.L_ZMove.AutoSize = true; + this.L_ZMove.Location = new System.Drawing.Point(18, 323); + this.L_ZMove.Name = "L_ZMove"; + this.L_ZMove.Size = new System.Drawing.Size(47, 13); + this.L_ZMove.TabIndex = 76; + this.L_ZMove.Text = "Z Move:"; + // + // L_ZPower + // + this.L_ZPower.AutoSize = true; + this.L_ZPower.Location = new System.Drawing.Point(25, 345); + this.L_ZPower.Name = "L_ZPower"; + this.L_ZPower.Size = new System.Drawing.Size(40, 13); + this.L_ZPower.TabIndex = 78; + this.L_ZPower.Text = "Power:"; + // + // L_ZEffect + // + this.L_ZEffect.AutoSize = true; + this.L_ZEffect.Location = new System.Drawing.Point(117, 345); + this.L_ZEffect.Name = "L_ZEffect"; + this.L_ZEffect.Size = new System.Drawing.Size(38, 13); + this.L_ZEffect.TabIndex = 79; + this.L_ZEffect.Text = "Effect:"; + // + // CB_ZEffect + // + this.CB_ZEffect.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_ZEffect.DropDownWidth = 350; + this.CB_ZEffect.FormattingEnabled = true; + this.CB_ZEffect.Location = new System.Drawing.Point(159, 342); + this.CB_ZEffect.Name = "CB_ZEffect"; + this.CB_ZEffect.Size = new System.Drawing.Size(129, 21); + this.CB_ZEffect.TabIndex = 80; + // + // CB_AfflictRefresh + // + this.CB_AfflictRefresh.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_AfflictRefresh.DropDownWidth = 130; + this.CB_AfflictRefresh.FormattingEnabled = true; + this.CB_AfflictRefresh.Location = new System.Drawing.Point(227, 261); + this.CB_AfflictRefresh.Name = "CB_AfflictRefresh"; + this.CB_AfflictRefresh.Size = new System.Drawing.Size(95, 21); + this.CB_AfflictRefresh.TabIndex = 81; + // + // L_Refresh + // + this.L_Refresh.AutoSize = true; + this.L_Refresh.Location = new System.Drawing.Point(229, 245); + this.L_Refresh.Name = "L_Refresh"; + this.L_Refresh.Size = new System.Drawing.Size(76, 13); + this.L_Refresh.TabIndex = 82; + this.L_Refresh.Text = "Afflict Refresh:"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(229, 286); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(47, 13); + this.label1.TabIndex = 83; + this.label1.Text = "Percent:"; + // + // MoveEditor7 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(439, 427); + this.Controls.Add(this.label1); + this.Controls.Add(this.L_Refresh); + this.Controls.Add(this.CB_AfflictRefresh); + this.Controls.Add(this.CB_ZEffect); + this.Controls.Add(this.L_ZEffect); + this.Controls.Add(this.L_ZPower); + this.Controls.Add(this.L_ZMove); + this.Controls.Add(this.CB_ZMove); + this.Controls.Add(this.NUD_RefreshAfflictPercent); + this.Controls.Add(this.NUD_ZPower); + this.Controls.Add(this.CLB_Flags); + this.Controls.Add(this.B_Table); + this.Controls.Add(this.B_Metronome); + this.Controls.Add(this.groupBox1); + this.Controls.Add(this.B_RandAll); + this.Controls.Add(this.NUD_0xB); + this.Controls.Add(this.L_0xB); + this.Controls.Add(this.CB_Quality); + this.Controls.Add(this.L_Quality); + this.Controls.Add(this.NUD_Accuracy); + this.Controls.Add(this.L_Accuracy); + this.Controls.Add(this.L_Effect); + this.Controls.Add(this.NUD_Effect); + this.Controls.Add(this.NUD_Inflict); + this.Controls.Add(this.L_Inflict); + this.Controls.Add(this.CB_Inflict); + this.Controls.Add(this.CB_Targeting); + this.Controls.Add(this.RTB); + this.Controls.Add(this.L_Targeting); + this.Controls.Add(this.L_Influcts); + this.Controls.Add(this.GB_Stat); + this.Controls.Add(this.NUD_Recoil); + this.Controls.Add(this.L_Recoil); + this.Controls.Add(this.NUD_Heal); + this.Controls.Add(this.L_Heal); + this.Controls.Add(this.NUD_CritStage); + this.Controls.Add(this.L_CritStage); + this.Controls.Add(this.NUD_Flinch); + this.Controls.Add(this.L_Flinch); + this.Controls.Add(this.NUD_TurnMin); + this.Controls.Add(this.L_TrapMin); + this.Controls.Add(this.NUD_TurnMax); + this.Controls.Add(this.L_TrapMax); + this.Controls.Add(this.L_Type); + this.Controls.Add(this.L_BP); + this.Controls.Add(this.CB_Type); + this.Controls.Add(this.NUD_Power); + this.Controls.Add(this.CB_Category); + this.Controls.Add(this.L_Category); + this.Controls.Add(this.NUD_PP); + this.Controls.Add(this.NUD_Priority); + this.Controls.Add(this.NUD_HitMin); + this.Controls.Add(this.L_PP); + this.Controls.Add(this.L_Min); + this.Controls.Add(this.L_Priority); + this.Controls.Add(this.NUD_HitMax); + this.Controls.Add(this.L_Max); + this.Controls.Add(this.L_Move); + this.Controls.Add(this.CB_Move); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.MaximizeBox = false; + this.Name = "MoveEditor7"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Move Editor"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.CloseForm); + ((System.ComponentModel.ISupportInitialize)(this.NUD_HitMax)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_HitMin)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Priority)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_PP)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Power)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_TurnMin)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_TurnMax)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Recoil)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Heal)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_CritStage)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Flinch)).EndInit(); + this.GB_Stat.ResumeLayout(false); + this.GB_Stat.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_StatP3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_StatP2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_StatP1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Stat2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Stat3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Stat1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Inflict)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Effect)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Accuracy)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_0xB)).EndInit(); + this.groupBox1.ResumeLayout(false); + this.groupBox1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_ZPower)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_RefreshAfflictPercent)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label L_Type; + private System.Windows.Forms.ComboBox CB_Move; + private System.Windows.Forms.Label L_Move; + private System.Windows.Forms.ComboBox CB_Type; + private System.Windows.Forms.ComboBox CB_Category; + private System.Windows.Forms.Label L_Category; + private System.Windows.Forms.Label L_BP; + private System.Windows.Forms.Label L_PP; + private System.Windows.Forms.Label L_Min; + private System.Windows.Forms.Label L_Max; + private System.Windows.Forms.Label L_Priority; + private System.Windows.Forms.NumericUpDown NUD_HitMax; + private System.Windows.Forms.NumericUpDown NUD_HitMin; + private System.Windows.Forms.NumericUpDown NUD_Priority; + private System.Windows.Forms.NumericUpDown NUD_PP; + private System.Windows.Forms.NumericUpDown NUD_Power; + private System.Windows.Forms.NumericUpDown NUD_TurnMin; + private System.Windows.Forms.Label L_TrapMin; + private System.Windows.Forms.NumericUpDown NUD_TurnMax; + private System.Windows.Forms.Label L_TrapMax; + private System.Windows.Forms.NumericUpDown NUD_Recoil; + private System.Windows.Forms.Label L_Recoil; + private System.Windows.Forms.NumericUpDown NUD_Heal; + private System.Windows.Forms.Label L_Heal; + private System.Windows.Forms.NumericUpDown NUD_CritStage; + private System.Windows.Forms.Label L_CritStage; + private System.Windows.Forms.NumericUpDown NUD_Flinch; + private System.Windows.Forms.Label L_Flinch; + private System.Windows.Forms.GroupBox GB_Stat; + private System.Windows.Forms.NumericUpDown NUD_Stat2; + private System.Windows.Forms.NumericUpDown NUD_Stat3; + private System.Windows.Forms.NumericUpDown NUD_Stat1; + private System.Windows.Forms.ComboBox CB_Stat3; + private System.Windows.Forms.ComboBox CB_Stat2; + private System.Windows.Forms.ComboBox CB_Stat1; + private System.Windows.Forms.Label L_Stage3; + private System.Windows.Forms.Label L_Stage2; + private System.Windows.Forms.Label L_Stage1; + private System.Windows.Forms.Label L_Targeting; + private System.Windows.Forms.Label L_Influcts; + private System.Windows.Forms.RichTextBox RTB; + private System.Windows.Forms.ComboBox CB_Targeting; + private System.Windows.Forms.ComboBox CB_Inflict; + private System.Windows.Forms.Label L_Inflict; + private System.Windows.Forms.NumericUpDown NUD_Inflict; + private System.Windows.Forms.NumericUpDown NUD_Effect; + private System.Windows.Forms.Label L_Effect; + private System.Windows.Forms.NumericUpDown NUD_Accuracy; + private System.Windows.Forms.Label L_Accuracy; + private System.Windows.Forms.ComboBox CB_Quality; + private System.Windows.Forms.Label L_Quality; + private System.Windows.Forms.NumericUpDown NUD_StatP3; + private System.Windows.Forms.NumericUpDown NUD_StatP2; + private System.Windows.Forms.NumericUpDown NUD_StatP1; + private System.Windows.Forms.Label L_0xB; + private System.Windows.Forms.NumericUpDown NUD_0xB; + private System.Windows.Forms.Button B_RandAll; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.CheckBox CHK_Category; + private System.Windows.Forms.CheckBox CHK_Type; + private System.Windows.Forms.Button B_Metronome; + private System.Windows.Forms.Button B_Table; + private System.Windows.Forms.CheckedListBox CLB_Flags; + private System.Windows.Forms.NumericUpDown NUD_ZPower; + private System.Windows.Forms.NumericUpDown NUD_RefreshAfflictPercent; + private System.Windows.Forms.ComboBox CB_ZMove; + private System.Windows.Forms.Label L_ZMove; + private System.Windows.Forms.Label L_ZPower; + private System.Windows.Forms.Label L_ZEffect; + private System.Windows.Forms.ComboBox CB_ZEffect; + private System.Windows.Forms.ComboBox CB_AfflictRefresh; + private System.Windows.Forms.Label L_Refresh; + private System.Windows.Forms.Label label1; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen7/MoveEditor7.cs b/pk3DS.WinForms/Subforms/Gen7/MoveEditor7.cs new file mode 100644 index 0000000000..739d6d8721 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen7/MoveEditor7.cs @@ -0,0 +1,285 @@ +using pk3DS.Core; +using System; +using System.Linq; +using System.Windows.Forms; +using pk3DS.Core.Structures; + +namespace pk3DS.WinForms; + +public partial class MoveEditor7 : Form +{ + public MoveEditor7(byte[][] infiles) + { + files = infiles; + movelist[0] = ""; + + InitializeComponent(); + Setup(); + RandSettings.GetFormSettings(this, groupBox1.Controls); + } + + private readonly byte[][] files; + private readonly string[] types = Main.Config.GetText(TextName.Types); + private readonly string[] moveflavor = Main.Config.GetText(TextName.MoveFlavor); + private readonly string[] movelist = Main.Config.GetText(TextName.MoveNames); + private readonly string[] MoveCategories = ["Status", "Physical", "Special"]; + private readonly string[] StatCategories = ["None", "Attack", "Defense", "Special Attack", "Special Defense", "Speed", "Accuracy", "Evasion", "All", + ]; + + private static readonly string[] TargetingTypes = + [ + "Single Adjacent Ally/Foe", + "Any Ally", "Any Adjacent Ally", "Single Adjacent Foe", "Everyone but User", "All Foes", + "All Allies", "Self", "All Pokémon on Field", "Single Adjacent Foe (2)", "Entire Field", + "Opponent's Field", "User's Field", "Self", + ]; + + private static readonly string[] InflictionTypes = + [ + "None", + "Paralyze", "Sleep", "Freeze", "Burn", "Poison", + "Confusion", "Attract", "Capture", "Nightmare", "Curse", + "Taunt", "Torment", "Disable", "Yawn", "Heal Block", + "?", "Detect", "Leech Seed", "Embargo", "Perish Song", + "Ingrain", "??? 0x16", "??? 0x17", "Mute", + ]; + + private static readonly string[] MoveQualities = + [ + "Only DMG", + "No DMG -> Inflict Status", "No DMG -> -Target/+User Stat", "No DMG | Heal User", "DMG | Inflict Status", "No DMG | STATUS | +Target Stat", + "DMG | -Target Stat", "DMG | +User Stat", "DMG | Absorbs DMG", "One-Hit KO", "Affects Whole Field", + "Affect One Side of the Field", "Forces Target to Switch", "Unique Effect", + ]; + + private static readonly string[] ZMoveEffects = + [ + "None", + "+1 Attack", + "+2 Attack", + "+3 Attack", + "+1 Defense", + "+2 Defense", + "+3 Defense", + "+1 Special Attack", + "+2 Special Attack", + "+3 Special Attack", + "+1 Special Defense", + "+2 Special Defense", + "+3 Special Defense", + "+1 Speed", + "+2 Speed", + "+3 Speed", + "+1 Accuracy", + "+2 Accuracy", + "+3 Accuracy", + "+1 Evasiveness", + "+2 Evasiveness", + "+3 Evasiveness", + "+1 to all (except Accuracy or Evasiveness)", + "+2 to all (except Accuracy or Evasiveness)", + "+3 to all (except Accuracy or Evasiveness)", + "raises critical-hit ratio two stages", + "resets lowered stats of the user", + "recovers all of user's HP", + "recovers all Hp of the Pokémon switching-in (Memento and Parting Shot)", + "makes the user the center of attention", + "only on Curse: recovers all HP if the user's a Ghost type, +1 Attack otherwise", + ]; + + private void Setup() + { + char[] ps = ['P', 'S']; // Distinguish Physical/Special Z-Moves + for (int i = 622; i < 658; i++) + movelist[i] += $" ({ps[i % 2]})"; + CB_Move.Items.AddRange(movelist); + CB_Type.Items.AddRange(types); + CB_Category.Items.AddRange(MoveCategories); + CB_Stat1.Items.AddRange(StatCategories); + CB_Stat2.Items.AddRange(StatCategories); + CB_Stat3.Items.AddRange(StatCategories); + CB_Targeting.Items.AddRange(TargetingTypes); + CB_Quality.Items.AddRange(MoveQualities); + CB_Inflict.Items.AddRange(InflictionTypes); + CB_ZMove.Items.AddRange(movelist); + var flagnames = Enum.GetNames(typeof(MoveFlag7)).Skip(1).ToArray(); + CLB_Flags.Items.AddRange(flagnames); + CB_ZEffect.Items.AddRange(ZMoveEffects); + CB_Inflict.Items.Add("Special"); + var refreshtypes = Enum.GetNames(typeof(RefreshType)); + CB_AfflictRefresh.Items.AddRange(refreshtypes); + + CB_Move.Items.RemoveAt(0); + CB_Move.SelectedIndex = 0; + } + + private int entry = -1; + + private void ChangeEntry(object sender, EventArgs e) + { + SetEntry(); + entry = Array.IndexOf(movelist, CB_Move.Text); + GetEntry(); + } + + private void GetEntry() + { + if (entry < 1) return; + byte[] data = files[entry]; + { + RTB.Text = moveflavor[entry].Replace("\\n", Environment.NewLine); + + CB_Type.SelectedIndex = data[0x00]; + CB_Quality.SelectedIndex = data[0x01]; + CB_Category.SelectedIndex = data[0x02]; + NUD_Power.Value = data[0x3]; + NUD_Accuracy.Value = data[0x4]; + NUD_PP.Value = data[0x05]; + NUD_Priority.Value = (sbyte)data[0x06]; + NUD_HitMin.Value = data[0x7] & 0xF; + NUD_HitMax.Value = data[0x7] >> 4; + short inflictVal = BitConverter.ToInt16(data, 0x08); + CB_Inflict.SelectedIndex = inflictVal < 0 ? CB_Inflict.Items.Count - 1 : inflictVal; + NUD_Inflict.Value = data[0xA]; + NUD_0xB.Value = data[0xB]; // 0xB ~ Something to deal with skipImmunity + NUD_TurnMin.Value = data[0xC]; + NUD_TurnMax.Value = data[0xD]; + NUD_CritStage.Value = data[0xE]; + NUD_Flinch.Value = data[0xF]; + NUD_Effect.Value = BitConverter.ToUInt16(data, 0x10); + NUD_Recoil.Value = (sbyte)data[0x12]; + NUD_Heal.Value = data[0x13]; + + CB_Targeting.SelectedIndex = data[0x14]; + CB_Stat1.SelectedIndex = data[0x15]; + CB_Stat2.SelectedIndex = data[0x16]; + CB_Stat3.SelectedIndex = data[0x17]; + NUD_Stat1.Value = (sbyte)data[0x18]; + NUD_Stat2.Value = (sbyte)data[0x19]; + NUD_Stat3.Value = (sbyte)data[0x1A]; + NUD_StatP1.Value = data[0x1B]; + NUD_StatP2.Value = data[0x1C]; + NUD_StatP3.Value = data[0x1D]; + + var move = new Move7(data); + CB_ZMove.SelectedIndex = move.ZMove; + NUD_ZPower.Value = move.ZPower; + CB_ZEffect.SelectedIndex = move.ZEffect; + CB_AfflictRefresh.SelectedIndex = (int)move.RefreshAfflictType; + NUD_RefreshAfflictPercent.Value = move.RefreshAfflictPercent; + + var flags = (uint)move.Flags; + for (int i = 0; i < CLB_Flags.Items.Count; i++) + CLB_Flags.SetItemChecked(i, ((flags >> i) & 1) == 1); + } + } + + private void SetEntry() + { + if (entry < 1) return; + byte[] data = files[entry]; + { + data[0x00] = (byte)CB_Type.SelectedIndex; + data[0x01] = (byte)CB_Quality.SelectedIndex; + data[0x02] = (byte)CB_Category.SelectedIndex; + data[0x03] = (byte)NUD_Power.Value; + data[0x04] = (byte)NUD_Accuracy.Value; + data[0x05] = (byte)NUD_PP.Value; + data[0x06] = (byte)(int)NUD_Priority.Value; + data[0x07] = (byte)((byte)NUD_HitMin.Value | ((byte)NUD_HitMax.Value << 4)); + int inflictval = CB_Inflict.SelectedIndex; if (inflictval == CB_Inflict.Items.Count) inflictval = -1; + Array.Copy(BitConverter.GetBytes((short)inflictval), 0, data, 0x08, 2); + data[0x0A] = (byte)NUD_Inflict.Value; + data[0x0B] = (byte)NUD_0xB.Value; + data[0x0C] = (byte)NUD_TurnMin.Value; + data[0x0D] = (byte)NUD_TurnMax.Value; + data[0x0E] = (byte)NUD_CritStage.Value; + data[0x0F] = (byte)NUD_Flinch.Value; + Array.Copy(BitConverter.GetBytes((ushort)NUD_Effect.Value), 0, data, 0x10, 2); + data[0x12] = (byte)(int)NUD_Recoil.Value; + data[0x13] = (byte)NUD_Heal.Value; + data[0x14] = (byte)CB_Targeting.SelectedIndex; + data[0x15] = (byte)CB_Stat1.SelectedIndex; + data[0x16] = (byte)CB_Stat2.SelectedIndex; + data[0x17] = (byte)CB_Stat3.SelectedIndex; + data[0x18] = (byte)(int)NUD_Stat1.Value; + data[0x19] = (byte)(int)NUD_Stat2.Value; + data[0x1A] = (byte)(int)NUD_Stat3.Value; + data[0x1B] = (byte)NUD_StatP1.Value; + data[0x1C] = (byte)NUD_StatP2.Value; + data[0x1D] = (byte)NUD_StatP3.Value; + + var move = new Move7(data) + { + ZMove = CB_ZMove.SelectedIndex, + ZPower = (int)NUD_ZPower.Value, + ZEffect = CB_ZEffect.SelectedIndex, + RefreshAfflictPercent = (int)NUD_RefreshAfflictPercent.Value, + RefreshAfflictType = (RefreshType)CB_AfflictRefresh.SelectedIndex, + }; + + uint flagval = 0; + for (int i = 0; i < CLB_Flags.Items.Count; i++) + flagval |= CLB_Flags.GetItemChecked(i) ? 1u << i : 0; + move.Flags = (MoveFlag7)flagval; + } + files[entry] = data; + } + + private void CloseForm(object sender, FormClosingEventArgs e) + { + SetEntry(); + RandSettings.SetFormSettings(this, groupBox1.Controls); + } + + private void B_Table_Click(object sender, EventArgs e) + { + var items = files.Select(z => new Move7(z)); + Clipboard.SetText(TableUtil.GetTable(items, movelist)); + System.Media.SystemSounds.Asterisk.Play(); + } + + private void B_RandAll_Click(object sender, EventArgs e) + { + if (!CHK_Category.Checked && !CHK_Type.Checked) + { + WinFormsUtil.Alert("Cannot randomize Moves.", "Please check any of the options on the right to randomize Moves."); + return; + } + + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomize Moves? Cannot undo.", "Double check options on the right before continuing.") != DialogResult.Yes) return; + Random rnd = Util.Rand; + for (int i = 0; i < CB_Move.Items.Count; i++) + { + CB_Move.SelectedIndex = i; // Get new Move + if (i is 165 or 174) continue; // Don't change Struggle or Curse + + // Change Damage Category if Not Status + if (CB_Category.SelectedIndex > 0 && CHK_Category.Checked) // Not Status + CB_Category.SelectedIndex = rnd.Next(1, 3); + + // Change Move Type + if (CHK_Type.Checked) + CB_Type.SelectedIndex = rnd.Next(0, 18); + } + WinFormsUtil.Alert("All Moves have been randomized!"); + } + + private void B_Metronome_Click(object sender, EventArgs e) + { + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Play using Metronome Mode?", "This will set the Base PP for every other Move to 0!") != DialogResult.Yes) return; + + for (int i = 0; i < CB_Move.Items.Count; i++) + { + CB_Move.SelectedIndex = i; + if (CB_Move.SelectedIndex is not (117 and 32)) + NUD_PP.Value = 0; + if (CB_Move.SelectedIndex == 117) + NUD_PP.Value = 40; + if (CB_Move.SelectedIndex == 32) + NUD_PP.Value = 1; + } + CB_Move.SelectedIndex = 0; + WinFormsUtil.Alert("All Moves have had their Base PP values modified!"); + } +} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/MoveEditor7.resx b/pk3DS.WinForms/Subforms/Gen7/MoveEditor7.resx similarity index 100% rename from pk3DS/Subforms/Gen7/MoveEditor7.resx rename to pk3DS.WinForms/Subforms/Gen7/MoveEditor7.resx diff --git a/pk3DS.WinForms/Subforms/Gen7/PersonalEditor7.Designer.cs b/pk3DS.WinForms/Subforms/Gen7/PersonalEditor7.Designer.cs new file mode 100644 index 0000000000..e2f662f51b --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen7/PersonalEditor7.Designer.cs @@ -0,0 +1,1877 @@ +namespace pk3DS.WinForms; + +partial class PersonalEditor7 +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.CB_Species = new System.Windows.Forms.ComboBox(); + this.L_Species_Precursor = new System.Windows.Forms.Label(); + this.TC_Pokemon = new System.Windows.Forms.TabControl(); + this.TP_General = new System.Windows.Forms.TabPage(); + this.TB_RawColor = new System.Windows.Forms.TextBox(); + this.L_HiddenAbility = new System.Windows.Forms.Label(); + this.L_WeightKG = new System.Windows.Forms.Label(); + this.L_Ability2 = new System.Windows.Forms.Label(); + this.L_HeightM = new System.Windows.Forms.Label(); + this.L_Ability1 = new System.Windows.Forms.Label(); + this.TB_Weight = new System.Windows.Forms.MaskedTextBox(); + this.TB_Height = new System.Windows.Forms.MaskedTextBox(); + this.L_Weight = new System.Windows.Forms.Label(); + this.L_Height = new System.Windows.Forms.Label(); + this.CB_ZMove = new System.Windows.Forms.ComboBox(); + this.CB_ZBaseMove = new System.Windows.Forms.ComboBox(); + this.CB_ZItem = new System.Windows.Forms.ComboBox(); + this.TB_CallRate = new System.Windows.Forms.MaskedTextBox(); + this.L_CallRate = new System.Windows.Forms.Label(); + this.CHK_Variant = new System.Windows.Forms.CheckBox(); + this.TB_BST = new System.Windows.Forms.TextBox(); + this.L_BST = new System.Windows.Forms.Label(); + this.TB_CatchRate = new System.Windows.Forms.MaskedTextBox(); + this.TB_Stage = new System.Windows.Forms.TextBox(); + this.L_Stage = new System.Windows.Forms.Label(); + this.TB_FormeCount = new System.Windows.Forms.TextBox(); + this.L_FormesCount = new System.Windows.Forms.Label(); + this.TB_FormeSprite = new System.Windows.Forms.TextBox(); + this.L_FormeSprite = new System.Windows.Forms.Label(); + this.L_CatchRate = new System.Windows.Forms.Label(); + this.CB_Color = new System.Windows.Forms.ComboBox(); + this.CB_EXPGroup = new System.Windows.Forms.ComboBox(); + this.L_Color = new System.Windows.Forms.Label(); + this.L_EXPGrowth = new System.Windows.Forms.Label(); + this.CB_Ability3 = new System.Windows.Forms.ComboBox(); + this.CB_Ability2 = new System.Windows.Forms.ComboBox(); + this.CB_Ability1 = new System.Windows.Forms.ComboBox(); + this.CB_EggGroup2 = new System.Windows.Forms.ComboBox(); + this.CB_EggGroup1 = new System.Windows.Forms.ComboBox(); + this.L_EggGroup = new System.Windows.Forms.Label(); + this.L_Ability = new System.Windows.Forms.Label(); + this.TB_BaseExp = new System.Windows.Forms.MaskedTextBox(); + this.L_BaseEXP = new System.Windows.Forms.Label(); + this.TB_HatchCycles = new System.Windows.Forms.MaskedTextBox(); + this.L_HatchCycles = new System.Windows.Forms.Label(); + this.TB_Friendship = new System.Windows.Forms.MaskedTextBox(); + this.TB_Gender = new System.Windows.Forms.MaskedTextBox(); + this.L_Friendship = new System.Windows.Forms.Label(); + this.L_Gender = new System.Windows.Forms.Label(); + this.L_Item1 = new System.Windows.Forms.Label(); + this.L_Item5 = new System.Windows.Forms.Label(); + this.L_Item50 = new System.Windows.Forms.Label(); + this.CB_HeldItem3 = new System.Windows.Forms.ComboBox(); + this.CB_HeldItem2 = new System.Windows.Forms.ComboBox(); + this.CB_HeldItem1 = new System.Windows.Forms.ComboBox(); + this.L_HeldItem = new System.Windows.Forms.Label(); + this.CB_Type2 = new System.Windows.Forms.ComboBox(); + this.CB_Type1 = new System.Windows.Forms.ComboBox(); + this.L_Type = new System.Windows.Forms.Label(); + this.TB_SPEEVs = new System.Windows.Forms.MaskedTextBox(); + this.TB_SPDEVs = new System.Windows.Forms.MaskedTextBox(); + this.TB_SPAEVs = new System.Windows.Forms.MaskedTextBox(); + this.TB_DEFEVs = new System.Windows.Forms.MaskedTextBox(); + this.TB_ATKEVs = new System.Windows.Forms.MaskedTextBox(); + this.TB_HPEVs = new System.Windows.Forms.MaskedTextBox(); + this.TB_BaseSPE = new System.Windows.Forms.MaskedTextBox(); + this.TB_BaseSPD = new System.Windows.Forms.MaskedTextBox(); + this.TB_BaseSPA = new System.Windows.Forms.MaskedTextBox(); + this.TB_BaseDEF = new System.Windows.Forms.MaskedTextBox(); + this.TB_BaseATK = new System.Windows.Forms.MaskedTextBox(); + this.TB_BaseHP = new System.Windows.Forms.MaskedTextBox(); + this.Label_HP = new System.Windows.Forms.Label(); + this.Label_ATK = new System.Windows.Forms.Label(); + this.Label_DEF = new System.Windows.Forms.Label(); + this.Label_SPA = new System.Windows.Forms.Label(); + this.Label_SPD = new System.Windows.Forms.Label(); + this.Label_SPE = new System.Windows.Forms.Label(); + this.L_EVYield = new System.Windows.Forms.Label(); + this.L_BaseStats = new System.Windows.Forms.Label(); + this.L_ZMove = new System.Windows.Forms.Label(); + this.L_BaseMove = new System.Windows.Forms.Label(); + this.L_ZCrystal = new System.Windows.Forms.Label(); + this.TP_MoveTutors = new System.Windows.Forms.TabPage(); + this.L_BeachTutors = new System.Windows.Forms.Label(); + this.CLB_BeachTutors = new System.Windows.Forms.CheckedListBox(); + this.L_Special = new System.Windows.Forms.Label(); + this.L_TM = new System.Windows.Forms.Label(); + this.CLB_MoveTutors = new System.Windows.Forms.CheckedListBox(); + this.CLB_TM = new System.Windows.Forms.CheckedListBox(); + this.TP_Randomizer = new System.Windows.Forms.TabPage(); + this.GB_Modifier = new System.Windows.Forms.GroupBox(); + this.CHK_FullMoveTutorCompatibility = new System.Windows.Forms.CheckBox(); + this.CHK_FullTMCompatibility = new System.Windows.Forms.CheckBox(); + this.CHK_NoTutor = new System.Windows.Forms.CheckBox(); + this.CHK_CatchRateMod = new System.Windows.Forms.CheckBox(); + this.L_CatchRateMod = new System.Windows.Forms.Label(); + this.NUD_CatchRateMod = new System.Windows.Forms.NumericUpDown(); + this.CHK_CallRate = new System.Windows.Forms.CheckBox(); + this.NUD_CallRate = new System.Windows.Forms.NumericUpDown(); + this.CHK_EXP = new System.Windows.Forms.CheckBox(); + this.L_CallRateVal = new System.Windows.Forms.Label(); + this.CHK_Growth = new System.Windows.Forms.CheckBox(); + this.CHK_QuickHatch = new System.Windows.Forms.CheckBox(); + this.L_FinalXP = new System.Windows.Forms.Label(); + this.NUD_EXP = new System.Windows.Forms.NumericUpDown(); + this.CHK_NoEV = new System.Windows.Forms.CheckBox(); + this.B_ModAll = new System.Windows.Forms.Button(); + this.GB_Randomizer = new System.Windows.Forms.GroupBox(); + this.CHK_Shuffle = new System.Windows.Forms.CheckBox(); + this.L_Same = new System.Windows.Forms.Label(); + this.NUD_Egg = new System.Windows.Forms.NumericUpDown(); + this.CHK_BeachTutors = new System.Windows.Forms.CheckBox(); + this.CHK_WGuard = new System.Windows.Forms.CheckBox(); + this.CHK_Ability = new System.Windows.Forms.CheckBox(); + this.CHK_Tutors = new System.Windows.Forms.CheckBox(); + this.CHK_rSPE = new System.Windows.Forms.CheckBox(); + this.CHK_Type = new System.Windows.Forms.CheckBox(); + this.CHK_rSPD = new System.Windows.Forms.CheckBox(); + this.CHK_rSPA = new System.Windows.Forms.CheckBox(); + this.L_SingleType = new System.Windows.Forms.Label(); + this.CHK_rDEF = new System.Windows.Forms.CheckBox(); + this.CHK_rATK = new System.Windows.Forms.CheckBox(); + this.NUD_TypePercent = new System.Windows.Forms.NumericUpDown(); + this.CHK_rHP = new System.Windows.Forms.CheckBox(); + this.L_StatDev = new System.Windows.Forms.Label(); + this.CHK_TM = new System.Windows.Forms.CheckBox(); + this.NUD_StatDev = new System.Windows.Forms.NumericUpDown(); + this.CHK_Stats = new System.Windows.Forms.CheckBox(); + this.CHK_EggGroup = new System.Windows.Forms.CheckBox(); + this.CHK_CatchRate = new System.Windows.Forms.CheckBox(); + this.CHK_Item = new System.Windows.Forms.CheckBox(); + this.B_Randomize = new System.Windows.Forms.Button(); + this.PB_MonSprite = new System.Windows.Forms.PictureBox(); + this.B_Dump = new System.Windows.Forms.Button(); + this.CHK_FullBeachTutorCompatibility = new System.Windows.Forms.CheckBox(); + this.TC_Pokemon.SuspendLayout(); + this.TP_General.SuspendLayout(); + this.TP_MoveTutors.SuspendLayout(); + this.TP_Randomizer.SuspendLayout(); + this.GB_Modifier.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_CatchRateMod)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_CallRate)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_EXP)).BeginInit(); + this.GB_Randomizer.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Egg)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_TypePercent)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_StatDev)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_MonSprite)).BeginInit(); + this.SuspendLayout(); + // + // CB_Species + // + this.CB_Species.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Species.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Species.FormattingEnabled = true; + this.CB_Species.Location = new System.Drawing.Point(107, 12); + this.CB_Species.Name = "CB_Species"; + this.CB_Species.Size = new System.Drawing.Size(160, 21); + this.CB_Species.TabIndex = 2; + this.CB_Species.SelectedIndexChanged += new System.EventHandler(this.CB_Species_SelectedIndexChanged); + // + // L_Species_Precursor + // + this.L_Species_Precursor.AutoSize = true; + this.L_Species_Precursor.Location = new System.Drawing.Point(13, 15); + this.L_Species_Precursor.Name = "L_Species_Precursor"; + this.L_Species_Precursor.Size = new System.Drawing.Size(88, 13); + this.L_Species_Precursor.TabIndex = 3; + this.L_Species_Precursor.Text = "Current Species: "; + // + // TC_Pokemon + // + this.TC_Pokemon.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.TC_Pokemon.Controls.Add(this.TP_General); + this.TC_Pokemon.Controls.Add(this.TP_MoveTutors); + this.TC_Pokemon.Controls.Add(this.TP_Randomizer); + this.TC_Pokemon.Location = new System.Drawing.Point(12, 40); + this.TC_Pokemon.Name = "TC_Pokemon"; + this.TC_Pokemon.SelectedIndex = 0; + this.TC_Pokemon.Size = new System.Drawing.Size(445, 375); + this.TC_Pokemon.TabIndex = 416; + // + // TP_General + // + this.TP_General.Controls.Add(this.TB_RawColor); + this.TP_General.Controls.Add(this.L_HiddenAbility); + this.TP_General.Controls.Add(this.L_WeightKG); + this.TP_General.Controls.Add(this.L_Ability2); + this.TP_General.Controls.Add(this.L_HeightM); + this.TP_General.Controls.Add(this.L_Ability1); + this.TP_General.Controls.Add(this.TB_Weight); + this.TP_General.Controls.Add(this.TB_Height); + this.TP_General.Controls.Add(this.L_Weight); + this.TP_General.Controls.Add(this.L_Height); + this.TP_General.Controls.Add(this.CB_ZMove); + this.TP_General.Controls.Add(this.CB_ZBaseMove); + this.TP_General.Controls.Add(this.CB_ZItem); + this.TP_General.Controls.Add(this.TB_CallRate); + this.TP_General.Controls.Add(this.L_CallRate); + this.TP_General.Controls.Add(this.CHK_Variant); + this.TP_General.Controls.Add(this.TB_BST); + this.TP_General.Controls.Add(this.L_BST); + this.TP_General.Controls.Add(this.TB_CatchRate); + this.TP_General.Controls.Add(this.TB_Stage); + this.TP_General.Controls.Add(this.L_Stage); + this.TP_General.Controls.Add(this.TB_FormeCount); + this.TP_General.Controls.Add(this.L_FormesCount); + this.TP_General.Controls.Add(this.TB_FormeSprite); + this.TP_General.Controls.Add(this.L_FormeSprite); + this.TP_General.Controls.Add(this.L_CatchRate); + this.TP_General.Controls.Add(this.CB_Color); + this.TP_General.Controls.Add(this.CB_EXPGroup); + this.TP_General.Controls.Add(this.L_Color); + this.TP_General.Controls.Add(this.L_EXPGrowth); + this.TP_General.Controls.Add(this.CB_Ability3); + this.TP_General.Controls.Add(this.CB_Ability2); + this.TP_General.Controls.Add(this.CB_Ability1); + this.TP_General.Controls.Add(this.CB_EggGroup2); + this.TP_General.Controls.Add(this.CB_EggGroup1); + this.TP_General.Controls.Add(this.L_EggGroup); + this.TP_General.Controls.Add(this.L_Ability); + this.TP_General.Controls.Add(this.TB_BaseExp); + this.TP_General.Controls.Add(this.L_BaseEXP); + this.TP_General.Controls.Add(this.TB_HatchCycles); + this.TP_General.Controls.Add(this.L_HatchCycles); + this.TP_General.Controls.Add(this.TB_Friendship); + this.TP_General.Controls.Add(this.TB_Gender); + this.TP_General.Controls.Add(this.L_Friendship); + this.TP_General.Controls.Add(this.L_Gender); + this.TP_General.Controls.Add(this.L_Item1); + this.TP_General.Controls.Add(this.L_Item5); + this.TP_General.Controls.Add(this.L_Item50); + this.TP_General.Controls.Add(this.CB_HeldItem3); + this.TP_General.Controls.Add(this.CB_HeldItem2); + this.TP_General.Controls.Add(this.CB_HeldItem1); + this.TP_General.Controls.Add(this.L_HeldItem); + this.TP_General.Controls.Add(this.CB_Type2); + this.TP_General.Controls.Add(this.CB_Type1); + this.TP_General.Controls.Add(this.L_Type); + this.TP_General.Controls.Add(this.TB_SPEEVs); + this.TP_General.Controls.Add(this.TB_SPDEVs); + this.TP_General.Controls.Add(this.TB_SPAEVs); + this.TP_General.Controls.Add(this.TB_DEFEVs); + this.TP_General.Controls.Add(this.TB_ATKEVs); + this.TP_General.Controls.Add(this.TB_HPEVs); + this.TP_General.Controls.Add(this.TB_BaseSPE); + this.TP_General.Controls.Add(this.TB_BaseSPD); + this.TP_General.Controls.Add(this.TB_BaseSPA); + this.TP_General.Controls.Add(this.TB_BaseDEF); + this.TP_General.Controls.Add(this.TB_BaseATK); + this.TP_General.Controls.Add(this.TB_BaseHP); + this.TP_General.Controls.Add(this.Label_HP); + this.TP_General.Controls.Add(this.Label_ATK); + this.TP_General.Controls.Add(this.Label_DEF); + this.TP_General.Controls.Add(this.Label_SPA); + this.TP_General.Controls.Add(this.Label_SPD); + this.TP_General.Controls.Add(this.Label_SPE); + this.TP_General.Controls.Add(this.L_EVYield); + this.TP_General.Controls.Add(this.L_BaseStats); + this.TP_General.Controls.Add(this.L_ZMove); + this.TP_General.Controls.Add(this.L_BaseMove); + this.TP_General.Controls.Add(this.L_ZCrystal); + this.TP_General.Location = new System.Drawing.Point(4, 22); + this.TP_General.Name = "TP_General"; + this.TP_General.Padding = new System.Windows.Forms.Padding(3); + this.TP_General.Size = new System.Drawing.Size(437, 349); + this.TP_General.TabIndex = 0; + this.TP_General.Text = "General Info"; + this.TP_General.UseVisualStyleBackColor = true; + // + // TB_RawColor + // + this.TB_RawColor.Location = new System.Drawing.Point(229, 209); + this.TB_RawColor.Name = "TB_RawColor"; + this.TB_RawColor.ReadOnly = true; + this.TB_RawColor.Size = new System.Drawing.Size(30, 20); + this.TB_RawColor.TabIndex = 420; + this.TB_RawColor.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_RawColor.Visible = false; + // + // L_HiddenAbility + // + this.L_HiddenAbility.AutoSize = true; + this.L_HiddenAbility.Location = new System.Drawing.Point(413, 126); + this.L_HiddenAbility.Name = "L_HiddenAbility"; + this.L_HiddenAbility.Size = new System.Drawing.Size(21, 13); + this.L_HiddenAbility.TabIndex = 421; + this.L_HiddenAbility.Text = "(H)"; + // + // L_WeightKG + // + this.L_WeightKG.AutoSize = true; + this.L_WeightKG.Location = new System.Drawing.Point(416, 326); + this.L_WeightKG.Name = "L_WeightKG"; + this.L_WeightKG.Size = new System.Drawing.Size(19, 13); + this.L_WeightKG.TabIndex = 105; + this.L_WeightKG.Text = "kg"; + // + // L_Ability2 + // + this.L_Ability2.AutoSize = true; + this.L_Ability2.Location = new System.Drawing.Point(414, 104); + this.L_Ability2.Name = "L_Ability2"; + this.L_Ability2.Size = new System.Drawing.Size(19, 13); + this.L_Ability2.TabIndex = 420; + this.L_Ability2.Text = "(2)"; + // + // L_HeightM + // + this.L_HeightM.AutoSize = true; + this.L_HeightM.Location = new System.Drawing.Point(416, 305); + this.L_HeightM.Name = "L_HeightM"; + this.L_HeightM.Size = new System.Drawing.Size(15, 13); + this.L_HeightM.TabIndex = 104; + this.L_HeightM.Text = "m"; + // + // L_Ability1 + // + this.L_Ability1.AutoSize = true; + this.L_Ability1.Location = new System.Drawing.Point(414, 82); + this.L_Ability1.Name = "L_Ability1"; + this.L_Ability1.Size = new System.Drawing.Size(19, 13); + this.L_Ability1.TabIndex = 419; + this.L_Ability1.Text = "(1)"; + // + // TB_Weight + // + this.TB_Weight.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_Weight.Location = new System.Drawing.Point(384, 322); + this.TB_Weight.Mask = "000.0"; + this.TB_Weight.Name = "TB_Weight"; + this.TB_Weight.Size = new System.Drawing.Size(32, 20); + this.TB_Weight.TabIndex = 103; + this.TB_Weight.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // TB_Height + // + this.TB_Height.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_Height.Location = new System.Drawing.Point(384, 301); + this.TB_Height.Mask = "00.0"; + this.TB_Height.Name = "TB_Height"; + this.TB_Height.Size = new System.Drawing.Size(32, 20); + this.TB_Height.TabIndex = 102; + this.TB_Height.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // L_Weight + // + this.L_Weight.AutoSize = true; + this.L_Weight.Location = new System.Drawing.Point(340, 325); + this.L_Weight.Name = "L_Weight"; + this.L_Weight.Size = new System.Drawing.Size(44, 13); + this.L_Weight.TabIndex = 101; + this.L_Weight.Text = "Weight:"; + this.L_Weight.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_Height + // + this.L_Height.AutoSize = true; + this.L_Height.Location = new System.Drawing.Point(343, 304); + this.L_Height.Name = "L_Height"; + this.L_Height.Size = new System.Drawing.Size(41, 13); + this.L_Height.TabIndex = 100; + this.L_Height.Text = "Height:"; + this.L_Height.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_ZMove + // + this.CB_ZMove.FormattingEnabled = true; + this.CB_ZMove.Location = new System.Drawing.Point(177, 321); + this.CB_ZMove.Name = "CB_ZMove"; + this.CB_ZMove.Size = new System.Drawing.Size(121, 21); + this.CB_ZMove.TabIndex = 98; + // + // CB_ZBaseMove + // + this.CB_ZBaseMove.FormattingEnabled = true; + this.CB_ZBaseMove.Location = new System.Drawing.Point(177, 299); + this.CB_ZBaseMove.Name = "CB_ZBaseMove"; + this.CB_ZBaseMove.Size = new System.Drawing.Size(121, 21); + this.CB_ZBaseMove.TabIndex = 95; + // + // CB_ZItem + // + this.CB_ZItem.FormattingEnabled = true; + this.CB_ZItem.Location = new System.Drawing.Point(177, 277); + this.CB_ZItem.Name = "CB_ZItem"; + this.CB_ZItem.Size = new System.Drawing.Size(121, 21); + this.CB_ZItem.TabIndex = 94; + // + // TB_CallRate + // + this.TB_CallRate.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_CallRate.Location = new System.Drawing.Point(77, 281); + this.TB_CallRate.Mask = "000"; + this.TB_CallRate.Name = "TB_CallRate"; + this.TB_CallRate.Size = new System.Drawing.Size(31, 20); + this.TB_CallRate.TabIndex = 93; + this.TB_CallRate.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_CallRate.TextChanged += new System.EventHandler(this.ByteLimiter); + // + // L_CallRate + // + this.L_CallRate.AutoSize = true; + this.L_CallRate.Location = new System.Drawing.Point(23, 285); + this.L_CallRate.Name = "L_CallRate"; + this.L_CallRate.Size = new System.Drawing.Size(53, 13); + this.L_CallRate.TabIndex = 92; + this.L_CallRate.Text = "Call Rate:"; + this.L_CallRate.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CHK_Variant + // + this.CHK_Variant.AutoSize = true; + this.CHK_Variant.Location = new System.Drawing.Point(185, 259); + this.CHK_Variant.Name = "CHK_Variant"; + this.CHK_Variant.Size = new System.Drawing.Size(104, 17); + this.CHK_Variant.TabIndex = 91; + this.CHK_Variant.Text = "Regional Variant"; + this.CHK_Variant.UseVisualStyleBackColor = true; + // + // TB_BST + // + this.TB_BST.Location = new System.Drawing.Point(387, 27); + this.TB_BST.Name = "TB_BST"; + this.TB_BST.ReadOnly = true; + this.TB_BST.Size = new System.Drawing.Size(31, 20); + this.TB_BST.TabIndex = 90; + this.TB_BST.Text = "___"; + this.TB_BST.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // L_BST + // + this.L_BST.AutoSize = true; + this.L_BST.Location = new System.Drawing.Point(355, 30); + this.L_BST.Name = "L_BST"; + this.L_BST.Size = new System.Drawing.Size(31, 13); + this.L_BST.TabIndex = 89; + this.L_BST.Text = "BST:"; + this.L_BST.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // TB_CatchRate + // + this.TB_CatchRate.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_CatchRate.Location = new System.Drawing.Point(387, 51); + this.TB_CatchRate.Mask = "000"; + this.TB_CatchRate.Name = "TB_CatchRate"; + this.TB_CatchRate.Size = new System.Drawing.Size(31, 20); + this.TB_CatchRate.TabIndex = 87; + this.TB_CatchRate.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_CatchRate.TextChanged += new System.EventHandler(this.ByteLimiter); + // + // TB_Stage + // + this.TB_Stage.Location = new System.Drawing.Point(384, 238); + this.TB_Stage.Name = "TB_Stage"; + this.TB_Stage.ReadOnly = true; + this.TB_Stage.Size = new System.Drawing.Size(32, 20); + this.TB_Stage.TabIndex = 86; + this.TB_Stage.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // L_Stage + // + this.L_Stage.AutoSize = true; + this.L_Stage.Location = new System.Drawing.Point(299, 240); + this.L_Stage.Name = "L_Stage"; + this.L_Stage.Size = new System.Drawing.Size(85, 13); + this.L_Stage.TabIndex = 85; + this.L_Stage.Text = "Evolution Stage:"; + this.L_Stage.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // TB_FormeCount + // + this.TB_FormeCount.Location = new System.Drawing.Point(384, 280); + this.TB_FormeCount.Name = "TB_FormeCount"; + this.TB_FormeCount.ReadOnly = true; + this.TB_FormeCount.Size = new System.Drawing.Size(32, 20); + this.TB_FormeCount.TabIndex = 82; + this.TB_FormeCount.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // L_FormesCount + // + this.L_FormesCount.AutoSize = true; + this.L_FormesCount.Location = new System.Drawing.Point(309, 283); + this.L_FormesCount.Name = "L_FormesCount"; + this.L_FormesCount.Size = new System.Drawing.Size(75, 13); + this.L_FormesCount.TabIndex = 81; + this.L_FormesCount.Text = "Formes Count:"; + this.L_FormesCount.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // TB_FormeSprite + // + this.TB_FormeSprite.Location = new System.Drawing.Point(384, 259); + this.TB_FormeSprite.Name = "TB_FormeSprite"; + this.TB_FormeSprite.ReadOnly = true; + this.TB_FormeSprite.Size = new System.Drawing.Size(32, 20); + this.TB_FormeSprite.TabIndex = 80; + this.TB_FormeSprite.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // L_FormeSprite + // + this.L_FormeSprite.AutoSize = true; + this.L_FormeSprite.Location = new System.Drawing.Point(315, 262); + this.L_FormeSprite.Name = "L_FormeSprite"; + this.L_FormeSprite.Size = new System.Drawing.Size(69, 13); + this.L_FormeSprite.TabIndex = 79; + this.L_FormeSprite.Text = "Forme Sprite:"; + this.L_FormeSprite.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_CatchRate + // + this.L_CatchRate.AutoSize = true; + this.L_CatchRate.Location = new System.Drawing.Point(322, 54); + this.L_CatchRate.Name = "L_CatchRate"; + this.L_CatchRate.Size = new System.Drawing.Size(64, 13); + this.L_CatchRate.TabIndex = 77; + this.L_CatchRate.Text = "Catch Rate:"; + // + // CB_Color + // + this.CB_Color.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Color.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Color.FormattingEnabled = true; + this.CB_Color.Location = new System.Drawing.Point(295, 209); + this.CB_Color.Name = "CB_Color"; + this.CB_Color.Size = new System.Drawing.Size(121, 21); + this.CB_Color.TabIndex = 76; + // + // CB_EXPGroup + // + this.CB_EXPGroup.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_EXPGroup.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_EXPGroup.FormattingEnabled = true; + this.CB_EXPGroup.Location = new System.Drawing.Point(80, 210); + this.CB_EXPGroup.Name = "CB_EXPGroup"; + this.CB_EXPGroup.Size = new System.Drawing.Size(112, 21); + this.CB_EXPGroup.TabIndex = 75; + // + // L_Color + // + this.L_Color.AutoSize = true; + this.L_Color.Location = new System.Drawing.Point(261, 211); + this.L_Color.Name = "L_Color"; + this.L_Color.Size = new System.Drawing.Size(34, 13); + this.L_Color.TabIndex = 74; + this.L_Color.Text = "Color:"; + // + // L_EXPGrowth + // + this.L_EXPGrowth.AutoSize = true; + this.L_EXPGrowth.Location = new System.Drawing.Point(16, 213); + this.L_EXPGrowth.Name = "L_EXPGrowth"; + this.L_EXPGrowth.Size = new System.Drawing.Size(63, 13); + this.L_EXPGrowth.TabIndex = 73; + this.L_EXPGrowth.Text = "EXP Group:"; + // + // CB_Ability3 + // + this.CB_Ability3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Ability3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Ability3.FormattingEnabled = true; + this.CB_Ability3.Location = new System.Drawing.Point(272, 123); + this.CB_Ability3.Name = "CB_Ability3"; + this.CB_Ability3.Size = new System.Drawing.Size(140, 21); + this.CB_Ability3.TabIndex = 68; + // + // CB_Ability2 + // + this.CB_Ability2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Ability2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Ability2.FormattingEnabled = true; + this.CB_Ability2.Location = new System.Drawing.Point(272, 101); + this.CB_Ability2.Name = "CB_Ability2"; + this.CB_Ability2.Size = new System.Drawing.Size(140, 21); + this.CB_Ability2.TabIndex = 67; + // + // CB_Ability1 + // + this.CB_Ability1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Ability1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Ability1.FormattingEnabled = true; + this.CB_Ability1.Location = new System.Drawing.Point(272, 79); + this.CB_Ability1.Name = "CB_Ability1"; + this.CB_Ability1.Size = new System.Drawing.Size(140, 21); + this.CB_Ability1.TabIndex = 66; + // + // CB_EggGroup2 + // + this.CB_EggGroup2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_EggGroup2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_EggGroup2.FormattingEnabled = true; + this.CB_EggGroup2.Location = new System.Drawing.Point(295, 180); + this.CB_EggGroup2.Name = "CB_EggGroup2"; + this.CB_EggGroup2.Size = new System.Drawing.Size(121, 21); + this.CB_EggGroup2.TabIndex = 65; + // + // CB_EggGroup1 + // + this.CB_EggGroup1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_EggGroup1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_EggGroup1.FormattingEnabled = true; + this.CB_EggGroup1.Location = new System.Drawing.Point(295, 158); + this.CB_EggGroup1.Name = "CB_EggGroup1"; + this.CB_EggGroup1.Size = new System.Drawing.Size(121, 21); + this.CB_EggGroup1.TabIndex = 64; + // + // L_EggGroup + // + this.L_EggGroup.AutoSize = true; + this.L_EggGroup.Location = new System.Drawing.Point(230, 161); + this.L_EggGroup.Name = "L_EggGroup"; + this.L_EggGroup.Size = new System.Drawing.Size(66, 13); + this.L_EggGroup.TabIndex = 63; + this.L_EggGroup.Text = "Egg Groups:"; + // + // L_Ability + // + this.L_Ability.AutoSize = true; + this.L_Ability.Location = new System.Drawing.Point(226, 83); + this.L_Ability.Name = "L_Ability"; + this.L_Ability.Size = new System.Drawing.Size(45, 13); + this.L_Ability.TabIndex = 62; + this.L_Ability.Text = "Abilities:"; + // + // TB_BaseExp + // + this.TB_BaseExp.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_BaseExp.Location = new System.Drawing.Point(77, 302); + this.TB_BaseExp.Mask = "000"; + this.TB_BaseExp.Name = "TB_BaseExp"; + this.TB_BaseExp.Size = new System.Drawing.Size(31, 20); + this.TB_BaseExp.TabIndex = 61; + this.TB_BaseExp.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_BaseExp.TextChanged += new System.EventHandler(this.ByteLimiter); + // + // L_BaseEXP + // + this.L_BaseEXP.AutoSize = true; + this.L_BaseEXP.Location = new System.Drawing.Point(18, 306); + this.L_BaseEXP.Name = "L_BaseEXP"; + this.L_BaseEXP.Size = new System.Drawing.Size(58, 13); + this.L_BaseEXP.TabIndex = 60; + this.L_BaseEXP.Text = "Base EXP:"; + this.L_BaseEXP.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // TB_HatchCycles + // + this.TB_HatchCycles.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_HatchCycles.Location = new System.Drawing.Point(77, 323); + this.TB_HatchCycles.Mask = "000"; + this.TB_HatchCycles.Name = "TB_HatchCycles"; + this.TB_HatchCycles.Size = new System.Drawing.Size(31, 20); + this.TB_HatchCycles.TabIndex = 58; + this.TB_HatchCycles.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_HatchCycles.TextChanged += new System.EventHandler(this.ByteLimiter); + // + // L_HatchCycles + // + this.L_HatchCycles.AutoSize = true; + this.L_HatchCycles.Location = new System.Drawing.Point(3, 326); + this.L_HatchCycles.Name = "L_HatchCycles"; + this.L_HatchCycles.Size = new System.Drawing.Size(73, 13); + this.L_HatchCycles.TabIndex = 57; + this.L_HatchCycles.Text = "Hatch Cycles:"; + this.L_HatchCycles.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // TB_Friendship + // + this.TB_Friendship.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_Friendship.Location = new System.Drawing.Point(77, 260); + this.TB_Friendship.Mask = "000"; + this.TB_Friendship.Name = "TB_Friendship"; + this.TB_Friendship.Size = new System.Drawing.Size(31, 20); + this.TB_Friendship.TabIndex = 56; + this.TB_Friendship.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_Friendship.TextChanged += new System.EventHandler(this.ByteLimiter); + // + // TB_Gender + // + this.TB_Gender.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_Gender.Location = new System.Drawing.Point(77, 239); + this.TB_Gender.Mask = "000"; + this.TB_Gender.Name = "TB_Gender"; + this.TB_Gender.Size = new System.Drawing.Size(31, 20); + this.TB_Gender.TabIndex = 55; + this.TB_Gender.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_Gender.TextChanged += new System.EventHandler(this.ByteLimiter); + // + // L_Friendship + // + this.L_Friendship.AutoSize = true; + this.L_Friendship.Location = new System.Drawing.Point(18, 264); + this.L_Friendship.Name = "L_Friendship"; + this.L_Friendship.Size = new System.Drawing.Size(58, 13); + this.L_Friendship.TabIndex = 54; + this.L_Friendship.Text = "Friendship:"; + this.L_Friendship.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_Gender + // + this.L_Gender.AutoSize = true; + this.L_Gender.Location = new System.Drawing.Point(31, 242); + this.L_Gender.Name = "L_Gender"; + this.L_Gender.Size = new System.Drawing.Size(45, 13); + this.L_Gender.TabIndex = 53; + this.L_Gender.Text = "Gender:"; + this.L_Gender.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_Item1 + // + this.L_Item1.AutoSize = true; + this.L_Item1.Location = new System.Drawing.Point(195, 126); + this.L_Item1.Name = "L_Item1"; + this.L_Item1.Size = new System.Drawing.Size(21, 13); + this.L_Item1.TabIndex = 52; + this.L_Item1.Text = "1%"; + // + // L_Item5 + // + this.L_Item5.AutoSize = true; + this.L_Item5.Location = new System.Drawing.Point(195, 104); + this.L_Item5.Name = "L_Item5"; + this.L_Item5.Size = new System.Drawing.Size(21, 13); + this.L_Item5.TabIndex = 51; + this.L_Item5.Text = "5%"; + // + // L_Item50 + // + this.L_Item50.AutoSize = true; + this.L_Item50.Location = new System.Drawing.Point(195, 83); + this.L_Item50.Name = "L_Item50"; + this.L_Item50.Size = new System.Drawing.Size(27, 13); + this.L_Item50.TabIndex = 50; + this.L_Item50.Text = "50%"; + // + // CB_HeldItem3 + // + this.CB_HeldItem3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_HeldItem3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_HeldItem3.FormattingEnabled = true; + this.CB_HeldItem3.Location = new System.Drawing.Point(52, 123); + this.CB_HeldItem3.Name = "CB_HeldItem3"; + this.CB_HeldItem3.Size = new System.Drawing.Size(140, 21); + this.CB_HeldItem3.TabIndex = 49; + // + // CB_HeldItem2 + // + this.CB_HeldItem2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_HeldItem2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_HeldItem2.FormattingEnabled = true; + this.CB_HeldItem2.Location = new System.Drawing.Point(52, 101); + this.CB_HeldItem2.Name = "CB_HeldItem2"; + this.CB_HeldItem2.Size = new System.Drawing.Size(140, 21); + this.CB_HeldItem2.TabIndex = 48; + // + // CB_HeldItem1 + // + this.CB_HeldItem1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_HeldItem1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_HeldItem1.FormattingEnabled = true; + this.CB_HeldItem1.Location = new System.Drawing.Point(52, 79); + this.CB_HeldItem1.Name = "CB_HeldItem1"; + this.CB_HeldItem1.Size = new System.Drawing.Size(140, 21); + this.CB_HeldItem1.TabIndex = 47; + // + // L_HeldItem + // + this.L_HeldItem.AutoSize = true; + this.L_HeldItem.Location = new System.Drawing.Point(16, 82); + this.L_HeldItem.Name = "L_HeldItem"; + this.L_HeldItem.Size = new System.Drawing.Size(35, 13); + this.L_HeldItem.TabIndex = 46; + this.L_HeldItem.Text = "Items:"; + // + // CB_Type2 + // + this.CB_Type2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Type2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Type2.FormattingEnabled = true; + this.CB_Type2.Location = new System.Drawing.Point(63, 180); + this.CB_Type2.Name = "CB_Type2"; + this.CB_Type2.Size = new System.Drawing.Size(129, 21); + this.CB_Type2.TabIndex = 45; + // + // CB_Type1 + // + this.CB_Type1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Type1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Type1.FormattingEnabled = true; + this.CB_Type1.Location = new System.Drawing.Point(63, 158); + this.CB_Type1.Name = "CB_Type1"; + this.CB_Type1.Size = new System.Drawing.Size(129, 21); + this.CB_Type1.TabIndex = 44; + // + // L_Type + // + this.L_Type.AutoSize = true; + this.L_Type.Location = new System.Drawing.Point(16, 161); + this.L_Type.Name = "L_Type"; + this.L_Type.Size = new System.Drawing.Size(47, 13); + this.L_Type.TabIndex = 43; + this.L_Type.Text = "Typings:"; + // + // TB_SPEEVs + // + this.TB_SPEEVs.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_SPEEVs.Location = new System.Drawing.Point(273, 51); + this.TB_SPEEVs.Mask = "0"; + this.TB_SPEEVs.Name = "TB_SPEEVs"; + this.TB_SPEEVs.Size = new System.Drawing.Size(31, 20); + this.TB_SPEEVs.TabIndex = 42; + this.TB_SPEEVs.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_SPEEVs.TextChanged += new System.EventHandler(this.ByteLimiter); + // + // TB_SPDEVs + // + this.TB_SPDEVs.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_SPDEVs.Location = new System.Drawing.Point(234, 51); + this.TB_SPDEVs.Mask = "0"; + this.TB_SPDEVs.Name = "TB_SPDEVs"; + this.TB_SPDEVs.Size = new System.Drawing.Size(31, 20); + this.TB_SPDEVs.TabIndex = 41; + this.TB_SPDEVs.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_SPDEVs.TextChanged += new System.EventHandler(this.ByteLimiter); + // + // TB_SPAEVs + // + this.TB_SPAEVs.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_SPAEVs.Location = new System.Drawing.Point(195, 51); + this.TB_SPAEVs.Mask = "0"; + this.TB_SPAEVs.Name = "TB_SPAEVs"; + this.TB_SPAEVs.Size = new System.Drawing.Size(31, 20); + this.TB_SPAEVs.TabIndex = 40; + this.TB_SPAEVs.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_SPAEVs.TextChanged += new System.EventHandler(this.ByteLimiter); + // + // TB_DEFEVs + // + this.TB_DEFEVs.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_DEFEVs.Location = new System.Drawing.Point(157, 51); + this.TB_DEFEVs.Mask = "0"; + this.TB_DEFEVs.Name = "TB_DEFEVs"; + this.TB_DEFEVs.Size = new System.Drawing.Size(31, 20); + this.TB_DEFEVs.TabIndex = 39; + this.TB_DEFEVs.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_DEFEVs.TextChanged += new System.EventHandler(this.ByteLimiter); + // + // TB_ATKEVs + // + this.TB_ATKEVs.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_ATKEVs.Location = new System.Drawing.Point(119, 51); + this.TB_ATKEVs.Mask = "0"; + this.TB_ATKEVs.Name = "TB_ATKEVs"; + this.TB_ATKEVs.Size = new System.Drawing.Size(31, 20); + this.TB_ATKEVs.TabIndex = 38; + this.TB_ATKEVs.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_ATKEVs.TextChanged += new System.EventHandler(this.ByteLimiter); + // + // TB_HPEVs + // + this.TB_HPEVs.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_HPEVs.Location = new System.Drawing.Point(80, 51); + this.TB_HPEVs.Mask = "0"; + this.TB_HPEVs.Name = "TB_HPEVs"; + this.TB_HPEVs.Size = new System.Drawing.Size(31, 20); + this.TB_HPEVs.TabIndex = 37; + this.TB_HPEVs.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_HPEVs.TextChanged += new System.EventHandler(this.ByteLimiter); + // + // TB_BaseSPE + // + this.TB_BaseSPE.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_BaseSPE.Location = new System.Drawing.Point(273, 27); + this.TB_BaseSPE.Mask = "000"; + this.TB_BaseSPE.Name = "TB_BaseSPE"; + this.TB_BaseSPE.Size = new System.Drawing.Size(31, 20); + this.TB_BaseSPE.TabIndex = 36; + this.TB_BaseSPE.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_BaseSPE.TextChanged += new System.EventHandler(this.ByteLimiter); + // + // TB_BaseSPD + // + this.TB_BaseSPD.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_BaseSPD.Location = new System.Drawing.Point(234, 27); + this.TB_BaseSPD.Mask = "000"; + this.TB_BaseSPD.Name = "TB_BaseSPD"; + this.TB_BaseSPD.Size = new System.Drawing.Size(31, 20); + this.TB_BaseSPD.TabIndex = 35; + this.TB_BaseSPD.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_BaseSPD.TextChanged += new System.EventHandler(this.ByteLimiter); + // + // TB_BaseSPA + // + this.TB_BaseSPA.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_BaseSPA.Location = new System.Drawing.Point(195, 27); + this.TB_BaseSPA.Mask = "000"; + this.TB_BaseSPA.Name = "TB_BaseSPA"; + this.TB_BaseSPA.Size = new System.Drawing.Size(31, 20); + this.TB_BaseSPA.TabIndex = 34; + this.TB_BaseSPA.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_BaseSPA.TextChanged += new System.EventHandler(this.ByteLimiter); + // + // TB_BaseDEF + // + this.TB_BaseDEF.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_BaseDEF.Location = new System.Drawing.Point(157, 27); + this.TB_BaseDEF.Mask = "000"; + this.TB_BaseDEF.Name = "TB_BaseDEF"; + this.TB_BaseDEF.Size = new System.Drawing.Size(31, 20); + this.TB_BaseDEF.TabIndex = 33; + this.TB_BaseDEF.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_BaseDEF.TextChanged += new System.EventHandler(this.ByteLimiter); + // + // TB_BaseATK + // + this.TB_BaseATK.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_BaseATK.Location = new System.Drawing.Point(119, 27); + this.TB_BaseATK.Mask = "000"; + this.TB_BaseATK.Name = "TB_BaseATK"; + this.TB_BaseATK.Size = new System.Drawing.Size(31, 20); + this.TB_BaseATK.TabIndex = 32; + this.TB_BaseATK.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_BaseATK.TextChanged += new System.EventHandler(this.ByteLimiter); + // + // TB_BaseHP + // + this.TB_BaseHP.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_BaseHP.Location = new System.Drawing.Point(80, 27); + this.TB_BaseHP.Mask = "000"; + this.TB_BaseHP.Name = "TB_BaseHP"; + this.TB_BaseHP.Size = new System.Drawing.Size(31, 20); + this.TB_BaseHP.TabIndex = 31; + this.TB_BaseHP.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_BaseHP.TextChanged += new System.EventHandler(this.ByteLimiter); + // + // Label_HP + // + this.Label_HP.Location = new System.Drawing.Point(77, 11); + this.Label_HP.Name = "Label_HP"; + this.Label_HP.Size = new System.Drawing.Size(31, 13); + this.Label_HP.TabIndex = 25; + this.Label_HP.Text = "HP:"; + this.Label_HP.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // Label_ATK + // + this.Label_ATK.Location = new System.Drawing.Point(119, 11); + this.Label_ATK.Name = "Label_ATK"; + this.Label_ATK.Size = new System.Drawing.Size(31, 13); + this.Label_ATK.TabIndex = 26; + this.Label_ATK.Text = "Atk:"; + this.Label_ATK.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // Label_DEF + // + this.Label_DEF.Location = new System.Drawing.Point(157, 11); + this.Label_DEF.Name = "Label_DEF"; + this.Label_DEF.Size = new System.Drawing.Size(31, 13); + this.Label_DEF.TabIndex = 27; + this.Label_DEF.Text = "Def:"; + this.Label_DEF.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // Label_SPA + // + this.Label_SPA.Location = new System.Drawing.Point(195, 11); + this.Label_SPA.Name = "Label_SPA"; + this.Label_SPA.Size = new System.Drawing.Size(31, 13); + this.Label_SPA.TabIndex = 28; + this.Label_SPA.Text = "SpA:"; + this.Label_SPA.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // Label_SPD + // + this.Label_SPD.Location = new System.Drawing.Point(234, 11); + this.Label_SPD.Name = "Label_SPD"; + this.Label_SPD.Size = new System.Drawing.Size(31, 13); + this.Label_SPD.TabIndex = 29; + this.Label_SPD.Text = "SpD:"; + this.Label_SPD.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // Label_SPE + // + this.Label_SPE.Location = new System.Drawing.Point(271, 11); + this.Label_SPE.Name = "Label_SPE"; + this.Label_SPE.Size = new System.Drawing.Size(31, 13); + this.Label_SPE.TabIndex = 30; + this.Label_SPE.Text = "Spe:"; + this.Label_SPE.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_EVYield + // + this.L_EVYield.AutoSize = true; + this.L_EVYield.Location = new System.Drawing.Point(16, 54); + this.L_EVYield.Name = "L_EVYield"; + this.L_EVYield.Size = new System.Drawing.Size(50, 13); + this.L_EVYield.TabIndex = 2; + this.L_EVYield.Text = "EV Yield:"; + // + // L_BaseStats + // + this.L_BaseStats.AutoSize = true; + this.L_BaseStats.Location = new System.Drawing.Point(16, 30); + this.L_BaseStats.Name = "L_BaseStats"; + this.L_BaseStats.Size = new System.Drawing.Size(61, 13); + this.L_BaseStats.TabIndex = 1; + this.L_BaseStats.Text = "Base Stats:"; + // + // L_ZMove + // + this.L_ZMove.AutoSize = true; + this.L_ZMove.Location = new System.Drawing.Point(130, 324); + this.L_ZMove.Name = "L_ZMove"; + this.L_ZMove.Size = new System.Drawing.Size(47, 13); + this.L_ZMove.TabIndex = 99; + this.L_ZMove.Text = "Z-Move:"; + // + // L_BaseMove + // + this.L_BaseMove.AutoSize = true; + this.L_BaseMove.Location = new System.Drawing.Point(113, 303); + this.L_BaseMove.Name = "L_BaseMove"; + this.L_BaseMove.Size = new System.Drawing.Size(64, 13); + this.L_BaseMove.TabIndex = 97; + this.L_BaseMove.Text = "Base Move:"; + // + // L_ZCrystal + // + this.L_ZCrystal.AutoSize = true; + this.L_ZCrystal.Location = new System.Drawing.Point(126, 281); + this.L_ZCrystal.Name = "L_ZCrystal"; + this.L_ZCrystal.Size = new System.Drawing.Size(51, 13); + this.L_ZCrystal.TabIndex = 96; + this.L_ZCrystal.Text = "Z-Crystal:"; + // + // TP_MoveTutors + // + this.TP_MoveTutors.Controls.Add(this.L_BeachTutors); + this.TP_MoveTutors.Controls.Add(this.CLB_BeachTutors); + this.TP_MoveTutors.Controls.Add(this.L_Special); + this.TP_MoveTutors.Controls.Add(this.L_TM); + this.TP_MoveTutors.Controls.Add(this.CLB_MoveTutors); + this.TP_MoveTutors.Controls.Add(this.CLB_TM); + this.TP_MoveTutors.Location = new System.Drawing.Point(4, 22); + this.TP_MoveTutors.Name = "TP_MoveTutors"; + this.TP_MoveTutors.Padding = new System.Windows.Forms.Padding(3); + this.TP_MoveTutors.Size = new System.Drawing.Size(437, 349); + this.TP_MoveTutors.TabIndex = 1; + this.TP_MoveTutors.Text = "Move Tutors"; + this.TP_MoveTutors.UseVisualStyleBackColor = true; + // + // L_BeachTutors + // + this.L_BeachTutors.AutoSize = true; + this.L_BeachTutors.Location = new System.Drawing.Point(298, 3); + this.L_BeachTutors.Name = "L_BeachTutors"; + this.L_BeachTutors.Size = new System.Drawing.Size(74, 13); + this.L_BeachTutors.TabIndex = 9; + this.L_BeachTutors.Text = "Beach Tutors:"; + this.L_BeachTutors.Visible = false; + // + // CLB_BeachTutors + // + this.CLB_BeachTutors.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.CLB_BeachTutors.Enabled = false; + this.CLB_BeachTutors.FormattingEnabled = true; + this.CLB_BeachTutors.Location = new System.Drawing.Point(301, 19); + this.CLB_BeachTutors.Name = "CLB_BeachTutors"; + this.CLB_BeachTutors.Size = new System.Drawing.Size(133, 319); + this.CLB_BeachTutors.TabIndex = 8; + this.CLB_BeachTutors.Visible = false; + // + // L_Special + // + this.L_Special.AutoSize = true; + this.L_Special.Location = new System.Drawing.Point(159, 3); + this.L_Special.Name = "L_Special"; + this.L_Special.Size = new System.Drawing.Size(78, 13); + this.L_Special.TabIndex = 6; + this.L_Special.Text = "Special Tutors:"; + // + // L_TM + // + this.L_TM.AutoSize = true; + this.L_TM.Location = new System.Drawing.Point(6, 3); + this.L_TM.Name = "L_TM"; + this.L_TM.Size = new System.Drawing.Size(31, 13); + this.L_TM.TabIndex = 5; + this.L_TM.Text = "TMs:"; + // + // CLB_MoveTutors + // + this.CLB_MoveTutors.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.CLB_MoveTutors.FormattingEnabled = true; + this.CLB_MoveTutors.Location = new System.Drawing.Point(162, 19); + this.CLB_MoveTutors.Name = "CLB_MoveTutors"; + this.CLB_MoveTutors.Size = new System.Drawing.Size(133, 319); + this.CLB_MoveTutors.TabIndex = 3; + // + // CLB_TM + // + this.CLB_TM.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.CLB_TM.FormattingEnabled = true; + this.CLB_TM.Location = new System.Drawing.Point(9, 19); + this.CLB_TM.Name = "CLB_TM"; + this.CLB_TM.Size = new System.Drawing.Size(147, 319); + this.CLB_TM.TabIndex = 2; + // + // TP_Randomizer + // + this.TP_Randomizer.Controls.Add(this.GB_Modifier); + this.TP_Randomizer.Controls.Add(this.B_ModAll); + this.TP_Randomizer.Controls.Add(this.GB_Randomizer); + this.TP_Randomizer.Controls.Add(this.B_Randomize); + this.TP_Randomizer.Location = new System.Drawing.Point(4, 22); + this.TP_Randomizer.Name = "TP_Randomizer"; + this.TP_Randomizer.Size = new System.Drawing.Size(437, 349); + this.TP_Randomizer.TabIndex = 2; + this.TP_Randomizer.Text = "Enhancements"; + this.TP_Randomizer.UseVisualStyleBackColor = true; + // + // GB_Modifier + // + this.GB_Modifier.Controls.Add(this.CHK_FullBeachTutorCompatibility); + this.GB_Modifier.Controls.Add(this.CHK_FullMoveTutorCompatibility); + this.GB_Modifier.Controls.Add(this.CHK_FullTMCompatibility); + this.GB_Modifier.Controls.Add(this.CHK_NoTutor); + this.GB_Modifier.Controls.Add(this.CHK_CatchRateMod); + this.GB_Modifier.Controls.Add(this.L_CatchRateMod); + this.GB_Modifier.Controls.Add(this.NUD_CatchRateMod); + this.GB_Modifier.Controls.Add(this.CHK_CallRate); + this.GB_Modifier.Controls.Add(this.NUD_CallRate); + this.GB_Modifier.Controls.Add(this.CHK_EXP); + this.GB_Modifier.Controls.Add(this.L_CallRateVal); + this.GB_Modifier.Controls.Add(this.CHK_Growth); + this.GB_Modifier.Controls.Add(this.CHK_QuickHatch); + this.GB_Modifier.Controls.Add(this.L_FinalXP); + this.GB_Modifier.Controls.Add(this.NUD_EXP); + this.GB_Modifier.Controls.Add(this.CHK_NoEV); + this.GB_Modifier.Location = new System.Drawing.Point(4, 147); + this.GB_Modifier.Name = "GB_Modifier"; + this.GB_Modifier.Size = new System.Drawing.Size(345, 188); + this.GB_Modifier.TabIndex = 419; + this.GB_Modifier.TabStop = false; + this.GB_Modifier.Text = "Modifier Options"; + // + // CHK_FullMoveTutorCompatibility + // + this.CHK_FullMoveTutorCompatibility.AutoSize = true; + this.CHK_FullMoveTutorCompatibility.Location = new System.Drawing.Point(6, 154); + this.CHK_FullMoveTutorCompatibility.Name = "CHK_FullMoveTutorCompatibility"; + this.CHK_FullMoveTutorCompatibility.Size = new System.Drawing.Size(138, 30); + this.CHK_FullMoveTutorCompatibility.TabIndex = 23; + this.CHK_FullMoveTutorCompatibility.Text = "Full Special Move Tutor\nCompatibility"; + this.CHK_FullMoveTutorCompatibility.UseVisualStyleBackColor = true; + // + // CHK_FullTMCompatibility + // + this.CHK_FullTMCompatibility.AutoSize = true; + this.CHK_FullTMCompatibility.Location = new System.Drawing.Point(6, 131); + this.CHK_FullTMCompatibility.Name = "CHK_FullTMCompatibility"; + this.CHK_FullTMCompatibility.Size = new System.Drawing.Size(122, 17); + this.CHK_FullTMCompatibility.TabIndex = 22; + this.CHK_FullTMCompatibility.Text = "Full TM Compatibility"; + this.CHK_FullTMCompatibility.UseVisualStyleBackColor = true; + // + // CHK_NoTutor + // + this.CHK_NoTutor.AutoSize = true; + this.CHK_NoTutor.Location = new System.Drawing.Point(6, 95); + this.CHK_NoTutor.Name = "CHK_NoTutor"; + this.CHK_NoTutor.Size = new System.Drawing.Size(176, 30); + this.CHK_NoTutor.TabIndex = 21; + this.CHK_NoTutor.Text = "Remove All TM/Move Tutor\nCompatibility (Metronome Mode)"; + this.CHK_NoTutor.UseVisualStyleBackColor = true; + // + // CHK_CatchRateMod + // + this.CHK_CatchRateMod.AutoSize = true; + this.CHK_CatchRateMod.Location = new System.Drawing.Point(204, 38); + this.CHK_CatchRateMod.Name = "CHK_CatchRateMod"; + this.CHK_CatchRateMod.Size = new System.Drawing.Size(114, 17); + this.CHK_CatchRateMod.TabIndex = 16; + this.CHK_CatchRateMod.Text = "Modify Catch Rate"; + this.CHK_CatchRateMod.UseVisualStyleBackColor = true; + // + // L_CatchRateMod + // + this.L_CatchRateMod.AutoSize = true; + this.L_CatchRateMod.Location = new System.Drawing.Point(230, 58); + this.L_CatchRateMod.Name = "L_CatchRateMod"; + this.L_CatchRateMod.Size = new System.Drawing.Size(34, 13); + this.L_CatchRateMod.TabIndex = 15; + this.L_CatchRateMod.Text = "Value"; + // + // NUD_CatchRateMod + // + this.NUD_CatchRateMod.Location = new System.Drawing.Point(267, 56); + this.NUD_CatchRateMod.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.NUD_CatchRateMod.Minimum = new decimal(new int[] { + 3, + 0, + 0, + 0}); + this.NUD_CatchRateMod.Name = "NUD_CatchRateMod"; + this.NUD_CatchRateMod.Size = new System.Drawing.Size(46, 20); + this.NUD_CatchRateMod.TabIndex = 14; + this.NUD_CatchRateMod.Value = new decimal(new int[] { + 3, + 0, + 0, + 0}); + // + // CHK_CallRate + // + this.CHK_CallRate.AutoSize = true; + this.CHK_CallRate.Location = new System.Drawing.Point(204, 80); + this.CHK_CallRate.Name = "CHK_CallRate"; + this.CHK_CallRate.Size = new System.Drawing.Size(128, 17); + this.CHK_CallRate.TabIndex = 13; + this.CHK_CallRate.Text = "Modify SOS Call Rate"; + this.CHK_CallRate.UseVisualStyleBackColor = true; + // + // NUD_CallRate + // + this.NUD_CallRate.Location = new System.Drawing.Point(267, 98); + this.NUD_CallRate.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.NUD_CallRate.Name = "NUD_CallRate"; + this.NUD_CallRate.Size = new System.Drawing.Size(46, 20); + this.NUD_CallRate.TabIndex = 11; + this.NUD_CallRate.Value = new decimal(new int[] { + 15, + 0, + 0, + 0}); + // + // CHK_EXP + // + this.CHK_EXP.AutoSize = true; + this.CHK_EXP.Location = new System.Drawing.Point(6, 51); + this.CHK_EXP.Name = "CHK_EXP"; + this.CHK_EXP.Size = new System.Drawing.Size(107, 17); + this.CHK_EXP.TabIndex = 7; + this.CHK_EXP.Text = "Modify EXP Yield"; + this.CHK_EXP.UseVisualStyleBackColor = true; + // + // L_CallRateVal + // + this.L_CallRateVal.AutoSize = true; + this.L_CallRateVal.Location = new System.Drawing.Point(230, 100); + this.L_CallRateVal.Name = "L_CallRateVal"; + this.L_CallRateVal.Size = new System.Drawing.Size(34, 13); + this.L_CallRateVal.TabIndex = 12; + this.L_CallRateVal.Text = "Value"; + // + // CHK_Growth + // + this.CHK_Growth.AutoSize = true; + this.CHK_Growth.Location = new System.Drawing.Point(6, 36); + this.CHK_Growth.Name = "CHK_Growth"; + this.CHK_Growth.Size = new System.Drawing.Size(147, 17); + this.CHK_Growth.TabIndex = 8; + this.CHK_Growth.Text = "Lowest EXP Growth Rate"; + this.CHK_Growth.UseVisualStyleBackColor = true; + // + // CHK_QuickHatch + // + this.CHK_QuickHatch.AutoSize = true; + this.CHK_QuickHatch.Checked = true; + this.CHK_QuickHatch.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_QuickHatch.Location = new System.Drawing.Point(204, 21); + this.CHK_QuickHatch.Name = "CHK_QuickHatch"; + this.CHK_QuickHatch.Size = new System.Drawing.Size(113, 17); + this.CHK_QuickHatch.TabIndex = 10; + this.CHK_QuickHatch.Text = "Quick Hatch Eggs"; + this.CHK_QuickHatch.UseVisualStyleBackColor = true; + // + // L_FinalXP + // + this.L_FinalXP.AutoSize = true; + this.L_FinalXP.Location = new System.Drawing.Point(6, 74); + this.L_FinalXP.Name = "L_FinalXP"; + this.L_FinalXP.Size = new System.Drawing.Size(63, 13); + this.L_FinalXP.TabIndex = 6; + this.L_FinalXP.Text = "Final XP (%)"; + // + // NUD_EXP + // + this.NUD_EXP.Location = new System.Drawing.Point(69, 72); + this.NUD_EXP.Maximum = new decimal(new int[] { + 300, + 0, + 0, + 0}); + this.NUD_EXP.Name = "NUD_EXP"; + this.NUD_EXP.Size = new System.Drawing.Size(46, 20); + this.NUD_EXP.TabIndex = 5; + this.NUD_EXP.Value = new decimal(new int[] { + 28, + 0, + 0, + 0}); + // + // CHK_NoEV + // + this.CHK_NoEV.AutoSize = true; + this.CHK_NoEV.Location = new System.Drawing.Point(6, 21); + this.CHK_NoEV.Name = "CHK_NoEV"; + this.CHK_NoEV.Size = new System.Drawing.Size(114, 17); + this.CHK_NoEV.TabIndex = 0; + this.CHK_NoEV.Text = "Remove EV Yields"; + this.CHK_NoEV.UseVisualStyleBackColor = true; + // + // B_ModAll + // + this.B_ModAll.Location = new System.Drawing.Point(352, 162); + this.B_ModAll.Name = "B_ModAll"; + this.B_ModAll.Size = new System.Drawing.Size(82, 23); + this.B_ModAll.TabIndex = 421; + this.B_ModAll.Text = "Modify All"; + this.B_ModAll.UseVisualStyleBackColor = true; + this.B_ModAll.Click += new System.EventHandler(this.B_ModifyAll); + // + // GB_Randomizer + // + this.GB_Randomizer.Controls.Add(this.CHK_Shuffle); + this.GB_Randomizer.Controls.Add(this.L_Same); + this.GB_Randomizer.Controls.Add(this.NUD_Egg); + this.GB_Randomizer.Controls.Add(this.CHK_BeachTutors); + this.GB_Randomizer.Controls.Add(this.CHK_WGuard); + this.GB_Randomizer.Controls.Add(this.CHK_Ability); + this.GB_Randomizer.Controls.Add(this.CHK_Tutors); + this.GB_Randomizer.Controls.Add(this.CHK_rSPE); + this.GB_Randomizer.Controls.Add(this.CHK_Type); + this.GB_Randomizer.Controls.Add(this.CHK_rSPD); + this.GB_Randomizer.Controls.Add(this.CHK_rSPA); + this.GB_Randomizer.Controls.Add(this.L_SingleType); + this.GB_Randomizer.Controls.Add(this.CHK_rDEF); + this.GB_Randomizer.Controls.Add(this.CHK_rATK); + this.GB_Randomizer.Controls.Add(this.NUD_TypePercent); + this.GB_Randomizer.Controls.Add(this.CHK_rHP); + this.GB_Randomizer.Controls.Add(this.L_StatDev); + this.GB_Randomizer.Controls.Add(this.CHK_TM); + this.GB_Randomizer.Controls.Add(this.NUD_StatDev); + this.GB_Randomizer.Controls.Add(this.CHK_Stats); + this.GB_Randomizer.Controls.Add(this.CHK_EggGroup); + this.GB_Randomizer.Controls.Add(this.CHK_CatchRate); + this.GB_Randomizer.Controls.Add(this.CHK_Item); + this.GB_Randomizer.Location = new System.Drawing.Point(4, 12); + this.GB_Randomizer.Name = "GB_Randomizer"; + this.GB_Randomizer.Size = new System.Drawing.Size(345, 133); + this.GB_Randomizer.TabIndex = 418; + this.GB_Randomizer.TabStop = false; + this.GB_Randomizer.Text = "Randomizer Options"; + // + // CHK_Shuffle + // + this.CHK_Shuffle.AutoSize = true; + this.CHK_Shuffle.Checked = true; + this.CHK_Shuffle.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_Shuffle.Location = new System.Drawing.Point(6, 75); + this.CHK_Shuffle.Name = "CHK_Shuffle"; + this.CHK_Shuffle.Size = new System.Drawing.Size(86, 17); + this.CHK_Shuffle.TabIndex = 25; + this.CHK_Shuffle.Text = "Shuffle Stats"; + this.CHK_Shuffle.UseVisualStyleBackColor = true; + // + // L_Same + // + this.L_Same.AutoSize = true; + this.L_Same.Location = new System.Drawing.Point(213, 99); + this.L_Same.Name = "L_Same"; + this.L_Same.Size = new System.Drawing.Size(51, 13); + this.L_Same.TabIndex = 23; + this.L_Same.Text = "Same (%)"; + // + // NUD_Egg + // + this.NUD_Egg.Location = new System.Drawing.Point(267, 97); + this.NUD_Egg.Name = "NUD_Egg"; + this.NUD_Egg.Size = new System.Drawing.Size(46, 20); + this.NUD_Egg.TabIndex = 22; + this.NUD_Egg.Value = new decimal(new int[] { + 50, + 0, + 0, + 0}); + // + // CHK_BeachTutors + // + this.CHK_BeachTutors.AutoSize = true; + this.CHK_BeachTutors.Checked = true; + this.CHK_BeachTutors.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_BeachTutors.Location = new System.Drawing.Point(219, 46); + this.CHK_BeachTutors.Name = "CHK_BeachTutors"; + this.CHK_BeachTutors.Size = new System.Drawing.Size(90, 17); + this.CHK_BeachTutors.TabIndex = 24; + this.CHK_BeachTutors.Text = "Beach Tutors"; + this.CHK_BeachTutors.UseVisualStyleBackColor = true; + // + // CHK_WGuard + // + this.CHK_WGuard.AutoSize = true; + this.CHK_WGuard.Location = new System.Drawing.Point(118, 45); + this.CHK_WGuard.Name = "CHK_WGuard"; + this.CHK_WGuard.Size = new System.Drawing.Size(96, 17); + this.CHK_WGuard.TabIndex = 10; + this.CHK_WGuard.Text = "Wonder Guard"; + this.CHK_WGuard.UseVisualStyleBackColor = true; + // + // CHK_Ability + // + this.CHK_Ability.AutoSize = true; + this.CHK_Ability.Checked = true; + this.CHK_Ability.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_Ability.Location = new System.Drawing.Point(118, 30); + this.CHK_Ability.Name = "CHK_Ability"; + this.CHK_Ability.Size = new System.Drawing.Size(61, 17); + this.CHK_Ability.TabIndex = 1; + this.CHK_Ability.Text = "Abilities"; + this.CHK_Ability.UseVisualStyleBackColor = true; + this.CHK_Ability.CheckedChanged += new System.EventHandler(this.CHK_Ability_CheckedChanged); + // + // CHK_Tutors + // + this.CHK_Tutors.AutoSize = true; + this.CHK_Tutors.Checked = true; + this.CHK_Tutors.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_Tutors.Location = new System.Drawing.Point(219, 30); + this.CHK_Tutors.Name = "CHK_Tutors"; + this.CHK_Tutors.Size = new System.Drawing.Size(94, 17); + this.CHK_Tutors.TabIndex = 8; + this.CHK_Tutors.Text = "Special Tutors"; + this.CHK_Tutors.UseVisualStyleBackColor = true; + // + // CHK_rSPE + // + this.CHK_rSPE.AutoSize = true; + this.CHK_rSPE.Checked = true; + this.CHK_rSPE.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_rSPE.Location = new System.Drawing.Point(51, 60); + this.CHK_rSPE.Name = "CHK_rSPE"; + this.CHK_rSPE.Size = new System.Drawing.Size(45, 17); + this.CHK_rSPE.TabIndex = 19; + this.CHK_rSPE.Text = "Spe"; + this.CHK_rSPE.UseVisualStyleBackColor = true; + // + // CHK_Type + // + this.CHK_Type.AutoSize = true; + this.CHK_Type.Checked = true; + this.CHK_Type.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_Type.Location = new System.Drawing.Point(118, 61); + this.CHK_Type.Name = "CHK_Type"; + this.CHK_Type.Size = new System.Drawing.Size(55, 17); + this.CHK_Type.TabIndex = 6; + this.CHK_Type.Text = "Types"; + this.CHK_Type.UseVisualStyleBackColor = true; + // + // CHK_rSPD + // + this.CHK_rSPD.AutoSize = true; + this.CHK_rSPD.Checked = true; + this.CHK_rSPD.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_rSPD.Location = new System.Drawing.Point(6, 60); + this.CHK_rSPD.Name = "CHK_rSPD"; + this.CHK_rSPD.Size = new System.Drawing.Size(47, 17); + this.CHK_rSPD.TabIndex = 18; + this.CHK_rSPD.Text = "SpD"; + this.CHK_rSPD.UseVisualStyleBackColor = true; + // + // CHK_rSPA + // + this.CHK_rSPA.AutoSize = true; + this.CHK_rSPA.Checked = true; + this.CHK_rSPA.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_rSPA.Location = new System.Drawing.Point(51, 45); + this.CHK_rSPA.Name = "CHK_rSPA"; + this.CHK_rSPA.Size = new System.Drawing.Size(46, 17); + this.CHK_rSPA.TabIndex = 17; + this.CHK_rSPA.Text = "SpA"; + this.CHK_rSPA.UseVisualStyleBackColor = true; + // + // L_SingleType + // + this.L_SingleType.AutoSize = true; + this.L_SingleType.Location = new System.Drawing.Point(115, 79); + this.L_SingleType.Name = "L_SingleType"; + this.L_SingleType.Size = new System.Drawing.Size(80, 13); + this.L_SingleType.TabIndex = 21; + this.L_SingleType.Text = "Single Type (%)"; + // + // CHK_rDEF + // + this.CHK_rDEF.AutoSize = true; + this.CHK_rDEF.Checked = true; + this.CHK_rDEF.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_rDEF.Location = new System.Drawing.Point(6, 45); + this.CHK_rDEF.Name = "CHK_rDEF"; + this.CHK_rDEF.Size = new System.Drawing.Size(43, 17); + this.CHK_rDEF.TabIndex = 16; + this.CHK_rDEF.Text = "Def"; + this.CHK_rDEF.UseVisualStyleBackColor = true; + // + // CHK_rATK + // + this.CHK_rATK.AutoSize = true; + this.CHK_rATK.Checked = true; + this.CHK_rATK.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_rATK.Location = new System.Drawing.Point(51, 30); + this.CHK_rATK.Name = "CHK_rATK"; + this.CHK_rATK.Size = new System.Drawing.Size(42, 17); + this.CHK_rATK.TabIndex = 15; + this.CHK_rATK.Text = "Atk"; + this.CHK_rATK.UseVisualStyleBackColor = true; + // + // NUD_TypePercent + // + this.NUD_TypePercent.Location = new System.Drawing.Point(134, 95); + this.NUD_TypePercent.Name = "NUD_TypePercent"; + this.NUD_TypePercent.Size = new System.Drawing.Size(46, 20); + this.NUD_TypePercent.TabIndex = 20; + this.NUD_TypePercent.Value = new decimal(new int[] { + 50, + 0, + 0, + 0}); + // + // CHK_rHP + // + this.CHK_rHP.AutoSize = true; + this.CHK_rHP.Checked = true; + this.CHK_rHP.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_rHP.Location = new System.Drawing.Point(6, 30); + this.CHK_rHP.Name = "CHK_rHP"; + this.CHK_rHP.Size = new System.Drawing.Size(41, 17); + this.CHK_rHP.TabIndex = 14; + this.CHK_rHP.Text = "HP"; + this.CHK_rHP.UseVisualStyleBackColor = true; + // + // L_StatDev + // + this.L_StatDev.AutoSize = true; + this.L_StatDev.Location = new System.Drawing.Point(6, 92); + this.L_StatDev.Name = "L_StatDev"; + this.L_StatDev.Size = new System.Drawing.Size(70, 13); + this.L_StatDev.TabIndex = 4; + this.L_StatDev.Text = "Deviance (%)"; + // + // CHK_TM + // + this.CHK_TM.AutoSize = true; + this.CHK_TM.Checked = true; + this.CHK_TM.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_TM.Location = new System.Drawing.Point(219, 15); + this.CHK_TM.Name = "CHK_TM"; + this.CHK_TM.Size = new System.Drawing.Size(103, 17); + this.CHK_TM.TabIndex = 0; + this.CHK_TM.Text = "TM Compatibility"; + this.CHK_TM.UseVisualStyleBackColor = true; + // + // NUD_StatDev + // + this.NUD_StatDev.Location = new System.Drawing.Point(27, 108); + this.NUD_StatDev.Name = "NUD_StatDev"; + this.NUD_StatDev.Size = new System.Drawing.Size(46, 20); + this.NUD_StatDev.TabIndex = 3; + this.NUD_StatDev.Value = new decimal(new int[] { + 25, + 0, + 0, + 0}); + // + // CHK_Stats + // + this.CHK_Stats.AutoSize = true; + this.CHK_Stats.Checked = true; + this.CHK_Stats.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_Stats.Location = new System.Drawing.Point(6, 15); + this.CHK_Stats.Name = "CHK_Stats"; + this.CHK_Stats.Size = new System.Drawing.Size(106, 17); + this.CHK_Stats.TabIndex = 2; + this.CHK_Stats.Text = "Randomize Stats"; + this.CHK_Stats.UseVisualStyleBackColor = true; + this.CHK_Stats.CheckedChanged += new System.EventHandler(this.CHK_Stats_CheckedChanged); + // + // CHK_EggGroup + // + this.CHK_EggGroup.AutoSize = true; + this.CHK_EggGroup.Checked = true; + this.CHK_EggGroup.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_EggGroup.Location = new System.Drawing.Point(219, 77); + this.CHK_EggGroup.Name = "CHK_EggGroup"; + this.CHK_EggGroup.Size = new System.Drawing.Size(77, 17); + this.CHK_EggGroup.TabIndex = 13; + this.CHK_EggGroup.Text = "Egg Group"; + this.CHK_EggGroup.UseVisualStyleBackColor = true; + // + // CHK_CatchRate + // + this.CHK_CatchRate.AutoSize = true; + this.CHK_CatchRate.Checked = true; + this.CHK_CatchRate.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_CatchRate.Location = new System.Drawing.Point(219, 62); + this.CHK_CatchRate.Name = "CHK_CatchRate"; + this.CHK_CatchRate.Size = new System.Drawing.Size(80, 17); + this.CHK_CatchRate.TabIndex = 11; + this.CHK_CatchRate.Text = "Catch Rate"; + this.CHK_CatchRate.UseVisualStyleBackColor = true; + // + // CHK_Item + // + this.CHK_Item.AutoSize = true; + this.CHK_Item.Checked = true; + this.CHK_Item.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_Item.Location = new System.Drawing.Point(118, 15); + this.CHK_Item.Name = "CHK_Item"; + this.CHK_Item.Size = new System.Drawing.Size(76, 17); + this.CHK_Item.TabIndex = 5; + this.CHK_Item.Text = "Held Items"; + this.CHK_Item.UseVisualStyleBackColor = true; + // + // B_Randomize + // + this.B_Randomize.Location = new System.Drawing.Point(352, 25); + this.B_Randomize.Name = "B_Randomize"; + this.B_Randomize.Size = new System.Drawing.Size(82, 23); + this.B_Randomize.TabIndex = 417; + this.B_Randomize.Text = "Randomize"; + this.B_Randomize.UseVisualStyleBackColor = true; + this.B_Randomize.Click += new System.EventHandler(this.B_Randomize_Click); + // + // PB_MonSprite + // + this.PB_MonSprite.Location = new System.Drawing.Point(285, 1); + this.PB_MonSprite.Name = "PB_MonSprite"; + this.PB_MonSprite.Size = new System.Drawing.Size(80, 60); + this.PB_MonSprite.TabIndex = 89; + this.PB_MonSprite.TabStop = false; + // + // B_Dump + // + this.B_Dump.Location = new System.Drawing.Point(368, 19); + this.B_Dump.Name = "B_Dump"; + this.B_Dump.Size = new System.Drawing.Size(82, 23); + this.B_Dump.TabIndex = 418; + this.B_Dump.Text = "Dump All"; + this.B_Dump.UseVisualStyleBackColor = true; + this.B_Dump.Click += new System.EventHandler(this.B_Dump_Click); + // + // CHK_FullBeachTutorCompatibility + // + this.CHK_FullBeachTutorCompatibility.AutoSize = true; + this.CHK_FullBeachTutorCompatibility.Location = new System.Drawing.Point(204, 152); + this.CHK_FullBeachTutorCompatibility.Name = "CHK_FullBeachTutorCompatibility"; + this.CHK_FullBeachTutorCompatibility.Size = new System.Drawing.Size(134, 30); + this.CHK_FullBeachTutorCompatibility.TabIndex = 24; + this.CHK_FullBeachTutorCompatibility.Text = "Full Beach Move Tutor\nCompatibility"; + this.CHK_FullBeachTutorCompatibility.UseVisualStyleBackColor = true; + // + // PersonalEditor7 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(469, 426); + this.Controls.Add(this.B_Dump); + this.Controls.Add(this.PB_MonSprite); + this.Controls.Add(this.TC_Pokemon); + this.Controls.Add(this.L_Species_Precursor); + this.Controls.Add(this.CB_Species); + this.MaximizeBox = false; + this.MaximumSize = new System.Drawing.Size(485, 465); + this.MinimumSize = new System.Drawing.Size(485, 465); + this.Name = "PersonalEditor7"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Personal Stats Editor"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form_Closing); + this.TC_Pokemon.ResumeLayout(false); + this.TP_General.ResumeLayout(false); + this.TP_General.PerformLayout(); + this.TP_MoveTutors.ResumeLayout(false); + this.TP_MoveTutors.PerformLayout(); + this.TP_Randomizer.ResumeLayout(false); + this.GB_Modifier.ResumeLayout(false); + this.GB_Modifier.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_CatchRateMod)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_CallRate)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_EXP)).EndInit(); + this.GB_Randomizer.ResumeLayout(false); + this.GB_Randomizer.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Egg)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_TypePercent)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_StatDev)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_MonSprite)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.ComboBox CB_Species; + private System.Windows.Forms.Label L_Species_Precursor; + private System.Windows.Forms.TabControl TC_Pokemon; + private System.Windows.Forms.TabPage TP_General; + private System.Windows.Forms.TabPage TP_MoveTutors; + private System.Windows.Forms.MaskedTextBox TB_SPEEVs; + private System.Windows.Forms.MaskedTextBox TB_SPDEVs; + private System.Windows.Forms.MaskedTextBox TB_SPAEVs; + private System.Windows.Forms.MaskedTextBox TB_DEFEVs; + private System.Windows.Forms.MaskedTextBox TB_ATKEVs; + private System.Windows.Forms.MaskedTextBox TB_HPEVs; + private System.Windows.Forms.MaskedTextBox TB_BaseSPE; + private System.Windows.Forms.MaskedTextBox TB_BaseSPD; + private System.Windows.Forms.MaskedTextBox TB_BaseSPA; + private System.Windows.Forms.MaskedTextBox TB_BaseDEF; + private System.Windows.Forms.MaskedTextBox TB_BaseATK; + private System.Windows.Forms.MaskedTextBox TB_BaseHP; + private System.Windows.Forms.Label Label_HP; + private System.Windows.Forms.Label Label_ATK; + private System.Windows.Forms.Label Label_DEF; + private System.Windows.Forms.Label Label_SPA; + private System.Windows.Forms.Label Label_SPD; + private System.Windows.Forms.Label Label_SPE; + private System.Windows.Forms.Label L_EVYield; + private System.Windows.Forms.Label L_BaseStats; + private System.Windows.Forms.ComboBox CB_HeldItem1; + private System.Windows.Forms.Label L_HeldItem; + private System.Windows.Forms.ComboBox CB_Type2; + private System.Windows.Forms.ComboBox CB_Type1; + private System.Windows.Forms.Label L_Type; + private System.Windows.Forms.Label L_Item1; + private System.Windows.Forms.Label L_Item5; + private System.Windows.Forms.Label L_Item50; + private System.Windows.Forms.ComboBox CB_HeldItem3; + private System.Windows.Forms.ComboBox CB_HeldItem2; + private System.Windows.Forms.ComboBox CB_Ability3; + private System.Windows.Forms.ComboBox CB_Ability2; + private System.Windows.Forms.ComboBox CB_Ability1; + private System.Windows.Forms.ComboBox CB_EggGroup2; + private System.Windows.Forms.ComboBox CB_EggGroup1; + private System.Windows.Forms.Label L_EggGroup; + private System.Windows.Forms.Label L_Ability; + private System.Windows.Forms.MaskedTextBox TB_BaseExp; + private System.Windows.Forms.Label L_BaseEXP; + private System.Windows.Forms.MaskedTextBox TB_HatchCycles; + private System.Windows.Forms.Label L_HatchCycles; + private System.Windows.Forms.MaskedTextBox TB_Friendship; + private System.Windows.Forms.MaskedTextBox TB_Gender; + private System.Windows.Forms.Label L_Friendship; + private System.Windows.Forms.Label L_Gender; + private System.Windows.Forms.ComboBox CB_Color; + private System.Windows.Forms.ComboBox CB_EXPGroup; + private System.Windows.Forms.Label L_Color; + private System.Windows.Forms.Label L_EXPGrowth; + private System.Windows.Forms.Label L_CatchRate; + private System.Windows.Forms.TextBox TB_FormeCount; + private System.Windows.Forms.Label L_FormesCount; + private System.Windows.Forms.TextBox TB_FormeSprite; + private System.Windows.Forms.Label L_FormeSprite; + private System.Windows.Forms.TextBox TB_Stage; + private System.Windows.Forms.Label L_Stage; + private System.Windows.Forms.MaskedTextBox TB_CatchRate; + private System.Windows.Forms.Label L_BST; + private System.Windows.Forms.TextBox TB_BST; + private System.Windows.Forms.CheckedListBox CLB_TM; + private System.Windows.Forms.CheckedListBox CLB_MoveTutors; + private System.Windows.Forms.Label L_Special; + private System.Windows.Forms.Label L_TM; + private System.Windows.Forms.PictureBox PB_MonSprite; + private System.Windows.Forms.Button B_Randomize; + private System.Windows.Forms.Button B_Dump; + private System.Windows.Forms.CheckBox CHK_TM; + private System.Windows.Forms.CheckBox CHK_Ability; + private System.Windows.Forms.CheckBox CHK_Stats; + private System.Windows.Forms.NumericUpDown NUD_StatDev; + private System.Windows.Forms.Label L_StatDev; + private System.Windows.Forms.CheckBox CHK_Item; + private System.Windows.Forms.CheckBox CHK_Type; + private System.Windows.Forms.CheckBox CHK_Tutors; + private System.Windows.Forms.CheckBox CHK_WGuard; + private System.Windows.Forms.CheckBox CHK_CatchRate; + private System.Windows.Forms.CheckBox CHK_rSPE; + private System.Windows.Forms.CheckBox CHK_rSPD; + private System.Windows.Forms.CheckBox CHK_rSPA; + private System.Windows.Forms.CheckBox CHK_rDEF; + private System.Windows.Forms.CheckBox CHK_rATK; + private System.Windows.Forms.CheckBox CHK_rHP; + private System.Windows.Forms.CheckBox CHK_EggGroup; + private System.Windows.Forms.Button B_ModAll; + private System.Windows.Forms.CheckBox CHK_NoEV; + private System.Windows.Forms.TabPage TP_Randomizer; + private System.Windows.Forms.Label L_SingleType; + private System.Windows.Forms.NumericUpDown NUD_TypePercent; + private System.Windows.Forms.GroupBox GB_Randomizer; + private System.Windows.Forms.GroupBox GB_Modifier; + private System.Windows.Forms.CheckBox CHK_EXP; + private System.Windows.Forms.Label L_FinalXP; + private System.Windows.Forms.NumericUpDown NUD_EXP; + private System.Windows.Forms.CheckBox CHK_Growth; + private System.Windows.Forms.CheckBox CHK_QuickHatch; + private System.Windows.Forms.Label L_Same; + private System.Windows.Forms.NumericUpDown NUD_Egg; + private System.Windows.Forms.CheckBox CHK_Variant; + private System.Windows.Forms.Label L_CallRate; + private System.Windows.Forms.MaskedTextBox TB_CallRate; + private System.Windows.Forms.CheckBox CHK_CallRate; + private System.Windows.Forms.Label L_CallRateVal; + private System.Windows.Forms.NumericUpDown NUD_CallRate; + private System.Windows.Forms.CheckBox CHK_CatchRateMod; + private System.Windows.Forms.Label L_CatchRateMod; + private System.Windows.Forms.NumericUpDown NUD_CatchRateMod; + private System.Windows.Forms.Label L_WeightKG; + private System.Windows.Forms.Label L_HeightM; + private System.Windows.Forms.MaskedTextBox TB_Weight; + private System.Windows.Forms.MaskedTextBox TB_Height; + private System.Windows.Forms.Label L_Weight; + private System.Windows.Forms.Label L_Height; + private System.Windows.Forms.ComboBox CB_ZMove; + private System.Windows.Forms.ComboBox CB_ZBaseMove; + private System.Windows.Forms.ComboBox CB_ZItem; + private System.Windows.Forms.Label L_ZMove; + private System.Windows.Forms.Label L_BaseMove; + private System.Windows.Forms.Label L_ZCrystal; + private System.Windows.Forms.Label L_BeachTutors; + private System.Windows.Forms.CheckedListBox CLB_BeachTutors; + private System.Windows.Forms.CheckBox CHK_BeachTutors; + private System.Windows.Forms.CheckBox CHK_Shuffle; + private System.Windows.Forms.CheckBox CHK_NoTutor; + private System.Windows.Forms.CheckBox CHK_FullTMCompatibility; + private System.Windows.Forms.Label L_HiddenAbility; + private System.Windows.Forms.Label L_Ability2; + private System.Windows.Forms.Label L_Ability1; + private System.Windows.Forms.TextBox TB_RawColor; + private System.Windows.Forms.CheckBox CHK_FullMoveTutorCompatibility; + private System.Windows.Forms.CheckBox CHK_FullBeachTutorCompatibility; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen7/PersonalEditor7.cs b/pk3DS.WinForms/Subforms/Gen7/PersonalEditor7.cs new file mode 100644 index 0000000000..0275a2d01b --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen7/PersonalEditor7.cs @@ -0,0 +1,488 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Media; +using System.Text; +using System.Windows.Forms; +using pk3DS.Core.Structures.PersonalInfo; +using pk3DS.Core; +using pk3DS.Core.Randomizers; + +namespace pk3DS.WinForms; + +public partial class PersonalEditor7 : Form +{ + public PersonalEditor7(byte[][] infiles) + { + InitializeComponent(); + helditem_boxes = [CB_HeldItem1, CB_HeldItem2, CB_HeldItem3]; + ability_boxes = [CB_Ability1, CB_Ability2, CB_Ability3]; + typing_boxes = [CB_Type1, CB_Type2]; + eggGroup_boxes = [CB_EggGroup1, CB_EggGroup2]; + byte_boxes = [TB_BaseHP, TB_BaseATK, TB_BaseDEF, TB_BaseSPA, TB_BaseSPD, TB_BaseSPE, TB_Gender, TB_HatchCycles, TB_Friendship, TB_CatchRate, TB_CallRate, + ]; + ev_boxes = [TB_HPEVs, TB_ATKEVs, TB_DEFEVs, TB_SPEEVs, TB_SPAEVs, TB_SPDEVs]; + rstat_boxes = [CHK_rHP, CHK_rATK, CHK_rDEF, CHK_rSPA, CHK_rSPD, CHK_rSPE]; + files = infiles; + + species[0] = "---"; + abilities[0] = items[0] = moves[0] = ""; + var altForms = Main.Config.Personal.GetFormList(species, Main.Config.MaxSpeciesID); + entryNames = Main.Config.Personal.GetPersonalEntryList(altForms, species, Main.Config.MaxSpeciesID, out baseForms, out formVal); + TMs = TMEditor7.GetTMHMList(); + + Setup(); + CB_Species.SelectedIndex = 1; + RandSettings.GetFormSettings(this, TP_Randomizer.Controls); + } + #region Global Variables + private readonly byte[][] files; + + private readonly string[] items = Main.Config.GetText(TextName.ItemNames); + private readonly string[] moves = Main.Config.GetText(TextName.MoveNames); + private readonly string[] species = Main.Config.GetText(TextName.SpeciesNames); + private readonly string[] abilities = Main.Config.GetText(TextName.AbilityNames); + //private readonly string[] forms = Main.Config.GetText(TextName.Forms); + private readonly string[] types = Main.Config.GetText(TextName.Types); + + private readonly string[] entryNames; + + private readonly ComboBox[] helditem_boxes; + private readonly ComboBox[] ability_boxes; + private readonly ComboBox[] typing_boxes; + private readonly ComboBox[] eggGroup_boxes; + + private readonly MaskedTextBox[] byte_boxes; + private readonly MaskedTextBox[] ev_boxes; + private readonly CheckBox[] rstat_boxes; + + private readonly string[] eggGroups = ["---", "Monster", "Water 1", "Bug", "Flying", "Field", "Fairy", "Grass", "Human-Like", "Water 3", "Mineral", "Amorphous", "Water 2", "Ditto", "Dragon", "Undiscovered", + ]; + private readonly string[] EXPGroups = ["Medium-Fast", "Erratic", "Fluctuating", "Medium-Slow", "Fast", "Slow"]; + private readonly string[] colors = ["Red", "Blue", "Yellow", "Green", "Black", "Brown", "Purple", "Gray", "White", "Pink", + ]; + private readonly ushort[] tutormoves = [520, 519, 518, 338, 307, 308, 434, 620]; + + internal static readonly int[] Tutors_USUM = + [ + 450, 343, 162, 530, 324, 442, 402, 529, 340, 067, 441, 253, 009, 007, 008, + 277, 335, 414, 492, 356, 393, 334, 387, 276, 527, 196, 401, 428, 406, 304, 231, + 020, 173, 282, 235, 257, 272, 215, 366, 143, 220, 202, 409, 264, 351, 352, + 380, 388, 180, 495, 270, 271, 478, 472, 283, 200, 278, 289, 446, 285, + + 477, 502, 432, 710, 707, 675, 673, + ]; + + private readonly int[] baseForms, formVal; + private readonly ushort[] TMs; + private int entry = -1; + #endregion + private void Setup() + { + CLB_TM.Items.Clear(); + + if (TMs.Length == 0) // No ExeFS to grab TMs from. + { + for (int i = 1; i <= 100; i++) + CLB_TM.Items.Add($"TM{i:00}"); + } + else // Use TM moves. + { + for (int i = 1; i <= 100; i++) + CLB_TM.Items.Add($"TM{i:00} {moves[TMs[i - 1]]}"); + } + foreach (ushort m in tutormoves) + CLB_MoveTutors.Items.Add(moves[m]); + + for (int i = 0; i < entryNames.Length; i++) + CB_Species.Items.Add($"{entryNames[i]} - {i:000}"); + + foreach (ComboBox cb in helditem_boxes) + { + cb.Items.AddRange(items); + } + + CB_ZItem.Items.AddRange(items); + CB_ZBaseMove.Items.AddRange(moves); + CB_ZMove.Items.AddRange(moves); + + foreach (ComboBox cb in ability_boxes) + { + cb.Items.AddRange(abilities); + } + + foreach (ComboBox cb in typing_boxes) + { + cb.Items.AddRange(types); + } + + foreach (ComboBox cb in eggGroup_boxes) + { + cb.Items.AddRange(eggGroups); + } + + CB_Color.Items.AddRange(colors); + + CB_EXPGroup.Items.AddRange(EXPGroups); + + if (Main.Config.USUM) + { + foreach (var tutor in Tutors_USUM) + CLB_BeachTutors.Items.Add(moves[tutor]); + } + + // toggle usum content + CHK_BeachTutors.Checked = CHK_BeachTutors.Visible = + CLB_BeachTutors.Visible = CLB_BeachTutors.Enabled = L_BeachTutors.Visible = Main.Config.USUM; + } + + private void CB_Species_SelectedIndexChanged(object sender, EventArgs e) + { + if (entry > -1 && !dumping) SaveEntry(); + entry = CB_Species.SelectedIndex; + ReadEntry(); + } + + private void ByteLimiter(object sender, EventArgs e) + { + if (sender is not MaskedTextBox mtb) + return; + _ = int.TryParse(mtb.Text, out int val); + if (Array.IndexOf(byte_boxes, mtb) > -1 && val > 255) + mtb.Text = "255"; + else if (Array.IndexOf(ev_boxes, mtb) > -1 && val > 3) + mtb.Text = "3"; + } + + private PersonalInfo pkm; + + private void ReadInfo() + { + pkm = Main.SpeciesStat[entry]; + + TB_BaseHP.Text = pkm.HP.ToString("000"); + TB_BaseATK.Text = pkm.ATK.ToString("000"); + TB_BaseDEF.Text = pkm.DEF.ToString("000"); + TB_BaseSPE.Text = pkm.SPE.ToString("000"); + TB_BaseSPA.Text = pkm.SPA.ToString("000"); + TB_BaseSPD.Text = pkm.SPD.ToString("000"); + TB_HPEVs.Text = pkm.EV_HP.ToString("0"); + TB_ATKEVs.Text = pkm.EV_ATK.ToString("0"); + TB_DEFEVs.Text = pkm.EV_DEF.ToString("0"); + TB_SPEEVs.Text = pkm.EV_SPE.ToString("0"); + TB_SPAEVs.Text = pkm.EV_SPA.ToString("0"); + TB_SPDEVs.Text = pkm.EV_SPD.ToString("0"); + + CB_Type1.SelectedIndex = pkm.Types[0]; + CB_Type2.SelectedIndex = pkm.Types[1]; + + TB_CatchRate.Text = pkm.CatchRate.ToString("000"); + TB_Stage.Text = pkm.EvoStage.ToString("0"); + + CB_HeldItem1.SelectedIndex = pkm.Items[0]; + CB_HeldItem2.SelectedIndex = pkm.Items[1]; + CB_HeldItem3.SelectedIndex = pkm.Items[2]; + + TB_Gender.Text = pkm.Gender.ToString("000"); + TB_HatchCycles.Text = pkm.HatchCycles.ToString("000"); + TB_Friendship.Text = pkm.BaseFriendship.ToString("000"); + + CB_EXPGroup.SelectedIndex = pkm.EXPGrowth; + + CB_EggGroup1.SelectedIndex = pkm.EggGroups[0]; + CB_EggGroup2.SelectedIndex = pkm.EggGroups[1]; + + CB_Ability1.SelectedIndex = pkm.Abilities[0]; + CB_Ability2.SelectedIndex = pkm.Abilities[1]; + CB_Ability3.SelectedIndex = pkm.Abilities[2]; + + TB_FormeCount.Text = pkm.FormeCount.ToString("000"); + TB_FormeSprite.Text = pkm.FormeSprite.ToString("000"); + + TB_RawColor.Text = pkm.Color.ToString("000"); + CB_Color.SelectedIndex = pkm.Color & 0xF; + + TB_BaseExp.Text = pkm.BaseEXP.ToString("000"); + TB_BST.Text = pkm.BST.ToString("000"); + + TB_Height.Text = ((decimal)pkm.Height / 100).ToString("00.00"); + TB_Weight.Text = ((decimal)pkm.Weight / 10).ToString("000.0"); + + for (int i = 0; i < CLB_TM.Items.Count; i++) + CLB_TM.SetItemChecked(i, pkm.TMHM[i]); // Bitflags for TM + + for (int i = 0; i < CLB_MoveTutors.Items.Count; i++) + CLB_MoveTutors.SetItemChecked(i, pkm.TypeTutors[i]); // Bitflags for Tutors + + if (Main.Config.SM || Main.Config.USUM) + { + PersonalInfoSM sm = (PersonalInfoSM)pkm; + TB_CallRate.Text = sm.EscapeRate.ToString("000"); + CB_ZItem.SelectedIndex = sm.SpecialZ_Item; + CB_ZBaseMove.SelectedIndex = sm.SpecialZ_BaseMove; + CB_ZMove.SelectedIndex = sm.SpecialZ_ZMove; + CHK_Variant.Checked = sm.LocalVariant; + } + var special = pkm.SpecialTutors; + if (special.Length > 0) + { + for (int b = 0; b < CLB_BeachTutors.Items.Count; b++) + CLB_BeachTutors.SetItemChecked(b, special[0][b]); + } + } + + private void ReadEntry() + { + ReadInfo(); + + if (dumping) return; + int s = baseForms[entry]; + int f = formVal[entry]; + if (entry <= Main.Config.MaxSpeciesID) + s = entry; + var rawImg = WinFormsUtil.GetSprite(s, f, 0, 0, Main.Config); + var bigImg = new Bitmap(rawImg.Width * 2, rawImg.Height * 2); + for (int x = 0; x < rawImg.Width; x++) + { + for (int y = 0; y < rawImg.Height; y++) + { + Color c = rawImg.GetPixel(x, y); + bigImg.SetPixel(2 * x, 2 * y, c); + bigImg.SetPixel((2 * x) + 1, 2 * y, c); + bigImg.SetPixel(2 * x, (2 * y) + 1, c); + bigImg.SetPixel((2 * x) + 1, (2 * y) + 1, c); + } + } + PB_MonSprite.Image = bigImg; + } + + private void SavePersonal() + { + pkm.HP = Convert.ToByte(TB_BaseHP.Text); + pkm.ATK = Convert.ToByte(TB_BaseATK.Text); + pkm.DEF = Convert.ToByte(TB_BaseDEF.Text); + pkm.SPE = Convert.ToByte(TB_BaseSPE.Text); + pkm.SPA = Convert.ToByte(TB_BaseSPA.Text); + pkm.SPD = Convert.ToByte(TB_BaseSPD.Text); + + pkm.EV_HP = Convert.ToByte(TB_HPEVs.Text); + pkm.EV_ATK = Convert.ToByte(TB_ATKEVs.Text); + pkm.EV_DEF = Convert.ToByte(TB_DEFEVs.Text); + pkm.EV_SPE = Convert.ToByte(TB_SPEEVs.Text); + pkm.EV_SPA = Convert.ToByte(TB_SPAEVs.Text); + pkm.EV_SPD = Convert.ToByte(TB_SPDEVs.Text); + + pkm.CatchRate = Convert.ToByte(TB_CatchRate.Text); + pkm.EvoStage = Convert.ToByte(TB_Stage.Text); + + pkm.Types = [CB_Type1.SelectedIndex, CB_Type2.SelectedIndex]; + pkm.Items = [CB_HeldItem1.SelectedIndex, CB_HeldItem2.SelectedIndex, CB_HeldItem3.SelectedIndex]; + + pkm.Gender = Convert.ToByte(TB_Gender.Text); + pkm.HatchCycles = Convert.ToByte(TB_HatchCycles.Text); + pkm.BaseFriendship = Convert.ToByte(TB_Friendship.Text); + pkm.EXPGrowth = (byte)CB_EXPGroup.SelectedIndex; + pkm.EggGroups = [CB_EggGroup1.SelectedIndex, CB_EggGroup2.SelectedIndex]; + pkm.Abilities = [CB_Ability1.SelectedIndex, CB_Ability2.SelectedIndex, CB_Ability3.SelectedIndex]; + + pkm.FormeSprite = Convert.ToUInt16(TB_FormeSprite.Text); + pkm.FormeCount = Convert.ToByte(TB_FormeCount.Text); + pkm.Color = (byte)(Convert.ToByte(CB_Color.SelectedIndex) | (Convert.ToByte(TB_RawColor.Text) & 0xF0)); + pkm.BaseEXP = Convert.ToUInt16(TB_BaseExp.Text); + + _ = decimal.TryParse(TB_Height.Text, out var h); + _ = decimal.TryParse(TB_Weight.Text, out var w); + pkm.Height = (int)(h * 100); + pkm.Weight = (int)(w * 10); + + for (int i = 0; i < CLB_TM.Items.Count; i++) + pkm.TMHM[i] = CLB_TM.GetItemChecked(i); + + for (int t = 0; t < CLB_MoveTutors.Items.Count; t++) + pkm.TypeTutors[t] = CLB_MoveTutors.GetItemChecked(t); + + if (Main.Config.SM || Main.Config.USUM) + { + pkm.EscapeRate = Convert.ToByte(TB_CallRate.Text); + PersonalInfoSM sm = (PersonalInfoSM)pkm; + sm.SpecialZ_Item = CB_ZItem.SelectedIndex; + sm.SpecialZ_BaseMove = CB_ZBaseMove.SelectedIndex; + sm.SpecialZ_ZMove = CB_ZMove.SelectedIndex; + sm.LocalVariant = CHK_Variant.Checked; + } + var special = pkm.SpecialTutors; + if (special.Length > 0) + { + for (int b = 0; b < CLB_BeachTutors.Items.Count; b++) + special[0][b] = CLB_BeachTutors.GetItemChecked(b); + pkm.SpecialTutors = special; + } + } + + private void SaveEntry() + { + SavePersonal(); + byte[] edits = pkm.Write(); + files[entry] = edits; + } + + private void B_Randomize_Click(object sender, EventArgs e) + { + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomize all? Cannot undo.", "Double check Randomization settings in the Enhancements tab.") != DialogResult.Yes) + return; + SaveEntry(); + + // input settings + var rnd = new PersonalRandomizer(Main.SpeciesStat, Main.Config) + { + TypeCount = CB_Type1.Items.Count, + ModifyCatchRate = CHK_CatchRate.Checked, + ModifyEggGroup = CHK_EggGroup.Checked, + ModifyStats = CHK_Stats.Checked, + ShuffleStats = CHK_Shuffle.Checked, + StatsToRandomize = rstat_boxes.Select(g => g.Checked).ToArray(), + ModifyAbilities = CHK_Ability.Checked, + ModifyLearnsetTM = CHK_TM.Checked, + ModifyLearnsetHM = false, // no HMs in Gen 7 + ModifyLearnsetTypeTutors = CHK_Tutors.Checked, + ModifyLearnsetMoveTutors = Main.Config.USUM && CHK_BeachTutors.Checked, + ModifyTypes = CHK_Type.Checked, + ModifyHeldItems = CHK_Item.Checked, + SameTypeChance = NUD_TypePercent.Value, + SameEggGroupChance = NUD_Egg.Value, + StatDeviation = NUD_StatDev.Value, + AllowWonderGuard = CHK_WGuard.Checked, + }; + + rnd.Execute(); + Main.SpeciesStat.Select(z => z.Write()).ToArray().CopyTo(files, 0); + + ReadEntry(); + WinFormsUtil.Alert("Randomized all Pokémon Personal data entries according to specification!", "Press the Dump All button to view the new Personal data!"); + } + + private void B_ModifyAll(object sender, EventArgs e) + { + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Modify all? Cannot undo.", "Double check Modification settings in the Enhancements tab.") != DialogResult.Yes) return; + + for (int i = 1; i < CB_Species.Items.Count; i++) + { + CB_Species.SelectedIndex = i; // Get new Species + + if (CHK_NoEV.Checked) + { + for (int z = 0; z < 6; z++) + ev_boxes[z].Text = 0.ToString(); + } + + if (CHK_Growth.Checked) + CB_EXPGroup.SelectedIndex = 5; + if (CHK_EXP.Checked) + TB_BaseExp.Text = ((float)NUD_EXP.Value * (Convert.ToUInt16(TB_BaseExp.Text) / 100f)).ToString("000"); + + if (CHK_NoTutor.Checked) + { + foreach (int tm in CLB_TM.CheckedIndices) + CLB_TM.SetItemCheckState(tm, CheckState.Unchecked); + foreach (int mt in CLB_MoveTutors.CheckedIndices) + CLB_MoveTutors.SetItemCheckState(mt, CheckState.Unchecked); + foreach (int ao in CLB_BeachTutors.CheckedIndices) + CLB_BeachTutors.SetItemCheckState(ao, CheckState.Unchecked); + } + + if (CHK_FullTMCompatibility.Checked) + { + for (int t = 0; t < CLB_TM.Items.Count; t++) + CLB_TM.SetItemCheckState(t, CheckState.Checked); + } + + if (CHK_FullMoveTutorCompatibility.Checked) + { + for (int m = 0; m < CLB_MoveTutors.Items.Count; m++) + CLB_MoveTutors.SetItemCheckState(m, CheckState.Checked); + } + + if (CHK_FullBeachTutorCompatibility.Checked) + { + for (int m = 0; m < CLB_BeachTutors.Items.Count; m++) + CLB_BeachTutors.SetItemCheckState(m, CheckState.Checked); + } + + if (CHK_QuickHatch.Checked) + TB_HatchCycles.Text = 1.ToString(); + if (CHK_CallRate.Checked) + TB_CallRate.Text = ((int)NUD_CallRate.Value).ToString(); + if (CHK_CatchRateMod.Checked) + TB_CatchRate.Text = ((int)NUD_CatchRateMod.Value).ToString(); + } + CB_Species.SelectedIndex = 1; + WinFormsUtil.Alert("Modified all Pokémon Personal data entries according to specification!", "Press the Dump All button to view the new Personal data!"); + } + + private bool dumping; + + private void B_Dump_Click(object sender, EventArgs e) + { + if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Dump all Personal Entries to Text File?")) + return; + var sfd = new SaveFileDialog { FileName = "Personal Entries.txt", Filter = "Text File|*.txt" }; + SystemSounds.Asterisk.Play(); + if (sfd.ShowDialog() != DialogResult.OK) + return; + + dumping = true; + List lines = []; + for (int i = 0; i < CB_Species.Items.Count; i++) + { + CB_Species.SelectedIndex = i; // Get new Species + lines.Add("======"); + lines.Add($"{entry} - {CB_Species.Text} (Stage: {TB_Stage.Text})"); + lines.Add("======"); + lines.Add($"Base Stats: {TB_BaseHP.Text}.{TB_BaseATK.Text}.{TB_BaseDEF.Text}.{TB_BaseSPA.Text}.{TB_BaseSPD.Text}.{TB_BaseSPE.Text} (BST: {pkm.BST})"); + lines.Add($"EV Yield: {TB_HPEVs.Text}.{TB_ATKEVs.Text}.{TB_DEFEVs.Text}.{TB_SPAEVs.Text}.{TB_SPDEVs.Text}.{TB_SPEEVs.Text}"); + lines.Add($"Abilities: {CB_Ability1.Text} (1) | {CB_Ability2.Text} (2) | {CB_Ability3.Text} (H)"); + lines.Add(string.Format(CB_Type1.SelectedIndex != CB_Type2.SelectedIndex + ? "Type: {0} / {1}" + : "Type: {0}", CB_Type1.Text, CB_Type2.Text)); + + lines.Add($"Item 1 (50%): {CB_HeldItem1.Text}"); + lines.Add($"Item 2 (5%): {CB_HeldItem2.Text}"); + lines.Add($"Item 3 (1%): {CB_HeldItem3.Text}"); + + lines.Add($"EXP Group: {CB_EXPGroup.Text}"); + lines.Add(string.Format(CB_EggGroup1.SelectedIndex != CB_EggGroup2.SelectedIndex + ? "Egg Group: {0} / {1}" + : "Egg Group: {0}", CB_EggGroup1.Text, CB_EggGroup2.Text)); + lines.Add($"Hatch Cycles: {TB_HatchCycles.Text}"); + lines.Add($"Height: {TB_Height.Text} m, Weight: {TB_Weight.Text} kg, Color: {CB_Color.Text}"); + + if (CB_ZBaseMove.SelectedIndex > 0) + lines.Add($"{CB_ZBaseMove.Text} + {CB_ZItem.Text} => {CB_ZMove.Text}"); + lines.Add(""); + } + string path = sfd.FileName; + File.WriteAllLines(path, lines, Encoding.Unicode); + dumping = false; + } + + private void CHK_Stats_CheckedChanged(object sender, EventArgs e) + { + L_StatDev.Enabled = NUD_StatDev.Enabled = CHK_Stats.Checked; + CHK_rHP.Enabled = CHK_rATK.Enabled = CHK_rDEF.Enabled = CHK_rSPA.Enabled = CHK_rSPD.Enabled = CHK_rSPE.Enabled = CHK_Stats.Checked; + } + + private void CHK_Ability_CheckedChanged(object sender, EventArgs e) + { + CHK_WGuard.Enabled = CHK_Ability.Checked; + if (!CHK_WGuard.Enabled) + CHK_WGuard.Checked = false; + } + + private void Form_Closing(object sender, FormClosingEventArgs e) + { + if (entry > -1) SaveEntry(); + RandSettings.SetFormSettings(this, TP_Randomizer.Controls); + } +} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/PersonalEditor7.resx b/pk3DS.WinForms/Subforms/Gen7/PersonalEditor7.resx similarity index 100% rename from pk3DS/Subforms/Gen7/PersonalEditor7.resx rename to pk3DS.WinForms/Subforms/Gen7/PersonalEditor7.resx diff --git a/pk3DS.WinForms/Subforms/Gen7/PickupEditor7.Designer.cs b/pk3DS.WinForms/Subforms/Gen7/PickupEditor7.Designer.cs new file mode 100644 index 0000000000..e2919bddbb --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen7/PickupEditor7.Designer.cs @@ -0,0 +1,136 @@ +namespace pk3DS.WinForms; + +partial class PickupEditor7 +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.B_Save = new System.Windows.Forms.Button(); + this.B_Cancel = new System.Windows.Forms.Button(); + this.B_Randomize = new System.Windows.Forms.Button(); + this.dgvCommon = new System.Windows.Forms.DataGridView(); + this.B_AddRow = new System.Windows.Forms.Button(); + this.B_DeleteRow = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.dgvCommon)).BeginInit(); + this.SuspendLayout(); + // + // B_Save + // + this.B_Save.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.B_Save.Location = new System.Drawing.Point(597, 331); + this.B_Save.Name = "B_Save"; + this.B_Save.Size = new System.Drawing.Size(75, 23); + this.B_Save.TabIndex = 7; + this.B_Save.Text = "Save"; + this.B_Save.UseVisualStyleBackColor = true; + this.B_Save.Click += new System.EventHandler(this.B_Save_Click); + // + // B_Cancel + // + this.B_Cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.B_Cancel.Location = new System.Drawing.Point(516, 331); + this.B_Cancel.Name = "B_Cancel"; + this.B_Cancel.Size = new System.Drawing.Size(75, 23); + this.B_Cancel.TabIndex = 8; + this.B_Cancel.Text = "Cancel"; + this.B_Cancel.UseVisualStyleBackColor = true; + this.B_Cancel.Click += new System.EventHandler(this.B_Cancel_Click); + // + // B_Randomize + // + this.B_Randomize.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.B_Randomize.Location = new System.Drawing.Point(9, 331); + this.B_Randomize.Name = "B_Randomize"; + this.B_Randomize.Size = new System.Drawing.Size(75, 23); + this.B_Randomize.TabIndex = 9; + this.B_Randomize.Text = "Randomize"; + this.B_Randomize.UseVisualStyleBackColor = true; + this.B_Randomize.Click += new System.EventHandler(this.B_Randomize_Click); + // + // dgvCommon + // + this.dgvCommon.AllowUserToResizeColumns = false; + this.dgvCommon.AllowUserToResizeRows = false; + this.dgvCommon.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dgvCommon.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvCommon.Location = new System.Drawing.Point(12, 12); + this.dgvCommon.Name = "dgvCommon"; + this.dgvCommon.Size = new System.Drawing.Size(656, 300); + this.dgvCommon.TabIndex = 10; + // + // B_AddRow + // + this.B_AddRow.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.B_AddRow.Location = new System.Drawing.Point(90, 331); + this.B_AddRow.Name = "B_AddRow"; + this.B_AddRow.Size = new System.Drawing.Size(75, 23); + this.B_AddRow.TabIndex = 11; + this.B_AddRow.Text = "Add Row"; + this.B_AddRow.UseVisualStyleBackColor = true; + this.B_AddRow.Click += new System.EventHandler(this.B_AddRow_Click); + // + // B_DeleteRow + // + this.B_DeleteRow.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.B_DeleteRow.Location = new System.Drawing.Point(171, 331); + this.B_DeleteRow.Name = "B_DeleteRow"; + this.B_DeleteRow.Size = new System.Drawing.Size(75, 23); + this.B_DeleteRow.TabIndex = 12; + this.B_DeleteRow.Text = "Delete Row"; + this.B_DeleteRow.UseVisualStyleBackColor = true; + this.B_DeleteRow.Click += new System.EventHandler(this.B_DeleteRow_Click); + // + // PickupEditor7 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(680, 361); + this.Controls.Add(this.B_DeleteRow); + this.Controls.Add(this.B_AddRow); + this.Controls.Add(this.dgvCommon); + this.Controls.Add(this.B_Randomize); + this.Controls.Add(this.B_Cancel); + this.Controls.Add(this.B_Save); + this.MaximizeBox = false; + this.MinimumSize = new System.Drawing.Size(600, 400); + this.Name = "PickupEditor7"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Pickup Editor"; + ((System.ComponentModel.ISupportInitialize)(this.dgvCommon)).EndInit(); + this.ResumeLayout(false); + + } + + #endregion + private System.Windows.Forms.Button B_Save; + private System.Windows.Forms.Button B_Cancel; + private System.Windows.Forms.Button B_Randomize; + private System.Windows.Forms.DataGridView dgvCommon; + private System.Windows.Forms.Button B_AddRow; + private System.Windows.Forms.Button B_DeleteRow; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen7/PickupEditor7.cs b/pk3DS.WinForms/Subforms/Gen7/PickupEditor7.cs new file mode 100644 index 0000000000..b254675738 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen7/PickupEditor7.cs @@ -0,0 +1,205 @@ +using pk3DS.Core; +using System; +using System.IO; +using System.Linq; +using System.Windows.Forms; + +namespace pk3DS.WinForms; + +public partial class PickupEditor7 : Form +{ + public PickupEditor7(LazyGARCFile pickup) + { + InitializeComponent(); + g_pickup = pickup; + var itemlist = Main.Config.GetText(TextName.ItemNames); + itemlist[0] = ""; + items = itemlist.Select((v, i) => $"{v} - {i:000}").ToArray(); + SetupFLP(); + + byte[] data = pickup.Files[0]; + GetList(data); + } + + private readonly LazyGARCFile g_pickup; + private readonly string[] items; + + private const int Columns = 10; + + private void SetupFLP() + { + dgvCommon.Columns.Clear(); + // Add DataGrid + var dgv = dgvCommon; + { + dgv.AllowUserToAddRows = false; + dgv.AllowUserToDeleteRows = false; + dgv.AllowUserToResizeRows = false; + dgv.AllowUserToResizeColumns = false; + dgv.RowHeadersVisible = false; + //dgv.ColumnHeadersVisible = false, + dgv.MultiSelect = false; + dgv.ShowEditingIcon = false; + dgv.EditMode = DataGridViewEditMode.EditOnEnter; + dgv.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single; + dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; + dgv.SelectionMode = DataGridViewSelectionMode.CellSelect; + dgv.CellBorderStyle = DataGridViewCellBorderStyle.None; + } + + int c = 0; + var dgvItemVal = new DataGridViewComboBoxColumn + { + HeaderText = "Item", + DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing, + DisplayIndex = c++, + Width = 135, + FlatStyle = FlatStyle.Flat, + }; + dgv.Columns.Add(dgvItemVal); + + for (int i = 0; i < Columns; i++) + { + string rate = $"{(i * 10) + 1}-{(i + 1) * 10}"; + var dgvIndex = new DataGridViewTextBoxColumn(); + { + dgvIndex.HeaderText = rate; + dgvIndex.DisplayIndex = c++; + dgvIndex.Width = 45; + dgvIndex.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; + dgvIndex.MaxInputLength = 2; + } + dgv.Columns.Add(dgvIndex); + } + + var combo = dgv.Columns[0] as DataGridViewComboBoxColumn; + combo.Items.AddRange(items); // add only the Item Names + + // disable sorting + dgv.Columns.Cast().ToList().ForEach(f => f.SortMode = DataGridViewColumnSortMode.NotSortable); + dgv.CancelEdit(); + } + + private void GetList(byte[] data) + { + // Fill Data + int rows = BitConverter.ToUInt16(data, 0) - 1; // nice editor gamefreak + dgvCommon.Rows.Add(rows); + for (int i = 0; i < rows; i++) + { + int offset = 4 + (i * (Columns + 2)); + int item = BitConverter.ToUInt16(data, offset); + + var r = dgvCommon.Rows[i]; + r.Cells[0].Value = items[item]; + for (int j = 0; j < Columns; j++) + { + int rate = data[offset + 2 + j]; + r.Cells[1 + j].Value = rate.ToString(); + } + } + } + + private byte[] SetList() + { + int rows = dgvCommon.RowCount; + int[][] rates = new int[rows][]; + for (int i = 0; i < rates.Length; i++) + rates[i] = new int[Columns]; + for (int i = 0; i < Columns; i++) + { + // get column sum + int sum = 0; + for (int r = 0; r < rows; r++) + { + var cell = dgvCommon.Rows[r].Cells[i + 1]; + if (!int.TryParse(cell.Value.ToString(), out var val)) + { + cell.Value = 0.ToString(); + continue; + } + if (val is > 100 or < 0) + { + val = 0; + cell.Value = 0.ToString(); + } + rates[r][i] = val; + sum += val; + } + if (sum == 100) // good + continue; + + WinFormsUtil.Alert($"Sum of Column {i + 1} needs to equal 100.", $"Got {sum}."); + return null; + } + + using var ms = new MemoryStream(); + using var bw = new BinaryWriter(ms); + bw.Write(rates.Length + 1); // nice editor gamefreak + for (int i = 0; i < rows; i++) + { + var r = dgvCommon.Rows[i]; + string item = r.Cells[0].Value.ToString(); + int itemindex = Array.IndexOf(items, item); + bw.Write((ushort)itemindex); + + foreach (var b in rates[i]) + bw.Write((byte)b); + } + return ms.ToArray(); + } + + private void B_Save_Click(object sender, EventArgs e) + { + byte[] result = SetList(); + if (result == null) + return; + + g_pickup[0] = result; + g_pickup.Save(); + Close(); + } + + private void B_Cancel_Click(object sender, EventArgs e) + { + Close(); + } + + private void B_Randomize_Click(object sender, EventArgs e) + { + if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Randomize pickup lists?")) + return; + + int[] validItems = Randomizer.GetRandomItemList(); + + int ctr = 0; + Util.Shuffle(validItems); + for (int r = 0; r < dgvCommon.RowCount; r++) + { + dgvCommon.Rows[r].Cells[0].Value = items[validItems[ctr++]]; + if (ctr <= validItems.Length) continue; + Util.Shuffle(validItems); ctr = 0; + } + WinFormsUtil.Alert("Randomized!"); + } + + private void B_AddRow_Click(object sender, EventArgs e) + { + if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Add a row at the bottom?")) + return; + + int row = dgvCommon.RowCount; + dgvCommon.Rows.Add(); + dgvCommon.Rows[row].Cells[0].Value = items[0]; + for (int i = 1; i < dgvCommon.ColumnCount; i++) + dgvCommon.Rows[row].Cells[i].Value = 0.ToString(); + } + + private void B_DeleteRow_Click(object sender, EventArgs e) + { + if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Delete the bottom row?")) + return; + + dgvCommon.Rows.RemoveAt(dgvCommon.RowCount - 1); + } +} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/PickupEditor7.resx b/pk3DS.WinForms/Subforms/Gen7/PickupEditor7.resx similarity index 100% rename from pk3DS/Subforms/Gen7/PickupEditor7.resx rename to pk3DS.WinForms/Subforms/Gen7/PickupEditor7.resx diff --git a/pk3DS.WinForms/Subforms/Gen7/SMTE.Designer.cs b/pk3DS.WinForms/Subforms/Gen7/SMTE.Designer.cs new file mode 100644 index 0000000000..1208308049 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen7/SMTE.Designer.cs @@ -0,0 +1,2526 @@ +namespace pk3DS.WinForms; + +partial class SMTE +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + this.CB_TrainerID = new System.Windows.Forms.ComboBox(); + this.L_Money = new System.Windows.Forms.Label(); + this.CB_Money = new System.Windows.Forms.ComboBox(); + this.L_Trainer_Class = new System.Windows.Forms.Label(); + this.CB_Trainer_Class = new System.Windows.Forms.ComboBox(); + this.L_Item_4 = new System.Windows.Forms.Label(); + this.CB_Item_4 = new System.Windows.Forms.ComboBox(); + this.L_Item_3 = new System.Windows.Forms.Label(); + this.CB_Item_3 = new System.Windows.Forms.ComboBox(); + this.L_Item_2 = new System.Windows.Forms.Label(); + this.CB_Item_2 = new System.Windows.Forms.ComboBox(); + this.L_Item_1 = new System.Windows.Forms.Label(); + this.CB_Item_1 = new System.Windows.Forms.ComboBox(); + this.L_numPokemon = new System.Windows.Forms.Label(); + this.L_Team = new System.Windows.Forms.Label(); + this.PB_Team1 = new System.Windows.Forms.PictureBox(); + this.mnuVSD = new System.Windows.Forms.ContextMenuStrip(this.components); + this.mnuView = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuSet = new System.Windows.Forms.ToolStripMenuItem(); + this.mnuDelete = new System.Windows.Forms.ToolStripMenuItem(); + this.PB_Team2 = new System.Windows.Forms.PictureBox(); + this.PB_Team3 = new System.Windows.Forms.PictureBox(); + this.PB_Team4 = new System.Windows.Forms.PictureBox(); + this.PB_Team5 = new System.Windows.Forms.PictureBox(); + this.PB_Team6 = new System.Windows.Forms.PictureBox(); + this.B_Randomize = new System.Windows.Forms.Button(); + this.B_Dump = new System.Windows.Forms.Button(); + this.TC_trpoke = new System.Windows.Forms.TabControl(); + this.Tab_Main = new System.Windows.Forms.TabPage(); + this.flowLayoutPanel2 = new System.Windows.Forms.FlowLayoutPanel(); + this.FLP_Species = new System.Windows.Forms.FlowLayoutPanel(); + this.L_Species = new System.Windows.Forms.Label(); + this.CB_Species = new System.Windows.Forms.ComboBox(); + this.FLP_Form = new System.Windows.Forms.FlowLayoutPanel(); + this.L_Forme = new System.Windows.Forms.Label(); + this.CB_Forme = new System.Windows.Forms.ComboBox(); + this.flowLayoutPanel3 = new System.Windows.Forms.FlowLayoutPanel(); + this.L_Level = new System.Windows.Forms.Label(); + this.NUD_Level = new System.Windows.Forms.NumericUpDown(); + this.flowLayoutPanel4 = new System.Windows.Forms.FlowLayoutPanel(); + this.L_Ability = new System.Windows.Forms.Label(); + this.CB_Ability = new System.Windows.Forms.ComboBox(); + this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel(); + this.L_Item = new System.Windows.Forms.Label(); + this.CB_Item = new System.Windows.Forms.ComboBox(); + this.flowLayoutPanel5 = new System.Windows.Forms.FlowLayoutPanel(); + this.L_Nature = new System.Windows.Forms.Label(); + this.CB_Nature = new System.Windows.Forms.ComboBox(); + this.flowLayoutPanel6 = new System.Windows.Forms.FlowLayoutPanel(); + this.L_Misc = new System.Windows.Forms.Label(); + this.CHK_Shiny = new System.Windows.Forms.CheckBox(); + this.flowLayoutPanel7 = new System.Windows.Forms.FlowLayoutPanel(); + this.L_Gender = new System.Windows.Forms.Label(); + this.CB_Gender = new System.Windows.Forms.ComboBox(); + this.Tab_Stats = new System.Windows.Forms.TabPage(); + this.FLP_Stats = new System.Windows.Forms.FlowLayoutPanel(); + this.FLP_StatHeader = new System.Windows.Forms.FlowLayoutPanel(); + this.FLP_StatsHeaderRight = new System.Windows.Forms.FlowLayoutPanel(); + this.Label_IVs = new System.Windows.Forms.Label(); + this.Label_EVs = new System.Windows.Forms.Label(); + this.Label_Stats = new System.Windows.Forms.Label(); + this.FLP_HP = new System.Windows.Forms.FlowLayoutPanel(); + this.Label_HP = new System.Windows.Forms.Label(); + this.TB_HPIV = new System.Windows.Forms.MaskedTextBox(); + this.TB_HPEV = new System.Windows.Forms.MaskedTextBox(); + this.Stat_HP = new System.Windows.Forms.MaskedTextBox(); + this.FLP_Atk = new System.Windows.Forms.FlowLayoutPanel(); + this.Label_ATK = new System.Windows.Forms.Label(); + this.TB_ATKIV = new System.Windows.Forms.MaskedTextBox(); + this.TB_ATKEV = new System.Windows.Forms.MaskedTextBox(); + this.Stat_ATK = new System.Windows.Forms.MaskedTextBox(); + this.FLP_Def = new System.Windows.Forms.FlowLayoutPanel(); + this.Label_DEF = new System.Windows.Forms.Label(); + this.TB_DEFIV = new System.Windows.Forms.MaskedTextBox(); + this.TB_DEFEV = new System.Windows.Forms.MaskedTextBox(); + this.Stat_DEF = new System.Windows.Forms.MaskedTextBox(); + this.FLP_SpA = new System.Windows.Forms.FlowLayoutPanel(); + this.Label_SPA = new System.Windows.Forms.Label(); + this.TB_SPAIV = new System.Windows.Forms.MaskedTextBox(); + this.TB_SPAEV = new System.Windows.Forms.MaskedTextBox(); + this.Stat_SPA = new System.Windows.Forms.MaskedTextBox(); + this.FLP_SpD = new System.Windows.Forms.FlowLayoutPanel(); + this.Label_SPD = new System.Windows.Forms.Label(); + this.TB_SPDIV = new System.Windows.Forms.MaskedTextBox(); + this.TB_SPDEV = new System.Windows.Forms.MaskedTextBox(); + this.Stat_SPD = new System.Windows.Forms.MaskedTextBox(); + this.FLP_Spe = new System.Windows.Forms.FlowLayoutPanel(); + this.Label_SPE = new System.Windows.Forms.Label(); + this.TB_SPEIV = new System.Windows.Forms.MaskedTextBox(); + this.TB_SPEEV = new System.Windows.Forms.MaskedTextBox(); + this.Stat_SPE = new System.Windows.Forms.MaskedTextBox(); + this.FLP_StatsTotal = new System.Windows.Forms.FlowLayoutPanel(); + this.Label_Total = new System.Windows.Forms.Label(); + this.TB_IVTotal = new System.Windows.Forms.TextBox(); + this.TB_EVTotal = new System.Windows.Forms.TextBox(); + this.FLP_HPType = new System.Windows.Forms.FlowLayoutPanel(); + this.Label_HiddenPowerPrefix = new System.Windows.Forms.Label(); + this.CB_HPType = new System.Windows.Forms.ComboBox(); + this.Tab_Moves = new System.Windows.Forms.TabPage(); + this.B_Clear = new System.Windows.Forms.Button(); + this.B_CurrentAttack = new System.Windows.Forms.Button(); + this.B_HighAttack = new System.Windows.Forms.Button(); + this.GB_Moves = new System.Windows.Forms.GroupBox(); + this.CB_Move1 = new System.Windows.Forms.ComboBox(); + this.CB_Move4 = new System.Windows.Forms.ComboBox(); + this.CB_Move2 = new System.Windows.Forms.ComboBox(); + this.CB_Move3 = new System.Windows.Forms.ComboBox(); + this.L_TrainerName = new System.Windows.Forms.Label(); + this.TB_TrainerName = new System.Windows.Forms.TextBox(); + this.NUD_NumPoke = new System.Windows.Forms.NumericUpDown(); + this.TC_trdata = new System.Windows.Forms.TabControl(); + this.Tab_Trainer = new System.Windows.Forms.TabPage(); + this.L_Mode = new System.Windows.Forms.Label(); + this.CB_Mode = new System.Windows.Forms.ComboBox(); + this.CHK_Flag = new System.Windows.Forms.CheckBox(); + this.Tab_Rand = new System.Windows.Forms.TabPage(); + this.TC_rand = new System.Windows.Forms.TabControl(); + this.Tab_PKM1 = new System.Windows.Forms.TabPage(); + this.L_ShinyPCT = new System.Windows.Forms.Label(); + this.NUD_Shiny = new System.Windows.Forms.NumericUpDown(); + this.CHK_RandomShiny = new System.Windows.Forms.CheckBox(); + this.CHK_E = new System.Windows.Forms.CheckBox(); + this.CHK_L = new System.Windows.Forms.CheckBox(); + this.CHK_G7 = new System.Windows.Forms.CheckBox(); + this.CHK_G6 = new System.Windows.Forms.CheckBox(); + this.CHK_G5 = new System.Windows.Forms.CheckBox(); + this.CHK_G4 = new System.Windows.Forms.CheckBox(); + this.CHK_G3 = new System.Windows.Forms.CheckBox(); + this.NUD_LevelBoost = new System.Windows.Forms.NumericUpDown(); + this.CHK_G2 = new System.Windows.Forms.CheckBox(); + this.CHK_Level = new System.Windows.Forms.CheckBox(); + this.CHK_G1 = new System.Windows.Forms.CheckBox(); + this.CHK_BST = new System.Windows.Forms.CheckBox(); + this.CHK_RandomPKM = new System.Windows.Forms.CheckBox(); + this.Tab_PKM2 = new System.Windows.Forms.TabPage(); + this.CHK_ForceHighPower = new System.Windows.Forms.CheckBox(); + this.NUD_ForceHighPower = new System.Windows.Forms.NumericUpDown(); + this.CHK_NoFixedDamage = new System.Windows.Forms.CheckBox(); + this.CHK_MaxAI = new System.Windows.Forms.CheckBox(); + this.L_Moves = new System.Windows.Forms.Label(); + this.CB_Moves = new System.Windows.Forms.ComboBox(); + this.CHK_MaxDiffPKM = new System.Windows.Forms.CheckBox(); + this.NUD_Damage = new System.Windows.Forms.NumericUpDown(); + this.CHK_RandomAbilities = new System.Windows.Forms.CheckBox(); + this.NUD_STAB = new System.Windows.Forms.NumericUpDown(); + this.CHK_Damage = new System.Windows.Forms.CheckBox(); + this.CHK_RandomItems = new System.Windows.Forms.CheckBox(); + this.CHK_STAB = new System.Windows.Forms.CheckBox(); + this.Tab_Trainer1 = new System.Windows.Forms.TabPage(); + this.CHK_ReplaceMega = new System.Windows.Forms.CheckBox(); + this.CHK_6PKM = new System.Windows.Forms.CheckBox(); + this.NUD_ForceFullyEvolved = new System.Windows.Forms.NumericUpDown(); + this.L_MinPKM = new System.Windows.Forms.Label(); + this.L_MaxPKM = new System.Windows.Forms.Label(); + this.NUD_RMin = new System.Windows.Forms.NumericUpDown(); + this.NUD_RMax = new System.Windows.Forms.NumericUpDown(); + this.CHK_RandomMegaForm = new System.Windows.Forms.CheckBox(); + this.CHK_TypeTheme = new System.Windows.Forms.CheckBox(); + this.CHK_IgnoreSpecialClass = new System.Windows.Forms.CheckBox(); + this.CHK_RandomClass = new System.Windows.Forms.CheckBox(); + this.CHK_ForceFullyEvolved = new System.Windows.Forms.CheckBox(); + this.GB_AIBits = new System.Windows.Forms.GroupBox(); + this.CHK_AI6 = new System.Windows.Forms.CheckBox(); + this.CHK_AI5 = new System.Windows.Forms.CheckBox(); + this.CHK_AI4 = new System.Windows.Forms.CheckBox(); + this.CHK_AI3 = new System.Windows.Forms.CheckBox(); + this.CHK_AI2 = new System.Windows.Forms.CheckBox(); + this.CHK_AI1 = new System.Windows.Forms.CheckBox(); + this.CHK_AI0 = new System.Windows.Forms.CheckBox(); + this.CHK_AI7 = new System.Windows.Forms.CheckBox(); + ((System.ComponentModel.ISupportInitialize)(this.PB_Team1)).BeginInit(); + this.mnuVSD.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.PB_Team2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_Team3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_Team4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_Team5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_Team6)).BeginInit(); + this.TC_trpoke.SuspendLayout(); + this.Tab_Main.SuspendLayout(); + this.flowLayoutPanel2.SuspendLayout(); + this.FLP_Species.SuspendLayout(); + this.FLP_Form.SuspendLayout(); + this.flowLayoutPanel3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Level)).BeginInit(); + this.flowLayoutPanel4.SuspendLayout(); + this.flowLayoutPanel1.SuspendLayout(); + this.flowLayoutPanel5.SuspendLayout(); + this.flowLayoutPanel6.SuspendLayout(); + this.flowLayoutPanel7.SuspendLayout(); + this.Tab_Stats.SuspendLayout(); + this.FLP_Stats.SuspendLayout(); + this.FLP_StatHeader.SuspendLayout(); + this.FLP_StatsHeaderRight.SuspendLayout(); + this.FLP_HP.SuspendLayout(); + this.FLP_Atk.SuspendLayout(); + this.FLP_Def.SuspendLayout(); + this.FLP_SpA.SuspendLayout(); + this.FLP_SpD.SuspendLayout(); + this.FLP_Spe.SuspendLayout(); + this.FLP_StatsTotal.SuspendLayout(); + this.FLP_HPType.SuspendLayout(); + this.Tab_Moves.SuspendLayout(); + this.GB_Moves.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_NumPoke)).BeginInit(); + this.TC_trdata.SuspendLayout(); + this.Tab_Trainer.SuspendLayout(); + this.Tab_Rand.SuspendLayout(); + this.TC_rand.SuspendLayout(); + this.Tab_PKM1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Shiny)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_LevelBoost)).BeginInit(); + this.Tab_PKM2.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_ForceHighPower)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Damage)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_STAB)).BeginInit(); + this.Tab_Trainer1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_ForceFullyEvolved)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_RMin)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_RMax)).BeginInit(); + this.GB_AIBits.SuspendLayout(); + this.SuspendLayout(); + // + // CB_TrainerID + // + this.CB_TrainerID.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_TrainerID.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_TrainerID.DropDownWidth = 200; + this.CB_TrainerID.FormattingEnabled = true; + this.CB_TrainerID.Location = new System.Drawing.Point(429, 7); + this.CB_TrainerID.MaxDropDownItems = 12; + this.CB_TrainerID.Name = "CB_TrainerID"; + this.CB_TrainerID.Size = new System.Drawing.Size(140, 21); + this.CB_TrainerID.TabIndex = 64; + this.CB_TrainerID.SelectedIndexChanged += new System.EventHandler(this.ChangeTrainerIndex); + // + // L_Money + // + this.L_Money.AutoSize = true; + this.L_Money.Location = new System.Drawing.Point(34, 54); + this.L_Money.Name = "L_Money"; + this.L_Money.Size = new System.Drawing.Size(42, 13); + this.L_Money.TabIndex = 53; + this.L_Money.Text = "Money:"; + // + // CB_Money + // + this.CB_Money.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Money.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Money.FormattingEnabled = true; + this.CB_Money.Location = new System.Drawing.Point(79, 51); + this.CB_Money.Name = "CB_Money"; + this.CB_Money.Size = new System.Drawing.Size(70, 21); + this.CB_Money.TabIndex = 52; + // + // L_Trainer_Class + // + this.L_Trainer_Class.AutoSize = true; + this.L_Trainer_Class.Location = new System.Drawing.Point(7, 32); + this.L_Trainer_Class.Name = "L_Trainer_Class"; + this.L_Trainer_Class.Size = new System.Drawing.Size(71, 13); + this.L_Trainer_Class.TabIndex = 49; + this.L_Trainer_Class.Text = "Trainer Class:"; + // + // CB_Trainer_Class + // + this.CB_Trainer_Class.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Trainer_Class.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Trainer_Class.DropDownWidth = 165; + this.CB_Trainer_Class.FormattingEnabled = true; + this.CB_Trainer_Class.Location = new System.Drawing.Point(79, 29); + this.CB_Trainer_Class.Name = "CB_Trainer_Class"; + this.CB_Trainer_Class.Size = new System.Drawing.Size(172, 21); + this.CB_Trainer_Class.TabIndex = 48; + // + // L_Item_4 + // + this.L_Item_4.AutoSize = true; + this.L_Item_4.Location = new System.Drawing.Point(6, 176); + this.L_Item_4.Name = "L_Item_4"; + this.L_Item_4.Size = new System.Drawing.Size(39, 13); + this.L_Item_4.TabIndex = 34; + this.L_Item_4.Text = "Item 4:"; + // + // CB_Item_4 + // + this.CB_Item_4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_Item_4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Item_4.FormattingEnabled = true; + this.CB_Item_4.Location = new System.Drawing.Point(51, 173); + this.CB_Item_4.Name = "CB_Item_4"; + this.CB_Item_4.Size = new System.Drawing.Size(99, 21); + this.CB_Item_4.TabIndex = 33; + // + // L_Item_3 + // + this.L_Item_3.AutoSize = true; + this.L_Item_3.Location = new System.Drawing.Point(6, 154); + this.L_Item_3.Name = "L_Item_3"; + this.L_Item_3.Size = new System.Drawing.Size(39, 13); + this.L_Item_3.TabIndex = 32; + this.L_Item_3.Text = "Item 3:"; + // + // CB_Item_3 + // + this.CB_Item_3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_Item_3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Item_3.FormattingEnabled = true; + this.CB_Item_3.Location = new System.Drawing.Point(51, 151); + this.CB_Item_3.Name = "CB_Item_3"; + this.CB_Item_3.Size = new System.Drawing.Size(99, 21); + this.CB_Item_3.TabIndex = 31; + // + // L_Item_2 + // + this.L_Item_2.AutoSize = true; + this.L_Item_2.Location = new System.Drawing.Point(6, 132); + this.L_Item_2.Name = "L_Item_2"; + this.L_Item_2.Size = new System.Drawing.Size(39, 13); + this.L_Item_2.TabIndex = 30; + this.L_Item_2.Text = "Item 2:"; + // + // CB_Item_2 + // + this.CB_Item_2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_Item_2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Item_2.FormattingEnabled = true; + this.CB_Item_2.Location = new System.Drawing.Point(51, 129); + this.CB_Item_2.Name = "CB_Item_2"; + this.CB_Item_2.Size = new System.Drawing.Size(99, 21); + this.CB_Item_2.TabIndex = 29; + // + // L_Item_1 + // + this.L_Item_1.AutoSize = true; + this.L_Item_1.Location = new System.Drawing.Point(6, 110); + this.L_Item_1.Name = "L_Item_1"; + this.L_Item_1.Size = new System.Drawing.Size(39, 13); + this.L_Item_1.TabIndex = 28; + this.L_Item_1.Text = "Item 1:"; + // + // CB_Item_1 + // + this.CB_Item_1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_Item_1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Item_1.FormattingEnabled = true; + this.CB_Item_1.Location = new System.Drawing.Point(51, 107); + this.CB_Item_1.Name = "CB_Item_1"; + this.CB_Item_1.Size = new System.Drawing.Size(99, 21); + this.CB_Item_1.TabIndex = 27; + // + // L_numPokemon + // + this.L_numPokemon.AutoSize = true; + this.L_numPokemon.Location = new System.Drawing.Point(36, 75); + this.L_numPokemon.Name = "L_numPokemon"; + this.L_numPokemon.Size = new System.Drawing.Size(40, 13); + this.L_numPokemon.TabIndex = 22; + this.L_numPokemon.Text = "#PKM:"; + this.L_numPokemon.Visible = false; + // + // L_Team + // + this.L_Team.Location = new System.Drawing.Point(-19, 267); + this.L_Team.Name = "L_Team"; + this.L_Team.Size = new System.Drawing.Size(66, 15); + this.L_Team.TabIndex = 445; + this.L_Team.Text = "Team:"; + this.L_Team.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // PB_Team1 + // + this.PB_Team1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.PB_Team1.ContextMenuStrip = this.mnuVSD; + this.PB_Team1.Location = new System.Drawing.Point(50, 244); + this.PB_Team1.Name = "PB_Team1"; + this.PB_Team1.Size = new System.Drawing.Size(82, 62); + this.PB_Team1.TabIndex = 444; + this.PB_Team1.TabStop = false; + // + // mnuVSD + // + this.mnuVSD.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.mnuView, + this.mnuSet, + this.mnuDelete}); + this.mnuVSD.Name = "mnuVSD"; + this.mnuVSD.Size = new System.Drawing.Size(108, 70); + // + // mnuView + // + this.mnuView.Name = "mnuView"; + this.mnuView.Size = new System.Drawing.Size(107, 22); + this.mnuView.Text = "View"; + // + // mnuSet + // + this.mnuSet.Name = "mnuSet"; + this.mnuSet.Size = new System.Drawing.Size(107, 22); + this.mnuSet.Text = "Set"; + // + // mnuDelete + // + this.mnuDelete.Name = "mnuDelete"; + this.mnuDelete.Size = new System.Drawing.Size(107, 22); + this.mnuDelete.Text = "Delete"; + // + // PB_Team2 + // + this.PB_Team2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.PB_Team2.ContextMenuStrip = this.mnuVSD; + this.PB_Team2.Location = new System.Drawing.Point(147, 244); + this.PB_Team2.Name = "PB_Team2"; + this.PB_Team2.Size = new System.Drawing.Size(82, 62); + this.PB_Team2.TabIndex = 443; + this.PB_Team2.TabStop = false; + // + // PB_Team3 + // + this.PB_Team3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.PB_Team3.ContextMenuStrip = this.mnuVSD; + this.PB_Team3.Location = new System.Drawing.Point(244, 244); + this.PB_Team3.Name = "PB_Team3"; + this.PB_Team3.Size = new System.Drawing.Size(82, 62); + this.PB_Team3.TabIndex = 442; + this.PB_Team3.TabStop = false; + // + // PB_Team4 + // + this.PB_Team4.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.PB_Team4.ContextMenuStrip = this.mnuVSD; + this.PB_Team4.Location = new System.Drawing.Point(341, 244); + this.PB_Team4.Name = "PB_Team4"; + this.PB_Team4.Size = new System.Drawing.Size(82, 62); + this.PB_Team4.TabIndex = 441; + this.PB_Team4.TabStop = false; + // + // PB_Team5 + // + this.PB_Team5.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.PB_Team5.ContextMenuStrip = this.mnuVSD; + this.PB_Team5.Location = new System.Drawing.Point(438, 244); + this.PB_Team5.Name = "PB_Team5"; + this.PB_Team5.Size = new System.Drawing.Size(82, 62); + this.PB_Team5.TabIndex = 440; + this.PB_Team5.TabStop = false; + // + // PB_Team6 + // + this.PB_Team6.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.PB_Team6.ContextMenuStrip = this.mnuVSD; + this.PB_Team6.Location = new System.Drawing.Point(535, 244); + this.PB_Team6.Name = "PB_Team6"; + this.PB_Team6.Size = new System.Drawing.Size(82, 62); + this.PB_Team6.TabIndex = 439; + this.PB_Team6.TabStop = false; + // + // B_Randomize + // + this.B_Randomize.Location = new System.Drawing.Point(88, 5); + this.B_Randomize.Name = "B_Randomize"; + this.B_Randomize.Size = new System.Drawing.Size(93, 23); + this.B_Randomize.TabIndex = 447; + this.B_Randomize.Text = "Randomize All"; + this.B_Randomize.UseVisualStyleBackColor = true; + this.B_Randomize.Click += new System.EventHandler(this.B_Randomize_Click); + // + // B_Dump + // + this.B_Dump.Location = new System.Drawing.Point(187, 5); + this.B_Dump.Name = "B_Dump"; + this.B_Dump.Size = new System.Drawing.Size(93, 23); + this.B_Dump.TabIndex = 446; + this.B_Dump.Text = "Dump to .TXT"; + this.B_Dump.UseVisualStyleBackColor = true; + this.B_Dump.Click += new System.EventHandler(this.DumpTxt); + // + // TC_trpoke + // + this.TC_trpoke.Controls.Add(this.Tab_Main); + this.TC_trpoke.Controls.Add(this.Tab_Stats); + this.TC_trpoke.Controls.Add(this.Tab_Moves); + this.TC_trpoke.Location = new System.Drawing.Point(12, 12); + this.TC_trpoke.Name = "TC_trpoke"; + this.TC_trpoke.SelectedIndex = 0; + this.TC_trpoke.Size = new System.Drawing.Size(232, 225); + this.TC_trpoke.TabIndex = 448; + // + // Tab_Main + // + this.Tab_Main.Controls.Add(this.flowLayoutPanel2); + this.Tab_Main.Location = new System.Drawing.Point(4, 22); + this.Tab_Main.Name = "Tab_Main"; + this.Tab_Main.Padding = new System.Windows.Forms.Padding(3); + this.Tab_Main.Size = new System.Drawing.Size(224, 199); + this.Tab_Main.TabIndex = 0; + this.Tab_Main.Text = "Main"; + this.Tab_Main.UseVisualStyleBackColor = true; + // + // flowLayoutPanel2 + // + this.flowLayoutPanel2.Controls.Add(this.FLP_Species); + this.flowLayoutPanel2.Controls.Add(this.FLP_Form); + this.flowLayoutPanel2.Controls.Add(this.flowLayoutPanel3); + this.flowLayoutPanel2.Controls.Add(this.flowLayoutPanel4); + this.flowLayoutPanel2.Controls.Add(this.flowLayoutPanel1); + this.flowLayoutPanel2.Controls.Add(this.flowLayoutPanel5); + this.flowLayoutPanel2.Controls.Add(this.flowLayoutPanel6); + this.flowLayoutPanel2.Controls.Add(this.flowLayoutPanel7); + this.flowLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; + this.flowLayoutPanel2.Location = new System.Drawing.Point(3, 3); + this.flowLayoutPanel2.Name = "flowLayoutPanel2"; + this.flowLayoutPanel2.Size = new System.Drawing.Size(218, 193); + this.flowLayoutPanel2.TabIndex = 2; + // + // FLP_Species + // + this.FLP_Species.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.FLP_Species.Controls.Add(this.L_Species); + this.FLP_Species.Controls.Add(this.CB_Species); + this.FLP_Species.Location = new System.Drawing.Point(0, 10); + this.FLP_Species.Margin = new System.Windows.Forms.Padding(0, 10, 0, 0); + this.FLP_Species.Name = "FLP_Species"; + this.FLP_Species.Size = new System.Drawing.Size(215, 21); + this.FLP_Species.TabIndex = 1; + // + // L_Species + // + this.L_Species.Location = new System.Drawing.Point(3, 0); + this.L_Species.Name = "L_Species"; + this.L_Species.Size = new System.Drawing.Size(55, 21); + this.L_Species.TabIndex = 0; + this.L_Species.Text = "Species:"; + this.L_Species.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_Species + // + this.CB_Species.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_Species.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Species.FormattingEnabled = true; + this.CB_Species.Location = new System.Drawing.Point(61, 0); + this.CB_Species.Margin = new System.Windows.Forms.Padding(0); + this.CB_Species.Name = "CB_Species"; + this.CB_Species.Size = new System.Drawing.Size(136, 21); + this.CB_Species.TabIndex = 1; + this.CB_Species.SelectedIndexChanged += new System.EventHandler(this.RefreshSpeciesAbility); + // + // FLP_Form + // + this.FLP_Form.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.FLP_Form.Controls.Add(this.L_Forme); + this.FLP_Form.Controls.Add(this.CB_Forme); + this.FLP_Form.Location = new System.Drawing.Point(0, 31); + this.FLP_Form.Margin = new System.Windows.Forms.Padding(0); + this.FLP_Form.Name = "FLP_Form"; + this.FLP_Form.Size = new System.Drawing.Size(215, 21); + this.FLP_Form.TabIndex = 2; + // + // L_Forme + // + this.L_Forme.Location = new System.Drawing.Point(3, 0); + this.L_Forme.Name = "L_Forme"; + this.L_Forme.Size = new System.Drawing.Size(55, 21); + this.L_Forme.TabIndex = 0; + this.L_Forme.Text = "Form:"; + this.L_Forme.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_Forme + // + this.CB_Forme.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_Forme.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Forme.FormattingEnabled = true; + this.CB_Forme.Location = new System.Drawing.Point(61, 0); + this.CB_Forme.Margin = new System.Windows.Forms.Padding(0); + this.CB_Forme.Name = "CB_Forme"; + this.CB_Forme.Size = new System.Drawing.Size(136, 21); + this.CB_Forme.TabIndex = 1; + this.CB_Forme.SelectedIndexChanged += new System.EventHandler(this.RefreshFormAbility); + // + // flowLayoutPanel3 + // + this.flowLayoutPanel3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.flowLayoutPanel3.Controls.Add(this.L_Level); + this.flowLayoutPanel3.Controls.Add(this.NUD_Level); + this.flowLayoutPanel3.Location = new System.Drawing.Point(0, 52); + this.flowLayoutPanel3.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel3.Name = "flowLayoutPanel3"; + this.flowLayoutPanel3.Size = new System.Drawing.Size(215, 21); + this.flowLayoutPanel3.TabIndex = 3; + // + // L_Level + // + this.L_Level.Location = new System.Drawing.Point(3, 0); + this.L_Level.Name = "L_Level"; + this.L_Level.Size = new System.Drawing.Size(55, 21); + this.L_Level.TabIndex = 0; + this.L_Level.Text = "Level:"; + this.L_Level.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_Level + // + this.NUD_Level.Location = new System.Drawing.Point(61, 0); + this.NUD_Level.Margin = new System.Windows.Forms.Padding(0); + this.NUD_Level.Name = "NUD_Level"; + this.NUD_Level.Size = new System.Drawing.Size(56, 20); + this.NUD_Level.TabIndex = 1; + this.NUD_Level.ValueChanged += new System.EventHandler(this.UpdateStats); + // + // flowLayoutPanel4 + // + this.flowLayoutPanel4.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.flowLayoutPanel4.Controls.Add(this.L_Ability); + this.flowLayoutPanel4.Controls.Add(this.CB_Ability); + this.flowLayoutPanel4.Location = new System.Drawing.Point(0, 73); + this.flowLayoutPanel4.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel4.Name = "flowLayoutPanel4"; + this.flowLayoutPanel4.Size = new System.Drawing.Size(215, 21); + this.flowLayoutPanel4.TabIndex = 4; + // + // L_Ability + // + this.L_Ability.Location = new System.Drawing.Point(3, 0); + this.L_Ability.Name = "L_Ability"; + this.L_Ability.Size = new System.Drawing.Size(55, 21); + this.L_Ability.TabIndex = 0; + this.L_Ability.Text = "Ability:"; + this.L_Ability.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_Ability + // + this.CB_Ability.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_Ability.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Ability.FormattingEnabled = true; + this.CB_Ability.Location = new System.Drawing.Point(61, 0); + this.CB_Ability.Margin = new System.Windows.Forms.Padding(0); + this.CB_Ability.Name = "CB_Ability"; + this.CB_Ability.Size = new System.Drawing.Size(136, 21); + this.CB_Ability.TabIndex = 2; + // + // flowLayoutPanel1 + // + this.flowLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.flowLayoutPanel1.Controls.Add(this.L_Item); + this.flowLayoutPanel1.Controls.Add(this.CB_Item); + this.flowLayoutPanel1.Location = new System.Drawing.Point(0, 94); + this.flowLayoutPanel1.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel1.Name = "flowLayoutPanel1"; + this.flowLayoutPanel1.Size = new System.Drawing.Size(215, 21); + this.flowLayoutPanel1.TabIndex = 5; + // + // L_Item + // + this.L_Item.Location = new System.Drawing.Point(3, 0); + this.L_Item.Name = "L_Item"; + this.L_Item.Size = new System.Drawing.Size(55, 21); + this.L_Item.TabIndex = 0; + this.L_Item.Text = "Held Item:"; + this.L_Item.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_Item + // + this.CB_Item.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_Item.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Item.FormattingEnabled = true; + this.CB_Item.Location = new System.Drawing.Point(61, 0); + this.CB_Item.Margin = new System.Windows.Forms.Padding(0); + this.CB_Item.Name = "CB_Item"; + this.CB_Item.Size = new System.Drawing.Size(136, 21); + this.CB_Item.TabIndex = 2; + // + // flowLayoutPanel5 + // + this.flowLayoutPanel5.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.flowLayoutPanel5.Controls.Add(this.L_Nature); + this.flowLayoutPanel5.Controls.Add(this.CB_Nature); + this.flowLayoutPanel5.Location = new System.Drawing.Point(0, 115); + this.flowLayoutPanel5.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel5.Name = "flowLayoutPanel5"; + this.flowLayoutPanel5.Size = new System.Drawing.Size(215, 21); + this.flowLayoutPanel5.TabIndex = 6; + // + // L_Nature + // + this.L_Nature.Location = new System.Drawing.Point(3, 0); + this.L_Nature.Name = "L_Nature"; + this.L_Nature.Size = new System.Drawing.Size(55, 21); + this.L_Nature.TabIndex = 0; + this.L_Nature.Text = "Nature:"; + this.L_Nature.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_Nature + // + this.CB_Nature.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_Nature.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Nature.FormattingEnabled = true; + this.CB_Nature.Location = new System.Drawing.Point(61, 0); + this.CB_Nature.Margin = new System.Windows.Forms.Padding(0); + this.CB_Nature.Name = "CB_Nature"; + this.CB_Nature.Size = new System.Drawing.Size(136, 21); + this.CB_Nature.TabIndex = 2; + this.CB_Nature.SelectedIndexChanged += new System.EventHandler(this.UpdateStats); + // + // flowLayoutPanel6 + // + this.flowLayoutPanel6.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.flowLayoutPanel6.Controls.Add(this.L_Misc); + this.flowLayoutPanel6.Controls.Add(this.CHK_Shiny); + this.flowLayoutPanel6.Location = new System.Drawing.Point(0, 136); + this.flowLayoutPanel6.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel6.Name = "flowLayoutPanel6"; + this.flowLayoutPanel6.Size = new System.Drawing.Size(215, 21); + this.flowLayoutPanel6.TabIndex = 7; + // + // L_Misc + // + this.L_Misc.Location = new System.Drawing.Point(3, 0); + this.L_Misc.Name = "L_Misc"; + this.L_Misc.Size = new System.Drawing.Size(55, 21); + this.L_Misc.TabIndex = 0; + this.L_Misc.Text = "Misc:"; + this.L_Misc.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CHK_Shiny + // + this.CHK_Shiny.AutoSize = true; + this.CHK_Shiny.Location = new System.Drawing.Point(64, 3); + this.CHK_Shiny.Name = "CHK_Shiny"; + this.CHK_Shiny.Size = new System.Drawing.Size(52, 17); + this.CHK_Shiny.TabIndex = 1; + this.CHK_Shiny.Text = "Shiny"; + this.CHK_Shiny.UseVisualStyleBackColor = true; + // + // flowLayoutPanel7 + // + this.flowLayoutPanel7.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.flowLayoutPanel7.Controls.Add(this.L_Gender); + this.flowLayoutPanel7.Controls.Add(this.CB_Gender); + this.flowLayoutPanel7.Location = new System.Drawing.Point(0, 157); + this.flowLayoutPanel7.Margin = new System.Windows.Forms.Padding(0); + this.flowLayoutPanel7.Name = "flowLayoutPanel7"; + this.flowLayoutPanel7.Size = new System.Drawing.Size(215, 21); + this.flowLayoutPanel7.TabIndex = 8; + // + // L_Gender + // + this.L_Gender.Location = new System.Drawing.Point(3, 0); + this.L_Gender.Name = "L_Gender"; + this.L_Gender.Size = new System.Drawing.Size(55, 21); + this.L_Gender.TabIndex = 0; + this.L_Gender.Text = "Gender:"; + this.L_Gender.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_Gender + // + this.CB_Gender.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_Gender.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Gender.FormattingEnabled = true; + this.CB_Gender.Location = new System.Drawing.Point(61, 0); + this.CB_Gender.Margin = new System.Windows.Forms.Padding(0); + this.CB_Gender.Name = "CB_Gender"; + this.CB_Gender.Size = new System.Drawing.Size(136, 21); + this.CB_Gender.TabIndex = 3; + // + // Tab_Stats + // + this.Tab_Stats.Controls.Add(this.FLP_Stats); + this.Tab_Stats.Location = new System.Drawing.Point(4, 22); + this.Tab_Stats.Name = "Tab_Stats"; + this.Tab_Stats.Padding = new System.Windows.Forms.Padding(3); + this.Tab_Stats.Size = new System.Drawing.Size(224, 199); + this.Tab_Stats.TabIndex = 2; + this.Tab_Stats.Text = "Stats"; + this.Tab_Stats.UseVisualStyleBackColor = true; + // + // FLP_Stats + // + this.FLP_Stats.Controls.Add(this.FLP_StatHeader); + this.FLP_Stats.Controls.Add(this.FLP_HP); + this.FLP_Stats.Controls.Add(this.FLP_Atk); + this.FLP_Stats.Controls.Add(this.FLP_Def); + this.FLP_Stats.Controls.Add(this.FLP_SpA); + this.FLP_Stats.Controls.Add(this.FLP_SpD); + this.FLP_Stats.Controls.Add(this.FLP_Spe); + this.FLP_Stats.Controls.Add(this.FLP_StatsTotal); + this.FLP_Stats.Controls.Add(this.FLP_HPType); + this.FLP_Stats.Location = new System.Drawing.Point(15, 3); + this.FLP_Stats.Name = "FLP_Stats"; + this.FLP_Stats.Size = new System.Drawing.Size(178, 193); + this.FLP_Stats.TabIndex = 450; + // + // FLP_StatHeader + // + this.FLP_StatHeader.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.FLP_StatHeader.Controls.Add(this.FLP_StatsHeaderRight); + this.FLP_StatHeader.Location = new System.Drawing.Point(0, 0); + this.FLP_StatHeader.Margin = new System.Windows.Forms.Padding(0); + this.FLP_StatHeader.Name = "FLP_StatHeader"; + this.FLP_StatHeader.Size = new System.Drawing.Size(172, 22); + this.FLP_StatHeader.TabIndex = 122; + // + // FLP_StatsHeaderRight + // + this.FLP_StatsHeaderRight.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.FLP_StatsHeaderRight.Controls.Add(this.Label_IVs); + this.FLP_StatsHeaderRight.Controls.Add(this.Label_EVs); + this.FLP_StatsHeaderRight.Controls.Add(this.Label_Stats); + this.FLP_StatsHeaderRight.Location = new System.Drawing.Point(62, 0); + this.FLP_StatsHeaderRight.Margin = new System.Windows.Forms.Padding(62, 0, 0, 0); + this.FLP_StatsHeaderRight.Name = "FLP_StatsHeaderRight"; + this.FLP_StatsHeaderRight.Size = new System.Drawing.Size(112, 21); + this.FLP_StatsHeaderRight.TabIndex = 123; + // + // Label_IVs + // + this.Label_IVs.Location = new System.Drawing.Point(0, 0); + this.Label_IVs.Margin = new System.Windows.Forms.Padding(0); + this.Label_IVs.Name = "Label_IVs"; + this.Label_IVs.Size = new System.Drawing.Size(30, 21); + this.Label_IVs.TabIndex = 29; + this.Label_IVs.Text = "IVs"; + this.Label_IVs.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // Label_EVs + // + this.Label_EVs.Location = new System.Drawing.Point(30, 0); + this.Label_EVs.Margin = new System.Windows.Forms.Padding(0); + this.Label_EVs.Name = "Label_EVs"; + this.Label_EVs.Size = new System.Drawing.Size(35, 21); + this.Label_EVs.TabIndex = 27; + this.Label_EVs.Text = "EVs"; + this.Label_EVs.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // Label_Stats + // + this.Label_Stats.Location = new System.Drawing.Point(65, 0); + this.Label_Stats.Margin = new System.Windows.Forms.Padding(0); + this.Label_Stats.Name = "Label_Stats"; + this.Label_Stats.Size = new System.Drawing.Size(35, 21); + this.Label_Stats.TabIndex = 28; + this.Label_Stats.Text = "Stats"; + this.Label_Stats.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; + // + // FLP_HP + // + this.FLP_HP.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.FLP_HP.Controls.Add(this.Label_HP); + this.FLP_HP.Controls.Add(this.TB_HPIV); + this.FLP_HP.Controls.Add(this.TB_HPEV); + this.FLP_HP.Controls.Add(this.Stat_HP); + this.FLP_HP.Location = new System.Drawing.Point(0, 22); + this.FLP_HP.Margin = new System.Windows.Forms.Padding(0); + this.FLP_HP.Name = "FLP_HP"; + this.FLP_HP.Size = new System.Drawing.Size(172, 21); + this.FLP_HP.TabIndex = 123; + // + // Label_HP + // + this.Label_HP.Location = new System.Drawing.Point(0, 0); + this.Label_HP.Margin = new System.Windows.Forms.Padding(0); + this.Label_HP.Name = "Label_HP"; + this.Label_HP.Size = new System.Drawing.Size(65, 21); + this.Label_HP.TabIndex = 19; + this.Label_HP.Text = "HP:"; + this.Label_HP.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // TB_HPIV + // + this.TB_HPIV.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_HPIV.Location = new System.Drawing.Point(65, 0); + this.TB_HPIV.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0); + this.TB_HPIV.Mask = "00"; + this.TB_HPIV.Name = "TB_HPIV"; + this.TB_HPIV.Size = new System.Drawing.Size(22, 20); + this.TB_HPIV.TabIndex = 46; + this.TB_HPIV.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_HPIV.TextChanged += new System.EventHandler(this.UpdateStats); + // + // TB_HPEV + // + this.TB_HPEV.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_HPEV.Location = new System.Drawing.Point(93, 0); + this.TB_HPEV.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); + this.TB_HPEV.Mask = "000"; + this.TB_HPEV.Name = "TB_HPEV"; + this.TB_HPEV.Size = new System.Drawing.Size(28, 20); + this.TB_HPEV.TabIndex = 47; + this.TB_HPEV.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_HPEV.TextChanged += new System.EventHandler(this.UpdateStats); + // + // Stat_HP + // + this.Stat_HP.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.Stat_HP.Enabled = false; + this.Stat_HP.Location = new System.Drawing.Point(127, 0); + this.Stat_HP.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); + this.Stat_HP.Mask = "00000"; + this.Stat_HP.Name = "Stat_HP"; + this.Stat_HP.PromptChar = ' '; + this.Stat_HP.Size = new System.Drawing.Size(37, 20); + this.Stat_HP.TabIndex = 48; + this.Stat_HP.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // FLP_Atk + // + this.FLP_Atk.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.FLP_Atk.Controls.Add(this.Label_ATK); + this.FLP_Atk.Controls.Add(this.TB_ATKIV); + this.FLP_Atk.Controls.Add(this.TB_ATKEV); + this.FLP_Atk.Controls.Add(this.Stat_ATK); + this.FLP_Atk.Location = new System.Drawing.Point(0, 43); + this.FLP_Atk.Margin = new System.Windows.Forms.Padding(0); + this.FLP_Atk.Name = "FLP_Atk"; + this.FLP_Atk.Size = new System.Drawing.Size(172, 21); + this.FLP_Atk.TabIndex = 124; + // + // Label_ATK + // + this.Label_ATK.Location = new System.Drawing.Point(0, 0); + this.Label_ATK.Margin = new System.Windows.Forms.Padding(0); + this.Label_ATK.Name = "Label_ATK"; + this.Label_ATK.Size = new System.Drawing.Size(65, 21); + this.Label_ATK.TabIndex = 20; + this.Label_ATK.Text = "Atk:"; + this.Label_ATK.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // TB_ATKIV + // + this.TB_ATKIV.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_ATKIV.Location = new System.Drawing.Point(65, 0); + this.TB_ATKIV.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0); + this.TB_ATKIV.Mask = "00"; + this.TB_ATKIV.Name = "TB_ATKIV"; + this.TB_ATKIV.Size = new System.Drawing.Size(22, 20); + this.TB_ATKIV.TabIndex = 47; + this.TB_ATKIV.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_ATKIV.TextChanged += new System.EventHandler(this.UpdateStats); + // + // TB_ATKEV + // + this.TB_ATKEV.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_ATKEV.Location = new System.Drawing.Point(93, 0); + this.TB_ATKEV.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); + this.TB_ATKEV.Mask = "000"; + this.TB_ATKEV.Name = "TB_ATKEV"; + this.TB_ATKEV.Size = new System.Drawing.Size(28, 20); + this.TB_ATKEV.TabIndex = 48; + this.TB_ATKEV.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_ATKEV.TextChanged += new System.EventHandler(this.UpdateStats); + // + // Stat_ATK + // + this.Stat_ATK.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.Stat_ATK.Enabled = false; + this.Stat_ATK.Location = new System.Drawing.Point(127, 0); + this.Stat_ATK.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); + this.Stat_ATK.Mask = "00000"; + this.Stat_ATK.Name = "Stat_ATK"; + this.Stat_ATK.PromptChar = ' '; + this.Stat_ATK.Size = new System.Drawing.Size(37, 20); + this.Stat_ATK.TabIndex = 49; + this.Stat_ATK.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // FLP_Def + // + this.FLP_Def.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.FLP_Def.Controls.Add(this.Label_DEF); + this.FLP_Def.Controls.Add(this.TB_DEFIV); + this.FLP_Def.Controls.Add(this.TB_DEFEV); + this.FLP_Def.Controls.Add(this.Stat_DEF); + this.FLP_Def.Location = new System.Drawing.Point(0, 64); + this.FLP_Def.Margin = new System.Windows.Forms.Padding(0); + this.FLP_Def.Name = "FLP_Def"; + this.FLP_Def.Size = new System.Drawing.Size(172, 21); + this.FLP_Def.TabIndex = 125; + // + // Label_DEF + // + this.Label_DEF.Location = new System.Drawing.Point(0, 0); + this.Label_DEF.Margin = new System.Windows.Forms.Padding(0); + this.Label_DEF.Name = "Label_DEF"; + this.Label_DEF.Size = new System.Drawing.Size(65, 21); + this.Label_DEF.TabIndex = 21; + this.Label_DEF.Text = "Def:"; + this.Label_DEF.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // TB_DEFIV + // + this.TB_DEFIV.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_DEFIV.Location = new System.Drawing.Point(65, 0); + this.TB_DEFIV.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0); + this.TB_DEFIV.Mask = "00"; + this.TB_DEFIV.Name = "TB_DEFIV"; + this.TB_DEFIV.Size = new System.Drawing.Size(22, 20); + this.TB_DEFIV.TabIndex = 48; + this.TB_DEFIV.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_DEFIV.TextChanged += new System.EventHandler(this.UpdateStats); + // + // TB_DEFEV + // + this.TB_DEFEV.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_DEFEV.Location = new System.Drawing.Point(93, 0); + this.TB_DEFEV.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); + this.TB_DEFEV.Mask = "000"; + this.TB_DEFEV.Name = "TB_DEFEV"; + this.TB_DEFEV.Size = new System.Drawing.Size(28, 20); + this.TB_DEFEV.TabIndex = 49; + this.TB_DEFEV.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_DEFEV.TextChanged += new System.EventHandler(this.UpdateStats); + // + // Stat_DEF + // + this.Stat_DEF.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.Stat_DEF.Enabled = false; + this.Stat_DEF.Location = new System.Drawing.Point(127, 0); + this.Stat_DEF.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); + this.Stat_DEF.Mask = "00000"; + this.Stat_DEF.Name = "Stat_DEF"; + this.Stat_DEF.PromptChar = ' '; + this.Stat_DEF.Size = new System.Drawing.Size(37, 20); + this.Stat_DEF.TabIndex = 50; + this.Stat_DEF.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // FLP_SpA + // + this.FLP_SpA.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.FLP_SpA.Controls.Add(this.Label_SPA); + this.FLP_SpA.Controls.Add(this.TB_SPAIV); + this.FLP_SpA.Controls.Add(this.TB_SPAEV); + this.FLP_SpA.Controls.Add(this.Stat_SPA); + this.FLP_SpA.Location = new System.Drawing.Point(0, 85); + this.FLP_SpA.Margin = new System.Windows.Forms.Padding(0); + this.FLP_SpA.Name = "FLP_SpA"; + this.FLP_SpA.Size = new System.Drawing.Size(172, 21); + this.FLP_SpA.TabIndex = 126; + // + // Label_SPA + // + this.Label_SPA.Location = new System.Drawing.Point(0, 0); + this.Label_SPA.Margin = new System.Windows.Forms.Padding(0); + this.Label_SPA.Name = "Label_SPA"; + this.Label_SPA.Size = new System.Drawing.Size(65, 21); + this.Label_SPA.TabIndex = 51; + this.Label_SPA.Text = "SpA:"; + this.Label_SPA.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // TB_SPAIV + // + this.TB_SPAIV.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_SPAIV.Location = new System.Drawing.Point(65, 0); + this.TB_SPAIV.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0); + this.TB_SPAIV.Mask = "00"; + this.TB_SPAIV.Name = "TB_SPAIV"; + this.TB_SPAIV.Size = new System.Drawing.Size(22, 20); + this.TB_SPAIV.TabIndex = 49; + this.TB_SPAIV.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_SPAIV.TextChanged += new System.EventHandler(this.UpdateStats); + // + // TB_SPAEV + // + this.TB_SPAEV.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_SPAEV.Location = new System.Drawing.Point(93, 0); + this.TB_SPAEV.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); + this.TB_SPAEV.Mask = "000"; + this.TB_SPAEV.Name = "TB_SPAEV"; + this.TB_SPAEV.Size = new System.Drawing.Size(28, 20); + this.TB_SPAEV.TabIndex = 50; + this.TB_SPAEV.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_SPAEV.TextChanged += new System.EventHandler(this.UpdateStats); + // + // Stat_SPA + // + this.Stat_SPA.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.Stat_SPA.Enabled = false; + this.Stat_SPA.Location = new System.Drawing.Point(127, 0); + this.Stat_SPA.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); + this.Stat_SPA.Mask = "00000"; + this.Stat_SPA.Name = "Stat_SPA"; + this.Stat_SPA.PromptChar = ' '; + this.Stat_SPA.Size = new System.Drawing.Size(37, 20); + this.Stat_SPA.TabIndex = 52; + this.Stat_SPA.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // FLP_SpD + // + this.FLP_SpD.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.FLP_SpD.Controls.Add(this.Label_SPD); + this.FLP_SpD.Controls.Add(this.TB_SPDIV); + this.FLP_SpD.Controls.Add(this.TB_SPDEV); + this.FLP_SpD.Controls.Add(this.Stat_SPD); + this.FLP_SpD.Location = new System.Drawing.Point(0, 106); + this.FLP_SpD.Margin = new System.Windows.Forms.Padding(0); + this.FLP_SpD.Name = "FLP_SpD"; + this.FLP_SpD.Size = new System.Drawing.Size(172, 21); + this.FLP_SpD.TabIndex = 127; + // + // Label_SPD + // + this.Label_SPD.Location = new System.Drawing.Point(0, 0); + this.Label_SPD.Margin = new System.Windows.Forms.Padding(0); + this.Label_SPD.Name = "Label_SPD"; + this.Label_SPD.Size = new System.Drawing.Size(65, 21); + this.Label_SPD.TabIndex = 23; + this.Label_SPD.Text = "SpD:"; + this.Label_SPD.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // TB_SPDIV + // + this.TB_SPDIV.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_SPDIV.Location = new System.Drawing.Point(65, 0); + this.TB_SPDIV.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0); + this.TB_SPDIV.Mask = "00"; + this.TB_SPDIV.Name = "TB_SPDIV"; + this.TB_SPDIV.Size = new System.Drawing.Size(22, 20); + this.TB_SPDIV.TabIndex = 5; + this.TB_SPDIV.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_SPDIV.TextChanged += new System.EventHandler(this.UpdateStats); + // + // TB_SPDEV + // + this.TB_SPDEV.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_SPDEV.Location = new System.Drawing.Point(93, 0); + this.TB_SPDEV.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); + this.TB_SPDEV.Mask = "000"; + this.TB_SPDEV.Name = "TB_SPDEV"; + this.TB_SPDEV.Size = new System.Drawing.Size(28, 20); + this.TB_SPDEV.TabIndex = 11; + this.TB_SPDEV.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_SPDEV.TextChanged += new System.EventHandler(this.UpdateStats); + // + // Stat_SPD + // + this.Stat_SPD.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.Stat_SPD.Enabled = false; + this.Stat_SPD.Location = new System.Drawing.Point(127, 0); + this.Stat_SPD.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); + this.Stat_SPD.Mask = "00000"; + this.Stat_SPD.Name = "Stat_SPD"; + this.Stat_SPD.PromptChar = ' '; + this.Stat_SPD.Size = new System.Drawing.Size(37, 20); + this.Stat_SPD.TabIndex = 49; + this.Stat_SPD.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // FLP_Spe + // + this.FLP_Spe.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.FLP_Spe.Controls.Add(this.Label_SPE); + this.FLP_Spe.Controls.Add(this.TB_SPEIV); + this.FLP_Spe.Controls.Add(this.TB_SPEEV); + this.FLP_Spe.Controls.Add(this.Stat_SPE); + this.FLP_Spe.Location = new System.Drawing.Point(0, 127); + this.FLP_Spe.Margin = new System.Windows.Forms.Padding(0); + this.FLP_Spe.Name = "FLP_Spe"; + this.FLP_Spe.Size = new System.Drawing.Size(172, 21); + this.FLP_Spe.TabIndex = 128; + // + // Label_SPE + // + this.Label_SPE.Location = new System.Drawing.Point(0, 0); + this.Label_SPE.Margin = new System.Windows.Forms.Padding(0); + this.Label_SPE.Name = "Label_SPE"; + this.Label_SPE.Size = new System.Drawing.Size(65, 21); + this.Label_SPE.TabIndex = 24; + this.Label_SPE.Text = "Spe:"; + this.Label_SPE.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // TB_SPEIV + // + this.TB_SPEIV.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_SPEIV.Location = new System.Drawing.Point(65, 0); + this.TB_SPEIV.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0); + this.TB_SPEIV.Mask = "00"; + this.TB_SPEIV.Name = "TB_SPEIV"; + this.TB_SPEIV.Size = new System.Drawing.Size(22, 20); + this.TB_SPEIV.TabIndex = 51; + this.TB_SPEIV.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_SPEIV.TextChanged += new System.EventHandler(this.UpdateStats); + // + // TB_SPEEV + // + this.TB_SPEEV.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_SPEEV.Location = new System.Drawing.Point(93, 0); + this.TB_SPEEV.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); + this.TB_SPEEV.Mask = "000"; + this.TB_SPEEV.Name = "TB_SPEEV"; + this.TB_SPEEV.Size = new System.Drawing.Size(28, 20); + this.TB_SPEEV.TabIndex = 52; + this.TB_SPEEV.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + this.TB_SPEEV.TextChanged += new System.EventHandler(this.UpdateStats); + // + // Stat_SPE + // + this.Stat_SPE.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.Stat_SPE.Enabled = false; + this.Stat_SPE.Location = new System.Drawing.Point(127, 0); + this.Stat_SPE.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); + this.Stat_SPE.Mask = "00000"; + this.Stat_SPE.Name = "Stat_SPE"; + this.Stat_SPE.PromptChar = ' '; + this.Stat_SPE.Size = new System.Drawing.Size(37, 20); + this.Stat_SPE.TabIndex = 53; + this.Stat_SPE.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // FLP_StatsTotal + // + this.FLP_StatsTotal.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.FLP_StatsTotal.Controls.Add(this.Label_Total); + this.FLP_StatsTotal.Controls.Add(this.TB_IVTotal); + this.FLP_StatsTotal.Controls.Add(this.TB_EVTotal); + this.FLP_StatsTotal.Location = new System.Drawing.Point(0, 148); + this.FLP_StatsTotal.Margin = new System.Windows.Forms.Padding(0); + this.FLP_StatsTotal.Name = "FLP_StatsTotal"; + this.FLP_StatsTotal.Size = new System.Drawing.Size(172, 21); + this.FLP_StatsTotal.TabIndex = 129; + // + // Label_Total + // + this.Label_Total.Location = new System.Drawing.Point(0, 0); + this.Label_Total.Margin = new System.Windows.Forms.Padding(0); + this.Label_Total.Name = "Label_Total"; + this.Label_Total.Size = new System.Drawing.Size(65, 21); + this.Label_Total.TabIndex = 25; + this.Label_Total.Text = "Total:"; + this.Label_Total.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // TB_IVTotal + // + this.TB_IVTotal.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_IVTotal.Enabled = false; + this.TB_IVTotal.Location = new System.Drawing.Point(65, 0); + this.TB_IVTotal.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0); + this.TB_IVTotal.MaxLength = 3; + this.TB_IVTotal.Name = "TB_IVTotal"; + this.TB_IVTotal.Size = new System.Drawing.Size(22, 20); + this.TB_IVTotal.TabIndex = 44; + this.TB_IVTotal.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // TB_EVTotal + // + this.TB_EVTotal.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.TB_EVTotal.Enabled = false; + this.TB_EVTotal.Location = new System.Drawing.Point(93, 0); + this.TB_EVTotal.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); + this.TB_EVTotal.MaxLength = 3; + this.TB_EVTotal.Name = "TB_EVTotal"; + this.TB_EVTotal.Size = new System.Drawing.Size(28, 20); + this.TB_EVTotal.TabIndex = 43; + this.TB_EVTotal.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // FLP_HPType + // + this.FLP_HPType.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.FLP_HPType.Controls.Add(this.Label_HiddenPowerPrefix); + this.FLP_HPType.Controls.Add(this.CB_HPType); + this.FLP_HPType.Location = new System.Drawing.Point(0, 169); + this.FLP_HPType.Margin = new System.Windows.Forms.Padding(0); + this.FLP_HPType.Name = "FLP_HPType"; + this.FLP_HPType.Size = new System.Drawing.Size(172, 21); + this.FLP_HPType.TabIndex = 130; + // + // Label_HiddenPowerPrefix + // + this.Label_HiddenPowerPrefix.Location = new System.Drawing.Point(0, 0); + this.Label_HiddenPowerPrefix.Margin = new System.Windows.Forms.Padding(0); + this.Label_HiddenPowerPrefix.Name = "Label_HiddenPowerPrefix"; + this.Label_HiddenPowerPrefix.Size = new System.Drawing.Size(102, 21); + this.Label_HiddenPowerPrefix.TabIndex = 29; + this.Label_HiddenPowerPrefix.Text = "Hidden Power:"; + this.Label_HiddenPowerPrefix.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_HPType + // + this.CB_HPType.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_HPType.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_HPType.DropDownWidth = 80; + this.CB_HPType.FormattingEnabled = true; + this.CB_HPType.Location = new System.Drawing.Point(102, 0); + this.CB_HPType.Margin = new System.Windows.Forms.Padding(0); + this.CB_HPType.Name = "CB_HPType"; + this.CB_HPType.Size = new System.Drawing.Size(70, 21); + this.CB_HPType.TabIndex = 44; + this.CB_HPType.SelectedIndexChanged += new System.EventHandler(this.UpdateHPType); + // + // Tab_Moves + // + this.Tab_Moves.Controls.Add(this.B_Clear); + this.Tab_Moves.Controls.Add(this.B_CurrentAttack); + this.Tab_Moves.Controls.Add(this.B_HighAttack); + this.Tab_Moves.Controls.Add(this.GB_Moves); + this.Tab_Moves.Location = new System.Drawing.Point(4, 22); + this.Tab_Moves.Name = "Tab_Moves"; + this.Tab_Moves.Padding = new System.Windows.Forms.Padding(3); + this.Tab_Moves.Size = new System.Drawing.Size(224, 199); + this.Tab_Moves.TabIndex = 1; + this.Tab_Moves.Text = "Moves"; + this.Tab_Moves.UseVisualStyleBackColor = true; + // + // B_Clear + // + this.B_Clear.Location = new System.Drawing.Point(75, 3); + this.B_Clear.Name = "B_Clear"; + this.B_Clear.Size = new System.Drawing.Size(75, 23); + this.B_Clear.TabIndex = 450; + this.B_Clear.Text = "Clear"; + this.B_Clear.UseVisualStyleBackColor = true; + this.B_Clear.Click += new System.EventHandler(this.B_Clear_Click); + // + // B_CurrentAttack + // + this.B_CurrentAttack.Location = new System.Drawing.Point(16, 26); + this.B_CurrentAttack.Name = "B_CurrentAttack"; + this.B_CurrentAttack.Size = new System.Drawing.Size(93, 40); + this.B_CurrentAttack.TabIndex = 449; + this.B_CurrentAttack.Text = "Current Level Levelup Moves"; + this.B_CurrentAttack.UseVisualStyleBackColor = true; + this.B_CurrentAttack.Click += new System.EventHandler(this.B_CurrentAttack_Click); + // + // B_HighAttack + // + this.B_HighAttack.Location = new System.Drawing.Point(115, 26); + this.B_HighAttack.Name = "B_HighAttack"; + this.B_HighAttack.Size = new System.Drawing.Size(93, 40); + this.B_HighAttack.TabIndex = 448; + this.B_HighAttack.Text = "High Attacking Levelup Moves"; + this.B_HighAttack.UseVisualStyleBackColor = true; + this.B_HighAttack.Click += new System.EventHandler(this.B_HighAttack_Click); + // + // GB_Moves + // + this.GB_Moves.Controls.Add(this.CB_Move1); + this.GB_Moves.Controls.Add(this.CB_Move4); + this.GB_Moves.Controls.Add(this.CB_Move2); + this.GB_Moves.Controls.Add(this.CB_Move3); + this.GB_Moves.Location = new System.Drawing.Point(22, 72); + this.GB_Moves.Name = "GB_Moves"; + this.GB_Moves.Size = new System.Drawing.Size(181, 114); + this.GB_Moves.TabIndex = 0; + this.GB_Moves.TabStop = false; + this.GB_Moves.Text = "Moves"; + // + // CB_Move1 + // + this.CB_Move1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_Move1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Move1.FormattingEnabled = true; + this.CB_Move1.Location = new System.Drawing.Point(40, 16); + this.CB_Move1.Margin = new System.Windows.Forms.Padding(0); + this.CB_Move1.Name = "CB_Move1"; + this.CB_Move1.Size = new System.Drawing.Size(121, 21); + this.CB_Move1.TabIndex = 1; + // + // CB_Move2 + // + this.CB_Move2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_Move2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Move2.FormattingEnabled = true; + this.CB_Move2.Location = new System.Drawing.Point(40, 38); + this.CB_Move2.Margin = new System.Windows.Forms.Padding(0); + this.CB_Move2.Name = "CB_Move2"; + this.CB_Move2.Size = new System.Drawing.Size(121, 21); + this.CB_Move2.TabIndex = 2; + // + // CB_Move3 + // + this.CB_Move3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_Move3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Move3.FormattingEnabled = true; + this.CB_Move3.Location = new System.Drawing.Point(40, 60); + this.CB_Move3.Margin = new System.Windows.Forms.Padding(0); + this.CB_Move3.Name = "CB_Move3"; + this.CB_Move3.Size = new System.Drawing.Size(121, 21); + this.CB_Move3.TabIndex = 3; + // + // CB_Move4 + // + this.CB_Move4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_Move4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Move4.FormattingEnabled = true; + this.CB_Move4.Location = new System.Drawing.Point(40, 82); + this.CB_Move4.Margin = new System.Windows.Forms.Padding(0); + this.CB_Move4.Name = "CB_Move4"; + this.CB_Move4.Size = new System.Drawing.Size(121, 21); + this.CB_Move4.TabIndex = 4; + // + // L_TrainerName + // + this.L_TrainerName.AutoSize = true; + this.L_TrainerName.Location = new System.Drawing.Point(4, 11); + this.L_TrainerName.Name = "L_TrainerName"; + this.L_TrainerName.Size = new System.Drawing.Size(74, 13); + this.L_TrainerName.TabIndex = 450; + this.L_TrainerName.Text = "Trainer Name:"; + // + // TB_TrainerName + // + this.TB_TrainerName.Location = new System.Drawing.Point(79, 8); + this.TB_TrainerName.MaxLength = 50; + this.TB_TrainerName.Name = "TB_TrainerName"; + this.TB_TrainerName.Size = new System.Drawing.Size(172, 20); + this.TB_TrainerName.TabIndex = 35; + this.TB_TrainerName.TextChanged += new System.EventHandler(this.UpdateTrainerName); + // + // NUD_NumPoke + // + this.NUD_NumPoke.Location = new System.Drawing.Point(79, 73); + this.NUD_NumPoke.Maximum = new decimal(new int[] { + 6, + 0, + 0, + 0}); + this.NUD_NumPoke.Name = "NUD_NumPoke"; + this.NUD_NumPoke.Size = new System.Drawing.Size(47, 20); + this.NUD_NumPoke.TabIndex = 0; + this.NUD_NumPoke.Visible = false; + this.NUD_NumPoke.ValueChanged += new System.EventHandler(this.UpdateNumPokemon); + // + // TC_trdata + // + this.TC_trdata.Controls.Add(this.Tab_Trainer); + this.TC_trdata.Controls.Add(this.Tab_Rand); + this.TC_trdata.Location = new System.Drawing.Point(250, 13); + this.TC_trdata.Name = "TC_trdata"; + this.TC_trdata.SelectedIndex = 0; + this.TC_trdata.Size = new System.Drawing.Size(371, 225); + this.TC_trdata.TabIndex = 450; + // + // Tab_Trainer + // + this.Tab_Trainer.Controls.Add(this.GB_AIBits); + this.Tab_Trainer.Controls.Add(this.L_Mode); + this.Tab_Trainer.Controls.Add(this.CB_Mode); + this.Tab_Trainer.Controls.Add(this.CHK_Flag); + this.Tab_Trainer.Controls.Add(this.TB_TrainerName); + this.Tab_Trainer.Controls.Add(this.L_Trainer_Class); + this.Tab_Trainer.Controls.Add(this.CB_Item_1); + this.Tab_Trainer.Controls.Add(this.CB_Trainer_Class); + this.Tab_Trainer.Controls.Add(this.L_Money); + this.Tab_Trainer.Controls.Add(this.L_TrainerName); + this.Tab_Trainer.Controls.Add(this.CB_Money); + this.Tab_Trainer.Controls.Add(this.L_Item_2); + this.Tab_Trainer.Controls.Add(this.L_Item_4); + this.Tab_Trainer.Controls.Add(this.NUD_NumPoke); + this.Tab_Trainer.Controls.Add(this.L_numPokemon); + this.Tab_Trainer.Controls.Add(this.L_Item_1); + this.Tab_Trainer.Controls.Add(this.CB_Item_2); + this.Tab_Trainer.Controls.Add(this.CB_Item_3); + this.Tab_Trainer.Controls.Add(this.CB_Item_4); + this.Tab_Trainer.Controls.Add(this.L_Item_3); + this.Tab_Trainer.Location = new System.Drawing.Point(4, 22); + this.Tab_Trainer.Name = "Tab_Trainer"; + this.Tab_Trainer.Padding = new System.Windows.Forms.Padding(3); + this.Tab_Trainer.Size = new System.Drawing.Size(363, 199); + this.Tab_Trainer.TabIndex = 0; + this.Tab_Trainer.Text = "Trainer"; + this.Tab_Trainer.UseVisualStyleBackColor = true; + // + // L_Mode + // + this.L_Mode.AutoSize = true; + this.L_Mode.Location = new System.Drawing.Point(190, 174); + this.L_Mode.Name = "L_Mode"; + this.L_Mode.Size = new System.Drawing.Size(67, 13); + this.L_Mode.TabIndex = 453; + this.L_Mode.Text = "Battle Mode:"; + // + // CB_Mode + // + this.CB_Mode.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Mode.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Mode.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_Mode.FormattingEnabled = true; + this.CB_Mode.Items.AddRange(new object[] { + "Single", + "Double", + "Multi", + "3", + "4"}); + this.CB_Mode.Location = new System.Drawing.Point(261, 171); + this.CB_Mode.Name = "CB_Mode"; + this.CB_Mode.Size = new System.Drawing.Size(94, 21); + this.CB_Mode.TabIndex = 452; + // + // CHK_Flag + // + this.CHK_Flag.AutoSize = true; + this.CHK_Flag.Location = new System.Drawing.Point(152, 54); + this.CHK_Flag.Name = "CHK_Flag"; + this.CHK_Flag.Size = new System.Drawing.Size(46, 17); + this.CHK_Flag.TabIndex = 451; + this.CHK_Flag.Text = "Flag"; + this.CHK_Flag.UseVisualStyleBackColor = true; + // + // Tab_Rand + // + this.Tab_Rand.Controls.Add(this.TC_rand); + this.Tab_Rand.Controls.Add(this.B_Randomize); + this.Tab_Rand.Controls.Add(this.B_Dump); + this.Tab_Rand.Location = new System.Drawing.Point(4, 22); + this.Tab_Rand.Name = "Tab_Rand"; + this.Tab_Rand.Size = new System.Drawing.Size(363, 199); + this.Tab_Rand.TabIndex = 2; + this.Tab_Rand.Text = "Randomizer Options"; + this.Tab_Rand.UseVisualStyleBackColor = true; + // + // TC_rand + // + this.TC_rand.Controls.Add(this.Tab_PKM1); + this.TC_rand.Controls.Add(this.Tab_PKM2); + this.TC_rand.Controls.Add(this.Tab_Trainer1); + this.TC_rand.Location = new System.Drawing.Point(3, 33); + this.TC_rand.Name = "TC_rand"; + this.TC_rand.SelectedIndex = 0; + this.TC_rand.Size = new System.Drawing.Size(357, 163); + this.TC_rand.TabIndex = 448; + // + // Tab_PKM1 + // + this.Tab_PKM1.Controls.Add(this.L_ShinyPCT); + this.Tab_PKM1.Controls.Add(this.NUD_Shiny); + this.Tab_PKM1.Controls.Add(this.CHK_RandomShiny); + this.Tab_PKM1.Controls.Add(this.CHK_E); + this.Tab_PKM1.Controls.Add(this.CHK_L); + this.Tab_PKM1.Controls.Add(this.CHK_G7); + this.Tab_PKM1.Controls.Add(this.CHK_G6); + this.Tab_PKM1.Controls.Add(this.CHK_G5); + this.Tab_PKM1.Controls.Add(this.CHK_G4); + this.Tab_PKM1.Controls.Add(this.CHK_G3); + this.Tab_PKM1.Controls.Add(this.NUD_LevelBoost); + this.Tab_PKM1.Controls.Add(this.CHK_G2); + this.Tab_PKM1.Controls.Add(this.CHK_Level); + this.Tab_PKM1.Controls.Add(this.CHK_G1); + this.Tab_PKM1.Controls.Add(this.CHK_BST); + this.Tab_PKM1.Controls.Add(this.CHK_RandomPKM); + this.Tab_PKM1.Location = new System.Drawing.Point(4, 22); + this.Tab_PKM1.Name = "Tab_PKM1"; + this.Tab_PKM1.Padding = new System.Windows.Forms.Padding(3); + this.Tab_PKM1.Size = new System.Drawing.Size(349, 137); + this.Tab_PKM1.TabIndex = 0; + this.Tab_PKM1.Text = "Main"; + this.Tab_PKM1.UseVisualStyleBackColor = true; + // + // L_ShinyPCT + // + this.L_ShinyPCT.AutoSize = true; + this.L_ShinyPCT.Location = new System.Drawing.Point(330, 93); + this.L_ShinyPCT.Name = "L_ShinyPCT"; + this.L_ShinyPCT.Size = new System.Drawing.Size(15, 13); + this.L_ShinyPCT.TabIndex = 305; + this.L_ShinyPCT.Text = "%"; + // + // NUD_Shiny + // + this.NUD_Shiny.Location = new System.Drawing.Point(286, 90); + this.NUD_Shiny.Name = "NUD_Shiny"; + this.NUD_Shiny.Size = new System.Drawing.Size(43, 20); + this.NUD_Shiny.TabIndex = 304; + this.NUD_Shiny.Value = new decimal(new int[] { + 3, + 0, + 0, + 0}); + // + // CHK_RandomShiny + // + this.CHK_RandomShiny.AutoSize = true; + this.CHK_RandomShiny.Checked = true; + this.CHK_RandomShiny.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_RandomShiny.Location = new System.Drawing.Point(154, 92); + this.CHK_RandomShiny.Name = "CHK_RandomShiny"; + this.CHK_RandomShiny.Size = new System.Drawing.Size(103, 17); + this.CHK_RandomShiny.TabIndex = 303; + this.CHK_RandomShiny.Text = "Random Shinies"; + this.CHK_RandomShiny.UseVisualStyleBackColor = true; + this.CHK_RandomShiny.CheckedChanged += new System.EventHandler(this.CHK_RandomShiny_CheckedChanged); + // + // CHK_E + // + this.CHK_E.AutoSize = true; + this.CHK_E.Checked = true; + this.CHK_E.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_E.Location = new System.Drawing.Point(6, 117); + this.CHK_E.Name = "CHK_E"; + this.CHK_E.Size = new System.Drawing.Size(98, 17); + this.CHK_E.TabIndex = 296; + this.CHK_E.Text = "Event Legends"; + this.CHK_E.UseVisualStyleBackColor = true; + // + // CHK_L + // + this.CHK_L.AutoSize = true; + this.CHK_L.Checked = true; + this.CHK_L.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_L.Location = new System.Drawing.Point(6, 103); + this.CHK_L.Name = "CHK_L"; + this.CHK_L.Size = new System.Drawing.Size(98, 17); + this.CHK_L.TabIndex = 295; + this.CHK_L.Text = "Game Legends"; + this.CHK_L.UseVisualStyleBackColor = true; + // + // CHK_G7 + // + this.CHK_G7.AutoSize = true; + this.CHK_G7.Checked = true; + this.CHK_G7.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G7.Location = new System.Drawing.Point(6, 89); + this.CHK_G7.Name = "CHK_G7"; + this.CHK_G7.Size = new System.Drawing.Size(55, 17); + this.CHK_G7.TabIndex = 298; + this.CHK_G7.Text = "Gen 7"; + this.CHK_G7.UseVisualStyleBackColor = true; + // + // CHK_G6 + // + this.CHK_G6.AutoSize = true; + this.CHK_G6.Checked = true; + this.CHK_G6.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G6.Location = new System.Drawing.Point(6, 75); + this.CHK_G6.Name = "CHK_G6"; + this.CHK_G6.Size = new System.Drawing.Size(55, 17); + this.CHK_G6.TabIndex = 294; + this.CHK_G6.Text = "Gen 6"; + this.CHK_G6.UseVisualStyleBackColor = true; + // + // CHK_G5 + // + this.CHK_G5.AutoSize = true; + this.CHK_G5.Checked = true; + this.CHK_G5.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G5.Location = new System.Drawing.Point(6, 61); + this.CHK_G5.Name = "CHK_G5"; + this.CHK_G5.Size = new System.Drawing.Size(55, 17); + this.CHK_G5.TabIndex = 293; + this.CHK_G5.Text = "Gen 5"; + this.CHK_G5.UseVisualStyleBackColor = true; + // + // CHK_G4 + // + this.CHK_G4.AutoSize = true; + this.CHK_G4.Checked = true; + this.CHK_G4.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G4.Location = new System.Drawing.Point(6, 47); + this.CHK_G4.Name = "CHK_G4"; + this.CHK_G4.Size = new System.Drawing.Size(55, 17); + this.CHK_G4.TabIndex = 292; + this.CHK_G4.Text = "Gen 4"; + this.CHK_G4.UseVisualStyleBackColor = true; + // + // CHK_G3 + // + this.CHK_G3.AutoSize = true; + this.CHK_G3.Checked = true; + this.CHK_G3.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G3.Location = new System.Drawing.Point(6, 33); + this.CHK_G3.Name = "CHK_G3"; + this.CHK_G3.Size = new System.Drawing.Size(55, 17); + this.CHK_G3.TabIndex = 291; + this.CHK_G3.Text = "Gen 3"; + this.CHK_G3.UseVisualStyleBackColor = true; + // + // NUD_LevelBoost + // + this.NUD_LevelBoost.DecimalPlaces = 2; + this.NUD_LevelBoost.Enabled = false; + this.NUD_LevelBoost.Increment = new decimal(new int[] { + 5, + 0, + 0, + 131072}); + this.NUD_LevelBoost.Location = new System.Drawing.Point(286, 111); + this.NUD_LevelBoost.Maximum = new decimal(new int[] { + 3, + 0, + 0, + 0}); + this.NUD_LevelBoost.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 65536}); + this.NUD_LevelBoost.Name = "NUD_LevelBoost"; + this.NUD_LevelBoost.Size = new System.Drawing.Size(43, 20); + this.NUD_LevelBoost.TabIndex = 301; + this.NUD_LevelBoost.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // CHK_G2 + // + this.CHK_G2.AutoSize = true; + this.CHK_G2.Checked = true; + this.CHK_G2.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G2.Location = new System.Drawing.Point(6, 19); + this.CHK_G2.Name = "CHK_G2"; + this.CHK_G2.Size = new System.Drawing.Size(55, 17); + this.CHK_G2.TabIndex = 290; + this.CHK_G2.Text = "Gen 2"; + this.CHK_G2.UseVisualStyleBackColor = true; + // + // CHK_Level + // + this.CHK_Level.AutoSize = true; + this.CHK_Level.Location = new System.Drawing.Point(154, 112); + this.CHK_Level.Name = "CHK_Level"; + this.CHK_Level.Size = new System.Drawing.Size(130, 17); + this.CHK_Level.TabIndex = 300; + this.CHK_Level.Text = "Multiply PKM Level by"; + this.CHK_Level.UseVisualStyleBackColor = true; + this.CHK_Level.CheckedChanged += new System.EventHandler(this.CHK_Level_CheckedChanged); + // + // CHK_G1 + // + this.CHK_G1.AutoSize = true; + this.CHK_G1.Checked = true; + this.CHK_G1.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G1.Location = new System.Drawing.Point(6, 5); + this.CHK_G1.Name = "CHK_G1"; + this.CHK_G1.Size = new System.Drawing.Size(55, 17); + this.CHK_G1.TabIndex = 289; + this.CHK_G1.Text = "Gen 1"; + this.CHK_G1.UseVisualStyleBackColor = true; + // + // CHK_BST + // + this.CHK_BST.AutoSize = true; + this.CHK_BST.Location = new System.Drawing.Point(154, 23); + this.CHK_BST.Name = "CHK_BST"; + this.CHK_BST.Size = new System.Drawing.Size(117, 17); + this.CHK_BST.TabIndex = 297; + this.CHK_BST.Text = "Randomize by BST"; + this.CHK_BST.UseVisualStyleBackColor = true; + // + // CHK_RandomPKM + // + this.CHK_RandomPKM.AutoSize = true; + this.CHK_RandomPKM.Checked = true; + this.CHK_RandomPKM.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_RandomPKM.Location = new System.Drawing.Point(154, 5); + this.CHK_RandomPKM.Name = "CHK_RandomPKM"; + this.CHK_RandomPKM.Size = new System.Drawing.Size(114, 17); + this.CHK_RandomPKM.TabIndex = 299; + this.CHK_RandomPKM.Text = "Random Pokémon"; + this.CHK_RandomPKM.UseVisualStyleBackColor = true; + this.CHK_RandomPKM.CheckedChanged += new System.EventHandler(this.CHK_RandomPKM_CheckedChanged); + // + // Tab_PKM2 + // + this.Tab_PKM2.Controls.Add(this.CHK_ForceHighPower); + this.Tab_PKM2.Controls.Add(this.NUD_ForceHighPower); + this.Tab_PKM2.Controls.Add(this.CHK_NoFixedDamage); + this.Tab_PKM2.Controls.Add(this.CHK_MaxAI); + this.Tab_PKM2.Controls.Add(this.L_Moves); + this.Tab_PKM2.Controls.Add(this.CB_Moves); + this.Tab_PKM2.Controls.Add(this.CHK_MaxDiffPKM); + this.Tab_PKM2.Controls.Add(this.NUD_Damage); + this.Tab_PKM2.Controls.Add(this.CHK_RandomAbilities); + this.Tab_PKM2.Controls.Add(this.NUD_STAB); + this.Tab_PKM2.Controls.Add(this.CHK_Damage); + this.Tab_PKM2.Controls.Add(this.CHK_RandomItems); + this.Tab_PKM2.Controls.Add(this.CHK_STAB); + this.Tab_PKM2.Location = new System.Drawing.Point(4, 22); + this.Tab_PKM2.Name = "Tab_PKM2"; + this.Tab_PKM2.Padding = new System.Windows.Forms.Padding(3); + this.Tab_PKM2.Size = new System.Drawing.Size(349, 137); + this.Tab_PKM2.TabIndex = 1; + this.Tab_PKM2.Text = "Stats/Moves"; + this.Tab_PKM2.UseVisualStyleBackColor = true; + // + // CHK_ForceHighPower + // + this.CHK_ForceHighPower.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.CHK_ForceHighPower.AutoSize = true; + this.CHK_ForceHighPower.Location = new System.Drawing.Point(6, 26); + this.CHK_ForceHighPower.Name = "CHK_ForceHighPower"; + this.CHK_ForceHighPower.Size = new System.Drawing.Size(203, 17); + this.CHK_ForceHighPower.TabIndex = 342; + this.CHK_ForceHighPower.Text = "Force High-Powered Attacks at Level"; + this.CHK_ForceHighPower.UseVisualStyleBackColor = true; + // + // NUD_ForceHighPower + // + this.NUD_ForceHighPower.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.NUD_ForceHighPower.Location = new System.Drawing.Point(211, 24); + this.NUD_ForceHighPower.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.NUD_ForceHighPower.Name = "NUD_ForceHighPower"; + this.NUD_ForceHighPower.Size = new System.Drawing.Size(40, 20); + this.NUD_ForceHighPower.TabIndex = 341; + this.NUD_ForceHighPower.Value = new decimal(new int[] { + 50, + 0, + 0, + 0}); + // + // CHK_NoFixedDamage + // + this.CHK_NoFixedDamage.AutoSize = true; + this.CHK_NoFixedDamage.Checked = true; + this.CHK_NoFixedDamage.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_NoFixedDamage.Location = new System.Drawing.Point(6, 86); + this.CHK_NoFixedDamage.Name = "CHK_NoFixedDamage"; + this.CHK_NoFixedDamage.Size = new System.Drawing.Size(281, 17); + this.CHK_NoFixedDamage.TabIndex = 340; + this.CHK_NoFixedDamage.Text = "No Fixed Damage Moves (Dragon Rage/Sonic Boom)"; + this.CHK_NoFixedDamage.UseVisualStyleBackColor = true; + // + // CHK_MaxAI + // + this.CHK_MaxAI.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.CHK_MaxAI.AutoSize = true; + this.CHK_MaxAI.Checked = true; + this.CHK_MaxAI.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_MaxAI.Location = new System.Drawing.Point(225, 118); + this.CHK_MaxAI.Name = "CHK_MaxAI"; + this.CHK_MaxAI.Size = new System.Drawing.Size(95, 17); + this.CHK_MaxAI.TabIndex = 339; + this.CHK_MaxAI.Text = "Max Trainer AI"; + this.CHK_MaxAI.UseVisualStyleBackColor = true; + // + // L_Moves + // + this.L_Moves.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.L_Moves.AutoSize = true; + this.L_Moves.Location = new System.Drawing.Point(6, 7); + this.L_Moves.Name = "L_Moves"; + this.L_Moves.Size = new System.Drawing.Size(42, 13); + this.L_Moves.TabIndex = 338; + this.L_Moves.Text = "Moves:"; + // + // CB_Moves + // + this.CB_Moves.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.CB_Moves.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_Moves.FormattingEnabled = true; + this.CB_Moves.Items.AddRange(new object[] { + "Don\'t Modify", + "Randomize All", + "Use Levelup Only", + "Metronome Mode"}); + this.CB_Moves.Location = new System.Drawing.Point(52, 4); + this.CB_Moves.Name = "CB_Moves"; + this.CB_Moves.Size = new System.Drawing.Size(135, 21); + this.CB_Moves.TabIndex = 337; + this.CB_Moves.SelectedIndexChanged += new System.EventHandler(this.CB_Moves_SelectedIndexChanged); + // + // CHK_MaxDiffPKM + // + this.CHK_MaxDiffPKM.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.CHK_MaxDiffPKM.AutoSize = true; + this.CHK_MaxDiffPKM.Checked = true; + this.CHK_MaxDiffPKM.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_MaxDiffPKM.Location = new System.Drawing.Point(225, 104); + this.CHK_MaxDiffPKM.Name = "CHK_MaxDiffPKM"; + this.CHK_MaxDiffPKM.Size = new System.Drawing.Size(64, 17); + this.CHK_MaxDiffPKM.TabIndex = 332; + this.CHK_MaxDiffPKM.Text = "Max IVs"; + this.CHK_MaxDiffPKM.UseVisualStyleBackColor = true; + // + // NUD_Damage + // + this.NUD_Damage.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.NUD_Damage.Location = new System.Drawing.Point(211, 45); + this.NUD_Damage.Maximum = new decimal(new int[] { + 4, + 0, + 0, + 0}); + this.NUD_Damage.Name = "NUD_Damage"; + this.NUD_Damage.Size = new System.Drawing.Size(35, 20); + this.NUD_Damage.TabIndex = 333; + this.NUD_Damage.Value = new decimal(new int[] { + 2, + 0, + 0, + 0}); + // + // CHK_RandomAbilities + // + this.CHK_RandomAbilities.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.CHK_RandomAbilities.AutoSize = true; + this.CHK_RandomAbilities.Checked = true; + this.CHK_RandomAbilities.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_RandomAbilities.Location = new System.Drawing.Point(6, 118); + this.CHK_RandomAbilities.Name = "CHK_RandomAbilities"; + this.CHK_RandomAbilities.Size = new System.Drawing.Size(183, 17); + this.CHK_RandomAbilities.TabIndex = 331; + this.CHK_RandomAbilities.Text = "Random Abilities (1, 2, or Hidden)"; + this.CHK_RandomAbilities.UseVisualStyleBackColor = true; + // + // NUD_STAB + // + this.NUD_STAB.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.NUD_STAB.Location = new System.Drawing.Point(211, 66); + this.NUD_STAB.Maximum = new decimal(new int[] { + 4, + 0, + 0, + 0}); + this.NUD_STAB.Name = "NUD_STAB"; + this.NUD_STAB.Size = new System.Drawing.Size(35, 20); + this.NUD_STAB.TabIndex = 336; + this.NUD_STAB.Value = new decimal(new int[] { + 2, + 0, + 0, + 0}); + // + // CHK_Damage + // + this.CHK_Damage.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.CHK_Damage.AutoSize = true; + this.CHK_Damage.Checked = true; + this.CHK_Damage.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_Damage.Location = new System.Drawing.Point(6, 46); + this.CHK_Damage.Name = "CHK_Damage"; + this.CHK_Damage.Size = new System.Drawing.Size(192, 17); + this.CHK_Damage.TabIndex = 334; + this.CHK_Damage.Text = "Ensure at least # Damaging Moves"; + this.CHK_Damage.UseVisualStyleBackColor = true; + this.CHK_Damage.CheckedChanged += new System.EventHandler(this.CHK_Damage_CheckedChanged); + // + // CHK_RandomItems + // + this.CHK_RandomItems.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.CHK_RandomItems.AutoSize = true; + this.CHK_RandomItems.Checked = true; + this.CHK_RandomItems.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_RandomItems.Location = new System.Drawing.Point(6, 104); + this.CHK_RandomItems.Name = "CHK_RandomItems"; + this.CHK_RandomItems.Size = new System.Drawing.Size(119, 17); + this.CHK_RandomItems.TabIndex = 330; + this.CHK_RandomItems.Text = "Random Held Items"; + this.CHK_RandomItems.UseVisualStyleBackColor = true; + // + // CHK_STAB + // + this.CHK_STAB.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.CHK_STAB.AutoSize = true; + this.CHK_STAB.Checked = true; + this.CHK_STAB.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_STAB.Location = new System.Drawing.Point(6, 66); + this.CHK_STAB.Name = "CHK_STAB"; + this.CHK_STAB.Size = new System.Drawing.Size(172, 17); + this.CHK_STAB.TabIndex = 335; + this.CHK_STAB.Text = "Ensure at least # STAB Moves"; + this.CHK_STAB.UseVisualStyleBackColor = true; + this.CHK_STAB.CheckedChanged += new System.EventHandler(this.CHK_STAB_CheckedChanged); + // + // Tab_Trainer1 + // + this.Tab_Trainer1.Controls.Add(this.CHK_ReplaceMega); + this.Tab_Trainer1.Controls.Add(this.CHK_6PKM); + this.Tab_Trainer1.Controls.Add(this.NUD_ForceFullyEvolved); + this.Tab_Trainer1.Controls.Add(this.L_MinPKM); + this.Tab_Trainer1.Controls.Add(this.L_MaxPKM); + this.Tab_Trainer1.Controls.Add(this.NUD_RMin); + this.Tab_Trainer1.Controls.Add(this.NUD_RMax); + this.Tab_Trainer1.Controls.Add(this.CHK_RandomMegaForm); + this.Tab_Trainer1.Controls.Add(this.CHK_TypeTheme); + this.Tab_Trainer1.Controls.Add(this.CHK_IgnoreSpecialClass); + this.Tab_Trainer1.Controls.Add(this.CHK_RandomClass); + this.Tab_Trainer1.Controls.Add(this.CHK_ForceFullyEvolved); + this.Tab_Trainer1.Location = new System.Drawing.Point(4, 22); + this.Tab_Trainer1.Name = "Tab_Trainer1"; + this.Tab_Trainer1.Size = new System.Drawing.Size(349, 137); + this.Tab_Trainer1.TabIndex = 2; + this.Tab_Trainer1.Text = "Trainer"; + this.Tab_Trainer1.UseVisualStyleBackColor = true; + // + // CHK_ReplaceMega + // + this.CHK_ReplaceMega.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.CHK_ReplaceMega.AutoSize = true; + this.CHK_ReplaceMega.Checked = true; + this.CHK_ReplaceMega.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_ReplaceMega.Location = new System.Drawing.Point(6, 118); + this.CHK_ReplaceMega.Name = "CHK_ReplaceMega"; + this.CHK_ReplaceMega.Size = new System.Drawing.Size(196, 17); + this.CHK_ReplaceMega.TabIndex = 343; + this.CHK_ReplaceMega.Text = "Ensure Post-Game Mega Evolutions"; + this.CHK_ReplaceMega.UseVisualStyleBackColor = true; + // + // CHK_6PKM + // + this.CHK_6PKM.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.CHK_6PKM.AutoSize = true; + this.CHK_6PKM.Location = new System.Drawing.Point(6, 104); + this.CHK_6PKM.Name = "CHK_6PKM"; + this.CHK_6PKM.Size = new System.Drawing.Size(183, 17); + this.CHK_6PKM.TabIndex = 341; + this.CHK_6PKM.Text = "6 Pokémon for Important Trainers"; + this.CHK_6PKM.UseVisualStyleBackColor = true; + // + // NUD_ForceFullyEvolved + // + this.NUD_ForceFullyEvolved.Location = new System.Drawing.Point(165, 74); + this.NUD_ForceFullyEvolved.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.NUD_ForceFullyEvolved.Name = "NUD_ForceFullyEvolved"; + this.NUD_ForceFullyEvolved.Size = new System.Drawing.Size(40, 20); + this.NUD_ForceFullyEvolved.TabIndex = 340; + this.NUD_ForceFullyEvolved.Value = new decimal(new int[] { + 50, + 0, + 0, + 0}); + // + // L_MinPKM + // + this.L_MinPKM.Location = new System.Drawing.Point(235, 3); + this.L_MinPKM.Name = "L_MinPKM"; + this.L_MinPKM.Size = new System.Drawing.Size(60, 20); + this.L_MinPKM.TabIndex = 338; + this.L_MinPKM.Text = "Min PKM:"; + this.L_MinPKM.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_MaxPKM + // + this.L_MaxPKM.Location = new System.Drawing.Point(235, 24); + this.L_MaxPKM.Name = "L_MaxPKM"; + this.L_MaxPKM.Size = new System.Drawing.Size(60, 20); + this.L_MaxPKM.TabIndex = 337; + this.L_MaxPKM.Text = "Max PKM:"; + this.L_MaxPKM.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_RMin + // + this.NUD_RMin.Location = new System.Drawing.Point(301, 5); + this.NUD_RMin.Maximum = new decimal(new int[] { + 6, + 0, + 0, + 0}); + this.NUD_RMin.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.NUD_RMin.Name = "NUD_RMin"; + this.NUD_RMin.Size = new System.Drawing.Size(40, 20); + this.NUD_RMin.TabIndex = 336; + this.NUD_RMin.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // NUD_RMax + // + this.NUD_RMax.Location = new System.Drawing.Point(301, 26); + this.NUD_RMax.Maximum = new decimal(new int[] { + 6, + 0, + 0, + 0}); + this.NUD_RMax.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.NUD_RMax.Name = "NUD_RMax"; + this.NUD_RMax.Size = new System.Drawing.Size(40, 20); + this.NUD_RMax.TabIndex = 335; + this.NUD_RMax.Value = new decimal(new int[] { + 6, + 0, + 0, + 0}); + // + // CHK_RandomMegaForm + // + this.CHK_RandomMegaForm.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.CHK_RandomMegaForm.AutoSize = true; + this.CHK_RandomMegaForm.Location = new System.Drawing.Point(6, 90); + this.CHK_RandomMegaForm.Name = "CHK_RandomMegaForm"; + this.CHK_RandomMegaForm.Size = new System.Drawing.Size(127, 17); + this.CHK_RandomMegaForm.TabIndex = 333; + this.CHK_RandomMegaForm.Text = "Random Mega Forms"; + this.CHK_RandomMegaForm.UseVisualStyleBackColor = true; + // + // CHK_TypeTheme + // + this.CHK_TypeTheme.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.CHK_TypeTheme.AutoSize = true; + this.CHK_TypeTheme.Location = new System.Drawing.Point(6, 33); + this.CHK_TypeTheme.Name = "CHK_TypeTheme"; + this.CHK_TypeTheme.Size = new System.Drawing.Size(127, 17); + this.CHK_TypeTheme.TabIndex = 329; + this.CHK_TypeTheme.Text = "Type Theme Trainers"; + this.CHK_TypeTheme.UseVisualStyleBackColor = true; + // + // CHK_IgnoreSpecialClass + // + this.CHK_IgnoreSpecialClass.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.CHK_IgnoreSpecialClass.AutoSize = true; + this.CHK_IgnoreSpecialClass.Checked = true; + this.CHK_IgnoreSpecialClass.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_IgnoreSpecialClass.Location = new System.Drawing.Point(6, 19); + this.CHK_IgnoreSpecialClass.Name = "CHK_IgnoreSpecialClass"; + this.CHK_IgnoreSpecialClass.Size = new System.Drawing.Size(133, 17); + this.CHK_IgnoreSpecialClass.TabIndex = 327; + this.CHK_IgnoreSpecialClass.Text = "Ignore Special Classes"; + this.CHK_IgnoreSpecialClass.UseVisualStyleBackColor = true; + // + // CHK_RandomClass + // + this.CHK_RandomClass.Anchor = System.Windows.Forms.AnchorStyles.Bottom; + this.CHK_RandomClass.AutoSize = true; + this.CHK_RandomClass.Checked = true; + this.CHK_RandomClass.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_RandomClass.Location = new System.Drawing.Point(6, 5); + this.CHK_RandomClass.Name = "CHK_RandomClass"; + this.CHK_RandomClass.Size = new System.Drawing.Size(141, 17); + this.CHK_RandomClass.TabIndex = 326; + this.CHK_RandomClass.Text = "Random Trainer Classes"; + this.CHK_RandomClass.UseVisualStyleBackColor = true; + this.CHK_RandomClass.CheckedChanged += new System.EventHandler(this.CHK_RandomClass_CheckedChanged); + // + // CHK_ForceFullyEvolved + // + this.CHK_ForceFullyEvolved.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.CHK_ForceFullyEvolved.AutoSize = true; + this.CHK_ForceFullyEvolved.Location = new System.Drawing.Point(6, 76); + this.CHK_ForceFullyEvolved.Name = "CHK_ForceFullyEvolved"; + this.CHK_ForceFullyEvolved.Size = new System.Drawing.Size(160, 17); + this.CHK_ForceFullyEvolved.TabIndex = 339; + this.CHK_ForceFullyEvolved.Text = "Force Fully Evolved at Level"; + this.CHK_ForceFullyEvolved.UseVisualStyleBackColor = true; + // + // GB_AIBits + // + this.GB_AIBits.Controls.Add(this.CHK_AI7); + this.GB_AIBits.Controls.Add(this.CHK_AI6); + this.GB_AIBits.Controls.Add(this.CHK_AI5); + this.GB_AIBits.Controls.Add(this.CHK_AI4); + this.GB_AIBits.Controls.Add(this.CHK_AI3); + this.GB_AIBits.Controls.Add(this.CHK_AI2); + this.GB_AIBits.Controls.Add(this.CHK_AI1); + this.GB_AIBits.Controls.Add(this.CHK_AI0); + this.GB_AIBits.Location = new System.Drawing.Point(257, 2); + this.GB_AIBits.Name = "GB_AIBits"; + this.GB_AIBits.Size = new System.Drawing.Size(100, 161); + this.GB_AIBits.TabIndex = 464; + this.GB_AIBits.TabStop = false; + this.GB_AIBits.Text = "AI Bits"; + // + // CHK_AI6 + // + this.CHK_AI6.AutoSize = true; + this.CHK_AI6.Location = new System.Drawing.Point(13, 119); + this.CHK_AI6.Name = "CHK_AI6"; + this.CHK_AI6.Size = new System.Drawing.Size(88, 17); + this.CHK_AI6.TabIndex = 458; + this.CHK_AI6.Text = "PokeChange"; + this.CHK_AI6.UseVisualStyleBackColor = true; + // + // CHK_AI5 + // + this.CHK_AI5.AutoSize = true; + this.CHK_AI5.Location = new System.Drawing.Point(13, 105); + this.CHK_AI5.Name = "CHK_AI5"; + this.CHK_AI5.Size = new System.Drawing.Size(80, 17); + this.CHK_AI5.TabIndex = 457; + this.CHK_AI5.Text = "BattleRoyal"; + this.CHK_AI5.UseVisualStyleBackColor = true; + // + // CHK_AI4 + // + this.CHK_AI4.AutoSize = true; + this.CHK_AI4.Location = new System.Drawing.Point(13, 91); + this.CHK_AI4.Name = "CHK_AI4"; + this.CHK_AI4.Size = new System.Drawing.Size(83, 17); + this.CHK_AI4.TabIndex = 456; + this.CHK_AI4.Text = "NoWhiteout"; + this.CHK_AI4.UseVisualStyleBackColor = true; + // + // CHK_AI3 + // + this.CHK_AI3.AutoSize = true; + this.CHK_AI3.Location = new System.Drawing.Point(13, 77); + this.CHK_AI3.Name = "CHK_AI3"; + this.CHK_AI3.Size = new System.Drawing.Size(65, 17); + this.CHK_AI3.TabIndex = 455; + this.CHK_AI3.Text = "Doubles"; + this.CHK_AI3.UseVisualStyleBackColor = true; + // + // CHK_AI2 + // + this.CHK_AI2.AutoSize = true; + this.CHK_AI2.Location = new System.Drawing.Point(13, 51); + this.CHK_AI2.Name = "CHK_AI2"; + this.CHK_AI2.Size = new System.Drawing.Size(56, 17); + this.CHK_AI2.TabIndex = 454; + this.CHK_AI2.Text = "Expert"; + this.CHK_AI2.UseVisualStyleBackColor = true; + // + // CHK_AI1 + // + this.CHK_AI1.AutoSize = true; + this.CHK_AI1.Location = new System.Drawing.Point(13, 37); + this.CHK_AI1.Name = "CHK_AI1"; + this.CHK_AI1.Size = new System.Drawing.Size(57, 17); + this.CHK_AI1.TabIndex = 453; + this.CHK_AI1.Text = "Strong"; + this.CHK_AI1.UseVisualStyleBackColor = true; + // + // CHK_AI0 + // + this.CHK_AI0.AutoSize = true; + this.CHK_AI0.Location = new System.Drawing.Point(13, 23); + this.CHK_AI0.Name = "CHK_AI0"; + this.CHK_AI0.Size = new System.Drawing.Size(52, 17); + this.CHK_AI0.TabIndex = 452; + this.CHK_AI0.Text = "Basic"; + this.CHK_AI0.UseVisualStyleBackColor = true; + // + // CHK_AI7 + // + this.CHK_AI7.AutoSize = true; + this.CHK_AI7.Location = new System.Drawing.Point(13, 133); + this.CHK_AI7.Name = "CHK_AI7"; + this.CHK_AI7.Size = new System.Drawing.Size(46, 17); + this.CHK_AI7.TabIndex = 459; + this.CHK_AI7.Text = "Item"; + this.CHK_AI7.UseVisualStyleBackColor = true; + // + // SMTE + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(631, 315); + this.Controls.Add(this.TC_trpoke); + this.Controls.Add(this.L_Team); + this.Controls.Add(this.PB_Team1); + this.Controls.Add(this.PB_Team2); + this.Controls.Add(this.PB_Team3); + this.Controls.Add(this.PB_Team4); + this.Controls.Add(this.PB_Team5); + this.Controls.Add(this.PB_Team6); + this.Controls.Add(this.CB_TrainerID); + this.Controls.Add(this.TC_trdata); + this.Name = "SMTE"; + this.Text = "Trainer Editor"; + ((System.ComponentModel.ISupportInitialize)(this.PB_Team1)).EndInit(); + this.mnuVSD.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.PB_Team2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_Team3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_Team4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_Team5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_Team6)).EndInit(); + this.TC_trpoke.ResumeLayout(false); + this.Tab_Main.ResumeLayout(false); + this.flowLayoutPanel2.ResumeLayout(false); + this.FLP_Species.ResumeLayout(false); + this.FLP_Form.ResumeLayout(false); + this.flowLayoutPanel3.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Level)).EndInit(); + this.flowLayoutPanel4.ResumeLayout(false); + this.flowLayoutPanel1.ResumeLayout(false); + this.flowLayoutPanel5.ResumeLayout(false); + this.flowLayoutPanel6.ResumeLayout(false); + this.flowLayoutPanel6.PerformLayout(); + this.flowLayoutPanel7.ResumeLayout(false); + this.Tab_Stats.ResumeLayout(false); + this.FLP_Stats.ResumeLayout(false); + this.FLP_StatHeader.ResumeLayout(false); + this.FLP_StatsHeaderRight.ResumeLayout(false); + this.FLP_HP.ResumeLayout(false); + this.FLP_HP.PerformLayout(); + this.FLP_Atk.ResumeLayout(false); + this.FLP_Atk.PerformLayout(); + this.FLP_Def.ResumeLayout(false); + this.FLP_Def.PerformLayout(); + this.FLP_SpA.ResumeLayout(false); + this.FLP_SpA.PerformLayout(); + this.FLP_SpD.ResumeLayout(false); + this.FLP_SpD.PerformLayout(); + this.FLP_Spe.ResumeLayout(false); + this.FLP_Spe.PerformLayout(); + this.FLP_StatsTotal.ResumeLayout(false); + this.FLP_StatsTotal.PerformLayout(); + this.FLP_HPType.ResumeLayout(false); + this.Tab_Moves.ResumeLayout(false); + this.GB_Moves.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.NUD_NumPoke)).EndInit(); + this.TC_trdata.ResumeLayout(false); + this.Tab_Trainer.ResumeLayout(false); + this.Tab_Trainer.PerformLayout(); + this.Tab_Rand.ResumeLayout(false); + this.TC_rand.ResumeLayout(false); + this.Tab_PKM1.ResumeLayout(false); + this.Tab_PKM1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Shiny)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_LevelBoost)).EndInit(); + this.Tab_PKM2.ResumeLayout(false); + this.Tab_PKM2.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_ForceHighPower)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Damage)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_STAB)).EndInit(); + this.Tab_Trainer1.ResumeLayout(false); + this.Tab_Trainer1.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_ForceFullyEvolved)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_RMin)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_RMax)).EndInit(); + this.GB_AIBits.ResumeLayout(false); + this.GB_AIBits.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + private System.Windows.Forms.ComboBox CB_TrainerID; + private System.Windows.Forms.Label L_Money; + private System.Windows.Forms.ComboBox CB_Money; + private System.Windows.Forms.Label L_Trainer_Class; + private System.Windows.Forms.ComboBox CB_Trainer_Class; + private System.Windows.Forms.Label L_Item_4; + private System.Windows.Forms.ComboBox CB_Item_4; + private System.Windows.Forms.Label L_Item_3; + private System.Windows.Forms.ComboBox CB_Item_3; + private System.Windows.Forms.Label L_Item_2; + private System.Windows.Forms.ComboBox CB_Item_2; + private System.Windows.Forms.Label L_Item_1; + private System.Windows.Forms.ComboBox CB_Item_1; + private System.Windows.Forms.Label L_numPokemon; + private System.Windows.Forms.Label L_Team; + private System.Windows.Forms.PictureBox PB_Team1; + private System.Windows.Forms.PictureBox PB_Team2; + private System.Windows.Forms.PictureBox PB_Team3; + private System.Windows.Forms.PictureBox PB_Team4; + private System.Windows.Forms.PictureBox PB_Team5; + private System.Windows.Forms.PictureBox PB_Team6; + private System.Windows.Forms.Button B_Randomize; + private System.Windows.Forms.Button B_Dump; + private System.Windows.Forms.TabControl TC_trpoke; + private System.Windows.Forms.TabPage Tab_Main; + private System.Windows.Forms.TabPage Tab_Moves; + private System.Windows.Forms.Label L_Species; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel2; + private System.Windows.Forms.FlowLayoutPanel FLP_Species; + private System.Windows.Forms.ComboBox CB_Species; + private System.Windows.Forms.FlowLayoutPanel FLP_Form; + private System.Windows.Forms.Label L_Forme; + private System.Windows.Forms.ComboBox CB_Forme; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel3; + private System.Windows.Forms.Label L_Level; + private System.Windows.Forms.NumericUpDown NUD_Level; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel4; + private System.Windows.Forms.Label L_Ability; + private System.Windows.Forms.ComboBox CB_Ability; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1; + private System.Windows.Forms.Label L_Item; + private System.Windows.Forms.ComboBox CB_Item; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel5; + private System.Windows.Forms.Label L_Nature; + private System.Windows.Forms.ComboBox CB_Nature; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel6; + private System.Windows.Forms.Label L_Misc; + private System.Windows.Forms.CheckBox CHK_Shiny; + private System.Windows.Forms.ComboBox CB_Move1; + private System.Windows.Forms.ComboBox CB_Move2; + private System.Windows.Forms.ComboBox CB_Move4; + private System.Windows.Forms.ComboBox CB_Move3; + private System.Windows.Forms.GroupBox GB_Moves; + private System.Windows.Forms.NumericUpDown NUD_NumPoke; + private System.Windows.Forms.TextBox TB_TrainerName; + private System.Windows.Forms.Label L_TrainerName; + private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel7; + private System.Windows.Forms.Label L_Gender; + private System.Windows.Forms.ComboBox CB_Gender; + private System.Windows.Forms.FlowLayoutPanel FLP_Stats; + private System.Windows.Forms.FlowLayoutPanel FLP_StatHeader; + private System.Windows.Forms.FlowLayoutPanel FLP_StatsHeaderRight; + private System.Windows.Forms.Label Label_IVs; + private System.Windows.Forms.Label Label_EVs; + private System.Windows.Forms.Label Label_Stats; + private System.Windows.Forms.FlowLayoutPanel FLP_HP; + private System.Windows.Forms.Label Label_HP; + private System.Windows.Forms.FlowLayoutPanel FLP_Atk; + private System.Windows.Forms.Label Label_ATK; + private System.Windows.Forms.FlowLayoutPanel FLP_Def; + private System.Windows.Forms.Label Label_DEF; + private System.Windows.Forms.FlowLayoutPanel FLP_SpA; + private System.Windows.Forms.FlowLayoutPanel FLP_SpD; + private System.Windows.Forms.Label Label_SPD; + private System.Windows.Forms.MaskedTextBox TB_SPDIV; + private System.Windows.Forms.MaskedTextBox TB_SPDEV; + private System.Windows.Forms.MaskedTextBox Stat_SPD; + private System.Windows.Forms.FlowLayoutPanel FLP_Spe; + private System.Windows.Forms.Label Label_SPE; + private System.Windows.Forms.FlowLayoutPanel FLP_StatsTotal; + private System.Windows.Forms.Label Label_Total; + private System.Windows.Forms.FlowLayoutPanel FLP_HPType; + private System.Windows.Forms.Label Label_HiddenPowerPrefix; + private System.Windows.Forms.ComboBox CB_HPType; + private System.Windows.Forms.TextBox TB_EVTotal; + private System.Windows.Forms.TextBox TB_IVTotal; + private System.Windows.Forms.MaskedTextBox Stat_SPE; + private System.Windows.Forms.MaskedTextBox TB_SPEEV; + private System.Windows.Forms.MaskedTextBox TB_SPEIV; + private System.Windows.Forms.MaskedTextBox Stat_DEF; + private System.Windows.Forms.MaskedTextBox TB_DEFEV; + private System.Windows.Forms.MaskedTextBox TB_DEFIV; + private System.Windows.Forms.MaskedTextBox Stat_ATK; + private System.Windows.Forms.MaskedTextBox TB_ATKEV; + private System.Windows.Forms.MaskedTextBox TB_ATKIV; + private System.Windows.Forms.MaskedTextBox Stat_HP; + private System.Windows.Forms.MaskedTextBox TB_HPEV; + private System.Windows.Forms.MaskedTextBox TB_HPIV; + private System.Windows.Forms.MaskedTextBox Stat_SPA; + private System.Windows.Forms.MaskedTextBox TB_SPAEV; + private System.Windows.Forms.MaskedTextBox TB_SPAIV; + private System.Windows.Forms.Label Label_SPA; + private System.Windows.Forms.TabPage Tab_Stats; + private System.Windows.Forms.Button B_HighAttack; + private System.Windows.Forms.Button B_CurrentAttack; + private System.Windows.Forms.ContextMenuStrip mnuVSD; + private System.Windows.Forms.ToolStripMenuItem mnuView; + private System.Windows.Forms.ToolStripMenuItem mnuSet; + private System.Windows.Forms.ToolStripMenuItem mnuDelete; + private System.Windows.Forms.Button B_Clear; + private System.Windows.Forms.TabControl TC_trdata; + private System.Windows.Forms.TabPage Tab_Trainer; + private System.Windows.Forms.TabPage Tab_Rand; + private System.Windows.Forms.CheckBox CHK_RandomClass; + private System.Windows.Forms.CheckBox CHK_IgnoreSpecialClass; + private System.Windows.Forms.CheckBox CHK_TypeTheme; + private System.Windows.Forms.CheckBox CHK_RandomMegaForm; + private System.Windows.Forms.NumericUpDown NUD_RMax; + private System.Windows.Forms.NumericUpDown NUD_RMin; + private System.Windows.Forms.Label L_MaxPKM; + private System.Windows.Forms.Label L_MinPKM; + private System.Windows.Forms.TabPage Tab_Trainer1; + private System.Windows.Forms.CheckBox CHK_STAB; + private System.Windows.Forms.CheckBox CHK_RandomItems; + private System.Windows.Forms.NumericUpDown NUD_STAB; + private System.Windows.Forms.CheckBox CHK_RandomAbilities; + private System.Windows.Forms.CheckBox CHK_MaxDiffPKM; + private System.Windows.Forms.ComboBox CB_Moves; + private System.Windows.Forms.Label L_Moves; + private System.Windows.Forms.CheckBox CHK_MaxAI; + private System.Windows.Forms.TabPage Tab_PKM2; + private System.Windows.Forms.CheckBox CHK_RandomPKM; + private System.Windows.Forms.CheckBox CHK_BST; + private System.Windows.Forms.CheckBox CHK_G1; + private System.Windows.Forms.CheckBox CHK_Level; + private System.Windows.Forms.CheckBox CHK_G2; + private System.Windows.Forms.NumericUpDown NUD_LevelBoost; + private System.Windows.Forms.CheckBox CHK_G3; + private System.Windows.Forms.CheckBox CHK_G4; + private System.Windows.Forms.CheckBox CHK_G5; + private System.Windows.Forms.CheckBox CHK_G6; + private System.Windows.Forms.CheckBox CHK_G7; + private System.Windows.Forms.CheckBox CHK_L; + private System.Windows.Forms.CheckBox CHK_E; + private System.Windows.Forms.CheckBox CHK_RandomShiny; + private System.Windows.Forms.NumericUpDown NUD_Shiny; + private System.Windows.Forms.Label L_ShinyPCT; + private System.Windows.Forms.TabPage Tab_PKM1; + private System.Windows.Forms.TabControl TC_rand; + private System.Windows.Forms.CheckBox CHK_Damage; + private System.Windows.Forms.NumericUpDown NUD_Damage; + private System.Windows.Forms.CheckBox CHK_Flag; + private System.Windows.Forms.CheckBox CHK_NoFixedDamage; + private System.Windows.Forms.NumericUpDown NUD_ForceFullyEvolved; + private System.Windows.Forms.CheckBox CHK_ForceFullyEvolved; + private System.Windows.Forms.CheckBox CHK_6PKM; + private System.Windows.Forms.CheckBox CHK_ForceHighPower; + private System.Windows.Forms.NumericUpDown NUD_ForceHighPower; + private System.Windows.Forms.CheckBox CHK_ReplaceMega; + private System.Windows.Forms.Label L_Mode; + private System.Windows.Forms.ComboBox CB_Mode; + private System.Windows.Forms.GroupBox GB_AIBits; + private System.Windows.Forms.CheckBox CHK_AI6; + private System.Windows.Forms.CheckBox CHK_AI5; + private System.Windows.Forms.CheckBox CHK_AI4; + private System.Windows.Forms.CheckBox CHK_AI3; + private System.Windows.Forms.CheckBox CHK_AI2; + private System.Windows.Forms.CheckBox CHK_AI1; + private System.Windows.Forms.CheckBox CHK_AI0; + private System.Windows.Forms.CheckBox CHK_AI7; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen7/SMTE.cs b/pk3DS.WinForms/Subforms/Gen7/SMTE.cs new file mode 100644 index 0000000000..2b49a8a09b --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen7/SMTE.cs @@ -0,0 +1,893 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Media; +using System.Text; +using System.Windows.Forms; + +using pk3DS.Core; +using pk3DS.Core.Randomizers; +using pk3DS.Core.Structures; + +namespace pk3DS.WinForms; + +public partial class SMTE : Form +{ + private readonly LearnsetRandomizer learn = new(Main.Config, Main.Config.Learnsets); + private readonly TrainerData7[] Trainers; + private string[][] AltForms; + private static int[] SpecialClasses; + private static readonly int[] ImportantTrainers = Main.Config.USUM ? Legal.ImportantTrainers_USUM : Legal.ImportantTrainers_SM; + private static int[] FinalEvo = Legal.FinalEvolutions_7; + private static readonly int[] Legendary = Main.Config.USUM ? Legal.Legendary_USUM : Legal.Legendary_SM; + private static readonly int[] Mythical = Main.Config.USUM ? Legal.Mythical_USUM : Legal.Mythical_SM; + private static Dictionary MegaDictionary; + private int index = -1; + private PictureBox[] pba; + private CheckBox[] AIBits; + + //private readonly byte[][] trclass; + private readonly byte[][] trdata; + private readonly byte[][] trpoke; + private readonly string[] abilitylist = Main.Config.GetText(TextName.AbilityNames); + private readonly string[] movelist = Main.Config.GetText(TextName.MoveNames); + private readonly string[] itemlist = Main.Config.GetText(TextName.ItemNames); + private readonly string[] specieslist = Main.Config.GetText(TextName.SpeciesNames); + private readonly string[] types = Main.Config.GetText(TextName.Types); + private readonly string[] natures = Main.Config.GetText(TextName.Natures); + private readonly string[] forms = Enumerable.Range(0, 1000).Select(i => i.ToString("000")).ToArray(); + private readonly string[] trName = Main.Config.GetText(TextName.TrainerNames); + private readonly string[] trClass = Main.Config.GetText(TextName.TrainerClasses); + //private readonly TextData trText = Main.Config.GetTextData(TextName.TrainerText); + private readonly TextData TrainerNames; + + public SMTE(byte[][] trd, byte[][] trp) + { + //trclass = trc; + trdata = trd; + trpoke = trp; + TrainerNames = new TextData(trName); + InitializeComponent(); + + mnuView.Click += ClickView; + mnuSet.Click += ClickSet; + mnuDelete.Click += ClickDelete; + Trainers = new TrainerData7[trdata.Length]; + Setup(); + foreach (var pb in pba) + pb.Click += ClickSlot; + + CB_TrainerID.SelectedIndex = 0; + CB_Moves.SelectedIndex = 0; + MegaDictionary = GiftEditor6.GetMegaDictionary(Main.Config); + + if (CHK_RandomClass.Checked) + { + SpecialClasses = CHK_IgnoreSpecialClass.Checked + ? Main.Config.USUM + ? Legal.SpecialClasses_USUM + : Legal.SpecialClasses_SM + : []; + } + + RandSettings.GetFormSettings(this, Tab_Rand.Controls); + } + + private int GetSlot(object sender) + { + var send = ((sender as ToolStripItem)?.Owner as ContextMenuStrip)?.SourceControl ?? sender as PictureBox; + return Array.IndexOf(pba, send); + } + + private void ClickSlot(object sender, EventArgs e) + { + switch (ModifierKeys) + { + case Keys.Control: ClickView(sender, e); break; + case Keys.Shift: ClickSet(sender, e); break; + case Keys.Alt: ClickDelete(sender, e); break; + } + } + + private void ClickView(object sender, EventArgs e) + { + int slot = GetSlot(sender); + if (pba[slot].Image == null) + { SystemSounds.Exclamation.Play(); return; } + + // Load the PKM + var pk = Trainers[index].Pokemon[slot]; + if (pk.Species != 0) + { + try { PopulateFieldsTP7(pk); } + catch { } + // Visual to display what slot is currently loaded. + GetSlotColor(slot, Properties.Resources.slotView); + } + else + { + SystemSounds.Exclamation.Play(); + } + } + + private void ClickSet(object sender, EventArgs e) + { + int slot = GetSlot(sender); + if (CB_Species.SelectedIndex == 0) + { WinFormsUtil.Alert("Can't set empty slot."); return; } + + var pk = PrepareTP7(); + var tr = Trainers[index]; + if (slot < tr.NumPokemon) + { + tr.Pokemon[slot] = pk; + } + else + { + tr.Pokemon.Add(pk); + slot = tr.Pokemon.Count - 1; + Trainers[index].NumPokemon = (int)++NUD_NumPoke.Value; + } + + GetQuickFiller(pba[slot], pk); + GetSlotColor(slot, Properties.Resources.slotSet); + } + + private void ClickDelete(object sender, EventArgs e) + { + int slot = GetSlot(sender); + + if (slot < Trainers[index].NumPokemon) + { + Trainers[index].Pokemon.RemoveAt(slot); + Trainers[index].NumPokemon = (int)--NUD_NumPoke.Value; + } + + PopulateTeam(Trainers[index]); + GetSlotColor(slot, Properties.Resources.slotDel); + } + + private void PopulateTeam(TrainerData7 tr) + { + for (int i = 0; i < tr.NumPokemon; i++) + GetQuickFiller(pba[i], tr.Pokemon[i]); + for (int i = tr.NumPokemon; i < 6; i++) + pba[i].Image = null; + } + + private void GetSlotColor(int slot, Image color) + { + foreach (PictureBox t in pba) + t.BackgroundImage = null; + + pba[slot].BackgroundImage = color; + } + + private static void GetQuickFiller(PictureBox pb, TrainerPoke7 pk) + { + Bitmap rawImg = WinFormsUtil.GetSprite(pk.Species, pk.Form, pk.Gender, pk.Item, Main.Config, pk.Shiny); + pb.Image = WinFormsUtil.ScaleImage(rawImg, 2); + } + + // Top Level Functions + private void RefreshFormAbility(object sender, EventArgs e) + { + if (index < 0) + return; + pkm.Form = CB_Forme.SelectedIndex; + RefreshPKMSlotAbility(); + } + + private void RefreshSpeciesAbility(object sender, EventArgs e) + { + if (index < 0) + return; + pkm.Species = (ushort)CB_Species.SelectedIndex; + FormUtil.SetForms(CB_Species.SelectedIndex, CB_Forme, AltForms); + RefreshPKMSlotAbility(); + } + + private void RefreshPKMSlotAbility() + { + int previousAbility = CB_Ability.SelectedIndex; + + int species = CB_Species.SelectedIndex; + int formnum = CB_Forme.SelectedIndex; + species = Main.SpeciesStat[species].FormeIndex(species, formnum); + + CB_Ability.Items.Clear(); + CB_Ability.Items.Add("Any (1 or 2)"); + CB_Ability.Items.Add(abilitylist[Main.SpeciesStat[species].Abilities[0]] + " (1)"); + CB_Ability.Items.Add(abilitylist[Main.SpeciesStat[species].Abilities[1]] + " (2)"); + CB_Ability.Items.Add(abilitylist[Main.SpeciesStat[species].Abilities[2]] + " (H)"); + + CB_Ability.SelectedIndex = previousAbility; + } + + private static string GetEntryTitle(string str, int i) => $"{str} - {i:000}"; + + private void Setup() + { + AltForms = forms.Select(_ => Enumerable.Range(0, 100).Select(i => i.ToString()).ToArray()).ToArray(); + CB_TrainerID.Items.Clear(); + for (int i = 0; i < trdata.Length; i++) + CB_TrainerID.Items.Add(GetEntryTitle(trName[i] ?? "UNKNOWN", i)); + + CB_Trainer_Class.Items.Clear(); + for (int i = 0; i < trClass.Length; i++) + CB_Trainer_Class.Items.Add(GetEntryTitle(trClass[i], i)); + + Trainers[0] = new TrainerData7(); + + for (int i = 1; i < trdata.Length; i++) + { + Trainers[i] = new TrainerData7(trdata[i], trpoke[i]) + { + Name = trName[i], + ID = i, + }; + } + + specieslist[0] = "---"; + abilitylist[0] = itemlist[0] = movelist[0] = "(None)"; + pba = [PB_Team1, PB_Team2, PB_Team3, PB_Team4, PB_Team5, PB_Team6]; + AIBits = [CHK_AI0, CHK_AI1, CHK_AI2, CHK_AI3, CHK_AI4, CHK_AI5, CHK_AI6, CHK_AI7]; + + CB_Species.Items.Clear(); + CB_Species.Items.AddRange(specieslist); + + CB_Move1.Items.Clear(); + CB_Move2.Items.Clear(); + CB_Move3.Items.Clear(); + CB_Move4.Items.Clear(); + foreach (string s in movelist) + { + CB_Move1.Items.Add(s); + CB_Move2.Items.Add(s); + CB_Move3.Items.Add(s); + CB_Move4.Items.Add(s); + } + + CB_HPType.DataSource = types.Skip(1).Take(16).ToArray(); + CB_HPType.SelectedIndex = 0; + + CB_Nature.Items.Clear(); + CB_Nature.Items.AddRange(natures.Take(25).ToArray()); + + CB_Item.Items.Clear(); + CB_Item.Items.AddRange(itemlist); + + CB_Gender.Items.Clear(); + CB_Gender.Items.Add("- / Genderless/Random"); + CB_Gender.Items.Add("♂ / Male"); + CB_Gender.Items.Add("♀ / Female"); + + CB_Forme.Items.Add(""); + + CB_Species.SelectedIndex = 0; + CB_Item_1.Items.Clear(); + CB_Item_2.Items.Clear(); + CB_Item_3.Items.Clear(); + CB_Item_4.Items.Clear(); + foreach (string s in itemlist) + { + CB_Item_1.Items.Add(s); + CB_Item_2.Items.Add(s); + CB_Item_3.Items.Add(s); + CB_Item_4.Items.Add(s); + } + + CB_Money.Items.Clear(); + for (int i = 0; i < 256; i++) + { CB_Money.Items.Add(i.ToString()); } + + CB_TrainerID.SelectedIndex = 0; + index = 0; + pkm = new TrainerPoke7(); + PopulateFieldsTP7(pkm); + } + + private void ChangeTrainerIndex(object sender, EventArgs e) + { + SaveEntry(); + LoadEntry(); + if (TC_trdata.SelectedIndex == TC_trdata.TabCount - 1) // last + TC_trdata.SelectedIndex = 0; + } + + private void SaveEntry() + { + if (index < 0) + return; + var tr = Trainers[index]; + PrepareTR7(tr); + SaveData(tr, index); + TrainerNames[index] = TB_TrainerName.Text; + } + + private void SaveData(TrainerData7 tr, int i) + { + tr.Write(out byte[] trd, out byte[] trp); + trdata[i] = trd; + trpoke[i] = trp; + } + + private void LoadEntry() + { + index = CB_TrainerID.SelectedIndex; + var tr = Trainers[index]; + + loading = true; + TB_TrainerName.Text = TrainerNames[index]; + + PopulateFieldsTD7(tr); + loading = false; + } + + private bool loading; + private TrainerPoke7 pkm; + + private void PopulateFieldsTP7(TrainerPoke7 pk) + { + pkm = pk.Clone(); + + int spec = pkm.Species, form = pkm.Form; + + CB_Species.SelectedIndex = spec; + CB_Forme.SelectedIndex = form; + CB_Ability.SelectedIndex = pkm.Ability; + CB_Item.SelectedIndex = pkm.Item; + CHK_Shiny.Checked = pkm.Shiny; + CB_Gender.SelectedIndex = pkm.Gender; + + CB_Move1.SelectedIndex = pkm.Move1; + CB_Move2.SelectedIndex = pkm.Move2; + CB_Move3.SelectedIndex = pkm.Move3; + CB_Move4.SelectedIndex = pkm.Move4; + + updatingStats = true; + CB_Nature.SelectedIndex = pkm.Nature; + NUD_Level.Value = Math.Min(NUD_Level.Maximum, pkm.Level); + + TB_HPIV.Text = pkm.IV_HP.ToString(); + TB_ATKIV.Text = pkm.IV_ATK.ToString(); + TB_DEFIV.Text = pkm.IV_DEF.ToString(); + TB_SPAIV.Text = pkm.IV_SPA.ToString(); + TB_SPEIV.Text = pkm.IV_SPE.ToString(); + TB_SPDIV.Text = pkm.IV_SPD.ToString(); + + TB_HPEV.Text = pkm.EV_HP.ToString(); + TB_ATKEV.Text = pkm.EV_ATK.ToString(); + TB_DEFEV.Text = pkm.EV_DEF.ToString(); + TB_SPAEV.Text = pkm.EV_SPA.ToString(); + TB_SPEEV.Text = pkm.EV_SPE.ToString(); + TB_SPDEV.Text = pkm.EV_SPD.ToString(); + updatingStats = false; + UpdateStats(null, null); + } + + private TrainerPoke7 PrepareTP7() + { + var pk = pkm.Clone(); + pk.Species = CB_Species.SelectedIndex; + pk.Form = CB_Forme.SelectedIndex; + pk.Level = (byte)NUD_Level.Value; + pk.Ability = CB_Ability.SelectedIndex; + pk.Item = CB_Item.SelectedIndex; + pk.Shiny = CHK_Shiny.Checked; + pk.Nature = CB_Nature.SelectedIndex; + pk.Gender = CB_Gender.SelectedIndex; + + pk.Move1 = CB_Move1.SelectedIndex; + pk.Move2 = CB_Move2.SelectedIndex; + pk.Move3 = CB_Move3.SelectedIndex; + pk.Move4 = CB_Move4.SelectedIndex; + + pk.IV_HP = WinFormsUtil.ToInt32(TB_HPIV); + pk.IV_ATK = WinFormsUtil.ToInt32(TB_ATKIV); + pk.IV_DEF = WinFormsUtil.ToInt32(TB_DEFIV); + pk.IV_SPA = WinFormsUtil.ToInt32(TB_SPAIV); + pk.IV_SPE = WinFormsUtil.ToInt32(TB_SPEIV); + pk.IV_SPD = WinFormsUtil.ToInt32(TB_SPDIV); + + pk.EV_HP = WinFormsUtil.ToInt32(TB_HPEV); + pk.EV_ATK = WinFormsUtil.ToInt32(TB_ATKEV); + pk.EV_DEF = WinFormsUtil.ToInt32(TB_DEFEV); + pk.EV_SPA = WinFormsUtil.ToInt32(TB_SPAEV); + pk.EV_SPE = WinFormsUtil.ToInt32(TB_SPEEV); + pk.EV_SPD = WinFormsUtil.ToInt32(TB_SPDEV); + + return pk; + } + + private void PopulateFieldsTD7(TrainerData7 tr) + { + // Load Trainer Data + CB_Trainer_Class.SelectedIndex = tr.TrainerClass; + NUD_NumPoke.Value = tr.NumPokemon; + CB_Item_1.SelectedIndex = tr.Item1; + CB_Item_2.SelectedIndex = tr.Item2; + CB_Item_3.SelectedIndex = tr.Item3; + CB_Item_4.SelectedIndex = tr.Item4; + CB_Money.SelectedIndex = tr.Money; + CB_Mode.SelectedIndex = (int)tr.Mode; + LoadAIBits((uint)tr.AI); + CHK_Flag.Checked = tr.Flag; + PopulateTeam(tr); + } + + private void PrepareTR7(TrainerData7 tr) + { + tr.TrainerClass = (byte)CB_Trainer_Class.SelectedIndex; + tr.NumPokemon = (byte)NUD_NumPoke.Value; + tr.Item1 = CB_Item_1.SelectedIndex; + tr.Item2 = CB_Item_2.SelectedIndex; + tr.Item3 = CB_Item_3.SelectedIndex; + tr.Item4 = CB_Item_4.SelectedIndex; + tr.Money = CB_Money.SelectedIndex; + tr.Mode = (BattleMode)CB_Mode.SelectedIndex; + tr.AI = (int)SaveAIBits(); + tr.Flag = CHK_Flag.Checked; + } + + private void LoadAIBits(uint val) + { + for (int i = 0; i < AIBits.Length; i++) + AIBits[i].Checked = ((val >> i) & 1) == 1; + } + + private uint SaveAIBits() + { + uint val = 0; + for (int i = 0; i < AIBits.Length; i++) + val |= AIBits[i].Checked ? 1u << i : 0; + return val; + } + + protected override void OnFormClosing(FormClosingEventArgs e) + { + SaveEntry(); + if (TrainerNames.Modified) + Main.Config.SetText(TextName.TrainerNames, TrainerNames.Lines); + base.OnFormClosing(e); + RandSettings.SetFormSettings(this, Tab_Rand.Controls); + } + + // Dumping + private void DumpTxt(object sender, EventArgs e) + { + var sfd = new SaveFileDialog { FileName = "Trainers.txt" }; + if (sfd.ShowDialog() != DialogResult.OK) + return; + var sb = new StringBuilder(); + foreach (var Trainer in Trainers) + sb.Append(GetTrainerString(Trainer)); + File.WriteAllText(sfd.FileName, sb.ToString()); + } + + private string GetTrainerString(TrainerData7 tr) + { + var sb = new StringBuilder(); + sb.AppendLine("======"); + sb.Append(tr.ID).Append(" - ").Append(trClass[tr.TrainerClass]).Append(' ').AppendLine(tr.Name); + sb.AppendLine("======"); + sb.Append("Pokemon: ").Append(tr.NumPokemon).AppendLine(); + for (int i = 0; i < tr.NumPokemon; i++) + { + if (tr.Pokemon[i].Shiny) + sb.Append("Shiny "); + sb.Append(specieslist[tr.Pokemon[i].Species]); + sb.Append(" (Lv. ").Append(tr.Pokemon[i].Level).Append(") "); + if (tr.Pokemon[i].Item > 0) + sb.Append('@').Append(itemlist[tr.Pokemon[i].Item]); + + if (tr.Pokemon[i].Nature != 0) + sb.Append(" (Nature: ").Append(natures[tr.Pokemon[i].Nature]).Append(')'); + + sb.Append(" (Moves: ").AppendJoin("/", tr.Pokemon[i].Moves.Select(m => m == 0 ? "(None)" : movelist[m])).Append(')'); + sb.Append(" IVs: ").AppendJoin("/", tr.Pokemon[i].IVs); + sb.Append(" EVs: ").AppendJoin("/", tr.Pokemon[i].EVs); + sb.AppendLine(); + } + return sb.ToString(); + } + + private void UpdateNumPokemon(object sender, EventArgs e) + { + if (index < 0) + return; + Trainers[index].NumPokemon = (int)NUD_NumPoke.Value; + } + + private void UpdateTrainerName(object sender, EventArgs e) + { + if (loading) + return; + string str = TB_TrainerName.Text; + CB_TrainerID.Items[index] = GetEntryTitle(str, index); + } + + private static bool updatingStats; + + private void UpdateStats(object sender, EventArgs e) + { + if (updatingStats) + return; + var tb_iv = new[] { TB_HPIV, TB_ATKIV, TB_DEFIV, TB_SPEIV, TB_SPAIV, TB_SPDIV }; + var tb_ev = new[] { TB_HPEV, TB_ATKEV, TB_DEFEV, TB_SPEEV, TB_SPAEV, TB_SPDEV }; + for (int i = 0; i < 6; i++) + { + updatingStats = true; + if (WinFormsUtil.ToInt32(tb_iv[i]) > 31) + tb_iv[i].Text = "31"; + if (WinFormsUtil.ToInt32(tb_ev[i]) > 255) + tb_ev[i].Text = "255"; + updatingStats = false; + } + + int species = CB_Species.SelectedIndex; + species = Main.SpeciesStat[species].FormeIndex(species, CB_Forme.SelectedIndex); + var p = Main.SpeciesStat[species]; + int level = (int)NUD_Level.Value; + int Nature = CB_Nature.SelectedIndex; + + ushort[] Stats = new ushort[6]; + Stats[0] = (ushort)(p.HP == 1 ? 1 : ((Util.ToInt32(TB_HPIV.Text) + (2 * p.HP) + (Util.ToInt32(TB_HPEV.Text) / 4) + 100) * level / 100) + 10); + Stats[1] = (ushort)(((Util.ToInt32(TB_ATKIV.Text) + (2 * p.ATK) + (Util.ToInt32(TB_ATKEV.Text) / 4)) * level / 100) + 5); + Stats[2] = (ushort)(((Util.ToInt32(TB_DEFIV.Text) + (2 * p.DEF) + (Util.ToInt32(TB_DEFEV.Text) / 4)) * level / 100) + 5); + Stats[4] = (ushort)(((Util.ToInt32(TB_SPAIV.Text) + (2 * p.SPA) + (Util.ToInt32(TB_SPAEV.Text) / 4)) * level / 100) + 5); + Stats[5] = (ushort)(((Util.ToInt32(TB_SPDIV.Text) + (2 * p.SPD) + (Util.ToInt32(TB_SPDEV.Text) / 4)) * level / 100) + 5); + Stats[3] = (ushort)(((Util.ToInt32(TB_SPEIV.Text) + (2 * p.SPE) + (Util.ToInt32(TB_SPEEV.Text) / 4)) * level / 100) + 5); + + // Account for nature + int incr = (Nature / 5) + 1; + int decr = (Nature % 5) + 1; + if (incr != decr) + { + Stats[incr] *= 11; + Stats[incr] /= 10; + Stats[decr] *= 9; + Stats[decr] /= 10; + } + + Stat_HP.Text = Stats[0].ToString(); + Stat_ATK.Text = Stats[1].ToString(); + Stat_DEF.Text = Stats[2].ToString(); + Stat_SPA.Text = Stats[4].ToString(); + Stat_SPD.Text = Stats[5].ToString(); + Stat_SPE.Text = Stats[3].ToString(); + + TB_IVTotal.Text = tb_iv.Sum(WinFormsUtil.ToInt32).ToString(); + TB_EVTotal.Text = tb_ev.Sum(WinFormsUtil.ToInt32).ToString(); + + // Recolor the Stat Labels based on boosted stats. + { + incr--; + decr--; + Label[] labarray = [Label_ATK, Label_DEF, Label_SPE, Label_SPA, Label_SPD]; + // Reset Label Colors + foreach (Label label in labarray) + label.ResetForeColor(); + + // Set Colored StatLabels only if Nature isn't Neutral + if (incr != decr) + { + labarray[incr].ForeColor = Color.Red; + labarray[decr].ForeColor = Color.Blue; + } + } + var ivs = tb_iv.Select(tb => WinFormsUtil.ToInt32(tb) & 1).ToArray(); + updatingStats = true; + CB_HPType.SelectedIndex = 15 * (ivs[0] + (2 * ivs[1]) + (4 * ivs[2]) + (8 * ivs[3]) + (16 * ivs[4]) + (32 * ivs[5])) / 63; + updatingStats = false; + } + + private void UpdateHPType(object sender, EventArgs e) + { + if (updatingStats) + return; + var tb_iv = new[] { TB_HPIV, TB_ATKIV, TB_DEFIV, TB_SPAIV, TB_SPDIV, TB_SPEIV }; + int[] newIVs = SetHPIVs(CB_HPType.SelectedIndex, tb_iv.Select(WinFormsUtil.ToInt32).ToArray()); + updatingStats = true; + TB_HPIV.Text = newIVs[0].ToString(); + TB_ATKIV.Text = newIVs[1].ToString(); + TB_DEFIV.Text = newIVs[2].ToString(); + TB_SPAIV.Text = newIVs[3].ToString(); + TB_SPDIV.Text = newIVs[4].ToString(); + TB_SPEIV.Text = newIVs[5].ToString(); + updatingStats = false; + } + + public static int[] SetHPIVs(int type, int[] ivs) + { + for (int i = 0; i < 6; i++) + ivs[i] = (ivs[i] & 0x1E) + hpivs[type, i]; + return ivs; + } + + private static readonly int[,] hpivs = { + { 1, 1, 0, 0, 0, 0 }, // Fighting + { 0, 0, 0, 0, 0, 1 }, // Flying + { 1, 1, 0, 0, 0, 1 }, // Poison + { 1, 1, 1, 0, 0, 1 }, // Ground + { 1, 1, 0, 1, 0, 0 }, // Rock + { 1, 0, 0, 1, 0, 1 }, // Bug + { 1, 0, 1, 1, 0, 1 }, // Ghost + { 1, 1, 1, 1, 0, 1 }, // Steel + { 1, 0, 1, 0, 1, 0 }, // Fire + { 1, 0, 0, 0, 1, 1 }, // Water + { 1, 0, 1, 0, 1, 1 }, // Grass + { 1, 1, 1, 0, 1, 1 }, // Electric + { 1, 0, 1, 1, 1, 0 }, // Psychic + { 1, 0, 0, 1, 1, 1 }, // Ice + { 1, 0, 1, 1, 1, 1 }, // Dragon + { 1, 1, 1, 1, 1, 1 }, // Dark + }; + + private static readonly int[] usualBan = [165, 621, 464]; + + private void B_Randomize_Click(object sender, EventArgs e) + { + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomize all? Cannot undo.", "Double check Randomization settings in the Randomizer Options tab.") != DialogResult.Yes) return; + + CB_TrainerID.SelectedIndex = 0; + var rnd = new SpeciesRandomizer(Main.Config) + { + G1 = CHK_G1.Checked, + G2 = CHK_G2.Checked, + G3 = CHK_G3.Checked, + G4 = CHK_G4.Checked, + G5 = CHK_G5.Checked, + G6 = CHK_G6.Checked, + G7 = CHK_G7.Checked, + + E = CHK_E.Checked, + L = CHK_L.Checked, + rBST = CHK_BST.Checked, + }; + rnd.Initialize(); + + // add Legendary/Mythical to final evolutions if checked + if (CHK_L.Checked) FinalEvo = [.. FinalEvo, .. Legendary]; + if (CHK_E.Checked) FinalEvo = [.. FinalEvo, .. Mythical]; + + var banned = new List(usualBan.Concat(Legal.Z_Moves)); // Struggle, Hyperspace Fury, Dark Void + if (CHK_NoFixedDamage.Checked) + banned.AddRange(MoveRandomizer.FixedDamageMoves); + var move = new MoveRandomizer(Main.Config) + { + BannedMoves = banned, + rSTABCount = (int)NUD_STAB.Value, + rDMG = CHK_Damage.Checked, + rDMGCount = (int)NUD_Damage.Value, + rSTAB = CHK_STAB.Checked, + }; + + var items = Randomizer.GetRandomItemList(); + for (int i = 0; i < Trainers.Length; i++) + { + var tr = Trainers[i]; + if (tr.Pokemon.Count == 0) + continue; + + // Trainer Properties + if (CHK_RandomClass.Checked) + { + // ignore special classes + if (CHK_IgnoreSpecialClass.Checked && !SpecialClasses.Contains(tr.TrainerClass)) + { + int randClass() => (int)(Util.Random32() % CB_Trainer_Class.Items.Count); + int rv; do { rv = randClass(); } + while (SpecialClasses.Contains(rv)); // don't allow disallowed classes + tr.TrainerClass = (byte)rv; + } + + // all classes + else if (!CHK_IgnoreSpecialClass.Checked) + { + int randClass() => (int)(Util.Random32() % CB_Trainer_Class.Items.Count); + int rv; do { rv = randClass(); } + while (rv == 082); // Lusamine 2 can crash multi battles, skip + tr.TrainerClass = (byte)rv; + } + } + + var avgBST = (int)tr.Pokemon.Average(pk => Main.SpeciesStat[pk.Species].BST); + int avgLevel = (int)tr.Pokemon.Average(pk => pk.Level); + var pinfo = Main.SpeciesStat.OrderBy(pk => Math.Abs(avgBST - pk.BST)).First(); + int avgSpec = Array.IndexOf(Main.SpeciesStat, pinfo); + int[] royal = [081, 082, 083, 084, 185]; + + if (tr.NumPokemon < NUD_RMin.Value) + { + for (int p = tr.NumPokemon; p < NUD_RMin.Value; p++) + { + tr.Pokemon.Add(new TrainerPoke7 + { + Species = rnd.GetRandomSpecies(avgSpec), + Level = avgLevel, + }); + } + + tr.NumPokemon = (int)NUD_RMin.Value; + } + if (tr.NumPokemon > NUD_RMax.Value) + { + tr.Pokemon.RemoveRange((int)NUD_RMax.Value, (int)(tr.NumPokemon - NUD_RMax.Value)); + tr.NumPokemon = (int)NUD_RMax.Value; + } + if (CHK_6PKM.Checked && ImportantTrainers.Contains(tr.ID)) + { + for (int g = tr.NumPokemon; g < 6; g++) + { + tr.Pokemon.Add(new TrainerPoke7 + { + Species = rnd.GetRandomSpecies(avgSpec), + Level = avgLevel, + }); + } + + tr.NumPokemon = 6; + } + + // force 1 pkm to keep forced Battle Royal fair + if (royal.Contains(tr.ID)) + tr.NumPokemon = 1; + + // PKM Properties + foreach (var pk in tr.Pokemon) + { + if (CHK_RandomPKM.Checked) + { + int Type = CHK_TypeTheme.Checked ? (int)Util.Random32() % 17 : -1; + + // replaces Megas with another Mega (Dexio and Lysandre in USUM) + if (MegaDictionary.Values.Any(z => z.Contains(pk.Item))) + { + int[] mega = GetRandomMega(out int species); + pk.Species = species; + pk.Item = mega[Util.Rand.Next(0, mega.Length)]; + pk.Form = 0; // allow it to Mega Evolve naturally + } + + // every other pkm + else + { + pk.Species = rnd.GetRandomSpeciesType(pk.Species, Type); + pk.Item = items[Util.Random32() % items.Length]; + pk.Form = Randomizer.GetRandomForme(pk.Species, CHK_RandomMegaForm.Checked, true, Main.SpeciesStat); + } + + pk.Gender = 0; // random + pk.Nature = (int)(Util.Random32() % CB_Nature.Items.Count); // random + } + if (CHK_Level.Checked) + pk.Level = Randomizer.GetModifiedLevel(pk.Level, NUD_LevelBoost.Value); + if (CHK_RandomShiny.Checked) + pk.Shiny = Util.Rand.Next(0, 100 + 1) < NUD_Shiny.Value; + if (CHK_RandomAbilities.Checked) + pk.Ability = (int)Util.Random32() % 4; + if (CHK_MaxDiffPKM.Checked) + pk.IVs = [31, 31, 31, 31, 31, 31]; + if (CHK_MaxAI.Checked) + tr.AI |= (int)(TrainerAI.Basic | TrainerAI.Strong | TrainerAI.Expert | TrainerAI.PokeChange); + + if (CHK_ForceFullyEvolved.Checked && pk.Level >= NUD_ForceFullyEvolved.Value && !FinalEvo.Contains(pk.Species)) + { + int randFinalEvo() => (int)(Util.Random32() % FinalEvo.Length); + pk.Species = FinalEvo[randFinalEvo()]; + pk.Form = Randomizer.GetRandomForme(pk.Species, CHK_RandomMegaForm.Checked, true, Main.SpeciesStat); + } + + pk.Moves = CB_Moves.SelectedIndex switch + { + // Random + 1 => move.GetRandomMoveset(pk.Species, 4), + // Current LevelUp + 2 => learn.GetCurrentMoves(pk.Species, pk.Form, pk.Level, 4), + // Metronome + 3 => [118, 0, 0, 0], + // Otherwise + _ => pk.Moves, + }; + + // high-power attacks + if (CHK_ForceHighPower.Checked && pk.Level >= NUD_ForceHighPower.Value) + pk.Moves = learn.GetHighPoweredMoves(pk.Species, pk.Form, 4); + + // sanitize moves + if (CB_Moves.SelectedIndex > 1) // learn source + { + var moves = pk.Moves; + if (move.SanitizeMovesetForBannedMoves(moves, pk.Species)) + pk.Moves = moves; + } + } + SaveData(tr, i); + } + WinFormsUtil.Alert("Randomized all Trainers according to specification!", "Press the Dump to .TXT button to view the new Trainer information!"); + } + + private void B_HighAttack_Click(object sender, EventArgs e) + { + pkm.Species = CB_Species.SelectedIndex; + pkm.Level = (int)NUD_Level.Value; + pkm.Form = CB_Forme.SelectedIndex; + var moves = learn.GetHighPoweredMoves(pkm.Species, pkm.Form, 4); + SetMoves(moves); + } + + private void B_CurrentAttack_Click(object sender, EventArgs e) + { + pkm.Species = CB_Species.SelectedIndex; + pkm.Level = (int)NUD_Level.Value; + pkm.Form = CB_Forme.SelectedIndex; + var moves = learn.GetCurrentMoves(pkm.Species, pkm.Form, pkm.Level, 4); + SetMoves(moves); + } + + private void B_Clear_Click(object sender, EventArgs e) => SetMoves(new int[4]); + + private void SetMoves(IList moves) + { + var mcb = new[] { CB_Move1, CB_Move2, CB_Move3, CB_Move4 }; + for (int i = 0; i < mcb.Length; i++) + mcb[i].SelectedIndex = moves[i]; + } + + // Randomization UI + private void CB_Moves_SelectedIndexChanged(object sender, EventArgs e) + { + CHK_Damage.Checked = CHK_STAB.Checked = + CHK_Damage.Enabled = CHK_STAB.Enabled = + NUD_Damage.Enabled = NUD_STAB.Enabled = CB_Moves.SelectedIndex == 1; + + CHK_ForceHighPower.Enabled = CHK_ForceHighPower.Checked = NUD_ForceHighPower.Enabled = + CHK_NoFixedDamage.Enabled = CHK_NoFixedDamage.Checked = CB_Moves.SelectedIndex is 1 or 2; + } + + private void CHK_Damage_CheckedChanged(object sender, EventArgs e) + { + NUD_Damage.Enabled = CHK_Damage.Checked; + } + + private void CHK_STAB_CheckedChanged(object sender, EventArgs e) + { + NUD_STAB.Enabled = CHK_STAB.Checked; + } + + private void CHK_RandomPKM_CheckedChanged(object sender, EventArgs e) + { + foreach (CheckBox c in new[] { CHK_G1, CHK_G2, CHK_G3, CHK_G4, CHK_G5, CHK_G6, CHK_G7, CHK_L, CHK_E, CHK_BST }) + { + c.Enabled = CHK_RandomPKM.Checked; + c.Checked = CHK_RandomPKM.Checked; + } + } + + private void CHK_RandomClass_CheckedChanged(object sender, EventArgs e) + { + CHK_IgnoreSpecialClass.Enabled = CHK_RandomClass.Checked; + if (!CHK_RandomClass.Checked) + CHK_IgnoreSpecialClass.Checked = false; + } + + private void CHK_RandomShiny_CheckedChanged(object sender, EventArgs e) + { + NUD_Shiny.Enabled = CHK_RandomShiny.Checked; + } + + private void CHK_Level_CheckedChanged(object sender, EventArgs e) + { + NUD_LevelBoost.Enabled = CHK_Level.Checked; + } + + private static int[] GetRandomMega(out int species) + { + int rnd = Util.Rand.Next(0, MegaDictionary.Count - 1); + species = MegaDictionary.Keys.ElementAt(rnd); + return MegaDictionary.Values.ElementAt(rnd); + } +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen7/SMTE.resx b/pk3DS.WinForms/Subforms/Gen7/SMTE.resx new file mode 100644 index 0000000000..b4ae0e8f06 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen7/SMTE.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 17, 17 + + \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen7/SMWE.Designer.cs b/pk3DS.WinForms/Subforms/Gen7/SMWE.Designer.cs new file mode 100644 index 0000000000..07fd4d1e45 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen7/SMWE.Designer.cs @@ -0,0 +1,3515 @@ +namespace pk3DS.WinForms; + +partial class SMWE +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.B_Randomize = new System.Windows.Forms.Button(); + this.B_Dump = new System.Windows.Forms.Button(); + this.L_Location = new System.Windows.Forms.Label(); + this.B_Save = new System.Windows.Forms.Button(); + this.CB_LocationID = new System.Windows.Forms.ComboBox(); + this.NUP_Min = new System.Windows.Forms.NumericUpDown(); + this.NUP_Max = new System.Windows.Forms.NumericUpDown(); + this.L_Min = new System.Windows.Forms.Label(); + this.L_Max = new System.Windows.Forms.Label(); + this.L_Table = new System.Windows.Forms.Label(); + this.GB_Encounters = new System.Windows.Forms.GroupBox(); + this.L_Sand = new System.Windows.Forms.Label(); + this.L_Hail = new System.Windows.Forms.Label(); + this.L_Rain = new System.Windows.Forms.Label(); + this.L_Weather1 = new System.Windows.Forms.Label(); + this.L_Weather0 = new System.Windows.Forms.Label(); + this.B_PasteAll = new System.Windows.Forms.Button(); + this.B_Paste = new System.Windows.Forms.Button(); + this.B_Copy = new System.Windows.Forms.Button(); + this.GB_Tweak = new System.Windows.Forms.GroupBox(); + this.CB_SlotRand = new System.Windows.Forms.ComboBox(); + this.L_SOS = new System.Windows.Forms.Label(); + this.CHK_G7 = new System.Windows.Forms.CheckBox(); + this.CHK_MegaForm = new System.Windows.Forms.CheckBox(); + this.L_RandOpt = new System.Windows.Forms.Label(); + this.CHK_BST = new System.Windows.Forms.CheckBox(); + this.CHK_E = new System.Windows.Forms.CheckBox(); + this.CHK_L = new System.Windows.Forms.CheckBox(); + this.CHK_G6 = new System.Windows.Forms.CheckBox(); + this.CHK_G5 = new System.Windows.Forms.CheckBox(); + this.CHK_G4 = new System.Windows.Forms.CheckBox(); + this.CHK_G3 = new System.Windows.Forms.CheckBox(); + this.CHK_G2 = new System.Windows.Forms.CheckBox(); + this.CHK_G1 = new System.Windows.Forms.CheckBox(); + this.B_LevelPlus = new System.Windows.Forms.Button(); + this.NUD_LevelAmp = new System.Windows.Forms.NumericUpDown(); + this.CHK_Level = new System.Windows.Forms.CheckBox(); + this.PB_NightIcon = new System.Windows.Forms.PictureBox(); + this.PB_DayIcon = new System.Windows.Forms.PictureBox(); + this.NUP_WeatherForme6 = new System.Windows.Forms.NumericUpDown(); + this.NUP_WeatherForme3 = new System.Windows.Forms.NumericUpDown(); + this.CB_WeatherEnc6 = new System.Windows.Forms.ComboBox(); + this.NUP_WeatherForme5 = new System.Windows.Forms.NumericUpDown(); + this.CB_WeatherEnc5 = new System.Windows.Forms.ComboBox(); + this.NUP_WeatherForme4 = new System.Windows.Forms.NumericUpDown(); + this.CB_WeatherEnc4 = new System.Windows.Forms.ComboBox(); + this.CB_WeatherEnc3 = new System.Windows.Forms.ComboBox(); + this.NUP_WeatherForme2 = new System.Windows.Forms.NumericUpDown(); + this.CB_WeatherEnc2 = new System.Windows.Forms.ComboBox(); + this.NUP_WeatherForme1 = new System.Windows.Forms.NumericUpDown(); + this.CB_WeatherEnc1 = new System.Windows.Forms.ComboBox(); + this.L_AddSOS = new System.Windows.Forms.Label(); + this.PB_NightTable = new System.Windows.Forms.PictureBox(); + this.PB_DayTable = new System.Windows.Forms.PictureBox(); + this.NUP_Forme80 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc80 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme79 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc79 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme78 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc78 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme77 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc77 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme76 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc76 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme75 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc75 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme74 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc74 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme73 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc73 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme72 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc72 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme71 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc71 = new System.Windows.Forms.ComboBox(); + this.L_SOS7 = new System.Windows.Forms.Label(); + this.NUP_Forme70 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc70 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme69 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc69 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme68 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc68 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme67 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc67 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme66 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc66 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme65 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc65 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme64 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc64 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme63 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc63 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme62 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc62 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme61 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc61 = new System.Windows.Forms.ComboBox(); + this.L_SOS6 = new System.Windows.Forms.Label(); + this.NUP_Forme60 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc60 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme59 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc59 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme58 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc58 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme57 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc57 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme56 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc56 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme55 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc55 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme54 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc54 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme53 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc53 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme52 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc52 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme51 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc51 = new System.Windows.Forms.ComboBox(); + this.L_SOS5 = new System.Windows.Forms.Label(); + this.NUP_Forme50 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc50 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme49 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc49 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme48 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc48 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme47 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc47 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme46 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc46 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme45 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc45 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme44 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc44 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme43 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc43 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme42 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc42 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme41 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc41 = new System.Windows.Forms.ComboBox(); + this.L_SOS4 = new System.Windows.Forms.Label(); + this.NUP_Forme40 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc40 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme39 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc39 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme38 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc38 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme37 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc37 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme36 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc36 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme35 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc35 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme34 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc34 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme33 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc33 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme32 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc32 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme31 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc31 = new System.Windows.Forms.ComboBox(); + this.L_SOS3 = new System.Windows.Forms.Label(); + this.NUP_Forme30 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc30 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme29 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc29 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme28 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc28 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme27 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc27 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme26 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc26 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme25 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc25 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme24 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc24 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme23 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc23 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme22 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc22 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme21 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc21 = new System.Windows.Forms.ComboBox(); + this.L_SOS2 = new System.Windows.Forms.Label(); + this.NUP_Forme20 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc20 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme19 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc19 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme18 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc18 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme17 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc17 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme16 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc16 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme15 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc15 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme14 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc14 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme13 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc13 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme12 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc12 = new System.Windows.Forms.ComboBox(); + this.NUP_Forme11 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc11 = new System.Windows.Forms.ComboBox(); + this.L_SOS1 = new System.Windows.Forms.Label(); + this.label1 = new System.Windows.Forms.Label(); + this.NUP_Forme10 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc10 = new System.Windows.Forms.ComboBox(); + this.NUP_Rate10 = new System.Windows.Forms.NumericUpDown(); + this.NUP_Forme09 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc09 = new System.Windows.Forms.ComboBox(); + this.NUP_Rate9 = new System.Windows.Forms.NumericUpDown(); + this.NUP_Forme08 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc08 = new System.Windows.Forms.ComboBox(); + this.NUP_Rate8 = new System.Windows.Forms.NumericUpDown(); + this.NUP_Forme07 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc07 = new System.Windows.Forms.ComboBox(); + this.NUP_Rate7 = new System.Windows.Forms.NumericUpDown(); + this.NUP_Forme06 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc06 = new System.Windows.Forms.ComboBox(); + this.NUP_Rate6 = new System.Windows.Forms.NumericUpDown(); + this.NUP_Forme05 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc05 = new System.Windows.Forms.ComboBox(); + this.NUP_Rate5 = new System.Windows.Forms.NumericUpDown(); + this.NUP_Forme04 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc04 = new System.Windows.Forms.ComboBox(); + this.NUP_Rate4 = new System.Windows.Forms.NumericUpDown(); + this.NUP_Forme03 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc03 = new System.Windows.Forms.ComboBox(); + this.NUP_Rate3 = new System.Windows.Forms.NumericUpDown(); + this.NUP_Forme02 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc02 = new System.Windows.Forms.ComboBox(); + this.NUP_Rate2 = new System.Windows.Forms.NumericUpDown(); + this.L_Rate = new System.Windows.Forms.Label(); + this.NUP_Forme01 = new System.Windows.Forms.NumericUpDown(); + this.CB_Enc01 = new System.Windows.Forms.ComboBox(); + this.NUP_Rate1 = new System.Windows.Forms.NumericUpDown(); + this.CB_TableID = new System.Windows.Forms.ComboBox(); + this.B_Export = new System.Windows.Forms.Button(); + this.CopySOS = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Min)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Max)).BeginInit(); + this.GB_Encounters.SuspendLayout(); + this.GB_Tweak.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_LevelAmp)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_NightIcon)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_DayIcon)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_WeatherForme6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_WeatherForme3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_WeatherForme5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_WeatherForme4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_WeatherForme2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_WeatherForme1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_NightTable)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_DayTable)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme80)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme79)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme78)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme77)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme76)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme75)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme74)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme73)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme72)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme71)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme70)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme69)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme68)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme67)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme66)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme65)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme64)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme63)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme62)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme61)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme60)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme59)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme58)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme57)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme56)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme55)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme54)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme53)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme52)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme51)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme50)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme49)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme48)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme47)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme46)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme45)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme44)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme43)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme42)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme41)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme40)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme39)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme38)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme37)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme36)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme35)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme34)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme33)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme32)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme31)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme30)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme29)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme28)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme27)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme26)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme25)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme24)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme23)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme22)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme21)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme20)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme19)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme18)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme17)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme16)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme15)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme14)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme13)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme12)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme11)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme10)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Rate10)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme09)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Rate9)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme08)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Rate8)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme07)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Rate7)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme06)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Rate6)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme05)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Rate5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme04)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Rate4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme03)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Rate3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme02)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Rate2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme01)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Rate1)).BeginInit(); + this.SuspendLayout(); + // + // B_Randomize + // + this.B_Randomize.Location = new System.Drawing.Point(812, 11); + this.B_Randomize.Name = "B_Randomize"; + this.B_Randomize.Size = new System.Drawing.Size(102, 23); + this.B_Randomize.TabIndex = 421; + this.B_Randomize.Text = "Randomize All"; + this.B_Randomize.UseVisualStyleBackColor = true; + this.B_Randomize.Click += new System.EventHandler(this.B_Randomize_Click); + // + // B_Dump + // + this.B_Dump.Location = new System.Drawing.Point(920, 11); + this.B_Dump.Name = "B_Dump"; + this.B_Dump.Size = new System.Drawing.Size(108, 23); + this.B_Dump.TabIndex = 420; + this.B_Dump.Text = "Dump Tables"; + this.B_Dump.UseVisualStyleBackColor = true; + this.B_Dump.Click += new System.EventHandler(this.DumpTables); + // + // L_Location + // + this.L_Location.AutoSize = true; + this.L_Location.Location = new System.Drawing.Point(38, 16); + this.L_Location.Name = "L_Location"; + this.L_Location.Size = new System.Drawing.Size(28, 13); + this.L_Location.TabIndex = 419; + this.L_Location.Text = "Loc:"; + // + // B_Save + // + this.B_Save.Location = new System.Drawing.Point(558, 11); + this.B_Save.Name = "B_Save"; + this.B_Save.Size = new System.Drawing.Size(135, 23); + this.B_Save.TabIndex = 418; + this.B_Save.Text = "Save Current Table"; + this.B_Save.UseVisualStyleBackColor = true; + this.B_Save.Click += new System.EventHandler(this.B_Save_Click); + // + // CB_LocationID + // + this.CB_LocationID.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_LocationID.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_LocationID.DropDownWidth = 350; + this.CB_LocationID.FormattingEnabled = true; + this.CB_LocationID.Location = new System.Drawing.Point(67, 12); + this.CB_LocationID.Name = "CB_LocationID"; + this.CB_LocationID.Size = new System.Drawing.Size(164, 21); + this.CB_LocationID.TabIndex = 417; + this.CB_LocationID.SelectedIndexChanged += new System.EventHandler(this.ChangeMap); + // + // NUP_Min + // + this.NUP_Min.Location = new System.Drawing.Point(434, 14); + this.NUP_Min.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.NUP_Min.Name = "NUP_Min"; + this.NUP_Min.Size = new System.Drawing.Size(41, 20); + this.NUP_Min.TabIndex = 423; + this.NUP_Min.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.NUP_Min.ValueChanged += new System.EventHandler(this.UpdateMinMax); + // + // NUP_Max + // + this.NUP_Max.Location = new System.Drawing.Point(505, 14); + this.NUP_Max.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.NUP_Max.Name = "NUP_Max"; + this.NUP_Max.Size = new System.Drawing.Size(41, 20); + this.NUP_Max.TabIndex = 424; + this.NUP_Max.Value = new decimal(new int[] { + 100, + 0, + 0, + 0}); + this.NUP_Max.ValueChanged += new System.EventHandler(this.UpdateMinMax); + // + // L_Min + // + this.L_Min.AutoSize = true; + this.L_Min.Location = new System.Drawing.Point(406, 16); + this.L_Min.Name = "L_Min"; + this.L_Min.Size = new System.Drawing.Size(24, 13); + this.L_Min.TabIndex = 425; + this.L_Min.Text = "Min"; + // + // L_Max + // + this.L_Max.AutoSize = true; + this.L_Max.Location = new System.Drawing.Point(478, 16); + this.L_Max.Name = "L_Max"; + this.L_Max.Size = new System.Drawing.Size(27, 13); + this.L_Max.TabIndex = 426; + this.L_Max.Text = "Max"; + // + // L_Table + // + this.L_Table.AutoSize = true; + this.L_Table.Location = new System.Drawing.Point(236, 16); + this.L_Table.Name = "L_Table"; + this.L_Table.Size = new System.Drawing.Size(34, 13); + this.L_Table.TabIndex = 428; + this.L_Table.Text = "Table"; + // + // GB_Encounters + // + this.GB_Encounters.Controls.Add(this.L_Sand); + this.GB_Encounters.Controls.Add(this.L_Hail); + this.GB_Encounters.Controls.Add(this.L_Rain); + this.GB_Encounters.Controls.Add(this.L_Weather1); + this.GB_Encounters.Controls.Add(this.L_Weather0); + this.GB_Encounters.Controls.Add(this.B_PasteAll); + this.GB_Encounters.Controls.Add(this.B_Paste); + this.GB_Encounters.Controls.Add(this.B_Copy); + this.GB_Encounters.Controls.Add(this.GB_Tweak); + this.GB_Encounters.Controls.Add(this.PB_NightIcon); + this.GB_Encounters.Controls.Add(this.PB_DayIcon); + this.GB_Encounters.Controls.Add(this.NUP_WeatherForme6); + this.GB_Encounters.Controls.Add(this.NUP_WeatherForme3); + this.GB_Encounters.Controls.Add(this.CB_WeatherEnc6); + this.GB_Encounters.Controls.Add(this.NUP_WeatherForme5); + this.GB_Encounters.Controls.Add(this.CB_WeatherEnc5); + this.GB_Encounters.Controls.Add(this.NUP_WeatherForme4); + this.GB_Encounters.Controls.Add(this.CB_WeatherEnc4); + this.GB_Encounters.Controls.Add(this.CB_WeatherEnc3); + this.GB_Encounters.Controls.Add(this.NUP_WeatherForme2); + this.GB_Encounters.Controls.Add(this.CB_WeatherEnc2); + this.GB_Encounters.Controls.Add(this.NUP_WeatherForme1); + this.GB_Encounters.Controls.Add(this.CB_WeatherEnc1); + this.GB_Encounters.Controls.Add(this.L_AddSOS); + this.GB_Encounters.Controls.Add(this.PB_NightTable); + this.GB_Encounters.Controls.Add(this.PB_DayTable); + this.GB_Encounters.Controls.Add(this.NUP_Forme80); + this.GB_Encounters.Controls.Add(this.CB_Enc80); + this.GB_Encounters.Controls.Add(this.NUP_Forme79); + this.GB_Encounters.Controls.Add(this.CB_Enc79); + this.GB_Encounters.Controls.Add(this.NUP_Forme78); + this.GB_Encounters.Controls.Add(this.CB_Enc78); + this.GB_Encounters.Controls.Add(this.NUP_Forme77); + this.GB_Encounters.Controls.Add(this.CB_Enc77); + this.GB_Encounters.Controls.Add(this.NUP_Forme76); + this.GB_Encounters.Controls.Add(this.CB_Enc76); + this.GB_Encounters.Controls.Add(this.NUP_Forme75); + this.GB_Encounters.Controls.Add(this.CB_Enc75); + this.GB_Encounters.Controls.Add(this.NUP_Forme74); + this.GB_Encounters.Controls.Add(this.CB_Enc74); + this.GB_Encounters.Controls.Add(this.NUP_Forme73); + this.GB_Encounters.Controls.Add(this.CB_Enc73); + this.GB_Encounters.Controls.Add(this.NUP_Forme72); + this.GB_Encounters.Controls.Add(this.CB_Enc72); + this.GB_Encounters.Controls.Add(this.NUP_Forme71); + this.GB_Encounters.Controls.Add(this.CB_Enc71); + this.GB_Encounters.Controls.Add(this.L_SOS7); + this.GB_Encounters.Controls.Add(this.NUP_Forme70); + this.GB_Encounters.Controls.Add(this.CB_Enc70); + this.GB_Encounters.Controls.Add(this.NUP_Forme69); + this.GB_Encounters.Controls.Add(this.CB_Enc69); + this.GB_Encounters.Controls.Add(this.NUP_Forme68); + this.GB_Encounters.Controls.Add(this.CB_Enc68); + this.GB_Encounters.Controls.Add(this.NUP_Forme67); + this.GB_Encounters.Controls.Add(this.CB_Enc67); + this.GB_Encounters.Controls.Add(this.NUP_Forme66); + this.GB_Encounters.Controls.Add(this.CB_Enc66); + this.GB_Encounters.Controls.Add(this.NUP_Forme65); + this.GB_Encounters.Controls.Add(this.CB_Enc65); + this.GB_Encounters.Controls.Add(this.NUP_Forme64); + this.GB_Encounters.Controls.Add(this.CB_Enc64); + this.GB_Encounters.Controls.Add(this.NUP_Forme63); + this.GB_Encounters.Controls.Add(this.CB_Enc63); + this.GB_Encounters.Controls.Add(this.NUP_Forme62); + this.GB_Encounters.Controls.Add(this.CB_Enc62); + this.GB_Encounters.Controls.Add(this.NUP_Forme61); + this.GB_Encounters.Controls.Add(this.CB_Enc61); + this.GB_Encounters.Controls.Add(this.L_SOS6); + this.GB_Encounters.Controls.Add(this.NUP_Forme60); + this.GB_Encounters.Controls.Add(this.CB_Enc60); + this.GB_Encounters.Controls.Add(this.NUP_Forme59); + this.GB_Encounters.Controls.Add(this.CB_Enc59); + this.GB_Encounters.Controls.Add(this.NUP_Forme58); + this.GB_Encounters.Controls.Add(this.CB_Enc58); + this.GB_Encounters.Controls.Add(this.NUP_Forme57); + this.GB_Encounters.Controls.Add(this.CB_Enc57); + this.GB_Encounters.Controls.Add(this.NUP_Forme56); + this.GB_Encounters.Controls.Add(this.CB_Enc56); + this.GB_Encounters.Controls.Add(this.NUP_Forme55); + this.GB_Encounters.Controls.Add(this.CB_Enc55); + this.GB_Encounters.Controls.Add(this.NUP_Forme54); + this.GB_Encounters.Controls.Add(this.CB_Enc54); + this.GB_Encounters.Controls.Add(this.NUP_Forme53); + this.GB_Encounters.Controls.Add(this.CB_Enc53); + this.GB_Encounters.Controls.Add(this.NUP_Forme52); + this.GB_Encounters.Controls.Add(this.CB_Enc52); + this.GB_Encounters.Controls.Add(this.NUP_Forme51); + this.GB_Encounters.Controls.Add(this.CB_Enc51); + this.GB_Encounters.Controls.Add(this.L_SOS5); + this.GB_Encounters.Controls.Add(this.NUP_Forme50); + this.GB_Encounters.Controls.Add(this.CB_Enc50); + this.GB_Encounters.Controls.Add(this.NUP_Forme49); + this.GB_Encounters.Controls.Add(this.CB_Enc49); + this.GB_Encounters.Controls.Add(this.NUP_Forme48); + this.GB_Encounters.Controls.Add(this.CB_Enc48); + this.GB_Encounters.Controls.Add(this.NUP_Forme47); + this.GB_Encounters.Controls.Add(this.CB_Enc47); + this.GB_Encounters.Controls.Add(this.NUP_Forme46); + this.GB_Encounters.Controls.Add(this.CB_Enc46); + this.GB_Encounters.Controls.Add(this.NUP_Forme45); + this.GB_Encounters.Controls.Add(this.CB_Enc45); + this.GB_Encounters.Controls.Add(this.NUP_Forme44); + this.GB_Encounters.Controls.Add(this.CB_Enc44); + this.GB_Encounters.Controls.Add(this.NUP_Forme43); + this.GB_Encounters.Controls.Add(this.CB_Enc43); + this.GB_Encounters.Controls.Add(this.NUP_Forme42); + this.GB_Encounters.Controls.Add(this.CB_Enc42); + this.GB_Encounters.Controls.Add(this.NUP_Forme41); + this.GB_Encounters.Controls.Add(this.CB_Enc41); + this.GB_Encounters.Controls.Add(this.L_SOS4); + this.GB_Encounters.Controls.Add(this.NUP_Forme40); + this.GB_Encounters.Controls.Add(this.CB_Enc40); + this.GB_Encounters.Controls.Add(this.NUP_Forme39); + this.GB_Encounters.Controls.Add(this.CB_Enc39); + this.GB_Encounters.Controls.Add(this.NUP_Forme38); + this.GB_Encounters.Controls.Add(this.CB_Enc38); + this.GB_Encounters.Controls.Add(this.NUP_Forme37); + this.GB_Encounters.Controls.Add(this.CB_Enc37); + this.GB_Encounters.Controls.Add(this.NUP_Forme36); + this.GB_Encounters.Controls.Add(this.CB_Enc36); + this.GB_Encounters.Controls.Add(this.NUP_Forme35); + this.GB_Encounters.Controls.Add(this.CB_Enc35); + this.GB_Encounters.Controls.Add(this.NUP_Forme34); + this.GB_Encounters.Controls.Add(this.CB_Enc34); + this.GB_Encounters.Controls.Add(this.NUP_Forme33); + this.GB_Encounters.Controls.Add(this.CB_Enc33); + this.GB_Encounters.Controls.Add(this.NUP_Forme32); + this.GB_Encounters.Controls.Add(this.CB_Enc32); + this.GB_Encounters.Controls.Add(this.NUP_Forme31); + this.GB_Encounters.Controls.Add(this.CB_Enc31); + this.GB_Encounters.Controls.Add(this.L_SOS3); + this.GB_Encounters.Controls.Add(this.NUP_Forme30); + this.GB_Encounters.Controls.Add(this.CB_Enc30); + this.GB_Encounters.Controls.Add(this.NUP_Forme29); + this.GB_Encounters.Controls.Add(this.CB_Enc29); + this.GB_Encounters.Controls.Add(this.NUP_Forme28); + this.GB_Encounters.Controls.Add(this.CB_Enc28); + this.GB_Encounters.Controls.Add(this.NUP_Forme27); + this.GB_Encounters.Controls.Add(this.CB_Enc27); + this.GB_Encounters.Controls.Add(this.NUP_Forme26); + this.GB_Encounters.Controls.Add(this.CB_Enc26); + this.GB_Encounters.Controls.Add(this.NUP_Forme25); + this.GB_Encounters.Controls.Add(this.CB_Enc25); + this.GB_Encounters.Controls.Add(this.NUP_Forme24); + this.GB_Encounters.Controls.Add(this.CB_Enc24); + this.GB_Encounters.Controls.Add(this.NUP_Forme23); + this.GB_Encounters.Controls.Add(this.CB_Enc23); + this.GB_Encounters.Controls.Add(this.NUP_Forme22); + this.GB_Encounters.Controls.Add(this.CB_Enc22); + this.GB_Encounters.Controls.Add(this.NUP_Forme21); + this.GB_Encounters.Controls.Add(this.CB_Enc21); + this.GB_Encounters.Controls.Add(this.L_SOS2); + this.GB_Encounters.Controls.Add(this.NUP_Forme20); + this.GB_Encounters.Controls.Add(this.CB_Enc20); + this.GB_Encounters.Controls.Add(this.NUP_Forme19); + this.GB_Encounters.Controls.Add(this.CB_Enc19); + this.GB_Encounters.Controls.Add(this.NUP_Forme18); + this.GB_Encounters.Controls.Add(this.CB_Enc18); + this.GB_Encounters.Controls.Add(this.NUP_Forme17); + this.GB_Encounters.Controls.Add(this.CB_Enc17); + this.GB_Encounters.Controls.Add(this.NUP_Forme16); + this.GB_Encounters.Controls.Add(this.CB_Enc16); + this.GB_Encounters.Controls.Add(this.NUP_Forme15); + this.GB_Encounters.Controls.Add(this.CB_Enc15); + this.GB_Encounters.Controls.Add(this.NUP_Forme14); + this.GB_Encounters.Controls.Add(this.CB_Enc14); + this.GB_Encounters.Controls.Add(this.NUP_Forme13); + this.GB_Encounters.Controls.Add(this.CB_Enc13); + this.GB_Encounters.Controls.Add(this.NUP_Forme12); + this.GB_Encounters.Controls.Add(this.CB_Enc12); + this.GB_Encounters.Controls.Add(this.NUP_Forme11); + this.GB_Encounters.Controls.Add(this.CB_Enc11); + this.GB_Encounters.Controls.Add(this.L_SOS1); + this.GB_Encounters.Controls.Add(this.label1); + this.GB_Encounters.Controls.Add(this.NUP_Forme10); + this.GB_Encounters.Controls.Add(this.CB_Enc10); + this.GB_Encounters.Controls.Add(this.NUP_Rate10); + this.GB_Encounters.Controls.Add(this.NUP_Forme09); + this.GB_Encounters.Controls.Add(this.CB_Enc09); + this.GB_Encounters.Controls.Add(this.NUP_Rate9); + this.GB_Encounters.Controls.Add(this.NUP_Forme08); + this.GB_Encounters.Controls.Add(this.CB_Enc08); + this.GB_Encounters.Controls.Add(this.NUP_Rate8); + this.GB_Encounters.Controls.Add(this.NUP_Forme07); + this.GB_Encounters.Controls.Add(this.CB_Enc07); + this.GB_Encounters.Controls.Add(this.NUP_Rate7); + this.GB_Encounters.Controls.Add(this.NUP_Forme06); + this.GB_Encounters.Controls.Add(this.CB_Enc06); + this.GB_Encounters.Controls.Add(this.NUP_Rate6); + this.GB_Encounters.Controls.Add(this.NUP_Forme05); + this.GB_Encounters.Controls.Add(this.CB_Enc05); + this.GB_Encounters.Controls.Add(this.NUP_Rate5); + this.GB_Encounters.Controls.Add(this.NUP_Forme04); + this.GB_Encounters.Controls.Add(this.CB_Enc04); + this.GB_Encounters.Controls.Add(this.NUP_Rate4); + this.GB_Encounters.Controls.Add(this.NUP_Forme03); + this.GB_Encounters.Controls.Add(this.CB_Enc03); + this.GB_Encounters.Controls.Add(this.NUP_Rate3); + this.GB_Encounters.Controls.Add(this.NUP_Forme02); + this.GB_Encounters.Controls.Add(this.CB_Enc02); + this.GB_Encounters.Controls.Add(this.NUP_Rate2); + this.GB_Encounters.Controls.Add(this.L_Rate); + this.GB_Encounters.Controls.Add(this.NUP_Forme01); + this.GB_Encounters.Controls.Add(this.CB_Enc01); + this.GB_Encounters.Controls.Add(this.NUP_Rate1); + this.GB_Encounters.Location = new System.Drawing.Point(14, 39); + this.GB_Encounters.Name = "GB_Encounters"; + this.GB_Encounters.Size = new System.Drawing.Size(1138, 561); + this.GB_Encounters.TabIndex = 430; + this.GB_Encounters.TabStop = false; + this.GB_Encounters.Text = "Encounters (100%)"; + // + // L_Sand + // + this.L_Sand.AutoSize = true; + this.L_Sand.Location = new System.Drawing.Point(254, 335); + this.L_Sand.Name = "L_Sand"; + this.L_Sand.Size = new System.Drawing.Size(32, 13); + this.L_Sand.TabIndex = 515; + this.L_Sand.Text = "Sand"; + // + // L_Hail + // + this.L_Hail.AutoSize = true; + this.L_Hail.Location = new System.Drawing.Point(254, 309); + this.L_Hail.Name = "L_Hail"; + this.L_Hail.Size = new System.Drawing.Size(25, 13); + this.L_Hail.TabIndex = 514; + this.L_Hail.Text = "Hail"; + // + // L_Rain + // + this.L_Rain.AutoSize = true; + this.L_Rain.Location = new System.Drawing.Point(254, 282); + this.L_Rain.Name = "L_Rain"; + this.L_Rain.Size = new System.Drawing.Size(29, 13); + this.L_Rain.TabIndex = 513; + this.L_Rain.Text = "Rain"; + // + // L_Weather1 + // + this.L_Weather1.AutoSize = true; + this.L_Weather1.Location = new System.Drawing.Point(222, 264); + this.L_Weather1.Name = "L_Weather1"; + this.L_Weather1.Size = new System.Drawing.Size(27, 13); + this.L_Weather1.TabIndex = 512; + this.L_Weather1.Text = "10%"; + // + // L_Weather0 + // + this.L_Weather0.AutoSize = true; + this.L_Weather0.Location = new System.Drawing.Point(114, 264); + this.L_Weather0.Name = "L_Weather0"; + this.L_Weather0.Size = new System.Drawing.Size(21, 13); + this.L_Weather0.TabIndex = 511; + this.L_Weather0.Text = "1%"; + // + // B_PasteAll + // + this.B_PasteAll.Enabled = false; + this.B_PasteAll.Location = new System.Drawing.Point(206, 359); + this.B_PasteAll.Name = "B_PasteAll"; + this.B_PasteAll.Size = new System.Drawing.Size(90, 40); + this.B_PasteAll.TabIndex = 510; + this.B_PasteAll.Text = "Paste To All (Location)"; + this.B_PasteAll.UseVisualStyleBackColor = true; + this.B_PasteAll.Click += new System.EventHandler(this.B_PasteAll_Click); + // + // B_Paste + // + this.B_Paste.Enabled = false; + this.B_Paste.Location = new System.Drawing.Point(110, 359); + this.B_Paste.Name = "B_Paste"; + this.B_Paste.Size = new System.Drawing.Size(90, 40); + this.B_Paste.TabIndex = 509; + this.B_Paste.Text = "Paste Current Table"; + this.B_Paste.UseVisualStyleBackColor = true; + this.B_Paste.Click += new System.EventHandler(this.B_Paste_Click); + // + // B_Copy + // + this.B_Copy.Location = new System.Drawing.Point(14, 359); + this.B_Copy.Name = "B_Copy"; + this.B_Copy.Size = new System.Drawing.Size(90, 40); + this.B_Copy.TabIndex = 508; + this.B_Copy.Text = "Copy Current Table"; + this.B_Copy.UseVisualStyleBackColor = true; + this.B_Copy.Click += new System.EventHandler(this.B_Copy_Click); + // + // GB_Tweak + // + this.GB_Tweak.Controls.Add(this.CB_SlotRand); + this.GB_Tweak.Controls.Add(this.L_SOS); + this.GB_Tweak.Controls.Add(this.CHK_G7); + this.GB_Tweak.Controls.Add(this.CHK_MegaForm); + this.GB_Tweak.Controls.Add(this.L_RandOpt); + this.GB_Tweak.Controls.Add(this.CHK_BST); + this.GB_Tweak.Controls.Add(this.CHK_E); + this.GB_Tweak.Controls.Add(this.CHK_L); + this.GB_Tweak.Controls.Add(this.CHK_G6); + this.GB_Tweak.Controls.Add(this.CHK_G5); + this.GB_Tweak.Controls.Add(this.CHK_G4); + this.GB_Tweak.Controls.Add(this.CHK_G3); + this.GB_Tweak.Controls.Add(this.CHK_G2); + this.GB_Tweak.Controls.Add(this.CHK_G1); + this.GB_Tweak.Controls.Add(this.B_LevelPlus); + this.GB_Tweak.Controls.Add(this.NUD_LevelAmp); + this.GB_Tweak.Controls.Add(this.CHK_Level); + this.GB_Tweak.Location = new System.Drawing.Point(14, 405); + this.GB_Tweak.Name = "GB_Tweak"; + this.GB_Tweak.Size = new System.Drawing.Size(282, 150); + this.GB_Tweak.TabIndex = 507; + this.GB_Tweak.TabStop = false; + this.GB_Tweak.Text = "Extra Randomization Tweaks"; + // + // CB_SlotRand + // + this.CB_SlotRand.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_SlotRand.DropDownWidth = 200; + this.CB_SlotRand.FormattingEnabled = true; + this.CB_SlotRand.Items.AddRange(new object[] { + "Randomize All", + "Randomize Regular Only", + "Randomize SOS Only", + "Randomize Regular, Copy to SOS"}); + this.CB_SlotRand.Location = new System.Drawing.Point(124, 120); + this.CB_SlotRand.Name = "CB_SlotRand"; + this.CB_SlotRand.Size = new System.Drawing.Size(121, 21); + this.CB_SlotRand.TabIndex = 299; + // + // L_SOS + // + this.L_SOS.Location = new System.Drawing.Point(-9, 117); + this.L_SOS.Name = "L_SOS"; + this.L_SOS.Size = new System.Drawing.Size(130, 23); + this.L_SOS.TabIndex = 298; + this.L_SOS.Text = "Slot Randomization:"; + this.L_SOS.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CHK_G7 + // + this.CHK_G7.AutoSize = true; + this.CHK_G7.Checked = true; + this.CHK_G7.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G7.Location = new System.Drawing.Point(19, 97); + this.CHK_G7.Name = "CHK_G7"; + this.CHK_G7.Size = new System.Drawing.Size(55, 17); + this.CHK_G7.TabIndex = 296; + this.CHK_G7.Text = "Gen 7"; + this.CHK_G7.UseVisualStyleBackColor = true; + // + // CHK_MegaForm + // + this.CHK_MegaForm.AutoSize = true; + this.CHK_MegaForm.Location = new System.Drawing.Point(138, 97); + this.CHK_MegaForm.Name = "CHK_MegaForm"; + this.CHK_MegaForm.Size = new System.Drawing.Size(127, 17); + this.CHK_MegaForm.TabIndex = 295; + this.CHK_MegaForm.Text = "Random Mega Forms"; + this.CHK_MegaForm.UseVisualStyleBackColor = true; + // + // L_RandOpt + // + this.L_RandOpt.AutoSize = true; + this.L_RandOpt.Location = new System.Drawing.Point(16, 34); + this.L_RandOpt.Name = "L_RandOpt"; + this.L_RandOpt.Size = new System.Drawing.Size(105, 13); + this.L_RandOpt.TabIndex = 294; + this.L_RandOpt.Text = "Randomizer Options:"; + // + // CHK_BST + // + this.CHK_BST.AutoSize = true; + this.CHK_BST.Location = new System.Drawing.Point(138, 82); + this.CHK_BST.Name = "CHK_BST"; + this.CHK_BST.Size = new System.Drawing.Size(117, 17); + this.CHK_BST.TabIndex = 288; + this.CHK_BST.Text = "Randomize by BST"; + this.CHK_BST.UseVisualStyleBackColor = true; + // + // CHK_E + // + this.CHK_E.AutoSize = true; + this.CHK_E.Checked = true; + this.CHK_E.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_E.Location = new System.Drawing.Point(138, 67); + this.CHK_E.Name = "CHK_E"; + this.CHK_E.Size = new System.Drawing.Size(98, 17); + this.CHK_E.TabIndex = 287; + this.CHK_E.Text = "Event Legends"; + this.CHK_E.UseVisualStyleBackColor = true; + // + // CHK_L + // + this.CHK_L.AutoSize = true; + this.CHK_L.Checked = true; + this.CHK_L.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_L.Location = new System.Drawing.Point(138, 52); + this.CHK_L.Name = "CHK_L"; + this.CHK_L.Size = new System.Drawing.Size(98, 17); + this.CHK_L.TabIndex = 286; + this.CHK_L.Text = "Game Legends"; + this.CHK_L.UseVisualStyleBackColor = true; + // + // CHK_G6 + // + this.CHK_G6.AutoSize = true; + this.CHK_G6.Checked = true; + this.CHK_G6.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G6.Location = new System.Drawing.Point(77, 82); + this.CHK_G6.Name = "CHK_G6"; + this.CHK_G6.Size = new System.Drawing.Size(55, 17); + this.CHK_G6.TabIndex = 285; + this.CHK_G6.Text = "Gen 6"; + this.CHK_G6.UseVisualStyleBackColor = true; + // + // CHK_G5 + // + this.CHK_G5.AutoSize = true; + this.CHK_G5.Checked = true; + this.CHK_G5.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G5.Location = new System.Drawing.Point(77, 67); + this.CHK_G5.Name = "CHK_G5"; + this.CHK_G5.Size = new System.Drawing.Size(55, 17); + this.CHK_G5.TabIndex = 284; + this.CHK_G5.Text = "Gen 5"; + this.CHK_G5.UseVisualStyleBackColor = true; + // + // CHK_G4 + // + this.CHK_G4.AutoSize = true; + this.CHK_G4.Checked = true; + this.CHK_G4.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G4.Location = new System.Drawing.Point(77, 52); + this.CHK_G4.Name = "CHK_G4"; + this.CHK_G4.Size = new System.Drawing.Size(55, 17); + this.CHK_G4.TabIndex = 283; + this.CHK_G4.Text = "Gen 4"; + this.CHK_G4.UseVisualStyleBackColor = true; + // + // CHK_G3 + // + this.CHK_G3.AutoSize = true; + this.CHK_G3.Checked = true; + this.CHK_G3.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G3.Location = new System.Drawing.Point(19, 82); + this.CHK_G3.Name = "CHK_G3"; + this.CHK_G3.Size = new System.Drawing.Size(55, 17); + this.CHK_G3.TabIndex = 282; + this.CHK_G3.Text = "Gen 3"; + this.CHK_G3.UseVisualStyleBackColor = true; + // + // CHK_G2 + // + this.CHK_G2.AutoSize = true; + this.CHK_G2.Checked = true; + this.CHK_G2.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G2.Location = new System.Drawing.Point(19, 67); + this.CHK_G2.Name = "CHK_G2"; + this.CHK_G2.Size = new System.Drawing.Size(55, 17); + this.CHK_G2.TabIndex = 281; + this.CHK_G2.Text = "Gen 2"; + this.CHK_G2.UseVisualStyleBackColor = true; + // + // CHK_G1 + // + this.CHK_G1.AutoSize = true; + this.CHK_G1.Checked = true; + this.CHK_G1.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G1.Location = new System.Drawing.Point(19, 52); + this.CHK_G1.Name = "CHK_G1"; + this.CHK_G1.Size = new System.Drawing.Size(55, 17); + this.CHK_G1.TabIndex = 280; + this.CHK_G1.Text = "Gen 1"; + this.CHK_G1.UseVisualStyleBackColor = true; + // + // B_LevelPlus + // + this.B_LevelPlus.Location = new System.Drawing.Point(203, 14); + this.B_LevelPlus.Name = "B_LevelPlus"; + this.B_LevelPlus.Size = new System.Drawing.Size(66, 23); + this.B_LevelPlus.TabIndex = 277; + this.B_LevelPlus.Text = "× Current"; + this.B_LevelPlus.UseVisualStyleBackColor = true; + this.B_LevelPlus.Click += new System.EventHandler(this.ModifyAllLevelRanges); + // + // NUD_LevelAmp + // + this.NUD_LevelAmp.DecimalPlaces = 2; + this.NUD_LevelAmp.Increment = new decimal(new int[] { + 5, + 0, + 0, + 131072}); + this.NUD_LevelAmp.Location = new System.Drawing.Point(152, 16); + this.NUD_LevelAmp.Maximum = new decimal(new int[] { + 3, + 0, + 0, + 0}); + this.NUD_LevelAmp.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 65536}); + this.NUD_LevelAmp.Name = "NUD_LevelAmp"; + this.NUD_LevelAmp.Size = new System.Drawing.Size(48, 20); + this.NUD_LevelAmp.TabIndex = 276; + this.NUD_LevelAmp.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // CHK_Level + // + this.CHK_Level.AutoSize = true; + this.CHK_Level.Location = new System.Drawing.Point(19, 17); + this.CHK_Level.Name = "CHK_Level"; + this.CHK_Level.Size = new System.Drawing.Size(130, 17); + this.CHK_Level.TabIndex = 279; + this.CHK_Level.Text = "Multiply PKM Level by"; + this.CHK_Level.UseVisualStyleBackColor = true; + // + // PB_NightIcon + // + this.PB_NightIcon.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.PB_NightIcon.Location = new System.Drawing.Point(708, 256); + this.PB_NightIcon.Name = "PB_NightIcon"; + this.PB_NightIcon.Size = new System.Drawing.Size(20, 20); + this.PB_NightIcon.TabIndex = 506; + this.PB_NightIcon.TabStop = false; + // + // PB_DayIcon + // + this.PB_DayIcon.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.PB_DayIcon.Location = new System.Drawing.Point(278, 255); + this.PB_DayIcon.Name = "PB_DayIcon"; + this.PB_DayIcon.Size = new System.Drawing.Size(20, 20); + this.PB_DayIcon.TabIndex = 505; + this.PB_DayIcon.TabStop = false; + // + // NUP_WeatherForme6 + // + this.NUP_WeatherForme6.Location = new System.Drawing.Point(220, 332); + this.NUP_WeatherForme6.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_WeatherForme6.Name = "NUP_WeatherForme6"; + this.NUP_WeatherForme6.Size = new System.Drawing.Size(31, 20); + this.NUP_WeatherForme6.TabIndex = 504; + // + // NUP_WeatherForme3 + // + this.NUP_WeatherForme3.Location = new System.Drawing.Point(111, 307); + this.NUP_WeatherForme3.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_WeatherForme3.Name = "NUP_WeatherForme3"; + this.NUP_WeatherForme3.Size = new System.Drawing.Size(31, 20); + this.NUP_WeatherForme3.TabIndex = 503; + // + // CB_WeatherEnc6 + // + this.CB_WeatherEnc6.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_WeatherEnc6.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_WeatherEnc6.FormattingEnabled = true; + this.CB_WeatherEnc6.Location = new System.Drawing.Point(145, 332); + this.CB_WeatherEnc6.Name = "CB_WeatherEnc6"; + this.CB_WeatherEnc6.Size = new System.Drawing.Size(72, 21); + this.CB_WeatherEnc6.TabIndex = 502; + // + // NUP_WeatherForme5 + // + this.NUP_WeatherForme5.Location = new System.Drawing.Point(111, 333); + this.NUP_WeatherForme5.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_WeatherForme5.Name = "NUP_WeatherForme5"; + this.NUP_WeatherForme5.Size = new System.Drawing.Size(31, 20); + this.NUP_WeatherForme5.TabIndex = 501; + // + // CB_WeatherEnc5 + // + this.CB_WeatherEnc5.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_WeatherEnc5.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_WeatherEnc5.FormattingEnabled = true; + this.CB_WeatherEnc5.Location = new System.Drawing.Point(36, 332); + this.CB_WeatherEnc5.Name = "CB_WeatherEnc5"; + this.CB_WeatherEnc5.Size = new System.Drawing.Size(72, 21); + this.CB_WeatherEnc5.TabIndex = 500; + // + // NUP_WeatherForme4 + // + this.NUP_WeatherForme4.Location = new System.Drawing.Point(220, 307); + this.NUP_WeatherForme4.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_WeatherForme4.Name = "NUP_WeatherForme4"; + this.NUP_WeatherForme4.Size = new System.Drawing.Size(31, 20); + this.NUP_WeatherForme4.TabIndex = 499; + // + // CB_WeatherEnc4 + // + this.CB_WeatherEnc4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_WeatherEnc4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_WeatherEnc4.FormattingEnabled = true; + this.CB_WeatherEnc4.Location = new System.Drawing.Point(145, 306); + this.CB_WeatherEnc4.Name = "CB_WeatherEnc4"; + this.CB_WeatherEnc4.Size = new System.Drawing.Size(72, 21); + this.CB_WeatherEnc4.TabIndex = 498; + // + // CB_WeatherEnc3 + // + this.CB_WeatherEnc3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_WeatherEnc3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_WeatherEnc3.FormattingEnabled = true; + this.CB_WeatherEnc3.Location = new System.Drawing.Point(36, 306); + this.CB_WeatherEnc3.Name = "CB_WeatherEnc3"; + this.CB_WeatherEnc3.Size = new System.Drawing.Size(72, 21); + this.CB_WeatherEnc3.TabIndex = 497; + // + // NUP_WeatherForme2 + // + this.NUP_WeatherForme2.Location = new System.Drawing.Point(220, 280); + this.NUP_WeatherForme2.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_WeatherForme2.Name = "NUP_WeatherForme2"; + this.NUP_WeatherForme2.Size = new System.Drawing.Size(31, 20); + this.NUP_WeatherForme2.TabIndex = 496; + // + // CB_WeatherEnc2 + // + this.CB_WeatherEnc2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_WeatherEnc2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_WeatherEnc2.FormattingEnabled = true; + this.CB_WeatherEnc2.Location = new System.Drawing.Point(145, 279); + this.CB_WeatherEnc2.Name = "CB_WeatherEnc2"; + this.CB_WeatherEnc2.Size = new System.Drawing.Size(72, 21); + this.CB_WeatherEnc2.TabIndex = 495; + // + // NUP_WeatherForme1 + // + this.NUP_WeatherForme1.Location = new System.Drawing.Point(111, 280); + this.NUP_WeatherForme1.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_WeatherForme1.Name = "NUP_WeatherForme1"; + this.NUP_WeatherForme1.Size = new System.Drawing.Size(31, 20); + this.NUP_WeatherForme1.TabIndex = 494; + // + // CB_WeatherEnc1 + // + this.CB_WeatherEnc1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_WeatherEnc1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_WeatherEnc1.FormattingEnabled = true; + this.CB_WeatherEnc1.Location = new System.Drawing.Point(36, 279); + this.CB_WeatherEnc1.Name = "CB_WeatherEnc1"; + this.CB_WeatherEnc1.Size = new System.Drawing.Size(72, 21); + this.CB_WeatherEnc1.TabIndex = 493; + // + // L_AddSOS + // + this.L_AddSOS.AutoSize = true; + this.L_AddSOS.Location = new System.Drawing.Point(15, 256); + this.L_AddSOS.Name = "L_AddSOS"; + this.L_AddSOS.Size = new System.Drawing.Size(76, 13); + this.L_AddSOS.TabIndex = 492; + this.L_AddSOS.Text = "Weather SOS:"; + // + // PB_NightTable + // + this.PB_NightTable.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.PB_NightTable.Location = new System.Drawing.Point(732, 255); + this.PB_NightTable.Name = "PB_NightTable"; + this.PB_NightTable.Size = new System.Drawing.Size(400, 300); + this.PB_NightTable.TabIndex = 491; + this.PB_NightTable.TabStop = false; + // + // PB_DayTable + // + this.PB_DayTable.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.PB_DayTable.Location = new System.Drawing.Point(302, 255); + this.PB_DayTable.Name = "PB_DayTable"; + this.PB_DayTable.Size = new System.Drawing.Size(400, 300); + this.PB_DayTable.TabIndex = 490; + this.PB_DayTable.TabStop = false; + // + // NUP_Forme80 + // + this.NUP_Forme80.Location = new System.Drawing.Point(1101, 229); + this.NUP_Forme80.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme80.Name = "NUP_Forme80"; + this.NUP_Forme80.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme80.TabIndex = 489; + // + // CB_Enc80 + // + this.CB_Enc80.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc80.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc80.FormattingEnabled = true; + this.CB_Enc80.Location = new System.Drawing.Point(1026, 229); + this.CB_Enc80.Name = "CB_Enc80"; + this.CB_Enc80.Size = new System.Drawing.Size(72, 21); + this.CB_Enc80.TabIndex = 488; + // + // NUP_Forme79 + // + this.NUP_Forme79.Location = new System.Drawing.Point(993, 230); + this.NUP_Forme79.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme79.Name = "NUP_Forme79"; + this.NUP_Forme79.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme79.TabIndex = 487; + // + // CB_Enc79 + // + this.CB_Enc79.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc79.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc79.FormattingEnabled = true; + this.CB_Enc79.Location = new System.Drawing.Point(918, 229); + this.CB_Enc79.Name = "CB_Enc79"; + this.CB_Enc79.Size = new System.Drawing.Size(72, 21); + this.CB_Enc79.TabIndex = 486; + // + // NUP_Forme78 + // + this.NUP_Forme78.Location = new System.Drawing.Point(885, 230); + this.NUP_Forme78.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme78.Name = "NUP_Forme78"; + this.NUP_Forme78.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme78.TabIndex = 485; + // + // CB_Enc78 + // + this.CB_Enc78.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc78.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc78.FormattingEnabled = true; + this.CB_Enc78.Location = new System.Drawing.Point(810, 229); + this.CB_Enc78.Name = "CB_Enc78"; + this.CB_Enc78.Size = new System.Drawing.Size(72, 21); + this.CB_Enc78.TabIndex = 484; + // + // NUP_Forme77 + // + this.NUP_Forme77.Location = new System.Drawing.Point(777, 230); + this.NUP_Forme77.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme77.Name = "NUP_Forme77"; + this.NUP_Forme77.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme77.TabIndex = 483; + // + // CB_Enc77 + // + this.CB_Enc77.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc77.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc77.FormattingEnabled = true; + this.CB_Enc77.Location = new System.Drawing.Point(702, 229); + this.CB_Enc77.Name = "CB_Enc77"; + this.CB_Enc77.Size = new System.Drawing.Size(72, 21); + this.CB_Enc77.TabIndex = 482; + // + // NUP_Forme76 + // + this.NUP_Forme76.Location = new System.Drawing.Point(668, 230); + this.NUP_Forme76.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme76.Name = "NUP_Forme76"; + this.NUP_Forme76.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme76.TabIndex = 481; + // + // CB_Enc76 + // + this.CB_Enc76.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc76.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc76.FormattingEnabled = true; + this.CB_Enc76.Location = new System.Drawing.Point(593, 229); + this.CB_Enc76.Name = "CB_Enc76"; + this.CB_Enc76.Size = new System.Drawing.Size(72, 21); + this.CB_Enc76.TabIndex = 480; + // + // NUP_Forme75 + // + this.NUP_Forme75.Location = new System.Drawing.Point(560, 230); + this.NUP_Forme75.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme75.Name = "NUP_Forme75"; + this.NUP_Forme75.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme75.TabIndex = 479; + // + // CB_Enc75 + // + this.CB_Enc75.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc75.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc75.FormattingEnabled = true; + this.CB_Enc75.Location = new System.Drawing.Point(485, 229); + this.CB_Enc75.Name = "CB_Enc75"; + this.CB_Enc75.Size = new System.Drawing.Size(72, 21); + this.CB_Enc75.TabIndex = 478; + // + // NUP_Forme74 + // + this.NUP_Forme74.Location = new System.Drawing.Point(452, 230); + this.NUP_Forme74.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme74.Name = "NUP_Forme74"; + this.NUP_Forme74.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme74.TabIndex = 477; + // + // CB_Enc74 + // + this.CB_Enc74.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc74.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc74.FormattingEnabled = true; + this.CB_Enc74.Location = new System.Drawing.Point(378, 229); + this.CB_Enc74.Name = "CB_Enc74"; + this.CB_Enc74.Size = new System.Drawing.Size(72, 21); + this.CB_Enc74.TabIndex = 476; + // + // NUP_Forme73 + // + this.NUP_Forme73.Location = new System.Drawing.Point(345, 230); + this.NUP_Forme73.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme73.Name = "NUP_Forme73"; + this.NUP_Forme73.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme73.TabIndex = 475; + // + // CB_Enc73 + // + this.CB_Enc73.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc73.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc73.FormattingEnabled = true; + this.CB_Enc73.Location = new System.Drawing.Point(271, 229); + this.CB_Enc73.Name = "CB_Enc73"; + this.CB_Enc73.Size = new System.Drawing.Size(72, 21); + this.CB_Enc73.TabIndex = 474; + // + // NUP_Forme72 + // + this.NUP_Forme72.Location = new System.Drawing.Point(238, 230); + this.NUP_Forme72.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme72.Name = "NUP_Forme72"; + this.NUP_Forme72.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme72.TabIndex = 473; + // + // CB_Enc72 + // + this.CB_Enc72.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc72.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc72.FormattingEnabled = true; + this.CB_Enc72.Location = new System.Drawing.Point(163, 229); + this.CB_Enc72.Name = "CB_Enc72"; + this.CB_Enc72.Size = new System.Drawing.Size(72, 21); + this.CB_Enc72.TabIndex = 472; + // + // NUP_Forme71 + // + this.NUP_Forme71.Location = new System.Drawing.Point(129, 230); + this.NUP_Forme71.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme71.Name = "NUP_Forme71"; + this.NUP_Forme71.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme71.TabIndex = 471; + // + // CB_Enc71 + // + this.CB_Enc71.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc71.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc71.FormattingEnabled = true; + this.CB_Enc71.Location = new System.Drawing.Point(54, 229); + this.CB_Enc71.Name = "CB_Enc71"; + this.CB_Enc71.Size = new System.Drawing.Size(72, 21); + this.CB_Enc71.TabIndex = 470; + // + // L_SOS7 + // + this.L_SOS7.AutoSize = true; + this.L_SOS7.Location = new System.Drawing.Point(12, 233); + this.L_SOS7.Name = "L_SOS7"; + this.L_SOS7.Size = new System.Drawing.Size(41, 13); + this.L_SOS7.TabIndex = 469; + this.L_SOS7.Text = "SOS 7:"; + // + // NUP_Forme70 + // + this.NUP_Forme70.Location = new System.Drawing.Point(1101, 202); + this.NUP_Forme70.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme70.Name = "NUP_Forme70"; + this.NUP_Forme70.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme70.TabIndex = 468; + // + // CB_Enc70 + // + this.CB_Enc70.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc70.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc70.FormattingEnabled = true; + this.CB_Enc70.Location = new System.Drawing.Point(1026, 202); + this.CB_Enc70.Name = "CB_Enc70"; + this.CB_Enc70.Size = new System.Drawing.Size(72, 21); + this.CB_Enc70.TabIndex = 467; + // + // NUP_Forme69 + // + this.NUP_Forme69.Location = new System.Drawing.Point(993, 203); + this.NUP_Forme69.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme69.Name = "NUP_Forme69"; + this.NUP_Forme69.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme69.TabIndex = 466; + // + // CB_Enc69 + // + this.CB_Enc69.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc69.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc69.FormattingEnabled = true; + this.CB_Enc69.Location = new System.Drawing.Point(918, 202); + this.CB_Enc69.Name = "CB_Enc69"; + this.CB_Enc69.Size = new System.Drawing.Size(72, 21); + this.CB_Enc69.TabIndex = 465; + // + // NUP_Forme68 + // + this.NUP_Forme68.Location = new System.Drawing.Point(885, 203); + this.NUP_Forme68.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme68.Name = "NUP_Forme68"; + this.NUP_Forme68.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme68.TabIndex = 464; + // + // CB_Enc68 + // + this.CB_Enc68.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc68.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc68.FormattingEnabled = true; + this.CB_Enc68.Location = new System.Drawing.Point(810, 202); + this.CB_Enc68.Name = "CB_Enc68"; + this.CB_Enc68.Size = new System.Drawing.Size(72, 21); + this.CB_Enc68.TabIndex = 463; + // + // NUP_Forme67 + // + this.NUP_Forme67.Location = new System.Drawing.Point(777, 203); + this.NUP_Forme67.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme67.Name = "NUP_Forme67"; + this.NUP_Forme67.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme67.TabIndex = 462; + // + // CB_Enc67 + // + this.CB_Enc67.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc67.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc67.FormattingEnabled = true; + this.CB_Enc67.Location = new System.Drawing.Point(702, 202); + this.CB_Enc67.Name = "CB_Enc67"; + this.CB_Enc67.Size = new System.Drawing.Size(72, 21); + this.CB_Enc67.TabIndex = 461; + // + // NUP_Forme66 + // + this.NUP_Forme66.Location = new System.Drawing.Point(668, 203); + this.NUP_Forme66.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme66.Name = "NUP_Forme66"; + this.NUP_Forme66.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme66.TabIndex = 460; + // + // CB_Enc66 + // + this.CB_Enc66.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc66.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc66.FormattingEnabled = true; + this.CB_Enc66.Location = new System.Drawing.Point(593, 202); + this.CB_Enc66.Name = "CB_Enc66"; + this.CB_Enc66.Size = new System.Drawing.Size(72, 21); + this.CB_Enc66.TabIndex = 459; + // + // NUP_Forme65 + // + this.NUP_Forme65.Location = new System.Drawing.Point(560, 203); + this.NUP_Forme65.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme65.Name = "NUP_Forme65"; + this.NUP_Forme65.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme65.TabIndex = 458; + // + // CB_Enc65 + // + this.CB_Enc65.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc65.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc65.FormattingEnabled = true; + this.CB_Enc65.Location = new System.Drawing.Point(485, 202); + this.CB_Enc65.Name = "CB_Enc65"; + this.CB_Enc65.Size = new System.Drawing.Size(72, 21); + this.CB_Enc65.TabIndex = 457; + // + // NUP_Forme64 + // + this.NUP_Forme64.Location = new System.Drawing.Point(452, 203); + this.NUP_Forme64.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme64.Name = "NUP_Forme64"; + this.NUP_Forme64.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme64.TabIndex = 456; + // + // CB_Enc64 + // + this.CB_Enc64.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc64.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc64.FormattingEnabled = true; + this.CB_Enc64.Location = new System.Drawing.Point(378, 202); + this.CB_Enc64.Name = "CB_Enc64"; + this.CB_Enc64.Size = new System.Drawing.Size(72, 21); + this.CB_Enc64.TabIndex = 455; + // + // NUP_Forme63 + // + this.NUP_Forme63.Location = new System.Drawing.Point(345, 203); + this.NUP_Forme63.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme63.Name = "NUP_Forme63"; + this.NUP_Forme63.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme63.TabIndex = 454; + // + // CB_Enc63 + // + this.CB_Enc63.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc63.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc63.FormattingEnabled = true; + this.CB_Enc63.Location = new System.Drawing.Point(271, 202); + this.CB_Enc63.Name = "CB_Enc63"; + this.CB_Enc63.Size = new System.Drawing.Size(72, 21); + this.CB_Enc63.TabIndex = 453; + // + // NUP_Forme62 + // + this.NUP_Forme62.Location = new System.Drawing.Point(238, 203); + this.NUP_Forme62.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme62.Name = "NUP_Forme62"; + this.NUP_Forme62.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme62.TabIndex = 452; + // + // CB_Enc62 + // + this.CB_Enc62.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc62.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc62.FormattingEnabled = true; + this.CB_Enc62.Location = new System.Drawing.Point(163, 202); + this.CB_Enc62.Name = "CB_Enc62"; + this.CB_Enc62.Size = new System.Drawing.Size(72, 21); + this.CB_Enc62.TabIndex = 451; + // + // NUP_Forme61 + // + this.NUP_Forme61.Location = new System.Drawing.Point(129, 203); + this.NUP_Forme61.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme61.Name = "NUP_Forme61"; + this.NUP_Forme61.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme61.TabIndex = 450; + // + // CB_Enc61 + // + this.CB_Enc61.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc61.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc61.FormattingEnabled = true; + this.CB_Enc61.Location = new System.Drawing.Point(54, 202); + this.CB_Enc61.Name = "CB_Enc61"; + this.CB_Enc61.Size = new System.Drawing.Size(72, 21); + this.CB_Enc61.TabIndex = 449; + // + // L_SOS6 + // + this.L_SOS6.AutoSize = true; + this.L_SOS6.Location = new System.Drawing.Point(12, 206); + this.L_SOS6.Name = "L_SOS6"; + this.L_SOS6.Size = new System.Drawing.Size(41, 13); + this.L_SOS6.TabIndex = 448; + this.L_SOS6.Text = "SOS 6:"; + // + // NUP_Forme60 + // + this.NUP_Forme60.Location = new System.Drawing.Point(1101, 175); + this.NUP_Forme60.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme60.Name = "NUP_Forme60"; + this.NUP_Forme60.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme60.TabIndex = 447; + // + // CB_Enc60 + // + this.CB_Enc60.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc60.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc60.FormattingEnabled = true; + this.CB_Enc60.Location = new System.Drawing.Point(1026, 175); + this.CB_Enc60.Name = "CB_Enc60"; + this.CB_Enc60.Size = new System.Drawing.Size(72, 21); + this.CB_Enc60.TabIndex = 446; + // + // NUP_Forme59 + // + this.NUP_Forme59.Location = new System.Drawing.Point(993, 176); + this.NUP_Forme59.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme59.Name = "NUP_Forme59"; + this.NUP_Forme59.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme59.TabIndex = 445; + // + // CB_Enc59 + // + this.CB_Enc59.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc59.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc59.FormattingEnabled = true; + this.CB_Enc59.Location = new System.Drawing.Point(918, 175); + this.CB_Enc59.Name = "CB_Enc59"; + this.CB_Enc59.Size = new System.Drawing.Size(72, 21); + this.CB_Enc59.TabIndex = 444; + // + // NUP_Forme58 + // + this.NUP_Forme58.Location = new System.Drawing.Point(885, 176); + this.NUP_Forme58.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme58.Name = "NUP_Forme58"; + this.NUP_Forme58.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme58.TabIndex = 443; + // + // CB_Enc58 + // + this.CB_Enc58.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc58.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc58.FormattingEnabled = true; + this.CB_Enc58.Location = new System.Drawing.Point(810, 175); + this.CB_Enc58.Name = "CB_Enc58"; + this.CB_Enc58.Size = new System.Drawing.Size(72, 21); + this.CB_Enc58.TabIndex = 442; + // + // NUP_Forme57 + // + this.NUP_Forme57.Location = new System.Drawing.Point(777, 176); + this.NUP_Forme57.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme57.Name = "NUP_Forme57"; + this.NUP_Forme57.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme57.TabIndex = 441; + // + // CB_Enc57 + // + this.CB_Enc57.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc57.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc57.FormattingEnabled = true; + this.CB_Enc57.Location = new System.Drawing.Point(702, 175); + this.CB_Enc57.Name = "CB_Enc57"; + this.CB_Enc57.Size = new System.Drawing.Size(72, 21); + this.CB_Enc57.TabIndex = 440; + // + // NUP_Forme56 + // + this.NUP_Forme56.Location = new System.Drawing.Point(668, 176); + this.NUP_Forme56.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme56.Name = "NUP_Forme56"; + this.NUP_Forme56.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme56.TabIndex = 439; + // + // CB_Enc56 + // + this.CB_Enc56.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc56.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc56.FormattingEnabled = true; + this.CB_Enc56.Location = new System.Drawing.Point(593, 175); + this.CB_Enc56.Name = "CB_Enc56"; + this.CB_Enc56.Size = new System.Drawing.Size(72, 21); + this.CB_Enc56.TabIndex = 438; + // + // NUP_Forme55 + // + this.NUP_Forme55.Location = new System.Drawing.Point(560, 176); + this.NUP_Forme55.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme55.Name = "NUP_Forme55"; + this.NUP_Forme55.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme55.TabIndex = 437; + // + // CB_Enc55 + // + this.CB_Enc55.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc55.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc55.FormattingEnabled = true; + this.CB_Enc55.Location = new System.Drawing.Point(485, 175); + this.CB_Enc55.Name = "CB_Enc55"; + this.CB_Enc55.Size = new System.Drawing.Size(72, 21); + this.CB_Enc55.TabIndex = 436; + // + // NUP_Forme54 + // + this.NUP_Forme54.Location = new System.Drawing.Point(452, 176); + this.NUP_Forme54.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme54.Name = "NUP_Forme54"; + this.NUP_Forme54.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme54.TabIndex = 435; + // + // CB_Enc54 + // + this.CB_Enc54.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc54.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc54.FormattingEnabled = true; + this.CB_Enc54.Location = new System.Drawing.Point(378, 175); + this.CB_Enc54.Name = "CB_Enc54"; + this.CB_Enc54.Size = new System.Drawing.Size(72, 21); + this.CB_Enc54.TabIndex = 434; + // + // NUP_Forme53 + // + this.NUP_Forme53.Location = new System.Drawing.Point(345, 176); + this.NUP_Forme53.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme53.Name = "NUP_Forme53"; + this.NUP_Forme53.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme53.TabIndex = 433; + // + // CB_Enc53 + // + this.CB_Enc53.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc53.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc53.FormattingEnabled = true; + this.CB_Enc53.Location = new System.Drawing.Point(271, 175); + this.CB_Enc53.Name = "CB_Enc53"; + this.CB_Enc53.Size = new System.Drawing.Size(72, 21); + this.CB_Enc53.TabIndex = 432; + // + // NUP_Forme52 + // + this.NUP_Forme52.Location = new System.Drawing.Point(238, 176); + this.NUP_Forme52.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme52.Name = "NUP_Forme52"; + this.NUP_Forme52.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme52.TabIndex = 431; + // + // CB_Enc52 + // + this.CB_Enc52.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc52.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc52.FormattingEnabled = true; + this.CB_Enc52.Location = new System.Drawing.Point(163, 175); + this.CB_Enc52.Name = "CB_Enc52"; + this.CB_Enc52.Size = new System.Drawing.Size(72, 21); + this.CB_Enc52.TabIndex = 430; + // + // NUP_Forme51 + // + this.NUP_Forme51.Location = new System.Drawing.Point(129, 176); + this.NUP_Forme51.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme51.Name = "NUP_Forme51"; + this.NUP_Forme51.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme51.TabIndex = 429; + // + // CB_Enc51 + // + this.CB_Enc51.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc51.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc51.FormattingEnabled = true; + this.CB_Enc51.Location = new System.Drawing.Point(54, 175); + this.CB_Enc51.Name = "CB_Enc51"; + this.CB_Enc51.Size = new System.Drawing.Size(72, 21); + this.CB_Enc51.TabIndex = 428; + // + // L_SOS5 + // + this.L_SOS5.AutoSize = true; + this.L_SOS5.Location = new System.Drawing.Point(12, 179); + this.L_SOS5.Name = "L_SOS5"; + this.L_SOS5.Size = new System.Drawing.Size(41, 13); + this.L_SOS5.TabIndex = 427; + this.L_SOS5.Text = "SOS 5:"; + // + // NUP_Forme50 + // + this.NUP_Forme50.Location = new System.Drawing.Point(1101, 148); + this.NUP_Forme50.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme50.Name = "NUP_Forme50"; + this.NUP_Forme50.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme50.TabIndex = 426; + // + // CB_Enc50 + // + this.CB_Enc50.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc50.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc50.FormattingEnabled = true; + this.CB_Enc50.Location = new System.Drawing.Point(1026, 148); + this.CB_Enc50.Name = "CB_Enc50"; + this.CB_Enc50.Size = new System.Drawing.Size(72, 21); + this.CB_Enc50.TabIndex = 425; + // + // NUP_Forme49 + // + this.NUP_Forme49.Location = new System.Drawing.Point(993, 149); + this.NUP_Forme49.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme49.Name = "NUP_Forme49"; + this.NUP_Forme49.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme49.TabIndex = 424; + // + // CB_Enc49 + // + this.CB_Enc49.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc49.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc49.FormattingEnabled = true; + this.CB_Enc49.Location = new System.Drawing.Point(918, 148); + this.CB_Enc49.Name = "CB_Enc49"; + this.CB_Enc49.Size = new System.Drawing.Size(72, 21); + this.CB_Enc49.TabIndex = 423; + // + // NUP_Forme48 + // + this.NUP_Forme48.Location = new System.Drawing.Point(885, 149); + this.NUP_Forme48.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme48.Name = "NUP_Forme48"; + this.NUP_Forme48.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme48.TabIndex = 422; + // + // CB_Enc48 + // + this.CB_Enc48.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc48.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc48.FormattingEnabled = true; + this.CB_Enc48.Location = new System.Drawing.Point(810, 148); + this.CB_Enc48.Name = "CB_Enc48"; + this.CB_Enc48.Size = new System.Drawing.Size(72, 21); + this.CB_Enc48.TabIndex = 421; + // + // NUP_Forme47 + // + this.NUP_Forme47.Location = new System.Drawing.Point(777, 149); + this.NUP_Forme47.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme47.Name = "NUP_Forme47"; + this.NUP_Forme47.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme47.TabIndex = 420; + // + // CB_Enc47 + // + this.CB_Enc47.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc47.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc47.FormattingEnabled = true; + this.CB_Enc47.Location = new System.Drawing.Point(702, 148); + this.CB_Enc47.Name = "CB_Enc47"; + this.CB_Enc47.Size = new System.Drawing.Size(72, 21); + this.CB_Enc47.TabIndex = 419; + // + // NUP_Forme46 + // + this.NUP_Forme46.Location = new System.Drawing.Point(668, 149); + this.NUP_Forme46.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme46.Name = "NUP_Forme46"; + this.NUP_Forme46.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme46.TabIndex = 418; + // + // CB_Enc46 + // + this.CB_Enc46.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc46.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc46.FormattingEnabled = true; + this.CB_Enc46.Location = new System.Drawing.Point(593, 148); + this.CB_Enc46.Name = "CB_Enc46"; + this.CB_Enc46.Size = new System.Drawing.Size(72, 21); + this.CB_Enc46.TabIndex = 417; + // + // NUP_Forme45 + // + this.NUP_Forme45.Location = new System.Drawing.Point(560, 149); + this.NUP_Forme45.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme45.Name = "NUP_Forme45"; + this.NUP_Forme45.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme45.TabIndex = 416; + // + // CB_Enc45 + // + this.CB_Enc45.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc45.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc45.FormattingEnabled = true; + this.CB_Enc45.Location = new System.Drawing.Point(485, 148); + this.CB_Enc45.Name = "CB_Enc45"; + this.CB_Enc45.Size = new System.Drawing.Size(72, 21); + this.CB_Enc45.TabIndex = 415; + // + // NUP_Forme44 + // + this.NUP_Forme44.Location = new System.Drawing.Point(452, 149); + this.NUP_Forme44.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme44.Name = "NUP_Forme44"; + this.NUP_Forme44.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme44.TabIndex = 414; + // + // CB_Enc44 + // + this.CB_Enc44.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc44.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc44.FormattingEnabled = true; + this.CB_Enc44.Location = new System.Drawing.Point(378, 148); + this.CB_Enc44.Name = "CB_Enc44"; + this.CB_Enc44.Size = new System.Drawing.Size(72, 21); + this.CB_Enc44.TabIndex = 413; + // + // NUP_Forme43 + // + this.NUP_Forme43.Location = new System.Drawing.Point(345, 149); + this.NUP_Forme43.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme43.Name = "NUP_Forme43"; + this.NUP_Forme43.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme43.TabIndex = 412; + // + // CB_Enc43 + // + this.CB_Enc43.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc43.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc43.FormattingEnabled = true; + this.CB_Enc43.Location = new System.Drawing.Point(271, 148); + this.CB_Enc43.Name = "CB_Enc43"; + this.CB_Enc43.Size = new System.Drawing.Size(72, 21); + this.CB_Enc43.TabIndex = 411; + // + // NUP_Forme42 + // + this.NUP_Forme42.Location = new System.Drawing.Point(238, 149); + this.NUP_Forme42.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme42.Name = "NUP_Forme42"; + this.NUP_Forme42.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme42.TabIndex = 410; + // + // CB_Enc42 + // + this.CB_Enc42.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc42.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc42.FormattingEnabled = true; + this.CB_Enc42.Location = new System.Drawing.Point(163, 148); + this.CB_Enc42.Name = "CB_Enc42"; + this.CB_Enc42.Size = new System.Drawing.Size(72, 21); + this.CB_Enc42.TabIndex = 409; + // + // NUP_Forme41 + // + this.NUP_Forme41.Location = new System.Drawing.Point(129, 149); + this.NUP_Forme41.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme41.Name = "NUP_Forme41"; + this.NUP_Forme41.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme41.TabIndex = 408; + // + // CB_Enc41 + // + this.CB_Enc41.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc41.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc41.FormattingEnabled = true; + this.CB_Enc41.Location = new System.Drawing.Point(54, 148); + this.CB_Enc41.Name = "CB_Enc41"; + this.CB_Enc41.Size = new System.Drawing.Size(72, 21); + this.CB_Enc41.TabIndex = 407; + // + // L_SOS4 + // + this.L_SOS4.AutoSize = true; + this.L_SOS4.Location = new System.Drawing.Point(12, 152); + this.L_SOS4.Name = "L_SOS4"; + this.L_SOS4.Size = new System.Drawing.Size(41, 13); + this.L_SOS4.TabIndex = 406; + this.L_SOS4.Text = "SOS 4:"; + // + // NUP_Forme40 + // + this.NUP_Forme40.Location = new System.Drawing.Point(1101, 121); + this.NUP_Forme40.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme40.Name = "NUP_Forme40"; + this.NUP_Forme40.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme40.TabIndex = 405; + // + // CB_Enc40 + // + this.CB_Enc40.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc40.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc40.FormattingEnabled = true; + this.CB_Enc40.Location = new System.Drawing.Point(1026, 121); + this.CB_Enc40.Name = "CB_Enc40"; + this.CB_Enc40.Size = new System.Drawing.Size(72, 21); + this.CB_Enc40.TabIndex = 404; + // + // NUP_Forme39 + // + this.NUP_Forme39.Location = new System.Drawing.Point(993, 122); + this.NUP_Forme39.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme39.Name = "NUP_Forme39"; + this.NUP_Forme39.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme39.TabIndex = 403; + // + // CB_Enc39 + // + this.CB_Enc39.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc39.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc39.FormattingEnabled = true; + this.CB_Enc39.Location = new System.Drawing.Point(918, 121); + this.CB_Enc39.Name = "CB_Enc39"; + this.CB_Enc39.Size = new System.Drawing.Size(72, 21); + this.CB_Enc39.TabIndex = 402; + // + // NUP_Forme38 + // + this.NUP_Forme38.Location = new System.Drawing.Point(885, 122); + this.NUP_Forme38.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme38.Name = "NUP_Forme38"; + this.NUP_Forme38.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme38.TabIndex = 401; + // + // CB_Enc38 + // + this.CB_Enc38.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc38.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc38.FormattingEnabled = true; + this.CB_Enc38.Location = new System.Drawing.Point(810, 121); + this.CB_Enc38.Name = "CB_Enc38"; + this.CB_Enc38.Size = new System.Drawing.Size(72, 21); + this.CB_Enc38.TabIndex = 400; + // + // NUP_Forme37 + // + this.NUP_Forme37.Location = new System.Drawing.Point(777, 122); + this.NUP_Forme37.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme37.Name = "NUP_Forme37"; + this.NUP_Forme37.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme37.TabIndex = 399; + // + // CB_Enc37 + // + this.CB_Enc37.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc37.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc37.FormattingEnabled = true; + this.CB_Enc37.Location = new System.Drawing.Point(702, 121); + this.CB_Enc37.Name = "CB_Enc37"; + this.CB_Enc37.Size = new System.Drawing.Size(72, 21); + this.CB_Enc37.TabIndex = 398; + // + // NUP_Forme36 + // + this.NUP_Forme36.Location = new System.Drawing.Point(668, 122); + this.NUP_Forme36.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme36.Name = "NUP_Forme36"; + this.NUP_Forme36.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme36.TabIndex = 397; + // + // CB_Enc36 + // + this.CB_Enc36.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc36.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc36.FormattingEnabled = true; + this.CB_Enc36.Location = new System.Drawing.Point(593, 121); + this.CB_Enc36.Name = "CB_Enc36"; + this.CB_Enc36.Size = new System.Drawing.Size(72, 21); + this.CB_Enc36.TabIndex = 396; + // + // NUP_Forme35 + // + this.NUP_Forme35.Location = new System.Drawing.Point(560, 122); + this.NUP_Forme35.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme35.Name = "NUP_Forme35"; + this.NUP_Forme35.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme35.TabIndex = 395; + // + // CB_Enc35 + // + this.CB_Enc35.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc35.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc35.FormattingEnabled = true; + this.CB_Enc35.Location = new System.Drawing.Point(485, 121); + this.CB_Enc35.Name = "CB_Enc35"; + this.CB_Enc35.Size = new System.Drawing.Size(72, 21); + this.CB_Enc35.TabIndex = 394; + // + // NUP_Forme34 + // + this.NUP_Forme34.Location = new System.Drawing.Point(452, 122); + this.NUP_Forme34.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme34.Name = "NUP_Forme34"; + this.NUP_Forme34.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme34.TabIndex = 393; + // + // CB_Enc34 + // + this.CB_Enc34.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc34.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc34.FormattingEnabled = true; + this.CB_Enc34.Location = new System.Drawing.Point(378, 121); + this.CB_Enc34.Name = "CB_Enc34"; + this.CB_Enc34.Size = new System.Drawing.Size(72, 21); + this.CB_Enc34.TabIndex = 392; + // + // NUP_Forme33 + // + this.NUP_Forme33.Location = new System.Drawing.Point(345, 122); + this.NUP_Forme33.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme33.Name = "NUP_Forme33"; + this.NUP_Forme33.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme33.TabIndex = 391; + // + // CB_Enc33 + // + this.CB_Enc33.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc33.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc33.FormattingEnabled = true; + this.CB_Enc33.Location = new System.Drawing.Point(271, 121); + this.CB_Enc33.Name = "CB_Enc33"; + this.CB_Enc33.Size = new System.Drawing.Size(72, 21); + this.CB_Enc33.TabIndex = 390; + // + // NUP_Forme32 + // + this.NUP_Forme32.Location = new System.Drawing.Point(238, 122); + this.NUP_Forme32.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme32.Name = "NUP_Forme32"; + this.NUP_Forme32.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme32.TabIndex = 389; + // + // CB_Enc32 + // + this.CB_Enc32.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc32.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc32.FormattingEnabled = true; + this.CB_Enc32.Location = new System.Drawing.Point(163, 121); + this.CB_Enc32.Name = "CB_Enc32"; + this.CB_Enc32.Size = new System.Drawing.Size(72, 21); + this.CB_Enc32.TabIndex = 388; + // + // NUP_Forme31 + // + this.NUP_Forme31.Location = new System.Drawing.Point(129, 122); + this.NUP_Forme31.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme31.Name = "NUP_Forme31"; + this.NUP_Forme31.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme31.TabIndex = 387; + // + // CB_Enc31 + // + this.CB_Enc31.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc31.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc31.FormattingEnabled = true; + this.CB_Enc31.Location = new System.Drawing.Point(54, 121); + this.CB_Enc31.Name = "CB_Enc31"; + this.CB_Enc31.Size = new System.Drawing.Size(72, 21); + this.CB_Enc31.TabIndex = 386; + // + // L_SOS3 + // + this.L_SOS3.AutoSize = true; + this.L_SOS3.Location = new System.Drawing.Point(12, 125); + this.L_SOS3.Name = "L_SOS3"; + this.L_SOS3.Size = new System.Drawing.Size(41, 13); + this.L_SOS3.TabIndex = 385; + this.L_SOS3.Text = "SOS 3:"; + // + // NUP_Forme30 + // + this.NUP_Forme30.Location = new System.Drawing.Point(1101, 94); + this.NUP_Forme30.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme30.Name = "NUP_Forme30"; + this.NUP_Forme30.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme30.TabIndex = 384; + // + // CB_Enc30 + // + this.CB_Enc30.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc30.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc30.FormattingEnabled = true; + this.CB_Enc30.Location = new System.Drawing.Point(1026, 94); + this.CB_Enc30.Name = "CB_Enc30"; + this.CB_Enc30.Size = new System.Drawing.Size(72, 21); + this.CB_Enc30.TabIndex = 383; + // + // NUP_Forme29 + // + this.NUP_Forme29.Location = new System.Drawing.Point(993, 95); + this.NUP_Forme29.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme29.Name = "NUP_Forme29"; + this.NUP_Forme29.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme29.TabIndex = 382; + // + // CB_Enc29 + // + this.CB_Enc29.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc29.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc29.FormattingEnabled = true; + this.CB_Enc29.Location = new System.Drawing.Point(918, 94); + this.CB_Enc29.Name = "CB_Enc29"; + this.CB_Enc29.Size = new System.Drawing.Size(72, 21); + this.CB_Enc29.TabIndex = 381; + // + // NUP_Forme28 + // + this.NUP_Forme28.Location = new System.Drawing.Point(885, 95); + this.NUP_Forme28.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme28.Name = "NUP_Forme28"; + this.NUP_Forme28.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme28.TabIndex = 380; + // + // CB_Enc28 + // + this.CB_Enc28.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc28.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc28.FormattingEnabled = true; + this.CB_Enc28.Location = new System.Drawing.Point(810, 94); + this.CB_Enc28.Name = "CB_Enc28"; + this.CB_Enc28.Size = new System.Drawing.Size(72, 21); + this.CB_Enc28.TabIndex = 379; + // + // NUP_Forme27 + // + this.NUP_Forme27.Location = new System.Drawing.Point(777, 95); + this.NUP_Forme27.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme27.Name = "NUP_Forme27"; + this.NUP_Forme27.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme27.TabIndex = 378; + // + // CB_Enc27 + // + this.CB_Enc27.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc27.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc27.FormattingEnabled = true; + this.CB_Enc27.Location = new System.Drawing.Point(702, 94); + this.CB_Enc27.Name = "CB_Enc27"; + this.CB_Enc27.Size = new System.Drawing.Size(72, 21); + this.CB_Enc27.TabIndex = 377; + // + // NUP_Forme26 + // + this.NUP_Forme26.Location = new System.Drawing.Point(668, 95); + this.NUP_Forme26.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme26.Name = "NUP_Forme26"; + this.NUP_Forme26.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme26.TabIndex = 376; + // + // CB_Enc26 + // + this.CB_Enc26.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc26.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc26.FormattingEnabled = true; + this.CB_Enc26.Location = new System.Drawing.Point(593, 94); + this.CB_Enc26.Name = "CB_Enc26"; + this.CB_Enc26.Size = new System.Drawing.Size(72, 21); + this.CB_Enc26.TabIndex = 375; + // + // NUP_Forme25 + // + this.NUP_Forme25.Location = new System.Drawing.Point(560, 95); + this.NUP_Forme25.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme25.Name = "NUP_Forme25"; + this.NUP_Forme25.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme25.TabIndex = 374; + // + // CB_Enc25 + // + this.CB_Enc25.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc25.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc25.FormattingEnabled = true; + this.CB_Enc25.Location = new System.Drawing.Point(485, 94); + this.CB_Enc25.Name = "CB_Enc25"; + this.CB_Enc25.Size = new System.Drawing.Size(72, 21); + this.CB_Enc25.TabIndex = 373; + // + // NUP_Forme24 + // + this.NUP_Forme24.Location = new System.Drawing.Point(452, 95); + this.NUP_Forme24.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme24.Name = "NUP_Forme24"; + this.NUP_Forme24.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme24.TabIndex = 372; + // + // CB_Enc24 + // + this.CB_Enc24.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc24.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc24.FormattingEnabled = true; + this.CB_Enc24.Location = new System.Drawing.Point(378, 94); + this.CB_Enc24.Name = "CB_Enc24"; + this.CB_Enc24.Size = new System.Drawing.Size(72, 21); + this.CB_Enc24.TabIndex = 371; + // + // NUP_Forme23 + // + this.NUP_Forme23.Location = new System.Drawing.Point(345, 95); + this.NUP_Forme23.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme23.Name = "NUP_Forme23"; + this.NUP_Forme23.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme23.TabIndex = 370; + // + // CB_Enc23 + // + this.CB_Enc23.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc23.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc23.FormattingEnabled = true; + this.CB_Enc23.Location = new System.Drawing.Point(271, 94); + this.CB_Enc23.Name = "CB_Enc23"; + this.CB_Enc23.Size = new System.Drawing.Size(72, 21); + this.CB_Enc23.TabIndex = 369; + // + // NUP_Forme22 + // + this.NUP_Forme22.Location = new System.Drawing.Point(238, 95); + this.NUP_Forme22.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme22.Name = "NUP_Forme22"; + this.NUP_Forme22.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme22.TabIndex = 368; + // + // CB_Enc22 + // + this.CB_Enc22.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc22.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc22.FormattingEnabled = true; + this.CB_Enc22.Location = new System.Drawing.Point(163, 94); + this.CB_Enc22.Name = "CB_Enc22"; + this.CB_Enc22.Size = new System.Drawing.Size(72, 21); + this.CB_Enc22.TabIndex = 367; + // + // NUP_Forme21 + // + this.NUP_Forme21.Location = new System.Drawing.Point(129, 95); + this.NUP_Forme21.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme21.Name = "NUP_Forme21"; + this.NUP_Forme21.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme21.TabIndex = 366; + // + // CB_Enc21 + // + this.CB_Enc21.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc21.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc21.FormattingEnabled = true; + this.CB_Enc21.Location = new System.Drawing.Point(54, 94); + this.CB_Enc21.Name = "CB_Enc21"; + this.CB_Enc21.Size = new System.Drawing.Size(72, 21); + this.CB_Enc21.TabIndex = 365; + // + // L_SOS2 + // + this.L_SOS2.AutoSize = true; + this.L_SOS2.Location = new System.Drawing.Point(12, 98); + this.L_SOS2.Name = "L_SOS2"; + this.L_SOS2.Size = new System.Drawing.Size(41, 13); + this.L_SOS2.TabIndex = 364; + this.L_SOS2.Text = "SOS 2:"; + // + // NUP_Forme20 + // + this.NUP_Forme20.Location = new System.Drawing.Point(1101, 67); + this.NUP_Forme20.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme20.Name = "NUP_Forme20"; + this.NUP_Forme20.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme20.TabIndex = 363; + // + // CB_Enc20 + // + this.CB_Enc20.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc20.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc20.FormattingEnabled = true; + this.CB_Enc20.Location = new System.Drawing.Point(1026, 67); + this.CB_Enc20.Name = "CB_Enc20"; + this.CB_Enc20.Size = new System.Drawing.Size(72, 21); + this.CB_Enc20.TabIndex = 362; + // + // NUP_Forme19 + // + this.NUP_Forme19.Location = new System.Drawing.Point(993, 68); + this.NUP_Forme19.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme19.Name = "NUP_Forme19"; + this.NUP_Forme19.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme19.TabIndex = 361; + // + // CB_Enc19 + // + this.CB_Enc19.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc19.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc19.FormattingEnabled = true; + this.CB_Enc19.Location = new System.Drawing.Point(918, 67); + this.CB_Enc19.Name = "CB_Enc19"; + this.CB_Enc19.Size = new System.Drawing.Size(72, 21); + this.CB_Enc19.TabIndex = 360; + // + // NUP_Forme18 + // + this.NUP_Forme18.Location = new System.Drawing.Point(885, 68); + this.NUP_Forme18.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme18.Name = "NUP_Forme18"; + this.NUP_Forme18.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme18.TabIndex = 359; + // + // CB_Enc18 + // + this.CB_Enc18.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc18.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc18.FormattingEnabled = true; + this.CB_Enc18.Location = new System.Drawing.Point(810, 67); + this.CB_Enc18.Name = "CB_Enc18"; + this.CB_Enc18.Size = new System.Drawing.Size(72, 21); + this.CB_Enc18.TabIndex = 358; + // + // NUP_Forme17 + // + this.NUP_Forme17.Location = new System.Drawing.Point(777, 68); + this.NUP_Forme17.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme17.Name = "NUP_Forme17"; + this.NUP_Forme17.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme17.TabIndex = 357; + // + // CB_Enc17 + // + this.CB_Enc17.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc17.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc17.FormattingEnabled = true; + this.CB_Enc17.Location = new System.Drawing.Point(702, 67); + this.CB_Enc17.Name = "CB_Enc17"; + this.CB_Enc17.Size = new System.Drawing.Size(72, 21); + this.CB_Enc17.TabIndex = 356; + // + // NUP_Forme16 + // + this.NUP_Forme16.Location = new System.Drawing.Point(668, 68); + this.NUP_Forme16.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme16.Name = "NUP_Forme16"; + this.NUP_Forme16.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme16.TabIndex = 355; + // + // CB_Enc16 + // + this.CB_Enc16.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc16.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc16.FormattingEnabled = true; + this.CB_Enc16.Location = new System.Drawing.Point(593, 67); + this.CB_Enc16.Name = "CB_Enc16"; + this.CB_Enc16.Size = new System.Drawing.Size(72, 21); + this.CB_Enc16.TabIndex = 354; + // + // NUP_Forme15 + // + this.NUP_Forme15.Location = new System.Drawing.Point(560, 68); + this.NUP_Forme15.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme15.Name = "NUP_Forme15"; + this.NUP_Forme15.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme15.TabIndex = 353; + // + // CB_Enc15 + // + this.CB_Enc15.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc15.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc15.FormattingEnabled = true; + this.CB_Enc15.Location = new System.Drawing.Point(485, 67); + this.CB_Enc15.Name = "CB_Enc15"; + this.CB_Enc15.Size = new System.Drawing.Size(72, 21); + this.CB_Enc15.TabIndex = 352; + // + // NUP_Forme14 + // + this.NUP_Forme14.Location = new System.Drawing.Point(452, 68); + this.NUP_Forme14.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme14.Name = "NUP_Forme14"; + this.NUP_Forme14.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme14.TabIndex = 351; + // + // CB_Enc14 + // + this.CB_Enc14.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc14.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc14.FormattingEnabled = true; + this.CB_Enc14.Location = new System.Drawing.Point(378, 67); + this.CB_Enc14.Name = "CB_Enc14"; + this.CB_Enc14.Size = new System.Drawing.Size(72, 21); + this.CB_Enc14.TabIndex = 350; + // + // NUP_Forme13 + // + this.NUP_Forme13.Location = new System.Drawing.Point(345, 68); + this.NUP_Forme13.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme13.Name = "NUP_Forme13"; + this.NUP_Forme13.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme13.TabIndex = 349; + // + // CB_Enc13 + // + this.CB_Enc13.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc13.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc13.FormattingEnabled = true; + this.CB_Enc13.Location = new System.Drawing.Point(271, 67); + this.CB_Enc13.Name = "CB_Enc13"; + this.CB_Enc13.Size = new System.Drawing.Size(72, 21); + this.CB_Enc13.TabIndex = 348; + // + // NUP_Forme12 + // + this.NUP_Forme12.Location = new System.Drawing.Point(238, 68); + this.NUP_Forme12.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme12.Name = "NUP_Forme12"; + this.NUP_Forme12.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme12.TabIndex = 347; + // + // CB_Enc12 + // + this.CB_Enc12.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc12.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc12.FormattingEnabled = true; + this.CB_Enc12.Location = new System.Drawing.Point(163, 67); + this.CB_Enc12.Name = "CB_Enc12"; + this.CB_Enc12.Size = new System.Drawing.Size(72, 21); + this.CB_Enc12.TabIndex = 346; + // + // NUP_Forme11 + // + this.NUP_Forme11.Location = new System.Drawing.Point(129, 68); + this.NUP_Forme11.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme11.Name = "NUP_Forme11"; + this.NUP_Forme11.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme11.TabIndex = 345; + // + // CB_Enc11 + // + this.CB_Enc11.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc11.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc11.FormattingEnabled = true; + this.CB_Enc11.Location = new System.Drawing.Point(54, 67); + this.CB_Enc11.Name = "CB_Enc11"; + this.CB_Enc11.Size = new System.Drawing.Size(72, 21); + this.CB_Enc11.TabIndex = 344; + // + // L_SOS1 + // + this.L_SOS1.AutoSize = true; + this.L_SOS1.Location = new System.Drawing.Point(12, 71); + this.L_SOS1.Name = "L_SOS1"; + this.L_SOS1.Size = new System.Drawing.Size(41, 13); + this.L_SOS1.TabIndex = 343; + this.L_SOS1.Text = "SOS 1:"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(15, 39); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(39, 13); + this.label1.TabIndex = 342; + this.label1.Text = "Initials:"; + // + // NUP_Forme10 + // + this.NUP_Forme10.Location = new System.Drawing.Point(1101, 37); + this.NUP_Forme10.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme10.Name = "NUP_Forme10"; + this.NUP_Forme10.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme10.TabIndex = 340; + // + // CB_Enc10 + // + this.CB_Enc10.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc10.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc10.FormattingEnabled = true; + this.CB_Enc10.Location = new System.Drawing.Point(1026, 37); + this.CB_Enc10.Name = "CB_Enc10"; + this.CB_Enc10.Size = new System.Drawing.Size(72, 21); + this.CB_Enc10.TabIndex = 339; + // + // NUP_Rate10 + // + this.NUP_Rate10.AutoSize = true; + this.NUP_Rate10.Location = new System.Drawing.Point(1052, 16); + this.NUP_Rate10.Name = "NUP_Rate10"; + this.NUP_Rate10.Size = new System.Drawing.Size(41, 20); + this.NUP_Rate10.TabIndex = 341; + // + // NUP_Forme09 + // + this.NUP_Forme09.Location = new System.Drawing.Point(993, 38); + this.NUP_Forme09.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme09.Name = "NUP_Forme09"; + this.NUP_Forme09.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme09.TabIndex = 337; + // + // CB_Enc09 + // + this.CB_Enc09.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc09.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc09.FormattingEnabled = true; + this.CB_Enc09.Location = new System.Drawing.Point(918, 37); + this.CB_Enc09.Name = "CB_Enc09"; + this.CB_Enc09.Size = new System.Drawing.Size(72, 21); + this.CB_Enc09.TabIndex = 336; + // + // NUP_Rate9 + // + this.NUP_Rate9.AutoSize = true; + this.NUP_Rate9.Location = new System.Drawing.Point(942, 16); + this.NUP_Rate9.Name = "NUP_Rate9"; + this.NUP_Rate9.Size = new System.Drawing.Size(41, 20); + this.NUP_Rate9.TabIndex = 338; + // + // NUP_Forme08 + // + this.NUP_Forme08.Location = new System.Drawing.Point(885, 38); + this.NUP_Forme08.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme08.Name = "NUP_Forme08"; + this.NUP_Forme08.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme08.TabIndex = 334; + // + // CB_Enc08 + // + this.CB_Enc08.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc08.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc08.FormattingEnabled = true; + this.CB_Enc08.Location = new System.Drawing.Point(810, 37); + this.CB_Enc08.Name = "CB_Enc08"; + this.CB_Enc08.Size = new System.Drawing.Size(72, 21); + this.CB_Enc08.TabIndex = 333; + // + // NUP_Rate8 + // + this.NUP_Rate8.AutoSize = true; + this.NUP_Rate8.Location = new System.Drawing.Point(836, 16); + this.NUP_Rate8.Name = "NUP_Rate8"; + this.NUP_Rate8.Size = new System.Drawing.Size(41, 20); + this.NUP_Rate8.TabIndex = 335; + // + // NUP_Forme07 + // + this.NUP_Forme07.Location = new System.Drawing.Point(777, 38); + this.NUP_Forme07.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme07.Name = "NUP_Forme07"; + this.NUP_Forme07.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme07.TabIndex = 331; + // + // CB_Enc07 + // + this.CB_Enc07.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc07.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc07.FormattingEnabled = true; + this.CB_Enc07.Location = new System.Drawing.Point(702, 37); + this.CB_Enc07.Name = "CB_Enc07"; + this.CB_Enc07.Size = new System.Drawing.Size(72, 21); + this.CB_Enc07.TabIndex = 330; + // + // NUP_Rate7 + // + this.NUP_Rate7.AutoSize = true; + this.NUP_Rate7.Location = new System.Drawing.Point(724, 16); + this.NUP_Rate7.Name = "NUP_Rate7"; + this.NUP_Rate7.Size = new System.Drawing.Size(41, 20); + this.NUP_Rate7.TabIndex = 332; + // + // NUP_Forme06 + // + this.NUP_Forme06.Location = new System.Drawing.Point(668, 38); + this.NUP_Forme06.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme06.Name = "NUP_Forme06"; + this.NUP_Forme06.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme06.TabIndex = 328; + // + // CB_Enc06 + // + this.CB_Enc06.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc06.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc06.FormattingEnabled = true; + this.CB_Enc06.Location = new System.Drawing.Point(593, 37); + this.CB_Enc06.Name = "CB_Enc06"; + this.CB_Enc06.Size = new System.Drawing.Size(72, 21); + this.CB_Enc06.TabIndex = 327; + // + // NUP_Rate6 + // + this.NUP_Rate6.AutoSize = true; + this.NUP_Rate6.Location = new System.Drawing.Point(616, 16); + this.NUP_Rate6.Name = "NUP_Rate6"; + this.NUP_Rate6.Size = new System.Drawing.Size(41, 20); + this.NUP_Rate6.TabIndex = 329; + // + // NUP_Forme05 + // + this.NUP_Forme05.Location = new System.Drawing.Point(560, 38); + this.NUP_Forme05.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme05.Name = "NUP_Forme05"; + this.NUP_Forme05.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme05.TabIndex = 325; + // + // CB_Enc05 + // + this.CB_Enc05.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc05.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc05.FormattingEnabled = true; + this.CB_Enc05.Location = new System.Drawing.Point(485, 37); + this.CB_Enc05.Name = "CB_Enc05"; + this.CB_Enc05.Size = new System.Drawing.Size(72, 21); + this.CB_Enc05.TabIndex = 324; + // + // NUP_Rate5 + // + this.NUP_Rate5.AutoSize = true; + this.NUP_Rate5.Location = new System.Drawing.Point(505, 16); + this.NUP_Rate5.Name = "NUP_Rate5"; + this.NUP_Rate5.Size = new System.Drawing.Size(41, 20); + this.NUP_Rate5.TabIndex = 326; + // + // NUP_Forme04 + // + this.NUP_Forme04.Location = new System.Drawing.Point(452, 38); + this.NUP_Forme04.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme04.Name = "NUP_Forme04"; + this.NUP_Forme04.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme04.TabIndex = 322; + // + // CB_Enc04 + // + this.CB_Enc04.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc04.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc04.FormattingEnabled = true; + this.CB_Enc04.Location = new System.Drawing.Point(378, 37); + this.CB_Enc04.Name = "CB_Enc04"; + this.CB_Enc04.Size = new System.Drawing.Size(72, 21); + this.CB_Enc04.TabIndex = 321; + // + // NUP_Rate4 + // + this.NUP_Rate4.AutoSize = true; + this.NUP_Rate4.Location = new System.Drawing.Point(400, 16); + this.NUP_Rate4.Name = "NUP_Rate4"; + this.NUP_Rate4.Size = new System.Drawing.Size(41, 20); + this.NUP_Rate4.TabIndex = 323; + // + // NUP_Forme03 + // + this.NUP_Forme03.Location = new System.Drawing.Point(345, 38); + this.NUP_Forme03.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme03.Name = "NUP_Forme03"; + this.NUP_Forme03.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme03.TabIndex = 319; + // + // CB_Enc03 + // + this.CB_Enc03.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc03.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc03.FormattingEnabled = true; + this.CB_Enc03.Location = new System.Drawing.Point(271, 37); + this.CB_Enc03.Name = "CB_Enc03"; + this.CB_Enc03.Size = new System.Drawing.Size(72, 21); + this.CB_Enc03.TabIndex = 318; + // + // NUP_Rate3 + // + this.NUP_Rate3.AutoSize = true; + this.NUP_Rate3.Location = new System.Drawing.Point(294, 16); + this.NUP_Rate3.Name = "NUP_Rate3"; + this.NUP_Rate3.Size = new System.Drawing.Size(41, 20); + this.NUP_Rate3.TabIndex = 320; + // + // NUP_Forme02 + // + this.NUP_Forme02.Location = new System.Drawing.Point(238, 38); + this.NUP_Forme02.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme02.Name = "NUP_Forme02"; + this.NUP_Forme02.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme02.TabIndex = 316; + // + // CB_Enc02 + // + this.CB_Enc02.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc02.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc02.FormattingEnabled = true; + this.CB_Enc02.Location = new System.Drawing.Point(163, 37); + this.CB_Enc02.Name = "CB_Enc02"; + this.CB_Enc02.Size = new System.Drawing.Size(72, 21); + this.CB_Enc02.TabIndex = 315; + // + // NUP_Rate2 + // + this.NUP_Rate2.AutoSize = true; + this.NUP_Rate2.Location = new System.Drawing.Point(187, 16); + this.NUP_Rate2.Name = "NUP_Rate2"; + this.NUP_Rate2.Size = new System.Drawing.Size(41, 20); + this.NUP_Rate2.TabIndex = 317; + // + // L_Rate + // + this.L_Rate.AutoSize = true; + this.L_Rate.Location = new System.Drawing.Point(15, 16); + this.L_Rate.Name = "L_Rate"; + this.L_Rate.Size = new System.Drawing.Size(38, 13); + this.L_Rate.TabIndex = 314; + this.L_Rate.Text = "Rates:"; + // + // NUP_Forme01 + // + this.NUP_Forme01.Location = new System.Drawing.Point(129, 38); + this.NUP_Forme01.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUP_Forme01.Name = "NUP_Forme01"; + this.NUP_Forme01.Size = new System.Drawing.Size(31, 20); + this.NUP_Forme01.TabIndex = 289; + // + // CB_Enc01 + // + this.CB_Enc01.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_Enc01.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Enc01.FormattingEnabled = true; + this.CB_Enc01.Location = new System.Drawing.Point(54, 37); + this.CB_Enc01.Name = "CB_Enc01"; + this.CB_Enc01.Size = new System.Drawing.Size(72, 21); + this.CB_Enc01.TabIndex = 288; + // + // NUP_Rate1 + // + this.NUP_Rate1.AutoSize = true; + this.NUP_Rate1.Location = new System.Drawing.Point(78, 16); + this.NUP_Rate1.Name = "NUP_Rate1"; + this.NUP_Rate1.Size = new System.Drawing.Size(41, 20); + this.NUP_Rate1.TabIndex = 290; + // + // CB_TableID + // + this.CB_TableID.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; + this.CB_TableID.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_TableID.FormattingEnabled = true; + this.CB_TableID.Location = new System.Drawing.Point(269, 12); + this.CB_TableID.Name = "CB_TableID"; + this.CB_TableID.Size = new System.Drawing.Size(90, 21); + this.CB_TableID.TabIndex = 431; + this.CB_TableID.SelectedIndexChanged += new System.EventHandler(this.UpdatePanel); + // + // B_Export + // + this.B_Export.Location = new System.Drawing.Point(1034, 11); + this.B_Export.Name = "B_Export"; + this.B_Export.Size = new System.Drawing.Size(112, 23); + this.B_Export.TabIndex = 432; + this.B_Export.Text = "Export Tables"; + this.B_Export.UseVisualStyleBackColor = true; + this.B_Export.Click += new System.EventHandler(this.B_Export_Click); + // + // CopySOS + // + this.CopySOS.Location = new System.Drawing.Point(698, 11); + this.CopySOS.Name = "CopySOS"; + this.CopySOS.Size = new System.Drawing.Size(109, 23); + this.CopySOS.TabIndex = 433; + this.CopySOS.Text = "Copy Initials to SOS"; + this.CopySOS.UseVisualStyleBackColor = true; + this.CopySOS.Click += new System.EventHandler(this.CopySOS_Click); + // + // SMWE + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(1161, 612); + this.Controls.Add(this.CopySOS); + this.Controls.Add(this.B_Export); + this.Controls.Add(this.CB_TableID); + this.Controls.Add(this.GB_Encounters); + this.Controls.Add(this.L_Table); + this.Controls.Add(this.NUP_Min); + this.Controls.Add(this.NUP_Max); + this.Controls.Add(this.L_Min); + this.Controls.Add(this.L_Max); + this.Controls.Add(this.B_Randomize); + this.Controls.Add(this.B_Dump); + this.Controls.Add(this.L_Location); + this.Controls.Add(this.B_Save); + this.Controls.Add(this.CB_LocationID); + this.Name = "SMWE"; + this.Text = "Sun/Moon Wild Editor"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.SMWE_FormClosing); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Min)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Max)).EndInit(); + this.GB_Encounters.ResumeLayout(false); + this.GB_Encounters.PerformLayout(); + this.GB_Tweak.ResumeLayout(false); + this.GB_Tweak.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_LevelAmp)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_NightIcon)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_DayIcon)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_WeatherForme6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_WeatherForme3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_WeatherForme5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_WeatherForme4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_WeatherForme2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_WeatherForme1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_NightTable)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_DayTable)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme80)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme79)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme78)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme77)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme76)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme75)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme74)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme73)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme72)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme71)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme70)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme69)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme68)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme67)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme66)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme65)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme64)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme63)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme62)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme61)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme60)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme59)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme58)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme57)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme56)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme55)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme54)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme53)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme52)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme51)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme50)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme49)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme48)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme47)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme46)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme45)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme44)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme43)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme42)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme41)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme40)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme39)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme38)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme37)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme36)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme35)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme34)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme33)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme32)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme31)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme30)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme29)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme28)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme27)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme26)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme25)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme24)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme23)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme22)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme21)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme20)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme19)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme18)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme17)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme16)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme15)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme14)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme13)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme12)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme11)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme10)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Rate10)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme09)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Rate9)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme08)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Rate8)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme07)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Rate7)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme06)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Rate6)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme05)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Rate5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme04)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Rate4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme03)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Rate3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme02)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Rate2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme01)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUP_Rate1)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Button B_Randomize; + private System.Windows.Forms.Button B_Dump; + private System.Windows.Forms.Label L_Location; + private System.Windows.Forms.Button B_Save; + private System.Windows.Forms.ComboBox CB_LocationID; + private System.Windows.Forms.NumericUpDown NUP_Min; + private System.Windows.Forms.NumericUpDown NUP_Max; + private System.Windows.Forms.Label L_Min; + private System.Windows.Forms.Label L_Max; + private System.Windows.Forms.Label L_Table; + private System.Windows.Forms.GroupBox GB_Encounters; + private System.Windows.Forms.NumericUpDown NUP_Forme08; + private System.Windows.Forms.ComboBox CB_Enc08; + private System.Windows.Forms.NumericUpDown NUP_Rate8; + private System.Windows.Forms.NumericUpDown NUP_Forme07; + private System.Windows.Forms.ComboBox CB_Enc07; + private System.Windows.Forms.NumericUpDown NUP_Rate7; + private System.Windows.Forms.NumericUpDown NUP_Forme06; + private System.Windows.Forms.ComboBox CB_Enc06; + private System.Windows.Forms.NumericUpDown NUP_Rate6; + private System.Windows.Forms.NumericUpDown NUP_Forme05; + private System.Windows.Forms.ComboBox CB_Enc05; + private System.Windows.Forms.NumericUpDown NUP_Rate5; + private System.Windows.Forms.NumericUpDown NUP_Forme04; + private System.Windows.Forms.ComboBox CB_Enc04; + private System.Windows.Forms.NumericUpDown NUP_Rate4; + private System.Windows.Forms.NumericUpDown NUP_Forme03; + private System.Windows.Forms.ComboBox CB_Enc03; + private System.Windows.Forms.NumericUpDown NUP_Rate3; + private System.Windows.Forms.NumericUpDown NUP_Forme02; + private System.Windows.Forms.ComboBox CB_Enc02; + private System.Windows.Forms.NumericUpDown NUP_Rate2; + private System.Windows.Forms.Label L_Rate; + private System.Windows.Forms.NumericUpDown NUP_Forme01; + private System.Windows.Forms.ComboBox CB_Enc01; + private System.Windows.Forms.NumericUpDown NUP_Rate1; + private System.Windows.Forms.NumericUpDown NUP_Forme10; + private System.Windows.Forms.ComboBox CB_Enc10; + private System.Windows.Forms.NumericUpDown NUP_Rate10; + private System.Windows.Forms.NumericUpDown NUP_Forme09; + private System.Windows.Forms.ComboBox CB_Enc09; + private System.Windows.Forms.NumericUpDown NUP_Rate9; + private System.Windows.Forms.ComboBox CB_TableID; + private System.Windows.Forms.Button B_Export; + private System.Windows.Forms.NumericUpDown NUP_Forme20; + private System.Windows.Forms.ComboBox CB_Enc20; + private System.Windows.Forms.NumericUpDown NUP_Forme19; + private System.Windows.Forms.ComboBox CB_Enc19; + private System.Windows.Forms.NumericUpDown NUP_Forme18; + private System.Windows.Forms.ComboBox CB_Enc18; + private System.Windows.Forms.NumericUpDown NUP_Forme17; + private System.Windows.Forms.ComboBox CB_Enc17; + private System.Windows.Forms.NumericUpDown NUP_Forme16; + private System.Windows.Forms.ComboBox CB_Enc16; + private System.Windows.Forms.NumericUpDown NUP_Forme15; + private System.Windows.Forms.ComboBox CB_Enc15; + private System.Windows.Forms.NumericUpDown NUP_Forme14; + private System.Windows.Forms.ComboBox CB_Enc14; + private System.Windows.Forms.NumericUpDown NUP_Forme13; + private System.Windows.Forms.ComboBox CB_Enc13; + private System.Windows.Forms.NumericUpDown NUP_Forme12; + private System.Windows.Forms.ComboBox CB_Enc12; + private System.Windows.Forms.NumericUpDown NUP_Forme11; + private System.Windows.Forms.ComboBox CB_Enc11; + private System.Windows.Forms.Label L_SOS1; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.NumericUpDown NUP_Forme80; + private System.Windows.Forms.ComboBox CB_Enc80; + private System.Windows.Forms.NumericUpDown NUP_Forme79; + private System.Windows.Forms.ComboBox CB_Enc79; + private System.Windows.Forms.NumericUpDown NUP_Forme78; + private System.Windows.Forms.ComboBox CB_Enc78; + private System.Windows.Forms.NumericUpDown NUP_Forme77; + private System.Windows.Forms.ComboBox CB_Enc77; + private System.Windows.Forms.NumericUpDown NUP_Forme76; + private System.Windows.Forms.ComboBox CB_Enc76; + private System.Windows.Forms.NumericUpDown NUP_Forme75; + private System.Windows.Forms.ComboBox CB_Enc75; + private System.Windows.Forms.NumericUpDown NUP_Forme74; + private System.Windows.Forms.ComboBox CB_Enc74; + private System.Windows.Forms.NumericUpDown NUP_Forme73; + private System.Windows.Forms.ComboBox CB_Enc73; + private System.Windows.Forms.NumericUpDown NUP_Forme72; + private System.Windows.Forms.ComboBox CB_Enc72; + private System.Windows.Forms.NumericUpDown NUP_Forme71; + private System.Windows.Forms.ComboBox CB_Enc71; + private System.Windows.Forms.Label L_SOS7; + private System.Windows.Forms.NumericUpDown NUP_Forme70; + private System.Windows.Forms.ComboBox CB_Enc70; + private System.Windows.Forms.NumericUpDown NUP_Forme69; + private System.Windows.Forms.ComboBox CB_Enc69; + private System.Windows.Forms.NumericUpDown NUP_Forme68; + private System.Windows.Forms.ComboBox CB_Enc68; + private System.Windows.Forms.NumericUpDown NUP_Forme67; + private System.Windows.Forms.ComboBox CB_Enc67; + private System.Windows.Forms.NumericUpDown NUP_Forme66; + private System.Windows.Forms.ComboBox CB_Enc66; + private System.Windows.Forms.NumericUpDown NUP_Forme65; + private System.Windows.Forms.ComboBox CB_Enc65; + private System.Windows.Forms.NumericUpDown NUP_Forme64; + private System.Windows.Forms.ComboBox CB_Enc64; + private System.Windows.Forms.NumericUpDown NUP_Forme63; + private System.Windows.Forms.ComboBox CB_Enc63; + private System.Windows.Forms.NumericUpDown NUP_Forme62; + private System.Windows.Forms.ComboBox CB_Enc62; + private System.Windows.Forms.NumericUpDown NUP_Forme61; + private System.Windows.Forms.ComboBox CB_Enc61; + private System.Windows.Forms.Label L_SOS6; + private System.Windows.Forms.NumericUpDown NUP_Forme60; + private System.Windows.Forms.ComboBox CB_Enc60; + private System.Windows.Forms.NumericUpDown NUP_Forme59; + private System.Windows.Forms.ComboBox CB_Enc59; + private System.Windows.Forms.NumericUpDown NUP_Forme58; + private System.Windows.Forms.ComboBox CB_Enc58; + private System.Windows.Forms.NumericUpDown NUP_Forme57; + private System.Windows.Forms.ComboBox CB_Enc57; + private System.Windows.Forms.NumericUpDown NUP_Forme56; + private System.Windows.Forms.ComboBox CB_Enc56; + private System.Windows.Forms.NumericUpDown NUP_Forme55; + private System.Windows.Forms.ComboBox CB_Enc55; + private System.Windows.Forms.NumericUpDown NUP_Forme54; + private System.Windows.Forms.ComboBox CB_Enc54; + private System.Windows.Forms.NumericUpDown NUP_Forme53; + private System.Windows.Forms.ComboBox CB_Enc53; + private System.Windows.Forms.NumericUpDown NUP_Forme52; + private System.Windows.Forms.ComboBox CB_Enc52; + private System.Windows.Forms.NumericUpDown NUP_Forme51; + private System.Windows.Forms.ComboBox CB_Enc51; + private System.Windows.Forms.Label L_SOS5; + private System.Windows.Forms.NumericUpDown NUP_Forme50; + private System.Windows.Forms.ComboBox CB_Enc50; + private System.Windows.Forms.NumericUpDown NUP_Forme49; + private System.Windows.Forms.ComboBox CB_Enc49; + private System.Windows.Forms.NumericUpDown NUP_Forme48; + private System.Windows.Forms.ComboBox CB_Enc48; + private System.Windows.Forms.NumericUpDown NUP_Forme47; + private System.Windows.Forms.ComboBox CB_Enc47; + private System.Windows.Forms.NumericUpDown NUP_Forme46; + private System.Windows.Forms.ComboBox CB_Enc46; + private System.Windows.Forms.NumericUpDown NUP_Forme45; + private System.Windows.Forms.ComboBox CB_Enc45; + private System.Windows.Forms.NumericUpDown NUP_Forme44; + private System.Windows.Forms.ComboBox CB_Enc44; + private System.Windows.Forms.NumericUpDown NUP_Forme43; + private System.Windows.Forms.ComboBox CB_Enc43; + private System.Windows.Forms.NumericUpDown NUP_Forme42; + private System.Windows.Forms.ComboBox CB_Enc42; + private System.Windows.Forms.NumericUpDown NUP_Forme41; + private System.Windows.Forms.ComboBox CB_Enc41; + private System.Windows.Forms.Label L_SOS4; + private System.Windows.Forms.NumericUpDown NUP_Forme40; + private System.Windows.Forms.ComboBox CB_Enc40; + private System.Windows.Forms.NumericUpDown NUP_Forme39; + private System.Windows.Forms.ComboBox CB_Enc39; + private System.Windows.Forms.NumericUpDown NUP_Forme38; + private System.Windows.Forms.ComboBox CB_Enc38; + private System.Windows.Forms.NumericUpDown NUP_Forme37; + private System.Windows.Forms.ComboBox CB_Enc37; + private System.Windows.Forms.NumericUpDown NUP_Forme36; + private System.Windows.Forms.ComboBox CB_Enc36; + private System.Windows.Forms.NumericUpDown NUP_Forme35; + private System.Windows.Forms.ComboBox CB_Enc35; + private System.Windows.Forms.NumericUpDown NUP_Forme34; + private System.Windows.Forms.ComboBox CB_Enc34; + private System.Windows.Forms.NumericUpDown NUP_Forme33; + private System.Windows.Forms.ComboBox CB_Enc33; + private System.Windows.Forms.NumericUpDown NUP_Forme32; + private System.Windows.Forms.ComboBox CB_Enc32; + private System.Windows.Forms.NumericUpDown NUP_Forme31; + private System.Windows.Forms.ComboBox CB_Enc31; + private System.Windows.Forms.Label L_SOS3; + private System.Windows.Forms.NumericUpDown NUP_Forme30; + private System.Windows.Forms.ComboBox CB_Enc30; + private System.Windows.Forms.NumericUpDown NUP_Forme29; + private System.Windows.Forms.ComboBox CB_Enc29; + private System.Windows.Forms.NumericUpDown NUP_Forme28; + private System.Windows.Forms.ComboBox CB_Enc28; + private System.Windows.Forms.NumericUpDown NUP_Forme27; + private System.Windows.Forms.ComboBox CB_Enc27; + private System.Windows.Forms.NumericUpDown NUP_Forme26; + private System.Windows.Forms.ComboBox CB_Enc26; + private System.Windows.Forms.NumericUpDown NUP_Forme25; + private System.Windows.Forms.ComboBox CB_Enc25; + private System.Windows.Forms.NumericUpDown NUP_Forme24; + private System.Windows.Forms.ComboBox CB_Enc24; + private System.Windows.Forms.NumericUpDown NUP_Forme23; + private System.Windows.Forms.ComboBox CB_Enc23; + private System.Windows.Forms.NumericUpDown NUP_Forme22; + private System.Windows.Forms.ComboBox CB_Enc22; + private System.Windows.Forms.NumericUpDown NUP_Forme21; + private System.Windows.Forms.ComboBox CB_Enc21; + private System.Windows.Forms.Label L_SOS2; + private System.Windows.Forms.PictureBox PB_DayTable; + private System.Windows.Forms.PictureBox PB_NightTable; + private System.Windows.Forms.NumericUpDown NUP_WeatherForme6; + private System.Windows.Forms.NumericUpDown NUP_WeatherForme3; + private System.Windows.Forms.ComboBox CB_WeatherEnc6; + private System.Windows.Forms.NumericUpDown NUP_WeatherForme5; + private System.Windows.Forms.ComboBox CB_WeatherEnc5; + private System.Windows.Forms.NumericUpDown NUP_WeatherForme4; + private System.Windows.Forms.ComboBox CB_WeatherEnc4; + private System.Windows.Forms.ComboBox CB_WeatherEnc3; + private System.Windows.Forms.NumericUpDown NUP_WeatherForme2; + private System.Windows.Forms.ComboBox CB_WeatherEnc2; + private System.Windows.Forms.NumericUpDown NUP_WeatherForme1; + private System.Windows.Forms.ComboBox CB_WeatherEnc1; + private System.Windows.Forms.Label L_AddSOS; + private System.Windows.Forms.PictureBox PB_NightIcon; + private System.Windows.Forms.PictureBox PB_DayIcon; + private System.Windows.Forms.GroupBox GB_Tweak; + private System.Windows.Forms.CheckBox CHK_G7; + private System.Windows.Forms.CheckBox CHK_MegaForm; + private System.Windows.Forms.Label L_RandOpt; + private System.Windows.Forms.CheckBox CHK_BST; + private System.Windows.Forms.CheckBox CHK_E; + private System.Windows.Forms.CheckBox CHK_L; + private System.Windows.Forms.CheckBox CHK_G6; + private System.Windows.Forms.CheckBox CHK_G5; + private System.Windows.Forms.CheckBox CHK_G4; + private System.Windows.Forms.CheckBox CHK_G3; + private System.Windows.Forms.CheckBox CHK_G2; + private System.Windows.Forms.CheckBox CHK_G1; + private System.Windows.Forms.Button B_LevelPlus; + private System.Windows.Forms.NumericUpDown NUD_LevelAmp; + private System.Windows.Forms.CheckBox CHK_Level; + private System.Windows.Forms.Button CopySOS; + private System.Windows.Forms.Label L_SOS; + private System.Windows.Forms.ComboBox CB_SlotRand; + private System.Windows.Forms.Button B_PasteAll; + private System.Windows.Forms.Button B_Paste; + private System.Windows.Forms.Button B_Copy; + private System.Windows.Forms.Label L_Sand; + private System.Windows.Forms.Label L_Hail; + private System.Windows.Forms.Label L_Rain; + private System.Windows.Forms.Label L_Weather1; + private System.Windows.Forms.Label L_Weather0; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen7/SMWE.cs b/pk3DS.WinForms/Subforms/Gen7/SMWE.cs new file mode 100644 index 0000000000..56b01cb82a --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen7/SMWE.cs @@ -0,0 +1,558 @@ +using System; +using System.Drawing; +using System.Drawing.Drawing2D; +using System.IO; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +using pk3DS.Core; +using pk3DS.Core.CTR; +using pk3DS.Core.Randomizers; + +namespace pk3DS.WinForms; + +public partial class SMWE : Form +{ + public SMWE(LazyGARCFile ed, LazyGARCFile zd, LazyGARCFile wd) + { + InitializeComponent(); + + PB_DayIcon.Image = Properties.Resources.sun; + PB_NightIcon.Image = Properties.Resources.moon; + PB_DayIcon.SizeMode = PictureBoxSizeMode.CenterImage; + PB_NightIcon.SizeMode = PictureBoxSizeMode.CenterImage; + + font = L_Location.Font; + + speciesList[0] = "(None)"; + var locationList = Main.Config.GetText(TextName.metlist_000000); + locationList = GetGoodLocationList(locationList); + + nup_spec = LoadFormeNUD(); + cb_spec = LoadSpeciesComboBoxes(); + rate_spec = LoadRateNUD(); + + encdata = ed; + var areas = Area7.GetArray(ed, zd, wd, locationList); + Areas = [.. areas.OrderBy(a => a.Zones[0].Name)]; + + LoadData(); + RandSettings.GetFormSettings(this, GB_Tweak.Controls); + + var weather = string.Format("If weather is active, create a random number.{0}If 0, use slot 0.{0}If <= 10, use slot 1.{0}Else, pick an SOS table and a slot.", Environment.NewLine); + new ToolTip().SetToolTip(L_AddSOS, weather); + var sos = new[] { L_SOS1, L_SOS2, L_SOS3, L_SOS4, L_SOS5, L_SOS6, L_SOS7 }; + var rates = new[] { 1, 1, 1, 10, 10, 10, 67 }; + for (int i = 0; i < sos.Length; i++) + new ToolTip().SetToolTip(sos[i], $"Table Selection Rate: {rates[i]}%"); + + // ExportEncounters("um", "uu"); + } + + private NumericUpDown[] LoadRateNUD() + { + var list = new[] { NUP_Rate1, NUP_Rate2, NUP_Rate3, NUP_Rate4, NUP_Rate5, NUP_Rate6, NUP_Rate7, NUP_Rate8, NUP_Rate9, NUP_Rate10 }; + foreach (var nup in list) + nup.ValueChanged += UpdateEncounterRate; + return list; + } + + private ComboBox[][] LoadSpeciesComboBoxes() + { + var list = new[] { + [CB_Enc01, CB_Enc02, CB_Enc03, CB_Enc04, CB_Enc05, CB_Enc06, CB_Enc07, CB_Enc08, CB_Enc09, CB_Enc10], + [CB_Enc11, CB_Enc12, CB_Enc13, CB_Enc14, CB_Enc15, CB_Enc16, CB_Enc17, CB_Enc18, CB_Enc19, CB_Enc20], + [CB_Enc21, CB_Enc22, CB_Enc23, CB_Enc24, CB_Enc25, CB_Enc26, CB_Enc27, CB_Enc28, CB_Enc29, CB_Enc30], + [CB_Enc31, CB_Enc32, CB_Enc33, CB_Enc34, CB_Enc35, CB_Enc36, CB_Enc37, CB_Enc38, CB_Enc39, CB_Enc40], + [CB_Enc41, CB_Enc42, CB_Enc43, CB_Enc44, CB_Enc45, CB_Enc46, CB_Enc47, CB_Enc48, CB_Enc49, CB_Enc50], + [CB_Enc51, CB_Enc52, CB_Enc53, CB_Enc54, CB_Enc55, CB_Enc56, CB_Enc57, CB_Enc58, CB_Enc59, CB_Enc60], + [CB_Enc61, CB_Enc62, CB_Enc63, CB_Enc64, CB_Enc65, CB_Enc66, CB_Enc67, CB_Enc68, CB_Enc69, CB_Enc70], + [CB_Enc71, CB_Enc72, CB_Enc73, CB_Enc74, CB_Enc75, CB_Enc76, CB_Enc77, CB_Enc78, CB_Enc79, CB_Enc80], + new[] {CB_WeatherEnc1, CB_WeatherEnc2, CB_WeatherEnc3, CB_WeatherEnc4, CB_WeatherEnc5, CB_WeatherEnc6}, + }; + foreach (var cb_l in list) + { + foreach (var cb in cb_l) + { + cb.Items.AddRange(speciesList); + cb.SelectedIndex = 0; + cb.SelectedIndexChanged += UpdateSpeciesForm; + } + } + + return list; + } + + private NumericUpDown[][] LoadFormeNUD() + { + var list = new[] { + [NUP_Forme01, NUP_Forme02, NUP_Forme03, NUP_Forme04, NUP_Forme05, NUP_Forme06, NUP_Forme07, NUP_Forme08, NUP_Forme09, NUP_Forme10, + ], + [NUP_Forme11, NUP_Forme12, NUP_Forme13, NUP_Forme14, NUP_Forme15, NUP_Forme16, NUP_Forme17, NUP_Forme18, NUP_Forme19, NUP_Forme20, + ], + [NUP_Forme21, NUP_Forme22, NUP_Forme23, NUP_Forme24, NUP_Forme25, NUP_Forme26, NUP_Forme27, NUP_Forme28, NUP_Forme29, NUP_Forme30, + ], + [NUP_Forme31, NUP_Forme32, NUP_Forme33, NUP_Forme34, NUP_Forme35, NUP_Forme36, NUP_Forme37, NUP_Forme38, NUP_Forme39, NUP_Forme40, + ], + [NUP_Forme41, NUP_Forme42, NUP_Forme43, NUP_Forme44, NUP_Forme45, NUP_Forme46, NUP_Forme47, NUP_Forme48, NUP_Forme49, NUP_Forme50, + ], + [NUP_Forme51, NUP_Forme52, NUP_Forme53, NUP_Forme54, NUP_Forme55, NUP_Forme56, NUP_Forme57, NUP_Forme58, NUP_Forme59, NUP_Forme60, + ], + [NUP_Forme61, NUP_Forme62, NUP_Forme63, NUP_Forme64, NUP_Forme65, NUP_Forme66, NUP_Forme67, NUP_Forme68, NUP_Forme69, NUP_Forme70, + ], + [NUP_Forme71, NUP_Forme72, NUP_Forme73, NUP_Forme74, NUP_Forme75, NUP_Forme76, NUP_Forme77, NUP_Forme78, NUP_Forme79, NUP_Forme80, + ], + new [] { NUP_WeatherForme1, NUP_WeatherForme2, NUP_WeatherForme3, NUP_WeatherForme4, NUP_WeatherForme5, NUP_WeatherForme6 }, + }; + + foreach (var nup_l in list) + { + foreach (var nup in nup_l) + nup.ValueChanged += UpdateSpeciesForm; + } + + return list; + } + + private readonly Area7[] Areas; + private readonly LazyGARCFile encdata; + private readonly string[] speciesList = Main.Config.GetText(TextName.SpeciesNames); + private readonly Font font; + private readonly NumericUpDown[][] nup_spec; + private readonly ComboBox[][] cb_spec; + private readonly NumericUpDown[] rate_spec; + + private int TotalEncounterRate => rate_spec.Sum(nup => (int)nup.Value); + private bool loadingdata; + private EncounterTable CurrentTable; + + private void LoadData() + { + loadingdata = true; + + CB_LocationID.Items.Clear(); + CB_LocationID.Items.AddRange(Areas.Select(a => a.Name).ToArray()); + + CB_SlotRand.SelectedIndex = 0; + CB_LocationID.SelectedIndex = 0; + + loadingdata = false; + ChangeMap(null, null); + } + + private void ChangeMap(object sender, EventArgs e) + { + loadingdata = true; + CB_TableID.Items.Clear(); + if (Areas[CB_LocationID.SelectedIndex].HasTables) + { + for (int i = 0; i < Areas[CB_LocationID.SelectedIndex].Tables.Count; i += 2) + { + CB_TableID.Items.Add($"{(i / 2) + 1} (Day)"); + CB_TableID.Items.Add($"{(i / 2) + 1} (Night)"); + } + } + else + { + CB_TableID.Items.Add("(None)"); + } + + CB_TableID.SelectedIndex = 0; + loadingdata = false; + UpdatePanel(sender, e); + } + + private void UpdatePanel(object sender, EventArgs e) + { + if (loadingdata) + return; + loadingdata = true; + + var Map = Areas[CB_LocationID.SelectedIndex]; + GB_Encounters.Enabled = Map.HasTables; + if (!Map.HasTables) + { + loadingdata = false; + return; + } + CurrentTable = new EncounterTable(Map.Tables[CB_TableID.SelectedIndex].Data); + LoadTable(CurrentTable); + + loadingdata = false; + RefreshTableImages(Map); + } + + private void RefreshTableImages(Area7 Map) + { + int base_id = CB_TableID.SelectedIndex / 2; + base_id *= 2; + PB_DayTable.Image = Map.Tables[base_id].GetTableImg(font); + PB_NightTable.Image = Map.Tables[base_id + 1].GetTableImg(font); + } + + private void LoadTable(EncounterTable table) + { + NUP_Min.Value = table.MinLevel; + NUP_Max.Minimum = table.MinLevel; + NUP_Max.Value = table.MaxLevel; + for (int slot = 0; slot < table.Encounter7s.Length; slot++) + { + for (int i = 0; i < table.Encounter7s[slot].Length; i++) + { + var sl = table.Encounter7s[slot]; + if (slot == 8) + sl = table.AdditionalSOS; + rate_spec[i].Value = table.Rates[i]; + cb_spec[slot][i].SelectedIndex = (int)sl[i].Species; + nup_spec[slot][i].Value = (int)sl[i].Forme; + } + } + } + + private void UpdateMinMax(object sender, EventArgs e) + { + if (loadingdata) + return; + loadingdata = true; + int min = (int)NUP_Min.Value; + int max = (int)NUP_Max.Value; + if (max < min) + { + max = min; + NUP_Max.Value = max; + NUP_Max.Minimum = min; + } + CurrentTable.MinLevel = min; + CurrentTable.MaxLevel = max; + loadingdata = false; + } + + private void UpdateSpeciesForm(object sender, EventArgs e) + { + if (loadingdata) + return; + + var cur_pb = CB_TableID.SelectedIndex % 2 == 0 ? PB_DayTable : PB_NightTable; + var cur_img = cur_pb.Image; + + object[][] source = sender is NumericUpDown ? nup_spec : cb_spec; + int table = Array.FindIndex(source, t => t.Contains(sender)); + int slot = Array.IndexOf(source[table], sender); + + var cb_l = cb_spec[table]; + var nup_l = nup_spec[table]; + var species = (uint)cb_l[slot].SelectedIndex; + var form = (uint)nup_l[slot].Value; + if (table == 8) + { + CurrentTable.AdditionalSOS[slot].Species = species; + CurrentTable.AdditionalSOS[slot].Forme = form; + } + CurrentTable.Encounter7s[table][slot].Species = species; + CurrentTable.Encounter7s[table][slot].Forme = form; + + using (var g = Graphics.FromImage(cur_img)) + { + int x = 40 * slot; + int y = 30 * (table + 1); + if (table == 8) + { + x = (40 * slot) + 60; + y = 270; + } + var pnt = new Point(x, y); + g.SetClip(new Rectangle(pnt.X, pnt.Y, 40, 30), CombineMode.Replace); + g.Clear(Color.Transparent); + + var enc = CurrentTable.Encounter7s[table][slot]; + g.DrawImage(enc.Species == 0 ? Properties.Resources.empty : WinFormsUtil.GetSprite((int)enc.Species, (int)enc.Forme, 0, 0, Main.Config), pnt); + } + + cur_pb.Image = cur_img; + } + + private void UpdateEncounterRate(object sender, EventArgs e) + { + if (loadingdata) + return; + + var cur_pb = CB_TableID.SelectedIndex % 2 == 0 ? PB_DayTable : PB_NightTable; + var cur_img = cur_pb.Image; + + int slot = Array.IndexOf(rate_spec, sender); + int rate = (int)((NumericUpDown)sender).Value; + CurrentTable.Rates[slot] = rate; + + using (var g = Graphics.FromImage(cur_img)) + { + var pnt = new PointF((40 * slot) + 10, 10); + g.SetClip(new Rectangle((int)pnt.X, (int)pnt.Y, 40, 14), CombineMode.Replace); + g.Clear(Color.Transparent); + g.DrawString($"{rate}%", font, Brushes.Black, pnt); + } + + cur_pb.Image = cur_img; + + var sum = TotalEncounterRate; + GB_Encounters.Text = $"Encounters ({sum}%)"; + } + + private byte[] CopyTable; + private int CopyCount; + + private void B_Copy_Click(object sender, EventArgs e) + { + var Map = Areas[CB_LocationID.SelectedIndex]; + if (!Map.HasTables) + { + WinFormsUtil.Alert("No tables to copy."); + return; + } + CurrentTable.Write(); + CopyTable = (byte[])CurrentTable.Data.Clone(); + CopyCount = CurrentTable.Encounter7s[0].Count(z => z.Species != 0); + B_Paste.Enabled = B_PasteAll.Enabled = true; + WinFormsUtil.Alert("Copied table data."); + } + + private void B_Paste_Click(object sender, EventArgs e) + { + var Map = Areas[CB_LocationID.SelectedIndex]; + if (!Map.HasTables) + { + WinFormsUtil.Alert("No table to paste to."); + return; + } + CurrentTable.Reset(CopyTable); + loadingdata = true; + LoadTable(CurrentTable); + var area = Areas[CB_LocationID.SelectedIndex]; + area.Tables[CB_TableID.SelectedIndex] = CurrentTable; + loadingdata = false; + RefreshTableImages(Map); + System.Media.SystemSounds.Asterisk.Play(); + } + + private void B_PasteAll_Click(object sender, EventArgs e) + { + var Map = Areas[CB_LocationID.SelectedIndex]; + if (!Map.HasTables) + { + WinFormsUtil.Alert("No table to paste to."); + return; + } + B_Paste_Click(sender, e); + foreach (var t in Map.Tables.Where(t => CopyCount == t.Encounter7s[0].Count(z => z.Species != 0))) + t.Reset(CopyTable); + } + + private void B_Save_Click(object sender, EventArgs e) + { + var sum = TotalEncounterRate; + if (sum != 100 && sum != 0) + { + WinFormsUtil.Error("Encounter rates must add up to either 0% or 100%."); + return; + } + + CurrentTable.Write(); + var area = Areas[CB_LocationID.SelectedIndex]; + area.Tables[CB_TableID.SelectedIndex] = CurrentTable; + + // Set data back to GARC + encdata[area.FileNumber] = Area7.GetDayNightTableBinary(area.Tables); + } + + private void B_Export_Click(object sender, EventArgs e) + { + B_Save_Click(sender, e); + + Directory.CreateDirectory("encdata"); + foreach (var Map in Areas) + { + var packed = Area7.GetDayNightTableBinary(Map.Tables); + File.WriteAllBytes(Path.Combine("encdata", Map.FileNumber.ToString()), packed); + } + WinFormsUtil.Alert("Exported all tables!"); + } + + private void DumpTables(object sender, EventArgs e) + { + using var sfd = new SaveFileDialog { FileName = "EncounterTables.txt" }; + if (sfd.ShowDialog() != DialogResult.OK) + return; + var sb = new StringBuilder(); + foreach (var Map in Areas) + sb.Append(Map.GetSummary(speciesList)); + File.WriteAllText(sfd.FileName, sb.ToString()); + } + + // Randomization & Bulk Modification + private void B_Randomize_Click(object sender, EventArgs e) + { + if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomize all? Cannot undo.", "Double check Randomization settings at the bottom left.")) + return; + + Enabled = false; + ExecuteRandomization(); + UpdatePanel(null, null); + Enabled = true; + + WinFormsUtil.Alert("Randomized all Wild Encounters according to specification!", "Press the Dump Tables button to view the new Wild Encounter information!"); + } + + private void ExecuteRandomization() + { + var rnd = new SpeciesRandomizer(Main.Config) + { + G1 = CHK_G1.Checked, + G2 = CHK_G2.Checked, + G3 = CHK_G3.Checked, + G4 = CHK_G4.Checked, + G5 = CHK_G5.Checked, + G6 = CHK_G6.Checked, + G7 = CHK_G7.Checked, + + E = CHK_E.Checked, + L = CHK_L.Checked, + rBST = CHK_BST.Checked, + }; + rnd.Initialize(); + var form = new FormRandomizer(Main.Config) + { + AllowMega = CHK_MegaForm.Checked, + AllowAlolanForm = true, + }; + var wild7 = new Wild7Randomizer + { + RandSpec = rnd, + RandForm = form, + TableRandomizationOption = CB_SlotRand.SelectedIndex, + LevelAmplifier = NUD_LevelAmp.Value, + ModifyLevel = CHK_Level.Checked, + }; + wild7.Execute(Areas, encdata); + } + + private void CopySOS_Click(object sender, EventArgs e) + { + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Copy initial species to SOS slots?", "Cannot undo.") != DialogResult.Yes) + return; + + // first table is copied to all other tables except weather (last) + for (int i = 1; i < nup_spec.Length - 1; i++) + { + for (int s = 0; s < nup_spec[i].Length; s++) // slot copy + { + nup_spec[i][s].Value = nup_spec[0][s].Value; + cb_spec[i][s].SelectedIndex = cb_spec[0][s].SelectedIndex; + } + } + WinFormsUtil.Alert("All initial species copied to SOS slots!"); + } + + private void ModifyAllLevelRanges(object sender, EventArgs e) + { + if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Modify all current Level ranges?", "Cannot undo.")) + return; + + // Disable Interface while modifying + Enabled = false; + + // Cycle through each location to modify levels + var amp = NUD_LevelAmp.Value; + foreach (var area in Areas) + { + var tables = area.Tables; + foreach (var table in tables) + { + table.MinLevel = Randomizer.GetModifiedLevel(table.MinLevel, amp); + table.MaxLevel = Randomizer.GetModifiedLevel(table.MaxLevel, amp); + table.Write(); + } + encdata[area.FileNumber] = Area7.GetDayNightTableBinary(tables); + } + + // Enable Interface... modification complete. + Enabled = true; + WinFormsUtil.Alert("Modified all Level ranges according to specification!", "Press the Dump Tables button to view the new Level ranges!"); + + UpdatePanel(sender, e); + } + + // Utility + /// + /// Moves the sub-location names into the location name string entry. + /// + /// Raw location list + /// Cleaned location list + public static string[] GetGoodLocationList(string[] list) + { + var bad = list; + var good = (string[])bad.Clone(); + for (int i = 0; i < bad.Length; i += 2) + { + var nextLoc = bad[i + 1]; + if (!string.IsNullOrWhiteSpace(nextLoc) && nextLoc[0] != '[') + good[i] += $" ({nextLoc})"; + if (i > 0 && !string.IsNullOrWhiteSpace(good[i]) && good.Take(i - 1).Contains(good[i])) + good[i] += $" ({good.Take(i - 1).Count(s => s == good[i]) + 1})"; + } + return good; + } + + public void ExportEncounters(string gameID, string ident, bool sm) + { + var reg = Gen7SlotDumper.GetRegularBinary(Areas, sm); + var sos = Gen7SlotDumper.GetSOSBinary(Areas, Main.Config.Personal, sm); + + File.WriteAllBytes($"encounter_{gameID}.pkl", Mini.PackMini(reg, ident)); + File.WriteAllBytes($"encounter_{gameID}_sos.pkl", Mini.PackMini(sos, ident)); + } + + private void SMWE_FormClosing(object sender, FormClosingEventArgs e) + { + RandSettings.SetFormSettings(this, GB_Tweak.Controls); + } +} + +public static class Extensions +{ + public static Bitmap GetTableImg(this EncounterTable table, Font font) + { + var img = new Bitmap(10 * 40, 10 * 30); + using var g = Graphics.FromImage(img); + g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SingleBitPerPixelGridFit; + for (int i = 0; i < table.Rates.Length; i++) + g.DrawString($"{table.Rates[i]}%", font, Brushes.Black, new PointF((40 * i) + 10, 10)); + g.DrawString("Weather: ", font, Brushes.Black, new PointF(10, 280)); + + // Draw Sprites + for (int i = 0; i < table.Encounter7s.Length - 1; i++) + { + for (int j = 0; j < table.Encounter7s[i].Length; j++) + { + var slot = table.Encounter7s[i][j]; + var sprite = GetSprite((int)slot.Species, (int)slot.Forme); + g.DrawImage(sprite, new Point(40 * j, 30 * (i + 1))); + } + } + + for (int i = 0; i < table.AdditionalSOS.Length; i++) + { + var slot = table.AdditionalSOS[i]; + var sprite = GetSprite((int)slot.Species, (int)slot.Forme); + g.DrawImage(sprite, new Point((40 * i) + 60, 270)); + } + + static Bitmap GetSprite(int species, int form) + { + return species == 0 + ? Properties.Resources.empty + : WinFormsUtil.GetSprite(species, form, 0, 0, Main.Config); + } + + return img; + } +} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/SMWE.resx b/pk3DS.WinForms/Subforms/Gen7/SMWE.resx similarity index 100% rename from pk3DS/Subforms/Gen7/SMWE.resx rename to pk3DS.WinForms/Subforms/Gen7/SMWE.resx diff --git a/pk3DS.WinForms/Subforms/Gen7/StaticEncounterEditor7.Designer.cs b/pk3DS.WinForms/Subforms/Gen7/StaticEncounterEditor7.Designer.cs new file mode 100644 index 0000000000..c675789c68 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen7/StaticEncounterEditor7.Designer.cs @@ -0,0 +1,2414 @@ +namespace pk3DS.WinForms; + +partial class StaticEncounterEditor7 +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.TC_Tabs = new System.Windows.Forms.TabControl(); + this.Tab_Gifts = new System.Windows.Forms.TabPage(); + this.CB_GAbility = new System.Windows.Forms.ComboBox(); + this.L_GAbility = new System.Windows.Forms.Label(); + this.CB_GNature = new System.Windows.Forms.ComboBox(); + this.L_GNature = new System.Windows.Forms.Label(); + this.CHK_IsEgg = new System.Windows.Forms.CheckBox(); + this.CHK_GIV3 = new System.Windows.Forms.CheckBox(); + this.CB_SpecialMove = new System.Windows.Forms.ComboBox(); + this.L_SpecialMove = new System.Windows.Forms.Label(); + this.CHK_G_Lock = new System.Windows.Forms.CheckBox(); + this.CB_GHeldItem = new System.Windows.Forms.ComboBox(); + this.L_GHeldItem = new System.Windows.Forms.Label(); + this.CB_GSpecies = new System.Windows.Forms.ComboBox(); + this.L_GForm = new System.Windows.Forms.Label(); + this.NUD_GForm = new System.Windows.Forms.NumericUpDown(); + this.L_GLevel = new System.Windows.Forms.Label(); + this.L_GSpecies = new System.Windows.Forms.Label(); + this.NUD_GLevel = new System.Windows.Forms.NumericUpDown(); + this.LB_Gift = new System.Windows.Forms.ListBox(); + this.Tab_Encounters = new System.Windows.Forms.TabPage(); + this.B_ClearSE = new System.Windows.Forms.Button(); + this.B_CurrentAttackSE = new System.Windows.Forms.Button(); + this.B_HighAttackSE = new System.Windows.Forms.Button(); + this.CB_EGender = new System.Windows.Forms.ComboBox(); + this.L_SOS1 = new System.Windows.Forms.Label(); + this.NUD_Ally1 = new System.Windows.Forms.NumericUpDown(); + this.L_SOS2 = new System.Windows.Forms.Label(); + this.NUD_Ally2 = new System.Windows.Forms.NumericUpDown(); + this.L_EGender = new System.Windows.Forms.Label(); + this.CB_EAbility = new System.Windows.Forms.ComboBox(); + this.L_EAbility = new System.Windows.Forms.Label(); + this.CHK_EIV3 = new System.Windows.Forms.CheckBox(); + this.CB_ENature = new System.Windows.Forms.ComboBox(); + this.L_ENature = new System.Windows.Forms.Label(); + this.GB_EEVs = new System.Windows.Forms.GroupBox(); + this.NUD_EV5 = new System.Windows.Forms.NumericUpDown(); + this.NUD_EV4 = new System.Windows.Forms.NumericUpDown(); + this.NUD_EV3 = new System.Windows.Forms.NumericUpDown(); + this.NUD_EV2 = new System.Windows.Forms.NumericUpDown(); + this.NUD_EV1 = new System.Windows.Forms.NumericUpDown(); + this.label2 = new System.Windows.Forms.Label(); + this.label7 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.NUD_EV0 = new System.Windows.Forms.NumericUpDown(); + this.label3 = new System.Windows.Forms.Label(); + this.label4 = new System.Windows.Forms.Label(); + this.label5 = new System.Windows.Forms.Label(); + this.GB_EIVs = new System.Windows.Forms.GroupBox(); + this.L_HP = new System.Windows.Forms.Label(); + this.NUD_EIV3 = new System.Windows.Forms.NumericUpDown(); + this.NUD_EIV4 = new System.Windows.Forms.NumericUpDown(); + this.NUD_EIV5 = new System.Windows.Forms.NumericUpDown(); + this.L_SPD = new System.Windows.Forms.Label(); + this.L_SPE = new System.Windows.Forms.Label(); + this.L_SPA = new System.Windows.Forms.Label(); + this.NUD_EIV2 = new System.Windows.Forms.NumericUpDown(); + this.NUD_EIV1 = new System.Windows.Forms.NumericUpDown(); + this.NUD_EIV0 = new System.Windows.Forms.NumericUpDown(); + this.L_ATK = new System.Windows.Forms.Label(); + this.L_DEF = new System.Windows.Forms.Label(); + this.L_Aura = new System.Windows.Forms.Label(); + this.CB_Aura = new System.Windows.Forms.ComboBox(); + this.CHK_ShinyLock = new System.Windows.Forms.CheckBox(); + this.GB_EMoves = new System.Windows.Forms.GroupBox(); + this.CB_EMove3 = new System.Windows.Forms.ComboBox(); + this.CB_EMove2 = new System.Windows.Forms.ComboBox(); + this.CB_EMove1 = new System.Windows.Forms.ComboBox(); + this.CB_EMove0 = new System.Windows.Forms.ComboBox(); + this.CB_EHeldItem = new System.Windows.Forms.ComboBox(); + this.L_EHeldItem = new System.Windows.Forms.Label(); + this.CB_ESpecies = new System.Windows.Forms.ComboBox(); + this.L_EForm = new System.Windows.Forms.Label(); + this.NUD_EForm = new System.Windows.Forms.NumericUpDown(); + this.L_ELevel = new System.Windows.Forms.Label(); + this.L_ESpecies = new System.Windows.Forms.Label(); + this.NUD_ELevel = new System.Windows.Forms.NumericUpDown(); + this.LB_Encounter = new System.Windows.Forms.ListBox(); + this.L_Ally2 = new System.Windows.Forms.Label(); + this.L_Ally1 = new System.Windows.Forms.Label(); + this.Tab_Trades = new System.Windows.Forms.TabPage(); + this.CB_TGender = new System.Windows.Forms.ComboBox(); + this.L_TGender = new System.Windows.Forms.Label(); + this.CB_TAbility = new System.Windows.Forms.ComboBox(); + this.L_TAbility = new System.Windows.Forms.Label(); + this.CB_TNature = new System.Windows.Forms.ComboBox(); + this.L_TNature = new System.Windows.Forms.Label(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.label8 = new System.Windows.Forms.Label(); + this.NUD_TIV3 = new System.Windows.Forms.NumericUpDown(); + this.NUD_TIV4 = new System.Windows.Forms.NumericUpDown(); + this.NUD_TIV5 = new System.Windows.Forms.NumericUpDown(); + this.label9 = new System.Windows.Forms.Label(); + this.label10 = new System.Windows.Forms.Label(); + this.label11 = new System.Windows.Forms.Label(); + this.NUD_TIV2 = new System.Windows.Forms.NumericUpDown(); + this.NUD_TIV1 = new System.Windows.Forms.NumericUpDown(); + this.NUD_TIV0 = new System.Windows.Forms.NumericUpDown(); + this.label12 = new System.Windows.Forms.Label(); + this.label13 = new System.Windows.Forms.Label(); + this.CB_TRequest = new System.Windows.Forms.ComboBox(); + this.label1 = new System.Windows.Forms.Label(); + this.L_TTID = new System.Windows.Forms.Label(); + this.L_TID = new System.Windows.Forms.Label(); + this.NUD_TID = new System.Windows.Forms.NumericUpDown(); + this.CB_THeldItem = new System.Windows.Forms.ComboBox(); + this.L_THeldItem = new System.Windows.Forms.Label(); + this.CB_TSpecies = new System.Windows.Forms.ComboBox(); + this.L_TForm = new System.Windows.Forms.Label(); + this.NUD_TForm = new System.Windows.Forms.NumericUpDown(); + this.L_TLevel = new System.Windows.Forms.Label(); + this.L_TSpecies = new System.Windows.Forms.Label(); + this.NUD_TLevel = new System.Windows.Forms.NumericUpDown(); + this.LB_Trade = new System.Windows.Forms.ListBox(); + this.Tab_Randomizer = new System.Windows.Forms.TabPage(); + this.GB_Tweak = new System.Windows.Forms.GroupBox(); + this.CHK_Metronome = new System.Windows.Forms.CheckBox(); + this.CHK_RemoveShinyLock = new System.Windows.Forms.CheckBox(); + this.NUD_ForceFullyEvolved = new System.Windows.Forms.NumericUpDown(); + this.CHK_ForceTotem = new System.Windows.Forms.CheckBox(); + this.CHK_ForceFullyEvolved = new System.Windows.Forms.CheckBox(); + this.CHK_BasicStarter = new System.Windows.Forms.CheckBox(); + this.CHK_ReplaceLegend = new System.Windows.Forms.CheckBox(); + this.B_ModifyLevel = new System.Windows.Forms.Button(); + this.NUD_LevelBoost = new System.Windows.Forms.NumericUpDown(); + this.CHK_Level = new System.Windows.Forms.CheckBox(); + this.B_RandAll = new System.Windows.Forms.Button(); + this.GB_Rand = new System.Windows.Forms.GroupBox(); + this.CHK_SpecialMove = new System.Windows.Forms.CheckBox(); + this.CHK_RandomAbility = new System.Windows.Forms.CheckBox(); + this.CHK_RandomAura = new System.Windows.Forms.CheckBox(); + this.CHK_AllowMega = new System.Windows.Forms.CheckBox(); + this.CHK_Item = new System.Windows.Forms.CheckBox(); + this.CHK_G7 = new System.Windows.Forms.CheckBox(); + this.CHK_BST = new System.Windows.Forms.CheckBox(); + this.CHK_E = new System.Windows.Forms.CheckBox(); + this.CHK_L = new System.Windows.Forms.CheckBox(); + this.CHK_G6 = new System.Windows.Forms.CheckBox(); + this.CHK_G5 = new System.Windows.Forms.CheckBox(); + this.CHK_G4 = new System.Windows.Forms.CheckBox(); + this.CHK_G3 = new System.Windows.Forms.CheckBox(); + this.CHK_G2 = new System.Windows.Forms.CheckBox(); + this.CHK_G1 = new System.Windows.Forms.CheckBox(); + this.B_Starters = new System.Windows.Forms.Button(); + this.B_Save = new System.Windows.Forms.Button(); + this.B_Cancel = new System.Windows.Forms.Button(); + this.TC_Tabs.SuspendLayout(); + this.Tab_Gifts.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_GForm)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_GLevel)).BeginInit(); + this.Tab_Encounters.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Ally1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Ally2)).BeginInit(); + this.GB_EEVs.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_EV5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_EV4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_EV3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_EV2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_EV1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_EV0)).BeginInit(); + this.GB_EIVs.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_EIV3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_EIV4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_EIV5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_EIV2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_EIV1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_EIV0)).BeginInit(); + this.GB_EMoves.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_EForm)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_ELevel)).BeginInit(); + this.Tab_Trades.SuspendLayout(); + this.groupBox1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_TIV3)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_TIV4)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_TIV5)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_TIV2)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_TIV1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_TIV0)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_TID)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_TForm)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_TLevel)).BeginInit(); + this.Tab_Randomizer.SuspendLayout(); + this.GB_Tweak.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_ForceFullyEvolved)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_LevelBoost)).BeginInit(); + this.GB_Rand.SuspendLayout(); + this.SuspendLayout(); + // + // TC_Tabs + // + this.TC_Tabs.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.TC_Tabs.Controls.Add(this.Tab_Gifts); + this.TC_Tabs.Controls.Add(this.Tab_Encounters); + this.TC_Tabs.Controls.Add(this.Tab_Trades); + this.TC_Tabs.Controls.Add(this.Tab_Randomizer); + this.TC_Tabs.Location = new System.Drawing.Point(16, 14); + this.TC_Tabs.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.TC_Tabs.Name = "TC_Tabs"; + this.TC_Tabs.SelectedIndex = 0; + this.TC_Tabs.Size = new System.Drawing.Size(675, 662); + this.TC_Tabs.TabIndex = 0; + // + // Tab_Gifts + // + this.Tab_Gifts.Controls.Add(this.CB_GAbility); + this.Tab_Gifts.Controls.Add(this.L_GAbility); + this.Tab_Gifts.Controls.Add(this.CB_GNature); + this.Tab_Gifts.Controls.Add(this.L_GNature); + this.Tab_Gifts.Controls.Add(this.CHK_IsEgg); + this.Tab_Gifts.Controls.Add(this.CHK_GIV3); + this.Tab_Gifts.Controls.Add(this.CB_SpecialMove); + this.Tab_Gifts.Controls.Add(this.L_SpecialMove); + this.Tab_Gifts.Controls.Add(this.CHK_G_Lock); + this.Tab_Gifts.Controls.Add(this.CB_GHeldItem); + this.Tab_Gifts.Controls.Add(this.L_GHeldItem); + this.Tab_Gifts.Controls.Add(this.CB_GSpecies); + this.Tab_Gifts.Controls.Add(this.L_GForm); + this.Tab_Gifts.Controls.Add(this.NUD_GForm); + this.Tab_Gifts.Controls.Add(this.L_GLevel); + this.Tab_Gifts.Controls.Add(this.L_GSpecies); + this.Tab_Gifts.Controls.Add(this.NUD_GLevel); + this.Tab_Gifts.Controls.Add(this.LB_Gift); + this.Tab_Gifts.Location = new System.Drawing.Point(4, 25); + this.Tab_Gifts.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.Tab_Gifts.Name = "Tab_Gifts"; + this.Tab_Gifts.Size = new System.Drawing.Size(667, 633); + this.Tab_Gifts.TabIndex = 2; + this.Tab_Gifts.Text = "Gifts"; + this.Tab_Gifts.UseVisualStyleBackColor = true; + // + // CB_GAbility + // + this.CB_GAbility.FormattingEnabled = true; + this.CB_GAbility.Location = new System.Drawing.Point(249, 87); + this.CB_GAbility.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CB_GAbility.Name = "CB_GAbility"; + this.CB_GAbility.Size = new System.Drawing.Size(180, 24); + this.CB_GAbility.TabIndex = 513; + // + // L_GAbility + // + this.L_GAbility.Location = new System.Drawing.Point(175, 85); + this.L_GAbility.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.L_GAbility.Name = "L_GAbility"; + this.L_GAbility.Size = new System.Drawing.Size(73, 28); + this.L_GAbility.TabIndex = 512; + this.L_GAbility.Text = "Ability:"; + this.L_GAbility.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_GNature + // + this.CB_GNature.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_GNature.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_GNature.FormattingEnabled = true; + this.CB_GNature.Location = new System.Drawing.Point(249, 142); + this.CB_GNature.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CB_GNature.Name = "CB_GNature"; + this.CB_GNature.Size = new System.Drawing.Size(180, 24); + this.CB_GNature.TabIndex = 511; + // + // L_GNature + // + this.L_GNature.Location = new System.Drawing.Point(175, 139); + this.L_GNature.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.L_GNature.Name = "L_GNature"; + this.L_GNature.Size = new System.Drawing.Size(73, 28); + this.L_GNature.TabIndex = 510; + this.L_GNature.Text = "Nature:"; + this.L_GNature.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CHK_IsEgg + // + this.CHK_IsEgg.AutoSize = true; + this.CHK_IsEgg.Location = new System.Drawing.Point(249, 238); + this.CHK_IsEgg.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CHK_IsEgg.Name = "CHK_IsEgg"; + this.CHK_IsEgg.Size = new System.Drawing.Size(65, 20); + this.CHK_IsEgg.TabIndex = 509; + this.CHK_IsEgg.Text = "Is Egg"; + this.CHK_IsEgg.UseVisualStyleBackColor = true; + // + // CHK_GIV3 + // + this.CHK_GIV3.AutoSize = true; + this.CHK_GIV3.Location = new System.Drawing.Point(249, 219); + this.CHK_GIV3.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CHK_GIV3.Name = "CHK_GIV3"; + this.CHK_GIV3.Size = new System.Drawing.Size(46, 20); + this.CHK_GIV3.TabIndex = 508; + this.CHK_GIV3.Text = "3IV"; + this.CHK_GIV3.UseVisualStyleBackColor = true; + // + // CB_SpecialMove + // + this.CB_SpecialMove.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_SpecialMove.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_SpecialMove.FormattingEnabled = true; + this.CB_SpecialMove.Location = new System.Drawing.Point(249, 169); + this.CB_SpecialMove.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CB_SpecialMove.Name = "CB_SpecialMove"; + this.CB_SpecialMove.Size = new System.Drawing.Size(180, 24); + this.CB_SpecialMove.TabIndex = 507; + // + // L_SpecialMove + // + this.L_SpecialMove.Location = new System.Drawing.Point(161, 166); + this.L_SpecialMove.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.L_SpecialMove.Name = "L_SpecialMove"; + this.L_SpecialMove.Size = new System.Drawing.Size(87, 28); + this.L_SpecialMove.TabIndex = 506; + this.L_SpecialMove.Text = "Gift Move:"; + this.L_SpecialMove.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CHK_G_Lock + // + this.CHK_G_Lock.AutoSize = true; + this.CHK_G_Lock.Location = new System.Drawing.Point(249, 201); + this.CHK_G_Lock.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CHK_G_Lock.Name = "CHK_G_Lock"; + this.CHK_G_Lock.Size = new System.Drawing.Size(92, 20); + this.CHK_G_Lock.TabIndex = 19; + this.CHK_G_Lock.Text = "Shiny Lock"; + this.CHK_G_Lock.UseVisualStyleBackColor = true; + // + // CB_GHeldItem + // + this.CB_GHeldItem.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_GHeldItem.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_GHeldItem.FormattingEnabled = true; + this.CB_GHeldItem.Location = new System.Drawing.Point(249, 114); + this.CB_GHeldItem.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CB_GHeldItem.Name = "CB_GHeldItem"; + this.CB_GHeldItem.Size = new System.Drawing.Size(180, 24); + this.CB_GHeldItem.TabIndex = 8; + // + // L_GHeldItem + // + this.L_GHeldItem.Location = new System.Drawing.Point(175, 112); + this.L_GHeldItem.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.L_GHeldItem.Name = "L_GHeldItem"; + this.L_GHeldItem.Size = new System.Drawing.Size(73, 28); + this.L_GHeldItem.TabIndex = 7; + this.L_GHeldItem.Text = "Held Item:"; + this.L_GHeldItem.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_GSpecies + // + this.CB_GSpecies.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_GSpecies.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_GSpecies.FormattingEnabled = true; + this.CB_GSpecies.Location = new System.Drawing.Point(249, 9); + this.CB_GSpecies.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CB_GSpecies.Name = "CB_GSpecies"; + this.CB_GSpecies.Size = new System.Drawing.Size(180, 24); + this.CB_GSpecies.TabIndex = 6; + this.CB_GSpecies.SelectedIndexChanged += new System.EventHandler(this.ChangeSpecies); + // + // L_GForm + // + this.L_GForm.Location = new System.Drawing.Point(175, 58); + this.L_GForm.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.L_GForm.Name = "L_GForm"; + this.L_GForm.Size = new System.Drawing.Size(73, 28); + this.L_GForm.TabIndex = 5; + this.L_GForm.Text = "Form:"; + this.L_GForm.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_GForm + // + this.NUD_GForm.Location = new System.Drawing.Point(249, 62); + this.NUD_GForm.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.NUD_GForm.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.NUD_GForm.Name = "NUD_GForm"; + this.NUD_GForm.Size = new System.Drawing.Size(64, 22); + this.NUD_GForm.TabIndex = 4; + this.NUD_GForm.Value = new decimal(new int[] { + 100, + 0, + 0, + 0}); + // + // L_GLevel + // + this.L_GLevel.Location = new System.Drawing.Point(175, 32); + this.L_GLevel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.L_GLevel.Name = "L_GLevel"; + this.L_GLevel.Size = new System.Drawing.Size(73, 28); + this.L_GLevel.TabIndex = 3; + this.L_GLevel.Text = "Level:"; + this.L_GLevel.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_GSpecies + // + this.L_GSpecies.Location = new System.Drawing.Point(175, 6); + this.L_GSpecies.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.L_GSpecies.Name = "L_GSpecies"; + this.L_GSpecies.Size = new System.Drawing.Size(73, 28); + this.L_GSpecies.TabIndex = 2; + this.L_GSpecies.Text = "Species:"; + this.L_GSpecies.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_GLevel + // + this.NUD_GLevel.Location = new System.Drawing.Point(249, 36); + this.NUD_GLevel.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.NUD_GLevel.Name = "NUD_GLevel"; + this.NUD_GLevel.Size = new System.Drawing.Size(64, 22); + this.NUD_GLevel.TabIndex = 1; + this.NUD_GLevel.Value = new decimal(new int[] { + 100, + 0, + 0, + 0}); + // + // LB_Gift + // + this.LB_Gift.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.LB_Gift.FormattingEnabled = true; + this.LB_Gift.ItemHeight = 16; + this.LB_Gift.Location = new System.Drawing.Point(4, 4); + this.LB_Gift.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.LB_Gift.Name = "LB_Gift"; + this.LB_Gift.Size = new System.Drawing.Size(152, 612); + this.LB_Gift.TabIndex = 0; + this.LB_Gift.SelectedIndexChanged += new System.EventHandler(this.LB_Gift_SelectedIndexChanged); + // + // Tab_Encounters + // + this.Tab_Encounters.Controls.Add(this.B_ClearSE); + this.Tab_Encounters.Controls.Add(this.B_CurrentAttackSE); + this.Tab_Encounters.Controls.Add(this.B_HighAttackSE); + this.Tab_Encounters.Controls.Add(this.CB_EGender); + this.Tab_Encounters.Controls.Add(this.L_SOS1); + this.Tab_Encounters.Controls.Add(this.NUD_Ally1); + this.Tab_Encounters.Controls.Add(this.L_SOS2); + this.Tab_Encounters.Controls.Add(this.NUD_Ally2); + this.Tab_Encounters.Controls.Add(this.L_EGender); + this.Tab_Encounters.Controls.Add(this.CB_EAbility); + this.Tab_Encounters.Controls.Add(this.L_EAbility); + this.Tab_Encounters.Controls.Add(this.CHK_EIV3); + this.Tab_Encounters.Controls.Add(this.CB_ENature); + this.Tab_Encounters.Controls.Add(this.L_ENature); + this.Tab_Encounters.Controls.Add(this.GB_EEVs); + this.Tab_Encounters.Controls.Add(this.GB_EIVs); + this.Tab_Encounters.Controls.Add(this.L_Aura); + this.Tab_Encounters.Controls.Add(this.CB_Aura); + this.Tab_Encounters.Controls.Add(this.CHK_ShinyLock); + this.Tab_Encounters.Controls.Add(this.GB_EMoves); + this.Tab_Encounters.Controls.Add(this.CB_EHeldItem); + this.Tab_Encounters.Controls.Add(this.L_EHeldItem); + this.Tab_Encounters.Controls.Add(this.CB_ESpecies); + this.Tab_Encounters.Controls.Add(this.L_EForm); + this.Tab_Encounters.Controls.Add(this.NUD_EForm); + this.Tab_Encounters.Controls.Add(this.L_ELevel); + this.Tab_Encounters.Controls.Add(this.L_ESpecies); + this.Tab_Encounters.Controls.Add(this.NUD_ELevel); + this.Tab_Encounters.Controls.Add(this.LB_Encounter); + this.Tab_Encounters.Controls.Add(this.L_Ally2); + this.Tab_Encounters.Controls.Add(this.L_Ally1); + this.Tab_Encounters.Location = new System.Drawing.Point(4, 25); + this.Tab_Encounters.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.Tab_Encounters.Name = "Tab_Encounters"; + this.Tab_Encounters.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.Tab_Encounters.Size = new System.Drawing.Size(667, 633); + this.Tab_Encounters.TabIndex = 0; + this.Tab_Encounters.Text = "Encounters"; + this.Tab_Encounters.UseVisualStyleBackColor = true; + // + // B_ClearSE + // + this.B_ClearSE.Location = new System.Drawing.Point(357, 421); + this.B_ClearSE.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.B_ClearSE.Name = "B_ClearSE"; + this.B_ClearSE.Size = new System.Drawing.Size(124, 28); + this.B_ClearSE.TabIndex = 529; + this.B_ClearSE.Text = "Clear"; + this.B_ClearSE.UseVisualStyleBackColor = true; + this.B_ClearSE.Click += new System.EventHandler(this.B_ClearSE_Click); + // + // B_CurrentAttackSE + // + this.B_CurrentAttackSE.Location = new System.Drawing.Point(357, 317); + this.B_CurrentAttackSE.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.B_CurrentAttackSE.Name = "B_CurrentAttackSE"; + this.B_CurrentAttackSE.Size = new System.Drawing.Size(124, 49); + this.B_CurrentAttackSE.TabIndex = 528; + this.B_CurrentAttackSE.Text = "Current Level Levelup Moves"; + this.B_CurrentAttackSE.UseVisualStyleBackColor = true; + this.B_CurrentAttackSE.Click += new System.EventHandler(this.B_CurrentAttackSE_Click); + // + // B_HighAttackSE + // + this.B_HighAttackSE.Location = new System.Drawing.Point(357, 369); + this.B_HighAttackSE.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.B_HighAttackSE.Name = "B_HighAttackSE"; + this.B_HighAttackSE.Size = new System.Drawing.Size(124, 49); + this.B_HighAttackSE.TabIndex = 527; + this.B_HighAttackSE.Text = "High Attacking Levelup Moves"; + this.B_HighAttackSE.UseVisualStyleBackColor = true; + this.B_HighAttackSE.Click += new System.EventHandler(this.B_HighAttackSE_Click); + // + // CB_EGender + // + this.CB_EGender.FormattingEnabled = true; + this.CB_EGender.Location = new System.Drawing.Point(249, 87); + this.CB_EGender.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CB_EGender.Name = "CB_EGender"; + this.CB_EGender.Size = new System.Drawing.Size(180, 24); + this.CB_EGender.TabIndex = 526; + // + // L_SOS1 + // + this.L_SOS1.Location = new System.Drawing.Point(168, 219); + this.L_SOS1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.L_SOS1.Name = "L_SOS1"; + this.L_SOS1.Size = new System.Drawing.Size(80, 28); + this.L_SOS1.TabIndex = 523; + this.L_SOS1.Text = "SOS Ally 1:"; + this.L_SOS1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_Ally1 + // + this.NUD_Ally1.Location = new System.Drawing.Point(249, 223); + this.NUD_Ally1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.NUD_Ally1.Maximum = new decimal(new int[] { + 251, + 0, + 0, + 0}); + this.NUD_Ally1.Minimum = new decimal(new int[] { + 1, + 0, + 0, + -2147483648}); + this.NUD_Ally1.Name = "NUD_Ally1"; + this.NUD_Ally1.Size = new System.Drawing.Size(64, 22); + this.NUD_Ally1.TabIndex = 522; + // + // L_SOS2 + // + this.L_SOS2.Location = new System.Drawing.Point(168, 245); + this.L_SOS2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.L_SOS2.Name = "L_SOS2"; + this.L_SOS2.Size = new System.Drawing.Size(80, 28); + this.L_SOS2.TabIndex = 521; + this.L_SOS2.Text = "SOS Ally 2:"; + this.L_SOS2.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_Ally2 + // + this.NUD_Ally2.Location = new System.Drawing.Point(249, 249); + this.NUD_Ally2.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.NUD_Ally2.Maximum = new decimal(new int[] { + 251, + 0, + 0, + 0}); + this.NUD_Ally2.Minimum = new decimal(new int[] { + 1, + 0, + 0, + -2147483648}); + this.NUD_Ally2.Name = "NUD_Ally2"; + this.NUD_Ally2.Size = new System.Drawing.Size(64, 22); + this.NUD_Ally2.TabIndex = 520; + // + // L_EGender + // + this.L_EGender.Location = new System.Drawing.Point(175, 85); + this.L_EGender.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.L_EGender.Name = "L_EGender"; + this.L_EGender.Size = new System.Drawing.Size(73, 28); + this.L_EGender.TabIndex = 519; + this.L_EGender.Text = "Gender:"; + this.L_EGender.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_EAbility + // + this.CB_EAbility.FormattingEnabled = true; + this.CB_EAbility.Location = new System.Drawing.Point(249, 114); + this.CB_EAbility.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CB_EAbility.Name = "CB_EAbility"; + this.CB_EAbility.Size = new System.Drawing.Size(180, 24); + this.CB_EAbility.TabIndex = 517; + // + // L_EAbility + // + this.L_EAbility.Location = new System.Drawing.Point(175, 112); + this.L_EAbility.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.L_EAbility.Name = "L_EAbility"; + this.L_EAbility.Size = new System.Drawing.Size(73, 28); + this.L_EAbility.TabIndex = 516; + this.L_EAbility.Text = "Ability:"; + this.L_EAbility.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CHK_EIV3 + // + this.CHK_EIV3.AutoSize = true; + this.CHK_EIV3.Location = new System.Drawing.Point(249, 295); + this.CHK_EIV3.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CHK_EIV3.Name = "CHK_EIV3"; + this.CHK_EIV3.Size = new System.Drawing.Size(46, 20); + this.CHK_EIV3.TabIndex = 504; + this.CHK_EIV3.Text = "3IV"; + this.CHK_EIV3.UseVisualStyleBackColor = true; + // + // CB_ENature + // + this.CB_ENature.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_ENature.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_ENature.FormattingEnabled = true; + this.CB_ENature.Location = new System.Drawing.Point(249, 169); + this.CB_ENature.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CB_ENature.Name = "CB_ENature"; + this.CB_ENature.Size = new System.Drawing.Size(180, 24); + this.CB_ENature.TabIndex = 503; + // + // L_ENature + // + this.L_ENature.Location = new System.Drawing.Point(175, 166); + this.L_ENature.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.L_ENature.Name = "L_ENature"; + this.L_ENature.Size = new System.Drawing.Size(73, 28); + this.L_ENature.TabIndex = 502; + this.L_ENature.Text = "Nature:"; + this.L_ENature.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // GB_EEVs + // + this.GB_EEVs.Controls.Add(this.NUD_EV5); + this.GB_EEVs.Controls.Add(this.NUD_EV4); + this.GB_EEVs.Controls.Add(this.NUD_EV3); + this.GB_EEVs.Controls.Add(this.NUD_EV2); + this.GB_EEVs.Controls.Add(this.NUD_EV1); + this.GB_EEVs.Controls.Add(this.label2); + this.GB_EEVs.Controls.Add(this.label7); + this.GB_EEVs.Controls.Add(this.label6); + this.GB_EEVs.Controls.Add(this.NUD_EV0); + this.GB_EEVs.Controls.Add(this.label3); + this.GB_EEVs.Controls.Add(this.label4); + this.GB_EEVs.Controls.Add(this.label5); + this.GB_EEVs.Location = new System.Drawing.Point(373, 457); + this.GB_EEVs.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.GB_EEVs.Name = "GB_EEVs"; + this.GB_EEVs.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.GB_EEVs.Size = new System.Drawing.Size(213, 138); + this.GB_EEVs.TabIndex = 501; + this.GB_EEVs.TabStop = false; + this.GB_EEVs.Text = "EVs"; + // + // NUD_EV5 + // + this.NUD_EV5.Location = new System.Drawing.Point(148, 101); + this.NUD_EV5.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.NUD_EV5.Maximum = new decimal(new int[] { + 252, + 0, + 0, + 0}); + this.NUD_EV5.Name = "NUD_EV5"; + this.NUD_EV5.Size = new System.Drawing.Size(53, 22); + this.NUD_EV5.TabIndex = 515; + this.NUD_EV5.Value = new decimal(new int[] { + 252, + 0, + 0, + 0}); + // + // NUD_EV4 + // + this.NUD_EV4.Location = new System.Drawing.Point(148, 63); + this.NUD_EV4.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.NUD_EV4.Maximum = new decimal(new int[] { + 252, + 0, + 0, + 0}); + this.NUD_EV4.Name = "NUD_EV4"; + this.NUD_EV4.Size = new System.Drawing.Size(53, 22); + this.NUD_EV4.TabIndex = 516; + this.NUD_EV4.Value = new decimal(new int[] { + 252, + 0, + 0, + 0}); + // + // NUD_EV3 + // + this.NUD_EV3.Location = new System.Drawing.Point(148, 25); + this.NUD_EV3.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.NUD_EV3.Maximum = new decimal(new int[] { + 252, + 0, + 0, + 0}); + this.NUD_EV3.Name = "NUD_EV3"; + this.NUD_EV3.Size = new System.Drawing.Size(53, 22); + this.NUD_EV3.TabIndex = 514; + this.NUD_EV3.Value = new decimal(new int[] { + 252, + 0, + 0, + 0}); + // + // NUD_EV2 + // + this.NUD_EV2.Location = new System.Drawing.Point(44, 101); + this.NUD_EV2.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.NUD_EV2.Maximum = new decimal(new int[] { + 252, + 0, + 0, + 0}); + this.NUD_EV2.Name = "NUD_EV2"; + this.NUD_EV2.Size = new System.Drawing.Size(53, 22); + this.NUD_EV2.TabIndex = 502; + this.NUD_EV2.Value = new decimal(new int[] { + 252, + 0, + 0, + 0}); + // + // NUD_EV1 + // + this.NUD_EV1.Location = new System.Drawing.Point(44, 63); + this.NUD_EV1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.NUD_EV1.Maximum = new decimal(new int[] { + 252, + 0, + 0, + 0}); + this.NUD_EV1.Name = "NUD_EV1"; + this.NUD_EV1.Size = new System.Drawing.Size(53, 22); + this.NUD_EV1.TabIndex = 513; + this.NUD_EV1.Value = new decimal(new int[] { + 252, + 0, + 0, + 0}); + // + // label2 + // + this.label2.Location = new System.Drawing.Point(5, 22); + this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(39, 26); + this.label2.TabIndex = 507; + this.label2.Text = "HP:"; + this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // label7 + // + this.label7.Location = new System.Drawing.Point(5, 98); + this.label7.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.label7.Name = "label7"; + this.label7.Size = new System.Drawing.Size(39, 26); + this.label7.TabIndex = 509; + this.label7.Text = "Def:"; + this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // label6 + // + this.label6.Location = new System.Drawing.Point(9, 60); + this.label6.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(35, 26); + this.label6.TabIndex = 508; + this.label6.Text = "Atk:"; + this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_EV0 + // + this.NUD_EV0.Location = new System.Drawing.Point(44, 25); + this.NUD_EV0.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.NUD_EV0.Maximum = new decimal(new int[] { + 252, + 0, + 0, + 0}); + this.NUD_EV0.Name = "NUD_EV0"; + this.NUD_EV0.Size = new System.Drawing.Size(53, 22); + this.NUD_EV0.TabIndex = 501; + this.NUD_EV0.Value = new decimal(new int[] { + 252, + 0, + 0, + 0}); + // + // label3 + // + this.label3.Location = new System.Drawing.Point(105, 60); + this.label3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(41, 26); + this.label3.TabIndex = 512; + this.label3.Text = "SpD:"; + this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // label4 + // + this.label4.Location = new System.Drawing.Point(105, 98); + this.label4.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(41, 26); + this.label4.TabIndex = 511; + this.label4.Text = "Spe:"; + this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // label5 + // + this.label5.Location = new System.Drawing.Point(105, 22); + this.label5.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(41, 26); + this.label5.TabIndex = 510; + this.label5.Text = "SpA:"; + this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // GB_EIVs + // + this.GB_EIVs.Controls.Add(this.L_HP); + this.GB_EIVs.Controls.Add(this.NUD_EIV3); + this.GB_EIVs.Controls.Add(this.NUD_EIV4); + this.GB_EIVs.Controls.Add(this.NUD_EIV5); + this.GB_EIVs.Controls.Add(this.L_SPD); + this.GB_EIVs.Controls.Add(this.L_SPE); + this.GB_EIVs.Controls.Add(this.L_SPA); + this.GB_EIVs.Controls.Add(this.NUD_EIV2); + this.GB_EIVs.Controls.Add(this.NUD_EIV1); + this.GB_EIVs.Controls.Add(this.NUD_EIV0); + this.GB_EIVs.Controls.Add(this.L_ATK); + this.GB_EIVs.Controls.Add(this.L_DEF); + this.GB_EIVs.Location = new System.Drawing.Point(172, 457); + this.GB_EIVs.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.GB_EIVs.Name = "GB_EIVs"; + this.GB_EIVs.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.GB_EIVs.Size = new System.Drawing.Size(197, 138); + this.GB_EIVs.TabIndex = 21; + this.GB_EIVs.TabStop = false; + this.GB_EIVs.Text = "IVs"; + // + // L_HP + // + this.L_HP.Location = new System.Drawing.Point(5, 20); + this.L_HP.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.L_HP.Name = "L_HP"; + this.L_HP.Size = new System.Drawing.Size(39, 26); + this.L_HP.TabIndex = 495; + this.L_HP.Text = "HP:"; + this.L_HP.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_EIV3 + // + this.NUD_EIV3.Location = new System.Drawing.Point(139, 22); + this.NUD_EIV3.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.NUD_EIV3.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUD_EIV3.Minimum = new decimal(new int[] { + 4, + 0, + 0, + -2147483648}); + this.NUD_EIV3.Name = "NUD_EIV3"; + this.NUD_EIV3.Size = new System.Drawing.Size(45, 22); + this.NUD_EIV3.TabIndex = 492; + this.NUD_EIV3.Value = new decimal(new int[] { + 31, + 0, + 0, + 0}); + // + // NUD_EIV4 + // + this.NUD_EIV4.Location = new System.Drawing.Point(139, 60); + this.NUD_EIV4.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.NUD_EIV4.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUD_EIV4.Minimum = new decimal(new int[] { + 4, + 0, + 0, + -2147483648}); + this.NUD_EIV4.Name = "NUD_EIV4"; + this.NUD_EIV4.Size = new System.Drawing.Size(45, 22); + this.NUD_EIV4.TabIndex = 493; + this.NUD_EIV4.Value = new decimal(new int[] { + 31, + 0, + 0, + 0}); + // + // NUD_EIV5 + // + this.NUD_EIV5.Location = new System.Drawing.Point(139, 98); + this.NUD_EIV5.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.NUD_EIV5.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUD_EIV5.Minimum = new decimal(new int[] { + 4, + 0, + 0, + -2147483648}); + this.NUD_EIV5.Name = "NUD_EIV5"; + this.NUD_EIV5.Size = new System.Drawing.Size(45, 22); + this.NUD_EIV5.TabIndex = 494; + this.NUD_EIV5.Value = new decimal(new int[] { + 31, + 0, + 0, + 0}); + // + // L_SPD + // + this.L_SPD.Location = new System.Drawing.Point(97, 58); + this.L_SPD.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.L_SPD.Name = "L_SPD"; + this.L_SPD.Size = new System.Drawing.Size(41, 26); + this.L_SPD.TabIndex = 500; + this.L_SPD.Text = "SpD:"; + this.L_SPD.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_SPE + // + this.L_SPE.Location = new System.Drawing.Point(97, 96); + this.L_SPE.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.L_SPE.Name = "L_SPE"; + this.L_SPE.Size = new System.Drawing.Size(41, 26); + this.L_SPE.TabIndex = 499; + this.L_SPE.Text = "Spe:"; + this.L_SPE.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_SPA + // + this.L_SPA.Location = new System.Drawing.Point(97, 20); + this.L_SPA.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.L_SPA.Name = "L_SPA"; + this.L_SPA.Size = new System.Drawing.Size(41, 26); + this.L_SPA.TabIndex = 498; + this.L_SPA.Text = "SpA:"; + this.L_SPA.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_EIV2 + // + this.NUD_EIV2.Location = new System.Drawing.Point(44, 98); + this.NUD_EIV2.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.NUD_EIV2.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUD_EIV2.Minimum = new decimal(new int[] { + 4, + 0, + 0, + -2147483648}); + this.NUD_EIV2.Name = "NUD_EIV2"; + this.NUD_EIV2.Size = new System.Drawing.Size(45, 22); + this.NUD_EIV2.TabIndex = 491; + this.NUD_EIV2.Value = new decimal(new int[] { + 31, + 0, + 0, + 0}); + // + // NUD_EIV1 + // + this.NUD_EIV1.Location = new System.Drawing.Point(44, 60); + this.NUD_EIV1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.NUD_EIV1.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUD_EIV1.Minimum = new decimal(new int[] { + 4, + 0, + 0, + -2147483648}); + this.NUD_EIV1.Name = "NUD_EIV1"; + this.NUD_EIV1.Size = new System.Drawing.Size(45, 22); + this.NUD_EIV1.TabIndex = 490; + this.NUD_EIV1.Value = new decimal(new int[] { + 31, + 0, + 0, + 0}); + // + // NUD_EIV0 + // + this.NUD_EIV0.Location = new System.Drawing.Point(44, 22); + this.NUD_EIV0.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.NUD_EIV0.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUD_EIV0.Minimum = new decimal(new int[] { + 4, + 0, + 0, + -2147483648}); + this.NUD_EIV0.Name = "NUD_EIV0"; + this.NUD_EIV0.Size = new System.Drawing.Size(45, 22); + this.NUD_EIV0.TabIndex = 489; + this.NUD_EIV0.Value = new decimal(new int[] { + 31, + 0, + 0, + 0}); + // + // L_ATK + // + this.L_ATK.Location = new System.Drawing.Point(9, 58); + this.L_ATK.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.L_ATK.Name = "L_ATK"; + this.L_ATK.Size = new System.Drawing.Size(35, 26); + this.L_ATK.TabIndex = 496; + this.L_ATK.Text = "Atk:"; + this.L_ATK.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_DEF + // + this.L_DEF.Location = new System.Drawing.Point(5, 96); + this.L_DEF.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.L_DEF.Name = "L_DEF"; + this.L_DEF.Size = new System.Drawing.Size(39, 26); + this.L_DEF.TabIndex = 497; + this.L_DEF.Text = "Def:"; + this.L_DEF.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_Aura + // + this.L_Aura.Location = new System.Drawing.Point(175, 193); + this.L_Aura.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.L_Aura.Name = "L_Aura"; + this.L_Aura.Size = new System.Drawing.Size(73, 28); + this.L_Aura.TabIndex = 22; + this.L_Aura.Text = "Aura:"; + this.L_Aura.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_Aura + // + this.CB_Aura.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_Aura.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_Aura.FormattingEnabled = true; + this.CB_Aura.Location = new System.Drawing.Point(249, 196); + this.CB_Aura.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CB_Aura.Name = "CB_Aura"; + this.CB_Aura.Size = new System.Drawing.Size(180, 24); + this.CB_Aura.TabIndex = 21; + // + // CHK_ShinyLock + // + this.CHK_ShinyLock.AutoSize = true; + this.CHK_ShinyLock.Location = new System.Drawing.Point(249, 277); + this.CHK_ShinyLock.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CHK_ShinyLock.Name = "CHK_ShinyLock"; + this.CHK_ShinyLock.Size = new System.Drawing.Size(92, 20); + this.CHK_ShinyLock.TabIndex = 18; + this.CHK_ShinyLock.Text = "Shiny Lock"; + this.CHK_ShinyLock.UseVisualStyleBackColor = true; + // + // GB_EMoves + // + this.GB_EMoves.Controls.Add(this.CB_EMove3); + this.GB_EMoves.Controls.Add(this.CB_EMove2); + this.GB_EMoves.Controls.Add(this.CB_EMove1); + this.GB_EMoves.Controls.Add(this.CB_EMove0); + this.GB_EMoves.Location = new System.Drawing.Point(172, 311); + this.GB_EMoves.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.GB_EMoves.Name = "GB_EMoves"; + this.GB_EMoves.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.GB_EMoves.Size = new System.Drawing.Size(177, 138); + this.GB_EMoves.TabIndex = 17; + this.GB_EMoves.TabStop = false; + this.GB_EMoves.Text = "Moves"; + // + // CB_EMove3 + // + this.CB_EMove3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_EMove3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_EMove3.FormattingEnabled = true; + this.CB_EMove3.Location = new System.Drawing.Point(8, 105); + this.CB_EMove3.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CB_EMove3.Name = "CB_EMove3"; + this.CB_EMove3.Size = new System.Drawing.Size(160, 24); + this.CB_EMove3.TabIndex = 20; + // + // CB_EMove2 + // + this.CB_EMove2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_EMove2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_EMove2.FormattingEnabled = true; + this.CB_EMove2.Location = new System.Drawing.Point(8, 78); + this.CB_EMove2.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CB_EMove2.Name = "CB_EMove2"; + this.CB_EMove2.Size = new System.Drawing.Size(160, 24); + this.CB_EMove2.TabIndex = 19; + // + // CB_EMove1 + // + this.CB_EMove1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_EMove1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_EMove1.FormattingEnabled = true; + this.CB_EMove1.Location = new System.Drawing.Point(8, 50); + this.CB_EMove1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CB_EMove1.Name = "CB_EMove1"; + this.CB_EMove1.Size = new System.Drawing.Size(160, 24); + this.CB_EMove1.TabIndex = 18; + // + // CB_EMove0 + // + this.CB_EMove0.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_EMove0.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_EMove0.FormattingEnabled = true; + this.CB_EMove0.Location = new System.Drawing.Point(8, 23); + this.CB_EMove0.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CB_EMove0.Name = "CB_EMove0"; + this.CB_EMove0.Size = new System.Drawing.Size(160, 24); + this.CB_EMove0.TabIndex = 17; + // + // CB_EHeldItem + // + this.CB_EHeldItem.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_EHeldItem.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_EHeldItem.FormattingEnabled = true; + this.CB_EHeldItem.Location = new System.Drawing.Point(249, 142); + this.CB_EHeldItem.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CB_EHeldItem.Name = "CB_EHeldItem"; + this.CB_EHeldItem.Size = new System.Drawing.Size(180, 24); + this.CB_EHeldItem.TabIndex = 16; + // + // L_EHeldItem + // + this.L_EHeldItem.Location = new System.Drawing.Point(175, 139); + this.L_EHeldItem.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.L_EHeldItem.Name = "L_EHeldItem"; + this.L_EHeldItem.Size = new System.Drawing.Size(73, 28); + this.L_EHeldItem.TabIndex = 15; + this.L_EHeldItem.Text = "Held Item:"; + this.L_EHeldItem.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_ESpecies + // + this.CB_ESpecies.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_ESpecies.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_ESpecies.FormattingEnabled = true; + this.CB_ESpecies.Location = new System.Drawing.Point(249, 9); + this.CB_ESpecies.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CB_ESpecies.Name = "CB_ESpecies"; + this.CB_ESpecies.Size = new System.Drawing.Size(180, 24); + this.CB_ESpecies.TabIndex = 14; + this.CB_ESpecies.SelectedIndexChanged += new System.EventHandler(this.ChangeSpecies); + // + // L_EForm + // + this.L_EForm.Location = new System.Drawing.Point(175, 58); + this.L_EForm.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.L_EForm.Name = "L_EForm"; + this.L_EForm.Size = new System.Drawing.Size(73, 28); + this.L_EForm.TabIndex = 13; + this.L_EForm.Text = "Form:"; + this.L_EForm.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_EForm + // + this.NUD_EForm.Location = new System.Drawing.Point(249, 62); + this.NUD_EForm.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.NUD_EForm.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.NUD_EForm.Name = "NUD_EForm"; + this.NUD_EForm.Size = new System.Drawing.Size(64, 22); + this.NUD_EForm.TabIndex = 12; + this.NUD_EForm.Value = new decimal(new int[] { + 100, + 0, + 0, + 0}); + // + // L_ELevel + // + this.L_ELevel.Location = new System.Drawing.Point(175, 32); + this.L_ELevel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.L_ELevel.Name = "L_ELevel"; + this.L_ELevel.Size = new System.Drawing.Size(73, 28); + this.L_ELevel.TabIndex = 11; + this.L_ELevel.Text = "Level:"; + this.L_ELevel.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_ESpecies + // + this.L_ESpecies.Location = new System.Drawing.Point(175, 6); + this.L_ESpecies.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.L_ESpecies.Name = "L_ESpecies"; + this.L_ESpecies.Size = new System.Drawing.Size(73, 28); + this.L_ESpecies.TabIndex = 10; + this.L_ESpecies.Text = "Species:"; + this.L_ESpecies.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_ELevel + // + this.NUD_ELevel.Location = new System.Drawing.Point(249, 36); + this.NUD_ELevel.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.NUD_ELevel.Name = "NUD_ELevel"; + this.NUD_ELevel.Size = new System.Drawing.Size(64, 22); + this.NUD_ELevel.TabIndex = 9; + this.NUD_ELevel.Value = new decimal(new int[] { + 100, + 0, + 0, + 0}); + // + // LB_Encounter + // + this.LB_Encounter.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.LB_Encounter.FormattingEnabled = true; + this.LB_Encounter.ItemHeight = 16; + this.LB_Encounter.Location = new System.Drawing.Point(4, 4); + this.LB_Encounter.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.LB_Encounter.Name = "LB_Encounter"; + this.LB_Encounter.Size = new System.Drawing.Size(152, 612); + this.LB_Encounter.TabIndex = 1; + this.LB_Encounter.SelectedIndexChanged += new System.EventHandler(this.LB_Encounter_SelectedIndexChanged); + // + // L_Ally2 + // + this.L_Ally2.Location = new System.Drawing.Point(316, 245); + this.L_Ally2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.L_Ally2.Name = "L_Ally2"; + this.L_Ally2.Size = new System.Drawing.Size(180, 28); + this.L_Ally2.TabIndex = 525; + this.L_Ally2.Text = "WWWWWWWWWWWW"; + this.L_Ally2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // L_Ally1 + // + this.L_Ally1.Location = new System.Drawing.Point(316, 220); + this.L_Ally1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.L_Ally1.Name = "L_Ally1"; + this.L_Ally1.Size = new System.Drawing.Size(180, 28); + this.L_Ally1.TabIndex = 524; + this.L_Ally1.Text = "WWWWWWWWWWWW"; + this.L_Ally1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // Tab_Trades + // + this.Tab_Trades.Controls.Add(this.CB_TGender); + this.Tab_Trades.Controls.Add(this.L_TGender); + this.Tab_Trades.Controls.Add(this.CB_TAbility); + this.Tab_Trades.Controls.Add(this.L_TAbility); + this.Tab_Trades.Controls.Add(this.CB_TNature); + this.Tab_Trades.Controls.Add(this.L_TNature); + this.Tab_Trades.Controls.Add(this.groupBox1); + this.Tab_Trades.Controls.Add(this.CB_TRequest); + this.Tab_Trades.Controls.Add(this.label1); + this.Tab_Trades.Controls.Add(this.L_TTID); + this.Tab_Trades.Controls.Add(this.L_TID); + this.Tab_Trades.Controls.Add(this.NUD_TID); + this.Tab_Trades.Controls.Add(this.CB_THeldItem); + this.Tab_Trades.Controls.Add(this.L_THeldItem); + this.Tab_Trades.Controls.Add(this.CB_TSpecies); + this.Tab_Trades.Controls.Add(this.L_TForm); + this.Tab_Trades.Controls.Add(this.NUD_TForm); + this.Tab_Trades.Controls.Add(this.L_TLevel); + this.Tab_Trades.Controls.Add(this.L_TSpecies); + this.Tab_Trades.Controls.Add(this.NUD_TLevel); + this.Tab_Trades.Controls.Add(this.LB_Trade); + this.Tab_Trades.Location = new System.Drawing.Point(4, 25); + this.Tab_Trades.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.Tab_Trades.Name = "Tab_Trades"; + this.Tab_Trades.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.Tab_Trades.Size = new System.Drawing.Size(667, 633); + this.Tab_Trades.TabIndex = 1; + this.Tab_Trades.Text = "Trades"; + this.Tab_Trades.UseVisualStyleBackColor = true; + // + // CB_TGender + // + this.CB_TGender.FormattingEnabled = true; + this.CB_TGender.Location = new System.Drawing.Point(249, 87); + this.CB_TGender.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CB_TGender.Name = "CB_TGender"; + this.CB_TGender.Size = new System.Drawing.Size(180, 24); + this.CB_TGender.TabIndex = 527; + // + // L_TGender + // + this.L_TGender.Location = new System.Drawing.Point(175, 85); + this.L_TGender.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.L_TGender.Name = "L_TGender"; + this.L_TGender.Size = new System.Drawing.Size(73, 28); + this.L_TGender.TabIndex = 523; + this.L_TGender.Text = "Gender:"; + this.L_TGender.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_TAbility + // + this.CB_TAbility.FormattingEnabled = true; + this.CB_TAbility.Location = new System.Drawing.Point(249, 114); + this.CB_TAbility.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CB_TAbility.Name = "CB_TAbility"; + this.CB_TAbility.Size = new System.Drawing.Size(180, 24); + this.CB_TAbility.TabIndex = 521; + // + // L_TAbility + // + this.L_TAbility.Location = new System.Drawing.Point(175, 112); + this.L_TAbility.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.L_TAbility.Name = "L_TAbility"; + this.L_TAbility.Size = new System.Drawing.Size(73, 28); + this.L_TAbility.TabIndex = 520; + this.L_TAbility.Text = "Ability:"; + this.L_TAbility.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_TNature + // + this.CB_TNature.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_TNature.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_TNature.FormattingEnabled = true; + this.CB_TNature.Location = new System.Drawing.Point(249, 169); + this.CB_TNature.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CB_TNature.Name = "CB_TNature"; + this.CB_TNature.Size = new System.Drawing.Size(180, 24); + this.CB_TNature.TabIndex = 505; + // + // L_TNature + // + this.L_TNature.Location = new System.Drawing.Point(175, 166); + this.L_TNature.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.L_TNature.Name = "L_TNature"; + this.L_TNature.Size = new System.Drawing.Size(73, 28); + this.L_TNature.TabIndex = 504; + this.L_TNature.Text = "Nature:"; + this.L_TNature.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.label8); + this.groupBox1.Controls.Add(this.NUD_TIV3); + this.groupBox1.Controls.Add(this.NUD_TIV4); + this.groupBox1.Controls.Add(this.NUD_TIV5); + this.groupBox1.Controls.Add(this.label9); + this.groupBox1.Controls.Add(this.label10); + this.groupBox1.Controls.Add(this.label11); + this.groupBox1.Controls.Add(this.NUD_TIV2); + this.groupBox1.Controls.Add(this.NUD_TIV1); + this.groupBox1.Controls.Add(this.NUD_TIV0); + this.groupBox1.Controls.Add(this.label12); + this.groupBox1.Controls.Add(this.label13); + this.groupBox1.Location = new System.Drawing.Point(172, 273); + this.groupBox1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.groupBox1.Size = new System.Drawing.Size(197, 138); + this.groupBox1.TabIndex = 30; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "IVs"; + // + // label8 + // + this.label8.Location = new System.Drawing.Point(5, 20); + this.label8.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.label8.Name = "label8"; + this.label8.Size = new System.Drawing.Size(39, 26); + this.label8.TabIndex = 495; + this.label8.Text = "HP:"; + this.label8.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_TIV3 + // + this.NUD_TIV3.Location = new System.Drawing.Point(139, 22); + this.NUD_TIV3.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.NUD_TIV3.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUD_TIV3.Minimum = new decimal(new int[] { + 4, + 0, + 0, + -2147483648}); + this.NUD_TIV3.Name = "NUD_TIV3"; + this.NUD_TIV3.Size = new System.Drawing.Size(45, 22); + this.NUD_TIV3.TabIndex = 492; + this.NUD_TIV3.Value = new decimal(new int[] { + 31, + 0, + 0, + 0}); + // + // NUD_TIV4 + // + this.NUD_TIV4.Location = new System.Drawing.Point(139, 60); + this.NUD_TIV4.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.NUD_TIV4.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUD_TIV4.Minimum = new decimal(new int[] { + 4, + 0, + 0, + -2147483648}); + this.NUD_TIV4.Name = "NUD_TIV4"; + this.NUD_TIV4.Size = new System.Drawing.Size(45, 22); + this.NUD_TIV4.TabIndex = 493; + this.NUD_TIV4.Value = new decimal(new int[] { + 31, + 0, + 0, + 0}); + // + // NUD_TIV5 + // + this.NUD_TIV5.Location = new System.Drawing.Point(139, 98); + this.NUD_TIV5.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.NUD_TIV5.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUD_TIV5.Minimum = new decimal(new int[] { + 4, + 0, + 0, + -2147483648}); + this.NUD_TIV5.Name = "NUD_TIV5"; + this.NUD_TIV5.Size = new System.Drawing.Size(45, 22); + this.NUD_TIV5.TabIndex = 494; + this.NUD_TIV5.Value = new decimal(new int[] { + 31, + 0, + 0, + 0}); + // + // label9 + // + this.label9.Location = new System.Drawing.Point(97, 58); + this.label9.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.label9.Name = "label9"; + this.label9.Size = new System.Drawing.Size(41, 26); + this.label9.TabIndex = 500; + this.label9.Text = "SpD:"; + this.label9.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // label10 + // + this.label10.Location = new System.Drawing.Point(97, 96); + this.label10.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.label10.Name = "label10"; + this.label10.Size = new System.Drawing.Size(41, 26); + this.label10.TabIndex = 499; + this.label10.Text = "Spe:"; + this.label10.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // label11 + // + this.label11.Location = new System.Drawing.Point(97, 20); + this.label11.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.label11.Name = "label11"; + this.label11.Size = new System.Drawing.Size(41, 26); + this.label11.TabIndex = 498; + this.label11.Text = "SpA:"; + this.label11.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_TIV2 + // + this.NUD_TIV2.Location = new System.Drawing.Point(44, 98); + this.NUD_TIV2.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.NUD_TIV2.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUD_TIV2.Minimum = new decimal(new int[] { + 4, + 0, + 0, + -2147483648}); + this.NUD_TIV2.Name = "NUD_TIV2"; + this.NUD_TIV2.Size = new System.Drawing.Size(45, 22); + this.NUD_TIV2.TabIndex = 491; + this.NUD_TIV2.Value = new decimal(new int[] { + 31, + 0, + 0, + 0}); + // + // NUD_TIV1 + // + this.NUD_TIV1.Location = new System.Drawing.Point(44, 60); + this.NUD_TIV1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.NUD_TIV1.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUD_TIV1.Minimum = new decimal(new int[] { + 4, + 0, + 0, + -2147483648}); + this.NUD_TIV1.Name = "NUD_TIV1"; + this.NUD_TIV1.Size = new System.Drawing.Size(45, 22); + this.NUD_TIV1.TabIndex = 490; + this.NUD_TIV1.Value = new decimal(new int[] { + 31, + 0, + 0, + 0}); + // + // NUD_TIV0 + // + this.NUD_TIV0.Location = new System.Drawing.Point(44, 22); + this.NUD_TIV0.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.NUD_TIV0.Maximum = new decimal(new int[] { + 31, + 0, + 0, + 0}); + this.NUD_TIV0.Minimum = new decimal(new int[] { + 4, + 0, + 0, + -2147483648}); + this.NUD_TIV0.Name = "NUD_TIV0"; + this.NUD_TIV0.Size = new System.Drawing.Size(45, 22); + this.NUD_TIV0.TabIndex = 489; + this.NUD_TIV0.Value = new decimal(new int[] { + 31, + 0, + 0, + 0}); + // + // label12 + // + this.label12.Location = new System.Drawing.Point(9, 58); + this.label12.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.label12.Name = "label12"; + this.label12.Size = new System.Drawing.Size(35, 26); + this.label12.TabIndex = 496; + this.label12.Text = "Atk:"; + this.label12.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // label13 + // + this.label13.Location = new System.Drawing.Point(5, 96); + this.label13.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.label13.Name = "label13"; + this.label13.Size = new System.Drawing.Size(39, 26); + this.label13.TabIndex = 497; + this.label13.Text = "Def:"; + this.label13.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_TRequest + // + this.CB_TRequest.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_TRequest.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_TRequest.FormattingEnabled = true; + this.CB_TRequest.Location = new System.Drawing.Point(307, 231); + this.CB_TRequest.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CB_TRequest.Name = "CB_TRequest"; + this.CB_TRequest.Size = new System.Drawing.Size(160, 24); + this.CB_TRequest.TabIndex = 29; + // + // label1 + // + this.label1.Location = new System.Drawing.Point(161, 229); + this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(141, 28); + this.label1.TabIndex = 28; + this.label1.Text = "Requested Species:"; + this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_TTID + // + this.L_TTID.AutoSize = true; + this.L_TTID.Location = new System.Drawing.Point(336, 199); + this.L_TTID.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.L_TTID.Name = "L_TTID"; + this.L_TTID.Size = new System.Drawing.Size(62, 16); + this.L_TTID.TabIndex = 27; + this.L_TTID.Text = "Gen 7 ID:"; + this.L_TTID.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; + // + // L_TID + // + this.L_TID.Location = new System.Drawing.Point(181, 193); + this.L_TID.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.L_TID.Name = "L_TID"; + this.L_TID.Size = new System.Drawing.Size(67, 28); + this.L_TID.TabIndex = 26; + this.L_TID.Text = "ID:"; + this.L_TID.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_TID + // + this.NUD_TID.Location = new System.Drawing.Point(249, 196); + this.NUD_TID.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.NUD_TID.Maximum = new decimal(new int[] { + 999999, + 0, + 0, + 0}); + this.NUD_TID.Name = "NUD_TID"; + this.NUD_TID.Size = new System.Drawing.Size(80, 22); + this.NUD_TID.TabIndex = 25; + this.NUD_TID.Value = new decimal(new int[] { + 999999, + 0, + 0, + 0}); + this.NUD_TID.ValueChanged += new System.EventHandler(this.ChangeTID); + // + // CB_THeldItem + // + this.CB_THeldItem.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_THeldItem.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_THeldItem.FormattingEnabled = true; + this.CB_THeldItem.Location = new System.Drawing.Point(249, 142); + this.CB_THeldItem.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CB_THeldItem.Name = "CB_THeldItem"; + this.CB_THeldItem.Size = new System.Drawing.Size(180, 24); + this.CB_THeldItem.TabIndex = 24; + // + // L_THeldItem + // + this.L_THeldItem.Location = new System.Drawing.Point(175, 139); + this.L_THeldItem.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.L_THeldItem.Name = "L_THeldItem"; + this.L_THeldItem.Size = new System.Drawing.Size(73, 28); + this.L_THeldItem.TabIndex = 23; + this.L_THeldItem.Text = "Held Item:"; + this.L_THeldItem.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // CB_TSpecies + // + this.CB_TSpecies.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; + this.CB_TSpecies.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; + this.CB_TSpecies.FormattingEnabled = true; + this.CB_TSpecies.Location = new System.Drawing.Point(249, 9); + this.CB_TSpecies.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CB_TSpecies.Name = "CB_TSpecies"; + this.CB_TSpecies.Size = new System.Drawing.Size(180, 24); + this.CB_TSpecies.TabIndex = 22; + this.CB_TSpecies.SelectedIndexChanged += new System.EventHandler(this.ChangeSpecies); + // + // L_TForm + // + this.L_TForm.Location = new System.Drawing.Point(175, 58); + this.L_TForm.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.L_TForm.Name = "L_TForm"; + this.L_TForm.Size = new System.Drawing.Size(73, 28); + this.L_TForm.TabIndex = 21; + this.L_TForm.Text = "Form:"; + this.L_TForm.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_TForm + // + this.NUD_TForm.Location = new System.Drawing.Point(249, 62); + this.NUD_TForm.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.NUD_TForm.Maximum = new decimal(new int[] { + 255, + 0, + 0, + 0}); + this.NUD_TForm.Name = "NUD_TForm"; + this.NUD_TForm.Size = new System.Drawing.Size(64, 22); + this.NUD_TForm.TabIndex = 20; + this.NUD_TForm.Value = new decimal(new int[] { + 100, + 0, + 0, + 0}); + // + // L_TLevel + // + this.L_TLevel.Location = new System.Drawing.Point(175, 32); + this.L_TLevel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.L_TLevel.Name = "L_TLevel"; + this.L_TLevel.Size = new System.Drawing.Size(73, 28); + this.L_TLevel.TabIndex = 19; + this.L_TLevel.Text = "Level:"; + this.L_TLevel.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_TSpecies + // + this.L_TSpecies.Location = new System.Drawing.Point(175, 6); + this.L_TSpecies.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.L_TSpecies.Name = "L_TSpecies"; + this.L_TSpecies.Size = new System.Drawing.Size(73, 28); + this.L_TSpecies.TabIndex = 18; + this.L_TSpecies.Text = "Species:"; + this.L_TSpecies.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // NUD_TLevel + // + this.NUD_TLevel.Location = new System.Drawing.Point(249, 36); + this.NUD_TLevel.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.NUD_TLevel.Name = "NUD_TLevel"; + this.NUD_TLevel.Size = new System.Drawing.Size(64, 22); + this.NUD_TLevel.TabIndex = 17; + this.NUD_TLevel.Value = new decimal(new int[] { + 100, + 0, + 0, + 0}); + // + // LB_Trade + // + this.LB_Trade.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.LB_Trade.FormattingEnabled = true; + this.LB_Trade.ItemHeight = 16; + this.LB_Trade.Location = new System.Drawing.Point(4, 4); + this.LB_Trade.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.LB_Trade.Name = "LB_Trade"; + this.LB_Trade.Size = new System.Drawing.Size(152, 612); + this.LB_Trade.TabIndex = 2; + this.LB_Trade.SelectedIndexChanged += new System.EventHandler(this.LB_Trade_SelectedIndexChanged); + // + // Tab_Randomizer + // + this.Tab_Randomizer.Controls.Add(this.GB_Tweak); + this.Tab_Randomizer.Controls.Add(this.B_ModifyLevel); + this.Tab_Randomizer.Controls.Add(this.NUD_LevelBoost); + this.Tab_Randomizer.Controls.Add(this.CHK_Level); + this.Tab_Randomizer.Controls.Add(this.B_RandAll); + this.Tab_Randomizer.Controls.Add(this.GB_Rand); + this.Tab_Randomizer.Controls.Add(this.B_Starters); + this.Tab_Randomizer.Location = new System.Drawing.Point(4, 25); + this.Tab_Randomizer.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.Tab_Randomizer.Name = "Tab_Randomizer"; + this.Tab_Randomizer.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.Tab_Randomizer.Size = new System.Drawing.Size(667, 633); + this.Tab_Randomizer.TabIndex = 3; + this.Tab_Randomizer.Text = "Randomizer Options"; + this.Tab_Randomizer.UseVisualStyleBackColor = true; + // + // GB_Tweak + // + this.GB_Tweak.Controls.Add(this.CHK_Metronome); + this.GB_Tweak.Controls.Add(this.CHK_RemoveShinyLock); + this.GB_Tweak.Controls.Add(this.NUD_ForceFullyEvolved); + this.GB_Tweak.Controls.Add(this.CHK_ForceTotem); + this.GB_Tweak.Controls.Add(this.CHK_ForceFullyEvolved); + this.GB_Tweak.Controls.Add(this.CHK_BasicStarter); + this.GB_Tweak.Controls.Add(this.CHK_ReplaceLegend); + this.GB_Tweak.Location = new System.Drawing.Point(159, 302); + this.GB_Tweak.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.GB_Tweak.Name = "GB_Tweak"; + this.GB_Tweak.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.GB_Tweak.Size = new System.Drawing.Size(344, 142); + this.GB_Tweak.TabIndex = 509; + this.GB_Tweak.TabStop = false; + this.GB_Tweak.Text = "Extra Tweaks"; + // + // CHK_Metronome + // + this.CHK_Metronome.AutoSize = true; + this.CHK_Metronome.Location = new System.Drawing.Point(8, 117); + this.CHK_Metronome.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CHK_Metronome.Name = "CHK_Metronome"; + this.CHK_Metronome.Size = new System.Drawing.Size(133, 20); + this.CHK_Metronome.TabIndex = 515; + this.CHK_Metronome.Text = "Metronome Mode"; + this.CHK_Metronome.UseVisualStyleBackColor = true; + // + // CHK_RemoveShinyLock + // + this.CHK_RemoveShinyLock.AutoSize = true; + this.CHK_RemoveShinyLock.Checked = true; + this.CHK_RemoveShinyLock.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_RemoveShinyLock.Location = new System.Drawing.Point(8, 97); + this.CHK_RemoveShinyLock.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CHK_RemoveShinyLock.Name = "CHK_RemoveShinyLock"; + this.CHK_RemoveShinyLock.Size = new System.Drawing.Size(154, 20); + this.CHK_RemoveShinyLock.TabIndex = 299; + this.CHK_RemoveShinyLock.Text = "Remove Shiny Locks"; + this.CHK_RemoveShinyLock.UseVisualStyleBackColor = true; + // + // NUD_ForceFullyEvolved + // + this.NUD_ForceFullyEvolved.Location = new System.Drawing.Point(220, 76); + this.NUD_ForceFullyEvolved.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.NUD_ForceFullyEvolved.Minimum = new decimal(new int[] { + 1, + 0, + 0, + 0}); + this.NUD_ForceFullyEvolved.Name = "NUD_ForceFullyEvolved"; + this.NUD_ForceFullyEvolved.Size = new System.Drawing.Size(53, 22); + this.NUD_ForceFullyEvolved.TabIndex = 514; + this.NUD_ForceFullyEvolved.Value = new decimal(new int[] { + 50, + 0, + 0, + 0}); + // + // CHK_ForceTotem + // + this.CHK_ForceTotem.AutoSize = true; + this.CHK_ForceTotem.Location = new System.Drawing.Point(8, 58); + this.CHK_ForceTotem.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CHK_ForceTotem.Name = "CHK_ForceTotem"; + this.CHK_ForceTotem.Size = new System.Drawing.Size(249, 20); + this.CHK_ForceTotem.TabIndex = 305; + this.CHK_ForceTotem.Text = "Force Fully Evolved Totem Pokémon"; + this.CHK_ForceTotem.UseVisualStyleBackColor = true; + // + // CHK_ForceFullyEvolved + // + this.CHK_ForceFullyEvolved.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.CHK_ForceFullyEvolved.AutoSize = true; + this.CHK_ForceFullyEvolved.Location = new System.Drawing.Point(8, 80); + this.CHK_ForceFullyEvolved.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CHK_ForceFullyEvolved.Name = "CHK_ForceFullyEvolved"; + this.CHK_ForceFullyEvolved.Size = new System.Drawing.Size(196, 20); + this.CHK_ForceFullyEvolved.TabIndex = 513; + this.CHK_ForceFullyEvolved.Text = "Force Fully Evolved at Level"; + this.CHK_ForceFullyEvolved.UseVisualStyleBackColor = true; + // + // CHK_BasicStarter + // + this.CHK_BasicStarter.AutoSize = true; + this.CHK_BasicStarter.Checked = true; + this.CHK_BasicStarter.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_BasicStarter.Location = new System.Drawing.Point(8, 38); + this.CHK_BasicStarter.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CHK_BasicStarter.Name = "CHK_BasicStarter"; + this.CHK_BasicStarter.Size = new System.Drawing.Size(264, 20); + this.CHK_BasicStarter.TabIndex = 304; + this.CHK_BasicStarter.Text = "Basic Starter Pokémon with 2 Evolutions"; + this.CHK_BasicStarter.UseVisualStyleBackColor = true; + // + // CHK_ReplaceLegend + // + this.CHK_ReplaceLegend.AutoSize = true; + this.CHK_ReplaceLegend.Checked = true; + this.CHK_ReplaceLegend.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_ReplaceLegend.Location = new System.Drawing.Point(8, 18); + this.CHK_ReplaceLegend.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CHK_ReplaceLegend.Name = "CHK_ReplaceLegend"; + this.CHK_ReplaceLegend.Size = new System.Drawing.Size(300, 20); + this.CHK_ReplaceLegend.TabIndex = 303; + this.CHK_ReplaceLegend.Text = "Replace Legendaries with Another Legendary"; + this.CHK_ReplaceLegend.UseVisualStyleBackColor = true; + // + // B_ModifyLevel + // + this.B_ModifyLevel.Location = new System.Drawing.Point(408, 60); + this.B_ModifyLevel.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.B_ModifyLevel.Name = "B_ModifyLevel"; + this.B_ModifyLevel.Size = new System.Drawing.Size(93, 28); + this.B_ModifyLevel.TabIndex = 512; + this.B_ModifyLevel.Text = "× Current"; + this.B_ModifyLevel.UseVisualStyleBackColor = true; + this.B_ModifyLevel.Click += new System.EventHandler(this.ModifyLevels); + // + // NUD_LevelBoost + // + this.NUD_LevelBoost.DecimalPlaces = 2; + this.NUD_LevelBoost.Increment = new decimal(new int[] { + 5, + 0, + 0, + 131072}); + this.NUD_LevelBoost.Location = new System.Drawing.Point(343, 62); + this.NUD_LevelBoost.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.NUD_LevelBoost.Maximum = new decimal(new int[] { + 3, + 0, + 0, + 0}); + this.NUD_LevelBoost.Name = "NUD_LevelBoost"; + this.NUD_LevelBoost.Size = new System.Drawing.Size(57, 22); + this.NUD_LevelBoost.TabIndex = 511; + this.NUD_LevelBoost.Value = new decimal(new int[] { + 1, + 0, + 0, + 0}); + // + // CHK_Level + // + this.CHK_Level.AutoSize = true; + this.CHK_Level.Checked = true; + this.CHK_Level.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_Level.Location = new System.Drawing.Point(167, 63); + this.CHK_Level.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CHK_Level.Name = "CHK_Level"; + this.CHK_Level.Size = new System.Drawing.Size(157, 20); + this.CHK_Level.TabIndex = 510; + this.CHK_Level.Text = "Multiply PKM Level by"; + this.CHK_Level.UseVisualStyleBackColor = true; + // + // B_RandAll + // + this.B_RandAll.Location = new System.Drawing.Point(256, 454); + this.B_RandAll.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.B_RandAll.Name = "B_RandAll"; + this.B_RandAll.Size = new System.Drawing.Size(163, 28); + this.B_RandAll.TabIndex = 509; + this.B_RandAll.Text = "Randomize All"; + this.B_RandAll.UseVisualStyleBackColor = true; + this.B_RandAll.Click += new System.EventHandler(this.B_RandAll_Click); + // + // GB_Rand + // + this.GB_Rand.Controls.Add(this.CHK_SpecialMove); + this.GB_Rand.Controls.Add(this.CHK_RandomAbility); + this.GB_Rand.Controls.Add(this.CHK_RandomAura); + this.GB_Rand.Controls.Add(this.CHK_AllowMega); + this.GB_Rand.Controls.Add(this.CHK_Item); + this.GB_Rand.Controls.Add(this.CHK_G7); + this.GB_Rand.Controls.Add(this.CHK_BST); + this.GB_Rand.Controls.Add(this.CHK_E); + this.GB_Rand.Controls.Add(this.CHK_L); + this.GB_Rand.Controls.Add(this.CHK_G6); + this.GB_Rand.Controls.Add(this.CHK_G5); + this.GB_Rand.Controls.Add(this.CHK_G4); + this.GB_Rand.Controls.Add(this.CHK_G3); + this.GB_Rand.Controls.Add(this.CHK_G2); + this.GB_Rand.Controls.Add(this.CHK_G1); + this.GB_Rand.Location = new System.Drawing.Point(159, 90); + this.GB_Rand.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.GB_Rand.Name = "GB_Rand"; + this.GB_Rand.Padding = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.GB_Rand.Size = new System.Drawing.Size(344, 191); + this.GB_Rand.TabIndex = 508; + this.GB_Rand.TabStop = false; + this.GB_Rand.Text = "Randomizer Options"; + // + // CHK_SpecialMove + // + this.CHK_SpecialMove.AutoSize = true; + this.CHK_SpecialMove.Location = new System.Drawing.Point(12, 166); + this.CHK_SpecialMove.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CHK_SpecialMove.Name = "CHK_SpecialMove"; + this.CHK_SpecialMove.Size = new System.Drawing.Size(239, 20); + this.CHK_SpecialMove.TabIndex = 301; + this.CHK_SpecialMove.Text = "Random Gift Move for Gift Pokémon"; + this.CHK_SpecialMove.UseVisualStyleBackColor = true; + // + // CHK_RandomAbility + // + this.CHK_RandomAbility.AutoSize = true; + this.CHK_RandomAbility.Location = new System.Drawing.Point(12, 148); + this.CHK_RandomAbility.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CHK_RandomAbility.Name = "CHK_RandomAbility"; + this.CHK_RandomAbility.Size = new System.Drawing.Size(225, 20); + this.CHK_RandomAbility.TabIndex = 302; + this.CHK_RandomAbility.Text = "Random Abilities (1, 2, or Hidden)"; + this.CHK_RandomAbility.UseVisualStyleBackColor = true; + // + // CHK_RandomAura + // + this.CHK_RandomAura.AutoSize = true; + this.CHK_RandomAura.Location = new System.Drawing.Point(12, 129); + this.CHK_RandomAura.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CHK_RandomAura.Name = "CHK_RandomAura"; + this.CHK_RandomAura.Size = new System.Drawing.Size(213, 20); + this.CHK_RandomAura.TabIndex = 300; + this.CHK_RandomAura.Text = "Random Totem Pokémon Aura"; + this.CHK_RandomAura.UseVisualStyleBackColor = true; + // + // CHK_AllowMega + // + this.CHK_AllowMega.AutoSize = true; + this.CHK_AllowMega.Location = new System.Drawing.Point(12, 111); + this.CHK_AllowMega.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CHK_AllowMega.Name = "CHK_AllowMega"; + this.CHK_AllowMega.Size = new System.Drawing.Size(193, 20); + this.CHK_AllowMega.TabIndex = 298; + this.CHK_AllowMega.Text = "Allow Random Mega Forms"; + this.CHK_AllowMega.UseVisualStyleBackColor = true; + // + // CHK_Item + // + this.CHK_Item.AutoSize = true; + this.CHK_Item.Checked = true; + this.CHK_Item.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_Item.Location = new System.Drawing.Point(12, 92); + this.CHK_Item.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CHK_Item.Name = "CHK_Item"; + this.CHK_Item.Size = new System.Drawing.Size(146, 20); + this.CHK_Item.TabIndex = 297; + this.CHK_Item.Text = "Random Held Items"; + this.CHK_Item.UseVisualStyleBackColor = true; + // + // CHK_G7 + // + this.CHK_G7.AutoSize = true; + this.CHK_G7.Checked = true; + this.CHK_G7.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G7.Location = new System.Drawing.Point(12, 70); + this.CHK_G7.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CHK_G7.Name = "CHK_G7"; + this.CHK_G7.Size = new System.Drawing.Size(62, 20); + this.CHK_G7.TabIndex = 296; + this.CHK_G7.Text = "Gen 7"; + this.CHK_G7.UseVisualStyleBackColor = true; + // + // CHK_BST + // + this.CHK_BST.AutoSize = true; + this.CHK_BST.Location = new System.Drawing.Point(171, 53); + this.CHK_BST.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CHK_BST.Name = "CHK_BST"; + this.CHK_BST.Size = new System.Drawing.Size(144, 20); + this.CHK_BST.TabIndex = 288; + this.CHK_BST.Text = "Randomize by BST"; + this.CHK_BST.UseVisualStyleBackColor = true; + // + // CHK_E + // + this.CHK_E.AutoSize = true; + this.CHK_E.Checked = true; + this.CHK_E.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_E.Location = new System.Drawing.Point(171, 36); + this.CHK_E.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CHK_E.Name = "CHK_E"; + this.CHK_E.Size = new System.Drawing.Size(117, 20); + this.CHK_E.TabIndex = 287; + this.CHK_E.Text = "Event Legends"; + this.CHK_E.UseVisualStyleBackColor = true; + // + // CHK_L + // + this.CHK_L.AutoSize = true; + this.CHK_L.Checked = true; + this.CHK_L.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_L.Location = new System.Drawing.Point(171, 18); + this.CHK_L.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CHK_L.Name = "CHK_L"; + this.CHK_L.Size = new System.Drawing.Size(120, 20); + this.CHK_L.TabIndex = 286; + this.CHK_L.Text = "Game Legends"; + this.CHK_L.UseVisualStyleBackColor = true; + // + // CHK_G6 + // + this.CHK_G6.AutoSize = true; + this.CHK_G6.Checked = true; + this.CHK_G6.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G6.Location = new System.Drawing.Point(89, 53); + this.CHK_G6.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CHK_G6.Name = "CHK_G6"; + this.CHK_G6.Size = new System.Drawing.Size(62, 20); + this.CHK_G6.TabIndex = 285; + this.CHK_G6.Text = "Gen 6"; + this.CHK_G6.UseVisualStyleBackColor = true; + // + // CHK_G5 + // + this.CHK_G5.AutoSize = true; + this.CHK_G5.Checked = true; + this.CHK_G5.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G5.Location = new System.Drawing.Point(89, 36); + this.CHK_G5.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CHK_G5.Name = "CHK_G5"; + this.CHK_G5.Size = new System.Drawing.Size(62, 20); + this.CHK_G5.TabIndex = 284; + this.CHK_G5.Text = "Gen 5"; + this.CHK_G5.UseVisualStyleBackColor = true; + // + // CHK_G4 + // + this.CHK_G4.AutoSize = true; + this.CHK_G4.Checked = true; + this.CHK_G4.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G4.Location = new System.Drawing.Point(89, 18); + this.CHK_G4.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CHK_G4.Name = "CHK_G4"; + this.CHK_G4.Size = new System.Drawing.Size(62, 20); + this.CHK_G4.TabIndex = 283; + this.CHK_G4.Text = "Gen 4"; + this.CHK_G4.UseVisualStyleBackColor = true; + // + // CHK_G3 + // + this.CHK_G3.AutoSize = true; + this.CHK_G3.Checked = true; + this.CHK_G3.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G3.Location = new System.Drawing.Point(12, 53); + this.CHK_G3.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CHK_G3.Name = "CHK_G3"; + this.CHK_G3.Size = new System.Drawing.Size(62, 20); + this.CHK_G3.TabIndex = 282; + this.CHK_G3.Text = "Gen 3"; + this.CHK_G3.UseVisualStyleBackColor = true; + // + // CHK_G2 + // + this.CHK_G2.AutoSize = true; + this.CHK_G2.Checked = true; + this.CHK_G2.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G2.Location = new System.Drawing.Point(12, 36); + this.CHK_G2.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CHK_G2.Name = "CHK_G2"; + this.CHK_G2.Size = new System.Drawing.Size(62, 20); + this.CHK_G2.TabIndex = 281; + this.CHK_G2.Text = "Gen 2"; + this.CHK_G2.UseVisualStyleBackColor = true; + // + // CHK_G1 + // + this.CHK_G1.AutoSize = true; + this.CHK_G1.Checked = true; + this.CHK_G1.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_G1.Location = new System.Drawing.Point(12, 18); + this.CHK_G1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.CHK_G1.Name = "CHK_G1"; + this.CHK_G1.Size = new System.Drawing.Size(62, 20); + this.CHK_G1.TabIndex = 280; + this.CHK_G1.Text = "Gen 1"; + this.CHK_G1.UseVisualStyleBackColor = true; + // + // B_Starters + // + this.B_Starters.Location = new System.Drawing.Point(256, 490); + this.B_Starters.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.B_Starters.Name = "B_Starters"; + this.B_Starters.Size = new System.Drawing.Size(163, 28); + this.B_Starters.TabIndex = 9; + this.B_Starters.Text = "Randomize Starters"; + this.B_Starters.UseVisualStyleBackColor = true; + this.B_Starters.Click += new System.EventHandler(this.B_Starters_Click); + // + // B_Save + // + this.B_Save.Location = new System.Drawing.Point(580, 638); + this.B_Save.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.B_Save.Name = "B_Save"; + this.B_Save.Size = new System.Drawing.Size(100, 28); + this.B_Save.TabIndex = 1; + this.B_Save.Text = "Save"; + this.B_Save.UseVisualStyleBackColor = true; + this.B_Save.Click += new System.EventHandler(this.B_Save_Click); + // + // B_Cancel + // + this.B_Cancel.Location = new System.Drawing.Point(472, 638); + this.B_Cancel.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.B_Cancel.Name = "B_Cancel"; + this.B_Cancel.Size = new System.Drawing.Size(100, 28); + this.B_Cancel.TabIndex = 2; + this.B_Cancel.Text = "Cancel"; + this.B_Cancel.UseVisualStyleBackColor = true; + this.B_Cancel.Click += new System.EventHandler(this.B_Cancel_Click); + // + // StaticEncounterEditor7 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(707, 703); + this.Controls.Add(this.B_Cancel); + this.Controls.Add(this.B_Save); + this.Controls.Add(this.TC_Tabs); + this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); + this.Name = "StaticEncounterEditor7"; + this.Text = "StaticEncounterEditor7"; + this.TC_Tabs.ResumeLayout(false); + this.Tab_Gifts.ResumeLayout(false); + this.Tab_Gifts.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_GForm)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_GLevel)).EndInit(); + this.Tab_Encounters.ResumeLayout(false); + this.Tab_Encounters.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Ally1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Ally2)).EndInit(); + this.GB_EEVs.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.NUD_EV5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_EV4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_EV3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_EV2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_EV1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_EV0)).EndInit(); + this.GB_EIVs.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.NUD_EIV3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_EIV4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_EIV5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_EIV2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_EIV1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_EIV0)).EndInit(); + this.GB_EMoves.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.NUD_EForm)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_ELevel)).EndInit(); + this.Tab_Trades.ResumeLayout(false); + this.Tab_Trades.PerformLayout(); + this.groupBox1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.NUD_TIV3)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_TIV4)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_TIV5)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_TIV2)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_TIV1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_TIV0)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_TID)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_TForm)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_TLevel)).EndInit(); + this.Tab_Randomizer.ResumeLayout(false); + this.Tab_Randomizer.PerformLayout(); + this.GB_Tweak.ResumeLayout(false); + this.GB_Tweak.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_ForceFullyEvolved)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_LevelBoost)).EndInit(); + this.GB_Rand.ResumeLayout(false); + this.GB_Rand.PerformLayout(); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.TabControl TC_Tabs; + private System.Windows.Forms.TabPage Tab_Encounters; + private System.Windows.Forms.TabPage Tab_Trades; + private System.Windows.Forms.TabPage Tab_Gifts; + private System.Windows.Forms.ListBox LB_Gift; + private System.Windows.Forms.ListBox LB_Encounter; + private System.Windows.Forms.ListBox LB_Trade; + private System.Windows.Forms.Button B_Save; + private System.Windows.Forms.NumericUpDown NUD_GLevel; + private System.Windows.Forms.Label L_GSpecies; + private System.Windows.Forms.Label L_GForm; + private System.Windows.Forms.NumericUpDown NUD_GForm; + private System.Windows.Forms.Label L_GLevel; + private System.Windows.Forms.ComboBox CB_GSpecies; + private System.Windows.Forms.ComboBox CB_GHeldItem; + private System.Windows.Forms.Label L_GHeldItem; + private System.Windows.Forms.ComboBox CB_EHeldItem; + private System.Windows.Forms.Label L_EHeldItem; + private System.Windows.Forms.ComboBox CB_ESpecies; + private System.Windows.Forms.Label L_EForm; + private System.Windows.Forms.NumericUpDown NUD_EForm; + private System.Windows.Forms.Label L_ELevel; + private System.Windows.Forms.Label L_ESpecies; + private System.Windows.Forms.NumericUpDown NUD_ELevel; + private System.Windows.Forms.ComboBox CB_THeldItem; + private System.Windows.Forms.Label L_THeldItem; + private System.Windows.Forms.ComboBox CB_TSpecies; + private System.Windows.Forms.Label L_TForm; + private System.Windows.Forms.NumericUpDown NUD_TForm; + private System.Windows.Forms.Label L_TLevel; + private System.Windows.Forms.Label L_TSpecies; + private System.Windows.Forms.NumericUpDown NUD_TLevel; + private System.Windows.Forms.Button B_Starters; + private System.Windows.Forms.GroupBox GB_EMoves; + private System.Windows.Forms.ComboBox CB_EMove3; + private System.Windows.Forms.ComboBox CB_EMove2; + private System.Windows.Forms.ComboBox CB_EMove1; + private System.Windows.Forms.ComboBox CB_EMove0; + private System.Windows.Forms.NumericUpDown NUD_TID; + private System.Windows.Forms.Label L_TID; + private System.Windows.Forms.Label L_TTID; + private System.Windows.Forms.ComboBox CB_TRequest; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.TabPage Tab_Randomizer; + private System.Windows.Forms.GroupBox GB_Rand; + private System.Windows.Forms.CheckBox CHK_G7; + private System.Windows.Forms.CheckBox CHK_BST; + private System.Windows.Forms.CheckBox CHK_E; + private System.Windows.Forms.CheckBox CHK_L; + private System.Windows.Forms.CheckBox CHK_G6; + private System.Windows.Forms.CheckBox CHK_G5; + private System.Windows.Forms.CheckBox CHK_G4; + private System.Windows.Forms.CheckBox CHK_G3; + private System.Windows.Forms.CheckBox CHK_G2; + private System.Windows.Forms.CheckBox CHK_G1; + private System.Windows.Forms.Button B_RandAll; + private System.Windows.Forms.Button B_Cancel; + private System.Windows.Forms.NumericUpDown NUD_LevelBoost; + private System.Windows.Forms.CheckBox CHK_Level; + private System.Windows.Forms.CheckBox CHK_ShinyLock; + private System.Windows.Forms.CheckBox CHK_G_Lock; + private System.Windows.Forms.CheckBox CHK_Item; + private System.Windows.Forms.CheckBox CHK_AllowMega; + private System.Windows.Forms.CheckBox CHK_RemoveShinyLock; + private System.Windows.Forms.Label L_Aura; + private System.Windows.Forms.ComboBox CB_Aura; + private System.Windows.Forms.Label L_DEF; + private System.Windows.Forms.Label L_ATK; + private System.Windows.Forms.Label L_HP; + private System.Windows.Forms.NumericUpDown NUD_EIV0; + private System.Windows.Forms.NumericUpDown NUD_EIV1; + private System.Windows.Forms.NumericUpDown NUD_EIV2; + private System.Windows.Forms.Label L_SPA; + private System.Windows.Forms.Label L_SPE; + private System.Windows.Forms.Label L_SPD; + private System.Windows.Forms.NumericUpDown NUD_EIV5; + private System.Windows.Forms.NumericUpDown NUD_EIV4; + private System.Windows.Forms.NumericUpDown NUD_EIV3; + private System.Windows.Forms.GroupBox GB_EEVs; + private System.Windows.Forms.NumericUpDown NUD_EV5; + private System.Windows.Forms.NumericUpDown NUD_EV4; + private System.Windows.Forms.NumericUpDown NUD_EV3; + private System.Windows.Forms.NumericUpDown NUD_EV2; + private System.Windows.Forms.NumericUpDown NUD_EV1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.Label label7; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.NumericUpDown NUD_EV0; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.GroupBox GB_EIVs; + private System.Windows.Forms.ComboBox CB_ENature; + private System.Windows.Forms.Label L_ENature; + private System.Windows.Forms.CheckBox CHK_EIV3; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.Label label8; + private System.Windows.Forms.NumericUpDown NUD_TIV3; + private System.Windows.Forms.NumericUpDown NUD_TIV4; + private System.Windows.Forms.NumericUpDown NUD_TIV5; + private System.Windows.Forms.Label label9; + private System.Windows.Forms.Label label10; + private System.Windows.Forms.Label label11; + private System.Windows.Forms.NumericUpDown NUD_TIV2; + private System.Windows.Forms.NumericUpDown NUD_TIV1; + private System.Windows.Forms.NumericUpDown NUD_TIV0; + private System.Windows.Forms.Label label12; + private System.Windows.Forms.Label label13; + private System.Windows.Forms.ComboBox CB_TNature; + private System.Windows.Forms.Label L_TNature; + private System.Windows.Forms.ComboBox CB_SpecialMove; + private System.Windows.Forms.Label L_SpecialMove; + private System.Windows.Forms.CheckBox CHK_IsEgg; + private System.Windows.Forms.CheckBox CHK_GIV3; + private System.Windows.Forms.ComboBox CB_GNature; + private System.Windows.Forms.Label L_GNature; + private System.Windows.Forms.Button B_ModifyLevel; + private System.Windows.Forms.CheckBox CHK_RandomAura; + private System.Windows.Forms.CheckBox CHK_SpecialMove; + private System.Windows.Forms.ComboBox CB_GAbility; + private System.Windows.Forms.Label L_GAbility; + private System.Windows.Forms.ComboBox CB_EAbility; + private System.Windows.Forms.Label L_EAbility; + private System.Windows.Forms.ComboBox CB_TAbility; + private System.Windows.Forms.Label L_TAbility; + private System.Windows.Forms.CheckBox CHK_RandomAbility; + private System.Windows.Forms.Label L_EGender; + private System.Windows.Forms.Label L_TGender; + private System.Windows.Forms.CheckBox CHK_ReplaceLegend; + private System.Windows.Forms.GroupBox GB_Tweak; + private System.Windows.Forms.CheckBox CHK_ForceTotem; + private System.Windows.Forms.CheckBox CHK_BasicStarter; + private System.Windows.Forms.NumericUpDown NUD_ForceFullyEvolved; + private System.Windows.Forms.CheckBox CHK_ForceFullyEvolved; + private System.Windows.Forms.CheckBox CHK_Metronome; + private System.Windows.Forms.Label L_SOS1; + private System.Windows.Forms.NumericUpDown NUD_Ally1; + private System.Windows.Forms.Label L_SOS2; + private System.Windows.Forms.NumericUpDown NUD_Ally2; + private System.Windows.Forms.Label L_Ally2; + private System.Windows.Forms.Label L_Ally1; + private System.Windows.Forms.ComboBox CB_EGender; + private System.Windows.Forms.ComboBox CB_TGender; + private System.Windows.Forms.Button B_ClearSE; + private System.Windows.Forms.Button B_CurrentAttackSE; + private System.Windows.Forms.Button B_HighAttackSE; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen7/StaticEncounterEditor7.cs b/pk3DS.WinForms/Subforms/Gen7/StaticEncounterEditor7.cs new file mode 100644 index 0000000000..779a762b5e --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen7/StaticEncounterEditor7.cs @@ -0,0 +1,817 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Windows.Forms; + +using pk3DS.Core; +using pk3DS.Core.Randomizers; +using pk3DS.Core.Structures; + +namespace pk3DS.WinForms; + +public partial class StaticEncounterEditor7 : Form +{ + private readonly byte[][] files; + private readonly EncounterGift7[] Gifts; + private readonly EncounterStatic7[] Encounters; + private readonly EncounterTrade7[] Trades; + private readonly LearnsetRandomizer learn = new(Main.Config, Main.Config.Learnsets); + private readonly string[] movelist = Main.Config.GetText(TextName.MoveNames); + private readonly string[] itemlist = Main.Config.GetText(TextName.ItemNames); + private readonly string[] specieslist = Main.Config.GetText(TextName.SpeciesNames); + private readonly string[] natures = Main.Config.GetText(TextName.Natures); + private readonly string[] types = Main.Config.GetText(TextName.Types); + private readonly int[] oldStarters; + private static int[] FinalEvo = Legal.FinalEvolutions_7; + private static readonly int[] Legendary = Main.Config.USUM ? Legal.Legendary_USUM : Legal.Legendary_SM; + private static readonly int[] Mythical = Main.Config.USUM ? Legal.Mythical_USUM : Legal.Mythical_SM; + private static readonly int[] ReplaceLegend = [.. Legendary, .. Mythical]; + private static readonly int[] BasicStarter = Legal.BasicStarters_7; + + private readonly string[] gender = + [ + "- / Genderless/Random", + "♂ / Male", + "♀ / Female", + ]; + + private readonly string[] ability = + [ + "Any (1 or 2)", + "Ability 1", + "Ability 2", + "Hidden Ability", + ]; + + private readonly string[] aura = + [ + "(None)", + "Attack (+1)", + "Attack (+2)", + "Attack (+3)", + "Defense (+1)", + "Defense (+2)", + "Defense (+3)", + "Sp. Attack (+1)", + "Sp. Attack (+2)", + "Sp. Attack (+3)", + "Sp. Defense (+1)", + "Sp. Defense (+2)", + "Sp. Defense (+3)", + "Speed (+1)", + "Speed (+2)", + "Speed (+3)", + "All Stats (+1)", + "All Stats (+2)", + "All Stats (+3)", + ]; + + private static readonly int[] Totem = [020, 105, 735, 738, 743, 746, 752, 754, 758, 777, 778, 784]; // Totem battles + private static readonly int[] UnevolvedLegend = [772, 789, 803]; // Type: Null, Cosmog, Poipole gifts + + public StaticEncounterEditor7(byte[][] infiles) + { + InitializeComponent(); + files = infiles; + + // File 0: Gifts + { + byte[] data = files[0]; + Gifts = new EncounterGift7[data.Length / EncounterGift7.SIZE]; + for (int i = 0; i < data.Length; i += EncounterGift7.SIZE) + { + byte[] entry = new byte[EncounterGift7.SIZE]; + Array.Copy(data, i, entry, 0, entry.Length); + Gifts[i / EncounterGift7.SIZE] = new EncounterGift7(entry); + } + } + oldStarters = Gifts.Take(3).Select(gift => gift.Species).ToArray(); + + // File 1: Encounters + { + byte[] data = files[1]; + Encounters = new EncounterStatic7[data.Length / EncounterStatic7.SIZE]; + for (int i = 0; i < data.Length; i += EncounterStatic7.SIZE) + { + byte[] entry = new byte[EncounterStatic7.SIZE]; + Array.Copy(data, i, entry, 0, entry.Length); + Encounters[i / EncounterStatic7.SIZE] = new EncounterStatic7(entry); + } + } + + // File 4: Trades + { + byte[] data = files[4]; + Trades = new EncounterTrade7[data.Length / EncounterTrade7.SIZE]; + for (int i = 0; i < data.Length; i += EncounterTrade7.SIZE) + { + byte[] entry = new byte[EncounterTrade7.SIZE]; + Array.Copy(data, i, entry, 0, entry.Length); + Trades[i / EncounterTrade7.SIZE] = new EncounterTrade7(entry); + } + } + + movelist[0] = itemlist[0] = specieslist[0] = "(None)"; + foreach (var s in specieslist) + { + CB_GSpecies.Items.Add(s); + CB_ESpecies.Items.Add(s); + CB_TSpecies.Items.Add(s); + CB_TRequest.Items.Add(s); + } + foreach (var s in ability) + { + CB_GAbility.Items.Add(s); + CB_EAbility.Items.Add(s); + CB_TAbility.Items.Add(s); + } + foreach (var s in itemlist) + { + CB_GHeldItem.Items.Add(s); + CB_EHeldItem.Items.Add(s); + CB_THeldItem.Items.Add(s); + } + foreach (var s in movelist) + { + CB_EMove0.Items.Add(s); + CB_EMove1.Items.Add(s); + CB_EMove2.Items.Add(s); + CB_EMove3.Items.Add(s); + CB_SpecialMove.Items.Add(s); + } + foreach (string s in gender) + { + CB_EGender.Items.Add(s); + CB_TGender.Items.Add(s); + } + CB_Aura.Items.AddRange(aura); + + CB_GNature.Items.Add("Random"); + CB_GNature.Items.AddRange(natures.Take(25).ToArray()); + CB_ENature.Items.Add("Random"); + CB_ENature.Items.AddRange(natures.Take(25).ToArray()); + CB_TNature.Items.AddRange(natures.Take(25).ToArray()); + + NUD_Ally1.Maximum = NUD_Ally2.Maximum = Main.Config.USUM ? 251 : 136; + + GetListBoxEntries(); + LB_Gift.SelectedIndex = 0; + LB_Encounter.SelectedIndex = 0; + LB_Trade.SelectedIndex = 0; + + // Select last tab (Randomization) by default in case info already randomized. + TC_Tabs.SelectedIndex = TC_Tabs.TabCount - 1; + + RandSettings.GetFormSettings(this, Tab_Randomizer.Controls); + // ExportEncounters(); + } + + private void GetListBoxEntries() + { + loading = true; + LB_Gift.Items.Clear(); + LB_Encounter.Items.Clear(); + LB_Trade.Items.Clear(); + + for (int i = 0; i < Gifts.Length; i++) + LB_Gift.Items.Add(GetEntryText(Gifts[i], i)); + for (int i = 0; i < Encounters.Length; i++) + LB_Encounter.Items.Add(GetEntryText(Encounters[i], i)); + for (int i = 0; i < Trades.Length; i++) + LB_Trade.Items.Add(GetEntryText(Trades[i], i)); + loading = false; + } + + private int gEntry = -1; + private int eEntry = -1; + private int tEntry = -1; + + private void B_Save_Click(object sender, EventArgs e) + { + SetGift(); + SetEncounter(); + SetTrade(); + SaveData(); + RandSettings.SetFormSettings(this, Tab_Randomizer.Controls); + Close(); + } + + private void B_Cancel_Click(object sender, EventArgs e) + { + Close(); + } + + private void SaveData() + { + files[0] = Gifts.SelectMany(file => file.Data).ToArray(); + files[1] = Encounters.SelectMany(file => file.Data).ToArray(); + files[4] = Trades.SelectMany(file => file.Data).ToArray(); + + if (Gifts.Take(3).Select(gift => gift.Species).SequenceEqual(oldStarters)) + return; + + var dr = WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Starters have been changed. Update text references?", "Note that this only updates text references for the current language set in pk3DS.", "This can be changed from Options -> Language on the main window."); + if (dr == DialogResult.Yes) + UpdateStarterText(); + } + + private string GetEntryText(int species, int entry) + { + return $"{entry:00} - {specieslist[species]}"; + } + + private string GetEntryText(EncounterStatic enc, int entry) + { + return GetEntryText(enc.Species, entry); + } + + private void LB_Gift_SelectedIndexChanged(object sender, EventArgs e) + { + SetGift(); + gEntry = LB_Gift.SelectedIndex; + GetGift(); + } + + private void LB_Encounter_SelectedIndexChanged(object sender, EventArgs e) + { + SetEncounter(); + eEntry = LB_Encounter.SelectedIndex; + GetEncounter(); + GetAllies(); + } + + private void LB_Trade_SelectedIndexChanged(object sender, EventArgs e) + { + SetTrade(); + tEntry = LB_Trade.SelectedIndex; + GetTrade(); + } + + private bool loading; + + private void GetAllies() + { + if (eEntry < 0) + return; + var entry = Encounters[eEntry]; + + // USUM has slots with SOS allies beyond slot 100, accommodate by trimming an extra character + int endTrim = eEntry < 100 ? 5 : 6; + + L_Ally1.Text = entry.Ally1 == 0 ? "No SOS Ally" : ((string)LB_Encounter.Items[entry.Ally1 - 1]).Remove(0, endTrim); + L_Ally2.Text = entry.Ally2 == 0 ? "No SOS Ally" : ((string)LB_Encounter.Items[entry.Ally2 - 1]).Remove(0, endTrim); + } + + private void GetGift() + { + if (gEntry < 0) + return; + + loading = true; + var entry = Gifts[gEntry]; + CB_GSpecies.SelectedIndex = entry.Species; + CB_GHeldItem.SelectedIndex = entry.HeldItem; + NUD_GLevel.Value = entry.Level; + NUD_GForm.Value = entry.Form; + CB_GAbility.SelectedIndex = entry.Ability + 1; + CB_GNature.SelectedIndex = entry.Nature + 1; + CB_SpecialMove.SelectedIndex = entry.SpecialMove; + CHK_G_Lock.Checked = entry.ShinyLock; + CHK_GIV3.Checked = entry.IV3; + CHK_IsEgg.Checked = entry.IsEgg; + + loading = false; + } + + private void SetGift() + { + if (gEntry < 0) + return; + + var entry = Gifts[gEntry]; + entry.Species = CB_GSpecies.SelectedIndex; + entry.HeldItem = CB_GHeldItem.SelectedIndex; + entry.Level = (int)NUD_GLevel.Value; + entry.Form = (int)NUD_GForm.Value; + entry.Ability = (sbyte)(CB_GAbility.SelectedIndex - 1); + entry.Nature = (sbyte)(CB_GNature.SelectedIndex - 1); + entry.SpecialMove = CB_SpecialMove.SelectedIndex; + entry.ShinyLock = CHK_G_Lock.Checked; + entry.IsEgg = CHK_IsEgg.Checked; + } + + private void GetEncounter() + { + if (eEntry < 0) + return; + + loading = true; + var entry = Encounters[eEntry]; + var iv = entry.IVs; + var ev = entry.EVs; + CB_ESpecies.SelectedIndex = entry.Species; + CB_EHeldItem.SelectedIndex = entry.HeldItem; + NUD_ELevel.Value = entry.Level; + NUD_EForm.Value = entry.Form; + CB_EGender.SelectedIndex = entry.Gender; + CB_EAbility.SelectedIndex = entry.Ability; + + int[] moves = entry.RelearnMoves; + CB_EMove0.SelectedIndex = moves[0]; + CB_EMove1.SelectedIndex = moves[1]; + CB_EMove2.SelectedIndex = moves[2]; + CB_EMove3.SelectedIndex = moves[3]; + + NUD_EIV0.Value = iv[0]; + NUD_EIV1.Value = iv[1]; + NUD_EIV2.Value = iv[2]; + NUD_EIV3.Value = iv[3]; + NUD_EIV4.Value = iv[4]; + NUD_EIV5.Value = iv[5]; + + NUD_EV0.Value = ev[0]; + NUD_EV1.Value = ev[1]; + NUD_EV2.Value = ev[2]; + NUD_EV3.Value = ev[3]; + NUD_EV4.Value = ev[4]; + NUD_EV5.Value = ev[5]; + + CHK_ShinyLock.Checked = entry.ShinyLock; + CHK_EIV3.Checked = entry.IV3; + CB_ENature.SelectedIndex = entry.Nature; + CB_Aura.SelectedIndex = entry.Aura; + NUD_Ally1.Value = entry.Ally1 - 1; + NUD_Ally2.Value = entry.Ally2 - 1; + + loading = false; + } + + private void SetEncounter() + { + if (eEntry < 0) + return; + + var entry = Encounters[eEntry]; + var iv = entry.IVs; + var ev = entry.EVs; + entry.Species = CB_ESpecies.SelectedIndex; + entry.HeldItem = CB_EHeldItem.SelectedIndex; + entry.Level = (int)NUD_ELevel.Value; + entry.Form = (int)NUD_EForm.Value; + entry.Gender = CB_EGender.SelectedIndex; + entry.Ability = CB_EAbility.SelectedIndex; + entry.RelearnMoves = + [ + CB_EMove0.SelectedIndex, + CB_EMove1.SelectedIndex, + CB_EMove2.SelectedIndex, + CB_EMove3.SelectedIndex, + ]; + + iv[0] = (int)NUD_EIV0.Value; + iv[1] = (int)NUD_EIV1.Value; + iv[2] = (int)NUD_EIV2.Value; + iv[3] = (int)NUD_EIV3.Value; + iv[4] = (int)NUD_EIV4.Value; + iv[5] = (int)NUD_EIV5.Value; + entry.IVs = iv; + + ev[0] = (int)NUD_EV0.Value; + ev[1] = (int)NUD_EV1.Value; + ev[2] = (int)NUD_EV2.Value; + ev[3] = (int)NUD_EV3.Value; + ev[4] = (int)NUD_EV4.Value; + ev[5] = (int)NUD_EV5.Value; + entry.EVs = ev; + + entry.ShinyLock = CHK_ShinyLock.Checked; + entry.Nature = CB_ENature.SelectedIndex; + entry.Aura = CB_Aura.SelectedIndex; + entry.Ally1 = (int)NUD_Ally1.Value + 1; + entry.Ally2 = (int)NUD_Ally2.Value + 1; + } + + private void GetTrade() + { + if (tEntry < 0) + return; + + loading = true; + var entry = Trades[tEntry]; + var iv = entry.IVs; + CB_TSpecies.SelectedIndex = entry.Species; + CB_THeldItem.SelectedIndex = entry.HeldItem; + NUD_TLevel.Value = entry.Level; + NUD_TForm.Value = entry.Form; + CB_TGender.SelectedIndex = entry.Gender + 1; + CB_TAbility.SelectedIndex = entry.Ability + 1; + CB_TNature.SelectedIndex = entry.Nature; + + NUD_TID.Value = entry.ID; + CB_TRequest.SelectedIndex = entry.TradeRequestSpecies; + + NUD_TIV0.Value = iv[0]; + NUD_TIV1.Value = iv[1]; + NUD_TIV2.Value = iv[2]; + NUD_TIV3.Value = iv[3]; + NUD_TIV4.Value = iv[4]; + NUD_TIV5.Value = iv[5]; + + loading = false; + } + + private void SetTrade() + { + if (tEntry < 0) + return; + + var entry = Trades[tEntry]; + var iv = entry.IVs; + entry.Species = CB_TSpecies.SelectedIndex; + entry.HeldItem = CB_THeldItem.SelectedIndex; + entry.Level = (int)NUD_TLevel.Value; + entry.Form = (int)NUD_TForm.Value; + entry.Gender = CB_TGender.SelectedIndex - 1; + entry.Ability = (CB_TAbility.SelectedIndex - 1); + entry.Nature = CB_TNature.SelectedIndex; + + entry.TID = (int)NUD_TID.Value; + entry.TradeRequestSpecies = CB_TRequest.SelectedIndex; + + iv[0] = (int)NUD_TIV0.Value; + iv[1] = (int)NUD_TIV1.Value; + iv[2] = (int)NUD_TIV2.Value; + iv[3] = (int)NUD_TIV3.Value; + iv[4] = (int)NUD_TIV4.Value; + iv[5] = (int)NUD_TIV5.Value; + entry.IVs = iv; + } + + private void ChangeSpecies(object sender, EventArgs e) + { + if (loading) + return; + if (sender is not ComboBox cb) + return; + + if (sender == CB_GSpecies) + { + var entry = Gifts[gEntry]; + entry.Species = cb.SelectedIndex; + LB_Gift.Items[gEntry] = GetEntryText(entry, gEntry); + } + else if (sender == CB_ESpecies) + { + var entry = Encounters[eEntry]; + entry.Species = cb.SelectedIndex; + LB_Encounter.Items[eEntry] = GetEntryText(entry, eEntry); + } + else if (sender == CB_TSpecies) + { + var entry = Trades[tEntry]; + entry.Species = cb.SelectedIndex; + LB_Trade.Items[tEntry] = GetEntryText(entry, tEntry); + } + } + + private void ChangeTID(object sender, EventArgs e) + { + L_TTID.Text = $"Gen 7 ID: {NUD_TID.Value % 100000:000000}"; + } + + // Randomization + private SpeciesRandomizer GetRandomizer() + { + var specrand = new SpeciesRandomizer(Main.Config) + { + G1 = CHK_G1.Checked, + G2 = CHK_G2.Checked, + G3 = CHK_G3.Checked, + G4 = CHK_G4.Checked, + G5 = CHK_G5.Checked, + G6 = CHK_G6.Checked, + G7 = CHK_G7.Checked, + + E = CHK_E.Checked, + L = CHK_L.Checked, + + rBST = CHK_BST.Checked, + }; + specrand.Initialize(); + + // add Legendary/Mythical to final evolutions if checked + if (CHK_L.Checked) FinalEvo = [.. FinalEvo, .. Legendary]; + if (CHK_E.Checked) FinalEvo = [.. FinalEvo, .. Mythical]; + + return specrand; + } + + private void B_Starters_Click(object sender, EventArgs e) + { + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomize Starters? Cannot undo.", "Double check Randomization settings before continuing.") != DialogResult.Yes) + return; + + SetGift(); + + var specrand = GetRandomizer(); + var formrand = new FormRandomizer(Main.Config) { AllowMega = false, AllowAlolanForm = true }; + var items = Randomizer.GetRandomItemList(); + int[] banned = [.. Legal.Z_Moves, .. new[] { 165, 464, 621 }]; + + // Assign Species + for (int i = 0; i < 3; i++) + { + var t = Gifts[i]; + + // Pokemon with 2 evolutions + if (CHK_BasicStarter.Checked) + { + static int basic() => (int)(Util.Random32() % BasicStarter.Length); + t.Species = BasicStarter[basic()]; + } + else + { + t.Species = specrand.GetRandomSpecies(oldStarters[i]); + } + + if (CHK_AllowMega.Checked) + formrand.AllowMega = true; + + if (CHK_Item.Checked) + t.HeldItem = items[Util.Random32() % items.Length]; + + if (CHK_Level.Checked) + t.Level = Randomizer.GetModifiedLevel(t.Level, NUD_LevelBoost.Value); + + if (CHK_RemoveShinyLock.Checked) + t.ShinyLock = false; + + if (CHK_SpecialMove.Checked && !CHK_Metronome.Checked) + { + int rv; + do { rv = Util.Rand.Next(1, CB_SpecialMove.Items.Count); } + while (banned.Contains(rv)); + t.SpecialMove = rv; + } + + if (CHK_RandomAbility.Checked) + t.Ability = (sbyte)(Util.Rand.Next(0, 3)); // 1, 2, or H + + t.Form = Randomizer.GetRandomForme(t.Species, CHK_AllowMega.Checked, true, Main.SpeciesStat); + t.Nature = -1; // random + } + + GetListBoxEntries(); + GetGift(); + + WinFormsUtil.Alert("Randomized Starters according to specification!"); + } + + private void B_RandAll_Click(object sender, EventArgs e) + { + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomize Static Encounters? Cannot undo.", "Double check Randomization Settings before continuing.") != DialogResult.Yes) + return; + + SetGift(); + SetEncounter(); + SetTrade(); + + var specrand = GetRandomizer(); + var formrand = new FormRandomizer(Main.Config) { AllowMega = false, AllowAlolanForm = true }; + var move = new LearnsetRandomizer(Main.Config, Main.Config.Learnsets); + var items = Randomizer.GetRandomItemList(); + int[] banned = [.. Legal.Z_Moves, .. new[] { 165, 464, 621 }]; + int randFinalEvo() => (int)(Util.Random32() % FinalEvo.Length); + int randLegend() => (int)(Util.Random32() % ReplaceLegend.Length); + + for (int i = 3; i < Gifts.Length; i++) // Skip Starters + { + var t = Gifts[i]; + + // Legendary-for-Legendary + if ((CHK_ReplaceLegend.Checked && ReplaceLegend.Contains(t.Species)) || UnevolvedLegend.Contains(t.Species)) + t.Species = ReplaceLegend[randLegend()]; + + // every other entry + else + t.Species = specrand.GetRandomSpecies(t.Species); + + if (CHK_AllowMega.Checked) + formrand.AllowMega = true; + + if (CHK_Item.Checked) + t.HeldItem = items[Util.Random32() % items.Length]; + + if (CHK_Level.Checked) + t.Level = Randomizer.GetModifiedLevel(t.Level, NUD_LevelBoost.Value); + + if (CHK_RemoveShinyLock.Checked) + t.ShinyLock = false; + + if (CHK_SpecialMove.Checked) + { + if (CHK_Metronome.Checked) + { + t.SpecialMove = 0; // remove Surf Pikachu's special move + } + else + { + int rv; + do { rv = Util.Rand.Next(1, CB_SpecialMove.Items.Count); } + while (banned.Contains(rv)); + t.SpecialMove = rv; + } + } + + if (CHK_RandomAbility.Checked) + t.Ability = (sbyte)(Util.Rand.Next(0, 3)); // 1, 2, or H + + if (CHK_ForceFullyEvolved.Checked && t.Level >= NUD_ForceFullyEvolved.Value && !FinalEvo.Contains(t.Species)) + t.Species = FinalEvo[randFinalEvo()]; + + t.Form = Randomizer.GetRandomForme(t.Species, CHK_AllowMega.Checked, true, Main.SpeciesStat); + t.Nature = -1; // random + } + foreach (EncounterStatic7 t in Encounters) + { + // Legendary-for-Legendary + if (CHK_ReplaceLegend.Checked && ReplaceLegend.Contains(t.Species)) + t.Species = ReplaceLegend[randLegend()]; + + // fully evolved Totems + else if (CHK_ForceTotem.Checked && Totem.Contains(t.Species)) + t.Species = FinalEvo[randFinalEvo()]; + + // every other entry + else + t.Species = specrand.GetRandomSpecies(t.Species); + + if (CHK_AllowMega.Checked) + formrand.AllowMega = true; + + if (CHK_Item.Checked) + t.HeldItem = items[Util.Random32() % items.Length]; + + if (CHK_Level.Checked) + t.Level = Randomizer.GetModifiedLevel(t.Level, NUD_LevelBoost.Value); + + if (CHK_RemoveShinyLock.Checked) + t.ShinyLock = false; + + if (CHK_RandomAura.Checked && t.Aura != 0) // don't apply aura to a pkm without it + t.Aura = Util.Rand.Next(1, CB_Aura.Items.Count); // don't allow none + + if (CHK_RandomAbility.Checked) + t.Ability = (sbyte)(Util.Rand.Next(1, 4)); // 1, 2, or H + + if (CHK_ForceFullyEvolved.Checked && t.Level >= NUD_ForceFullyEvolved.Value && !FinalEvo.Contains(t.Species)) + t.Species = FinalEvo[randFinalEvo()]; + + t.IVs = t.IV3 + ? [-4, -1, -1, -1, -1, -1] // random with IV3 flag + : [-1, -1, -1, -1, -1, -1]; // random + + t.EVs = [0, 0, 0, 0, 0, 0]; // reset EVs + + t.Form = Randomizer.GetRandomForme(t.Species, CHK_AllowMega.Checked, true, Main.SpeciesStat); + t.Gender = 0; // random + t.Nature = 0; // random + + t.RelearnMoves = CHK_Metronome.Checked + ? [118, 0, 0, 0] + : move.GetCurrentMoves(t.Species, t.Form, t.Level, 4); + } + foreach (EncounterTrade7 t in Trades) + { + t.Species = specrand.GetRandomSpecies(t.Species); + t.TradeRequestSpecies = specrand.GetRandomSpecies(t.TradeRequestSpecies); + + if (CHK_AllowMega.Checked) + formrand.AllowMega = true; + + if (CHK_Item.Checked) + t.HeldItem = items[Util.Random32() % items.Length]; + + if (CHK_Level.Checked) + t.Level = Randomizer.GetModifiedLevel(t.Level, NUD_LevelBoost.Value); + + if (CHK_RandomAbility.Checked) + t.Ability = (sbyte)(Util.Rand.Next(0, 3)); // 1, 2, or H + + if (CHK_ForceFullyEvolved.Checked && t.Level >= NUD_ForceFullyEvolved.Value && !FinalEvo.Contains(t.Species)) + t.Species = FinalEvo[randFinalEvo()]; // only do offered species to be fair + + t.Form = Randomizer.GetRandomForme(t.Species, CHK_AllowMega.Checked, true, Main.SpeciesStat); + t.Nature = (int)(Util.Random32() % CB_TNature.Items.Count); // randomly selected + t.IVs = [-1, -1, -1, -1, -1, -1]; // random + } + + GetListBoxEntries(); + GetGift(); + GetEncounter(); + GetTrade(); + + WinFormsUtil.Alert("Randomized Static Encounters according to specification!"); + } + + // Mirror Changes + private void UpdateStarterText() + { + var gr = Main.Config.GetGARCReference("storytext"); + int file = Main.Config.USUM ? 39 : 41; + for (int i = 0; i < 10; i++) + { + // get Story Text + var sr = gr.GetRelativeGARC(i, gr.Name); + var s = Main.Config.GetGARCByReference(sr); + byte[][] storytextdata = s.Files; + + string[] storyText = TextFile.GetStrings(Main.Config, storytextdata[file]); + + for (int j = 0; j < 3; j++) + { + int oldSpecies = oldStarters[j]; + int species = Gifts[j].Species; + // Replace Story Text + string line = storyText[1 + j]; + // Replace Species + line = line.Replace(specieslist[oldSpecies], specieslist[species]); + + if (Main.Config.SM) // replace type text + { + int oldIndex = Main.Config.Personal.GetFormIndex(oldSpecies, Gifts[j].Form); + int oldtype0 = Main.Config.Personal[oldIndex].Types[0]; + int newIndex = Main.Config.Personal.GetFormIndex(species, Gifts[j].Form); + int newtype0 = Main.Config.Personal[newIndex].Types[0]; + line = line.Replace(types[oldtype0], types[newtype0]); + } + else if (Main.Config.USUM) + { + storyText[14 + j] = specieslist[species]; + } + + storyText[1 + j] = line; + } + storytextdata[file] = TextFile.GetBytes(Main.Config, storyText); + s.Files = storytextdata; + s.Save(); + } + } + + public void ExportEncounters() + { + System.IO.File.WriteAllBytes("0", files[0]); + System.IO.File.WriteAllBytes("1", files[1]); + var g = Gifts.Select(z => z.GetSummary() + $" // {specieslist[z.Species]} @ ???"); + var s = Encounters.Select(z => z.GetSummary() + $" // {specieslist[z.Species]} @ ???"); + Clipboard.SetText(string.Join(Environment.NewLine, g.Concat(s))); + } + + private void ModifyLevels(object sender, EventArgs e) + { + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Modify all current Levels?", "Cannot undo.") != DialogResult.Yes) return; + + for (int i = 0; i < LB_Encounter.Items.Count; i++) + { + LB_Encounter.SelectedIndex = i; + NUD_ELevel.Value = Randomizer.GetModifiedLevel((int)NUD_ELevel.Value, NUD_LevelBoost.Value); + } + for (int i = 0; i < LB_Gift.Items.Count; i++) + { + LB_Gift.SelectedIndex = i; + NUD_GLevel.Value = Randomizer.GetModifiedLevel((int)NUD_GLevel.Value, NUD_LevelBoost.Value); + } + for (int i = 0; i < LB_Trade.Items.Count; i++) + { + LB_Trade.SelectedIndex = i; + NUD_TLevel.Value = Randomizer.GetModifiedLevel((int)NUD_TLevel.Value, NUD_LevelBoost.Value); + } + WinFormsUtil.Alert("Modified all Levels according to specification!"); + } + + private void B_CurrentAttackSE_Click(object sender, EventArgs e) + { + int species = CB_ESpecies.SelectedIndex; + int lvl = (int)NUD_ELevel.Value; + int frm = (int)NUD_EForm.Value; + int[] moves = learn.GetCurrentMoves(species, frm, lvl, 4); + SetMoves(moves); + } + + private void B_HighAttackSE_Click(object sender, EventArgs e) + { + int species = CB_ESpecies.SelectedIndex; + int frm = (int)NUD_EForm.Value; + int[] moves = learn.GetHighPoweredMoves(species, frm, 4); + SetMoves(moves); + } + + private void B_ClearSE_Click(object sender, EventArgs e) => SetMoves(new int[4]); + + private void SetMoves(IList moves) + { + var mcb = new[] { CB_EMove0, CB_EMove1, CB_EMove2, CB_EMove3 }; + for (int i = 0; i < mcb.Length; i++) + mcb[i].SelectedIndex = moves[i]; + } +} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/StaticEncounterEditor7.resx b/pk3DS.WinForms/Subforms/Gen7/StaticEncounterEditor7.resx similarity index 100% rename from pk3DS/Subforms/Gen7/StaticEncounterEditor7.resx rename to pk3DS.WinForms/Subforms/Gen7/StaticEncounterEditor7.resx diff --git a/pk3DS.WinForms/Subforms/Gen7/TMEditor7.Designer.cs b/pk3DS.WinForms/Subforms/Gen7/TMEditor7.Designer.cs new file mode 100644 index 0000000000..e6b0a9c7a6 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen7/TMEditor7.Designer.cs @@ -0,0 +1,97 @@ +namespace pk3DS.WinForms; + +partial class TMEditor7 +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.dgvTM = new System.Windows.Forms.DataGridView(); + this.L_TM = new System.Windows.Forms.Label(); + this.B_RTM = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.dgvTM)).BeginInit(); + this.SuspendLayout(); + // + // dgvTM + // + this.dgvTM.AllowUserToAddRows = false; + this.dgvTM.AllowUserToDeleteRows = false; + this.dgvTM.AllowUserToResizeColumns = false; + this.dgvTM.AllowUserToResizeRows = false; + this.dgvTM.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dgvTM.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvTM.Location = new System.Drawing.Point(9, 25); + this.dgvTM.Name = "dgvTM"; + this.dgvTM.Size = new System.Drawing.Size(240, 299); + this.dgvTM.TabIndex = 1; + // + // L_TM + // + this.L_TM.AutoSize = true; + this.L_TM.Location = new System.Drawing.Point(9, 9); + this.L_TM.Name = "L_TM"; + this.L_TM.Size = new System.Drawing.Size(26, 13); + this.L_TM.TabIndex = 2; + this.L_TM.Text = "TM:"; + // + // B_RTM + // + this.B_RTM.Location = new System.Drawing.Point(41, 1); + this.B_RTM.Name = "B_RTM"; + this.B_RTM.Size = new System.Drawing.Size(75, 23); + this.B_RTM.TabIndex = 5; + this.B_RTM.Text = "Randomize"; + this.B_RTM.UseVisualStyleBackColor = true; + this.B_RTM.Click += new System.EventHandler(this.B_RandomTM_Click); + // + // TMEditor7 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(259, 331); + this.Controls.Add(this.B_RTM); + this.Controls.Add(this.L_TM); + this.Controls.Add(this.dgvTM); + this.MaximizeBox = false; + this.MaximumSize = new System.Drawing.Size(520, 670); + this.MinimumSize = new System.Drawing.Size(275, 370); + this.Name = "TMEditor7"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "TM Editor"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Form_Closing); + ((System.ComponentModel.ISupportInitialize)(this.dgvTM)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.DataGridView dgvTM; + private System.Windows.Forms.Label L_TM; + private System.Windows.Forms.Button B_RTM; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen7/TMEditor7.cs b/pk3DS.WinForms/Subforms/Gen7/TMEditor7.cs new file mode 100644 index 0000000000..6e196c97be --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen7/TMEditor7.cs @@ -0,0 +1,155 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Windows.Forms; +using System.Linq; +using pk3DS.Core; + +namespace pk3DS.WinForms; + +public partial class TMEditor7 : Form +{ + public TMEditor7() + { + InitializeComponent(); + if (Main.ExeFSPath == null) { WinFormsUtil.Alert("No exeFS code to load."); Close(); } + string[] files = Directory.GetFiles(Main.ExeFSPath); + if (!File.Exists(files[0]) || !Path.GetFileNameWithoutExtension(files[0]).Contains("code")) { WinFormsUtil.Alert("No .code.bin detected."); Close(); } + data = File.ReadAllBytes(files[0]); + if (data.Length % 0x200 != 0) { WinFormsUtil.Alert(".code.bin not decompressed. Aborting."); Close(); } + offset = Util.IndexOfBytes(data, Signature, 0x400000, 0) + Signature.Length; + if (Main.Config.USUM) + offset += 0x22; + codebin = files[0]; + movelist[0] = ""; + SetupDGV(); + GetList(); + } + + private static readonly byte[] Signature = [0x03, 0x40, 0x03, 0x41, 0x03, 0x42, 0x03, 0x43, 0x03]; // tail end of item::ITEM_CheckBeads + private readonly string codebin; + private readonly string[] movelist = Main.Config.GetText(TextName.MoveNames); + private readonly int offset = 0x0059795A; // Default + private readonly byte[] data; + private int dataoffset; + + private void GetDataOffset() + { + dataoffset = offset; // reset + } + + private void SetupDGV() + { + dgvTM.Columns.Clear(); + var dgvIndex = new DataGridViewTextBoxColumn(); + { + dgvIndex.HeaderText = "Index"; + dgvIndex.DisplayIndex = 0; + dgvIndex.Width = 45; + dgvIndex.ReadOnly = true; + dgvIndex.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; + dgvIndex.SortMode = DataGridViewColumnSortMode.NotSortable; + } + var dgvMove = new DataGridViewComboBoxColumn(); + { + dgvMove.HeaderText = "Move"; + dgvMove.DisplayIndex = 1; + dgvMove.Items.AddRange(movelist); // add only the Names + + dgvMove.Width = 133; + dgvMove.FlatStyle = FlatStyle.Flat; + dgvIndex.SortMode = DataGridViewColumnSortMode.NotSortable; + } + dgvTM.Columns.Add(dgvIndex); + dgvTM.Columns.Add(dgvMove); + } + + private List tms = []; + + private void GetList() + { + tms = []; + dgvTM.Rows.Clear(); + + GetDataOffset(); + for (int i = 0; i < 100; i++) // TMs stored sequentially + tms.Add(BitConverter.ToUInt16(data, dataoffset + (2 * i))); + + ushort[] tmlist = [.. tms]; + for (int i = 0; i < tmlist.Length; i++) + { dgvTM.Rows.Add(); dgvTM.Rows[i].Cells[0].Value = (i + 1).ToString(); dgvTM.Rows[i].Cells[1].Value = movelist[tmlist[i]]; } + } + + private void SetList() + { + // Gather TM/HM list. + tms = []; + for (int i = 0; i < dgvTM.Rows.Count; i++) + tms.Add((ushort)Array.IndexOf(movelist, dgvTM.Rows[i].Cells[1].Value)); + + ushort[] tmlist = [.. tms]; + + // Set TM/HM list in + for (int i = 0; i < 100; i++) + Array.Copy(BitConverter.GetBytes(tmlist[i]), 0, data, offset + (2 * i), 2); + + // Set Move Text Descriptions back into Item Text File + string[] itemDescriptions = Main.Config.GetText(TextName.ItemFlavor); + string[] moveDescriptions = Main.Config.GetText(TextName.MoveFlavor); + for (int i = 1 - 1; i <= 92 - 1; i++) // TM01 - TM92 + itemDescriptions[328 + i] = moveDescriptions[tmlist[i]]; + for (int i = 93 - 1; i <= 95 - 1; i++) // TM92 - TM95 + itemDescriptions[618 + i - 92] = moveDescriptions[tmlist[i]]; + for (int i = 96 - 1; i <= 100 - 1; i++) // TM96 - TM100 + itemDescriptions[690 + i - 95] = moveDescriptions[tmlist[i]]; + Main.Config.SetText(TextName.ItemFlavor, itemDescriptions); + } + + private void Form_Closing(object sender, FormClosingEventArgs e) + { + SetList(); + File.WriteAllBytes(codebin, data); + } + + private void B_RandomTM_Click(object sender, EventArgs e) + { + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomize TMs?", "Move compatibility will be the same as the base TMs.") != DialogResult.Yes) return; + + int[] randomMoves = Enumerable.Range(1, movelist.Length - 1).Select(i => i).ToArray(); + Util.Shuffle(randomMoves); + + int[] banned = [.. Legal.Z_Moves, .. new[] { 165, 464, 621 }]; + int ctr = 0; + + for (int i = 0; i < dgvTM.Rows.Count; i++) + { + int val = Array.IndexOf(movelist, dgvTM.Rows[i].Cells[1].Value); + if (banned.Contains(val)) continue; + while (banned.Contains(randomMoves[ctr])) ctr++; + + dgvTM.Rows[i].Cells[1].Value = movelist[randomMoves[ctr++]]; + } + WinFormsUtil.Alert("Randomized!"); + } + + internal static ushort[] GetTMHMList() + { + if (Main.ExeFSPath == null) + return []; + string[] files = Directory.GetFiles(Main.ExeFSPath); + if (!File.Exists(files[0]) || !Path.GetFileNameWithoutExtension(files[0]).Contains("code")) + return []; + byte[] data = File.ReadAllBytes(files[0]); + int dataoffset = Util.IndexOfBytes(data, Signature, 0x400000, 0) + Signature.Length; + if (data.Length % 0x200 != 0) + return []; + + if (Main.Config.USUM) + dataoffset += 0x22; + List tms = []; + + for (int i = 0; i < 100; i++) // TMs stored sequentially + tms.Add(BitConverter.ToUInt16(data, dataoffset + (2 * i))); + return [.. tms]; + } +} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/TMEditor7.resx b/pk3DS.WinForms/Subforms/Gen7/TMEditor7.resx similarity index 100% rename from pk3DS/Subforms/Gen7/TMEditor7.resx rename to pk3DS.WinForms/Subforms/Gen7/TMEditor7.resx diff --git a/pk3DS.WinForms/Subforms/Gen7/TutorEditor7.Designer.cs b/pk3DS.WinForms/Subforms/Gen7/TutorEditor7.Designer.cs new file mode 100644 index 0000000000..afe0745f16 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen7/TutorEditor7.Designer.cs @@ -0,0 +1,204 @@ +namespace pk3DS.WinForms; + +partial class TutorEditor7 +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle(); + this.B_Randomize = new System.Windows.Forms.Button(); + this.B_Save = new System.Windows.Forms.Button(); + this.B_Cancel = new System.Windows.Forms.Button(); + this.tabPage3 = new System.Windows.Forms.TabPage(); + this.CB_LocationBPMove = new System.Windows.Forms.ComboBox(); + this.label2 = new System.Windows.Forms.Label(); + this.dgvmv = new System.Windows.Forms.DataGridView(); + this.dgvmvBP = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.dgvmvMove = new System.Windows.Forms.DataGridViewComboBoxColumn(); + this.dgvmvIndex = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.tabControl1 = new System.Windows.Forms.TabControl(); + this.tabPage3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dgvmv)).BeginInit(); + this.tabControl1.SuspendLayout(); + this.SuspendLayout(); + // + // B_Randomize + // + this.B_Randomize.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.B_Randomize.Location = new System.Drawing.Point(12, 493); + this.B_Randomize.Name = "B_Randomize"; + this.B_Randomize.Size = new System.Drawing.Size(87, 23); + this.B_Randomize.TabIndex = 3; + this.B_Randomize.Text = "Randomize"; + this.B_Randomize.UseVisualStyleBackColor = true; + this.B_Randomize.Click += new System.EventHandler(this.B_Randomize_Click); + // + // B_Save + // + this.B_Save.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.B_Save.Location = new System.Drawing.Point(265, 493); + this.B_Save.Name = "B_Save"; + this.B_Save.Size = new System.Drawing.Size(68, 23); + this.B_Save.TabIndex = 4; + this.B_Save.Text = "Save"; + this.B_Save.UseVisualStyleBackColor = true; + this.B_Save.Click += new System.EventHandler(this.B_Save_Click); + // + // B_Cancel + // + this.B_Cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.B_Cancel.Location = new System.Drawing.Point(191, 493); + this.B_Cancel.Name = "B_Cancel"; + this.B_Cancel.Size = new System.Drawing.Size(68, 23); + this.B_Cancel.TabIndex = 5; + this.B_Cancel.Text = "Cancel"; + this.B_Cancel.UseVisualStyleBackColor = true; + this.B_Cancel.Click += new System.EventHandler(this.B_Cancel_Click); + // + // tabPage3 + // + this.tabPage3.Controls.Add(this.dgvmv); + this.tabPage3.Controls.Add(this.label2); + this.tabPage3.Controls.Add(this.CB_LocationBPMove); + this.tabPage3.Location = new System.Drawing.Point(4, 22); + this.tabPage3.Name = "tabPage3"; + this.tabPage3.Padding = new System.Windows.Forms.Padding(3); + this.tabPage3.Size = new System.Drawing.Size(317, 446); + this.tabPage3.TabIndex = 2; + this.tabPage3.Text = "Move Tutors"; + this.tabPage3.UseVisualStyleBackColor = true; + // + // CB_LocationBPMove + // + this.CB_LocationBPMove.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.CB_LocationBPMove.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_LocationBPMove.FormattingEnabled = true; + this.CB_LocationBPMove.Location = new System.Drawing.Point(60, 3); + this.CB_LocationBPMove.Name = "CB_LocationBPMove"; + this.CB_LocationBPMove.Size = new System.Drawing.Size(254, 21); + this.CB_LocationBPMove.TabIndex = 11; + this.CB_LocationBPMove.SelectedIndexChanged += new System.EventHandler(this.ChangeIndexBPMove); + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(6, 6); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(51, 13); + this.label2.TabIndex = 12; + this.label2.Text = "Location:"; + // + // dgvmv + // + this.dgvmv.AllowUserToAddRows = false; + this.dgvmv.AllowUserToDeleteRows = false; + this.dgvmv.AllowUserToResizeColumns = false; + this.dgvmv.AllowUserToResizeRows = false; + this.dgvmv.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dgvmv.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgvmv.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { + this.dgvmvIndex, + this.dgvmvMove, + this.dgvmvBP}); + this.dgvmv.Location = new System.Drawing.Point(0, 27); + this.dgvmv.Name = "dgvmv"; + this.dgvmv.Size = new System.Drawing.Size(317, 419); + this.dgvmv.TabIndex = 14; + // + // dgvmvBP + // + this.dgvmvBP.HeaderText = "Price"; + this.dgvmvBP.MaxInputLength = 3; + this.dgvmvBP.Name = "dgvmvBP"; + this.dgvmvBP.Width = 65; + // + // dgvmvMove + // + this.dgvmvMove.FlatStyle = System.Windows.Forms.FlatStyle.Flat; + this.dgvmvMove.HeaderText = "Move"; + this.dgvmvMove.Name = "dgvmvMove"; + this.dgvmvMove.Width = 135; + // + // dgvmvIndex + // + dataGridViewCellStyle7.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + this.dgvmvIndex.DefaultCellStyle = dataGridViewCellStyle7; + this.dgvmvIndex.HeaderText = "Index"; + this.dgvmvIndex.MaxInputLength = 3; + this.dgvmvIndex.Name = "dgvmvIndex"; + this.dgvmvIndex.ReadOnly = true; + this.dgvmvIndex.Width = 45; + // + // tabControl1 + // + this.tabControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.tabControl1.Controls.Add(this.tabPage3); + this.tabControl1.Location = new System.Drawing.Point(12, 12); + this.tabControl1.Name = "tabControl1"; + this.tabControl1.SelectedIndex = 0; + this.tabControl1.Size = new System.Drawing.Size(325, 472); + this.tabControl1.TabIndex = 15; + // + // TutorEditor7 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(344, 528); + this.Controls.Add(this.tabControl1); + this.Controls.Add(this.B_Cancel); + this.Controls.Add(this.B_Save); + this.Controls.Add(this.B_Randomize); + this.MaximizeBox = false; + this.MinimumSize = new System.Drawing.Size(360, 300); + this.Name = "TutorEditor7"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Tutor Editor"; + this.tabPage3.ResumeLayout(false); + this.tabPage3.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.dgvmv)).EndInit(); + this.tabControl1.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + private System.Windows.Forms.Button B_Randomize; + private System.Windows.Forms.Button B_Save; + private System.Windows.Forms.Button B_Cancel; + private System.Windows.Forms.TabPage tabPage3; + private System.Windows.Forms.DataGridView dgvmv; + private System.Windows.Forms.DataGridViewTextBoxColumn dgvmvIndex; + private System.Windows.Forms.DataGridViewComboBoxColumn dgvmvMove; + private System.Windows.Forms.DataGridViewTextBoxColumn dgvmvBP; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.ComboBox CB_LocationBPMove; + private System.Windows.Forms.TabControl tabControl1; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen7/TutorEditor7.cs b/pk3DS.WinForms/Subforms/Gen7/TutorEditor7.cs new file mode 100644 index 0000000000..5bcdca0cc6 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen7/TutorEditor7.cs @@ -0,0 +1,99 @@ +using pk3DS.Core; +using System; +using System.IO; +using System.Linq; +using System.Windows.Forms; + +namespace pk3DS.WinForms; + +public partial class TutorEditor7 : Form +{ + private readonly string CROPath = Path.Combine(Main.RomFSPath, "Shop.cro"); + + public TutorEditor7() + { + if (!File.Exists(CROPath)) + { + WinFormsUtil.Error("CRO does not exist! Closing.", CROPath); + Close(); + } + InitializeComponent(); + + data = File.ReadAllBytes(CROPath); + len_BPTutor = data.Skip(0x52D2).Take(4).ToArray(); + + SetupDGV(); + CB_LocationBPMove.Items.AddRange(locationsTutor); + CB_LocationBPMove.SelectedIndex = 0; + } + + private const int ofs_BPTutor = 0x54DE; + private readonly byte[] len_BPTutor; + + private readonly string[] movelist = Main.Config.GetText(TextName.MoveNames); + private readonly byte[] data; + + private readonly string[] locationsTutor = + [ + "Big Wave Beach", + "Heahea Beach", + "Ula'ula Beach", + "Battle Tree", + ]; + + private void B_Save_Click(object sender, EventArgs e) + { + if (entryBPMove > -1) SetListBPMove(); + File.WriteAllBytes(CROPath, data); + Close(); + } + + private void B_Cancel_Click(object sender, EventArgs e) => Close(); + + private void SetupDGV() + { + dgvmvMove.Items.AddRange(movelist); // add only the Names + } + + private int entryBPMove = -1; + + private void ChangeIndexBPMove(object sender, EventArgs e) + { + if (entryBPMove > -1) SetListBPMove(); + entryBPMove = CB_LocationBPMove.SelectedIndex; + GetListBPMove(); + } + + private void GetListBPMove() + { + dgvmv.Rows.Clear(); + int count = len_BPTutor[entryBPMove]; + dgvmv.Rows.Add(count); + var ofs = ofs_BPTutor + (len_BPTutor.Take(entryBPMove).Sum(z => z) * 4); + for (int i = 0; i < count; i++) + { + dgvmv.Rows[i].Cells[0].Value = i.ToString(); + dgvmv.Rows[i].Cells[1].Value = movelist[BitConverter.ToUInt16(data, ofs + (4 * i))]; + dgvmv.Rows[i].Cells[2].Value = BitConverter.ToUInt16(data, ofs + (4 * i) + 2).ToString(); + } + } + + private void SetListBPMove() + { + int count = dgvmv.Rows.Count; + var ofs = ofs_BPTutor + (len_BPTutor.Take(entryBPMove).Sum(z => z) * 4); + for (int i = 0; i < count; i++) + { + int item = Array.IndexOf(movelist, dgvmv.Rows[i].Cells[1].Value); + Array.Copy(BitConverter.GetBytes((ushort)item), 0, data, ofs + (4 * i), 2); + string p = dgvmv.Rows[i].Cells[2].Value.ToString(); + if (int.TryParse(p, out var price)) + Array.Copy(BitConverter.GetBytes((ushort)price), 0, data, ofs + (4 * i) + 2, 2); + } + } + + private void B_Randomize_Click(object sender, EventArgs e) + { + WinFormsUtil.Alert("Not currently implemented."); + } +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen7/TutorEditor7.resx b/pk3DS.WinForms/Subforms/Gen7/TutorEditor7.resx new file mode 100644 index 0000000000..059ea06bd3 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen7/TutorEditor7.resx @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + True + + + True + + + True + + \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen7/TypeChart7.Designer.cs b/pk3DS.WinForms/Subforms/Gen7/TypeChart7.Designer.cs new file mode 100644 index 0000000000..56a56e5f1c --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen7/TypeChart7.Designer.cs @@ -0,0 +1,108 @@ +namespace pk3DS.WinForms; + +partial class TypeChart7 +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.PB_Chart = new System.Windows.Forms.PictureBox(); + this.B_Cancel = new System.Windows.Forms.Button(); + this.B_Save = new System.Windows.Forms.Button(); + this.L_Hover = new System.Windows.Forms.Label(); + ((System.ComponentModel.ISupportInitialize)(this.PB_Chart)).BeginInit(); + this.SuspendLayout(); + // + // PB_Chart + // + this.PB_Chart.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.PB_Chart.Location = new System.Drawing.Point(12, 12); + this.PB_Chart.Name = "PB_Chart"; + this.PB_Chart.Size = new System.Drawing.Size(579, 579); + this.PB_Chart.TabIndex = 0; + this.PB_Chart.TabStop = false; + this.PB_Chart.MouseClick += new System.Windows.Forms.MouseEventHandler(this.ClickMouse); + this.PB_Chart.MouseMove += new System.Windows.Forms.MouseEventHandler(this.MoveMouse); + // + // B_Cancel + // + this.B_Cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.B_Cancel.Location = new System.Drawing.Point(436, 602); + this.B_Cancel.Name = "B_Cancel"; + this.B_Cancel.Size = new System.Drawing.Size(75, 23); + this.B_Cancel.TabIndex = 467; + this.B_Cancel.Text = "Cancel"; + this.B_Cancel.UseVisualStyleBackColor = true; + this.B_Cancel.Click += new System.EventHandler(this.B_Cancel_Click); + // + // B_Save + // + this.B_Save.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.B_Save.Location = new System.Drawing.Point(517, 602); + this.B_Save.Name = "B_Save"; + this.B_Save.Size = new System.Drawing.Size(75, 23); + this.B_Save.TabIndex = 466; + this.B_Save.Text = "Save"; + this.B_Save.UseVisualStyleBackColor = true; + this.B_Save.Click += new System.EventHandler(this.B_Save_Click); + // + // L_Hover + // + this.L_Hover.AutoSize = true; + this.L_Hover.Location = new System.Drawing.Point(12, 607); + this.L_Hover.Name = "L_Hover"; + this.L_Hover.Size = new System.Drawing.Size(117, 13); + this.L_Hover.TabIndex = 468; + this.L_Hover.Text = "Effectiveness Summary"; + // + // TypeChart7 + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(604, 637); + this.Controls.Add(this.L_Hover); + this.Controls.Add(this.B_Cancel); + this.Controls.Add(this.B_Save); + this.Controls.Add(this.PB_Chart); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.MaximizeBox = false; + this.MinimumSize = new System.Drawing.Size(355, 220); + this.Name = "TypeChart7"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Type Chart Editor"; + ((System.ComponentModel.ISupportInitialize)(this.PB_Chart)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.PictureBox PB_Chart; + private System.Windows.Forms.Button B_Cancel; + private System.Windows.Forms.Button B_Save; + private System.Windows.Forms.Label L_Hover; + +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/Gen7/TypeChart7.cs b/pk3DS.WinForms/Subforms/Gen7/TypeChart7.cs new file mode 100644 index 0000000000..52bb6db098 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen7/TypeChart7.cs @@ -0,0 +1,103 @@ +using pk3DS.Core; +using pk3DS.Core.Structures; +using System; +using System.IO; +using System.Windows.Forms; + +namespace pk3DS.WinForms; + +public partial class TypeChart7 : Form +{ + private readonly int offset = Main.Config.ORAS ? 0x000DB428 : 0x000D12A8; + private readonly string codebin; + private readonly byte[] chart = new byte[TypeCount * TypeCount]; + private readonly byte[] exefs; + private readonly string[] types = Main.Config.GetText(TextName.Types); + private const int TypeCount = 18; + private const int TypeWidth = 32; + + public TypeChart7() + { + if (Main.ExeFSPath == null) + { WinFormsUtil.Alert("No exeFS code to load."); Close(); } + + string[] files = Directory.GetFiles(Main.ExeFSPath); + if (!File.Exists(files[0]) || !Path.GetFileNameWithoutExtension(files[0]).Contains("code")) + { WinFormsUtil.Alert("No .code.bin detected."); Close(); } + + InitializeComponent(); + + codebin = files[0]; + exefs = File.ReadAllBytes(codebin); + if (exefs.Length % 0x200 != 0) { WinFormsUtil.Alert(".code.bin not decompressed. Aborting."); Close(); } + offset = Util.IndexOfBytes(exefs, Signature, 0x400000, 0) + Signature.Length; + + Array.Copy(exefs, offset, chart, 0, chart.Length); + PopulateChart(); + } + + private readonly byte[] Signature = + [ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0xC3, 0x00, 0x00, 0x00, 0xCB, 0x00, 0x00, 0x00, 0xD3, 0x00, 0x00, 0x00, 0xDB, 0x00, 0x00, 0x00, + 0xF3, 0x00, 0x00, 0x00, 0xFB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + ]; + + private void PopulateChart() + { + PB_Chart.Image = TypeChart.GetGrid(TypeWidth, TypeCount, chart); + } + + private void B_Save_Click(object sender, EventArgs e) + { + chart.CopyTo(exefs, offset); + File.WriteAllBytes(codebin, exefs); + Close(); + } + + private void B_Cancel_Click(object sender, EventArgs e) + { + Close(); + } + + private void MoveMouse(object sender, MouseEventArgs e) + { + TypeChart6.GetCoordinate((PictureBox)sender, e, out int X, out int Y); + int index = (Y * TypeCount) + X; + if (index >= chart.Length) + return; + UpdateLabel(X, Y, chart[index]); + } + + private void ClickMouse(object sender, MouseEventArgs e) + { + TypeChart6.GetCoordinate((PictureBox)sender, e, out int X, out int Y); + int index = (Y * TypeCount) + X; + if (index >= chart.Length) + return; + + chart[index] = TypeChart6.ToggleEffectiveness(chart[index], e.Button == MouseButtons.Left); + + UpdateLabel(X, Y, chart[index]); + PopulateChart(); + } + + private void UpdateLabel(int X, int Y, int value) + { + if (value >= effects.Length || X >= types.Length || Y >= types.Length) + return; // clicking and moving outside the box has invalid values + L_Hover.Text = $"[{X:00}x{Y:00}: {value:00}] {types[Y]} attacking {types[X]} {effects[value]}"; + } + + private readonly string[] effects = + [ + "has no effect!", + "", + "is not very effective.", + "", + "does regular damage.", + "", "", "", + "is super effective!", + ]; +} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/TypeChart7.resx b/pk3DS.WinForms/Subforms/Gen7/TypeChart7.resx similarity index 100% rename from pk3DS/Subforms/Gen7/TypeChart7.resx rename to pk3DS.WinForms/Subforms/Gen7/TypeChart7.resx diff --git a/pk3DS.WinForms/Subforms/Gen7/Wild/Wild7Randomizer.cs b/pk3DS.WinForms/Subforms/Gen7/Wild/Wild7Randomizer.cs new file mode 100644 index 0000000000..2efb82fa31 --- /dev/null +++ b/pk3DS.WinForms/Subforms/Gen7/Wild/Wild7Randomizer.cs @@ -0,0 +1,88 @@ +using System.Collections.Generic; +using System.Linq; + +using pk3DS.Core; +using pk3DS.Core.Randomizers; + +namespace pk3DS.WinForms; + +public class Wild7Randomizer +{ + public SpeciesRandomizer RandSpec { private get; set; } + public FormRandomizer RandForm { private get; set; } + + public int TableRandomizationOption { private get; set; } + public decimal LevelAmplifier { private get; set; } + public bool ModifyLevel { private get; set; } + + private void RandomizeTable7(EncounterTable Table, int slotStart, int slotStop) + { + int end = slotStop < 0 ? Table.Encounter7s.Length : slotStop; + for (int s = slotStart; s < end; s++) + { + var EncounterSet = Table.Encounter7s[s]; + foreach (var enc in EncounterSet.Where(enc => enc.Species != 0)) + { + enc.Species = (uint)RandSpec.GetRandomSpecies((int)enc.Species); + enc.Forme = (uint)RandForm.GetRandomForme((int)enc.Species); + } + } + } + + public void Execute(IEnumerable Areas, LazyGARCFile encdata) + { + GetTableRandSettings((RandOption)TableRandomizationOption, out int slotStart, out int slotStop, out bool copy); + + foreach (var Map in Areas) + { + foreach (var Table in Map.Tables) + { + if (ModifyLevel) + { + Table.MinLevel = Randomizer.GetModifiedLevel(Table.MinLevel, LevelAmplifier); + Table.MaxLevel = Randomizer.GetModifiedLevel(Table.MaxLevel, LevelAmplifier); + } + + RandomizeTable7(Table, slotStart, slotStop); + if (copy) // copy row 0 to rest + Table.CopySlotsToSOS(); + + Table.Write(); + } + encdata[Map.FileNumber] = Area7.GetDayNightTableBinary(Map.Tables); + } + } + + private static void GetTableRandSettings(RandOption option, out int slotStart, out int slotStop, out bool copy) + { + copy = false; + switch (option) + { + default: // All + slotStart = 0; + slotStop = -1; + break; + case RandOption.Regular_Only: + slotStart = 0; + slotStop = 1; + break; + case RandOption.SOS_Only: + slotStart = 1; + slotStop = -1; + break; + case RandOption.Regular_CopySOS: + slotStart = 0; + slotStop = 1; + copy = true; + break; + } + } + + private enum RandOption + { + All = 0, + Regular_Only = 1, + SOS_Only = 2, + Regular_CopySOS = 3, + } +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/ShinyRate.Designer.cs b/pk3DS.WinForms/Subforms/ShinyRate.Designer.cs new file mode 100644 index 0000000000..91d0d5cbb2 --- /dev/null +++ b/pk3DS.WinForms/Subforms/ShinyRate.Designer.cs @@ -0,0 +1,257 @@ +namespace pk3DS.WinForms; + +partial class ShinyRate +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ShinyRate)); + this.L_Note = new System.Windows.Forms.Label(); + this.NUD_Rerolls = new System.Windows.Forms.NumericUpDown(); + this.L_Overall = new System.Windows.Forms.Label(); + this.B_Cancel = new System.Windows.Forms.Button(); + this.B_Save = new System.Windows.Forms.Button(); + this.L_Rerolls = new System.Windows.Forms.Label(); + this.B_RestoreOriginal = new System.Windows.Forms.Button(); + this.NUD_Rate = new System.Windows.Forms.NumericUpDown(); + this.L_RerollCount = new System.Windows.Forms.Label(); + this.L_RerollOverall = new System.Windows.Forms.Label(); + this.GB_RerollHelper = new System.Windows.Forms.GroupBox(); + this.GB_Rerolls = new System.Windows.Forms.GroupBox(); + this.label1 = new System.Windows.Forms.Label(); + this.CHK_EverythingShiny = new System.Windows.Forms.CheckBox(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Rerolls)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Rate)).BeginInit(); + this.GB_RerollHelper.SuspendLayout(); + this.GB_Rerolls.SuspendLayout(); + this.SuspendLayout(); + // + // L_Note + // + this.L_Note.AutoSize = true; + this.L_Note.Location = new System.Drawing.Point(12, 9); + this.L_Note.Name = "L_Note"; + this.L_Note.Size = new System.Drawing.Size(340, 91); + this.L_Note.TabIndex = 0; + this.L_Note.Text = resources.GetString("L_Note.Text"); + // + // NUD_Rerolls + // + this.NUD_Rerolls.Location = new System.Drawing.Point(54, 21); + this.NUD_Rerolls.Maximum = new decimal(new int[] { + 65535, + 0, + 0, + 0}); + this.NUD_Rerolls.Name = "NUD_Rerolls"; + this.NUD_Rerolls.Size = new System.Drawing.Size(65, 20); + this.NUD_Rerolls.TabIndex = 1; + this.NUD_Rerolls.Value = new decimal(new int[] { + 125, + 0, + 0, + 0}); + this.NUD_Rerolls.ValueChanged += new System.EventHandler(this.ChangeRerolls); + // + // L_Overall + // + this.L_Overall.AutoSize = true; + this.L_Overall.ForeColor = System.Drawing.SystemColors.ControlText; + this.L_Overall.Location = new System.Drawing.Point(122, 23); + this.L_Overall.Name = "L_Overall"; + this.L_Overall.Size = new System.Drawing.Size(28, 13); + this.L_Overall.TabIndex = 2; + this.L_Overall.Text = "PCT"; + // + // B_Cancel + // + this.B_Cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.B_Cancel.Location = new System.Drawing.Point(216, 236); + this.B_Cancel.Name = "B_Cancel"; + this.B_Cancel.Size = new System.Drawing.Size(75, 23); + this.B_Cancel.TabIndex = 4; + this.B_Cancel.Text = "Cancel"; + this.B_Cancel.UseVisualStyleBackColor = true; + this.B_Cancel.Click += new System.EventHandler(this.B_Cancel_Click); + // + // B_Save + // + this.B_Save.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.B_Save.Location = new System.Drawing.Point(297, 236); + this.B_Save.Name = "B_Save"; + this.B_Save.Size = new System.Drawing.Size(75, 23); + this.B_Save.TabIndex = 3; + this.B_Save.Text = "Save"; + this.B_Save.UseVisualStyleBackColor = true; + this.B_Save.Click += new System.EventHandler(this.B_Save_Click); + // + // L_Rerolls + // + this.L_Rerolls.AutoSize = true; + this.L_Rerolls.ForeColor = System.Drawing.SystemColors.ControlText; + this.L_Rerolls.Location = new System.Drawing.Point(6, 23); + this.L_Rerolls.Name = "L_Rerolls"; + this.L_Rerolls.Size = new System.Drawing.Size(42, 13); + this.L_Rerolls.TabIndex = 5; + this.L_Rerolls.Text = "Rerolls:"; + // + // B_RestoreOriginal + // + this.B_RestoreOriginal.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.B_RestoreOriginal.Location = new System.Drawing.Point(15, 236); + this.B_RestoreOriginal.Name = "B_RestoreOriginal"; + this.B_RestoreOriginal.Size = new System.Drawing.Size(168, 23); + this.B_RestoreOriginal.TabIndex = 6; + this.B_RestoreOriginal.Text = "Restore Original Rate"; + this.B_RestoreOriginal.UseVisualStyleBackColor = true; + this.B_RestoreOriginal.Click += new System.EventHandler(this.B_RestoreOriginal_Click); + // + // NUD_Rate + // + this.NUD_Rate.DecimalPlaces = 2; + this.NUD_Rate.Increment = new decimal(new int[] { + 1, + 0, + 0, + 65536}); + this.NUD_Rate.Location = new System.Drawing.Point(81, 13); + this.NUD_Rate.Name = "NUD_Rate"; + this.NUD_Rate.Size = new System.Drawing.Size(65, 20); + this.NUD_Rate.TabIndex = 7; + this.NUD_Rate.ValueChanged += new System.EventHandler(this.ChangePercent); + // + // L_RerollCount + // + this.L_RerollCount.AutoSize = true; + this.L_RerollCount.Location = new System.Drawing.Point(46, 36); + this.L_RerollCount.Name = "L_RerollCount"; + this.L_RerollCount.Size = new System.Drawing.Size(47, 13); + this.L_RerollCount.TabIndex = 8; + this.L_RerollCount.Text = "Count: 0"; + // + // L_RerollOverall + // + this.L_RerollOverall.AutoSize = true; + this.L_RerollOverall.Location = new System.Drawing.Point(24, 15); + this.L_RerollOverall.Name = "L_RerollOverall"; + this.L_RerollOverall.Size = new System.Drawing.Size(51, 13); + this.L_RerollOverall.TabIndex = 9; + this.L_RerollOverall.Text = "Overall%:"; + // + // GB_RerollHelper + // + this.GB_RerollHelper.Controls.Add(this.NUD_Rate); + this.GB_RerollHelper.Controls.Add(this.L_RerollOverall); + this.GB_RerollHelper.Controls.Add(this.L_RerollCount); + this.GB_RerollHelper.Location = new System.Drawing.Point(210, 125); + this.GB_RerollHelper.Name = "GB_RerollHelper"; + this.GB_RerollHelper.Size = new System.Drawing.Size(156, 53); + this.GB_RerollHelper.TabIndex = 11; + this.GB_RerollHelper.TabStop = false; + this.GB_RerollHelper.Text = "Reroll Helper"; + // + // GB_Rerolls + // + this.GB_Rerolls.Controls.Add(this.NUD_Rerolls); + this.GB_Rerolls.Controls.Add(this.L_Rerolls); + this.GB_Rerolls.Controls.Add(this.L_Overall); + this.GB_Rerolls.ForeColor = System.Drawing.Color.Red; + this.GB_Rerolls.Location = new System.Drawing.Point(6, 125); + this.GB_Rerolls.Name = "GB_Rerolls"; + this.GB_Rerolls.Size = new System.Drawing.Size(171, 53); + this.GB_Rerolls.TabIndex = 12; + this.GB_Rerolls.TabStop = false; + this.GB_Rerolls.Text = "PID Generation Loop Rerolls"; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(12, 181); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(263, 52); + this.label1.TabIndex = 13; + this.label1.Text = "Note:\r\nThe above reroll count will overwrite the existing code.\r\n\r\nTo revert chan" + + "ges, use the button below."; + // + // CHK_EverythingShiny + // + this.CHK_EverythingShiny.AutoSize = true; + this.CHK_EverythingShiny.Location = new System.Drawing.Point(281, 184); + this.CHK_EverythingShiny.Name = "CHK_EverythingShiny"; + this.CHK_EverythingShiny.Size = new System.Drawing.Size(96, 30); + this.CHK_EverythingShiny.TabIndex = 14; + this.CHK_EverythingShiny.Text = "EVERYTHING\r\nSHINY"; + this.CHK_EverythingShiny.UseVisualStyleBackColor = true; + // + // ShinyRate + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(384, 271); + this.Controls.Add(this.CHK_EverythingShiny); + this.Controls.Add(this.label1); + this.Controls.Add(this.GB_Rerolls); + this.Controls.Add(this.GB_RerollHelper); + this.Controls.Add(this.B_RestoreOriginal); + this.Controls.Add(this.B_Cancel); + this.Controls.Add(this.B_Save); + this.Controls.Add(this.L_Note); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.MaximizeBox = false; + this.MaximumSize = new System.Drawing.Size(400, 310); + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size(400, 150); + this.Name = "ShinyRate"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Shiny Rate Editor"; + ((System.ComponentModel.ISupportInitialize)(this.NUD_Rerolls)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Rate)).EndInit(); + this.GB_RerollHelper.ResumeLayout(false); + this.GB_RerollHelper.PerformLayout(); + this.GB_Rerolls.ResumeLayout(false); + this.GB_Rerolls.PerformLayout(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Label L_Note; + private System.Windows.Forms.NumericUpDown NUD_Rerolls; + private System.Windows.Forms.Label L_Overall; + private System.Windows.Forms.Button B_Cancel; + private System.Windows.Forms.Button B_Save; + private System.Windows.Forms.Label L_Rerolls; + private System.Windows.Forms.Button B_RestoreOriginal; + private System.Windows.Forms.NumericUpDown NUD_Rate; + private System.Windows.Forms.Label L_RerollCount; + private System.Windows.Forms.Label L_RerollOverall; + private System.Windows.Forms.GroupBox GB_RerollHelper; + private System.Windows.Forms.GroupBox GB_Rerolls; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.CheckBox CHK_EverythingShiny; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/ShinyRate.cs b/pk3DS.WinForms/Subforms/ShinyRate.cs new file mode 100644 index 0000000000..9762716cb7 --- /dev/null +++ b/pk3DS.WinForms/Subforms/ShinyRate.cs @@ -0,0 +1,170 @@ +using pk3DS.Core; +using System; +using System.Collections.Generic; +using System.IO; +using System.Windows.Forms; + +namespace pk3DS.WinForms; + +public partial class ShinyRate : Form +{ + public ShinyRate() + { + InitializeComponent(); + if (Main.ExeFSPath == null) { WinFormsUtil.Alert("No exeFS code to load."); Close(); } + string[] files = Directory.GetFiles(Main.ExeFSPath); + if (!File.Exists(files[0]) || !Path.GetFileNameWithoutExtension(files[0]).Contains("code")) { WinFormsUtil.Alert("No .code.bin detected."); Close(); } + codebin = files[0]; + exefsData = File.ReadAllBytes(codebin); + if (exefsData.Length % 0x200 != 0) { WinFormsUtil.Alert(".code.bin not decompressed. Aborting."); Close(); } + + // Load instruction set + byte[] raw = Core.Properties.Resources.asm_mov; + for (int i = 0; i < raw.Length; i += 4) + { + byte[] data = new byte[2]; + Array.Copy(raw, i + 2, data, 0, 2); + InstructionList.Add(new Instruction(BitConverter.ToUInt16(raw, i), data)); + } + + // Fetch Offset + byte[] pattern = [0x01, 0x50, 0x85, 0xE2, 0x05, 0x00, 0x50, 0xE1, 0xDE, 0xFF, 0xFF, 0xCA]; + offset = Util.IndexOfBytes(exefsData, pattern, 0, 0) - 4; + if (offset < 0) + { + WinFormsUtil.Alert("Unable to find PID Generation routine.", "Closing."); + Close(); + } + if (exefsData[offset] != 0x23) // already patched + { + uint val = BitConverter.ToUInt16(exefsData, offset); + var instruction = InstructionList.Find(z => z.ArgVal == val); + if (instruction == null) + { + WinFormsUtil.Alert(".code.bin was modified externally.", "Existing value not loaded."); + } + else + { + WinFormsUtil.Alert(".code.bin was already patched for shiny rate.", "Loaded existing value."); + NUD_Rerolls.Value = instruction.Value; + } + modified = true; + } + ChangeRerolls(null, null); + + CheckAlwaysShiny(); + } + + private readonly List InstructionList = []; + private readonly bool modified; + private readonly string codebin; + private readonly int offset; + private readonly byte[] exefsData; + + private class Instruction + { + public readonly int Value; + private readonly byte[] Argument; + public readonly ushort ArgVal; + + public Instruction(int val, byte[] arg) + { + Value = val; + Argument = arg; + ArgVal = BitConverter.ToUInt16(Argument, 0); + } + + public byte[] Bytes + { + get + { + var bytes = new byte[] { 0, 0, 0xA0, 0xE3 }; + Argument.CopyTo(bytes, 0); + return bytes; + } + } + } + + private int alwaysIndex; + + private void CheckAlwaysShiny() + { + byte[] pattern = [0x00, 0x20, 0x22, 0xE0, 0x02, 0x30, 0x21, 0xE2, 0x03, 0x20, 0x92, 0xE1, 0x1C, 0x00, 0x00]; + int index = alwaysIndex = Util.IndexOfBytes(exefsData, pattern, 0, 0) + pattern.Length; + + if (index < 0) + { + CHK_EverythingShiny.Enabled = CHK_EverythingShiny.Visible = false; + return; + } + + bool original = exefsData[index] == 0x0A; + bool always = exefsData[index] == 0xEA; + + if (!original && !always) // oh no + { + CHK_EverythingShiny.Enabled = CHK_EverythingShiny.Visible = false; + return; + } + + CHK_EverythingShiny.Checked = always; + } + + private void B_Cancel_Click(object sender, EventArgs e) => Close(); + + private void B_Save_Click(object sender, EventArgs e) + { + WriteCodePatch(); + if (CHK_EverythingShiny.Enabled) + exefsData[alwaysIndex] = CHK_EverythingShiny.Checked ? (byte)0xEA : (byte)0x0A; + File.WriteAllBytes(codebin, exefsData); + Close(); + } + + private void ChangeRerolls(object sender, EventArgs e) + { + int count = (int)NUD_Rerolls.Value; + const int bc = 4096; + var pct = 1 - Math.Pow((float)(bc - 1) / bc, count); + L_Overall.Text = $"~{pct:P}"; + } + + private void WriteCodePatch() + { + // Overwrite the "load input argument value for reroll count" so that it loads a constant value. + // 23 00 D4 E5 is then replaced with the instruction MOV R0, $value + // $value is the amount of PID rerolls to iterate for. + + int rerolls = (int)NUD_Rerolls.Value; + if (rerolls > ushort.MaxValue) + rerolls = ushort.MaxValue; + // lazy precomputed table for MOV0 up to 9000, lol + var instruction = InstructionList.Find(z => z.Value >= rerolls) ?? InstructionList[^1]; + byte[] data = instruction.Bytes; + data.CopyTo(exefsData, offset); + + if (instruction.Value != rerolls) + WinFormsUtil.Alert("Specified reroll count increased to the next highest supported value.", $"{rerolls} -> {instruction.Value}"); + } + + private void B_RestoreOriginal_Click(object sender, EventArgs e) + { + if (modified) + { + new byte[] { 0x23, 0x00, 0xD4, 0xE5 }.CopyTo(exefsData, offset); + File.WriteAllBytes(codebin, exefsData); + } + Close(); + } + + private void ChangePercent(object sender, EventArgs e) + { + var pct = NUD_Rate.Value; + const int bc = 4096; + + var inv = (int)Math.Log(1 - ((float)pct / 100), (float)(bc - 1) / bc); + if (pct == 0) + pct = 0.00001m; // arbitrary nonzero + L_RerollCount.Text = $"Count: {inv:0} = 1:{(int)(1 / (pct / 100))}"; + } +} \ No newline at end of file diff --git a/pk3DS/Subforms/ShinyRate.resx b/pk3DS.WinForms/Subforms/ShinyRate.resx similarity index 100% rename from pk3DS/Subforms/ShinyRate.resx rename to pk3DS.WinForms/Subforms/ShinyRate.resx diff --git a/pk3DS.WinForms/Subforms/TextEditor.Designer.cs b/pk3DS.WinForms/Subforms/TextEditor.Designer.cs new file mode 100644 index 0000000000..c1282c0d79 --- /dev/null +++ b/pk3DS.WinForms/Subforms/TextEditor.Designer.cs @@ -0,0 +1,165 @@ +namespace pk3DS.WinForms; + +partial class TextEditor +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.CB_Entry = new System.Windows.Forms.ComboBox(); + this.dgv = new System.Windows.Forms.DataGridView(); + this.B_AddLine = new System.Windows.Forms.Button(); + this.B_RemoveLine = new System.Windows.Forms.Button(); + this.B_Export = new System.Windows.Forms.Button(); + this.label1 = new System.Windows.Forms.Label(); + this.B_Import = new System.Windows.Forms.Button(); + this.B_Randomize = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.dgv)).BeginInit(); + this.SuspendLayout(); + // + // CB_Entry + // + this.CB_Entry.FormattingEnabled = true; + this.CB_Entry.Location = new System.Drawing.Point(68, 7); + this.CB_Entry.Name = "CB_Entry"; + this.CB_Entry.Size = new System.Drawing.Size(80, 21); + this.CB_Entry.TabIndex = 5; + this.CB_Entry.SelectedIndexChanged += new System.EventHandler(this.ChangeEntry); + // + // dgv + // + this.dgv.AllowUserToAddRows = false; + this.dgv.AllowUserToDeleteRows = false; + this.dgv.AllowUserToResizeRows = false; + this.dgv.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.dgv.BackgroundColor = System.Drawing.SystemColors.Control; + this.dgv.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.dgv.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dgv.Location = new System.Drawing.Point(12, 33); + this.dgv.Name = "dgv"; + this.dgv.RowHeadersVisible = false; + this.dgv.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.CellSelect; + this.dgv.ShowEditingIcon = false; + this.dgv.Size = new System.Drawing.Size(610, 317); + this.dgv.TabIndex = 0; + // + // B_AddLine + // + this.B_AddLine.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.B_AddLine.Location = new System.Drawing.Point(437, 6); + this.B_AddLine.Name = "B_AddLine"; + this.B_AddLine.Size = new System.Drawing.Size(90, 23); + this.B_AddLine.TabIndex = 6; + this.B_AddLine.Text = "Add Line After"; + this.B_AddLine.UseVisualStyleBackColor = true; + this.B_AddLine.Click += new System.EventHandler(this.B_AddLine_Click); + // + // B_RemoveLine + // + this.B_RemoveLine.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.B_RemoveLine.Location = new System.Drawing.Point(533, 6); + this.B_RemoveLine.Name = "B_RemoveLine"; + this.B_RemoveLine.Size = new System.Drawing.Size(90, 23); + this.B_RemoveLine.TabIndex = 7; + this.B_RemoveLine.Text = "Remove Line"; + this.B_RemoveLine.UseVisualStyleBackColor = true; + this.B_RemoveLine.Click += new System.EventHandler(this.B_RemoveLine_Click); + // + // B_Export + // + this.B_Export.Location = new System.Drawing.Point(154, 6); + this.B_Export.Name = "B_Export"; + this.B_Export.Size = new System.Drawing.Size(90, 23); + this.B_Export.TabIndex = 8; + this.B_Export.Text = "Export All (.txt)"; + this.B_Export.UseVisualStyleBackColor = true; + this.B_Export.Click += new System.EventHandler(this.B_Export_Click); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(12, 10); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(50, 13); + this.label1.TabIndex = 9; + this.label1.Text = "Text File:"; + // + // B_Import + // + this.B_Import.Location = new System.Drawing.Point(250, 6); + this.B_Import.Name = "B_Import"; + this.B_Import.Size = new System.Drawing.Size(90, 23); + this.B_Import.TabIndex = 10; + this.B_Import.Text = "Import All (.txt)"; + this.B_Import.UseVisualStyleBackColor = true; + this.B_Import.Click += new System.EventHandler(this.B_Import_Click); + // + // B_Randomize + // + this.B_Randomize.Location = new System.Drawing.Point(346, 6); + this.B_Randomize.Name = "B_Randomize"; + this.B_Randomize.Size = new System.Drawing.Size(70, 23); + this.B_Randomize.TabIndex = 11; + this.B_Randomize.Text = "Randomize"; + this.B_Randomize.UseVisualStyleBackColor = true; + this.B_Randomize.Click += new System.EventHandler(this.B_Randomize_Click); + // + // xytext + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(634, 362); + this.Controls.Add(this.B_Randomize); + this.Controls.Add(this.B_Import); + this.Controls.Add(this.label1); + this.Controls.Add(this.B_Export); + this.Controls.Add(this.B_RemoveLine); + this.Controls.Add(this.B_AddLine); + this.Controls.Add(this.dgv); + this.Controls.Add(this.CB_Entry); + this.MinimumSize = new System.Drawing.Size(400, 300); + this.Name = "TextEditor"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Text Editor"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.TextEditor_FormClosing); + ((System.ComponentModel.ISupportInitialize)(this.dgv)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.ComboBox CB_Entry; + private System.Windows.Forms.DataGridView dgv; + private System.Windows.Forms.Button B_AddLine; + private System.Windows.Forms.Button B_RemoveLine; + private System.Windows.Forms.Button B_Export; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Button B_Import; + private System.Windows.Forms.Button B_Randomize; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Subforms/TextEditor.cs b/pk3DS.WinForms/Subforms/TextEditor.cs new file mode 100644 index 0000000000..7930d5d601 --- /dev/null +++ b/pk3DS.WinForms/Subforms/TextEditor.cs @@ -0,0 +1,318 @@ +using pk3DS.Core; +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace pk3DS.WinForms; + +public partial class TextEditor : Form +{ + public TextEditor(string[][] infiles, string mode) + { + InitializeComponent(); + files = infiles; + Mode = mode; + for (int i = 0; i < files.Length; i++) + CB_Entry.Items.Add(i.ToString()); + CB_Entry.SelectedIndex = 0; + dgv.EditMode = DataGridViewEditMode.EditOnEnter; + } + + private readonly string[][] files; + private readonly string Mode; + private int entry = -1; + + // IO + private void B_Export_Click(object sender, EventArgs e) + { + if (files.Length == 0) + return; + var Dump = new SaveFileDialog { Filter = "Text File|*.txt" }; + var sdr = Dump.ShowDialog(); + if (sdr != DialogResult.OK) + return; + bool newline = WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Remove newline formatting codes? (\\n,\\r,\\c)", "Removing newline formatting will make it more readable but will prevent any importing of that dump.") == DialogResult.Yes; + string path = Dump.FileName; + ExportTextFile(path, newline, files); + } + + private void B_Import_Click(object sender, EventArgs e) + { + if (files.Length == 0) + return; + var Dump = new OpenFileDialog { Filter = "Text File|*.txt" }; + var odr = Dump.ShowDialog(); + if (odr != DialogResult.OK) + return; + string path = Dump.FileName; + + if (!ImportTextFile(path)) + return; + + // Reload the form with the new data. + ChangeEntry(null, null); + WinFormsUtil.Alert("Imported Text from Input Path:", path); + } + + public static void ExportTextFile(string fileName, bool newline, string[][] fileData) + { + using var ms = new MemoryStream(); + ms.Write([0xFF, 0xFE], 0, 2); // Write Unicode BOM + using (var tw = new StreamWriter(ms, new UnicodeEncoding())) + { + for (int i = 0; i < fileData.Length; i++) + { + // Get Strings for the File + string[] data = fileData[i]; + // Append the File Header + tw.WriteLine("~~~~~~~~~~~~~~~"); + tw.WriteLine("Text File : " + i); + tw.WriteLine("~~~~~~~~~~~~~~~"); + // Write the String to the File + if (data == null) continue; + foreach (string line in data) + { + tw.WriteLine(newline + ? line.Replace("\\n\\n", " ") + .Replace("\\n", " ") + .Replace("\\c", "") + .Replace("\\r", "") + .Replace("\\\\", "\\") + .Replace("\\[", "[") + : line); + } + } + } + File.WriteAllBytes(fileName, ms.ToArray()); + } + + private bool ImportTextFile(string fileName) + { + string[] fileText = File.ReadAllLines(fileName, Encoding.Unicode); + string[][] textLines = new string[files.Length][]; + int ctr = 0; + bool newlineFormatting = false; + // Loop through all files + for (int i = 0; i < fileText.Length; i++) + { + string line = fileText[i]; + if (line != "~~~~~~~~~~~~~~~") + continue; + string[] brokenLine = fileText[i++ + 1].Split([" : "], StringSplitOptions.None); + if (brokenLine.Length != 2) + { WinFormsUtil.Error($"Invalid Line @ {i}, expected Text File : {ctr}"); return false; } + int file = Util.ToInt32(brokenLine[1]); + if (file != ctr) + { WinFormsUtil.Error($"Invalid Line @ {i}, expected Text File : {ctr}"); return false; } + i += 2; // Skip over the other header line + List Lines = []; + while (i < fileText.Length && fileText[i] != "~~~~~~~~~~~~~~~") + { + Lines.Add(fileText[i]); + newlineFormatting |= fileText[i].Contains("\\n"); // Check if any line wasn't stripped of ingame formatting codes for human readability. + i++; + } + i--; + textLines[ctr++] = [.. Lines]; + } + + // Error Check + if (ctr != files.Length) + { + WinFormsUtil.Error("The amount of Text Files in the input file does not match the required for the text file.", + $"Received: {ctr}, Expected: {files.Length}"); return false; + } + if (!newlineFormatting) + { + WinFormsUtil.Error("The input Text Files do not have the ingame newline formatting codes (\\n,\\r,\\c).", + "When exporting text, do not remove newline formatting."); return false; + } + + // All Text Lines received. Store all back. + for (int i = 0; i < files.Length; i++) + { + try { files[i] = textLines[i]; } + catch (Exception e) { WinFormsUtil.Error($"The input Text File (# {i}) failed to convert:", e.ToString()); return false; } + } + + return true; + } + + private void ChangeEntry(object sender, EventArgs e) + { + // Save All the old text + if (entry > -1 && sender != null) + { + try + { + files[entry] = GetCurrentDGLines(); + } + catch (Exception ex) { WinFormsUtil.Error(ex.ToString()); } + } + + // Reset + entry = CB_Entry.SelectedIndex; + SetStringsDataGridView(files[entry]); + } + + // Main Handling + private void SetStringsDataGridView(string[] textArray) + { + // Clear the datagrid row content to remove all text lines. + dgv.Rows.Clear(); + // Clear the header columns, these are repopulated every time. + dgv.Columns.Clear(); + if (textArray == null || textArray.Length == 0) + return; + // Reset settings and columns. + dgv.AllowUserToResizeColumns = false; + DataGridViewColumn dgvLine = new DataGridViewTextBoxColumn + { + HeaderText = "Line", + DisplayIndex = 0, + Width = 32, + ReadOnly = true, + SortMode = DataGridViewColumnSortMode.NotSortable, + }; + dgvLine.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; + + var dgvText = new DataGridViewTextBoxColumn + { + HeaderText = "Text", + DisplayIndex = 1, + SortMode = DataGridViewColumnSortMode.NotSortable, + AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill, + }; + + dgv.Columns.Add(dgvLine); + dgv.Columns.Add(dgvText); + dgv.Rows.Add(textArray.Length); + + // Add the text lines into their cells. + for (int i = 0; i < textArray.Length; i++) + { + dgv.Rows[i].Cells[0].Value = i; + dgv.Rows[i].Cells[1].Value = textArray[i]; + } + } + + private string[] GetCurrentDGLines() + { + // Get Line Count + string[] lines = new string[dgv.RowCount]; + for (int i = 0; i < dgv.RowCount; i++) + lines[i] = (string)dgv.Rows[i].Cells[1].Value; + return lines; + } + // Meta Usage + private void B_AddLine_Click(object sender, EventArgs e) + { + int currentRow = 0; + try { currentRow = dgv.CurrentRow.Index; } + catch { dgv.Rows.Add(); } + + if (dgv.Rows.Count != 1 && (currentRow < dgv.Rows.Count - 1 || currentRow == 0)) + { + if (ModifierKeys != Keys.Control && currentRow != 0) + { + if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Inserting in between rows will shift all subsequent lines.", "Continue?") != DialogResult.Yes) + return; + } + // Insert new Row after current row. + dgv.Rows.Insert(currentRow + 1); + } + + for (int i = 0; i < dgv.Rows.Count; i++) + dgv.Rows[i].Cells[0].Value = i.ToString(); + } + + private void B_RemoveLine_Click(object sender, EventArgs e) + { + int currentRow = dgv.CurrentRow.Index; + if (currentRow < dgv.Rows.Count - 1) + { + if (ModifierKeys != Keys.Control && DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Deleting a row above other lines will shift all subsequent lines.", "Continue?")) + return; + } + dgv.Rows.RemoveAt(currentRow); + + // Resequence the Index Value column + for (int i = 0; i < dgv.Rows.Count; i++) + dgv.Rows[i].Cells[0].Value = i.ToString(); + } + + private void TextEditor_FormClosing(object sender, FormClosingEventArgs e) + { + // Save any pending edits + dgv.EndEdit(); + // Save All the old text + if (entry > -1) files[entry] = GetCurrentDGLines(); + } + + private void B_Randomize_Click(object sender, EventArgs e) + { + // gametext can be horribly broken if randomized + if (Mode == "gametext" && DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomizing Game Text is dangerous!", "Continue?")) + return; + + // get if the user wants to randomize current text file or all files + var dr = WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, $"Yes: Randomize ALL{Environment.NewLine}No: Randomize current textfile{Environment.NewLine}Cancel: Abort"); + + if (dr == DialogResult.Cancel) + return; + + // get if pure shuffle or smart shuffle (no shuffle if variable present) + var drs = WinFormsUtil.Prompt(MessageBoxButtons.YesNo, $"Smart shuffle:{Environment.NewLine}Yes: Shuffle if no Variable present{Environment.NewLine}No: Pure random!"); + + if (drs == DialogResult.Cancel) + return; + + bool all = dr == DialogResult.Yes; + bool smart = drs == DialogResult.Yes; + + // save current + if (entry > -1) + files[entry] = GetCurrentDGLines(); + + // single-entire looping + int start = all ? 0 : entry; + int end = all ? files.Length - 1 : entry; + + // Gather strings + List strings = []; + for (int i = start; i <= end; i++) + { + string[] data = files[i]; + strings.AddRange(smart + ? data.Where(line => !line.Contains('[')) + : data); + } + + // Shuffle up + string[] pool = [.. strings]; + Util.Shuffle(pool); + + // Apply Text + int ctr = 0; + for (int i = start; i <= end; i++) + { + string[] data = files[i]; + + for (int j = 0; j < data.Length; j++) // apply lines + { + if (!smart || !data[j].Contains('[')) + data[j] = pool[ctr++]; + } + + files[i] = data; + } + + // Load current text file + SetStringsDataGridView(files[entry]); + + WinFormsUtil.Alert("Strings randomized!"); + } +} \ No newline at end of file diff --git a/pk3DS/Subforms/TextEditor.resx b/pk3DS.WinForms/Subforms/TextEditor.resx similarity index 100% rename from pk3DS/Subforms/TextEditor.resx rename to pk3DS.WinForms/Subforms/TextEditor.resx diff --git a/pk3DS.WinForms/Tools/Icon.Designer.cs b/pk3DS.WinForms/Tools/Icon.Designer.cs new file mode 100644 index 0000000000..3ddf0163ed --- /dev/null +++ b/pk3DS.WinForms/Tools/Icon.Designer.cs @@ -0,0 +1,268 @@ +namespace pk3DS.WinForms; + +sealed partial class Icon +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.PB_Large = new System.Windows.Forms.PictureBox(); + this.CB_AppInfo = new System.Windows.Forms.ComboBox(); + this.L_AppInfo = new System.Windows.Forms.Label(); + this.PB_Small = new System.Windows.Forms.PictureBox(); + this.TB_Short = new System.Windows.Forms.TextBox(); + this.TB_Long = new System.Windows.Forms.TextBox(); + this.TB_Publisher = new System.Windows.Forms.TextBox(); + this.B_ExportSMDH = new System.Windows.Forms.Button(); + this.B_ExportSmallIcon = new System.Windows.Forms.Button(); + this.B_ExportLargeIcon = new System.Windows.Forms.Button(); + this.B_ImportLargeIcon = new System.Windows.Forms.Button(); + this.B_ImportSmallIcon = new System.Windows.Forms.Button(); + this.B_ImportSMDH = new System.Windows.Forms.Button(); + this.B_Save = new System.Windows.Forms.Button(); + this.B_Cancel = new System.Windows.Forms.Button(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + ((System.ComponentModel.ISupportInitialize)(this.PB_Large)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_Small)).BeginInit(); + this.groupBox1.SuspendLayout(); + this.SuspendLayout(); + // + // PB_Large + // + this.PB_Large.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.PB_Large.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.PB_Large.Location = new System.Drawing.Point(168, 9); + this.PB_Large.Name = "PB_Large"; + this.PB_Large.Size = new System.Drawing.Size(50, 50); + this.PB_Large.TabIndex = 1; + this.PB_Large.TabStop = false; + // + // CB_AppInfo + // + this.CB_AppInfo.FormattingEnabled = true; + this.CB_AppInfo.Location = new System.Drawing.Point(15, 38); + this.CB_AppInfo.Name = "CB_AppInfo"; + this.CB_AppInfo.Size = new System.Drawing.Size(150, 21); + this.CB_AppInfo.TabIndex = 8; + this.CB_AppInfo.SelectedIndexChanged += new System.EventHandler(this.CB_AppInfo_SelectedIndexChanged); + // + // L_AppInfo + // + this.L_AppInfo.AutoSize = true; + this.L_AppInfo.Location = new System.Drawing.Point(12, 22); + this.L_AppInfo.Name = "L_AppInfo"; + this.L_AppInfo.Size = new System.Drawing.Size(51, 13); + this.L_AppInfo.TabIndex = 7; + this.L_AppInfo.Text = "AppInfo#"; + // + // PB_Small + // + this.PB_Small.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.PB_Small.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.PB_Small.Location = new System.Drawing.Point(136, 9); + this.PB_Small.Name = "PB_Small"; + this.PB_Small.Size = new System.Drawing.Size(26, 26); + this.PB_Small.TabIndex = 9; + this.PB_Small.TabStop = false; + // + // TB_Short + // + this.TB_Short.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.TB_Short.Location = new System.Drawing.Point(15, 65); + this.TB_Short.MaxLength = 64; + this.TB_Short.Name = "TB_Short"; + this.TB_Short.Size = new System.Drawing.Size(289, 20); + this.TB_Short.TabIndex = 10; + // + // TB_Long + // + this.TB_Long.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.TB_Long.Location = new System.Drawing.Point(15, 91); + this.TB_Long.MaxLength = 128; + this.TB_Long.Name = "TB_Long"; + this.TB_Long.Size = new System.Drawing.Size(289, 20); + this.TB_Long.TabIndex = 11; + // + // TB_Publisher + // + this.TB_Publisher.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.TB_Publisher.Location = new System.Drawing.Point(15, 117); + this.TB_Publisher.MaxLength = 64; + this.TB_Publisher.Name = "TB_Publisher"; + this.TB_Publisher.Size = new System.Drawing.Size(289, 20); + this.TB_Publisher.TabIndex = 12; + // + // B_ExportSMDH + // + this.B_ExportSMDH.Location = new System.Drawing.Point(6, 48); + this.B_ExportSMDH.Name = "B_ExportSMDH"; + this.B_ExportSMDH.Size = new System.Drawing.Size(88, 23); + this.B_ExportSMDH.TabIndex = 15; + this.B_ExportSMDH.Text = "Export SMDH"; + this.B_ExportSMDH.UseVisualStyleBackColor = true; + this.B_ExportSMDH.Click += new System.EventHandler(this.B_ExportSMDH_Click); + // + // B_ExportSmallIcon + // + this.B_ExportSmallIcon.Location = new System.Drawing.Point(100, 48); + this.B_ExportSmallIcon.Name = "B_ExportSmallIcon"; + this.B_ExportSmallIcon.Size = new System.Drawing.Size(88, 23); + this.B_ExportSmallIcon.TabIndex = 16; + this.B_ExportSmallIcon.Text = "Export Small"; + this.B_ExportSmallIcon.UseVisualStyleBackColor = true; + this.B_ExportSmallIcon.Click += new System.EventHandler(this.B_ExportSmallIcon_Click); + // + // B_ExportLargeIcon + // + this.B_ExportLargeIcon.Location = new System.Drawing.Point(194, 48); + this.B_ExportLargeIcon.Name = "B_ExportLargeIcon"; + this.B_ExportLargeIcon.Size = new System.Drawing.Size(88, 23); + this.B_ExportLargeIcon.TabIndex = 17; + this.B_ExportLargeIcon.Text = "Export Large"; + this.B_ExportLargeIcon.UseVisualStyleBackColor = true; + this.B_ExportLargeIcon.Click += new System.EventHandler(this.B_ExportLargeIcon_Click); + // + // B_ImportLargeIcon + // + this.B_ImportLargeIcon.Enabled = false; + this.B_ImportLargeIcon.Location = new System.Drawing.Point(194, 19); + this.B_ImportLargeIcon.Name = "B_ImportLargeIcon"; + this.B_ImportLargeIcon.Size = new System.Drawing.Size(88, 23); + this.B_ImportLargeIcon.TabIndex = 20; + this.B_ImportLargeIcon.Text = "Import Large"; + this.B_ImportLargeIcon.UseVisualStyleBackColor = true; + this.B_ImportLargeIcon.Click += new System.EventHandler(this.B_ImportLargeIcon_Click); + // + // B_ImportSmallIcon + // + this.B_ImportSmallIcon.Enabled = false; + this.B_ImportSmallIcon.Location = new System.Drawing.Point(100, 19); + this.B_ImportSmallIcon.Name = "B_ImportSmallIcon"; + this.B_ImportSmallIcon.Size = new System.Drawing.Size(88, 23); + this.B_ImportSmallIcon.TabIndex = 19; + this.B_ImportSmallIcon.Text = "Import Small"; + this.B_ImportSmallIcon.UseVisualStyleBackColor = true; + this.B_ImportSmallIcon.Click += new System.EventHandler(this.B_ImportSmallIcon_Click); + // + // B_ImportSMDH + // + this.B_ImportSMDH.Location = new System.Drawing.Point(6, 19); + this.B_ImportSMDH.Name = "B_ImportSMDH"; + this.B_ImportSMDH.Size = new System.Drawing.Size(88, 23); + this.B_ImportSMDH.TabIndex = 18; + this.B_ImportSMDH.Text = "Import SMDH"; + this.B_ImportSMDH.UseVisualStyleBackColor = true; + this.B_ImportSMDH.Click += new System.EventHandler(this.B_ImportSMDH_Click); + // + // B_Save + // + this.B_Save.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.B_Save.Location = new System.Drawing.Point(238, 237); + this.B_Save.Name = "B_Save"; + this.B_Save.Size = new System.Drawing.Size(66, 23); + this.B_Save.TabIndex = 21; + this.B_Save.Text = "Save"; + this.B_Save.UseVisualStyleBackColor = true; + this.B_Save.Click += new System.EventHandler(this.B_Save_Click); + // + // B_Cancel + // + this.B_Cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); + this.B_Cancel.Location = new System.Drawing.Point(166, 237); + this.B_Cancel.Name = "B_Cancel"; + this.B_Cancel.Size = new System.Drawing.Size(66, 23); + this.B_Cancel.TabIndex = 22; + this.B_Cancel.Text = "Cancel"; + this.B_Cancel.UseVisualStyleBackColor = true; + this.B_Cancel.Click += new System.EventHandler(this.B_Cancel_Click); + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.B_ImportLargeIcon); + this.groupBox1.Controls.Add(this.B_ImportSmallIcon); + this.groupBox1.Controls.Add(this.B_ImportSMDH); + this.groupBox1.Controls.Add(this.B_ExportLargeIcon); + this.groupBox1.Controls.Add(this.B_ExportSMDH); + this.groupBox1.Controls.Add(this.B_ExportSmallIcon); + this.groupBox1.Location = new System.Drawing.Point(15, 143); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(289, 84); + this.groupBox1.TabIndex = 23; + this.groupBox1.TabStop = false; + // + // Icon + // + this.AllowDrop = true; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(317, 272); + this.Controls.Add(this.groupBox1); + this.Controls.Add(this.B_Cancel); + this.Controls.Add(this.B_Save); + this.Controls.Add(this.TB_Publisher); + this.Controls.Add(this.TB_Long); + this.Controls.Add(this.TB_Short); + this.Controls.Add(this.PB_Small); + this.Controls.Add(this.CB_AppInfo); + this.Controls.Add(this.L_AppInfo); + this.Controls.Add(this.PB_Large); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size(320, 244); + this.Name = "Icon"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "SMDH Editor"; + ((System.ComponentModel.ISupportInitialize)(this.PB_Large)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.PB_Small)).EndInit(); + this.groupBox1.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.PictureBox PB_Large; + private System.Windows.Forms.ComboBox CB_AppInfo; + private System.Windows.Forms.Label L_AppInfo; + private System.Windows.Forms.PictureBox PB_Small; + private System.Windows.Forms.TextBox TB_Short; + private System.Windows.Forms.TextBox TB_Long; + private System.Windows.Forms.TextBox TB_Publisher; + private System.Windows.Forms.Button B_ExportSMDH; + private System.Windows.Forms.Button B_ExportSmallIcon; + private System.Windows.Forms.Button B_ExportLargeIcon; + private System.Windows.Forms.Button B_ImportLargeIcon; + private System.Windows.Forms.Button B_ImportSmallIcon; + private System.Windows.Forms.Button B_ImportSMDH; + private System.Windows.Forms.Button B_Save; + private System.Windows.Forms.Button B_Cancel; + private System.Windows.Forms.GroupBox groupBox1; + +} \ No newline at end of file diff --git a/pk3DS.WinForms/Tools/Icon.cs b/pk3DS.WinForms/Tools/Icon.cs new file mode 100644 index 0000000000..f295372a2c --- /dev/null +++ b/pk3DS.WinForms/Tools/Icon.cs @@ -0,0 +1,221 @@ +using pk3DS.Core.CTR; +using System; +using System.Drawing; +using System.Drawing.Imaging; +using System.IO; +using System.Windows.Forms; + +namespace pk3DS.WinForms; + +public sealed partial class Icon : Form +{ + private SMDH SMDH; + + public Icon() + { + InitializeComponent(); + SMDH = Main.SMDH; + if (SMDH?.AppSettings == null || SMDH.LargeIcon.Bytes == null) + { + byte[] data = new byte[0x3C0]; // Feed a blank SMDH + Array.Copy(BitConverter.GetBytes(0x48444D53), data, 4); // SMDH header + SMDH = new SMDH(data); + B_Save.Enabled = false; + } + for (int i = 0; i < 16; i++) + CB_AppInfo.Items.Add(i); + + LoadSMDH(); + + AllowDrop = true; + DragEnter += TC_Main_DragEnter; + DragDrop += TC_Main_DragDrop; + } + + private void TC_Main_DragEnter(object sender, DragEventArgs e) + { + if (e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = DragDropEffects.Copy; + } + + private void TC_Main_DragDrop(object sender, DragEventArgs e) + { + string[] files = (string[])e.Data.GetData(DataFormats.FileDrop); + string path = files[0]; // open first D&D + + OpenFile(path, true); + } + + private void LoadSMDH() + { + PB_Large.Image = SMDH.LargeIcon.Icon; + PB_Small.Image = SMDH.SmallIcon.Icon; + CB_AppInfo.SelectedIndex = 0; + CB_AppInfo_SelectedIndexChanged(null, null); + } + + private void SaveSMDH() + { + Main.SMDH = SMDH; + File.WriteAllBytes(Path.Combine(Main.ExeFSPath, "icon.bin"), Main.SMDH.Write()); + } + + private void OpenFile(string path, bool drop = false) + { + var fi = new FileInfo(path); + if (fi.Length > 1024 * 1024 * 5) + return; + + byte[] data = File.ReadAllBytes(path); + if (data.Length == 0x36C0) // SMDH + ImportSMDH(data, true); + else ImportIcon(data, drop); + } + + private void B_Save_Click(object sender, EventArgs e) + { + CB_AppInfo_SelectedIndexChanged(null, null); // Force re-save + if (DialogResult.Yes == WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Save changes?")) + { + SaveSMDH(); + Close(); + } + } + + private void B_Cancel_Click(object sender, EventArgs e) + { + Close(); + } + + private void B_ExportSMDH_Click(object sender, EventArgs e) + { + ExportSMDH(); + } + + private void B_ExportSmallIcon_Click(object sender, EventArgs e) + { + ExportIcon(false); + } + + private void B_ExportLargeIcon_Click(object sender, EventArgs e) + { + ExportIcon(true); + } + + private void ExportSMDH() + { + var sfd = new SaveFileDialog + { + FileName = "icon.bin", + Filter = "System Menu Data Header|*.*", + }; + if (sfd.ShowDialog() != DialogResult.Yes) return; + CB_AppInfo_SelectedIndexChanged(null, null); // Force re-save + File.WriteAllBytes(sfd.FileName, SMDH.Write()); + } + + private void ExportIcon(bool large) + { + var sfd = new SaveFileDialog + { + FileName = large ? "Large Icon.png" : "Small Icon.png", + Filter = "Icon Image " + (large ? "48x48" : "24x24") + "|*.png", + }; + if (sfd.ShowDialog() != DialogResult.OK) + return; + + using var ms = new MemoryStream(); + //error will throw from here + (large ? SMDH.LargeIcon.Icon : SMDH.SmallIcon.Icon).Save(ms, ImageFormat.Png); + byte[] data = ms.ToArray(); + File.WriteAllBytes(sfd.FileName, data); + } + + private void B_ImportSMDH_Click(object sender, EventArgs e) + { + var ofd = new OpenFileDialog + { + FileName = "icon.bin", + Filter = "System Menu Data Header|*.*", + }; + if (ofd.ShowDialog() != DialogResult.OK) return; + + OpenFile(ofd.FileName); + } + + private void B_ImportSmallIcon_Click(object sender, EventArgs e) + { + var ofd = new OpenFileDialog + { + FileName = "small.png", + Filter = "Small Icon Image|*.png", + }; + if (ofd.ShowDialog() != DialogResult.OK) return; + + OpenFile(ofd.FileName); + } + + private void B_ImportLargeIcon_Click(object sender, EventArgs e) + { + var ofd = new OpenFileDialog + { + FileName = "large.png", + Filter = "Large Icon Image|*.png", + }; + if (ofd.ShowDialog() != DialogResult.OK) return; + + OpenFile(ofd.FileName); + } + + private void ImportSMDH(byte[] data, bool prompt = false) + { + if (prompt && DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Replace SMDH?")) + return; + + var newSMDH = new SMDH(data); + if (newSMDH.LargeIcon.Icon == null) return; + + SMDH = newSMDH; + entry = -1; // allow proper refreshing + LoadSMDH(); + } + + private void ImportIcon(byte[] data, bool prompt = false) + { + try + { + using Stream BitmapStream = new MemoryStream(data); + var img = Image.FromStream(BitmapStream); + var mBitmap = new Bitmap(img); + + bool small = img.Width == 24 && img.Height == 24; + bool large = img.Width == 48 && img.Height == 48; + + if (!small && !large) + WinFormsUtil.Alert("Image size is not correct.", $"Width: {img.Width}\nHeight: {img.Height}", "Expected Dimensions (24x24 or 48x48)"); + if (prompt && DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Import image?", small ? "Small Icon" : "Large Icon")) + return; + if (small) + SMDH.SmallIcon.ChangeIcon(mBitmap); + if (large) + SMDH.LargeIcon.ChangeIcon(mBitmap); + } + catch + { WinFormsUtil.Error("Invalid image format?"); } + } + + private int entry = -1; + + private void CB_AppInfo_SelectedIndexChanged(object sender, EventArgs e) + { + if (entry > -1) + { + SMDH.AppInfo[entry].ShortDescription = TB_Short.Text; + SMDH.AppInfo[entry].LongDescription = TB_Long.Text; + SMDH.AppInfo[entry].Publisher = TB_Publisher.Text; + } + entry = CB_AppInfo.SelectedIndex; + TB_Short.Text = SMDH.AppInfo[entry].ShortDescription; + TB_Long.Text = SMDH.AppInfo[entry].LongDescription; + TB_Publisher.Text = SMDH.AppInfo[entry].Publisher; + } +} \ No newline at end of file diff --git a/pk3DS/Tools/Icon.resx b/pk3DS.WinForms/Tools/Icon.resx similarity index 100% rename from pk3DS/Tools/Icon.resx rename to pk3DS.WinForms/Tools/Icon.resx diff --git a/pk3DS.WinForms/Tools/RandSettings.cs b/pk3DS.WinForms/Tools/RandSettings.cs new file mode 100644 index 0000000000..8bb5ea8bd6 --- /dev/null +++ b/pk3DS.WinForms/Tools/RandSettings.cs @@ -0,0 +1,147 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Windows.Forms; + +namespace pk3DS.WinForms; + +public static class RandSettings +{ + public const string FileName = "randsettings.txt"; + private static readonly Dictionary> Settings = []; + + public static void Load(string[] lines) + { + Settings.Clear(); + int ctr = 0; + while (ctr < lines.Length) + { + string formname = lines[ctr]; + int end = Array.FindIndex(lines, ctr, string.IsNullOrWhiteSpace); + var list = GetList(lines, ctr + 1, end - 1); + Settings.Add(formname, list); + ctr = end + 1; + } + } + + public static string[] Save() + { + var result = new List(); + foreach (var list in Settings) + { + result.Add(list.Key); + result.AddRange(list.Value.Select(val => val.Write())); + result.Add(string.Empty); + } + return [.. result]; + } + + public static void GetFormSettings(Form form, Control.ControlCollection controls) + { + if (!Settings.TryGetValue(form.Name, out var list)) + return; + + foreach (Control ctrl in controls) + { + GetFormSettings(form, ctrl.Controls); + if (string.IsNullOrWhiteSpace(ctrl.Name)) + continue; + var pair = list.Find(z => ctrl.Name == z.Name); + if (pair == null) + continue; + + TryGetValue(ctrl, pair.Value); + } + } + + public static void SetFormSettings(Form form, Control.ControlCollection controls) + { + if (!Settings.TryGetValue(form.Name, out var list)) + { + list = []; + Settings.Add(form.Name, list); + } + + foreach (Control ctrl in controls) + { + SetFormSettings(form, ctrl.Controls); + if (string.IsNullOrWhiteSpace(ctrl.Name)) + continue; + var pair = list.Find(z => ctrl.Name == z.Name) ?? new NameValue(ctrl.Name); + if (TrySetValue(ctrl, pair) && !list.Contains(pair)) + list.Add(pair); + } + } + + private static void TryGetValue(Control ctrl, string s) + { + switch (ctrl) + { + case NumericUpDown nud: + if (decimal.TryParse(s, NumberStyles.Any, CultureInfo.InvariantCulture, out var n)) + nud.Value = n; + break; + case ComboBox cb: + if (int.TryParse(s, out var c)) + cb.SelectedIndex = c; + break; + case CheckBox ck: + if (bool.TryParse(s, out var b)) + ck.Checked = b; + break; + default: + System.Diagnostics.Debug.WriteLine($"{ctrl.Name}: unknown control type."); + break; + } + } + + private static bool TrySetValue(Control ctrl, NameValue v) + { + switch (ctrl) + { + case NumericUpDown nud: + v.Value = nud.Value.ToString(CultureInfo.InvariantCulture); + return true; + case ComboBox cb: + v.Value = cb.SelectedIndex.ToString(); + return true; + case CheckBox ck: + v.Value = ck.Checked.ToString(); + return true; + default: + System.Diagnostics.Debug.WriteLine($"{ctrl.Name}: unknown control type."); + return false; + } + } + + private static List GetList(IList lines, int start, int end) + { + var list = new List(); + for (int i = start; i <= end; i++) + { + var val = new NameValue(lines[i]); + if (val.Name != null) + list.Add(val); + } + return list; + } + + private class NameValue + { + public readonly string Name; + public string Value; + + private const char Separator = '\t'; + public string Write() => Name + Separator + Value; + + public NameValue(string s) + { + var split = s.Split(Separator); + Name = split[0]; + if (split.Length < 2) + return; + Value = split[1]; + } + } +} \ No newline at end of file diff --git a/pk3DS.WinForms/Tools/Scripts.cs b/pk3DS.WinForms/Tools/Scripts.cs new file mode 100644 index 0000000000..c7478b9269 --- /dev/null +++ b/pk3DS.WinForms/Tools/Scripts.cs @@ -0,0 +1,869 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; + +namespace pk3DS.WinForms; + +// Big thanks to FireFly for figuring out the 7/6-bit compression routine for scripts. +public static class Scripts +{ + // Decompression - Deprecated: Use FireFly's method. + internal static byte[] DecompressScript(byte[] data) + { + data ??= []; // Bad Input + + using var mn = new MemoryStream(); + using var bw = new BinaryWriter(mn); + // Read away! + int pos = 0; + while (pos < data.Length) + { + // Read until the top bit is not set + byte[] cb = ReadCompressed(data, pos); + pos += cb.Length; + // Interpret the bytecode + byte[] db = DecompressBytes(cb); + // Write Bytes + bw.Write(db); + } + return mn.ToArray(); + } + + internal static byte[] ReadCompressed(byte[] data, int pos) + { + byte[] c1 = data.Skip(pos).TakeWhile(b => b >> 7 > 0).ToArray(); // Take while >= 0x80 + return [.. c1, .. data.Skip(pos + c1.Length).Take(1)]; // Take another + } + + internal static byte[] DecompressBytes(byte[] cb) + { + byte[] db = []; + + if ((cb[0] & 0x40) > 0) // Signed Parameter + { + // Check the next bytecode + if (cb.Length > 1 && cb[1] >> 7 > 0) // Many-bits-required command + { + // 2 Byte Signed Parameter + int cmd = (cb[0] & 0x3 << 14) | (cb[1] & 0x7F << 7) | cb[2]; // 16 Bits total + db = [.. db, .. BitConverter.GetBytes(cmd).Take(2)]; // 16 Bits + + int dev = ((cb[0] & 0x3F) - 0x40) >> 2; // Lowest 2 bits have already been used for the command + db = [.. db, .. BitConverter.GetBytes(dev).Take(2)]; // 16 Bits + } + else if (cb[0] >> 7 > 0) // Signed Command + { + // 3 Byte Signed Parameter + int cmd = (cb[0] << 7) | cb[1]; + db = [.. db, .. BitConverter.GetBytes(cmd).Take(1)]; // 8 Bits Total + + int dev = ((cb[0] & 0x3F) - 0x40) >> 1; // Lowest bit has already been used for the command + db = [.. db, .. BitConverter.GetBytes(dev).Take(3)]; // 24 Bits + } + else // Signed Value + { + // 4 Byte Signed Parameter + int dev = ((cb[0] & 0x3F) - 0x40) >> 0; // No bits have already been used; no command + db = [.. db, .. BitConverter.GetBytes(dev).Take(4)]; // 32 Bits + } + } + else if (cb[0] >> 7 > 0) // Manybit + { + Array.Reverse(cb); + int cmd = 0; + for (int i = 0; i < cb.Length; i++) + cmd |= (cb[i] & 0x7F) << (7 * i); + + db = [.. db, .. BitConverter.GetBytes((uint)cmd).Take(4)]; + } + else // Literal + { + db = [.. db, .. BitConverter.GetBytes((uint)cb[0]).Take(4)]; + } + return db; + } + // FireFly's (github.com/FireyFly) concise decompression (ported c->c#): + // https://github.com/FireyFly/poketools/blob/e74538a5b5e5dab1e78c1cd313c55d158f37534d/src/formats/script.c#L61 + internal static uint[] QuickDecompress(byte[] data, int count) + { + uint[] code = new uint[count]; + uint i = 0, j = 0, x = 0, f = 0; + while (i < code.Length) + { + int b = data[f++], + v = b & 0x7F; + if (++j == 1) // sign extension possible + x = (uint)((((v >> 6 == 0 ? 1 : 0) - 1) << 6) | v); // only for bit6 being set + else x = (x << 7) | (byte)v; // shift data into place + + if ((b & 0x80) != 0) continue; // more data to read + code[i++] = x; j = 0; // write finalized instruction + } + return code; + } + + // Compression + internal static byte[] CompressScript(byte[] data) + { + if (data.Length % 4 != 0) // Bad Input + throw new ArgumentException(null, nameof(data)); + using var mn = new MemoryStream(); + using var bw = new BinaryWriter(mn); + int pos = 0; + while (pos < data.Length) + { + byte[] db = data.Skip(pos += 4).Take(4).ToArray(); + byte[] cb = CompressBytes(db); + bw.Write(cb); + } + return mn.ToArray(); + } + + internal static byte[] CompressBytes(byte[] db) + { + short cmd = BitConverter.ToInt16(db, 0); + short val = BitConverter.ToInt16(db, 2); + + byte[] cb = []; + bool sign4 = val < 0 && cmd < 0 && db[0] >= 0xC0; // 4 byte signed + bool sign3 = val < 0 && cmd < 0 && db[0] < 0xC0; // 3 byte signed + bool sign2 = val < 0 && cmd > 0; // 2 byte signed + bool liter = cmd is >= 0 and < 0x40; // Literal + bool manyb = cmd >= 0x40; // manybit + + if (sign4) + { + int dev = 0x40 + BitConverter.ToInt32(db, 0); + if (dev < 0) // BADLOGIC + return cb; + cb = [(byte)((dev & 0x3F) | 0x40)]; + } + else if (sign3) + { + byte dev = (byte)(((db[1] << 1) + 0x40) | 0xC0 | db[0] >> 7); + byte low = db[0]; + cb = [dev, low]; + } + else if (sign2) + { + if (manyb) + { + byte dev = (byte)(((db[2] << 2) + 0x40) | 0xC0 | db[1] >> 7); + byte low1 = (byte)(0x80 | (db[0] >> 7) | (db[1] & 0x80)); + byte low0 = (byte)(db[0] & 0x80); + cb = [low0, low1, dev]; + } + else // Dunno if this ever naturally happens; the command reader may ignore db[1] if db[0] < 0x80... needs verification. + { + byte dev = (byte)(((db[1] << 2) + 0x40) | 0xC0 | db[0] >> 6); + byte low0 = (byte)(db[0] & 0x3F); + cb = [low0, dev]; + } + } + else if (manyb) + { + ulong bitStorage = 0; + + uint dv = BitConverter.ToUInt32(db, 0); + int ctr = 0; + while (dv != 0) // bits remaining + { + byte bits = (byte)((byte)dv & 0x7F); dv >>= 7; // Take off 7 bits at a time + bitStorage |= (byte)(bits << (ctr * 8)); // Write the 7 bits into storage + bitStorage |= (byte)(1 << (7 + (ctr++ * 8))); // continue reading flag + } + byte[] compressedBits = BitConverter.GetBytes(bitStorage); + + Array.Reverse(compressedBits); + // Trim off leading zero-bytes + cb = compressedBits.SkipWhile(v => v == 0).ToArray(); + } + else if (liter) + { + cb = [(byte)cmd]; + } + return cb; + } + + // General Utility + internal static string[] GetHexLines(byte[] data, int count = 4) + { + data ??= []; + // Generates an x-byte wide space separated string array; leftovers included at the end. + string[] s = new string[(data.Length / count) + (data.Length % count > 0 ? 1 : 0)]; + for (int i = 0; i < s.Length; i++) + s[i] = BitConverter.ToString(data.Skip(i * count).Take(count).ToArray()).Replace('-', ' '); + return s; + } + + internal static string[] GetHexLines(uint[] data) + { + data ??= []; + // Generates an 4-byte wide space separated string array. + string[] s = new string[data.Length]; + for (int i = 0; i < s.Length; i++) + s[i] = BitConverter.ToString(BitConverter.GetBytes(data[i])).Replace('-', ' '); + return s; + } + + internal static byte[] GetBytes(uint[] data) + { + return data.Aggregate(Array.Empty(), (current, t) => [.. current, .. BitConverter.GetBytes(t)]); + } + + // Interpreting + internal static string[] ParseScript(uint[] cmd, int sanity = -1) + { + // sub_148CBC Moon v1.0 + List parse = []; + int sanityMode = 0; + + int i = 0; // Current Offset of decompressed instructions + while (i < cmd.Length) // read away + { + // Read a Command + int line = i; + uint c = cmd[i++]; + + string op; + switch (c & 0x7FFF) + { + default: + throw new ArgumentException("Invalid Command ID"); + case 0x01: + case 0x02: + case 0x05: + case 0x06: + case 0x0F: + case 0x10: + case 0x13: + case 0x14: + case 0x6D: + case 0x72: + { + // Peek at next value + var next = (int)cmd[i++]; + // Check Value against negative and zero... ? + + op = UnkeA(c, next); + break; + } + case 0x03: + case 0x04: + case 0x07: + case 0x08: + case 0x11: + case 0x12: + case 0x15: + case 0x16: + case 0x6E: + case 0x73: + { + // Peek at next value + var next = (int)cmd[i++]; + // Check Value against negative... ? + + op = UnkeA(c, next); + break; + } + case 0x09: + case 0x17: + case 0x19: + case 0x1B: + case 0x21: + case 0x22: + case 0x23: + case 0x24: + case 0x25: + case 0x2A: + case 0x2B: + case 0x2E: // Begin + case 0x2F: + case 0x30: // Return + case 0x41: + case 0x42: + case 0x43: + case 0x48: + case 0x49: + case 0x4A: + case 0x4B: + case 0x4C: + case 0x4D: + case 0x4E: // Add? + case 0x4F: + case 0x50: + case 0x51: // Cmp? + case 0x52: + case 0x53: + case 0x54: + case 0x55: + case 0x56: + case 0x59: // ClearAll + case 0x5A: + case 0x5D: + case 0x5E: + case 0x5F: + case 0x60: + case 0x61: + case 0x62: + case 0x63: + case 0x64: + case 0x65: + case 0x66: + case 0x67: + case 0x68: + case 0x6B: + case 0x6C: + case 0x6F: + case 0x70: + case 0x71: + case 0x74: + case 0x7A: + case 0x83: + case 0x84: + case 0x86: + case 0x89: // LineNo? + case 0xAA: + case 0xAB: // PushConst2 + case 0xAC: // CmpConst2 + case 0xAD: + case 0xAE: + case 0xB7: + case 0xB8: + case 0xB9: + case 0xBA: + case 0xBB: + case 0xBC: // PushConst + case 0xBD: + case 0xBE: + case 0xBF: // AdjustStack + case 0xC0: + case 0xC1: + case 0xC2: + case 0xC3: + case 0xC4: + case 0xC5: + case 0xC6: + case 0xC7: + case 0xC8: // CmpLocal + case 0xC9: // CmpConst + case 0xCA: + case 0xCF: + case 0xD0: + case 0xD1: + case 0xD2: + case 0xD3: + case 0xD4: + { + // no sanity checks + var arg = (short)(c >> 16); + + op = UnkeA(c & 0xFF, arg); + + if ((c & 0xFF) == 0x30) // return + op += Environment.NewLine; + break; + } + case 0x0A: + case 0x0B: + case 0x0C: + case 0x0D: + case 0x0E: + case 0x18: + case 0x1A: + case 0x1C: + case 0x1D: + case 0x1E: + case 0x1F: + case 0x20: + case 0x26: + case 0x27: // PushConst + case 0x28: + case 0x29: + case 0x2C: + case 0x2D: + case 0x34: + case 0x44: + case 0x45: + case 0x46: + case 0x47: + case 0x57: + case 0x58: + case 0x5B: + case 0x5C: + case 0x69: + case 0x6A: + case 0x75: + case 0x76: + case 0x77: + case 0x78: + case 0x79: + case 0x85: + { + var next = (int)cmd[i++]; + // No sanity check needed + + op = UnkeA(c, next); + break; + } + + case 0x31: // CallFunc + case 0x33: + case 0x35: // Jump!= + case 0x36: // Jump== + case 0x37: + case 0x38: + case 0x39: + case 0x3A: + case 0x3B: + case 0x3C: + case 0x3D: + case 0x3E: + case 0x3F: + case 0x40: + case 0x81: // Jump + { + var delta = (int)cmd[i++]; + // sanity check range... + // negative.. weird + + int newOfs = (line * 4) + delta; + op = $"{Commands[c]} => 0x{newOfs:X4} ({delta})"; + break; + } + case 0x7B: + { + var next = (int)cmd[i++]; + sanityMode |= 1; // flag mode 1 + + op = UnkeA(c, next); + break; + } + case 0x82: // JumpIfElse + { + //var jOffset = (i * 4) - 4; // todo: this may be the correct jump start point... + var count = cmd[i++]; // switch case table + // sanity check + + // Populate If-Case Tree + var tree = new List(); + + // Cases + for (int j = 0; j < count; j++) + { + var jmp = (int)cmd[i++]; + var toOffset = ((i - 2) * 4) + jmp; + var ifValue = (int)cmd[i++]; + tree.Add($"\t{ifValue} => 0x{toOffset:X4} ({jmp})"); + } + // Default + { + int jmp = (int)cmd[i++]; + var toOffset = ((i - 2) * 4) + jmp; + tree.Add($"\t* => 0x{toOffset:X4} ({jmp})"); + } + + op = Commands[c] + Environment.NewLine + string.Join(Environment.NewLine, tree); + break; + } + case 0x87: + { + var next1 = (int)cmd[i++]; + var next2 = (int)cmd[i++]; + sanityMode |= 2; // flag mode 2 + + op = UnkeA(c, next1, next2); + break; + } + + case 0x8A: + case 0x8B: + case 0x8C: + case 0x8D: + case 0x9C: + case 0x9D: + { + var next1 = (int)cmd[i++]; + var next2 = (int)cmd[i++]; + + op = UnkeA(c, next1, next2); + break; + } + + case 0x8E: + case 0x8F: + case 0x90: + case 0x91: + { + var next1 = cmd[i++]; + var next2 = cmd[i++]; + var next3 = cmd[i++]; + + op = UnkeF(c, next1, next2, next3); + break; + } + + case 0x92: + case 0x93: + case 0x94: + case 0x95: + { + var next1 = (int)cmd[i++]; + var next2 = (int)cmd[i++]; + var next3 = (int)cmd[i++]; + var next4 = (int)cmd[i++]; + + op = UnkeA(c, next1, next2, next3, next4); + break; + } + + case 0x96: // float + case 0x97: + case 0x98: + case 0x99: + { + var next1 = cmd[i++]; + var next2 = cmd[i++]; + var next3 = cmd[i++]; + var next4 = cmd[i++]; + var next5 = cmd[i++]; + + op = UnkeF(c, next1, next2, next3, next4, next5); + break; + } + + case 0x9A: + { + var next1 = (int)cmd[i++]; + var next2 = (int)cmd[i++]; + // a bunch of sanity checking + + op = UnkeA(c, next1, next2); + break; + } + + case 0x9B: // Copy + { + var next1 = (int)cmd[i++]; + var next2 = (int)cmd[i++]; + // a bunch of sanity checking + + op = UnkeA(c, next1, next2); + break; + } + + case 0x9E: + { + var next1 = (int)cmd[i++]; + // perm check a1 + 0x14 + // can return error code 0x1C + + op = UnkeA(c, next1); + break; + } + + case 0x9F: + { + // perm check a1 + 0x14 + // same permission checking as 0x9E + // can return error code 0x1C + + op = UnkeA(c); + break; + } + + case 0xA1: // Goto + { + // minimal sanity checks + // can return error code 0x1C + int newPos = i + (int)(1 + (2 * (cmd[i] / 4)) + 1); + + op = UnkeA(c, newPos); + break; + } + + case 0xA2: // GetGlobal2 + case 0xA3: // GetGlobal + case 0xA6: + case 0xA7: + case 0xAF: // SetGlobal + case 0xB0: + case 0xB3: + case 0xB4: + case 0xCB: + case 0xCD: + { + // sanity check arg + var arg = (short)(c >> 16); + + op = UnkeA(c & 0xFF, arg); + break; + } + case 0xA4: // GetGlobal4 + case 0xA5: + case 0xA8: + case 0xA9: + case 0xB1: // SetLocal + case 0xB2: + case 0xB5: + case 0xB6: + case 0xCC: + case 0xCE: + { + // sanity check arg, slightly different + var arg = (short)(c >> 16); + + op = UnkeA(c & 0xFF, arg); + break; + } + } + parse.Add($"0x{line * 4:X4}: [{c & 0x7FF:X2}] {op}"); + } + + if (sanity >= 0 && sanity != sanityMode) + throw new ArgumentException(null, nameof(sanity)); + + return [.. parse]; + } + + internal static string[] ParseMovement(uint[] cmd) + { + return GetHexLines(cmd); + } + + internal static string UnkeA(uint c, params int[] arr) + { + string cmd = Commands[c]; + string parameters = arr.Length == 0 ? "" : string.Join(", ", arr.Select(z => $"{(Math.Abs(z) < 100 ? z.ToString() : "0x" + z.ToString("X4"))}")); + return $"{cmd}({parameters})"; + } + + private static readonly Func getFloat = val => BitConverter.ToSingle(BitConverter.GetBytes(val), 0); + + internal static string UnkeF(uint c, params uint[] arr) + { + string cmd = Commands[c]; + string parameters = arr.Length == 1 ? "" : string.Join(", ", arr.Select(z => getFloat(z))); + return $"{cmd}({parameters})"; + } + + internal static readonly Dictionary Commands = new() + {// { 0x00, "$00" }, // Invalid Code + { 0x01, "$01" }, + { 0x02, "$02" }, + { 0x03, "$03" }, + { 0x04, "$04" }, + { 0x05, "$05" }, + { 0x06, "$06" }, + { 0x07, "$07" }, + { 0x08, "$08" }, + { 0x09, "$09" }, + { 0x0A, "$0A" }, + { 0x0B, "$0B" }, + { 0x0C, "$0C" }, + { 0x0D, "$0D" }, + { 0x0E, "$0E" }, + { 0x0F, "$0F" }, + { 0x10, "$10" }, + { 0x11, "$11" }, + { 0x12, "$12" }, + { 0x13, "$13" }, + { 0x14, "$14" }, + { 0x15, "$15" }, + { 0x16, "$16" }, + { 0x17, "$17" }, + { 0x18, "$18" }, + { 0x19, "$19" }, + { 0x1A, "$1A" }, + { 0x1B, "$1B" }, + { 0x1C, "$1C" }, + { 0x1D, "$1D" }, + { 0x1E, "$1E" }, + { 0x1F, "$1F" }, + { 0x20, "$20" }, + { 0x21, "$21" }, + { 0x22, "$22" }, + { 0x23, "$23" }, + { 0x24, "$24" }, + { 0x25, "$25" }, + { 0x26, "$26" }, + { 0x27, "PushConst" }, + { 0x28, "$28" }, + { 0x29, "$29" }, + { 0x2A, "$2A" }, + { 0x2B, "$2B" }, + { 0x2C, "$2C" }, + { 0x2D, "$2D" }, + { 0x2E, "Begin" }, + { 0x2F, "$2F" }, + { 0x30, "Return" }, + { 0x31, "CallFunc" }, + { 0x32, "$32" }, + { 0x33, "$33" }, + { 0x34, "$34" }, + { 0x35, "BNE" }, + { 0x36, "BEQ" }, + { 0x37, "$37" }, + { 0x38, "$38" }, + { 0x39, "$39" }, + { 0x3A, "$3A" }, + { 0x3B, "$3B" }, + { 0x3C, "$3C" }, + { 0x3D, "$3D" }, + { 0x3E, "$3E" }, + { 0x3F, "$3F" }, + { 0x40, "$40" }, + { 0x41, "$41" }, + { 0x42, "$42" }, + { 0x43, "$43" }, + { 0x44, "$44" }, + { 0x45, "$45" }, + { 0x46, "$46" }, + { 0x47, "$47" }, + { 0x48, "$48" }, + { 0x49, "$49" }, + { 0x4A, "$4A" }, + { 0x4B, "$4B" }, + { 0x4C, "$4C" }, + { 0x4D, "$4D" }, + { 0x4E, "Add?" }, + { 0x4F, "$4F" }, + { 0x50, "$50" }, + { 0x51, "Cmp?" }, + { 0x52, "$52" }, + { 0x53, "$53" }, + { 0x54, "$54" }, + { 0x55, "$55" }, + { 0x56, "$56" }, + { 0x57, "$57" }, + { 0x58, "$58" }, + { 0x59, "ClearAll" }, + { 0x5A, "$5A" }, + { 0x5B, "$5B" }, + { 0x5C, "$5C" }, + { 0x5D, "$5D" }, + { 0x5E, "$5E" }, + { 0x5F, "$5F" }, + { 0x60, "$60" }, + { 0x61, "$61" }, + { 0x62, "$62" }, + { 0x63, "$63" }, + { 0x64, "$64" }, + { 0x65, "$65" }, + { 0x66, "$66" }, + { 0x67, "$67" }, + { 0x68, "$68" }, + { 0x69, "$69" }, + { 0x6A, "$6A" }, + { 0x6B, "$6B" }, + { 0x6C, "$6C" }, + { 0x6D, "$6D" }, + { 0x6E, "$6E" }, + { 0x6F, "$6F" }, + { 0x70, "$70" }, + { 0x71, "$71" }, + { 0x72, "$72" }, + { 0x73, "$73" }, + { 0x74, "$74" }, + { 0x75, "$75" }, + { 0x76, "$76" }, + { 0x77, "$77" }, + { 0x78, "$78" }, + { 0x79, "$79" }, + { 0x7A, "$7A" }, + { 0x7B, "$7B" }, + // { 0x7C, "$7C" }, // Invalid Code + // { 0x7D, "$7D" }, // Invalid Code + // { 0x7E, "$7E" }, // Invalid Code + // { 0x7F, "$7F" }, // Invalid Code + // { 0x80, "$80" }, // Invalid Code + { 0x81, "JMP" }, + { 0x82, "switch" }, + { 0x83, "$83" }, + { 0x84, "$84" }, + { 0x85, "$85" }, + { 0x86, "$86" }, + { 0x87, "DoCommand?" }, + // { 0x88, "$88" }, // Invalid Code + { 0x89, "LineNo?" }, + { 0x8A, "$8A" }, + { 0x8B, "$8B" }, + { 0x8C, "$8C" }, + { 0x8D, "$8D" }, + { 0x8E, "$8E" }, + { 0x8F, "$8F" }, + { 0x90, "$90" }, + { 0x91, "$91" }, + { 0x92, "$92" }, + { 0x93, "$93" }, + { 0x94, "$94" }, + { 0x95, "$95" }, + { 0x96, "$96" }, + { 0x97, "$97" }, + { 0x98, "$98" }, + { 0x99, "$99" }, + { 0x9A, "$9A" }, + { 0x9B, "Copy" }, + { 0x9C, "$9C" }, + { 0x9D, "$9D" }, + { 0x9E, "$9E" }, + { 0x9F, "$9F" }, + { 0xA0, "$A0" }, + { 0xA1, "$A1" }, + { 0xA2, "GetGlobal2" }, + { 0xA3, "GetGlobal" }, + { 0xA4, "GetGlobal4" }, + { 0xA5, "$A5" }, + { 0xA6, "$A6" }, + { 0xA7, "$A7" }, + { 0xA8, "$A8" }, + { 0xA9, "$A9" }, + { 0xAA, "$AA" }, + { 0xAB, "PushConst2" }, + { 0xAC, "CmpConst2" }, + { 0xAD, "$AD" }, + { 0xAE, "$AE" }, + { 0xAF, "SetGlobal" }, + { 0xB0, "$B0" }, + { 0xB1, "SetLocal" }, + { 0xB2, "$B2" }, + { 0xB3, "$B3" }, + { 0xB4, "$B4" }, + { 0xB5, "$B5" }, + { 0xB6, "$B6" }, + { 0xB7, "$B7" }, + { 0xB8, "$B8" }, + { 0xB9, "$B9" }, + { 0xBA, "$BA" }, + { 0xBB, "$BB" }, + { 0xBC, "PushConst" }, + { 0xBD, "GetGlobal3" }, + { 0xBE, "GetArg" }, + { 0xBF, "AdjustStack" }, + { 0xC0, "$C0" }, + { 0xC1, "$C1" }, + { 0xC2, "$C2" }, + { 0xC3, "$C3" }, + { 0xC4, "$C4" }, + { 0xC5, "$C5" }, + { 0xC6, "$C6" }, + { 0xC7, "$C7" }, + { 0xC8, "CmpLocal" }, + { 0xC9, "CmpConst" }, + { 0xCA, "$CA" }, + { 0xCB, "$CB" }, + { 0xCC, "$CC" }, + { 0xCD, "$CD" }, + { 0xCE, "$CE" }, + { 0xCF, "$CF" }, + { 0xD0, "$D0" }, + + { 0xD1, "$D1" }, + { 0xD2, "$D2" }, + { 0xD3, "$D3" }, + { 0xD4, "$D4" }, + { 0xD5, "Mode1" }, + { 0xD6, "Mode2" }, + }; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Tools/Shuffler.Designer.cs b/pk3DS.WinForms/Tools/Shuffler.Designer.cs new file mode 100644 index 0000000000..38db5e9520 --- /dev/null +++ b/pk3DS.WinForms/Tools/Shuffler.Designer.cs @@ -0,0 +1,155 @@ +namespace pk3DS.WinForms; + +partial class Shuffler +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.CB_a = new System.Windows.Forms.ComboBox(); + this.CB_b = new System.Windows.Forms.ComboBox(); + this.CB_c = new System.Windows.Forms.ComboBox(); + this.L_a = new System.Windows.Forms.Label(); + this.L_File = new System.Windows.Forms.Label(); + this.B_Shuffle = new System.Windows.Forms.Button(); + this.SuspendLayout(); + // + // CB_a + // + this.CB_a.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_a.FormattingEnabled = true; + this.CB_a.Items.AddRange(new object[] { + "0", + "1", + "2", + "3"}); + this.CB_a.Location = new System.Drawing.Point(36, 11); + this.CB_a.Name = "CB_a"; + this.CB_a.Size = new System.Drawing.Size(34, 21); + this.CB_a.TabIndex = 0; + this.CB_a.SelectedIndexChanged += new System.EventHandler(this.UpdateLabel); + // + // CB_b + // + this.CB_b.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_b.FormattingEnabled = true; + this.CB_b.Items.AddRange(new object[] { + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9"}); + this.CB_b.Location = new System.Drawing.Point(76, 11); + this.CB_b.Name = "CB_b"; + this.CB_b.Size = new System.Drawing.Size(34, 21); + this.CB_b.TabIndex = 1; + this.CB_b.SelectedIndexChanged += new System.EventHandler(this.UpdateLabel); + // + // CB_c + // + this.CB_c.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.CB_c.FormattingEnabled = true; + this.CB_c.Items.AddRange(new object[] { + "0", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9"}); + this.CB_c.Location = new System.Drawing.Point(116, 11); + this.CB_c.Name = "CB_c"; + this.CB_c.Size = new System.Drawing.Size(34, 21); + this.CB_c.TabIndex = 2; + this.CB_c.SelectedIndexChanged += new System.EventHandler(this.UpdateLabel); + // + // L_a + // + this.L_a.Location = new System.Drawing.Point(12, 9); + this.L_a.Name = "L_a"; + this.L_a.Size = new System.Drawing.Size(18, 23); + this.L_a.TabIndex = 3; + this.L_a.Text = "a"; + this.L_a.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // L_File + // + this.L_File.Location = new System.Drawing.Point(15, 35); + this.L_File.Name = "L_File"; + this.L_File.Size = new System.Drawing.Size(135, 23); + this.L_File.TabIndex = 4; + this.L_File.Text = "FILENAME HERE"; + this.L_File.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // B_Shuffle + // + this.B_Shuffle.Location = new System.Drawing.Point(76, 67); + this.B_Shuffle.Name = "B_Shuffle"; + this.B_Shuffle.Size = new System.Drawing.Size(75, 23); + this.B_Shuffle.TabIndex = 5; + this.B_Shuffle.Text = "Shuffle!"; + this.B_Shuffle.UseVisualStyleBackColor = true; + this.B_Shuffle.Click += new System.EventHandler(this.B_Shuffle_Click); + // + // Shuffler + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(164, 102); + this.Controls.Add(this.B_Shuffle); + this.Controls.Add(this.L_File); + this.Controls.Add(this.L_a); + this.Controls.Add(this.CB_c); + this.Controls.Add(this.CB_b); + this.Controls.Add(this.CB_a); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; + this.MaximizeBox = false; + this.MaximumSize = new System.Drawing.Size(180, 140); + this.MinimizeBox = false; + this.MinimumSize = new System.Drawing.Size(180, 140); + this.Name = "Shuffler"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Shuffler"; + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.ComboBox CB_a; + private System.Windows.Forms.ComboBox CB_b; + private System.Windows.Forms.ComboBox CB_c; + private System.Windows.Forms.Label L_a; + private System.Windows.Forms.Label L_File; + private System.Windows.Forms.Button B_Shuffle; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Tools/Shuffler.cs b/pk3DS.WinForms/Tools/Shuffler.cs new file mode 100644 index 0000000000..261c3bdac6 --- /dev/null +++ b/pk3DS.WinForms/Tools/Shuffler.cs @@ -0,0 +1,138 @@ +using pk3DS.Core; +using pk3DS.Core.CTR; +using System; +using System.IO; +using System.Linq; +using System.Windows.Forms; + +namespace pk3DS.WinForms; + +/* GARC File Shuffler + * Shuffles the FATB table references around (Start/End/Length) + * Only shuffles nonfoldered files around. + * Backs up the original file incase the user shuffles a file with ill-effect. + */ +public partial class Shuffler : Form +{ + public Shuffler() + { + InitializeComponent(); + CB_a.SelectedIndex = CB_b.SelectedIndex = CB_c.SelectedIndex = 0; + + // Ban Models, Encounters, TitleScreen etc + banlist = Main.Config.ORAS + ? + [ + "a005", "a008", "a013", "a039", "a040", "a071", "a072", "a073", "a074", "a075", "a076", "a078", "a079", "a080", "a081", "a082", "a083", "a084", "a085", "a086", + "a100", "a152", + "a195", + ] + : + [ + "a005", "a007", "a012", "a041", "a042", "a072", "a073", "a074", "a075", "a076", "a078", "a079", "a080", "a081", "a082", "a083", "a084", "a085", "a086", "a087", + "a101", "a165", + "a218", + ]; + } + + private string garc; + private readonly string[] banlist; + + private void UpdateLabel(object sender, EventArgs e) + { + garc = Path.Combine(Main.RomFSPath, "a", + CB_a.SelectedIndex.ToString(), CB_b.SelectedIndex.ToString(), CB_c.SelectedIndex.ToString()); + + if (File.Exists(garc)) + { + L_File.Text = $"File: a\\{CB_a.SelectedIndex}\\{CB_b.SelectedIndex}\\{CB_c.SelectedIndex}"; + B_Shuffle.Enabled = true; + } + else + { + L_File.Text = "File does not exist!"; + B_Shuffle.Enabled = false; + garc = null; + } + } + + private void B_Shuffle_Click(object sender, EventArgs e) + { + if (garc == null) + return; + + string garcID = L_File.Text.Split(':')[1].Replace("\\", "").Replace(" ", ""); + if (banlist.Contains(garcID)) + { WinFormsUtil.Alert("GARC is prevented from being shuffled."); return; } + + var g = GARC.UnpackGARC(garc); + + // Build a list of all the files we can relocate. + int[] randFiles = new int[g.fatb.FileCount]; + int ctr = 0; + for (int i = 0; i < randFiles.Length; i++) + { + if (!g.fatb.Entries[i].IsFolder) + randFiles[ctr++] = i; + } + + Array.Resize(ref randFiles, ctr); + + if (ctr == 0) + { WinFormsUtil.Alert("No files to shuffle...?"); return; } + + // Create backup + string dest = "backup" + Path.DirectorySeparatorChar + $"PreShuffle {garcID}"; + if (!File.Exists(dest)) + File.Copy(garc, dest); + + var g2 = GARC.UnpackGARC(garc); + int[] newFileOffset = (int[])randFiles.Clone(); + Util.Shuffle(newFileOffset); + + for (int i = 0; i < randFiles.Length; i++) + g.fatb.Entries[randFiles[i]] = g2.fatb.Entries[newFileOffset[i]]; + + #region Re-write GARC Header information! + using (var newGARC = File.OpenWrite(garc)) + using (var gw = new BinaryWriter(newGARC)) + { + gw.Seek(7 * 4, SeekOrigin.Begin); // Skip GARC Header + // Write GARC + // gw.Write((uint)0x47415243); // GARC + // gw.Write((uint)0x0000001C); // Header Length + // gw.Write((ushort)0xFEFF); // Endianness BOM + // gw.Write((ushort)0x0400); // Const (4) + // gw.Write((uint)0x00000004); // Section Count (4) + // gw.Write((uint)0x00000000); // Data Offset (temp) + // gw.Write((uint)0x00000000); // File Length (temp) + // gw.Write((uint)0x00000000); // Largest File Size (temp) + + // Write FATO + gw.Write((uint)0x4641544F); // FATO + gw.Write(g.fato.HeaderSize); // Header Size + gw.Write(g.fato.EntryCount); // Entry Count + gw.Write(g.fato.Padding); // Padding + foreach (var t in g.fato.Entries) + gw.Write((uint)t.Offset); + + // Write FATB + gw.Write((uint)0x46415442); // FATB + gw.Write(g.fatb.HeaderSize); // Header Size + gw.Write(g.fatb.FileCount); // File Count + foreach (var fe in g.fatb.Entries) + { + gw.Write(fe.Vector); + foreach (var s in fe.SubEntries.Where(s => s.Exists)) + { + gw.Write((uint)s.Start); + gw.Write((uint)s.End); + gw.Write((uint)s.Length); + } + } + } + #endregion + + WinFormsUtil.Alert("GARC Shuffled!"); + } +} \ No newline at end of file diff --git a/pk3DS/Tools/Shuffler.resx b/pk3DS.WinForms/Tools/Shuffler.resx similarity index 100% rename from pk3DS/Tools/Shuffler.resx rename to pk3DS.WinForms/Tools/Shuffler.resx diff --git a/pk3DS.WinForms/Tools/ToolsUI.Designer.cs b/pk3DS.WinForms/Tools/ToolsUI.Designer.cs new file mode 100644 index 0000000000..8e5ecf1594 --- /dev/null +++ b/pk3DS.WinForms/Tools/ToolsUI.Designer.cs @@ -0,0 +1,231 @@ +namespace pk3DS.WinForms; + +sealed partial class ToolsUI +{ + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.PB_Unpack = new System.Windows.Forms.Panel(); + this.L_DARCMini = new System.Windows.Forms.Label(); + this.CHK_PNG = new System.Windows.Forms.CheckBox(); + this.label1 = new System.Windows.Forms.Label(); + this.PB_Repack = new System.Windows.Forms.Panel(); + this.label4 = new System.Windows.Forms.Label(); + this.CB_Repack = new System.Windows.Forms.ComboBox(); + this.PB_BCLIM = new System.Windows.Forms.PictureBox(); + this.B_Reset = new System.Windows.Forms.Button(); + this.CHK_Delete = new System.Windows.Forms.CheckBox(); + this.pBar1 = new System.Windows.Forms.ProgressBar(); + this.NUD_Padding = new System.Windows.Forms.NumericUpDown(); + this.L_Padding = new System.Windows.Forms.Label(); + ((System.ComponentModel.ISupportInitialize)(this.PB_BCLIM)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Padding)).BeginInit(); + this.SuspendLayout(); + // + // PB_Unpack + // + this.PB_Unpack.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.PB_Unpack.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.PB_Unpack.Location = new System.Drawing.Point(12, 25); + this.PB_Unpack.Name = "PB_Unpack"; + this.PB_Unpack.Size = new System.Drawing.Size(300, 67); + this.PB_Unpack.TabIndex = 0; + this.PB_Unpack.MouseLeave += new System.EventHandler(this.DropLeave); + this.PB_Unpack.MouseHover += new System.EventHandler(this.DropHover); + // + // L_DARCMini + // + this.L_DARCMini.AutoSize = true; + this.L_DARCMini.Location = new System.Drawing.Point(9, 9); + this.L_DARCMini.Name = "L_DARCMini"; + this.L_DARCMini.Size = new System.Drawing.Size(294, 13); + this.L_DARCMini.TabIndex = 1; + this.L_DARCMini.Text = "GARC, DARC && Mini Unpack (CTRL to Skip Decompression)"; + // + // CHK_PNG + // + this.CHK_PNG.AutoSize = true; + this.CHK_PNG.Location = new System.Drawing.Point(89, 209); + this.CHK_PNG.Name = "CHK_PNG"; + this.CHK_PNG.Size = new System.Drawing.Size(97, 17); + this.CHK_PNG.TabIndex = 2; + this.CHK_PNG.Text = "Autosave PNG"; + this.CHK_PNG.UseVisualStyleBackColor = true; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(9, 210); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(74, 13); + this.label1.TabIndex = 3; + this.label1.Text = "BCLIM Viewer"; + // + // PB_Repack + // + this.PB_Repack.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.PB_Repack.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.PB_Repack.Location = new System.Drawing.Point(168, 124); + this.PB_Repack.Name = "PB_Repack"; + this.PB_Repack.Size = new System.Drawing.Size(144, 67); + this.PB_Repack.TabIndex = 5; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(9, 108); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(77, 13); + this.label4.TabIndex = 7; + this.label4.Text = "Folder Repack"; + // + // CB_Repack + // + this.CB_Repack.FormattingEnabled = true; + this.CB_Repack.Location = new System.Drawing.Point(12, 124); + this.CB_Repack.Name = "CB_Repack"; + this.CB_Repack.Size = new System.Drawing.Size(150, 21); + this.CB_Repack.TabIndex = 8; + // + // PB_BCLIM + // + this.PB_BCLIM.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; + this.PB_BCLIM.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.PB_BCLIM.Location = new System.Drawing.Point(12, 226); + this.PB_BCLIM.Name = "PB_BCLIM"; + this.PB_BCLIM.Size = new System.Drawing.Size(300, 124); + this.PB_BCLIM.TabIndex = 1; + this.PB_BCLIM.TabStop = false; + this.PB_BCLIM.Click += new System.EventHandler(this.PB_BCLIM_Click); + // + // B_Reset + // + this.B_Reset.Location = new System.Drawing.Point(12, 184); + this.B_Reset.Name = "B_Reset"; + this.B_Reset.Size = new System.Drawing.Size(80, 23); + this.B_Reset.TabIndex = 9; + this.B_Reset.Text = "Reset View"; + this.B_Reset.UseVisualStyleBackColor = true; + this.B_Reset.Click += new System.EventHandler(this.B_Reset_Click); + // + // CHK_Delete + // + this.CHK_Delete.AutoSize = true; + this.CHK_Delete.Checked = true; + this.CHK_Delete.CheckState = System.Windows.Forms.CheckState.Checked; + this.CHK_Delete.Location = new System.Drawing.Point(12, 148); + this.CHK_Delete.Name = "CHK_Delete"; + this.CHK_Delete.Size = new System.Drawing.Size(155, 17); + this.CHK_Delete.TabIndex = 10; + this.CHK_Delete.Text = "Delete Folder after Packing"; + this.CHK_Delete.UseVisualStyleBackColor = true; + // + // pBar1 + // + this.pBar1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.pBar1.Location = new System.Drawing.Point(12, 95); + this.pBar1.Name = "pBar1"; + this.pBar1.Size = new System.Drawing.Size(300, 12); + this.pBar1.TabIndex = 11; + // + // NUD_Padding + // + this.NUD_Padding.Hexadecimal = true; + this.NUD_Padding.Location = new System.Drawing.Point(118, 164); + this.NUD_Padding.Maximum = new decimal(new int[] { + 65536, + 0, + 0, + 0}); + this.NUD_Padding.Name = "NUD_Padding"; + this.NUD_Padding.Size = new System.Drawing.Size(44, 20); + this.NUD_Padding.TabIndex = 12; + this.NUD_Padding.Value = new decimal(new int[] { + 4, + 0, + 0, + 0}); + // + // L_Padding + // + this.L_Padding.Location = new System.Drawing.Point(12, 164); + this.L_Padding.Name = "L_Padding"; + this.L_Padding.Size = new System.Drawing.Size(100, 20); + this.L_Padding.TabIndex = 13; + this.L_Padding.Text = "GARC Padding:"; + this.L_Padding.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // ToolsUI + // + this.AllowDrop = true; + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(324, 362); + this.Controls.Add(this.L_Padding); + this.Controls.Add(this.NUD_Padding); + this.Controls.Add(this.pBar1); + this.Controls.Add(this.CHK_Delete); + this.Controls.Add(this.B_Reset); + this.Controls.Add(this.CB_Repack); + this.Controls.Add(this.label4); + this.Controls.Add(this.PB_Repack); + this.Controls.Add(this.label1); + this.Controls.Add(this.CHK_PNG); + this.Controls.Add(this.PB_BCLIM); + this.Controls.Add(this.L_DARCMini); + this.Controls.Add(this.PB_Unpack); + this.MaximizeBox = false; + this.MinimumSize = new System.Drawing.Size(340, 400); + this.Name = "ToolsUI"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "Tools"; + this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.CloseForm); + ((System.ComponentModel.ISupportInitialize)(this.PB_BCLIM)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.NUD_Padding)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Panel PB_Unpack; + private System.Windows.Forms.Label L_DARCMini; + private System.Windows.Forms.CheckBox CHK_PNG; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Panel PB_Repack; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.ComboBox CB_Repack; + private System.Windows.Forms.PictureBox PB_BCLIM; + private System.Windows.Forms.Button B_Reset; + private System.Windows.Forms.CheckBox CHK_Delete; + private System.Windows.Forms.ProgressBar pBar1; + private System.Windows.Forms.NumericUpDown NUD_Padding; + private System.Windows.Forms.Label L_Padding; +} \ No newline at end of file diff --git a/pk3DS.WinForms/Tools/ToolsUI.cs b/pk3DS.WinForms/Tools/ToolsUI.cs new file mode 100644 index 0000000000..759db0ade7 --- /dev/null +++ b/pk3DS.WinForms/Tools/ToolsUI.cs @@ -0,0 +1,393 @@ +using pk3DS.Core.CTR; +using System; +using System.Drawing; +using System.IO; +using System.Linq; +using System.Threading; +using System.Windows.Forms; +using pk3DS.Core; + +namespace pk3DS.WinForms; + +public sealed partial class ToolsUI : Form +{ + public ToolsUI() + { + InitializeComponent(); + AllowDrop = PB_Unpack.AllowDrop = PB_Repack.AllowDrop = PB_BCLIM.AllowDrop = true; + DragEnter += TabMain_DragEnter; + DragDrop += TabMain_DragDrop; + PB_Unpack.DragEnter += TabMain_DragEnter; + PB_Unpack.DragDrop += TabMain_DragDrop; + PB_Repack.DragEnter += TabMain_DragEnter; + PB_Repack.DragDrop += TabMain_DragDrop; + PB_BCLIM.DragEnter += TabMain_DragEnter; + PB_BCLIM.DragDrop += TabMain_DragDrop; + CLIMWindow = PB_BCLIM.Size; + CB_Repack.Items.Add("Autodetect"); + CB_Repack.Items.Add("GARC Pack"); + CB_Repack.Items.Add("DARC Pack (use filenames)"); + CB_Repack.Items.Add("Mini Pack (from Name)"); + CB_Repack.SelectedIndex = 0; + } + + private void TabMain_DragEnter(object sender, DragEventArgs e) + { + if (e.Data.GetDataPresent(DataFormats.FileDrop)) + e.Effect = DragDropEffects.Copy; + } + + private void TabMain_DragDrop(object sender, DragEventArgs e) + { + string[] files = (string[])e.Data.GetData(DataFormats.FileDrop); + foreach (var path in files) + HandleDrop(sender, path); + System.Media.SystemSounds.Asterisk.Play(); + } + + private void HandleDrop(object sender, string path) + { + if (sender == PB_Unpack) + OpenARC(path, pBar1); + else if (sender == PB_BCLIM) + OpenIMG(path); + else if (sender == PB_Repack) + SaveARC(path); + else + DecompressLZSS_BLZ(path); + } + + private void DecompressLZSS_BLZ(string path) + { + try + { + LZSS.Decompress(path, Path.Combine(Path.GetDirectoryName(path), "dec_" + Path.GetFileName(path))); + File.Delete(path); + } + catch + { + try + { + if (threads < 1) + new Thread(() => { Interlocked.Increment(ref threads); new BLZCoder(["-d", path], pBar1); Interlocked.Decrement(ref threads); WinFormsUtil.Alert("Decompressed!"); }).Start(); + } + catch { WinFormsUtil.Error("Unable to process file."); threads = 0; } + } + } + + private void DropHover(object sender, EventArgs e) => ((Panel)sender).BackColor = Color.Gray; + private void DropLeave(object sender, EventArgs e) => ((Panel)sender).BackColor = Color.Transparent; + + private void OpenIMG(string path) + { + var img = BCLIM.MakeBMP(path, CHK_PNG.Checked); + if (img == null) + { + try + { + var flim = new BFLIM(path); + if (!flim.Footer.Valid) + return; + img = flim.GetBitmap(); + } + catch (Exception ree) + { + Console.WriteLine(ree.Message); + return; + } + if (CHK_PNG.Checked) + { + var dir = Path.GetDirectoryName(path); + var fn = Path.GetFileNameWithoutExtension(path); + var outpath = Path.Combine(dir, $"{fn}.png"); + img.Save(outpath); + } + } + PB_BCLIM.Size = new Size(img.Width + 2, img.Height + 2); + PB_BCLIM.BackgroundImage = img; + int leftpad = PB_BCLIM.Location.X; + int suggestedWidth = (leftpad * 2) + PB_BCLIM.Width + 10; + if (Width < suggestedWidth) + Width = suggestedWidth; + + int suggestedHeight = PB_BCLIM.Location.Y + PB_BCLIM.Height + leftpad + 30; + if (Height < suggestedHeight) + Height = suggestedHeight; + } + + internal static volatile int threads; + + internal static void OpenARC(string path, ProgressBar pBar1, bool recursing = false) + { + string newFolder = ""; + try + { + // Pre-check file length to see if it is at least valid. + var fi = new FileInfo(path); + if (fi.Length > (long)2 * (1 << 30)) + { WinFormsUtil.Error("File is too big!"); return; } // 2 GB + string folderPath = Path.Combine(Path.GetDirectoryName(path), Path.GetFileNameWithoutExtension(path)); + + byte[] first4 = new byte[4]; + try + { + using var fs = new FileStream(path, FileMode.Open); + using var bw = new BinaryReader(fs); + first4 = bw.ReadBytes(4); + } + catch (Exception e) + { + WinFormsUtil.Error("Cannot open file!", e.ToString()); + } + + // Determine if it is a DARC or a Mini + // Check if Mini first + string fx = fi.Length > 10 * (1 << 20) ? null : Mini.GetIsMini(path); // no mini is above 10MB + if (fx != null) // Is Mini Packed File + { + newFolder = folderPath + "_" + fx; + // Fetch Mini File Contents + Mini.UnpackMini(path, fx, newFolder, false); + // Recurse throught the extracted contents if they extract successfully + if (Directory.Exists(newFolder)) + { + foreach (string file in Directory.GetFiles(newFolder)) + OpenARC(file, pBar1, true); + BatchRenameExtension(newFolder); + } + } + else if (first4.SequenceEqual(BitConverter.GetBytes(0x54594C41))) // ALYT + { + if (threads > 0) { WinFormsUtil.Alert("Please wait for all operations to finish first."); return; } + new Thread(() => + { + Interlocked.Increment(ref threads); + var alyt = new ALYT(File.ReadAllBytes(path)); + var sarc = new SARC(alyt.Data) // rip out sarc + { + FileName = Path.GetFileNameWithoutExtension(path) + "_sarc", + FilePath = Path.GetDirectoryName(path), + }; + if (!sarc.Valid) + return; + var files = sarc.Dump(); + foreach (var _ in files) + { + // openARC(file, pBar1, true); + } + Interlocked.Decrement(ref threads); + }).Start(); + } + else if (first4.SequenceEqual(BitConverter.GetBytes(0x47415243))) // GARC + { + if (threads > 0) { WinFormsUtil.Alert("Please wait for all operations to finish first."); return; } + bool SkipDecompression = ModifierKeys == Keys.Control; + new Thread(() => + { + Interlocked.Increment(ref threads); + bool r = GarcUtil.UnpackGARC(path, folderPath + "_g", SkipDecompression, pBar1); + Interlocked.Decrement(ref threads); + if (r) + { + BatchRenameExtension(newFolder); + } + else + { WinFormsUtil.Alert("Unpacking failed."); return; } + System.Media.SystemSounds.Asterisk.Play(); + }).Start(); + } + else if (ARC.Analyze(path).valid) // DARC + { + var data = File.ReadAllBytes(path); + int pos = 0; + while (BitConverter.ToUInt32(data, pos) != 0x63726164) + { + pos += 4; + if (pos >= data.Length) return; + } + var darcData = data.Skip(pos).ToArray(); + newFolder = folderPath + "_d"; + bool r = Core.CTR.DARC.Darc2files(darcData, newFolder); + if (!r) + { WinFormsUtil.Alert("Unpacking failed."); } + } + else if (ARC.AnalyzeSARC(path).Valid) + { + var sarc = ARC.AnalyzeSARC(path); + Console.WriteLine($"New SARC with {sarc.SFAT.EntryCount} files."); + foreach (var _ in sarc.Dump(path)) + { + } + } + else if (!recursing) + { WinFormsUtil.Alert("File is not a darc or a mini packed file:" + Environment.NewLine + path); } + } + catch (Exception e) + { + if (!recursing) + WinFormsUtil.Error("File error:" + Environment.NewLine + path, e.ToString()); + threads = 0; + } + } + + private void SaveARC(string path) + { + if (!Directory.Exists(path)) { WinFormsUtil.Error("Input path is not a Folder", path); return; } + string folderName = Path.GetFileName(path); + string parentName = Directory.GetParent(path).FullName; + int type = CB_Repack.SelectedIndex; + switch (type) + { + case 0: // AutoDetect + { + if (!folderName.Contains('_')) + { WinFormsUtil.Alert("Unable to autodetect pack type."); return; } + + if (folderName.Contains("_g")) + goto case 1; + if (folderName.Contains("_d")) + goto case 2; + // else + goto case 3; + } + case 1: // GARC Pack + { + if (threads > 0) { WinFormsUtil.Alert("Please wait for all operations to finish first."); return; } + DialogResult dr = WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Format Selection:", + "Yes: Sun/Moon (Version 6)\nNo: XY/ORAS (Version 4)"); + if (dr == DialogResult.Cancel) + return; + + var version = dr == DialogResult.Yes ? GARC.VER_6 : GARC.VER_4; + int padding = (int)NUD_Padding.Value; + if (version == GARC.VER_4) + padding = 4; + + string outfolder = Directory.GetParent(path).FullName; + new Thread(() => + { + bool r = GarcUtil.PackGARC(path, Path.Combine(outfolder, folderName + ".garc"), version, padding, pBar1); + if (!r) { WinFormsUtil.Alert("Packing failed."); return; } + // Delete path after repacking + if (CHK_Delete.Checked && Directory.Exists(path)) + Directory.Delete(path, true); + + System.Media.SystemSounds.Asterisk.Play(); + }).Start(); + return; + } + case 2: // DARC Pack (from existing if exists) + { + string oldFile = path.Replace("_d", ""); + if (File.Exists(Path.Combine(parentName, oldFile))) + oldFile = Path.Combine(parentName, oldFile); + else if (File.Exists(Path.Combine(parentName, oldFile + ".bin"))) + oldFile = Path.Combine(parentName, oldFile + ".bin"); + else if (File.Exists(Path.Combine(parentName, oldFile + ".darc"))) + oldFile = Path.Combine(parentName, oldFile + ".darc"); + else oldFile = null; + + bool r = Core.CTR.DARC.Files2darc(path, false, oldFile); + if (!r) WinFormsUtil.Alert("Packing failed."); + break; + } + case 3: // Mini Pack + { + // Get Folder Name + string fileName = Path.GetFileName(path); + if (fileName.Length < 3) { WinFormsUtil.Error("Mini Folder name not valid:", path); return; } + + int index = fileName.LastIndexOf('_'); + string fileNum = fileName[..index]; + string fileExt = fileName[(index + 1)..]; + + // Find old file for reference... + string file; + if (File.Exists(Path.Combine(parentName, fileNum + ".bin"))) + file = Path.Combine(parentName, fileNum + ".bin"); + else if (File.Exists(Path.Combine(parentName, fileNum + "." + fileExt))) + file = Path.Combine(parentName, fileNum + "." + fileExt); + else + file = null; + + byte[] oldData = file != null ? File.ReadAllBytes(file) : null; + bool r = Mini.PackMini2(path, fileExt, Path.Combine(parentName, fileNum + "." + fileExt)); + if (!r) + { + WinFormsUtil.Alert("Packing failed."); + break; + } + + // Check to see if the header size is different... + if (oldData == null) // No data to compare to. + break; + + byte[] newData = File.ReadAllBytes(Path.Combine(parentName, fileNum + "." + fileExt)); + if (newData[2] == oldData[2]) + { + int newPtr = BitConverter.ToInt32(newData, 4); + int oldPtr = BitConverter.ToInt32(oldData, 4); + if (newPtr != oldPtr) // Header size is different. Prompt repointing. + { + if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Header size of existing file is nonstandard.", "Adjust newly packed file to have the same header size as old file? Data pointers will be updated accordingly.")) + break; + + // Fix pointers + byte[] update = Mini.AdjustMiniHeader(newData, oldPtr); + File.WriteAllBytes(Path.Combine(parentName, fileNum + "." + fileExt), update); + } + } + + break; + } + default: + WinFormsUtil.Alert("Repacking not implemented." + Environment.NewLine + path); + return; + } + // Delete path after repacking + if (CHK_Delete.Checked && Directory.Exists(path)) + Directory.Delete(path, true); + System.Media.SystemSounds.Asterisk.Play(); + } + + private void PB_BCLIM_Click(object sender, EventArgs e) + { + if (ModifierKeys == Keys.Control && WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Copy image to clipboard?") == DialogResult.Yes) + Clipboard.SetImage(PB_BCLIM.BackgroundImage); + else if (PB_BCLIM.BackColor == Color.Transparent) + PB_BCLIM.BackColor = Color.GreenYellow; + else PB_BCLIM.BackColor = Color.Transparent; + } + + // Utility + private readonly Size CLIMWindow; + + private void B_Reset_Click(object sender, EventArgs e) + { + PB_BCLIM.Size = CLIMWindow; + } + + private static void BatchRenameExtension(string Folder) + { + if (!Directory.Exists(Folder)) + return; + + foreach (string f in Directory.GetFiles(Folder, "*", SearchOption.AllDirectories)) + { + try + { + string ext = Path.GetExtension(f); + string newExt = FileFormat.Guess(f); + if (ext != newExt) + File.Move(f, Path.Combine(Path.GetDirectoryName(f), Path.GetFileNameWithoutExtension(f)) + newExt); + } + catch { } + } + } + + private void CloseForm(object sender, FormClosingEventArgs e) + { + if (threads > 0 && DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Currently processing files.", "Abort?")) + e.Cancel = true; + } +} \ No newline at end of file diff --git a/pk3DS/Tools/ToolsUI.resx b/pk3DS.WinForms/Tools/ToolsUI.resx similarity index 100% rename from pk3DS/Tools/ToolsUI.resx rename to pk3DS.WinForms/Tools/ToolsUI.resx diff --git a/pk3DS.WinForms/WinFormsUtil.cs b/pk3DS.WinForms/WinFormsUtil.cs new file mode 100644 index 0000000000..e51c3c1d14 --- /dev/null +++ b/pk3DS.WinForms/WinFormsUtil.cs @@ -0,0 +1,601 @@ +using pk3DS.Core; +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Drawing.Imaging; +using System.IO; +using System.Linq; +using System.Runtime.InteropServices; +using System.Windows.Forms; +using pk3DS.WinForms.Properties; + +namespace pk3DS.WinForms; + +public static class WinFormsUtil +{ + // Image Layering/Blending Utility + public static Bitmap LayerImage(Image baseLayer, Image overLayer, int x, int y, double trans) + { + if (baseLayer == null) + return overLayer as Bitmap; + var img = new Bitmap(baseLayer.Width, baseLayer.Height); + using var gr = Graphics.FromImage(img); + gr.DrawImage(baseLayer, new Point(0, 0)); + var o = ChangeOpacity(overLayer, trans); + gr.DrawImage(o, new Rectangle(x, y, overLayer.Width, overLayer.Height)); + return img; + } + + public static Bitmap ChangeOpacity(Image img, double trans) + { + if (img == null) + return null; + if (img.PixelFormat.HasFlag(PixelFormat.Indexed)) + return (Bitmap)img; + + var bmp = (Bitmap)img.Clone(); + var bmpData = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); + var ptr = bmpData.Scan0; + + int len = bmp.Width * bmp.Height * 4; + byte[] data = new byte[len]; + + Marshal.Copy(ptr, data, 0, len); + + for (int i = 0; i < data.Length; i += 4) + data[i + 3] = (byte)(data[i + 3] * trans); + + Marshal.Copy(data, 0, ptr, len); + bmp.UnlockBits(bmpData); + + return bmp; + } + + private static ReadOnlySpan GenderedSpecies => [592, 593, 521, 668]; + private static ReadOnlySpan DefaultSprites => [778, 664, 665, 414, 493, 773]; + + public static string GetResourceStringSprite(int species, int form, int gender, int generation) + { + if (DefaultSprites.Contains(species)) // Species who show their default sprite regardless of Form + form = 0; + + string file = "_" + species; + if (form > 0) // Alt Form Handling + file += "_" + form; + else if (gender == 1 && GenderedSpecies.Contains(species)) // Frillish & Jellicent, Unfezant & Pyroar + file += "_" + gender; + + if (species == 25 && form > 0 && generation >= 7) // Pikachu + file += "c"; // Cap + + return file; + } + + public static Bitmap GetSprite(int species, int form, int gender, int item, GameConfig config, bool shiny = false) + { + if (species == 0) + return Resources._0; + if (species > config.MaxSpeciesID) + return Resources.unknown; + + var file = GetResourceStringSprite(species, form, gender, config.Generation); + + // Redrawing logic + // Redrawing logic + Bitmap baseImage = (Bitmap)Resources.ResourceManager.GetObject(file); + if (IsTotemForm(species, form)) + { + form = GetTotemBaseForm(species, form); + file = GetResourceStringSprite(species, form, gender, Main.Config.Generation); + baseImage = (Bitmap)Resources.ResourceManager.GetObject(file); + baseImage = ToGrayscale(baseImage); + } + if (baseImage == null) + { + if (species < config.MaxSpeciesID) + { + baseImage = LayerImage( + Resources.ResourceManager.GetObject("_" + species) as Image, + Resources.unknown, + 0, 0, .5); + } + else + { + baseImage = Resources.unknown; + } + } + if (shiny) + { + // Add shiny star to top left of image. + baseImage = LayerImage(baseImage, Resources.rare_icon, 0, 0, 0.7); + } + if (item > 0) + { + Bitmap itemimg = (Bitmap)(Resources.ResourceManager.GetObject("item_" + item) ?? Resources.helditem); + // Redraw + baseImage = LayerImage(baseImage, itemimg, 22 + ((15 - itemimg.Width) / 2), 15 + (15 - itemimg.Height), 1); + } + return baseImage; + } + + public static bool IsTotemForm(int species, int form, int generation = 7) + { + if (generation != 7) + return false; + if (form == 0) + return false; + if (!Legal.Totem_USUM.Contains(species)) + return false; + if (species == 778) // Mimikyu + return form is 2 or 3; + if (Legal.Totem_Alolan.Contains(species)) + return form == 2; + return form == 1; + } + + public static int GetTotemBaseForm(int species, int form) + { + if (species == 778) // Mimikyu + return form - 2; + return form - 1; + } + + public static Bitmap ScaleImage(Bitmap rawImg, int s) + { + var bigImg = new Bitmap(rawImg.Width * s, rawImg.Height * s); + for (int x = 0; x < bigImg.Width; x++) + { + for (int y = 0; y < bigImg.Height; y++) + bigImg.SetPixel(x, y, rawImg.GetPixel(x / s, y / s)); + } + + return bigImg; + } + + public static Bitmap ToGrayscale(Image img) + { + if (img == null) + return null; + if (img.PixelFormat.HasFlag(PixelFormat.Indexed)) + return (Bitmap)img; + + var bmp = (Bitmap)img.Clone(); + GetBitmapData(bmp, out BitmapData bmpData, out IntPtr ptr, out byte[] data); + + Marshal.Copy(ptr, data, 0, data.Length); + SetAllColorToGrayScale(data); + Marshal.Copy(data, 0, ptr, data.Length); + bmp.UnlockBits(bmpData); + + return bmp; + } + + private static void GetBitmapData(Bitmap bmp, out BitmapData bmpData, out IntPtr ptr, out byte[] data) + { + bmpData = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); + ptr = bmpData.Scan0; + data = new byte[bmp.Width * bmp.Height * 4]; + } + + private static void SetAllColorToGrayScale(byte[] data) + { + for (int i = 0; i < data.Length; i += 4) + { + if (data[i + 3] == 0) + continue; + byte greyS = (byte)(((0.3 * data[i + 2]) + (0.59 * data[i + 1]) + (0.11 * data[i + 0])) / 3); + data[i + 0] = greyS; + data[i + 1] = greyS; + data[i + 2] = greyS; + } + } + + // Strings and Paths + + public static string[] GetSimpleStringList(string f) + { + object txt = Resources.ResourceManager.GetObject(f); // Fetch File, \n to list. + List rawlist = [.. ((string)txt).Split('\n')]; + + string[] stringdata = new string[rawlist.Count]; + for (int i = 0; i < rawlist.Count; i++) + stringdata[i] = rawlist[i].Trim(); + + return stringdata; + } + + // Data Retrieval + public static int ToInt32(TextBox tb) + { + string value = tb.Text; + return Util.ToInt32(value); + } + + public static uint ToUInt32(TextBox tb) + { + string value = tb.Text; + return Util.ToUInt32(value); + } + + public static int ToInt32(MaskedTextBox tb) + { + string value = tb.Text; + return Util.ToInt32(value); + } + + public static uint ToUInt32(MaskedTextBox tb) + { + string value = tb.Text; + return Util.ToUInt32(value); + } + + public static int GetIndex(ComboBox cb) + { + int val; + if (cb.SelectedValue == null) + return 0; + + try + { val = (int)cb.SelectedValue; } + catch + { val = cb.SelectedIndex; if (val < 0) val = 0; } + return val; + } + + public static string GetOnlyHex(string str) + { + if (str == null) + return "0"; + + string s = ""; + + foreach (char t in str) + { + var c = t; + // filter for hex + if ((c < 0x0047 && c > 0x002F) || (c < 0x0067 && c > 0x0060)) + s += c; + else + System.Media.SystemSounds.Beep.Play(); + } + if (s.Length == 0) + s = "0"; + return s; + } + + // Form Translation + public static void TranslateInterface(Control form, string lang) + { + // Check to see if a the translation file exists in the same folder as the executable + string externalLangPath = "lang_" + lang + ".txt"; + string[] rawlist; + if (File.Exists(externalLangPath)) + { + rawlist = File.ReadAllLines(externalLangPath); + } + else + { + object txt = Resources.ResourceManager.GetObject("lang_" + lang); + if (txt == null) return; // Translation file does not exist as a resource; abort this function and don't translate UI. + rawlist = ((string)txt).Split(["\n"], StringSplitOptions.None); + rawlist = rawlist.Select(i => i.Trim()).ToArray(); // Remove trailing spaces + } + + string[] stringdata = new string[rawlist.Length]; + int itemsToRename = 0; + for (int i = 0; i < rawlist.Length; i++) + { + // Find our starting point + if (!rawlist[i].Contains("! " + form.Name)) continue; + + // Allow renaming of the Window Title + string[] WindowName = rawlist[i].Split([" = "], StringSplitOptions.None); + if (WindowName.Length > 1) form.Text = WindowName[1]; + // Copy our Control Names and Text to a new array for later processing. + for (int j = i + 1; j < rawlist.Length; j++) + { + if (rawlist[j].Length == 0) continue; // Skip Over Empty Lines, errhandled + if (rawlist[j][0].ToString() == "-") continue; // Keep translating if line is a comment line + if (rawlist[j][0].ToString() == "!") // Stop if we have reached the end of translation + goto rename; + stringdata[itemsToRename] = rawlist[j]; // Add the entry to process later. + itemsToRename++; + } + } + return; // Not Found + + // Now that we have our items to rename in: Control = Text format, let's execute the changes! + rename: + for (int i = 0; i < itemsToRename; i++) + { + string[] SplitString = stringdata[i].Split([" = "], StringSplitOptions.None); + if (SplitString.Length < 2) + continue; // Error in Input, errhandled + string ctrl = SplitString[0]; // Control to change the text of... + string text = SplitString[1]; // Text to set Control.Text to... + Control[] controllist = form.Controls.Find(ctrl, true); + if (controllist.Length != 0) // If Control is found + { controllist[0].Text = text; goto next; } + + // Check MenuStrips + foreach (MenuStrip menu in form.Controls.OfType()) + { + // Menu Items aren't in the Form's Control array. Find within the menu's Control array. + ToolStripItem[] TSI = menu.Items.Find(ctrl, true); + if (TSI.Length == 0) continue; + + TSI[0].Text = text; goto next; + } + // Check ContextMenuStrips + foreach (ContextMenuStrip cs in FindContextMenuStrips(form.Controls.OfType()).Distinct()) + { + ToolStripItem[] TSI = cs.Items.Find(ctrl, true); + if (TSI.Length == 0) continue; + + TSI[0].Text = text; goto next; + } + + next:; + } + } + + public static List FindContextMenuStrips(IEnumerable c) + { + List cs = []; + foreach (Control control in c) + { + if (control.ContextMenuStrip != null) + cs.Add(control.ContextMenuStrip); + else if (control.Controls.Count > 0) + cs.AddRange(FindContextMenuStrips(control.Controls.OfType())); + } + return cs; + } + + // Message Displays + public static DialogResult Error(params string[] lines) + { + System.Media.SystemSounds.Exclamation.Play(); + string msg = string.Join(Environment.NewLine + Environment.NewLine, lines); + return MessageBox.Show(msg, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + + public static DialogResult Alert(params string[] lines) + { + System.Media.SystemSounds.Asterisk.Play(); + string msg = string.Join(Environment.NewLine + Environment.NewLine, lines); + return MessageBox.Show(msg, "Alert", MessageBoxButtons.OK, MessageBoxIcon.Warning); + } + + public static DialogResult Prompt(MessageBoxButtons btn, params string[] lines) + { + System.Media.SystemSounds.Question.Play(); + string msg = string.Join(Environment.NewLine + Environment.NewLine, lines); + return MessageBox.Show(msg, "Prompt", btn, MessageBoxIcon.Asterisk); + } + + public static List GetCBList(string textfile, string lang) + { + // Set up + string[] inputCSV = GetSimpleStringList(textfile); + + // Get Language we're fetching for + int index = Array.IndexOf(["ja", "en", "fr", "de", "it", "es", "ko", "zh"], lang); + + // Set up our Temporary Storage + string[] unsortedList = new string[inputCSV.Length - 1]; + int[] indexes = new int[inputCSV.Length - 1]; + + // Gather our data from the input file + for (int i = 1; i < inputCSV.Length; i++) + { + string[] countryData = inputCSV[i].Split(','); + indexes[i - 1] = Convert.ToInt32(countryData[0]); + unsortedList[i - 1] = countryData[index + 1]; + } + + // Sort our input data + string[] sortedList = new string[inputCSV.Length - 1]; + Array.Copy(unsortedList, sortedList, unsortedList.Length); + Array.Sort(sortedList); + + // Arrange the input data based on original number + return sortedList.Select(t => new ComboItem + { + Text = t, + Value = indexes[Array.IndexOf(unsortedList, t)], + }).ToList(); + } + + public static List GetCBList(string[] inStrings, params int[][] allowed) + { + List cbList = []; + allowed ??= [Enumerable.Range(0, inStrings.Length).ToArray()]; + + foreach (int[] list in allowed) + { + // Sort the Rest based on String Name + string[] unsortedChoices = new string[list.Length]; + for (int i = 0; i < list.Length; i++) + unsortedChoices[i] = inStrings[list[i]]; + + string[] sortedChoices = new string[unsortedChoices.Length]; + Array.Copy(unsortedChoices, sortedChoices, unsortedChoices.Length); + Array.Sort(sortedChoices); + + // Add the rest of the items + cbList.AddRange(sortedChoices.Select(t => new ComboItem + { + Text = t, + Value = list[Array.IndexOf(unsortedChoices, t)], + })); + } + return cbList; + } + + public static List GetOffsetCBList(List cbList, string[] inStrings, int offset, int[] allowed) + { + allowed ??= Enumerable.Range(0, inStrings.Length).ToArray(); + + int[] list = (int[])allowed.Clone(); + for (int i = 0; i < list.Length; i++) + list[i] -= offset; + + { + // Sort the Rest based on String Name + string[] unsortedChoices = new string[allowed.Length]; + for (int i = 0; i < allowed.Length; i++) + unsortedChoices[i] = inStrings[list[i]]; + + string[] sortedChoices = new string[unsortedChoices.Length]; + Array.Copy(unsortedChoices, sortedChoices, unsortedChoices.Length); + Array.Sort(sortedChoices); + + // Add the rest of the items + cbList.AddRange(sortedChoices.Select(t => new ComboItem + { + Text = t, + Value = allowed[Array.IndexOf(unsortedChoices, t)], + })); + } + return cbList; + } + + // Misc + public static int HighlightText(RichTextBox RTB, string word, Color hlColor) + { + int ctr = 0; + int s_start = RTB.SelectionStart, startIndex = 0, index; + + while ((index = RTB.Text.IndexOf(word, startIndex, StringComparison.Ordinal)) != -1) + { + RTB.Select(index, word.Length); + RTB.SelectionColor = hlColor; + + startIndex = index + word.Length; + ctr++; + } + + RTB.SelectionStart = s_start; + RTB.SelectionLength = 0; + RTB.SelectionColor = Color.Black; + return ctr; + } + + // http://stackoverflow.com/questions/4820212/automatically-trim-a-bitmap-to-minimum-size + public static Bitmap TrimBitmap(Bitmap source) + { + Rectangle srcRect; + BitmapData data = null; + try + { + data = source.LockBits(new Rectangle(0, 0, source.Width, source.Height), ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb); + byte[] buffer = new byte[data.Height * data.Stride]; + Marshal.Copy(data.Scan0, buffer, 0, buffer.Length); + + int xMin = int.MaxValue, + xMax = int.MinValue, + yMin = int.MaxValue, + yMax = int.MinValue; + + bool foundPixel = false; + + // Find xMin + for (int x = 0; x < data.Width; x++) + { + bool stop = false; + for (int y = 0; y < data.Height; y++) + { + byte alpha = buffer[(y * data.Stride) + (4 * x) + 3]; + if (alpha != 0) + { + xMin = x; + stop = true; + foundPixel = true; + break; + } + } + if (stop) + break; + } + + // Image is empty... + if (!foundPixel) + return null; + + // Find yMin + for (int y = 0; y < data.Height; y++) + { + bool stop = false; + for (int x = xMin; x < data.Width; x++) + { + byte alpha = buffer[(y * data.Stride) + (4 * x) + 3]; + if (alpha != 0) + { + yMin = y; + stop = true; + break; + } + } + if (stop) + break; + } + + // Find xMax + for (int x = data.Width - 1; x >= xMin; x--) + { + bool stop = false; + for (int y = yMin; y < data.Height; y++) + { + byte alpha = buffer[(y * data.Stride) + (4 * x) + 3]; + if (alpha != 0) + { + xMax = x; + stop = true; + break; + } + } + if (stop) + break; + } + + // Find yMax + for (int y = data.Height - 1; y >= yMin; y--) + { + bool stop = false; + for (int x = xMin; x <= xMax; x++) + { + byte alpha = buffer[(y * data.Stride) + (4 * x) + 3]; + if (alpha != 0) + { + yMax = y; + stop = true; + break; + } + } + if (stop) + break; + } + + srcRect = Rectangle.FromLTRB(xMin, yMin, xMax + 1, yMax + 1); // fixed; was cropping 1px too much on the max end + } + finally + { + if (data != null) + source.UnlockBits(data); + } + + var dest = new Bitmap(srcRect.Width, srcRect.Height); + var destRect = srcRect with { X = 0, Y = 0 }; + using var graphics = Graphics.FromImage(dest); + graphics.DrawImage(source, destRect, srcRect, GraphicsUnit.Pixel); + return dest; + } +} + +// DataSource Providing +public class ComboItem +{ + public string Text { get; set; } + public object Value { get; set; } +} \ No newline at end of file diff --git a/pk3DS.WinForms/pk3DS.WinForms.csproj b/pk3DS.WinForms/pk3DS.WinForms.csproj new file mode 100644 index 0000000000..a44453ea2c --- /dev/null +++ b/pk3DS.WinForms/pk3DS.WinForms.csproj @@ -0,0 +1,44 @@ + + + + WinExe + net10.0-windows + true + + + + + + + + + + + + + True + True + Resources.resx + + + True + True + Settings.settings + + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + \ No newline at end of file diff --git a/pk3DS.sln b/pk3DS.sln deleted file mode 100644 index 106ebae270..0000000000 --- a/pk3DS.sln +++ /dev/null @@ -1,38 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.26430.15 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "pk3DS", "pk3DS\pk3DS.csproj", "{C4CB2488-2DB9-489F-8B02-A8E872C6C6AB}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "pk3DS.Core", "pk3DS.Core\pk3DS.Core.csproj", "{053212FC-2D93-427B-8695-78EC87E4C43C}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C4CB2488-2DB9-489F-8B02-A8E872C6C6AB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C4CB2488-2DB9-489F-8B02-A8E872C6C6AB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C4CB2488-2DB9-489F-8B02-A8E872C6C6AB}.Debug|x86.ActiveCfg = Debug|x86 - {C4CB2488-2DB9-489F-8B02-A8E872C6C6AB}.Debug|x86.Build.0 = Debug|x86 - {C4CB2488-2DB9-489F-8B02-A8E872C6C6AB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C4CB2488-2DB9-489F-8B02-A8E872C6C6AB}.Release|Any CPU.Build.0 = Release|Any CPU - {C4CB2488-2DB9-489F-8B02-A8E872C6C6AB}.Release|x86.ActiveCfg = Release|x86 - {C4CB2488-2DB9-489F-8B02-A8E872C6C6AB}.Release|x86.Build.0 = Release|x86 - {053212FC-2D93-427B-8695-78EC87E4C43C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {053212FC-2D93-427B-8695-78EC87E4C43C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {053212FC-2D93-427B-8695-78EC87E4C43C}.Debug|x86.ActiveCfg = Debug|Any CPU - {053212FC-2D93-427B-8695-78EC87E4C43C}.Debug|x86.Build.0 = Debug|Any CPU - {053212FC-2D93-427B-8695-78EC87E4C43C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {053212FC-2D93-427B-8695-78EC87E4C43C}.Release|Any CPU.Build.0 = Release|Any CPU - {053212FC-2D93-427B-8695-78EC87E4C43C}.Release|x86.ActiveCfg = Release|Any CPU - {053212FC-2D93-427B-8695-78EC87E4C43C}.Release|x86.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/pk3DS.slnx b/pk3DS.slnx new file mode 100644 index 0000000000..b3ead24d03 --- /dev/null +++ b/pk3DS.slnx @@ -0,0 +1,7 @@ + + + + + + + diff --git a/pk3DS/ARCUtil.cs b/pk3DS/ARCUtil.cs deleted file mode 100644 index c1b53be84b..0000000000 --- a/pk3DS/ARCUtil.cs +++ /dev/null @@ -1,846 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; - -namespace pk3DS.ARCUtil -{ - public class ARC - { - // Multi Type Archive Handling - internal static bool onefile = true; - internal static SARC analyzeSARC(string path) - { - SARC sarc = new SARC - { - FileName = Path.GetFileNameWithoutExtension(path), - FilePath = Path.GetDirectoryName(path), - Extension = Path.GetExtension(path) - }; - BinaryReader br = new BinaryReader(File.OpenRead(path)); - sarc.valid = true; - sarc.Signature = new string(br.ReadChars(4)); - if (sarc.Signature != "SARC") - { - sarc.valid = false; - return sarc; - } - sarc.HeaderSize = br.ReadUInt16(); - sarc.Endianness = br.ReadUInt16(); - sarc.FileSize = br.ReadUInt32(); - sarc.DataOffset = br.ReadUInt32(); - sarc.Unknown = br.ReadUInt32(); - sarc.SFat = new SFAT { Signature = new string(br.ReadChars(4)) }; - if (sarc.SFat.Signature != "SFAT") - { - sarc.valid = false; - return sarc; - } - sarc.SFat.HeaderSize = br.ReadUInt16(); - sarc.SFat.EntryCount = br.ReadUInt16(); - sarc.SFat.HashMult = br.ReadUInt32(); - sarc.SFat.Entries = new List(); - for (int i = 0; i < sarc.SFat.EntryCount; i++) - { - SFATEntry s = new SFATEntry - { - FileNameHash = br.ReadUInt32(), - FileNameOffset = br.ReadUInt32(), - FileDataStart = br.ReadUInt32(), - FileDataEnd = br.ReadUInt32() - }; - sarc.SFat.Entries.Add(s); - } - sarc.SFnt = new SFNT { Signature = new string(br.ReadChars(4)) }; - if (sarc.SFnt.Signature != "SFNT") - { - sarc.valid = false; - return sarc; - } - sarc.SFnt.HeaderSize = br.ReadUInt16(); - sarc.SFnt.Unknown = br.ReadUInt16(); - sarc.SFnt.StringOffset = (uint)br.BaseStream.Position; - return sarc; - } - internal static ShuffleARC AnalyzeShuffle(string path) - { - ShuffleARC sharc = new ShuffleARC - { - FileName = Path.GetFileNameWithoutExtension(path), - FilePath = Path.GetDirectoryName(path), - Extension = Path.GetExtension(path) - }; - BinaryReader br = new BinaryReader(File.OpenRead(path)); - if (br.ReadUInt32() != 0xB) - { - br.BaseStream.Seek(0x100, SeekOrigin.Begin); - if (br.ReadUInt32() != 0xB) - { - sharc.valid = false; - return sharc; - } - sharc.add100 = true; - } - uint magic = br.ReadUInt32(); - if (magic.ToString("X8") != sharc.FileName) - { - Console.WriteLine("Sharc mismatch - " + magic.ToString("X8") + "," + sharc.FileName); - sharc.valid = false; - return sharc; - } - sharc.valid = true; - br.ReadUInt32(); - br.ReadUInt32(); - sharc.FileCount = br.ReadUInt32(); - br.ReadUInt32(); - sharc.Files = new List(); - for (int i = 0; i < sharc.FileCount; i++) - { - br.BaseStream.Seek(0x8, SeekOrigin.Current); - ShuffleFile sf = new ShuffleFile - { - Length = br.ReadUInt32(), - Offset = br.ReadUInt32() + (uint)(sharc.add100 ? 0x100 : 0) - }; - br.BaseStream.Seek(0x10, SeekOrigin.Current); - sharc.Files.Add(sf); - } - return sharc; - } - internal static GAR analyzeGAR(string path) - { - GAR gar = new GAR - { - FileName = Path.GetFileNameWithoutExtension(path), - FilePath = Path.GetDirectoryName(path), - Extension = Path.GetExtension(path) - }; - BinaryReader br = new BinaryReader(File.OpenRead(path)); - long len = br.BaseStream.Length; - gar.Magic = br.ReadUInt32(); - gar.FileLength = br.ReadUInt32(); - if (gar.Magic != 0x02524147 || gar.FileLength != len) - { - gar.valid = false; - return gar; - } - gar.valid = true; - gar.Unknown = br.ReadUInt32(); - gar.HeaderLength = br.ReadUInt32(); - gar.FileMetaOffset = br.ReadUInt32(); - gar.FileOffsetsOffset = br.ReadUInt32(); - br.BaseStream.Seek(0x1C, SeekOrigin.Current); - gar.FileCountOffset = br.ReadUInt32(); - gar.CTXBOffset = br.ReadUInt32(); - br.BaseStream.Seek(gar.FileOffsetsOffset, SeekOrigin.Begin); - gar.DataOffset = br.ReadUInt32(); - gar.FileCount = (gar.DataOffset - gar.FileOffsetsOffset) / 4; - br.BaseStream.Seek(gar.FileMetaOffset, SeekOrigin.Begin); - gar.Files = new List(); - for (int i = 0; i < gar.FileCount; i++) - { - GARFile gf = new GARFile - { - Length = br.ReadUInt32(), - NOffset = br.ReadUInt32(), - NWEOffset = br.ReadUInt32() - }; - gar.Files.Add(gf); - } - for (int i = 0; i < gar.FileCount; i++) - { - br.BaseStream.Seek(gar.Files[i].NOffset, SeekOrigin.Begin); - StringBuilder sb = new StringBuilder(); - for (char c = br.ReadChar(); c != (char)0; c = br.ReadChar()) - { - sb.Append(c); - } - gar.Files[i].Name = sb.ToString(); - br.BaseStream.Seek(gar.Files[i].NWEOffset, SeekOrigin.Begin); - sb = new StringBuilder(); - for (char c = br.ReadChar(); c != (char)0; c = br.ReadChar()) - { - sb.Append(c); - } - gar.Files[i].NameWithExtension = sb.ToString(); - } - br.BaseStream.Seek(gar.FileOffsetsOffset, SeekOrigin.Begin); - if (gar.Files.Count > 0) - { - gar.Files[0].Offset = gar.DataOffset; - br.ReadUInt32(); - } - for (int i = 1; i < gar.FileCount; i++) - { - gar.Files[i].Offset = br.ReadUInt32(); - } - return gar; - } - internal static DARC analyze(string path) - { - DARC darc = new DARC - { - FileName = Path.GetFileNameWithoutExtension(path), - FilePath = Path.GetDirectoryName(path), - Extension = Path.GetExtension(path) - }; - using (BinaryReader br = new BinaryReader(File.OpenRead(path))) { - long len = br.BaseStream.Length; - darc.Magic = br.ReadUInt32(); - uint m = darc.Magic; - darc.HeaderOffset = 0; - while (m != 0x63726164 && darc.HeaderOffset < len - 4) - { - m = br.ReadUInt32(); - darc.HeaderOffset += 4; - } - if (darc.HeaderOffset >= len - 4) - { - darc.valid = false; - return darc; - } - darc.Magic = m; - darc.valid = true; - darc.BOM = br.ReadUInt16(); - darc.HeaderLength = br.ReadUInt16(); - darc.Unknown = br.ReadUInt32(); - darc.totalLength = br.ReadUInt32(); - darc.TableOffset = br.ReadUInt32(); //from start of file - darc.TableOffset += darc.HeaderOffset; - darc.TableLength = br.ReadUInt32(); - darc.DataOffset = br.ReadUInt32(); - FileTable ft = new FileTable(); - br.BaseStream.Seek(darc.TableOffset + 8, SeekOrigin.Begin); - int count = br.ReadByte(); - ft.Files = new List(); - ft.FileNames = new List(); - br.BaseStream.Seek(darc.TableOffset, SeekOrigin.Begin); - for (int i = 0; i < count; i++) - { - DarcFile file = new DarcFile - { - NameOffset = br.ReadUInt16(), - Parent = br.ReadByte(), - Folder = br.ReadByte(), - Offset = br.ReadUInt32() + darc.HeaderOffset, - Length = br.ReadUInt32() - }; - DarcFile f2 = file; - ft.Files.Add(f2); - } - - uint NameTableOffset = (uint)br.BaseStream.Position; - for (int i = 0; i < ft.Files.Count; i++) - { - br.BaseStream.Seek(NameTableOffset + ft.Files[i].NameOffset, SeekOrigin.Begin); - MemoryStream stream = new MemoryStream(); - for (byte fb = br.ReadByte(), sb = br.ReadByte(); - fb != 0 || sb != 0; - fb = br.ReadByte(), sb = br.ReadByte()) - { - stream.WriteByte(fb); - stream.WriteByte(sb); - } - ft.FileNames.Add(Encoding.Unicode.GetString(stream.ToArray())); - stream.Close(); - } - darc.Files = ft; - darc.FileName = Path.GetFileNameWithoutExtension(path); - darc.FilePath = Path.GetDirectoryName(path); - darc.Extension = Path.GetExtension(path); - return darc; - } - } - internal static FARC analyzeFARC(string path) - { - FARC farc = new FARC - { - FileName = Path.GetFileNameWithoutExtension(path), - FilePath = Path.GetDirectoryName(path), - Extension = Path.GetExtension(path) - }; - BinaryReader br = new BinaryReader(File.OpenRead(path)); - long len = br.BaseStream.Length; - farc.Magic = br.ReadUInt32(); - uint m = farc.Magic; - farc.HeaderOffset = 0; - while (m != 0x43524146 && farc.HeaderOffset < len - 4) //FARC - { - m = br.ReadUInt32(); - farc.HeaderOffset += 4; - } - if (farc.HeaderOffset >= len - 4) - { - farc.valid = false; - return farc; - } - farc.Magic = m; - farc.valid = true; - br.BaseStream.Seek(farc.HeaderOffset + 0x24, SeekOrigin.Begin); - farc.SirOffset = br.ReadUInt32() + farc.HeaderOffset; - br.ReadUInt32(); //unk - farc.DataOffset = br.ReadUInt32() + farc.HeaderOffset; - br.BaseStream.Seek(farc.SirOffset, SeekOrigin.Begin); - farc.SirMagic = br.ReadUInt32(); - if (farc.SirMagic != 0x30524953) - { - farc.valid = false; - return farc; - } - farc.MetaPointer = farc.SirOffset + br.ReadUInt32(); - br.BaseStream.Seek(farc.MetaPointer, SeekOrigin.Begin); - farc.TableOffset = farc.SirOffset + br.ReadUInt32(); - farc.FileCount = br.ReadUInt32(); - br.BaseStream.Seek(farc.TableOffset, SeekOrigin.Begin); - FARCFileTable ft = new FARCFileTable - { - Files = new List(), - FileNames = new List() - }; - for (int i = 0; i < farc.FileCount; i++) - { - FARCFile file = new FARCFile - { - NameOffset = br.ReadUInt32(), - Offset = br.ReadUInt32(), - Length = br.ReadUInt32() - }; - br.ReadUInt32(); //align to 0x10 - FARCFile f2 = file; - ft.Files.Add(f2); - } - for (int i = 0; i < farc.FileCount; i++) - { - br.BaseStream.Seek(ft.Files[i].NameOffset + farc.SirOffset, SeekOrigin.Begin); - MemoryStream stream = new MemoryStream(); - int firstByte = 1, secondByte = 1; - while (firstByte != 0 || secondByte != 0) - { - firstByte = br.ReadByte(); - secondByte = br.ReadByte(); - stream.WriteByte((byte) firstByte); - stream.WriteByte((byte) secondByte); - } - ft.FileNames.Add(Encoding.Unicode.GetString(stream.ToArray())); - stream.Close(); - } - farc.Files = ft; - farc.FileName = Path.GetFileNameWithoutExtension(path); - farc.FilePath = Path.GetDirectoryName(path); - farc.Extension = Path.GetExtension(path); - return farc; - } - internal static string Interpret(string path) - { - string fn = Path.GetFileName(path); - if (fn == "save0.bin" || fn == "save1.bin" || fn == "save2.bin") - { - return FixMajoraChecksum(path); - } - if (fn.StartsWith("message") && (fn.EndsWith("_US.bin") || fn.EndsWith("_UK.bin"))) - { - return ParseShuffleText(path); - } - DARC darc = analyze(path); - FARC farc = new FARC(); - GAR gar = new GAR(); - SARC sarc = new SARC(); - ShuffleARC sharc = new ShuffleARC(); - if (!darc.valid) farc = analyzeFARC(path); - if (!farc.valid) gar = analyzeGAR(path); - if (!gar.valid) sharc = AnalyzeShuffle(path); - if (!sharc.valid) sarc = analyzeSARC(path); - - string ret = ""; - if (darc.valid) - { - ret += "Header Offset: " + darc.HeaderOffset + Environment.NewLine + "File Count: " + darc.Files.Files.Count + Environment.NewLine; - int extracted = 0; - int folder = 0; - for (int i = 0; i < darc.Files.Files.Count; i++) - { - if (darc.Files.Files[i].Folder > 0) { folder++; } - else - { - extracted++; - string dir = Path.GetDirectoryName(path) + Path.DirectorySeparatorChar + darc.FileName + Path.DirectorySeparatorChar; - if (!Directory.Exists(dir)) - { - Directory.CreateDirectory(dir); - } - string outPath = dir + darc.Files.FileNames[i]; - var fs = File.OpenRead(path); - fs.Seek(darc.Files.Files[i].Offset, SeekOrigin.Begin); - byte[] fileBuffer = new byte[darc.Files.Files[i].Length]; - fs.Read(fileBuffer, 0, fileBuffer.Length); - fs.Close(); - File.WriteAllBytes(outPath, fileBuffer); - } - } - ret += "Extracted " + extracted + " files"; - if (folder > 0) - { - ret += ", did not extract " + folder + " folders"; - } - ret += "." + Environment.NewLine + "Open a .DARC/.SARC/.FARC/.GAR/Shuffle Archive file (or drag/drop)."; - } - else if (farc.valid) - { - ret += "Header Offset: " + farc.HeaderOffset + Environment.NewLine; - int extracted = 0; - for (int i = 0; i < farc.Files.Files.Count; i++) - { - extracted++; - string dir = Path.GetDirectoryName(path) + Path.DirectorySeparatorChar + "FARC_" + farc.FileName + Path.DirectorySeparatorChar; - if (!Directory.Exists(dir)) - { - Directory.CreateDirectory(dir); - } - string outPath = dir + farc.Files.FileNames[i]; - var fs = File.OpenRead(farc.FilePath + "\\" + farc.FileName + farc.Extension); - fs.Seek(farc.Files.Files[i].Offset + farc.DataOffset, SeekOrigin.Begin); - byte[] fileBuffer = new byte[farc.Files.Files[i].Length]; - fs.Read(fileBuffer, 0, fileBuffer.Length); - fs.Close(); - File.WriteAllBytes(outPath, fileBuffer); - } - ret += "Extracted " + extracted + " files"; - ret += "." + Environment.NewLine + ".DARC/.FARC/.SARC/.GAR/Shuffle Archive file (or drag/drop)."; - } - else if (gar.valid) - { - ret += "New GAR with " + gar.FileCount + " files." + Environment.NewLine; - string dir = Path.GetDirectoryName(path) + Path.DirectorySeparatorChar + gar.FileName + Path.DirectorySeparatorChar; - if (!Directory.Exists(dir)) - { - Directory.CreateDirectory(dir); - } - for (int i = 0; i < gar.FileCount; i++) - { - var fs = File.OpenRead(path); - fs.Seek(gar.Files[i].Offset, SeekOrigin.Begin); - byte[] fileBuffer = new byte[gar.Files[i].Length]; - fs.Read(fileBuffer, 0, fileBuffer.Length); - fs.Close(); - File.WriteAllBytes(dir + gar.Files[i].NameWithExtension, fileBuffer); - ret += "Extracted " + gar.Files[i].NameWithExtension + " (Offset: " + gar.Files[i].Offset.ToString("X8") + ", Len: " + gar.Files[i].Length.ToString("X8") + ")." + Environment.NewLine; - } - ret += Environment.NewLine; - } - else if (sharc.valid) - { - ret += "New Shuffle Archive with " + sharc.FileCount + " files." + Environment.NewLine; - string dir = Path.GetDirectoryName(path) + Path.DirectorySeparatorChar + sharc.FileName + "_" + Path.DirectorySeparatorChar; - if (!Directory.Exists(dir)) - { - Console.WriteLine("Making dir: " + dir); - Directory.CreateDirectory(dir); - } - - string diglen = "".PadLeft((int)(Math.Log10(sharc.FileCount) + 1), '0'); - for (int i = 0; i < sharc.FileCount; i++) - { - var fs = File.OpenRead(path); - fs.Seek(sharc.Files[i].Offset, SeekOrigin.Begin); - byte[] fileBuffer = new byte[sharc.Files[i].Length]; - fs.Read(fileBuffer, 0, fileBuffer.Length); - fs.Close(); - uint check = 0; - for (int j = 0; j < fileBuffer.Length; j += 4) - check += BitConverter.ToUInt32(fileBuffer, j); - Console.WriteLine(i.ToString(diglen) + ": " + check.ToString("X8")); - File.WriteAllBytes(dir + i.ToString(diglen) + ".zip", fileBuffer); - ret += "Extracted " + i.ToString(diglen) + " (Offset: " + sharc.Files[i].Offset.ToString("X8") + ", Len: " + sharc.Files[i].Length.ToString("X8") + ")." + Environment.NewLine; - } - ret += Environment.NewLine; - } - else if (sarc.valid) - { - ret = "New SARC with " + sarc.SFat.EntryCount + " files." + Environment.NewLine; - string dir = Path.GetDirectoryName(path) + Path.DirectorySeparatorChar + sarc.FileName + "_" + Path.DirectorySeparatorChar; - if (!Directory.Exists(dir)) - { - Console.WriteLine("Making dir: " + dir); - Directory.CreateDirectory(dir); - } - - foreach (SFATEntry t in sarc.SFat.Entries) - { - var fs = File.OpenRead(path); - uint FileLen = t.FileDataEnd - t.FileDataStart; - fs.Seek(t.FileDataStart + sarc.DataOffset, SeekOrigin.Begin); - byte[] fileBuffer = new byte[FileLen]; - fs.Read(fileBuffer, 0, (int)FileLen); - fs.Seek(sarc.SFnt.StringOffset, SeekOrigin.Begin); - fs.Seek((t.FileNameOffset & 0x00FFFFFF) * 4, SeekOrigin.Current); - StringBuilder sb = new StringBuilder(); - for (char c = (char)fs.ReadByte(); c != 0; c = (char)fs.ReadByte()) - { - sb.Append(c); - } - string FileName = sb.ToString().Replace('/', Path.DirectorySeparatorChar); - fs.Close(); - string FileDir = Path.GetDirectoryName(dir + FileName) + Path.DirectorySeparatorChar; - if (!Directory.Exists(FileDir)) - { - Console.WriteLine("Making dir: " + FileDir); - Directory.CreateDirectory(FileDir); - } - File.WriteAllBytes(dir + FileName, fileBuffer); - } - } - else - { - ret = "Not a valid .DARC/.FARC/.SARC/.GAR/Shuffle Archive file"; - } - return ret; - } - - // Unpacking - internal static string unpackDARC(string path, string outFolder = null, bool delete = true) - { - int extracted = 0; - int folder = 0; - DARC darc = analyze(path); - if (!darc.valid) return "Not a DARC?"; - - for (int i = 0; i < darc.Files.Files.Count; i++) - { - if (darc.Files.Files[i].Folder > 0) folder++; - else - { - extracted++; - string dir = outFolder ?? Path.GetDirectoryName(path) + Path.DirectorySeparatorChar + darc.FileName + Path.DirectorySeparatorChar; - if (!Directory.Exists(dir)) { Directory.CreateDirectory(dir); } - using (var fs = File.OpenRead(path)) - { - fs.Seek(darc.Files.Files[i].Offset, SeekOrigin.Begin); - byte[] fileBuffer = new byte[darc.Files.Files[i].Length]; - fs.Read(fileBuffer, 0, fileBuffer.Length); - File.WriteAllBytes(Path.Combine(dir, darc.Files.FileNames[i]), fileBuffer); - } - } - } - if (delete) - File.Delete(path); // File is unpacked. - - // Debug info string: - string s = ""; - s += "Header Offset: " + darc.HeaderOffset + Environment.NewLine; - s += "File Count: " + darc.Files.Files.Count + Environment.NewLine; - s += "Extracted " + extracted + " files"; - s += folder > 0 ? ", did not extract " + folder + " folders." : "."; - return s; - } - - internal static void repackDARC(string path, string fileName, string outfolder = null, bool header = true, bool delete = true) - { - var data = new byte[0]; - string[] files = Directory.GetFiles(path); - int count = files.Length; - - if (outfolder == null) - { - outfolder = Directory.GetParent(path).FullName; - } - string donor = Path.Combine(outfolder, fileName); - - if (header && File.Exists(donor)) - { - data = data.Concat(BitConverter.GetBytes(count)).ToArray(); - foreach (string file in files) - { - // File Names are 0x40 characters - string fn = new FileInfo(file).Name; - byte[] bytes = Encoding.ASCII.GetBytes(fn); - Array.Resize(ref bytes, 0x40); - data = data.Concat(bytes).ToArray(); - } - - // Check the original file - byte[] donorBytes = File.ReadAllBytes(donor); - if (data.SequenceEqual(donorBytes.Take(data.Length))) - { - int headerLen = data.Length + BitConverter.ToInt32(donorBytes, data.Length)*0x20; - headerLen += 0x80 - headerLen%0x80; - data = donorBytes.Take(headerLen).ToArray(); - } - else - { - data = new byte[0]; - } - } - if (data.Length == 0) - { - //var dr = Util.Prompt(MessageBoxButtons.YesNoCancel, "Donor DARC has no header. Export without header?"); - //if (dr != DialogResult.Yes) - return; - } - WinFormsUtil.Alert("Not finished."); - } - - // Generic Utility - internal static string FixMajoraChecksum(string path) - { - byte[] data = File.ReadAllBytes(path); - Array.Copy(BitConverter.GetBytes((ushort)0), 0, data, 0x1A88, 2); - CRC16 crc = new CRC16(); - ushort val = crc.ComputeChecksum(data); - val ^= 0x903B; - Array.Copy(BitConverter.GetBytes(val), 0, data, 0x1A88, 2); - File.WriteAllBytes(path, data); - return "Corrected Majora Checksum to " + val.ToString("X4"); - } - internal static string ParseShuffleText(string path) - { - ShuffleText st = new ShuffleText - { - FileName = Path.GetFileNameWithoutExtension(path), - FilePath = Path.GetDirectoryName(path), - Extension = Path.GetExtension(path) - }; - Console.WriteLine(st.FilePath); - BinaryReader br = new BinaryReader(File.OpenRead(path)); - br.BaseStream.Seek(0xC, SeekOrigin.Begin); - uint StringDataLen = br.ReadUInt32(); - st.StringMetaOffset = br.ReadUInt32(); - st.StringMetaLen = br.ReadUInt32(); - st.StringCount = st.StringMetaLen / 4; - Console.WriteLine(st.StringCount); - br.BaseStream.Seek(st.StringMetaOffset, SeekOrigin.Begin); - st.offsets = new List(); - for (int i = 0; i < st.StringCount; i++) - { - st.offsets.Add(br.ReadUInt32()); - } - string ret = "Dumped Offsets."; - st.strings = new List(); - for (int i = 0; i < st.StringCount; i++) - { - br.BaseStream.Seek(st.offsets[i], SeekOrigin.Begin); - uint len = i < st.StringCount - 1 - ? st.offsets[i + 1] - st.offsets[i] - : StringDataLen + 0x40 - st.offsets[i]; - byte[] data = br.ReadBytes((int)len); - st.strings.Add(Encoding.Unicode.GetString(data).Replace((char)0, ' ').Replace((char)0xa, ' ')); - } - ret += Environment.NewLine + "Dumped Strings."; - StringBuilder sb = new StringBuilder(); - foreach (string t in st.strings) - sb.AppendLine(t); - - string newfilename = st.FilePath + Path.DirectorySeparatorChar + st.FileName + ".txt"; - File.WriteAllText(newfilename, sb.ToString()); - return ret; - } - } - - public struct FARC - { - public uint Magic; - public uint SirMagic; - public uint SirOffset; - public uint HeaderOffset; - public uint MetaPointer; //from start of file - public uint NamesOffset; - public uint TableOffset; //from start of file - public uint DataOffset; //from start of file - public uint FileCount; - public FARCFileTable Files; - - public string FileName; - public string FilePath; - public string Extension; - public Boolean valid; - } - public struct FARCFileTable - { - public List Files; - public List FileNames; - } - public struct FARCFile - { - public uint NameOffset; - public uint Offset; - public uint Length; - - public string Name; - } - - public class SARC - { - public string Signature; - public ushort HeaderSize = 0x14; - public ushort Endianness; - public uint FileSize; - public uint DataOffset; - public uint Unknown; - public SFAT SFat; - public SFNT SFnt; - - public string FileName; - public string FilePath; - public string Extension; - public bool valid; - } - public class SFAT - { - public string Signature; - public ushort HeaderSize; - public ushort EntryCount; - public uint HashMult; - public List Entries; - } - public class SFATEntry - { - public uint FileNameHash; - public uint FileNameOffset; - public uint FileDataStart; - public uint FileDataEnd; - } - public class SFNT - { - public string Signature; - public ushort HeaderSize; - public ushort Unknown; - public uint StringOffset; - } - - public class ShuffleARC - { - public uint magic; //0xB - public uint FileNameCheck; - public uint unk; - public uint unk2; - public uint FileCount; - public uint padding; - public List Files; - - public string FileName; - public string FilePath; - public string Extension; - public bool add100; - public bool valid; - } - public class ShuffleFile - { - public uint Offset; - public uint Length; - } - public class ShuffleText - { - public uint StringMetaOffset; - public uint StringMetaLen; - public uint StringCount; - public List offsets; - public List strings; - - public string FileName; - public string FilePath; - public string Extension; - public bool valid; - } - - public class GAR - { - public uint Magic; //0x02524146 "GAR" - public uint FileLength; - public uint Unknown; - public uint HeaderLength; - public uint FileMetaOffset; - public uint FileOffsetsOffset; - public uint FileCountOffset; - public uint CTXBOffset; //Filecount = (CTXBOffset-FileCountOffset)/4; - public uint DataOffset; - - public uint FileCount; - public List Files; - - public string FileName; - public string FilePath; - public string Extension; - public bool valid; - } - public class GARFile - { - public string NameWithExtension; - public string Name; - public uint NOffset; - public uint NWEOffset; - public uint Offset; - public uint Length; - } - - public struct DARC - { - public uint HeaderOffset; // Where is header in file? - - public uint Magic; // 0x64617263 "darc" - public UInt16 BOM; // 0xFFFE - public UInt16 HeaderLength; // HeaderLength - 0x1C - public uint Unknown; // 0x10000000 - public uint totalLength; // Total Length of file - public uint TableOffset; // Offset from Start of File - public uint TableLength; // Table Length - public uint DataOffset; // Data Offset - - public FileTable Files; - - public string FileName; - public string FilePath; - public string Extension; - public Boolean valid; - } - public struct FileTable - { - public List Files; - public List FileNames; - } - public struct DarcFile - { - public ushort NameOffset; // - public byte Parent; - public byte Folder; - public uint Offset; - public uint Length; - - public string Name; - } - - public class CRC16 - { - private const ushort polynomial = 0xA001; - private readonly ushort[] table = new ushort[256]; - - public ushort ComputeChecksum(byte[] bytes) - { - return bytes.Aggregate(0, (current, t) => (ushort) ((current >> 8) ^ table[current ^ t])); - } - - public byte[] ComputeChecksumBytes(byte[] bytes) - { - ushort crc = ComputeChecksum(bytes); - return BitConverter.GetBytes(crc); - } - - public CRC16() - { - for (ushort i = 0; i < table.Length; ++i) - { - ushort value = 0; - ushort temp = i; - for (byte j = 0; j < 8; ++j) - { - if (((value ^ temp) & 0x0001) != 0) - value = (ushort) ((value >> 1) ^ polynomial); - else - value >>= 1; - - temp >>= 1; - } - table[i] = value; - } - } - } -} diff --git a/pk3DS/GarcUtil.cs b/pk3DS/GarcUtil.cs deleted file mode 100644 index 7ced976676..0000000000 --- a/pk3DS/GarcUtil.cs +++ /dev/null @@ -1,124 +0,0 @@ -using pk3DS.Core.CTR; -using System; -using System.IO; -using System.Media; -using System.Windows.Forms; - -namespace pk3DS -{ - /// - /// Windows-forms friendly wrapper for GARC functions - /// - public static class GarcUtil - { - private static ProgressBar pBar1; - private static Label label; - - private static void GARC_FileCountDetermined(object sender, GARC.FileCountDeterminedEventArgs e) - { - if (pBar1 == null) pBar1 = new ProgressBar(); - if (pBar1.InvokeRequired) - pBar1.Invoke((MethodInvoker)delegate { pBar1.Minimum = 0; pBar1.Step = 1; pBar1.Value = 0; pBar1.Maximum = e.Total; }); - else { pBar1.Minimum = 0; pBar1.Step = 1; pBar1.Value = 0; pBar1.Maximum = e.Total; } - if (label == null) label = new Label(); - if (label.InvokeRequired) - label.Invoke((MethodInvoker)delegate { label.Visible = true; }); - } - - private static void GARC_PackProgressed(object sender, GARC.PackProgressedEventArgs e) - { - if (pBar1.InvokeRequired) - pBar1.Invoke((MethodInvoker)(() => pBar1.PerformStep())); - else { pBar1.PerformStep(); } - string update = $"{(float)e.Current / (float)e.Total:P2} - {e.Current}/{e.Total} - {e.CurrentFile}"; - if (label.InvokeRequired) - label.Invoke((MethodInvoker)delegate { label.Text = update; }); - else { label.Text = update; } - } - - private static void GARC_UnpackProgressed(object sender, GARC.UnpackProgressedEventArgs e) - { - #region Step - if (pBar1.InvokeRequired) pBar1.Invoke((MethodInvoker)(() => pBar1.PerformStep())); - else pBar1.PerformStep(); - - string update = $"{e.Current / e.Total:P2} - {e.Current}/{e.Total}"; - if (label.InvokeRequired) - label.Invoke((MethodInvoker)delegate { label.Text = update; }); - else { label.Text = update; } - #endregion - } - - public static bool garcPackMS(string folderPath, string garcPath, int version, int bytesPadding, ProgressBar pBar1 = null, Label label = null, bool supress = false) - { - GARC.FileCountDetermined += GARC_FileCountDetermined; - GARC.PackProgressed += GARC_PackProgressed; - try - { - var filectr = GARC.garcPackMS(folderPath, garcPath, version, bytesPadding); - if (filectr > 0) - { - // We're done. - SystemSounds.Exclamation.Play(); - if (!supress) WinFormsUtil.Alert("Pack Successful!", filectr + " files packed to the GARC!"); - } - if (label != null) - { - if (label.InvokeRequired) - label.Invoke((MethodInvoker)(() => label.Visible = false)); - else - label.Visible = false; - } - - return true; - } - catch (DirectoryNotFoundException) - { - if (!supress) WinFormsUtil.Error("Folder does not exist."); - } - catch (Exception e) - { - WinFormsUtil.Error("Packing failed", e.ToString()); - } - finally - { - GARC.FileCountDetermined -= GARC_FileCountDetermined; - GARC.PackProgressed -= GARC_PackProgressed; - } - return false; - } - - public static bool garcUnpack(string garcPath, string outPath, bool skipDecompression, ProgressBar pBar1 = null, Label label = null, bool supress = false, bool bypassExt = false) - { - GARC.FileCountDetermined += GARC_FileCountDetermined; - GARC.UnpackProgressed += GARC_UnpackProgressed; - try - { - var fileCount = GARC.garcUnpack(garcPath, outPath, skipDecompression); - if (fileCount > 0) - { - SystemSounds.Exclamation.Play(); - if (!supress) WinFormsUtil.Alert("Unpack Successful!", fileCount + " files unpacked from the GARC!"); - } - - if (label == null) - return true; - if (label.InvokeRequired) - label.Invoke((MethodInvoker)delegate { label.Visible = false; }); - else - label.Visible = false; - return true; - } - catch (FileNotFoundException) - { - WinFormsUtil.Alert("File does not exist"); - } - finally - { - GARC.FileCountDetermined -= GARC_FileCountDetermined; - GARC.UnpackProgressed -= GARC_UnpackProgressed; - } - return false; - } - } -} diff --git a/pk3DS/Legality/Randomizer.cs b/pk3DS/Legality/Randomizer.cs deleted file mode 100644 index 2b8bd3ca1e..0000000000 --- a/pk3DS/Legality/Randomizer.cs +++ /dev/null @@ -1,153 +0,0 @@ -using pk3DS.Core; -using pk3DS.Core.Structures.PersonalInfo; -using System.Linq; - -namespace pk3DS -{ - public static class Randomizer - { - internal static int GetRandomForme(int species, bool mega, bool alola, PersonalInfo[] stats = null) - { - if (stats == null) - return 0; - if (stats[species].FormeCount <= 1) - return 0; - if (species == 664 || species == 665 || species == 666) // vivillon - return 30; // save file specific - if (species == 774) // minior - return (int)(Util.rnd32()%7); - if (alola && Legal.EvolveToAlolanForms.Contains(species)) - return (int)(Util.rnd32()%2); - if (!Legal.Mega_ORAS.Contains((ushort)species) || mega) - return (int)(Util.rnd32() % stats[species].FormeCount); // Slot-Random - return 0; - } - - /// - /// Multiplies the current level with a scaling factor, returning a modified level. - /// - /// Current Level. - /// Modification factor. - /// Boosted (or reduced) level. - internal static int getModifiedLevel(int level, decimal factor) - { - int newlvl = (int) (level * factor); - if (newlvl < 1) - return 1; - if (newlvl > 100) - return 100; - return newlvl; - } - - internal static int[] getRandomItemList() - { - if (Main.Config.ORAS) - return Items_HeldAO.Concat(Items_Ball).Where(i => i != 0).ToArray(); - if (Main.Config.XY) - return Items_HeldXY.Concat(Items_Ball).Where(i => i != 0).ToArray(); - if (Main.Config.SM || Main.Config.USUM) - return HeldItemsBuy_SM.Select(i => (int)i).Concat(Items_Ball).Where(i => i != 0).ToArray(); - return new int[1]; - } - #region Random Item List - private static readonly int[] Items_HeldXY = - { - /* 000, */ 001, 002, 003, 004, 005, 006, 007, 008, 009, 010, 011, 012, 013, 014, 015, 017, 018, 019, 020, 021, 022, - 023, 024, 025, 026, 027, 028, 029, 030, 031, 032, 033, 034, 035, - 036, 037, 038, 039, 040, 041, 042, 043, 044, 045, 046, 047, 048, 049, 050, 051, 052, 053, 054, 055, 056, 057, - 058, 059, 060, 061, 062, 063, 064, 065, 066, 067, 068, 069, 070, - 071, 072, 073, 074, 075, 076, 077, 078, 079, 080, 081, 082, 083, 084, 085, 086, 087, 088, 089, 090, 091, 092, - 093, 094, 099, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 112, 116, 117, 118, 119, 134, 135, 136, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, - 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, - 210, 211, 212, 213, 214, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, - 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, - 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, - 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, - 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, - 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, - 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 504, 537, 538, 539, 540, 541, 542, 543, 544, - 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, - 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 577, 580, 581, 582, 583, 584, - 585, 586, 587, 588, 589, 590, 591, 639, 640, 644, 645, 646, 647, - 648, 649, 650, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, - 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, - 684, 685, 686, 687, 688, 699, 704, 708, 709, 710, 711, 715, - }; - private static readonly int[] Items_HeldAO = Items_HeldXY.Concat(new[] - { - 534, 535, - 752, 753, 754, 755, 756, 757, 758, 759, 760, 761, 762, 763, 764, 767, 768, 769, 770, - }).ToArray(); - private static readonly int[] Items_Ball = - { - 000, 001, 002, 003, 004, 005, 006, 007, 008, 009, 010, 011, 012, - 013, 014, 015, 016, 492, 493, 494, 495, 496, 497, 498, 499, 576, - }; - #endregion - - #region Gen7 - - internal static readonly ushort[] Pouch_Regular_SM = // 00 - { - 068, 069, 070, 071, 072, 073, 074, 075, 076, 077, 078, 079, 080, 081, 082, 083, 084, 085, 086, 087, - 088, 089, 090, 091, 092, 093, 094, 099, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 116, 117, 118, 119, 135, 136, 137, 213, 214, 215, 217, 218, 219, 220, 221, 222, 223, 224, 225, - 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, - 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, - 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, - 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, - 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, - 326, 327, 499, 534, 535, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, - 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 571, 572, 573, 580, 581, 582, 583, - 584, 585, 586, 587, 588, 589, 590, 639, 640, 644, 645, 646, 647, 648, 649, 650, 656, 657, 658, 659, - 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, - 680, 681, 682, 683, 684, 685, 699, 704, 710, 711, 715, 752, 753, 754, 755, 756, 757, 758, 759, 760, - 761, 762, 763, 764, 767, 768, 769, 770, 795, 796, 844, 849, 853, 854, 855, 856, 879, 880, 881, 882, - 883, 884, 904, 905, 906, 907, 908, 909, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, - }; - internal static readonly ushort[] Pouch_Ball_SM = { // 08 - 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 492, 493, 494, 495, 496, 497, 498, 576, - 851 - }; - internal static readonly ushort[] Pouch_Battle_SM = { // 16 - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 577, - 846, - }; - internal static readonly ushort[] Pouch_Items_SM = Pouch_Regular_SM.Concat(Pouch_Ball_SM).Concat(Pouch_Battle_SM).ToArray(); - - internal static readonly ushort[] Pouch_Key_SM = { - 216, 465, 466, 628, 629, 631, 632, 633, 638, 696, - 705, 706, 765, 773, 797, - 841, 842, 843, 845, 847, 850, 857, 858, 860, - }; - internal static readonly ushort[] Pouch_TMHM_SM = { // 02 - 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, - 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, - 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, - 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, - 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, - 418, 419, 618, 619, 620, 690, 691, 692, 693, 694, - }; - internal static readonly ushort[] Pouch_Medicine_SM = { // 32 - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 65, 66, 67, 134, - 504, 565, 566, 567, 568, 569, 570, 591, 708, 709, - 852, - }; - internal static readonly ushort[] Pouch_Berries_SM = { - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, - 686, 687, 688, - }; - internal static readonly ushort[] Pouch_ZCrystal_SM = { // Bead - 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, - }; - internal static readonly ushort[] Pouch_ZCrystalHeld_SM = { // Piece - 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 798, 799, 800, 801, 802, 803, 804, 805, 806, 836 - }; - internal static readonly ushort[] HeldItems_SM = new ushort[1].Concat(Pouch_Items_SM).Concat(Pouch_Berries_SM).Concat(Pouch_Medicine_SM).Concat(Pouch_ZCrystalHeld_SM).ToArray(); - internal static readonly ushort[] HeldItemsBuy_SM = new ushort[1].Concat(Pouch_Items_SM).Concat(Pouch_Medicine_SM).ToArray(); - #endregion - } -} diff --git a/pk3DS/Main.Designer.cs b/pk3DS/Main.Designer.cs deleted file mode 100644 index d3174719af..0000000000 --- a/pk3DS/Main.Designer.cs +++ /dev/null @@ -1,828 +0,0 @@ -namespace pk3DS -{ - sealed partial class Main - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.TB_Path = new System.Windows.Forms.TextBox(); - this.L_Game = new System.Windows.Forms.Label(); - this.pBar1 = new System.Windows.Forms.ProgressBar(); - this.B_OPower = new System.Windows.Forms.Button(); - this.B_Pickup = new System.Windows.Forms.Button(); - this.B_Mart = new System.Windows.Forms.Button(); - this.B_MoveTutor = new System.Windows.Forms.Button(); - this.B_TMHM = new System.Windows.Forms.Button(); - this.RTB_Status = new System.Windows.Forms.RichTextBox(); - this.menuStrip1 = new System.Windows.Forms.MenuStrip(); - this.Menu_File = new System.Windows.Forms.ToolStripMenuItem(); - this.Menu_Open = new System.Windows.Forms.ToolStripMenuItem(); - this.Menu_Exit = new System.Windows.Forms.ToolStripMenuItem(); - this.Menu_Tools = new System.Windows.Forms.ToolStripMenuItem(); - this.Menu_Restore = new System.Windows.Forms.ToolStripMenuItem(); - this.Menu_Misc = new System.Windows.Forms.ToolStripMenuItem(); - this.unPackBCLIMToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.Menu_BLZ = new System.Windows.Forms.ToolStripMenuItem(); - this.Menu_LZ11 = new System.Windows.Forms.ToolStripMenuItem(); - this.Menu_Shuffler = new System.Windows.Forms.ToolStripMenuItem(); - this.Menu_Rebuild = new System.Windows.Forms.ToolStripMenuItem(); - this.Menu_RomFS = new System.Windows.Forms.ToolStripMenuItem(); - this.Menu_ExeFS = new System.Windows.Forms.ToolStripMenuItem(); - this.Menu_CRO = new System.Windows.Forms.ToolStripMenuItem(); - this.Menu_3DS = new System.Windows.Forms.ToolStripMenuItem(); - this.Menu_Patch = new System.Windows.Forms.ToolStripMenuItem(); - this.Menu_SMDH = new System.Windows.Forms.ToolStripMenuItem(); - this.Menu_Options = new System.Windows.Forms.ToolStripMenuItem(); - this.Menu_Language = new System.Windows.Forms.ToolStripMenuItem(); - this.CB_Lang = new System.Windows.Forms.ToolStripComboBox(); - this.Menu_About = new System.Windows.Forms.ToolStripMenuItem(); - this.Menu_GARCs = new System.Windows.Forms.ToolStripMenuItem(); - this.TC_RomFS = new System.Windows.Forms.TabControl(); - this.Tab_RomFS = new System.Windows.Forms.TabPage(); - this.FLP_RomFS = new System.Windows.Forms.FlowLayoutPanel(); - this.B_GameText = new System.Windows.Forms.Button(); - this.B_StoryText = new System.Windows.Forms.Button(); - this.B_Personal = new System.Windows.Forms.Button(); - this.B_Evolution = new System.Windows.Forms.Button(); - this.B_LevelUp = new System.Windows.Forms.Button(); - this.B_Wild = new System.Windows.Forms.Button(); - this.B_MegaEvo = new System.Windows.Forms.Button(); - this.B_EggMove = new System.Windows.Forms.Button(); - this.B_Trainer = new System.Windows.Forms.Button(); - this.B_Maison = new System.Windows.Forms.Button(); - this.B_Royal = new System.Windows.Forms.Button(); - this.B_Item = new System.Windows.Forms.Button(); - this.B_Move = new System.Windows.Forms.Button(); - this.B_TitleScreen = new System.Windows.Forms.Button(); - this.B_OWSE = new System.Windows.Forms.Button(); - this.Tab_ExeFS = new System.Windows.Forms.TabPage(); - this.FLP_ExeFS = new System.Windows.Forms.FlowLayoutPanel(); - this.B_TM = new System.Windows.Forms.Button(); - this.B_ShinyRate = new System.Windows.Forms.Button(); - this.Tab_CRO = new System.Windows.Forms.TabPage(); - this.FLP_CRO = new System.Windows.Forms.FlowLayoutPanel(); - this.B_TypeChart = new System.Windows.Forms.Button(); - this.B_Starter = new System.Windows.Forms.Button(); - this.B_Gift = new System.Windows.Forms.Button(); - this.B_Static = new System.Windows.Forms.Button(); - this.Tab_Output = new System.Windows.Forms.TabPage(); - this.L_Status = new System.Windows.Forms.Label(); - this.menuStrip1.SuspendLayout(); - this.TC_RomFS.SuspendLayout(); - this.Tab_RomFS.SuspendLayout(); - this.FLP_RomFS.SuspendLayout(); - this.Tab_ExeFS.SuspendLayout(); - this.FLP_ExeFS.SuspendLayout(); - this.Tab_CRO.SuspendLayout(); - this.FLP_CRO.SuspendLayout(); - this.Tab_Output.SuspendLayout(); - this.SuspendLayout(); - // - // TB_Path - // - this.TB_Path.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.TB_Path.Location = new System.Drawing.Point(158, 3); - this.TB_Path.Name = "TB_Path"; - this.TB_Path.ReadOnly = true; - this.TB_Path.Size = new System.Drawing.Size(214, 20); - this.TB_Path.TabIndex = 1; - // - // L_Game - // - this.L_Game.AutoSize = true; - this.L_Game.ForeColor = System.Drawing.Color.Red; - this.L_Game.Location = new System.Drawing.Point(157, 23); - this.L_Game.Name = "L_Game"; - this.L_Game.Size = new System.Drawing.Size(91, 13); - this.L_Game.TabIndex = 2; - this.L_Game.Text = "No Game Loaded"; - // - // pBar1 - // - this.pBar1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.pBar1.Location = new System.Drawing.Point(12, 225); - this.pBar1.Name = "pBar1"; - this.pBar1.Size = new System.Drawing.Size(360, 14); - this.pBar1.TabIndex = 6; - // - // B_OPower - // - this.B_OPower.Location = new System.Drawing.Point(215, 32); - this.B_OPower.Name = "B_OPower"; - this.B_OPower.Size = new System.Drawing.Size(100, 23); - this.B_OPower.TabIndex = 4; - this.B_OPower.Text = "O-Power"; - this.B_OPower.UseVisualStyleBackColor = true; - this.B_OPower.Click += new System.EventHandler(this.B_OPower_Click); - // - // B_Pickup - // - this.B_Pickup.Location = new System.Drawing.Point(109, 32); - this.B_Pickup.Name = "B_Pickup"; - this.B_Pickup.Size = new System.Drawing.Size(100, 23); - this.B_Pickup.TabIndex = 0; - this.B_Pickup.Text = "Pickup"; - this.B_Pickup.UseVisualStyleBackColor = true; - this.B_Pickup.Click += new System.EventHandler(this.B_Pickup_Click); - // - // B_Mart - // - this.B_Mart.Location = new System.Drawing.Point(3, 32); - this.B_Mart.Name = "B_Mart"; - this.B_Mart.Size = new System.Drawing.Size(100, 23); - this.B_Mart.TabIndex = 2; - this.B_Mart.Text = "Poké Mart"; - this.B_Mart.UseVisualStyleBackColor = true; - this.B_Mart.Click += new System.EventHandler(this.B_Mart_Click); - // - // B_MoveTutor - // - this.B_MoveTutor.Location = new System.Drawing.Point(3, 3); - this.B_MoveTutor.Name = "B_MoveTutor"; - this.B_MoveTutor.Size = new System.Drawing.Size(100, 23); - this.B_MoveTutor.TabIndex = 3; - this.B_MoveTutor.Text = "Move Tutors"; - this.B_MoveTutor.UseVisualStyleBackColor = true; - this.B_MoveTutor.Click += new System.EventHandler(this.B_MoveTutor_Click); - // - // B_TMHM - // - this.B_TMHM.Location = new System.Drawing.Point(109, 3); - this.B_TMHM.Name = "B_TMHM"; - this.B_TMHM.Size = new System.Drawing.Size(100, 23); - this.B_TMHM.TabIndex = 1; - this.B_TMHM.Text = "TMs/HMs"; - this.B_TMHM.UseVisualStyleBackColor = true; - this.B_TMHM.Click += new System.EventHandler(this.B_TMHM_Click); - // - // RTB_Status - // - this.RTB_Status.Dock = System.Windows.Forms.DockStyle.Fill; - this.RTB_Status.Location = new System.Drawing.Point(0, 0); - this.RTB_Status.Name = "RTB_Status"; - this.RTB_Status.ReadOnly = true; - this.RTB_Status.Size = new System.Drawing.Size(352, 154); - this.RTB_Status.TabIndex = 7; - this.RTB_Status.Text = ""; - // - // menuStrip1 - // - this.menuStrip1.BackColor = System.Drawing.Color.Transparent; - this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.Menu_File, - this.Menu_Tools, - this.Menu_Options}); - this.menuStrip1.Location = new System.Drawing.Point(0, 0); - this.menuStrip1.Name = "menuStrip1"; - this.menuStrip1.Size = new System.Drawing.Size(384, 24); - this.menuStrip1.TabIndex = 9; - this.menuStrip1.Text = "menuStrip1"; - // - // Menu_File - // - this.Menu_File.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.Menu_Open, - this.Menu_Exit}); - this.Menu_File.Name = "Menu_File"; - this.Menu_File.Size = new System.Drawing.Size(37, 20); - this.Menu_File.Text = "File"; - // - // Menu_Open - // - this.Menu_Open.Name = "Menu_Open"; - this.Menu_Open.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O))); - this.Menu_Open.ShowShortcutKeys = false; - this.Menu_Open.Size = new System.Drawing.Size(105, 22); - this.Menu_Open.Text = "&Open..."; - this.Menu_Open.Click += new System.EventHandler(this.B_Open_Click); - // - // Menu_Exit - // - this.Menu_Exit.Name = "Menu_Exit"; - this.Menu_Exit.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.E))); - this.Menu_Exit.ShowShortcutKeys = false; - this.Menu_Exit.Size = new System.Drawing.Size(105, 22); - this.Menu_Exit.Text = "&Exit"; - this.Menu_Exit.Click += new System.EventHandler(this.Menu_Exit_Click); - // - // Menu_Tools - // - this.Menu_Tools.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.Menu_Restore, - this.Menu_Misc, - this.Menu_Rebuild, - this.Menu_SMDH}); - this.Menu_Tools.Name = "Menu_Tools"; - this.Menu_Tools.Size = new System.Drawing.Size(47, 20); - this.Menu_Tools.Text = "Tools"; - // - // Menu_Restore - // - this.Menu_Restore.Enabled = false; - this.Menu_Restore.Name = "Menu_Restore"; - this.Menu_Restore.Size = new System.Drawing.Size(184, 22); - this.Menu_Restore.Text = "Restore Original Files"; - this.Menu_Restore.Click += new System.EventHandler(this.L_Game_Click); - // - // Menu_Misc - // - this.Menu_Misc.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.unPackBCLIMToolStripMenuItem, - this.Menu_BLZ, - this.Menu_LZ11, - this.Menu_Shuffler}); - this.Menu_Misc.Name = "Menu_Misc"; - this.Menu_Misc.Size = new System.Drawing.Size(184, 22); - this.Menu_Misc.Text = "Misc Tools"; - // - // unPackBCLIMToolStripMenuItem - // - this.unPackBCLIMToolStripMenuItem.Name = "unPackBCLIMToolStripMenuItem"; - this.unPackBCLIMToolStripMenuItem.Size = new System.Drawing.Size(176, 22); - this.unPackBCLIMToolStripMenuItem.Text = "(un)Pack + BCLIM"; - this.unPackBCLIMToolStripMenuItem.Click += new System.EventHandler(this.L_SubTools_Click); - // - // Menu_BLZ - // - this.Menu_BLZ.Name = "Menu_BLZ"; - this.Menu_BLZ.Size = new System.Drawing.Size(176, 22); - this.Menu_BLZ.Text = "(de)Compress BLZ"; - this.Menu_BLZ.Click += new System.EventHandler(this.Menu_BLZ_Click); - // - // Menu_LZ11 - // - this.Menu_LZ11.Name = "Menu_LZ11"; - this.Menu_LZ11.Size = new System.Drawing.Size(176, 22); - this.Menu_LZ11.Text = "(de)Compress LZ11"; - this.Menu_LZ11.Click += new System.EventHandler(this.Menu_LZ11_Click); - // - // Menu_Shuffler - // - this.Menu_Shuffler.Enabled = false; - this.Menu_Shuffler.Name = "Menu_Shuffler"; - this.Menu_Shuffler.Size = new System.Drawing.Size(176, 22); - this.Menu_Shuffler.Text = "GARC Shuffler"; - this.Menu_Shuffler.Click += new System.EventHandler(this.Menu_Shuffler_Click); - // - // Menu_Rebuild - // - this.Menu_Rebuild.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.Menu_RomFS, - this.Menu_ExeFS, - this.Menu_CRO, - this.Menu_3DS, - this.Menu_Patch}); - this.Menu_Rebuild.Name = "Menu_Rebuild"; - this.Menu_Rebuild.Size = new System.Drawing.Size(184, 22); - this.Menu_Rebuild.Text = "Rebuild..."; - // - // Menu_RomFS - // - this.Menu_RomFS.Enabled = false; - this.Menu_RomFS.Name = "Menu_RomFS"; - this.Menu_RomFS.Size = new System.Drawing.Size(111, 22); - this.Menu_RomFS.Text = "RomFS"; - this.Menu_RomFS.Click += new System.EventHandler(this.rebuildRomFS); - // - // Menu_ExeFS - // - this.Menu_ExeFS.Enabled = false; - this.Menu_ExeFS.Name = "Menu_ExeFS"; - this.Menu_ExeFS.Size = new System.Drawing.Size(111, 22); - this.Menu_ExeFS.Text = "ExeFS"; - this.Menu_ExeFS.Click += new System.EventHandler(this.rebuildExeFS); - // - // Menu_CRO - // - this.Menu_CRO.Enabled = false; - this.Menu_CRO.Name = "Menu_CRO"; - this.Menu_CRO.Size = new System.Drawing.Size(111, 22); - this.Menu_CRO.Text = "CRO"; - this.Menu_CRO.Click += new System.EventHandler(this.patchCRO_CRR); - // - // Menu_3DS - // - this.Menu_3DS.Enabled = false; - this.Menu_3DS.Name = "Menu_3DS"; - this.Menu_3DS.Size = new System.Drawing.Size(111, 22); - this.Menu_3DS.Text = ".3DS"; - this.Menu_3DS.Click += new System.EventHandler(this.B_Rebuild3DS_Click); - // - // Menu_Patch - // - this.Menu_Patch.Enabled = false; - this.Menu_Patch.Name = "Menu_Patch"; - this.Menu_Patch.Size = new System.Drawing.Size(111, 22); - this.Menu_Patch.Text = "Patch"; - this.Menu_Patch.Click += new System.EventHandler(this.B_Patch_Click); - // - // Menu_SMDH - // - this.Menu_SMDH.Name = "Menu_SMDH"; - this.Menu_SMDH.Size = new System.Drawing.Size(184, 22); - this.Menu_SMDH.Text = "SMDH Editor (Icon)"; - this.Menu_SMDH.Click += new System.EventHandler(this.Menu_SMDH_Click); - // - // Menu_Options - // - this.Menu_Options.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.Menu_Language, - this.Menu_About, - this.Menu_GARCs}); - this.Menu_Options.Name = "Menu_Options"; - this.Menu_Options.Size = new System.Drawing.Size(61, 20); - this.Menu_Options.Text = "Options"; - // - // Menu_Language - // - this.Menu_Language.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.CB_Lang}); - this.Menu_Language.Name = "Menu_Language"; - this.Menu_Language.Size = new System.Drawing.Size(146, 22); - this.Menu_Language.Text = "Language"; - // - // CB_Lang - // - this.CB_Lang.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_Lang.Items.AddRange(new object[] { - "カタカナ", - "漢字", - "English", - "Français", - "Italiano", - "Deutsch", - "Español", - "한국", - "汉字简化方案", - "漢字簡化方案"}); - this.CB_Lang.Name = "CB_Lang"; - this.CB_Lang.Size = new System.Drawing.Size(121, 23); - this.CB_Lang.SelectedIndexChanged += new System.EventHandler(this.changeLanguage); - // - // Menu_About - // - this.Menu_About.Name = "Menu_About"; - this.Menu_About.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.B))); - this.Menu_About.ShowShortcutKeys = false; - this.Menu_About.Size = new System.Drawing.Size(146, 22); - this.Menu_About.Text = "A&bout pk3DS"; - this.Menu_About.Click += new System.EventHandler(this.L_About_Click); - // - // Menu_GARCs - // - this.Menu_GARCs.Name = "Menu_GARCs"; - this.Menu_GARCs.Size = new System.Drawing.Size(146, 22); - this.Menu_GARCs.Text = "About GARCs"; - this.Menu_GARCs.Click += new System.EventHandler(this.L_GARCInfo_Click); - // - // TC_RomFS - // - this.TC_RomFS.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.TC_RomFS.Controls.Add(this.Tab_RomFS); - this.TC_RomFS.Controls.Add(this.Tab_ExeFS); - this.TC_RomFS.Controls.Add(this.Tab_CRO); - this.TC_RomFS.Controls.Add(this.Tab_Output); - this.TC_RomFS.Location = new System.Drawing.Point(12, 39); - this.TC_RomFS.Name = "TC_RomFS"; - this.TC_RomFS.SelectedIndex = 0; - this.TC_RomFS.Size = new System.Drawing.Size(360, 180); - this.TC_RomFS.TabIndex = 11; - // - // Tab_RomFS - // - this.Tab_RomFS.Controls.Add(this.FLP_RomFS); - this.Tab_RomFS.Location = new System.Drawing.Point(4, 22); - this.Tab_RomFS.Name = "Tab_RomFS"; - this.Tab_RomFS.Padding = new System.Windows.Forms.Padding(3); - this.Tab_RomFS.Size = new System.Drawing.Size(352, 154); - this.Tab_RomFS.TabIndex = 0; - this.Tab_RomFS.Text = "RomFS"; - this.Tab_RomFS.UseVisualStyleBackColor = true; - // - // FLP_RomFS - // - this.FLP_RomFS.AutoScroll = true; - this.FLP_RomFS.Controls.Add(this.B_GameText); - this.FLP_RomFS.Controls.Add(this.B_StoryText); - this.FLP_RomFS.Controls.Add(this.B_Personal); - this.FLP_RomFS.Controls.Add(this.B_Evolution); - this.FLP_RomFS.Controls.Add(this.B_LevelUp); - this.FLP_RomFS.Controls.Add(this.B_Wild); - this.FLP_RomFS.Controls.Add(this.B_MegaEvo); - this.FLP_RomFS.Controls.Add(this.B_EggMove); - this.FLP_RomFS.Controls.Add(this.B_Trainer); - this.FLP_RomFS.Controls.Add(this.B_Maison); - this.FLP_RomFS.Controls.Add(this.B_Royal); - this.FLP_RomFS.Controls.Add(this.B_Item); - this.FLP_RomFS.Controls.Add(this.B_Move); - this.FLP_RomFS.Controls.Add(this.B_TitleScreen); - this.FLP_RomFS.Controls.Add(this.B_OWSE); - this.FLP_RomFS.Dock = System.Windows.Forms.DockStyle.Fill; - this.FLP_RomFS.Location = new System.Drawing.Point(3, 3); - this.FLP_RomFS.Name = "FLP_RomFS"; - this.FLP_RomFS.Size = new System.Drawing.Size(346, 148); - this.FLP_RomFS.TabIndex = 13; - // - // B_GameText - // - this.B_GameText.Location = new System.Drawing.Point(3, 3); - this.B_GameText.Name = "B_GameText"; - this.B_GameText.Size = new System.Drawing.Size(100, 23); - this.B_GameText.TabIndex = 0; - this.B_GameText.Text = "Game Text"; - this.B_GameText.UseVisualStyleBackColor = true; - this.B_GameText.Click += new System.EventHandler(this.B_GameText_Click); - // - // B_StoryText - // - this.B_StoryText.Location = new System.Drawing.Point(109, 3); - this.B_StoryText.Name = "B_StoryText"; - this.B_StoryText.Size = new System.Drawing.Size(100, 23); - this.B_StoryText.TabIndex = 1; - this.B_StoryText.Text = "Story Text"; - this.B_StoryText.UseVisualStyleBackColor = true; - this.B_StoryText.Click += new System.EventHandler(this.B_StoryText_Click); - // - // B_Personal - // - this.B_Personal.Location = new System.Drawing.Point(215, 3); - this.B_Personal.Name = "B_Personal"; - this.B_Personal.Size = new System.Drawing.Size(100, 23); - this.B_Personal.TabIndex = 3; - this.B_Personal.Text = "Personal Stats"; - this.B_Personal.UseVisualStyleBackColor = true; - this.B_Personal.Click += new System.EventHandler(this.B_Personal_Click); - // - // B_Evolution - // - this.B_Evolution.Location = new System.Drawing.Point(3, 32); - this.B_Evolution.Name = "B_Evolution"; - this.B_Evolution.Size = new System.Drawing.Size(100, 23); - this.B_Evolution.TabIndex = 6; - this.B_Evolution.Text = "Evolutions"; - this.B_Evolution.UseVisualStyleBackColor = true; - this.B_Evolution.Click += new System.EventHandler(this.B_Evolution_Click); - // - // B_LevelUp - // - this.B_LevelUp.Location = new System.Drawing.Point(109, 32); - this.B_LevelUp.Name = "B_LevelUp"; - this.B_LevelUp.Size = new System.Drawing.Size(100, 23); - this.B_LevelUp.TabIndex = 9; - this.B_LevelUp.Text = "Level Up Moves"; - this.B_LevelUp.UseVisualStyleBackColor = true; - this.B_LevelUp.Click += new System.EventHandler(this.B_LevelUp_Click); - // - // B_Wild - // - this.B_Wild.Location = new System.Drawing.Point(215, 32); - this.B_Wild.Name = "B_Wild"; - this.B_Wild.Size = new System.Drawing.Size(100, 23); - this.B_Wild.TabIndex = 4; - this.B_Wild.Text = "Wild Encounters"; - this.B_Wild.UseVisualStyleBackColor = true; - this.B_Wild.Click += new System.EventHandler(this.B_Wild_Click); - // - // B_MegaEvo - // - this.B_MegaEvo.Location = new System.Drawing.Point(3, 61); - this.B_MegaEvo.Name = "B_MegaEvo"; - this.B_MegaEvo.Size = new System.Drawing.Size(100, 23); - this.B_MegaEvo.TabIndex = 7; - this.B_MegaEvo.Text = "Mega Evolutions"; - this.B_MegaEvo.UseVisualStyleBackColor = true; - this.B_MegaEvo.Click += new System.EventHandler(this.B_MegaEvo_Click); - // - // B_EggMove - // - this.B_EggMove.Location = new System.Drawing.Point(109, 61); - this.B_EggMove.Name = "B_EggMove"; - this.B_EggMove.Size = new System.Drawing.Size(100, 23); - this.B_EggMove.TabIndex = 10; - this.B_EggMove.Text = "Egg Moves"; - this.B_EggMove.UseVisualStyleBackColor = true; - this.B_EggMove.Click += new System.EventHandler(this.B_EggMove_Click); - // - // B_Trainer - // - this.B_Trainer.Location = new System.Drawing.Point(215, 61); - this.B_Trainer.Name = "B_Trainer"; - this.B_Trainer.Size = new System.Drawing.Size(100, 23); - this.B_Trainer.TabIndex = 2; - this.B_Trainer.Text = "Trainers"; - this.B_Trainer.UseVisualStyleBackColor = true; - this.B_Trainer.Click += new System.EventHandler(this.B_Trainer_Click); - // - // B_Maison - // - this.B_Maison.Location = new System.Drawing.Point(3, 90); - this.B_Maison.Name = "B_Maison"; - this.B_Maison.Size = new System.Drawing.Size(100, 23); - this.B_Maison.TabIndex = 5; - this.B_Maison.Text = "Battle Maison"; - this.B_Maison.UseVisualStyleBackColor = true; - this.B_Maison.Click += new System.EventHandler(this.B_Maison_Click); - // - // B_Royal - // - this.B_Royal.Location = new System.Drawing.Point(109, 90); - this.B_Royal.Name = "B_Royal"; - this.B_Royal.Size = new System.Drawing.Size(100, 23); - this.B_Royal.TabIndex = 14; - this.B_Royal.Text = "Battle Royal/Tree"; - this.B_Royal.UseVisualStyleBackColor = true; - this.B_Royal.Click += new System.EventHandler(this.B_Maison_Click); - // - // B_Item - // - this.B_Item.Location = new System.Drawing.Point(215, 90); - this.B_Item.Name = "B_Item"; - this.B_Item.Size = new System.Drawing.Size(100, 23); - this.B_Item.TabIndex = 8; - this.B_Item.Text = "Item Stats"; - this.B_Item.UseVisualStyleBackColor = true; - this.B_Item.Click += new System.EventHandler(this.B_Item_Click); - // - // B_Move - // - this.B_Move.Location = new System.Drawing.Point(3, 119); - this.B_Move.Name = "B_Move"; - this.B_Move.Size = new System.Drawing.Size(100, 23); - this.B_Move.TabIndex = 11; - this.B_Move.Text = "Move Stats"; - this.B_Move.UseVisualStyleBackColor = true; - this.B_Move.Click += new System.EventHandler(this.B_Move_Click); - // - // B_TitleScreen - // - this.B_TitleScreen.Location = new System.Drawing.Point(109, 119); - this.B_TitleScreen.Name = "B_TitleScreen"; - this.B_TitleScreen.Size = new System.Drawing.Size(100, 23); - this.B_TitleScreen.TabIndex = 12; - this.B_TitleScreen.Text = "Title Screen"; - this.B_TitleScreen.UseVisualStyleBackColor = true; - this.B_TitleScreen.Click += new System.EventHandler(this.B_TitleScreen_Click); - // - // B_OWSE - // - this.B_OWSE.Location = new System.Drawing.Point(215, 119); - this.B_OWSE.Name = "B_OWSE"; - this.B_OWSE.Size = new System.Drawing.Size(100, 23); - this.B_OWSE.TabIndex = 13; - this.B_OWSE.Text = "OWSE [Dev]"; - this.B_OWSE.UseVisualStyleBackColor = true; - this.B_OWSE.Click += new System.EventHandler(this.B_OWSE_Click); - // - // Tab_ExeFS - // - this.Tab_ExeFS.Controls.Add(this.FLP_ExeFS); - this.Tab_ExeFS.Location = new System.Drawing.Point(4, 22); - this.Tab_ExeFS.Name = "Tab_ExeFS"; - this.Tab_ExeFS.Padding = new System.Windows.Forms.Padding(3); - this.Tab_ExeFS.Size = new System.Drawing.Size(352, 154); - this.Tab_ExeFS.TabIndex = 1; - this.Tab_ExeFS.Text = "ExeFS"; - this.Tab_ExeFS.UseVisualStyleBackColor = true; - // - // FLP_ExeFS - // - this.FLP_ExeFS.AutoScroll = true; - this.FLP_ExeFS.Controls.Add(this.B_MoveTutor); - this.FLP_ExeFS.Controls.Add(this.B_TMHM); - this.FLP_ExeFS.Controls.Add(this.B_TM); - this.FLP_ExeFS.Controls.Add(this.B_Mart); - this.FLP_ExeFS.Controls.Add(this.B_Pickup); - this.FLP_ExeFS.Controls.Add(this.B_OPower); - this.FLP_ExeFS.Controls.Add(this.B_ShinyRate); - this.FLP_ExeFS.Dock = System.Windows.Forms.DockStyle.Fill; - this.FLP_ExeFS.Location = new System.Drawing.Point(3, 3); - this.FLP_ExeFS.Name = "FLP_ExeFS"; - this.FLP_ExeFS.Size = new System.Drawing.Size(346, 148); - this.FLP_ExeFS.TabIndex = 11; - // - // B_TM - // - this.B_TM.Location = new System.Drawing.Point(215, 3); - this.B_TM.Name = "B_TM"; - this.B_TM.Size = new System.Drawing.Size(100, 23); - this.B_TM.TabIndex = 6; - this.B_TM.Text = "TMs"; - this.B_TM.UseVisualStyleBackColor = true; - this.B_TM.Click += new System.EventHandler(this.B_TMHM_Click); - // - // B_ShinyRate - // - this.B_ShinyRate.Location = new System.Drawing.Point(3, 61); - this.B_ShinyRate.Name = "B_ShinyRate"; - this.B_ShinyRate.Size = new System.Drawing.Size(100, 23); - this.B_ShinyRate.TabIndex = 5; - this.B_ShinyRate.Text = "Shiny Rate"; - this.B_ShinyRate.UseVisualStyleBackColor = true; - this.B_ShinyRate.Click += new System.EventHandler(this.B_ShinyRate_Click); - // - // Tab_CRO - // - this.Tab_CRO.Controls.Add(this.FLP_CRO); - this.Tab_CRO.Location = new System.Drawing.Point(4, 22); - this.Tab_CRO.Name = "Tab_CRO"; - this.Tab_CRO.Size = new System.Drawing.Size(352, 154); - this.Tab_CRO.TabIndex = 2; - this.Tab_CRO.Text = "CRO"; - this.Tab_CRO.UseVisualStyleBackColor = true; - // - // FLP_CRO - // - this.FLP_CRO.Controls.Add(this.B_TypeChart); - this.FLP_CRO.Controls.Add(this.B_Starter); - this.FLP_CRO.Controls.Add(this.B_Gift); - this.FLP_CRO.Controls.Add(this.B_Static); - this.FLP_CRO.Dock = System.Windows.Forms.DockStyle.Fill; - this.FLP_CRO.Location = new System.Drawing.Point(0, 0); - this.FLP_CRO.Name = "FLP_CRO"; - this.FLP_CRO.Padding = new System.Windows.Forms.Padding(3); - this.FLP_CRO.Size = new System.Drawing.Size(352, 154); - this.FLP_CRO.TabIndex = 1; - // - // B_TypeChart - // - this.B_TypeChart.Location = new System.Drawing.Point(6, 6); - this.B_TypeChart.Name = "B_TypeChart"; - this.B_TypeChart.Size = new System.Drawing.Size(100, 23); - this.B_TypeChart.TabIndex = 0; - this.B_TypeChart.Text = "Type Chart"; - this.B_TypeChart.UseVisualStyleBackColor = true; - this.B_TypeChart.Click += new System.EventHandler(this.B_TypeChart_Click); - // - // B_Starter - // - this.B_Starter.Location = new System.Drawing.Point(112, 6); - this.B_Starter.Name = "B_Starter"; - this.B_Starter.Size = new System.Drawing.Size(100, 23); - this.B_Starter.TabIndex = 1; - this.B_Starter.Text = "Starters"; - this.B_Starter.UseVisualStyleBackColor = true; - this.B_Starter.Click += new System.EventHandler(this.B_Starter_Click); - // - // B_Gift - // - this.B_Gift.Location = new System.Drawing.Point(218, 6); - this.B_Gift.Name = "B_Gift"; - this.B_Gift.Size = new System.Drawing.Size(100, 23); - this.B_Gift.TabIndex = 2; - this.B_Gift.Text = "Gift Pokémon"; - this.B_Gift.UseVisualStyleBackColor = true; - this.B_Gift.Click += new System.EventHandler(this.B_Gift_Click); - // - // B_Static - // - this.B_Static.Location = new System.Drawing.Point(6, 35); - this.B_Static.Name = "B_Static"; - this.B_Static.Size = new System.Drawing.Size(100, 23); - this.B_Static.TabIndex = 3; - this.B_Static.Text = "Static Encounters"; - this.B_Static.UseVisualStyleBackColor = true; - this.B_Static.Click += new System.EventHandler(this.B_Static_Click); - // - // Tab_Output - // - this.Tab_Output.Controls.Add(this.RTB_Status); - this.Tab_Output.Location = new System.Drawing.Point(4, 22); - this.Tab_Output.Name = "Tab_Output"; - this.Tab_Output.Size = new System.Drawing.Size(352, 154); - this.Tab_Output.TabIndex = 3; - this.Tab_Output.Text = "Output"; - this.Tab_Output.UseVisualStyleBackColor = true; - // - // L_Status - // - this.L_Status.Location = new System.Drawing.Point(203, 37); - this.L_Status.Name = "L_Status"; - this.L_Status.Size = new System.Drawing.Size(163, 20); - this.L_Status.TabIndex = 14; - this.L_Status.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // Main - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(384, 252); - this.Controls.Add(this.L_Status); - this.Controls.Add(this.TC_RomFS); - this.Controls.Add(this.pBar1); - this.Controls.Add(this.L_Game); - this.Controls.Add(this.TB_Path); - this.Controls.Add(this.menuStrip1); - this.MaximizeBox = false; - this.MinimumSize = new System.Drawing.Size(400, 290); - this.Name = "Main"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "pk3DS"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.formClosing); - this.menuStrip1.ResumeLayout(false); - this.menuStrip1.PerformLayout(); - this.TC_RomFS.ResumeLayout(false); - this.Tab_RomFS.ResumeLayout(false); - this.FLP_RomFS.ResumeLayout(false); - this.Tab_ExeFS.ResumeLayout(false); - this.FLP_ExeFS.ResumeLayout(false); - this.Tab_CRO.ResumeLayout(false); - this.FLP_CRO.ResumeLayout(false); - this.Tab_Output.ResumeLayout(false); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.TextBox TB_Path; - private System.Windows.Forms.Label L_Game; - private System.Windows.Forms.ProgressBar pBar1; - private System.Windows.Forms.Button B_Pickup; - private System.Windows.Forms.Button B_Mart; - private System.Windows.Forms.Button B_MoveTutor; - private System.Windows.Forms.Button B_TMHM; - public System.Windows.Forms.RichTextBox RTB_Status; - private System.Windows.Forms.Button B_OPower; - private System.Windows.Forms.MenuStrip menuStrip1; - private System.Windows.Forms.ToolStripMenuItem Menu_File; - private System.Windows.Forms.ToolStripMenuItem Menu_Open; - private System.Windows.Forms.ToolStripMenuItem Menu_Exit; - private System.Windows.Forms.ToolStripMenuItem Menu_Tools; - private System.Windows.Forms.ToolStripMenuItem Menu_Restore; - private System.Windows.Forms.ToolStripMenuItem Menu_Misc; - private System.Windows.Forms.ToolStripMenuItem unPackBCLIMToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem Menu_BLZ; - private System.Windows.Forms.ToolStripMenuItem Menu_LZ11; - private System.Windows.Forms.ToolStripMenuItem Menu_Rebuild; - private System.Windows.Forms.ToolStripMenuItem Menu_RomFS; - private System.Windows.Forms.ToolStripMenuItem Menu_ExeFS; - private System.Windows.Forms.ToolStripMenuItem Menu_3DS; - private System.Windows.Forms.ToolStripMenuItem Menu_Patch; - private System.Windows.Forms.ToolStripMenuItem Menu_Options; - private System.Windows.Forms.ToolStripMenuItem Menu_Language; - private System.Windows.Forms.ToolStripComboBox CB_Lang; - private System.Windows.Forms.ToolStripMenuItem Menu_About; - private System.Windows.Forms.ToolStripMenuItem Menu_GARCs; - private System.Windows.Forms.ToolStripMenuItem Menu_SMDH; - private System.Windows.Forms.ToolStripMenuItem Menu_CRO; - private System.Windows.Forms.ToolStripMenuItem Menu_Shuffler; - private System.Windows.Forms.TabControl TC_RomFS; - private System.Windows.Forms.TabPage Tab_RomFS; - private System.Windows.Forms.TabPage Tab_ExeFS; - private System.Windows.Forms.TabPage Tab_CRO; - private System.Windows.Forms.FlowLayoutPanel FLP_ExeFS; - private System.Windows.Forms.TabPage Tab_Output; - private System.Windows.Forms.Button B_Static; - private System.Windows.Forms.Button B_Gift; - private System.Windows.Forms.Button B_Starter; - private System.Windows.Forms.Button B_TypeChart; - private System.Windows.Forms.FlowLayoutPanel FLP_CRO; - private System.Windows.Forms.Button B_TitleScreen; - private System.Windows.Forms.Button B_Move; - private System.Windows.Forms.Button B_Item; - private System.Windows.Forms.Button B_Maison; - private System.Windows.Forms.Button B_Trainer; - private System.Windows.Forms.Button B_EggMove; - private System.Windows.Forms.Button B_MegaEvo; - private System.Windows.Forms.Button B_Wild; - private System.Windows.Forms.Button B_StoryText; - private System.Windows.Forms.Button B_LevelUp; - private System.Windows.Forms.Button B_Evolution; - private System.Windows.Forms.Button B_Personal; - private System.Windows.Forms.Button B_GameText; - private System.Windows.Forms.FlowLayoutPanel FLP_RomFS; - private System.Windows.Forms.Label L_Status; - private System.Windows.Forms.Button B_OWSE; - private System.Windows.Forms.Button B_ShinyRate; - private System.Windows.Forms.Button B_Royal; - private System.Windows.Forms.Button B_TM; - } -} \ No newline at end of file diff --git a/pk3DS/Main.cs b/pk3DS/Main.cs deleted file mode 100644 index b522b7a431..0000000000 --- a/pk3DS/Main.cs +++ /dev/null @@ -1,1235 +0,0 @@ -/*----------------------------------------------------------------------------*/ -/*-- This program is free software: you can redistribute it and/or modify --*/ -/*-- it under the terms of the GNU General Public License as published by --*/ -/*-- the Free Software Foundation, either version 3 of the License, or --*/ -/*-- (at your option) any later version. --*/ -/*-- --*/ -/*-- This program is distributed in the hope that it will be useful, --*/ -/*-- but WITHOUT ANY WARRANTY; without even the implied warranty of --*/ -/*-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --*/ -/*-- GNU General Public License for more details. --*/ -/*-- --*/ -/*-- You should have received a copy of the GNU General Public License --*/ -/*-- along with this program. If not, see . --*/ -/*----------------------------------------------------------------------------*/ - -using pk3DS.Core; -using pk3DS.Core.CTR; -using pk3DS.Core.Structures.PersonalInfo; -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Threading; -using System.Windows.Forms; - -namespace pk3DS -{ - public sealed partial class Main : Form - { - public Main() - { - // Initialize the Main Form - InitializeComponent(); - - // Prepare DragDrop Functionality - AllowDrop = TB_Path.AllowDrop = true; - DragEnter += tabMain_DragEnter; - DragDrop += tabMain_DragDrop; - TB_Path.DragEnter += tabMain_DragEnter; - TB_Path.DragDrop += tabMain_DragDrop; - foreach (var t in TC_RomFS.TabPages.OfType()) - { - t.AllowDrop = true; - t.DragEnter += tabMain_DragEnter; - t.DragDrop += tabMain_DragDrop; - } - - // Reload Previous Editing Files if the file exists - - CB_Lang.SelectedIndex = Properties.Settings.Default.Language; - if (!string.IsNullOrWhiteSpace(Properties.Settings.Default.GamePath)) - openQuick(Properties.Settings.Default.GamePath); - - string[] args = Environment.GetCommandLineArgs(); - string filename = args.Length > 0 ? Path.GetFileNameWithoutExtension(args[0])?.ToLower() : ""; - skipBoth = filename.IndexOf("3DSkip", StringComparison.Ordinal) >= 0; - } - internal static GameConfig Config; - public static string RomFSPath; - public static string ExeFSPath; - public static string ExHeaderPath; - private volatile int threads; - internal static volatile int Language; - internal static SMDH SMDH; - private uint HANSgameID; // for exporting RomFS/ExeFS with correct X8 gameID - private readonly bool skipBoth; - public static PersonalInfo[] SpeciesStat => Config.Personal.Table; - - // Main Form Methods - private void L_About_Click(object sender, EventArgs e) - { - new About().ShowDialog(); - } - private void L_GARCInfo_Click(object sender, EventArgs e) - { - if (RomFSPath == null) - return; - - string s = "Game Type: " + Config.Version + Environment.NewLine; - s = Config.Files.Select(file => file.Name).Aggregate(s, (current, t) => current + string.Format(Environment.NewLine + "{0} - {1}", t, Config.getGARCFileName(t))); - - if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, s, "Copy to Clipboard?")) return; - - try { Clipboard.SetText(s); } - catch { WinFormsUtil.Alert("Unable to copy to Clipboard."); } - } - private void L_Game_Click(object sender, EventArgs e) => new EnhancedRestore(Config).ShowDialog(); - - private void B_Open_Click(object sender, EventArgs e) - { - FolderBrowserDialog fbd = new FolderBrowserDialog(); - if (fbd.ShowDialog() == DialogResult.OK) - openQuick(fbd.SelectedPath); - } - private void changeLanguage(object sender, EventArgs e) - { - if (InvokeRequired) - Invoke((MethodInvoker)delegate { Language = CB_Lang.SelectedIndex; }); - else Language = CB_Lang.SelectedIndex; - if (Config != null) - Config.Language = Language; - Menu_Options.DropDown.Close(); - if (!Tab_RomFS.Enabled || Config == null) - return; - - if ((Config.XY || Config.ORAS) && Language > 7) - { - WinFormsUtil.Alert("Language not available for games. Defaulting to English."); - if (InvokeRequired) - Invoke((MethodInvoker)delegate { CB_Lang.SelectedIndex = 2; }); - else CB_Lang.SelectedIndex = 2; - return; // set event re-triggers this method - } - - updateGameInfo(); - Config.InitializeGameText(); - Properties.Settings.Default.Language = Language; - Properties.Settings.Default.Save(); - } - private void Menu_Exit_Click(object sender, EventArgs e) - { - Close(); - } - private void formClosing(object sender, FormClosingEventArgs e) - { - if (Config == null) return; - var g = Config.GARCGameText; - string[][] files = Config.GameTextStrings; - g.Files = files.Select(x => TextFile.getBytes(Config, x)).ToArray(); - g.Save(); - } - - private void openQuick(string path) - { - if (threadActive()) return; - - if (!Directory.Exists(path)) // File - { - FileInfo fi = new FileInfo(path); - if (fi.Name.Contains("code.bin")) // Compress/Decompress .code.bin - { - if (fi.Length % 0x200 == 0 && WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Detected Decompressed code.bin.", "Compress? File will be replaced.") == DialogResult.Yes) - new Thread(() => { threads++; new BLZCoder(new[] { "-en", path }, pBar1); threads--; WinFormsUtil.Alert("Compressed!"); }).Start(); - else if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Detected Compressed code.bin.", "Decompress? File will be replaced.") == DialogResult.Yes) - new Thread(() => { threads++; new BLZCoder(new[] { "-d", path }, pBar1); threads--; WinFormsUtil.Alert("Decompressed!"); }).Start(); - } - else if (fi.Name.ToLower().Contains("exe")) // Unpack exefs - { - if (fi.Length % 0x200 == 0 && WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Detected ExeFS.bin.", "Unpack?") == DialogResult.Yes) - new Thread(() => { threads++; ExeFS.get(path, Path.GetDirectoryName(path)); threads--; WinFormsUtil.Alert("Unpacked!"); }).Start(); - } - else if (fi.Name.ToLower().Contains("rom")) - { - WinFormsUtil.Alert("RomFS unpacking not implemented."); - } - else - { - DialogResult dr = WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Unpack sub-files?", "Cancel: Abort"); - if (dr == DialogResult.Cancel) - return; - bool recurse = dr == DialogResult.Yes; - ToolsUI.openARC(path, pBar1, recurse); - } - } - else // Directory - { - // Check for ROMFS/EXEFS/EXHEADER - RomFSPath = ExeFSPath = null; // Reset - Config = null; - string[] folders = Directory.GetDirectories(path); - int count = folders.Length; - - // Find RomFS folder - foreach (string f in folders.Where(f => new DirectoryInfo(f).Name.ToLower().Contains("rom") && Directory.Exists(f))) - checkIfRomFS(f); - // Find ExeFS folder - foreach (string f in folders.Where(f => new DirectoryInfo(f).Name.ToLower().Contains("exe") && Directory.Exists(f))) - checkIfExeFS(f); - - if (count > 3) - WinFormsUtil.Alert("pk3DS will function best if you keep your Game Files folder clean and free of unnecessary folders."); - - // Enable buttons if applicable - Tab_RomFS.Enabled = Menu_Restore.Enabled = Tab_CRO.Enabled = Menu_CRO.Enabled = Menu_Shuffler.Enabled = RomFSPath != null; - Tab_ExeFS.Enabled = RomFSPath != null && ExeFSPath != null; - if (RomFSPath != null) - { - toggleSubEditors(); - string newtext = $"Game Loaded: {Config.Version}"; - if (L_Game.Text != newtext && Directory.Exists("personal")) - { Directory.Delete("personal", true); } // Force reloading of personal data if the game is switched. - L_Game.Text = newtext; TB_Path.Text = path; - } - else if (ExeFSPath != null) - { L_Game.Text = "ExeFS loaded - no RomFS"; TB_Path.Text = path; } - else - { L_Game.Text = "No Game Loaded"; TB_Path.Text = ""; } - - if (RomFSPath != null) - { - // Trigger Data Loading - if (RTB_Status.Text.Length > 0) RTB_Status.Clear(); - updateStatus("Data found! Loading persistent data for subforms...", false); - Config.Initialize(RomFSPath, ExeFSPath, Language); - Config.backupFiles(); - } - - // Enable Rebuilding options if all files have been found - checkIfExHeader(path); - Menu_ExeFS.Enabled = ExeFSPath != null; - Menu_RomFS.Enabled = Menu_Restore.Enabled = Menu_GARCs.Enabled = RomFSPath != null; - Menu_Patch.Enabled = RomFSPath != null && ExeFSPath != null; - Menu_3DS.Enabled = - ExHeaderPath != null && RomFSPath != null && ExeFSPath != null; - - // Change L_Game if RomFS and ExeFS exists to a better descriptor - SMDH = ExeFSPath != null ? File.Exists(Path.Combine(ExeFSPath, "icon.bin")) ? new SMDH(Path.Combine(ExeFSPath, "icon.bin")) : null : null; - HANSgameID = SMDH != null ? (SMDH.AppSettings?.StreetPassID ?? 0) : 0; - L_Game.Visible = SMDH == null && RomFSPath != null; - updateGameInfo(); - TB_Path.Select(TB_Path.TextLength, 0); - // Method finished. - System.Media.SystemSounds.Asterisk.Play(); - resetStatus(); - Properties.Settings.Default.GamePath = path; - Properties.Settings.Default.Save(); - } - } - - private void toggleSubEditors() - { - // Hide all buttons - foreach (var f in from TabPage t in TC_RomFS.TabPages from f in t.Controls.OfType() select f) - for (int i = f.Controls.Count - 1; i >= 0; i--) - f.Controls.Remove(f.Controls[i]); - - B_MoveTutor.Visible = Config.ORAS; // Default false unless loaded - - Control[] romfs, exefs, cro; - - switch (Config.Generation) - { - case 6: - romfs = new Control[] {B_GameText, B_StoryText, B_Personal, B_Evolution, B_LevelUp, B_Wild, B_MegaEvo, B_EggMove, B_Trainer, B_Item, B_Move, B_Maison, B_TitleScreen, B_OWSE}; - exefs = new Control[] {B_MoveTutor, B_TMHM, B_Mart, B_Pickup, B_OPower, B_ShinyRate}; - cro = new Control[] {B_TypeChart, B_Starter, B_Gift, B_Static}; - B_MoveTutor.Visible = Config.ORAS; // Default false unless loaded - break; - case 7: - romfs = new Control[] {B_GameText, B_StoryText, B_Personal, B_Evolution, B_LevelUp, B_Wild, B_MegaEvo, B_EggMove, B_Trainer, B_Item, B_Move, B_Royal, B_Pickup, B_OWSE }; - exefs = new Control[] {B_TM, B_TypeChart, B_ShinyRate}; - cro = new Control[] {B_Mart}; - - if (Config.Version != GameVersion.SMDEMO) - romfs = romfs.Concat(new[] {B_Static}).ToArray(); - break; - default: - romfs = exefs = cro = new Control[] {new Label {Text = "No editors available."}}; - break; - } - - FLP_RomFS.Controls.AddRange(romfs); - FLP_ExeFS.Controls.AddRange(exefs); - FLP_CRO.Controls.AddRange(cro); - } - private void updateGameInfo() - { - // 0 - JP - // 1 - EN - // 2 - FR - // 3 - DE - // 4 - IT - // 5 - ES - // 6 - CHS - // 7 - KO - // 8 - - // 11 - CHT - int[] AILang = { 0, 0, 1, 2, 4, 3, 5, 7, 8, 9, 6, 11 }; - Text = SMDH?.AppSettings == null - ? "pk3DS" // nothing else - : "pk3DS - " + SMDH.AppInfo[AILang[Language]].ShortDescription; - } - private static GameConfig checkGameType(string[] files) - { - try - { - if (files.Length > 1000) - return null; - string[] fileArr = Directory.GetFiles(Path.Combine(Directory.GetParent(files[0]).FullName, "a"), "*", SearchOption.AllDirectories); - int fileCount = fileArr.Count(file => Path.GetFileName(file)?.Length == 1); - return new GameConfig(fileCount); - } - catch { } - return null; - } - private bool checkIfRomFS(string path) - { - string[] top = Directory.GetDirectories(path); - FileInfo fi = new FileInfo(top[top.Length > 1 ? 1 : 0]); - // Check to see if the folder is romfs - if (fi.Name == "a") - { - string[] files = Directory.GetFiles(path, "*", SearchOption.AllDirectories); - var cfg = checkGameType(files); - - if (cfg == null) - { - RomFSPath = null; - Config = null; - WinFormsUtil.Error("File count does not match expected game count.", "Files: " + files.Length); - return false; - } - - RomFSPath = path; - Config = cfg; - return true; - } - WinFormsUtil.Error("Folder does not contain an 'a' folder in the top level."); - RomFSPath = null; - return false; - } - private bool checkIfExeFS(string path) - { - string[] files = Directory.GetFiles(path); - if (files.Length == 1 && Path.GetFileName(files[0]).ToLower() == "exefs.bin") - { - // Prompt if the user wants to unpack the ExeFS. - if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Detected ExeFS binary.", "Unpack?")) - return false; - - // User wanted to unpack. Unpack. - if (!ExeFS.get(files[0], path)) - return false; // on unpack fail - - // Remove ExeFS binary after unpacking - File.Delete(files[0]); - - files = Directory.GetFiles(path); - // unpack successful, continue onward! - } - - if (files.Length != 3 && files.Length != 4) - return false; - - FileInfo fi = new FileInfo(files[0]); - if (!fi.Name.Contains("code")) - { - if (new FileInfo(files[1]).Name == "code.bin") - { - File.Move(files[1], Path.Combine(Path.GetDirectoryName(files[1]), ".code.bin")); - files = Directory.GetFiles(path); - fi = new FileInfo(files[0]); - } - else - return false; - } - if (fi.Length % 0x200 != 0 && WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Detected Compressed code binary.", "Decompress? File will be replaced.") == DialogResult.Yes) - new Thread(() => { threads++; new BLZCoder(new[] { "-d", files[0] }, pBar1); threads--; WinFormsUtil.Alert("Decompressed!"); }).Start(); - - ExeFSPath = path; - return true; - } - private bool checkIfExHeader(string path) - { - ExHeaderPath = null; - // Input folder path should contain the ExHeader. - string[] files = Directory.GetFiles(path); - foreach (string fp in from s in files let f = new FileInfo(s) where (f.Name.ToLower().StartsWith("exh") || f.Name.ToLower().StartsWith("decryptedexh")) && f.Length == 0x800 select s) - ExHeaderPath = fp; - - return ExHeaderPath != null; - } - private bool threadActive() - { - if (threads <= 0) return false; - WinFormsUtil.Alert("Please wait for all operations to finish first."); return true; - } - private void tabMain_DragEnter(object sender, DragEventArgs e) - { - if (e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = DragDropEffects.Copy; - } - private void tabMain_DragDrop(object sender, DragEventArgs e) - { - string[] files = (string[])e.Data.GetData(DataFormats.FileDrop); - string path = files[0]; // open first D&D - openQuick(path); - } - - // RomFS Subform Items - private void rebuildRomFS(object sender, EventArgs e) - { - if (threadActive()) return; - if (RomFSPath == null) return; - if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Rebuild RomFS?") != DialogResult.Yes) return; - - SaveFileDialog sfd = new SaveFileDialog - { - FileName = HANSgameID != 0 ? HANSgameID.ToString("X8") + ".romfs" : "romfs.bin", - Filter = "HANS RomFS|*.romfs" + "|Binary File|*.bin" + "|All Files|*.*" - }; - sfd.FilterIndex = HANSgameID != 0 ? 0 : sfd.Filter.Length - 1; - - if (sfd.ShowDialog() == DialogResult.OK) - { - new Thread(() => - { - updateStatus(Environment.NewLine + "Building RomFS binary. Please wait until the program finishes."); - - threads++; - RomFS.BuildRomFS(RomFSPath, sfd.FileName, RTB_Status, pBar1); - threads--; - - updateStatus("RomFS binary saved." + Environment.NewLine); - WinFormsUtil.Alert("Wrote RomFS binary:", sfd.FileName); - }).Start(); - } - } - private void B_GameText_Click(object sender, EventArgs e) - { - if (threadActive()) return; - new Thread(() => - { - var g = Config.GARCGameText; - string[][] files = Config.GameTextStrings; - Invoke((Action)(() => new TextEditor(files, "gametext").ShowDialog())); - g.Files = TryWriteText(files, g); - g.Save(); - }).Start(); - } - private void B_StoryText_Click(object sender, EventArgs e) - { - if (threadActive()) return; - new Thread(() => - { - var g = Config.getGARCData("storytext"); - string[][] files = g.Files.Select(file => new TextFile(Config, file).Lines).ToArray(); - Invoke((Action)(() => new TextEditor(files, "storytext").ShowDialog())); - g.Files = TryWriteText(files, g); - g.Save(); - }).Start(); - } - private static byte[][] TryWriteText(string[][] files, GARCFile g) - { - byte[][] data = new byte[files.Length][]; - var errata = new List(); - for (int i = 0; i < data.Length; i++) - { - try - { - data[i] = TextFile.getBytes(Config, files[i]); - } - catch (Exception ex) - { - errata.Add($"File {i:000} | {ex.Message}"); - // revert changes - data[i] = g.getFile(i); - } - } - if (!errata.Any()) - return data; - - string[] options = - { - "Cancel: Discard all changes", - "Yes: Save changes, dump errata/failed text", - "No: Save changes, don't dump errata/failed text" - }; - var dr = WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Errors found while attempting to save text." - + Environment.NewLine + "Example: " + errata[0], - string.Join(Environment.NewLine, options)); - if (dr == DialogResult.Cancel) - return g.Files; // discard - if (dr == DialogResult.No) - return data; - - const string txt_errata = "text_errata.txt"; - const string txt_failed = "text_failed.txt"; - File.WriteAllLines(txt_errata, errata); - TextEditor.exportTextFile(txt_failed, true, files); - - WinFormsUtil.Alert("Saved text files to path: " + Application.StartupPath, - txt_errata + Environment.NewLine + txt_failed); - - return data; - } - private void B_Maison_Click(object sender, EventArgs e) - { - if (threadActive()) return; - DialogResult dr; - switch (Config.Generation) - { - case 6: - dr = WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Edit Super Maison instead of Normal Maison?", "Yes = Super, No = Normal, Cancel = Abort"); - break; - case 7: - dr = WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Edit Battle Royal instead of Battle Tree?", "Yes = Royal, No = Tree, Cancel = Abort"); - break; - default: - return; - } - if (dr == DialogResult.Cancel) return; - - new Thread(() => - { - bool super = dr == DialogResult.Yes; - string c = super ? "S" : "N"; - var trdata = Config.getGARCData("maisontr"+c); - var trpoke = Config.getGARCData("maisonpk"+c); - byte[][] trd = trdata.Files; - byte[][] trp = trpoke.Files; - switch (Config.Generation) - { - case 6: - Invoke((Action)(() => new MaisonEditor6(trd, trp, super).ShowDialog())); - break; - case 7: - Invoke((Action)(() => new MaisonEditor7(trd, trp, super).ShowDialog())); - break; - } - trdata.Files = trd; - trpoke.Files = trp; - trdata.Save(); - trpoke.Save(); - }).Start(); - } - private void B_Personal_Click(object sender, EventArgs e) - { - if (threadActive()) return; - new Thread(() => - { - byte[][] d = Config.GARCPersonal.Files; - switch (Config.Generation) - { - case 6: - Invoke((Action)(() => new PersonalEditor6(d).ShowDialog())); - break; - case 7: - Invoke((Action)(() => new PersonalEditor7(d).ShowDialog())); - break; - } - // Set Master Table back - for (int i = 0; i < d.Length - 1; i++) - d[i].CopyTo(d[d.Length-1], i * d[i].Length); - - Config.GARCPersonal.Files = d; - Config.GARCPersonal.Save(); - Config.InitializePersonal(); - - }).Start(); - } - private void B_Trainer_Click(object sender, EventArgs e) - { - if (threadActive()) return; - new Thread(() => - { - var trclass = Config.getGARCData("trclass"); - var trdata = Config.getGARCData("trdata"); - var trpoke = Config.getGARCData("trpoke"); - byte[][] trc = trclass.Files; - byte[][] trd = trdata.Files; - byte[][] trp = trpoke.Files; - - switch (Config.Generation) - { - case 6: - Invoke((Action)(() => new RSTE(trc, trd, trp).ShowDialog())); - break; - case 7: - Invoke((Action)(() => new SMTE(trc, trd, trp).ShowDialog())); - break; - } - trclass.Files = trc; - trdata.Files = trd; - trpoke.Files = trp; - trclass.Save(); - trdata.Save(); - trpoke.Save(); - }).Start(); - } - private void B_Wild_Click(object sender, EventArgs e) - { - if (threadActive()) return; - new Thread(() => - { - string[] files; - Action action; - switch (Config.Generation) - { - case 6: - files = new[] { "encdata" }; - if (Config.ORAS) - action = () => new RSWE().ShowDialog(); - else if (Config.XY) - action = () => new XYWE().ShowDialog(); - else return; - - fileGet(files, false); - Invoke(action); - fileSet(files); - break; - case 7: - Invoke((MethodInvoker)delegate { Enabled = false; }); - threads++; - - files = new [] { "encdata", "zonedata", "worlddata" }; - updateStatus($"GARC Get: {files[0]}... "); - var ed = Config.getlzGARCData(files[0]); - updateStatus($"GARC Get: {files[1]}... "); - var zd = Config.getlzGARCData(files[1]); - updateStatus($"GARC Get: {files[2]}... "); - var wd = Config.getlzGARCData(files[2]); - updateStatus("Running SMWE... "); - action = () => new SMWE(ed, zd, wd).ShowDialog(); - Invoke(action); - - updateStatus($"GARC Set: {files[0]}... "); - ed.Save(); - resetStatus(); - threads--; - Invoke((MethodInvoker)delegate { Enabled = true; }); - break; - default: - return; - } - }).Start(); - } - private void B_OWSE_Click(object sender, EventArgs e) - { - if (threadActive()) return; - switch (Config.Generation) - { - case 6: - runOWSE6(); - return; - case 7: - runOWSE7(); - return; - } - } - private void runOWSE6() - { - Enabled = false; - new Thread(() => - { - bool reload = ModifierKeys == Keys.Control || ModifierKeys == (Keys.Alt | Keys.Control); - string[] files = {"encdata", "storytext", "mapGR", "mapMatrix"}; - if (reload || files.Sum(t => Directory.Exists(t) ? 0 : 1) != 0) // Dev bypass if all exist already - fileGet(files, false); - - // Don't set any data back. Just view. - { - var g = Config.getGARCData("storytext"); - string[][] tfiles = g.Files.Select(file => new TextFile(Config, file).Lines).ToArray(); - Invoke((Action)(() => new OWSE().Show())); - Invoke((Action)(() => new TextEditor(tfiles, "storytext").Show())); - while (Application.OpenForms.Count > 1) - Thread.Sleep(200); - } - Invoke((MethodInvoker) delegate { Enabled = true; }); - fileSet(files); - }).Start(); - } - private void runOWSE7() - { - Enabled = false; - new Thread(() => - { - var files = new[] { "encdata", "zonedata", "worlddata" }; - updateStatus($"GARC Get: {files[0]}... "); - var ed = Config.getlzGARCData(files[0]); - updateStatus($"GARC Get: {files[1]}... "); - var zd = Config.getlzGARCData(files[1]); - updateStatus($"GARC Get: {files[2]}... "); - var wd = Config.getlzGARCData(files[2]); - - var g = Config.getGARCData("storytext"); - string[][] tfiles = g.Files.Select(file => new TextFile(Config, file).Lines).ToArray(); - Invoke((Action)(() => new TextEditor(tfiles, "storytext").Show())); - Invoke((Action)(() => new OWSE7(ed, zd, wd).Show())); - while (Application.OpenForms.Count > 1) - Thread.Sleep(200); - Invoke((MethodInvoker)delegate { Enabled = true; }); - }).Start(); - } - private void B_Evolution_Click(object sender, EventArgs e) - { - if (threadActive()) return; - new Thread(() => - { - var g = Config.getGARCData("evolution"); - byte[][] d = g.Files; - switch (Config.Generation) - { - case 6: - Invoke((Action)(() => new EvolutionEditor6(d).ShowDialog())); - break; - case 7: - Invoke((Action)(() => new EvolutionEditor7(d).ShowDialog())); - break; - } - g.Files = d; - g.Save(); - }).Start(); - } - private void B_MegaEvo_Click(object sender, EventArgs e) - { - if (threadActive()) return; - new Thread(() => - { - var g = Config.getGARCData("megaevo"); - byte[][] d = g.Files; - switch (Config.Generation) - { - case 6: - Invoke((Action)(() => new MegaEvoEditor6(d).ShowDialog())); - break; - case 7: - Invoke((Action)(() => new MegaEvoEditor7(d).ShowDialog())); - break; - } - g.Files = d; - g.Save(); - }).Start(); - } - private void B_Item_Click(object sender, EventArgs e) - { - if (threadActive()) return; - new Thread(() => - { - var g = Config.getGARCData("item"); - byte[][] d = g.Files; - switch (Config.Generation) - { - case 6: - Invoke((Action)(() => new ItemEditor6(d).ShowDialog())); - break; - case 7: - Invoke((Action)(() => new ItemEditor7(d).ShowDialog())); - break; - } - g.Files = d; - g.Save(); - }).Start(); - } - private void B_Move_Click(object sender, EventArgs e) - { - if (threadActive()) return; - new Thread(() => - { - var g = Config.GARCMoves; - byte[][] Moves; - switch (Config.Generation) - { - case 6: - bool isMini = Config.ORAS; - Moves = isMini ? mini.unpackMini(g.getFile(0), "WD") : g.Files; - Invoke((Action)(() => new MoveEditor6(Moves).ShowDialog())); - g.Files = isMini ? new[] { mini.packMini(Moves, "WD") } : Moves; - break; - case 7: - Moves = mini.unpackMini(g.getFile(0), "WD"); - Invoke((Action)(() => new MoveEditor7(Moves).ShowDialog())); - g.Files = new[] {mini.packMini(Moves, "WD")}; - break; - } - g.Save(); - }).Start(); - } - private void B_LevelUp_Click(object sender, EventArgs e) - { - if (threadActive()) return; - new Thread(() => - { - var g = Config.getGARCData("levelup"); - byte[][] d = g.Files; - switch (Config.Generation) - { - case 6: - Invoke((Action)(() => new LevelUpEditor6(d).ShowDialog())); - break; - case 7: - Invoke((Action)(() => new LevelUpEditor7(d).ShowDialog())); - break; - } - g.Files = d; - g.Save(); - }).Start(); - } - private void B_EggMove_Click(object sender, EventArgs e) - { - if (threadActive()) return; - new Thread(() => - { - var g = Config.getGARCData("eggmove"); - byte[][] d = g.Files; - switch (Config.Generation) - { - case 6: - Invoke((Action)(() => new EggMoveEditor6(d).ShowDialog())); - break; - case 7: - Invoke((Action)(() => new EggMoveEditor7(d).ShowDialog())); - break; - } - g.Files = d; - g.Save(); - }).Start(); - } - private void B_TitleScreen_Click(object sender, EventArgs e) - { - if (threadActive()) return; - new Thread(() => - { - string[] files = { "titlescreen" }; - fileGet(files); // Compressed files exist, handled in the other form since there's so many - Invoke((Action)(() => new TitleScreenEditor6().ShowDialog())); - fileSet(files); - }).Start(); - } - // RomFS File Requesting Method Wrapper - private void fileGet(string[] files, bool skipDecompression = true, bool skipGet = false) - { - if (skipGet || skipBoth) return; - foreach (string toEdit in files) - { - string GARC = Config.getGARCFileName(toEdit); - updateStatus($"GARC Get: {toEdit} @ {GARC}... "); - threadGet(Path.Combine(RomFSPath, GARC), toEdit, true, skipDecompression); - while (threads > 0) Thread.Sleep(50); - resetStatus(); - } - } - private void fileSet(IEnumerable files, bool keep = false) - { - if (skipBoth) return; - foreach (string toEdit in files) - { - string GARC = Config.getGARCFileName(toEdit); - updateStatus($"GARC Set: {toEdit} @ {GARC}... "); - threadSet(Path.Combine(RomFSPath, GARC), toEdit, 4); // 4 bytes for Gen6 - while (threads > 0) Thread.Sleep(50); - if (!keep && Directory.Exists(toEdit)) Directory.Delete(toEdit, true); - resetStatus(); - } - } - - // ExeFS Subform Items - private void rebuildExeFS(object sender, EventArgs e) - { - if (ExeFSPath == null) return; - if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Rebuild ExeFS?") != DialogResult.Yes) return; - - string[] files = Directory.GetFiles(ExeFSPath); - int file = 0; if (files[1].Contains("code")) file = 1; - - SaveFileDialog sfd = new SaveFileDialog - { - FileName = HANSgameID != 0 ? HANSgameID.ToString("X8") + ".exefs" : "exefs.bin", - Filter = "HANS ExeFS|*.exefs" + "|Binary File|*.bin" + "|All Files|*.*" - }; - sfd.FilterIndex = HANSgameID != 0 ? 0 : sfd.Filter.Length - 1; - - if (sfd.ShowDialog() == DialogResult.OK) - { - new Thread(() => - { - threads++; - new BLZCoder(new[] { "-en", files[file] }, pBar1); - WinFormsUtil.Alert("Compressed!"); - ExeFS.set(Directory.GetFiles(ExeFSPath), sfd.FileName); - threads--; - }).Start(); - } - } - private void B_Pickup_Click(object sender, EventArgs e) - { - if (threadActive()) return; - switch (Config.Generation) - { - case 6: - if (ExeFSPath != null) new PickupEditor6().Show(); - break; - case 7: - var pickup = Config.getlzGARCData("pickup"); - Invoke((Action)(() => new PickupEditor7(pickup).ShowDialog())); - break; - } - } - private void B_TMHM_Click(object sender, EventArgs e) - { - if (threadActive()) return; - if (ExeFSPath != null) - switch (Config.Generation) - { - case 6: - new TMHMEditor6().Show(); - break; - case 7: - new TMEditor7().Show(); - break; - } - } - private void B_Mart_Click(object sender, EventArgs e) - { - if (threadActive()) return; - switch (Config.Generation) - { - case 6: - if (ExeFSPath != null) new MartEditor6().Show(); - break; - - case 7: - if (threadActive()) return; - if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, - "CRO Editing causes crashes if you do not patch the RO module.", "In order to patch the RO module, your device must be running Custom Firmware (for example, Luma3DS).", "Continue anyway?")) - return; - if (RomFSPath != null) (Config.USUM ? new MartEditor7UU() : (Form)new MartEditor7()).Show(); - break; - } - } - private void B_MoveTutor_Click(object sender, EventArgs e) - { - if (threadActive()) return; - if (Config.XY) { WinFormsUtil.Alert("No Tutors for X/Y."); return; } // Already disabled button... - if (ExeFSPath != null) new TutorEditor6().Show(); - } - private void B_OPower_Click(object sender, EventArgs e) - { - if (threadActive()) return; - if (ExeFSPath != null) new OPower().Show(); - } - private void B_ShinyRate_Click(object sender, EventArgs e) - { - if (threadActive()) return; - if (ExeFSPath != null) new ShinyRate().ShowDialog(); - } - - // CRO Subform Items - private void patchCRO_CRR(object sender, EventArgs e) - { - if (threadActive()) return; - if (RomFSPath == null) return; - if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Rebuilding CRO/CRR is not necessary if you patch the RO module.", "Continue?")) - return; - new Thread(() => - { - threads++; - CRO.rehashCRR(Path.Combine(RomFSPath, ".crr", "static.crr"), RomFSPath, true, /* true // don't patch crr for now */ false, RTB_Status, pBar1); - threads--; - - WinFormsUtil.Alert("CRO's and CRR have been updated.", - "If you have made any modifications, it is required that the RSA Verification check be patched on the system in order for the modified CROs to load (ie, no file redirection like NTR's layeredFS)."); - }).Start(); - - } - private void B_Starter_Click(object sender, EventArgs e) - { - if (threadActive()) return; - if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, - "CRO Editing causes crashes if you do not patch the RO module.", "In order to patch the RO module, your device must be running Custom Firmware (for example, Luma3DS).", "Continue anyway?")) - return; - string CRO = Path.Combine(RomFSPath, "DllPoke3Select.cro"); - string CRO2 = Path.Combine(RomFSPath, "DllField.cro"); - if (!File.Exists(CRO)) - { - WinFormsUtil.Error("File Missing!", "DllPoke3Select.cro was not found in your RomFS folder!"); - return; - } - if (!File.Exists(CRO2)) - { - WinFormsUtil.Error("File Missing!", "DllField.cro was not found in your RomFS folder!"); - return; - } - new StarterEditor6().ShowDialog(); - } - private void B_TypeChart_Click(object sender, EventArgs e) - { - if (threadActive()) return; - - switch (Config.Generation) - { - case 6: - if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, - "CRO Editing causes crashes if you do not patch the RO module.", "In order to patch the RO module, your device must be running Custom Firmware (for example, Luma3DS).", "Continue anyway?")) - return; - string CRO = Path.Combine(RomFSPath, "DllBattle.cro"); - if (!File.Exists(CRO)) - { - WinFormsUtil.Error("File Missing!", "DllBattle.cro was not found in your RomFS folder!"); - return; - } - new TypeChart6().ShowDialog(); - break; - case 7: - new TypeChart7().ShowDialog(); - break; - - } - } - private void B_Gift_Click(object sender, EventArgs e) - { - if (threadActive()) return; - if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, - "CRO Editing causes crashes if you do not patch the RO module.", "In order to patch the RO module, your device must be running Custom Firmware (for example, Luma3DS).", "Continue anyway?")) - return; - string CRO = Path.Combine(RomFSPath, "DllField.cro"); - if (!File.Exists(CRO)) - { - WinFormsUtil.Error("File Missing!", "DllField.cro was not found in your RomFS folder!"); - return; - } - new GiftEditor6().ShowDialog(); - } - private void B_Static_Click(object sender, EventArgs e) - { - if (threadActive()) return; - - if (Config.Generation == 7) - { - new Thread(() => - { - var esg = Config.getGARCData("encounterstatic"); - byte[][] es = esg.Files; - - Invoke((Action)(() => new StaticEncounterEditor7(es).ShowDialog())); - esg.Files = es; - esg.Save(); - }).Start(); - return; - } - - if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, - "CRO Editing causes crashes if you do not patch the RO module.", "In order to patch the RO module, your device must be running Custom Firmware (for example, Luma3DS).", "Continue anyway?")) - return; - string CRO = Path.Combine(RomFSPath, "DllField.cro"); - if (!File.Exists(CRO)) - { - WinFormsUtil.Error("File Missing!", "DllField.cro was not found in your RomFS folder!"); - return; - } - new StaticEncounterEditor6().ShowDialog(); - } - - // 3DS Building - private void B_Rebuild3DS_Click(object sender, EventArgs e) - { - // Ensure that the romfs paths are valid - string[] files = Directory.GetFiles(TB_Path.Text, "*", SearchOption.AllDirectories); - if (!Config.IsRebuildable(files.Length)) - { - WinFormsUtil.Error("RomFS file count does not match the default game file count."); - return; - } - if (threadActive()) return; - - SaveFileDialog sfd = new SaveFileDialog - { - FileName = "newROM.3ds", - Filter = "Binary File|*.*" - }; - if (sfd.ShowDialog() != DialogResult.OK) return; - string path = sfd.FileName; - - new Thread(() => - { - threads++; - Exheader exh = new Exheader(ExHeaderPath); - CTRUtil.buildROM(true, "Nintendo", ExeFSPath, RomFSPath, ExHeaderPath, exh.GetSerial(), path, pBar1, - RTB_Status); - threads--; - }).Start(); - } - - // Extra Tools - private void L_SubTools_Click(object sender, EventArgs e) - { - new ToolsUI().ShowDialog(); - } - private void B_Patch_Click(object sender, EventArgs e) - { - new Patch().ShowDialog(); - } - private void Menu_BLZ_Click(object sender, EventArgs e) - { - var ofd = new OpenFileDialog(); - if (DialogResult.OK != ofd.ShowDialog()) return; - - string path = ofd.FileName; - FileInfo fi = new FileInfo(path); - if (fi.Length > 15 * 1024 * 1024) // 15MB - { WinFormsUtil.Error("File too big!", fi.Length + " bytes."); return; } - - if (ModifierKeys != Keys.Control && fi.Length % 0x200 == 0 && WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Detected Decompressed Binary.", "Compress? File will be replaced.") == DialogResult.Yes) - new Thread(() => { threads++; new BLZCoder(new[] { "-en", path }, pBar1); threads--; WinFormsUtil.Alert("Compressed!"); }).Start(); - else if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Detected Compressed Binary", "Decompress? File will be replaced.") == DialogResult.Yes) - new Thread(() => { threads++; new BLZCoder(new[] { "-d", path }, pBar1); threads--; WinFormsUtil.Alert("Decompressed!"); }).Start(); - } - private void Menu_LZ11_Click(object sender, EventArgs e) - { - var ofd = new OpenFileDialog(); - if (DialogResult.OK != ofd.ShowDialog()) return; - - string path = ofd.FileName; - FileInfo fi = new FileInfo(path); - if (fi.Length > 15*1024*1024) // 15MB - { WinFormsUtil.Error("File too big!", fi.Length + " bytes."); return; } - - byte[] data = File.ReadAllBytes(path); - string predict = data[0] == 0x11 ? "compressed" : "decompressed"; - var dr = WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, $"Detected {predict} file. Do what?", - "Yes = Decompress\nNo = Compress\nCancel = Abort"); - new Thread(() => - { - threads++; - if (dr == DialogResult.Yes) - { - try - { - LZSS.Decompress(path, Path.Combine(Directory.GetParent(path).FullName, "dec_" + Path.GetFileNameWithoutExtension(path) + ".bin")); - } catch (Exception err) { WinFormsUtil.Alert("Tried decompression, may have worked:", err.ToString()); } - WinFormsUtil.Alert("File Decompressed!", path); - } - if (dr == DialogResult.No) - { - LZSS.Compress(path, Path.Combine(Directory.GetParent(path).FullName, Path.GetFileNameWithoutExtension(path).Replace("_dec", "") + ".lz")); - WinFormsUtil.Alert("File Compressed!", path); - } - threads--; - }).Start(); - } - private void Menu_SMDH_Click(object sender, EventArgs e) - { - new Icon().ShowDialog(); - } - private void Menu_Shuffler_Click(object sender, EventArgs e) - { - new Shuffler().ShowDialog(); - } - - // GARC Requests - internal static string getGARCFileName(string requestedGARC, int lang) - { - var garc = Config.getGARCReference(requestedGARC); - if (garc.LanguageVariant) - garc = garc.getRelativeGARC(lang); - - return garc.Reference; - } - - private bool getGARC(string infile, string outfolder, bool PB, bool bypassExt = false) - { - if (skipBoth && Directory.Exists(outfolder)) - { - updateStatus("Skipped - Exists!", false); - threads--; - return true; - } - try - { - bool success = GarcUtil.garcUnpack(infile, outfolder, bypassExt, PB ? pBar1 : null, L_Status, true, bypassExt); - updateStatus(string.Format(success ? "Success!" : "Failed!"), false); - threads--; - return success; - } - catch (Exception e) { WinFormsUtil.Error("Could not get the GARC:", e.ToString()); threads--; return false; } - } - private bool setGARC(string outfile, string infolder, int padBytes, bool PB) - { - if (skipBoth || ModifierKeys == Keys.Control && WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Cancel writing data back to GARC?") == DialogResult.Yes) - { threads--; updateStatus("Aborted!", false); return false; } - - try - { - bool success = GarcUtil.garcPackMS(infolder, outfile, Config.GARCVersion, padBytes, PB ? pBar1 : null, L_Status, true); - threads--; - updateStatus(string.Format(success ? "Success!" : "Failed!"), false); - return success; - } - catch (Exception e) { WinFormsUtil.Error("Could not set the GARC back:", e.ToString()); threads--; return false; } - } - private void threadGet(string infile, string outfolder, bool PB = true, bool bypassExt = false) - { - threads++; - if (Directory.Exists(outfolder)) try { Directory.Delete(outfolder, true); } - catch { } - new Thread(() => getGARC(infile, outfolder, PB, bypassExt)).Start(); - } - private void threadSet(string outfile, string infolder, int padBytes, bool PB = true) - { - threads++; - new Thread(() => setGARC(outfile, infolder, padBytes, PB)).Start(); - } - - // Update RichTextBox - private void updateStatus(string status, bool preBreak = true) - { - string newtext = (preBreak ? Environment.NewLine : "") + status; - try - { - if (RTB_Status.InvokeRequired) - RTB_Status.Invoke((MethodInvoker)delegate - { - RTB_Status.AppendText(newtext); - RTB_Status.SelectionStart = RTB_Status.Text.Length; - RTB_Status.ScrollToCaret(); - L_Status.Text = RTB_Status.Lines.Last().Split(new[] {" @"}, StringSplitOptions.None)[0]; - }); - else - { - RTB_Status.AppendText(newtext); - RTB_Status.SelectionStart = RTB_Status.Text.Length; - RTB_Status.ScrollToCaret(); - L_Status.Text = RTB_Status.Lines.Last().Split(new[] { " @" }, StringSplitOptions.None)[0]; - } - } - catch { } - } - private void resetStatus() - { - try - { - if (L_Status.InvokeRequired) - L_Status.Invoke((MethodInvoker)delegate - { - L_Status.Text = ""; - }); - else - { - L_Status.Text = ""; - } - } - catch { } - } - } -} \ No newline at end of file diff --git a/pk3DS/Misc/About.Designer.cs b/pk3DS/Misc/About.Designer.cs deleted file mode 100644 index 1ecde8de74..0000000000 --- a/pk3DS/Misc/About.Designer.cs +++ /dev/null @@ -1,96 +0,0 @@ -namespace pk3DS -{ - partial class About - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.B_Close = new System.Windows.Forms.Button(); - this.RTB = new System.Windows.Forms.RichTextBox(); - this.L_Thanks = new System.Windows.Forms.Label(); - this.SuspendLayout(); - // - // B_Close - // - this.B_Close.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.B_Close.Location = new System.Drawing.Point(412, 340); - this.B_Close.Name = "B_Close"; - this.B_Close.Size = new System.Drawing.Size(75, 23); - this.B_Close.TabIndex = 0; - this.B_Close.Text = "Close"; - this.B_Close.UseVisualStyleBackColor = true; - this.B_Close.Click += new System.EventHandler(this.B_Close_Click); - // - // RTB - // - this.RTB.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.RTB.Location = new System.Drawing.Point(7, 9); - this.RTB.Name = "RTB"; - this.RTB.ReadOnly = true; - this.RTB.Size = new System.Drawing.Size(480, 322); - this.RTB.TabIndex = 1; - this.RTB.Text = ""; - this.RTB.WordWrap = false; - // - // L_Thanks - // - this.L_Thanks.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.L_Thanks.AutoSize = true; - this.L_Thanks.Location = new System.Drawing.Point(12, 345); - this.L_Thanks.Name = "L_Thanks"; - this.L_Thanks.Size = new System.Drawing.Size(147, 13); - this.L_Thanks.TabIndex = 2; - this.L_Thanks.Text = "Thanks to all the researchers!"; - // - // About - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(494, 372); - this.Controls.Add(this.L_Thanks); - this.Controls.Add(this.RTB); - this.Controls.Add(this.B_Close); - this.MaximizeBox = false; - this.MaximumSize = new System.Drawing.Size(910, 710); - this.MinimizeBox = false; - this.MinimumSize = new System.Drawing.Size(510, 410); - this.Name = "About"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "About"; - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Button B_Close; - private System.Windows.Forms.RichTextBox RTB; - private System.Windows.Forms.Label L_Thanks; - } -} \ No newline at end of file diff --git a/pk3DS/Misc/About.cs b/pk3DS/Misc/About.cs deleted file mode 100644 index 6ad37bd2bd..0000000000 --- a/pk3DS/Misc/About.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.Windows.Forms; - -namespace pk3DS -{ - public partial class About : Form - { - public About() - { - InitializeComponent(); - RTB.Text = Properties.Resources.changelog; - } - private void B_Close_Click(object sender, EventArgs e) - { - Close(); - } - } -} diff --git a/pk3DS/Misc/ErrorWindow.Designer.cs b/pk3DS/Misc/ErrorWindow.Designer.cs deleted file mode 100644 index 816b33cda1..0000000000 --- a/pk3DS/Misc/ErrorWindow.Designer.cs +++ /dev/null @@ -1,132 +0,0 @@ -namespace pk3DS -{ - partial class ErrorWindow - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.B_Continue = new System.Windows.Forms.Button(); - this.B_Abort = new System.Windows.Forms.Button(); - this.B_CopyToClipboard = new System.Windows.Forms.Button(); - this.L_ProvideInfo = new System.Windows.Forms.Label(); - this.L_Message = new System.Windows.Forms.Label(); - this.T_ExceptionDetails = new System.Windows.Forms.TextBox(); - this.SuspendLayout(); - // - // B_Continue - // - this.B_Continue.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.B_Continue.Location = new System.Drawing.Point(332, 203); - this.B_Continue.Name = "B_Continue"; - this.B_Continue.Size = new System.Drawing.Size(75, 23); - this.B_Continue.TabIndex = 11; - this.B_Continue.Text = "Continue"; - this.B_Continue.UseVisualStyleBackColor = true; - this.B_Continue.Click += new System.EventHandler(this.B_Continue_Click); - // - // B_Abort - // - this.B_Abort.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.B_Abort.Location = new System.Drawing.Point(413, 203); - this.B_Abort.Name = "B_Abort"; - this.B_Abort.Size = new System.Drawing.Size(75, 23); - this.B_Abort.TabIndex = 10; - this.B_Abort.Text = "Abort"; - this.B_Abort.UseVisualStyleBackColor = true; - this.B_Abort.Click += new System.EventHandler(this.B_Abort_Click); - // - // B_CopyToClipboard - // - this.B_CopyToClipboard.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.B_CopyToClipboard.Location = new System.Drawing.Point(13, 203); - this.B_CopyToClipboard.Name = "B_CopyToClipboard"; - this.B_CopyToClipboard.Size = new System.Drawing.Size(164, 23); - this.B_CopyToClipboard.TabIndex = 9; - this.B_CopyToClipboard.Text = "Copy to Clipboard"; - this.B_CopyToClipboard.UseVisualStyleBackColor = true; - this.B_CopyToClipboard.Click += new System.EventHandler(this.btnCopyToClipboard_Click); - // - // L_ProvideInfo - // - this.L_ProvideInfo.AutoSize = true; - this.L_ProvideInfo.Location = new System.Drawing.Point(10, 38); - this.L_ProvideInfo.Name = "L_ProvideInfo"; - this.L_ProvideInfo.Size = new System.Drawing.Size(269, 13); - this.L_ProvideInfo.TabIndex = 8; - this.L_ProvideInfo.Text = "Please provide this information when reporting this error:"; - // - // L_Message - // - this.L_Message.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.L_Message.Location = new System.Drawing.Point(10, 11); - this.L_Message.Name = "L_Message"; - this.L_Message.Size = new System.Drawing.Size(478, 27); - this.L_Message.TabIndex = 7; - this.L_Message.Text = "An unknown error has occurred."; - // - // T_ExceptionDetails - // - this.T_ExceptionDetails.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.T_ExceptionDetails.Location = new System.Drawing.Point(13, 54); - this.T_ExceptionDetails.Multiline = true; - this.T_ExceptionDetails.Name = "T_ExceptionDetails"; - this.T_ExceptionDetails.ReadOnly = true; - this.T_ExceptionDetails.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.T_ExceptionDetails.Size = new System.Drawing.Size(475, 143); - this.T_ExceptionDetails.TabIndex = 6; - // - // ErrorWindow - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(499, 236); - this.Controls.Add(this.B_Continue); - this.Controls.Add(this.B_Abort); - this.Controls.Add(this.B_CopyToClipboard); - this.Controls.Add(this.L_ProvideInfo); - this.Controls.Add(this.L_Message); - this.Controls.Add(this.T_ExceptionDetails); - this.MinimumSize = new System.Drawing.Size(515, 275); - this.Name = "ErrorWindow"; - this.Text = "Error"; - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Button B_Continue; - private System.Windows.Forms.Button B_Abort; - private System.Windows.Forms.Button B_CopyToClipboard; - private System.Windows.Forms.Label L_ProvideInfo; - private System.Windows.Forms.Label L_Message; - private System.Windows.Forms.TextBox T_ExceptionDetails; - } -} \ No newline at end of file diff --git a/pk3DS/Misc/ErrorWindow.cs b/pk3DS/Misc/ErrorWindow.cs deleted file mode 100644 index 6ad3f82420..0000000000 --- a/pk3DS/Misc/ErrorWindow.cs +++ /dev/null @@ -1,134 +0,0 @@ -using System; -using System.Text; -using System.Windows.Forms; - -namespace pk3DS -{ - public partial class ErrorWindow : Form - { - public static DialogResult ShowErrorDialog(string friendlyMessage, Exception ex, bool allowContinue) - { - var lang = System.Threading.Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName; - var dialog = new ErrorWindow(lang) - { - ShowContinue = allowContinue, - Message = friendlyMessage, - Error = ex - }; - var dialogResult = dialog.ShowDialog(); - if (dialogResult == DialogResult.Abort) - { - Environment.Exit(1); - } - return dialogResult; - } - - public ErrorWindow() - { - InitializeComponent(); - } - - public ErrorWindow(string lang) : this() - { - WinFormsUtil.TranslateInterface(this, lang); - } - - /// - /// Gets or sets whether or not the "Continue" button is visible. - /// - /// For UI exceptions, continuing could be safe. - /// For application exceptions, continuing is not possible, so the button should not be shown. - public bool ShowContinue - { - get - { - return B_Continue.Visible; - } - set - { - B_Continue.Visible = value; - } - } - - /// - /// Friendly, context-specific method shown to the user. - /// - /// This property is intended to be a user-friendly context-specific message about what went wrong. - /// For example: "An error occurred while attempting to automatically load the save file." - public string Message - { - get - { - return L_Message.Text; - } - set - { - L_Message.Text = value; - } - } - - public Exception Error - { - get - { - return _error; - } - set - { - _error = value; - UpdateExceptionDetailsMessage(); - } - } - private Exception _error; - - private void UpdateExceptionDetailsMessage() - { - var details = new StringBuilder(); - details.AppendLine("Exception Details:"); - details.AppendLine(Error.ToString()); - details.AppendLine(); - - details.AppendLine("Loaded Assemblies:"); - details.AppendLine("--------------------"); - try - { - foreach (var item in AppDomain.CurrentDomain.GetAssemblies()) - { - details.AppendLine(item.FullName); - details.AppendLine(item.Location); - details.AppendLine(); - } - } - catch (Exception ex) - { - details.AppendLine("An error occurred while listing the Loaded Assemblies:"); - details.AppendLine(ex.ToString()); - } - details.AppendLine("--------------------"); - - // Include message in case it contains important information, like a file path. - details.AppendLine("User Message:"); - details.AppendLine(Message); - - T_ExceptionDetails.Text = details.ToString(); - } - - private void btnCopyToClipboard_Click(object sender, EventArgs e) - { - Clipboard.SetText(T_ExceptionDetails.Text); - } - - private void B_Continue_Click(object sender, EventArgs e) - { - DialogResult = DialogResult.OK; - Close(); - } - - private void B_Abort_Click(object sender, EventArgs e) - { - DialogResult = DialogResult.Abort; - Close(); - } - - } -} diff --git a/pk3DS/Misc/Patch.Designer.cs b/pk3DS/Misc/Patch.Designer.cs deleted file mode 100644 index 052f758dc6..0000000000 --- a/pk3DS/Misc/Patch.Designer.cs +++ /dev/null @@ -1,172 +0,0 @@ -namespace pk3DS -{ - partial class Patch - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.CHKLB_GARCs = new System.Windows.Forms.CheckedListBox(); - this.textBox1 = new System.Windows.Forms.TextBox(); - this.label1 = new System.Windows.Forms.Label(); - this.B_PatchCIA = new System.Windows.Forms.Button(); - this.CHK_Lang = new System.Windows.Forms.CheckBox(); - this.RTB_GARCs = new System.Windows.Forms.RichTextBox(); - this.label2 = new System.Windows.Forms.Label(); - this.B_CheckAll = new System.Windows.Forms.Button(); - this.B_CheckNone = new System.Windows.Forms.Button(); - this.SuspendLayout(); - // - // CHKLB_GARCs - // - this.CHKLB_GARCs.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left))); - this.CHKLB_GARCs.FormattingEnabled = true; - this.CHKLB_GARCs.Location = new System.Drawing.Point(12, 12); - this.CHKLB_GARCs.Name = "CHKLB_GARCs"; - this.CHKLB_GARCs.Size = new System.Drawing.Size(150, 259); - this.CHKLB_GARCs.TabIndex = 0; - // - // textBox1 - // - this.textBox1.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.textBox1.Location = new System.Drawing.Point(168, 28); - this.textBox1.Name = "textBox1"; - this.textBox1.ReadOnly = true; - this.textBox1.Size = new System.Drawing.Size(104, 20); - this.textBox1.TabIndex = 1; - this.textBox1.Text = "a/#/* -> a#/*"; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(168, 12); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(109, 13); - this.label1.TabIndex = 2; - this.label1.Text = "ExeFS Path Override:"; - // - // B_PatchCIA - // - this.B_PatchCIA.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.B_PatchCIA.Location = new System.Drawing.Point(168, 278); - this.B_PatchCIA.Name = "B_PatchCIA"; - this.B_PatchCIA.Size = new System.Drawing.Size(104, 23); - this.B_PatchCIA.TabIndex = 3; - this.B_PatchCIA.Text = "Redirect [CIA]"; - this.B_PatchCIA.UseVisualStyleBackColor = true; - this.B_PatchCIA.Click += new System.EventHandler(this.B_PatchCIA_Click); - // - // CHK_Lang - // - this.CHK_Lang.AutoSize = true; - this.CHK_Lang.Location = new System.Drawing.Point(171, 54); - this.CHK_Lang.Name = "CHK_Lang"; - this.CHK_Lang.Size = new System.Drawing.Size(110, 17); - this.CHK_Lang.TabIndex = 4; - this.CHK_Lang.Text = "Patch Languages"; - this.CHK_Lang.UseVisualStyleBackColor = true; - // - // RTB_GARCs - // - this.RTB_GARCs.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left))); - this.RTB_GARCs.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.RTB_GARCs.Location = new System.Drawing.Point(168, 90); - this.RTB_GARCs.Name = "RTB_GARCs"; - this.RTB_GARCs.Size = new System.Drawing.Size(75, 181); - this.RTB_GARCs.TabIndex = 5; - this.RTB_GARCs.Text = ""; - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(165, 74); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(72, 13); - this.label2.TabIndex = 6; - this.label2.Text = "Extra GARCs:"; - // - // B_CheckAll - // - this.B_CheckAll.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.B_CheckAll.Location = new System.Drawing.Point(12, 278); - this.B_CheckAll.Name = "B_CheckAll"; - this.B_CheckAll.Size = new System.Drawing.Size(75, 23); - this.B_CheckAll.TabIndex = 7; - this.B_CheckAll.Text = "Check All"; - this.B_CheckAll.UseVisualStyleBackColor = true; - this.B_CheckAll.Click += new System.EventHandler(this.B_CheckAll_Click); - // - // B_CheckNone - // - this.B_CheckNone.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.B_CheckNone.Location = new System.Drawing.Point(87, 278); - this.B_CheckNone.Name = "B_CheckNone"; - this.B_CheckNone.Size = new System.Drawing.Size(75, 23); - this.B_CheckNone.TabIndex = 8; - this.B_CheckNone.Text = "Check None"; - this.B_CheckNone.UseVisualStyleBackColor = true; - this.B_CheckNone.Click += new System.EventHandler(this.B_CheckNone_Click); - // - // Patch - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(284, 312); - this.Controls.Add(this.B_CheckNone); - this.Controls.Add(this.B_CheckAll); - this.Controls.Add(this.label2); - this.Controls.Add(this.RTB_GARCs); - this.Controls.Add(this.CHK_Lang); - this.Controls.Add(this.B_PatchCIA); - this.Controls.Add(this.label1); - this.Controls.Add(this.textBox1); - this.Controls.Add(this.CHKLB_GARCs); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "Patch"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Patch Manager"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.savePatch); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.CheckedListBox CHKLB_GARCs; - private System.Windows.Forms.TextBox textBox1; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Button B_PatchCIA; - private System.Windows.Forms.CheckBox CHK_Lang; - private System.Windows.Forms.RichTextBox RTB_GARCs; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Button B_CheckAll; - private System.Windows.Forms.Button B_CheckNone; - } -} \ No newline at end of file diff --git a/pk3DS/Misc/Patch.cs b/pk3DS/Misc/Patch.cs deleted file mode 100644 index 1e4db725ce..0000000000 --- a/pk3DS/Misc/Patch.cs +++ /dev/null @@ -1,163 +0,0 @@ -using System; -using System.Collections.Specialized; -using System.IO; -using System.Linq; -using System.Text; -using System.Windows.Forms; - -namespace pk3DS -{ - public partial class Patch : Form - { - public Patch() - { - InitializeComponent(); - RTB_GARCs.Clear(); - CHKLB_GARCs.Items.Clear(); - foreach (string s in Main.Config.Files.Select(file => file.Name)) - CHKLB_GARCs.Items.Add(s); - - if (File.Exists("patch.ini")) - RTB_GARCs.Lines = File.ReadAllLines("patch.txt", Encoding.Unicode); - } - - internal static bool patchExeFS(string path, string[] oldstr, string[] newstr, string oldROM, string newROM, ref string result, string outPath = null) - { - int ctr = 0; - if (oldstr.Length != newstr.Length) - { - result = "Input replacements do not match output replacements."; - return false; - } - - string text = File.ReadAllText(path, Encoding.Unicode); - if (!text.Contains(newROM)) - { - result = "ExeFS\\.code.bin is not a patchable ExeFS (no rom2: found)."; - return false; - } - for (int i = 0; i < oldstr.Length; i++) - { - string oldString = (oldROM + oldstr[i]).Replace(Path.DirectorySeparatorChar, '/'); - string patchedStr = (newROM + oldstr[i]).Replace(Path.DirectorySeparatorChar, '/'); - string newString = (newROM + newstr[i]).Replace(Path.DirectorySeparatorChar, '/'); - - bool old = text.Contains(oldString); - bool patched = text.Contains(patchedStr); - if (!old && !patched) - result += "Does not contain " + oldstr + Environment.NewLine; - else - ctr++; - - if (old) - text = text.Replace(oldString, newString); - if (patched) - text = text.Replace(patchedStr, newString + "\0"); - } - - if (ctr == 0) - { result = "Did not find the old path strings to replace."; return false; } - result += $"Redirected {ctr} file paths."; - Directory.CreateDirectory(Directory.GetParent(outPath).Name); - File.WriteAllText(outPath ?? path, text, Encoding.Unicode); - return true; - } - internal static string exportGARCs(string[] garcPaths, string[] newPaths, string parentRomFS, string patchFolder) - { - // Stuff files into new patch folder - for (int i = 0; i < garcPaths.Length; i++) - { - if ((garcPaths[i] ?? "").Length == 0) continue; - string oldPath = parentRomFS + garcPaths[i]; - string newPath = patchFolder + newPaths[i]; - string folder = Path.GetDirectoryName(newPath); - Directory.CreateDirectory(folder); - File.Copy(oldPath, newPath); - } - return patchFolder; - } - - private void B_PatchCIA_Click(object sender, EventArgs e) - { - string patchFolder = $"{"Patch"} ({DateTime.Now.ToString("yy-MM-dd@HH-mm-ss")})"; - try - { - string[] garcs = getGARCs(); - string[] garcPaths = getPaths(garcs); - - const string oldROM = "rom:"; - const string newROM = "rom2:"; - const string oldA = "\\a\\"; - const string newA = "\\a"; - - string[] newPaths = (string[]) garcPaths.Clone(); - - // Patch the reference - for (int i = 0; i < newPaths.Length; i++) - { - int posA = newPaths[i].LastIndexOf(oldA, StringComparison.Ordinal); - newPaths[i] = posA == -1 ? null : newPaths[i].Remove(posA, oldA.Length).Insert(posA, newA); - } - string result = ""; - string ExeFS = Directory.GetFiles(Main.ExeFSPath)[0]; - if (!File.Exists(ExeFS) || !Path.GetFileNameWithoutExtension(ExeFS).Contains("code")) { throw new Exception("No .code.bin detected."); } - if (!patchExeFS(ExeFS, garcPaths, newPaths, oldROM, newROM, ref result, Path.Combine(patchFolder, ".code.bin"))) - throw new Exception(result); - - WinFormsUtil.Alert("Patch contents saved to:" + Environment.NewLine + exportGARCs(garcPaths, newPaths, Main.RomFSPath, patchFolder), result); - } - catch (Exception ex) - { - WinFormsUtil.Error("Could not create patch:", ex.ToString()); - if (Directory.Exists(patchFolder)) Directory.Delete(patchFolder, true); - } - } - - private string[] getGARCs() - { - StringCollection sc = new StringCollection(); - foreach (int indexChecked in CHKLB_GARCs.CheckedIndices) - sc.Add(CHKLB_GARCs.Items[indexChecked].ToString()); - - string[] rtbLines = RTB_GARCs.Lines; - foreach (string s in rtbLines.Where(s => s.Length == 7 && !sc.Contains(s.Replace('/', Path.DirectorySeparatorChar)))) - sc.Add(s.Replace('/', Path.DirectorySeparatorChar)); - - string[] garcs = new string[sc.Count]; - sc.CopyTo(garcs, 0); - return garcs.Distinct().ToArray(); - } - private string[] getPaths(string[] sc) - { - bool languages = CHK_Lang.Checked; - StringCollection paths = new StringCollection(); - foreach (string s in sc) - if (!languages || s != "gametext" && s != "storytext") - paths.Add(Main.getGARCFileName(s, Main.Language)); - else - for (int l = 0; l < 8; l++) - paths.Add(Main.getGARCFileName(s, l)); - - string[] garcs = new string[paths.Count]; - paths.CopyTo(garcs, 0); - return garcs; - } - - private void B_CheckAll_Click(object sender, EventArgs e) - { - for (int i = 0; i < CHKLB_GARCs.Items.Count; i++) - CHKLB_GARCs.SetItemChecked(i, true); - } - private void B_CheckNone_Click(object sender, EventArgs e) - { - for (int i = 0; i < CHKLB_GARCs.Items.Count; i++) - CHKLB_GARCs.SetItemChecked(i, false); - } - - private void savePatch(object sender, FormClosingEventArgs e) - { - if (RTB_GARCs.Text.Length > 0) - try { File.WriteAllLines("patch.ini", RTB_GARCs.Lines, Encoding.Unicode); } catch {} - } - } -} diff --git a/pk3DS/Properties/AssemblyInfo.cs b/pk3DS/Properties/AssemblyInfo.cs deleted file mode 100644 index 7674219aef..0000000000 --- a/pk3DS/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("pk3DS")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("pk3DS")] -[assembly: AssemblyCopyright("Copyright © 2015")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("dcec1a61-b0cd-4982-a8d8-9024970c4f16")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/pk3DS/Subforms/EnhancedRestore.Designer.cs b/pk3DS/Subforms/EnhancedRestore.Designer.cs deleted file mode 100644 index 3e6919ea4b..0000000000 --- a/pk3DS/Subforms/EnhancedRestore.Designer.cs +++ /dev/null @@ -1,127 +0,0 @@ -namespace pk3DS -{ - partial class EnhancedRestore - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.tabControl1 = new System.Windows.Forms.TabControl(); - this.tabPage1 = new System.Windows.Forms.TabPage(); - this.tabPage2 = new System.Windows.Forms.TabPage(); - this.tabPage3 = new System.Windows.Forms.TabPage(); - this.B_Go = new System.Windows.Forms.Button(); - this.B_All = new System.Windows.Forms.Button(); - this.tabControl1.SuspendLayout(); - this.SuspendLayout(); - // - // tabControl1 - // - this.tabControl1.Controls.Add(this.tabPage1); - this.tabControl1.Controls.Add(this.tabPage2); - this.tabControl1.Controls.Add(this.tabPage3); - this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tabControl1.Location = new System.Drawing.Point(0, 0); - this.tabControl1.Name = "tabControl1"; - this.tabControl1.SelectedIndex = 0; - this.tabControl1.Size = new System.Drawing.Size(284, 261); - this.tabControl1.TabIndex = 0; - // - // tabPage1 - // - this.tabPage1.Location = new System.Drawing.Point(4, 22); - this.tabPage1.Name = "tabPage1"; - this.tabPage1.Padding = new System.Windows.Forms.Padding(3); - this.tabPage1.Size = new System.Drawing.Size(276, 235); - this.tabPage1.TabIndex = 0; - this.tabPage1.Text = "GARC"; - this.tabPage1.UseVisualStyleBackColor = true; - // - // tabPage2 - // - this.tabPage2.Location = new System.Drawing.Point(4, 22); - this.tabPage2.Name = "tabPage2"; - this.tabPage2.Padding = new System.Windows.Forms.Padding(3); - this.tabPage2.Size = new System.Drawing.Size(276, 235); - this.tabPage2.TabIndex = 1; - this.tabPage2.Text = "ExeFS"; - this.tabPage2.UseVisualStyleBackColor = true; - // - // tabPage3 - // - this.tabPage3.Location = new System.Drawing.Point(4, 22); - this.tabPage3.Name = "tabPage3"; - this.tabPage3.Size = new System.Drawing.Size(276, 235); - this.tabPage3.TabIndex = 2; - this.tabPage3.Text = "CRO"; - this.tabPage3.UseVisualStyleBackColor = true; - // - // B_Go - // - this.B_Go.Location = new System.Drawing.Point(206, -1); - this.B_Go.Name = "B_Go"; - this.B_Go.Size = new System.Drawing.Size(75, 23); - this.B_Go.TabIndex = 0; - this.B_Go.Text = "OK"; - this.B_Go.UseVisualStyleBackColor = true; - this.B_Go.Click += new System.EventHandler(this.B_Go_Click); - // - // B_All - // - this.B_All.Location = new System.Drawing.Point(156, -1); - this.B_All.Name = "B_All"; - this.B_All.Size = new System.Drawing.Size(45, 23); - this.B_All.TabIndex = 1; - this.B_All.Text = "All"; - this.B_All.UseVisualStyleBackColor = true; - this.B_All.Click += new System.EventHandler(this.B_All_Click); - // - // EnhancedRestore - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(284, 261); - this.Controls.Add(this.B_Go); - this.Controls.Add(this.B_All); - this.Controls.Add(this.tabControl1); - this.MaximizeBox = false; - this.Name = "EnhancedRestore"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "File Restore"; - this.tabControl1.ResumeLayout(false); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.TabControl tabControl1; - private System.Windows.Forms.TabPage tabPage1; - private System.Windows.Forms.TabPage tabPage2; - private System.Windows.Forms.TabPage tabPage3; - private System.Windows.Forms.Button B_Go; - private System.Windows.Forms.Button B_All; - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/EnhancedRestore.cs b/pk3DS/Subforms/EnhancedRestore.cs deleted file mode 100644 index 3ae114335f..0000000000 --- a/pk3DS/Subforms/EnhancedRestore.cs +++ /dev/null @@ -1,169 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.IO; -using System.Linq; -using System.Windows.Forms; - -using pk3DS.Core; - -namespace pk3DS -{ - public partial class EnhancedRestore : Form - { - public EnhancedRestore(GameConfig config) - { - InitializeComponent(); - LoadBackupFileInfo(config); - } - - private void LoadBackupFileInfo(GameConfig config) - { - var gamePath = new DirectoryInfo(config.RomFS).Parent; - string gameFolder = gamePath.Name; - string gameBackup = Path.Combine(GameBackup.bakpath, gameFolder); - - string bak_a = Path.Combine(gameBackup, GameBackup.baka); - string bak_exefs = Path.Combine(gameBackup, GameBackup.bakexefs); - string bak_dll = Path.Combine(gameBackup, GameBackup.bakdll); - - var garcs = GetRestorableGarcs(config, bak_a); - var exefs = GetRestorableExeFS(config, bak_exefs); - var cros = GetRestorableCROs(config, bak_dll); - - var files = new[] { garcs, exefs, cros }; - - // load files to UI - for (int i = 0; i < files.Length; i++) - { - Items.Add(new List()); - var tab = tabControl1.TabPages[i]; - var clb = new CheckedListBox - { - Dock = DockStyle.Fill, - CheckOnClick = true, - Margin = new Padding(0), - Padding = new Padding(0) - }; - foreach (var z in files[i]) - { - Items[i].Add(z); - clb.Items.Add(z.DisplayName, true); - } - List.Add(clb); - tab.Controls.Add(clb); - } - } - - private static IEnumerable GetRestorableCROs(GameConfig config, string bak_dll) - { - string path = config.RomFS; - string[] files = Directory.GetFiles(path); - string[] CROs = files.Where(x => new FileInfo(x).Name.Contains("Dll")).ToArray(); - string[] CRSs = files.Where(x => new FileInfo(x).Extension.Contains("crs")).ToArray(); - var CRRs = Directory.Exists(Path.Combine(path, ".crr")) - ? Directory.EnumerateFiles(Path.Combine(path, ".crr")) - : new string[0]; - string CRRBAKPATH = Path.Combine(bak_dll, ".crr"); - - foreach (string src in CROs.Concat(CRSs)) - { - string dest = Path.Combine(bak_dll, Path.GetFileName(src)); - if (File.Exists(dest)) - yield return new RestoreInfo(dest, src); - } - - // Separate folder for the .crr - foreach (string src in CRRs) - { - string dest = Path.Combine(CRRBAKPATH, Path.GetFileName(src)); - if (File.Exists(dest)) - yield return new RestoreInfo(dest, src); - } - } - - private static IEnumerable GetRestorableGarcs(GameConfig config, string bak_a) - { - var files = config.Files.Select(file => file.Name); - foreach (var f in files) - { - string GARC = config.getGARCFileName(f); - string name = $"{f} ({GARC.Replace(Path.DirectorySeparatorChar.ToString(), "")})"; - - string src = Path.Combine(config.RomFS, GARC); - string dest = Path.Combine(bak_a, name); - - if (!File.Exists(dest)) - continue; - string dispname = Path.GetFileNameWithoutExtension(dest); - var split = dispname.Split(' '); - dispname = $"{split[1]} {split[0]}"; - yield return new RestoreInfo(dest, src, dispname); - } - } - - private static IEnumerable GetRestorableExeFS(GameConfig config, string bak_exefs) - { - var files = Directory.GetFiles(config.ExeFS); - foreach (var src in files) - { - string dest = Path.Combine(bak_exefs, Path.GetFileName(src)); - - if (File.Exists(dest)) - yield return new RestoreInfo(dest, src); - } - } - - private class RestoreInfo - { - public readonly string DisplayName; - public readonly string FileLocation; - public readonly string Destination; - - public RestoreInfo(string src, string dest, string disp = null) - { - FileLocation = src; - Destination = dest; - DisplayName = disp ?? Path.GetFileName(src); - } - } - - private readonly List> Items = new List>(); - private readonly List List = new List(); - - private void B_Go_Click(object sender, EventArgs e) - { - // restore files that are selected - int count = 0; - for (int i = 0; i < List.Count; i++) - { - for (int j = 0; j < List[i].Items.Count; j++) - { - if (!List[i].GetItemChecked(j)) - continue; - - var item = Items[i][j]; - string dest = item.Destination; - string src = item.FileLocation; - - try - { - if (File.Exists(dest)) // only restore files that exist - File.Copy(dest, src, overwrite: true); count++; - } - catch { Debug.WriteLine("Unable to overwrite backup: " + dest); } - } - } - - WinFormsUtil.Alert($"Restored {count} file(s).", "The program will now close."); - Application.Exit(); // do not call closing events that repackage personal/gametext - } - - private void B_All_Click(object sender, EventArgs e) - { - var clb = List[tabControl1.SelectedIndex]; - for (int i = 0; i < clb.Items.Count; i++) - clb.SetItemChecked(i, ModifierKeys != Keys.Control); - } - } -} diff --git a/pk3DS/Subforms/FormUtil.cs b/pk3DS/Subforms/FormUtil.cs deleted file mode 100644 index 39a063dd6b..0000000000 --- a/pk3DS/Subforms/FormUtil.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System.Windows.Forms; - -namespace pk3DS -{ - public static class FormUtil - { - // Utility (Shared) - internal static void setForms(int species, ComboBox cb, string[][] AltForms) - { - cb.Items.Clear(); - string[] forms = AltForms[species]; - if (forms.Length < 2) - { - cb.Items.Add(""); - cb.Enabled = false; - } - else - { - foreach (string s in forms) - cb.Items.Add(s); - cb.Enabled = true; - } - cb.SelectedIndex = 0; - } - } -} diff --git a/pk3DS/Subforms/Gen6/EggMoveEditor6.Designer.cs b/pk3DS/Subforms/Gen6/EggMoveEditor6.Designer.cs deleted file mode 100644 index 3d0638b293..0000000000 --- a/pk3DS/Subforms/Gen6/EggMoveEditor6.Designer.cs +++ /dev/null @@ -1,264 +0,0 @@ -namespace pk3DS -{ - partial class EggMoveEditor6 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.dgv = new System.Windows.Forms.DataGridView(); - this.CB_Species = new System.Windows.Forms.ComboBox(); - this.L_Species = new System.Windows.Forms.Label(); - this.B_RandAll = new System.Windows.Forms.Button(); - this.B_Dump = new System.Windows.Forms.Button(); - this.groupBox1 = new System.Windows.Forms.GroupBox(); - this.L_Moves = new System.Windows.Forms.Label(); - this.NUD_Moves = new System.Windows.Forms.NumericUpDown(); - this.CHK_Expand = new System.Windows.Forms.CheckBox(); - this.L_STAB = new System.Windows.Forms.Label(); - this.NUD_STAB = new System.Windows.Forms.NumericUpDown(); - this.CHK_STAB = new System.Windows.Forms.CheckBox(); - this.CHK_HMs = new System.Windows.Forms.CheckBox(); - this.PB_MonSprite = new System.Windows.Forms.PictureBox(); - ((System.ComponentModel.ISupportInitialize)(this.dgv)).BeginInit(); - this.groupBox1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Moves)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_STAB)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_MonSprite)).BeginInit(); - this.SuspendLayout(); - // - // dgv - // - this.dgv.AllowUserToResizeColumns = false; - this.dgv.AllowUserToResizeRows = false; - this.dgv.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.dgv.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgv.Location = new System.Drawing.Point(12, 41); - this.dgv.Name = "dgv"; - this.dgv.Size = new System.Drawing.Size(282, 359); - this.dgv.TabIndex = 0; - // - // CB_Species - // - this.CB_Species.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Species.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Species.FormattingEnabled = true; - this.CB_Species.Location = new System.Drawing.Point(66, 12); - this.CB_Species.Name = "CB_Species"; - this.CB_Species.Size = new System.Drawing.Size(121, 21); - this.CB_Species.TabIndex = 1; - this.CB_Species.SelectedIndexChanged += new System.EventHandler(this.changeEntry); - // - // L_Species - // - this.L_Species.AutoSize = true; - this.L_Species.Location = new System.Drawing.Point(12, 15); - this.L_Species.Name = "L_Species"; - this.L_Species.Size = new System.Drawing.Size(48, 13); - this.L_Species.TabIndex = 2; - this.L_Species.Text = "Species:"; - // - // B_RandAll - // - this.B_RandAll.Location = new System.Drawing.Point(300, 10); - this.B_RandAll.Name = "B_RandAll"; - this.B_RandAll.Size = new System.Drawing.Size(95, 23); - this.B_RandAll.TabIndex = 4; - this.B_RandAll.Text = "Randomize!"; - this.B_RandAll.UseVisualStyleBackColor = true; - this.B_RandAll.Click += new System.EventHandler(this.B_RandAll_Click); - // - // B_Dump - // - this.B_Dump.Location = new System.Drawing.Point(248, 10); - this.B_Dump.Name = "B_Dump"; - this.B_Dump.Size = new System.Drawing.Size(46, 23); - this.B_Dump.TabIndex = 5; - this.B_Dump.Text = "Dump"; - this.B_Dump.UseVisualStyleBackColor = true; - this.B_Dump.Click += new System.EventHandler(this.B_Dump_Click); - // - // groupBox1 - // - this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Right))); - this.groupBox1.Controls.Add(this.L_Moves); - this.groupBox1.Controls.Add(this.NUD_Moves); - this.groupBox1.Controls.Add(this.CHK_Expand); - this.groupBox1.Controls.Add(this.L_STAB); - this.groupBox1.Controls.Add(this.NUD_STAB); - this.groupBox1.Controls.Add(this.CHK_STAB); - this.groupBox1.Controls.Add(this.CHK_HMs); - this.groupBox1.Location = new System.Drawing.Point(300, 39); - this.groupBox1.Name = "groupBox1"; - this.groupBox1.Size = new System.Drawing.Size(95, 362); - this.groupBox1.TabIndex = 7; - this.groupBox1.TabStop = false; - this.groupBox1.Text = "Options"; - // - // L_Moves - // - this.L_Moves.AutoSize = true; - this.L_Moves.Location = new System.Drawing.Point(10, 130); - this.L_Moves.Name = "L_Moves"; - this.L_Moves.Size = new System.Drawing.Size(42, 13); - this.L_Moves.TabIndex = 10; - this.L_Moves.Text = "Moves:"; - // - // NUD_Moves - // - this.NUD_Moves.Location = new System.Drawing.Point(53, 128); - this.NUD_Moves.Maximum = new decimal(new int[] { - 30, - 0, - 0, - 0}); - this.NUD_Moves.Minimum = new decimal(new int[] { - 18, - 0, - 0, - 0}); - this.NUD_Moves.Name = "NUD_Moves"; - this.NUD_Moves.Size = new System.Drawing.Size(36, 20); - this.NUD_Moves.TabIndex = 9; - this.NUD_Moves.Value = new decimal(new int[] { - 18, - 0, - 0, - 0}); - // - // CHK_Expand - // - this.CHK_Expand.AutoSize = true; - this.CHK_Expand.Location = new System.Drawing.Point(5, 110); - this.CHK_Expand.Name = "CHK_Expand"; - this.CHK_Expand.Size = new System.Drawing.Size(86, 17); - this.CHK_Expand.TabIndex = 8; - this.CHK_Expand.Text = "Expand Pool"; - this.CHK_Expand.UseVisualStyleBackColor = true; - // - // L_STAB - // - this.L_STAB.AutoSize = true; - this.L_STAB.Location = new System.Drawing.Point(6, 74); - this.L_STAB.Name = "L_STAB"; - this.L_STAB.Size = new System.Drawing.Size(46, 13); - this.L_STAB.TabIndex = 3; - this.L_STAB.Text = "% STAB"; - // - // NUD_STAB - // - this.NUD_STAB.Location = new System.Drawing.Point(53, 72); - this.NUD_STAB.Minimum = new decimal(new int[] { - 5, - 0, - 0, - 0}); - this.NUD_STAB.Name = "NUD_STAB"; - this.NUD_STAB.Size = new System.Drawing.Size(36, 20); - this.NUD_STAB.TabIndex = 2; - this.NUD_STAB.Value = new decimal(new int[] { - 32, - 0, - 0, - 0}); - // - // CHK_STAB - // - this.CHK_STAB.AutoSize = true; - this.CHK_STAB.Location = new System.Drawing.Point(5, 54); - this.CHK_STAB.Name = "CHK_STAB"; - this.CHK_STAB.Size = new System.Drawing.Size(87, 17); - this.CHK_STAB.TabIndex = 1; - this.CHK_STAB.Text = "Bias by Type"; - this.CHK_STAB.UseVisualStyleBackColor = true; - // - // CHK_HMs - // - this.CHK_HMs.AutoSize = true; - this.CHK_HMs.Location = new System.Drawing.Point(5, 19); - this.CHK_HMs.Name = "CHK_HMs"; - this.CHK_HMs.Size = new System.Drawing.Size(76, 17); - this.CHK_HMs.TabIndex = 0; - this.CHK_HMs.Text = "Allow HMs"; - this.CHK_HMs.UseVisualStyleBackColor = true; - // - // PB_MonSprite - // - this.PB_MonSprite.Location = new System.Drawing.Point(193, 5); - this.PB_MonSprite.Name = "PB_MonSprite"; - this.PB_MonSprite.Size = new System.Drawing.Size(40, 30); - this.PB_MonSprite.TabIndex = 91; - this.PB_MonSprite.TabStop = false; - // - // EggMove - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(404, 412); - this.Controls.Add(this.PB_MonSprite); - this.Controls.Add(this.groupBox1); - this.Controls.Add(this.B_Dump); - this.Controls.Add(this.B_RandAll); - this.Controls.Add(this.L_Species); - this.Controls.Add(this.CB_Species); - this.Controls.Add(this.dgv); - this.MaximizeBox = false; - this.MinimumSize = new System.Drawing.Size(322, 450); - this.Name = "EggMove"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Egg Move Editor"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.formClosing); - ((System.ComponentModel.ISupportInitialize)(this.dgv)).EndInit(); - this.groupBox1.ResumeLayout(false); - this.groupBox1.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Moves)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_STAB)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_MonSprite)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.DataGridView dgv; - private System.Windows.Forms.ComboBox CB_Species; - private System.Windows.Forms.Label L_Species; - private System.Windows.Forms.Button B_RandAll; - private System.Windows.Forms.Button B_Dump; - private System.Windows.Forms.GroupBox groupBox1; - private System.Windows.Forms.Label L_Moves; - private System.Windows.Forms.NumericUpDown NUD_Moves; - private System.Windows.Forms.CheckBox CHK_Expand; - private System.Windows.Forms.Label L_STAB; - private System.Windows.Forms.NumericUpDown NUD_STAB; - private System.Windows.Forms.CheckBox CHK_STAB; - private System.Windows.Forms.CheckBox CHK_HMs; - private System.Windows.Forms.PictureBox PB_MonSprite; - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/EggMoveEditor6.cs b/pk3DS/Subforms/Gen6/EggMoveEditor6.cs deleted file mode 100644 index 418d5e29eb..0000000000 --- a/pk3DS/Subforms/Gen6/EggMoveEditor6.cs +++ /dev/null @@ -1,193 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Drawing; -using System.IO; -using System.Linq; -using System.Media; -using System.Text; -using System.Windows.Forms; -using pk3DS.Properties; -using pk3DS.Core.Structures; -using pk3DS.Core; -using pk3DS.Core.Randomizers; - -namespace pk3DS -{ - public partial class EggMoveEditor6 : Form - { - public EggMoveEditor6(byte[][] infiles) - { - InitializeComponent(); - files = infiles; - string[] specieslist = Main.Config.getText(TextName.SpeciesNames); - specieslist[0] = movelist[0] = ""; - - string[] sortedspecies = (string[])specieslist.Clone(); - Array.Resize(ref sortedspecies, Main.Config.MaxSpeciesID); Array.Sort(sortedspecies); - setupDGV(); - - var newlist = new List(); - for (int i = 1; i < Main.Config.MaxSpeciesID; i++) // add all species - newlist.Add(new WinFormsUtil.cbItem { Text = sortedspecies[i], Value = Array.IndexOf(specieslist, sortedspecies[i]) }); - - CB_Species.DisplayMember = "Text"; - CB_Species.ValueMember = "Value"; - CB_Species.DataSource = newlist; - CB_Species.SelectedIndex = 0; - } - private readonly byte[][] files; - private int entry = -1; - private readonly string[] movelist = Main.Config.getText(TextName.MoveNames); - private bool dumping; - private void setupDGV() - { - string[] sortedmoves = (string[])movelist.Clone(); - Array.Sort(sortedmoves); - DataGridViewComboBoxColumn dgvMove = new DataGridViewComboBoxColumn(); - { - dgvMove.HeaderText = "Move"; - dgvMove.DisplayIndex = 0; - for (int i = 0; i < movelist.Length; i++) - dgvMove.Items.Add(sortedmoves[i]); // add only the Names - - dgvMove.Width = 135; - dgvMove.FlatStyle = FlatStyle.Flat; - } - dgv.Columns.Add(dgvMove); - } - - private EggMoves pkm = new EggMoves6(new byte[0]); - private void getList() - { - entry = WinFormsUtil.getIndex(CB_Species); - - int[] specForm = Main.Config.Personal.getSpeciesForm(entry, Main.Config); - string filename = "_" + specForm[0] + (entry > 721 ? "_" + (specForm[1] + 1) : ""); - PB_MonSprite.Image = (Bitmap)Resources.ResourceManager.GetObject(filename); - - dgv.Rows.Clear(); - byte[] input = files[entry]; - if (input.Length == 0) return; - pkm = new EggMoves6(input); - if (pkm.Count < 1) { files[entry] = new byte[0]; return; } - dgv.Rows.Add(pkm.Count); - - // Fill Entries - for (int i = 0; i < pkm.Count; i++) - dgv.Rows[i].Cells[0].Value = movelist[pkm.Moves[i]]; - - dgv.CancelEdit(); - } - private void setList() - { - if (entry < 1 || dumping) return; - List moves = new List(); - for (int i = 0; i < dgv.Rows.Count - 1; i++) - { - int move = Array.IndexOf(movelist, dgv.Rows[i].Cells[0].Value); - if (move > 0 && !moves.Contains((ushort)move)) moves.Add(move); - } - pkm.Moves = moves.ToArray(); - - files[entry] = pkm.Write(); - } - - private void changeEntry(object sender, EventArgs e) - { - setList(); - getList(); - } - - private void B_RandAll_Click(object sender, EventArgs e) - { - ushort[] HMs = { 15, 19, 57, 70, 127, 249, 291 }; - ushort[] TMs = { }; - if (CHK_HMs.Checked && Main.ExeFSPath != null) - TMHMEditor6.getTMHMList(Main.Config.ORAS, ref TMs, ref HMs); - - List banned = new List { 165, 621 }; // Struggle, Hyperspace Fury - if (!CHK_HMs.Checked) - banned.AddRange(HMs.Select(z => (int)z)); - - setList(); - var sets = files.Select(z => new EggMoves6(z)).ToArray(); - var rand = new EggMoveRandomizer(Main.Config, sets) - { - Expand = CHK_Expand.Checked, - ExpandTo = (int)NUD_Moves.Value, - STAB = CHK_STAB.Checked, - rSTABPercent = NUD_STAB.Value, - BannedMoves = banned.ToArray() - }; - rand.Execute(); - sets.Select(z => z.Write()).ToArray().CopyTo(files, 0); - getList(); - WinFormsUtil.Alert("All Pokémon's Egg Moves have been randomized!"); - } - private void B_Dump_Click(object sender, EventArgs e) - { - if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Dump all Egg Moves to Text File?")) - return; - - dumping = true; - string result = ""; - for (int i = 0; i < CB_Species.Items.Count; i++) - { - CB_Species.SelectedIndex = i; // Get new Species - result += "======" + Environment.NewLine + entry + " " + CB_Species.Text + Environment.NewLine + "======" + Environment.NewLine; - for (int j = 0; j < dgv.Rows.Count - 1; j++) - result += dgv.Rows[j].Cells[0].Value + Environment.NewLine; - - result += Environment.NewLine; - } - SaveFileDialog sfd = new SaveFileDialog {FileName = "Egg Moves.txt", Filter = "Text File|*.txt"}; - - SystemSounds.Asterisk.Play(); - if (sfd.ShowDialog() == DialogResult.OK) - { - string path = sfd.FileName; - File.WriteAllText(path, result, Encoding.Unicode); - } - dumping = false; - } - - private void formClosing(object sender, FormClosingEventArgs e) - { - setList(); - } - private void calcStats() - { - Move[] MoveData = Main.Config.Moves; - - int movectr = 0; - int max = 0; - int spec = 0; - int stab = 0; - int species = 0; - for (int i = 0; i < Main.Config.MaxSpeciesID; i++) - { - byte[] movedata = files[i]; - if (movedata.Length <= 2) continue; - int movecount = BitConverter.ToUInt16(movedata, 0); - if (movecount == 65535 || movecount < 0) - continue; - species++; - movectr += movecount; // Average Moves - if (max < movecount) { max = movecount; spec = i; } // Max Moves (and species) - for (int m = 1; m < movedata.Length / 2; m++) - { - int move = BitConverter.ToUInt16(movedata, m * 2); - if (move == 65535) - { - movectr--; - continue; - } - if (Main.Config.Personal[species].Types.Contains(MoveData[move].Type)) - stab++; - } - } - WinFormsUtil.Alert( - $"Moves Learned: {movectr}\r\nMost Learned: {max} @ {spec}\r\nSTAB Count: {stab}\r\nSpecies with EggMoves: {species}"); - } - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/EvolutionEditor6.Designer.cs b/pk3DS/Subforms/Gen6/EvolutionEditor6.Designer.cs deleted file mode 100644 index df6c75e93f..0000000000 --- a/pk3DS/Subforms/Gen6/EvolutionEditor6.Designer.cs +++ /dev/null @@ -1,714 +0,0 @@ -namespace pk3DS -{ - partial class EvolutionEditor6 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.CB_Species = new System.Windows.Forms.ComboBox(); - this.L_Species = new System.Windows.Forms.Label(); - this.B_Dump = new System.Windows.Forms.Button(); - this.CB_M1 = new System.Windows.Forms.ComboBox(); - this.L_M1 = new System.Windows.Forms.Label(); - this.CB_I1 = new System.Windows.Forms.ComboBox(); - this.CB_P1 = new System.Windows.Forms.ComboBox(); - this.CB_P2 = new System.Windows.Forms.ComboBox(); - this.CB_I2 = new System.Windows.Forms.ComboBox(); - this.L_M2 = new System.Windows.Forms.Label(); - this.CB_M2 = new System.Windows.Forms.ComboBox(); - this.CB_P3 = new System.Windows.Forms.ComboBox(); - this.CB_I3 = new System.Windows.Forms.ComboBox(); - this.L_M3 = new System.Windows.Forms.Label(); - this.CB_M3 = new System.Windows.Forms.ComboBox(); - this.CB_P4 = new System.Windows.Forms.ComboBox(); - this.CB_I4 = new System.Windows.Forms.ComboBox(); - this.L_M4 = new System.Windows.Forms.Label(); - this.CB_M4 = new System.Windows.Forms.ComboBox(); - this.CB_P5 = new System.Windows.Forms.ComboBox(); - this.CB_I5 = new System.Windows.Forms.ComboBox(); - this.L_M5 = new System.Windows.Forms.Label(); - this.CB_M5 = new System.Windows.Forms.ComboBox(); - this.CB_P8 = new System.Windows.Forms.ComboBox(); - this.CB_I8 = new System.Windows.Forms.ComboBox(); - this.L_M8 = new System.Windows.Forms.Label(); - this.CB_M8 = new System.Windows.Forms.ComboBox(); - this.CB_P7 = new System.Windows.Forms.ComboBox(); - this.CB_I7 = new System.Windows.Forms.ComboBox(); - this.L_M7 = new System.Windows.Forms.Label(); - this.CB_M7 = new System.Windows.Forms.ComboBox(); - this.CB_P6 = new System.Windows.Forms.ComboBox(); - this.CB_I6 = new System.Windows.Forms.ComboBox(); - this.L_M6 = new System.Windows.Forms.Label(); - this.CB_M6 = new System.Windows.Forms.ComboBox(); - this.PB_1 = new System.Windows.Forms.PictureBox(); - this.PB_2 = new System.Windows.Forms.PictureBox(); - this.PB_4 = new System.Windows.Forms.PictureBox(); - this.PB_3 = new System.Windows.Forms.PictureBox(); - this.PB_6 = new System.Windows.Forms.PictureBox(); - this.PB_5 = new System.Windows.Forms.PictureBox(); - this.PB_8 = new System.Windows.Forms.PictureBox(); - this.PB_7 = new System.Windows.Forms.PictureBox(); - this.B_RandAll = new System.Windows.Forms.Button(); - this.GB_Randomizer = new System.Windows.Forms.GroupBox(); - this.L_Protip = new System.Windows.Forms.Label(); - this.CHK_BST = new System.Windows.Forms.CheckBox(); - this.CHK_Type = new System.Windows.Forms.CheckBox(); - this.CHK_Exp = new System.Windows.Forms.CheckBox(); - ((System.ComponentModel.ISupportInitialize)(this.PB_1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_6)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_8)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_7)).BeginInit(); - this.GB_Randomizer.SuspendLayout(); - this.SuspendLayout(); - // - // CB_Species - // - this.CB_Species.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Species.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Species.FormattingEnabled = true; - this.CB_Species.Location = new System.Drawing.Point(66, 12); - this.CB_Species.Name = "CB_Species"; - this.CB_Species.Size = new System.Drawing.Size(121, 21); - this.CB_Species.TabIndex = 1; - this.CB_Species.SelectedIndexChanged += new System.EventHandler(this.changeEntry); - // - // L_Species - // - this.L_Species.AutoSize = true; - this.L_Species.Location = new System.Drawing.Point(12, 15); - this.L_Species.Name = "L_Species"; - this.L_Species.Size = new System.Drawing.Size(48, 13); - this.L_Species.TabIndex = 2; - this.L_Species.Text = "Species:"; - // - // B_Dump - // - this.B_Dump.Location = new System.Drawing.Point(193, 11); - this.B_Dump.Name = "B_Dump"; - this.B_Dump.Size = new System.Drawing.Size(59, 23); - this.B_Dump.TabIndex = 5; - this.B_Dump.Text = "Dump"; - this.B_Dump.UseVisualStyleBackColor = true; - this.B_Dump.Click += new System.EventHandler(this.B_Dump_Click); - // - // CB_M1 - // - this.CB_M1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_M1.DropDownWidth = 200; - this.CB_M1.FormattingEnabled = true; - this.CB_M1.Location = new System.Drawing.Point(79, 46); - this.CB_M1.MaxDropDownItems = 10; - this.CB_M1.Name = "CB_M1"; - this.CB_M1.Size = new System.Drawing.Size(150, 21); - this.CB_M1.TabIndex = 6; - this.CB_M1.SelectedIndexChanged += new System.EventHandler(this.changeMethod); - // - // L_M1 - // - this.L_M1.AutoSize = true; - this.L_M1.Location = new System.Drawing.Point(18, 49); - this.L_M1.Name = "L_M1"; - this.L_M1.Size = new System.Drawing.Size(55, 13); - this.L_M1.TabIndex = 7; - this.L_M1.Text = "Method 1:"; - // - // CB_I1 - // - this.CB_I1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_I1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_I1.FormattingEnabled = true; - this.CB_I1.Location = new System.Drawing.Point(277, 46); - this.CB_I1.Name = "CB_I1"; - this.CB_I1.Size = new System.Drawing.Size(101, 21); - this.CB_I1.TabIndex = 9; - this.CB_I1.SelectedIndexChanged += new System.EventHandler(this.changeInto); - // - // CB_P1 - // - this.CB_P1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_P1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_P1.FormattingEnabled = true; - this.CB_P1.Location = new System.Drawing.Point(79, 69); - this.CB_P1.Name = "CB_P1"; - this.CB_P1.Size = new System.Drawing.Size(121, 21); - this.CB_P1.TabIndex = 10; - // - // CB_P2 - // - this.CB_P2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_P2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_P2.FormattingEnabled = true; - this.CB_P2.Location = new System.Drawing.Point(79, 123); - this.CB_P2.Name = "CB_P2"; - this.CB_P2.Size = new System.Drawing.Size(121, 21); - this.CB_P2.TabIndex = 16; - // - // CB_I2 - // - this.CB_I2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_I2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_I2.FormattingEnabled = true; - this.CB_I2.Location = new System.Drawing.Point(277, 100); - this.CB_I2.Name = "CB_I2"; - this.CB_I2.Size = new System.Drawing.Size(101, 21); - this.CB_I2.TabIndex = 15; - this.CB_I2.SelectedIndexChanged += new System.EventHandler(this.changeInto); - // - // L_M2 - // - this.L_M2.AutoSize = true; - this.L_M2.Location = new System.Drawing.Point(18, 103); - this.L_M2.Name = "L_M2"; - this.L_M2.Size = new System.Drawing.Size(55, 13); - this.L_M2.TabIndex = 13; - this.L_M2.Text = "Method 2:"; - // - // CB_M2 - // - this.CB_M2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_M2.DropDownWidth = 200; - this.CB_M2.FormattingEnabled = true; - this.CB_M2.Location = new System.Drawing.Point(79, 100); - this.CB_M2.MaxDropDownItems = 10; - this.CB_M2.Name = "CB_M2"; - this.CB_M2.Size = new System.Drawing.Size(150, 21); - this.CB_M2.TabIndex = 12; - this.CB_M2.SelectedIndexChanged += new System.EventHandler(this.changeMethod); - // - // CB_P3 - // - this.CB_P3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_P3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_P3.FormattingEnabled = true; - this.CB_P3.Location = new System.Drawing.Point(79, 177); - this.CB_P3.Name = "CB_P3"; - this.CB_P3.Size = new System.Drawing.Size(121, 21); - this.CB_P3.TabIndex = 22; - // - // CB_I3 - // - this.CB_I3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_I3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_I3.FormattingEnabled = true; - this.CB_I3.Location = new System.Drawing.Point(277, 154); - this.CB_I3.Name = "CB_I3"; - this.CB_I3.Size = new System.Drawing.Size(101, 21); - this.CB_I3.TabIndex = 21; - this.CB_I3.SelectedIndexChanged += new System.EventHandler(this.changeInto); - // - // L_M3 - // - this.L_M3.AutoSize = true; - this.L_M3.Location = new System.Drawing.Point(18, 157); - this.L_M3.Name = "L_M3"; - this.L_M3.Size = new System.Drawing.Size(55, 13); - this.L_M3.TabIndex = 19; - this.L_M3.Text = "Method 3:"; - // - // CB_M3 - // - this.CB_M3.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_M3.DropDownWidth = 200; - this.CB_M3.FormattingEnabled = true; - this.CB_M3.Location = new System.Drawing.Point(79, 154); - this.CB_M3.MaxDropDownItems = 10; - this.CB_M3.Name = "CB_M3"; - this.CB_M3.Size = new System.Drawing.Size(150, 21); - this.CB_M3.TabIndex = 18; - this.CB_M3.SelectedIndexChanged += new System.EventHandler(this.changeMethod); - // - // CB_P4 - // - this.CB_P4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_P4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_P4.FormattingEnabled = true; - this.CB_P4.Location = new System.Drawing.Point(79, 231); - this.CB_P4.Name = "CB_P4"; - this.CB_P4.Size = new System.Drawing.Size(121, 21); - this.CB_P4.TabIndex = 28; - // - // CB_I4 - // - this.CB_I4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_I4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_I4.FormattingEnabled = true; - this.CB_I4.Location = new System.Drawing.Point(277, 208); - this.CB_I4.Name = "CB_I4"; - this.CB_I4.Size = new System.Drawing.Size(101, 21); - this.CB_I4.TabIndex = 27; - this.CB_I4.SelectedIndexChanged += new System.EventHandler(this.changeInto); - // - // L_M4 - // - this.L_M4.AutoSize = true; - this.L_M4.Location = new System.Drawing.Point(18, 211); - this.L_M4.Name = "L_M4"; - this.L_M4.Size = new System.Drawing.Size(55, 13); - this.L_M4.TabIndex = 25; - this.L_M4.Text = "Method 4:"; - // - // CB_M4 - // - this.CB_M4.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_M4.DropDownWidth = 200; - this.CB_M4.FormattingEnabled = true; - this.CB_M4.Location = new System.Drawing.Point(79, 208); - this.CB_M4.MaxDropDownItems = 10; - this.CB_M4.Name = "CB_M4"; - this.CB_M4.Size = new System.Drawing.Size(150, 21); - this.CB_M4.TabIndex = 24; - this.CB_M4.SelectedIndexChanged += new System.EventHandler(this.changeMethod); - // - // CB_P5 - // - this.CB_P5.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_P5.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_P5.FormattingEnabled = true; - this.CB_P5.Location = new System.Drawing.Point(79, 285); - this.CB_P5.Name = "CB_P5"; - this.CB_P5.Size = new System.Drawing.Size(121, 21); - this.CB_P5.TabIndex = 34; - // - // CB_I5 - // - this.CB_I5.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_I5.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_I5.FormattingEnabled = true; - this.CB_I5.Location = new System.Drawing.Point(277, 262); - this.CB_I5.Name = "CB_I5"; - this.CB_I5.Size = new System.Drawing.Size(101, 21); - this.CB_I5.TabIndex = 33; - this.CB_I5.SelectedIndexChanged += new System.EventHandler(this.changeInto); - // - // L_M5 - // - this.L_M5.AutoSize = true; - this.L_M5.Location = new System.Drawing.Point(18, 265); - this.L_M5.Name = "L_M5"; - this.L_M5.Size = new System.Drawing.Size(55, 13); - this.L_M5.TabIndex = 31; - this.L_M5.Text = "Method 5:"; - // - // CB_M5 - // - this.CB_M5.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_M5.DropDownWidth = 200; - this.CB_M5.FormattingEnabled = true; - this.CB_M5.Location = new System.Drawing.Point(79, 262); - this.CB_M5.MaxDropDownItems = 10; - this.CB_M5.Name = "CB_M5"; - this.CB_M5.Size = new System.Drawing.Size(150, 21); - this.CB_M5.TabIndex = 30; - this.CB_M5.SelectedIndexChanged += new System.EventHandler(this.changeMethod); - // - // CB_P8 - // - this.CB_P8.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_P8.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_P8.FormattingEnabled = true; - this.CB_P8.Location = new System.Drawing.Point(79, 447); - this.CB_P8.Name = "CB_P8"; - this.CB_P8.Size = new System.Drawing.Size(121, 21); - this.CB_P8.TabIndex = 52; - // - // CB_I8 - // - this.CB_I8.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_I8.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_I8.FormattingEnabled = true; - this.CB_I8.Location = new System.Drawing.Point(277, 424); - this.CB_I8.Name = "CB_I8"; - this.CB_I8.Size = new System.Drawing.Size(101, 21); - this.CB_I8.TabIndex = 51; - this.CB_I8.SelectedIndexChanged += new System.EventHandler(this.changeInto); - // - // L_M8 - // - this.L_M8.AutoSize = true; - this.L_M8.Location = new System.Drawing.Point(18, 427); - this.L_M8.Name = "L_M8"; - this.L_M8.Size = new System.Drawing.Size(55, 13); - this.L_M8.TabIndex = 49; - this.L_M8.Text = "Method 8:"; - // - // CB_M8 - // - this.CB_M8.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_M8.DropDownWidth = 200; - this.CB_M8.FormattingEnabled = true; - this.CB_M8.Location = new System.Drawing.Point(79, 424); - this.CB_M8.MaxDropDownItems = 10; - this.CB_M8.Name = "CB_M8"; - this.CB_M8.Size = new System.Drawing.Size(150, 21); - this.CB_M8.TabIndex = 48; - this.CB_M8.SelectedIndexChanged += new System.EventHandler(this.changeMethod); - // - // CB_P7 - // - this.CB_P7.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_P7.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_P7.FormattingEnabled = true; - this.CB_P7.Location = new System.Drawing.Point(79, 393); - this.CB_P7.Name = "CB_P7"; - this.CB_P7.Size = new System.Drawing.Size(121, 21); - this.CB_P7.TabIndex = 46; - // - // CB_I7 - // - this.CB_I7.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_I7.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_I7.FormattingEnabled = true; - this.CB_I7.Location = new System.Drawing.Point(277, 370); - this.CB_I7.Name = "CB_I7"; - this.CB_I7.Size = new System.Drawing.Size(101, 21); - this.CB_I7.TabIndex = 45; - this.CB_I7.SelectedIndexChanged += new System.EventHandler(this.changeInto); - // - // L_M7 - // - this.L_M7.AutoSize = true; - this.L_M7.Location = new System.Drawing.Point(18, 373); - this.L_M7.Name = "L_M7"; - this.L_M7.Size = new System.Drawing.Size(55, 13); - this.L_M7.TabIndex = 43; - this.L_M7.Text = "Method 7:"; - // - // CB_M7 - // - this.CB_M7.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_M7.DropDownWidth = 200; - this.CB_M7.FormattingEnabled = true; - this.CB_M7.Location = new System.Drawing.Point(79, 370); - this.CB_M7.MaxDropDownItems = 10; - this.CB_M7.Name = "CB_M7"; - this.CB_M7.Size = new System.Drawing.Size(150, 21); - this.CB_M7.TabIndex = 42; - this.CB_M7.SelectedIndexChanged += new System.EventHandler(this.changeMethod); - // - // CB_P6 - // - this.CB_P6.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_P6.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_P6.FormattingEnabled = true; - this.CB_P6.Location = new System.Drawing.Point(79, 339); - this.CB_P6.Name = "CB_P6"; - this.CB_P6.Size = new System.Drawing.Size(121, 21); - this.CB_P6.TabIndex = 40; - // - // CB_I6 - // - this.CB_I6.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_I6.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_I6.FormattingEnabled = true; - this.CB_I6.Location = new System.Drawing.Point(277, 316); - this.CB_I6.Name = "CB_I6"; - this.CB_I6.Size = new System.Drawing.Size(101, 21); - this.CB_I6.TabIndex = 39; - this.CB_I6.SelectedIndexChanged += new System.EventHandler(this.changeInto); - // - // L_M6 - // - this.L_M6.AutoSize = true; - this.L_M6.Location = new System.Drawing.Point(18, 319); - this.L_M6.Name = "L_M6"; - this.L_M6.Size = new System.Drawing.Size(55, 13); - this.L_M6.TabIndex = 37; - this.L_M6.Text = "Method 6:"; - // - // CB_M6 - // - this.CB_M6.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_M6.DropDownWidth = 200; - this.CB_M6.FormattingEnabled = true; - this.CB_M6.Location = new System.Drawing.Point(79, 316); - this.CB_M6.MaxDropDownItems = 10; - this.CB_M6.Name = "CB_M6"; - this.CB_M6.Size = new System.Drawing.Size(150, 21); - this.CB_M6.TabIndex = 36; - this.CB_M6.SelectedIndexChanged += new System.EventHandler(this.changeMethod); - // - // PB_1 - // - this.PB_1.Location = new System.Drawing.Point(235, 46); - this.PB_1.Name = "PB_1"; - this.PB_1.Size = new System.Drawing.Size(40, 30); - this.PB_1.TabIndex = 54; - this.PB_1.TabStop = false; - // - // PB_2 - // - this.PB_2.Location = new System.Drawing.Point(235, 100); - this.PB_2.Name = "PB_2"; - this.PB_2.Size = new System.Drawing.Size(40, 30); - this.PB_2.TabIndex = 55; - this.PB_2.TabStop = false; - // - // PB_4 - // - this.PB_4.Location = new System.Drawing.Point(235, 208); - this.PB_4.Name = "PB_4"; - this.PB_4.Size = new System.Drawing.Size(40, 30); - this.PB_4.TabIndex = 57; - this.PB_4.TabStop = false; - // - // PB_3 - // - this.PB_3.Location = new System.Drawing.Point(235, 154); - this.PB_3.Name = "PB_3"; - this.PB_3.Size = new System.Drawing.Size(40, 30); - this.PB_3.TabIndex = 56; - this.PB_3.TabStop = false; - // - // PB_6 - // - this.PB_6.Location = new System.Drawing.Point(235, 316); - this.PB_6.Name = "PB_6"; - this.PB_6.Size = new System.Drawing.Size(40, 30); - this.PB_6.TabIndex = 59; - this.PB_6.TabStop = false; - // - // PB_5 - // - this.PB_5.Location = new System.Drawing.Point(235, 262); - this.PB_5.Name = "PB_5"; - this.PB_5.Size = new System.Drawing.Size(40, 30); - this.PB_5.TabIndex = 58; - this.PB_5.TabStop = false; - // - // PB_8 - // - this.PB_8.Location = new System.Drawing.Point(235, 424); - this.PB_8.Name = "PB_8"; - this.PB_8.Size = new System.Drawing.Size(40, 30); - this.PB_8.TabIndex = 61; - this.PB_8.TabStop = false; - // - // PB_7 - // - this.PB_7.Location = new System.Drawing.Point(235, 370); - this.PB_7.Name = "PB_7"; - this.PB_7.Size = new System.Drawing.Size(40, 30); - this.PB_7.TabIndex = 60; - this.PB_7.TabStop = false; - // - // B_RandAll - // - this.B_RandAll.Location = new System.Drawing.Point(251, 47); - this.B_RandAll.Name = "B_RandAll"; - this.B_RandAll.Size = new System.Drawing.Size(100, 23); - this.B_RandAll.TabIndex = 62; - this.B_RandAll.Text = "Randomize All"; - this.B_RandAll.UseVisualStyleBackColor = true; - this.B_RandAll.Click += new System.EventHandler(this.B_RandAll_Click); - // - // GB_Randomizer - // - this.GB_Randomizer.Controls.Add(this.L_Protip); - this.GB_Randomizer.Controls.Add(this.CHK_BST); - this.GB_Randomizer.Controls.Add(this.CHK_Type); - this.GB_Randomizer.Controls.Add(this.CHK_Exp); - this.GB_Randomizer.Controls.Add(this.B_RandAll); - this.GB_Randomizer.Location = new System.Drawing.Point(21, 474); - this.GB_Randomizer.Name = "GB_Randomizer"; - this.GB_Randomizer.Size = new System.Drawing.Size(357, 76); - this.GB_Randomizer.TabIndex = 63; - this.GB_Randomizer.TabStop = false; - this.GB_Randomizer.Text = "Randomizer Options"; - // - // L_Protip - // - this.L_Protip.AutoSize = true; - this.L_Protip.ForeColor = System.Drawing.Color.Red; - this.L_Protip.Location = new System.Drawing.Point(198, 11); - this.L_Protip.Name = "L_Protip"; - this.L_Protip.Size = new System.Drawing.Size(153, 13); - this.L_Protip.TabIndex = 66; - this.L_Protip.Text = "(Protip: Difficulty++ in Personal)"; - // - // CHK_BST - // - this.CHK_BST.AutoSize = true; - this.CHK_BST.Checked = true; - this.CHK_BST.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_BST.Location = new System.Drawing.Point(6, 53); - this.CHK_BST.Name = "CHK_BST"; - this.CHK_BST.Size = new System.Drawing.Size(179, 17); - this.CHK_BST.TabIndex = 65; - this.CHK_BST.Text = "Share a similar BST as Evolution"; - this.CHK_BST.UseVisualStyleBackColor = true; - // - // CHK_Type - // - this.CHK_Type.AutoSize = true; - this.CHK_Type.Checked = true; - this.CHK_Type.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_Type.Location = new System.Drawing.Point(6, 38); - this.CHK_Type.Name = "CHK_Type"; - this.CHK_Type.Size = new System.Drawing.Size(200, 17); - this.CHK_Type.TabIndex = 64; - this.CHK_Type.Text = "Share at least one Type as Evolution"; - this.CHK_Type.UseVisualStyleBackColor = true; - // - // CHK_Exp - // - this.CHK_Exp.AutoSize = true; - this.CHK_Exp.Checked = true; - this.CHK_Exp.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_Exp.Location = new System.Drawing.Point(6, 23); - this.CHK_Exp.Name = "CHK_Exp"; - this.CHK_Exp.Size = new System.Drawing.Size(219, 17); - this.CHK_Exp.TabIndex = 63; - this.CHK_Exp.Text = "Share the same Exp Growth as Evolution"; - this.CHK_Exp.UseVisualStyleBackColor = true; - // - // Evolution - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(394, 562); - this.Controls.Add(this.GB_Randomizer); - this.Controls.Add(this.PB_8); - this.Controls.Add(this.PB_7); - this.Controls.Add(this.PB_6); - this.Controls.Add(this.PB_5); - this.Controls.Add(this.PB_4); - this.Controls.Add(this.PB_3); - this.Controls.Add(this.PB_2); - this.Controls.Add(this.PB_1); - this.Controls.Add(this.CB_P8); - this.Controls.Add(this.CB_I8); - this.Controls.Add(this.L_M8); - this.Controls.Add(this.CB_M8); - this.Controls.Add(this.CB_P7); - this.Controls.Add(this.CB_I7); - this.Controls.Add(this.L_M7); - this.Controls.Add(this.CB_M7); - this.Controls.Add(this.CB_P6); - this.Controls.Add(this.CB_I6); - this.Controls.Add(this.L_M6); - this.Controls.Add(this.CB_M6); - this.Controls.Add(this.CB_P5); - this.Controls.Add(this.CB_I5); - this.Controls.Add(this.L_M5); - this.Controls.Add(this.CB_M5); - this.Controls.Add(this.CB_P4); - this.Controls.Add(this.CB_I4); - this.Controls.Add(this.L_M4); - this.Controls.Add(this.CB_M4); - this.Controls.Add(this.CB_P3); - this.Controls.Add(this.CB_I3); - this.Controls.Add(this.L_M3); - this.Controls.Add(this.CB_M3); - this.Controls.Add(this.CB_P2); - this.Controls.Add(this.CB_I2); - this.Controls.Add(this.L_M2); - this.Controls.Add(this.CB_M2); - this.Controls.Add(this.CB_P1); - this.Controls.Add(this.CB_I1); - this.Controls.Add(this.L_M1); - this.Controls.Add(this.CB_M1); - this.Controls.Add(this.B_Dump); - this.Controls.Add(this.L_Species); - this.Controls.Add(this.CB_Species); - this.MaximizeBox = false; - this.MaximumSize = new System.Drawing.Size(410, 600); - this.MinimumSize = new System.Drawing.Size(410, 515); - this.Name = "EvolutionEditor6"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Evolution Editor"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.formClosing); - ((System.ComponentModel.ISupportInitialize)(this.PB_1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_6)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_8)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_7)).EndInit(); - this.GB_Randomizer.ResumeLayout(false); - this.GB_Randomizer.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.ComboBox CB_Species; - private System.Windows.Forms.Label L_Species; - private System.Windows.Forms.Button B_Dump; - private System.Windows.Forms.ComboBox CB_M1; - private System.Windows.Forms.Label L_M1; - private System.Windows.Forms.ComboBox CB_I1; - private System.Windows.Forms.ComboBox CB_P1; - private System.Windows.Forms.ComboBox CB_P2; - private System.Windows.Forms.ComboBox CB_I2; - private System.Windows.Forms.Label L_M2; - private System.Windows.Forms.ComboBox CB_M2; - private System.Windows.Forms.ComboBox CB_P3; - private System.Windows.Forms.ComboBox CB_I3; - private System.Windows.Forms.Label L_M3; - private System.Windows.Forms.ComboBox CB_M3; - private System.Windows.Forms.ComboBox CB_P4; - private System.Windows.Forms.ComboBox CB_I4; - private System.Windows.Forms.Label L_M4; - private System.Windows.Forms.ComboBox CB_M4; - private System.Windows.Forms.ComboBox CB_P5; - private System.Windows.Forms.ComboBox CB_I5; - private System.Windows.Forms.Label L_M5; - private System.Windows.Forms.ComboBox CB_M5; - private System.Windows.Forms.ComboBox CB_P8; - private System.Windows.Forms.ComboBox CB_I8; - private System.Windows.Forms.Label L_M8; - private System.Windows.Forms.ComboBox CB_M8; - private System.Windows.Forms.ComboBox CB_P7; - private System.Windows.Forms.ComboBox CB_I7; - private System.Windows.Forms.Label L_M7; - private System.Windows.Forms.ComboBox CB_M7; - private System.Windows.Forms.ComboBox CB_P6; - private System.Windows.Forms.ComboBox CB_I6; - private System.Windows.Forms.Label L_M6; - private System.Windows.Forms.ComboBox CB_M6; - private System.Windows.Forms.PictureBox PB_1; - private System.Windows.Forms.PictureBox PB_2; - private System.Windows.Forms.PictureBox PB_4; - private System.Windows.Forms.PictureBox PB_3; - private System.Windows.Forms.PictureBox PB_6; - private System.Windows.Forms.PictureBox PB_5; - private System.Windows.Forms.PictureBox PB_8; - private System.Windows.Forms.PictureBox PB_7; - private System.Windows.Forms.Button B_RandAll; - private System.Windows.Forms.GroupBox GB_Randomizer; - private System.Windows.Forms.CheckBox CHK_Exp; - private System.Windows.Forms.CheckBox CHK_Type; - private System.Windows.Forms.CheckBox CHK_BST; - private System.Windows.Forms.Label L_Protip; - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/EvolutionEditor6.cs b/pk3DS/Subforms/Gen6/EvolutionEditor6.cs deleted file mode 100644 index 95d4813179..0000000000 --- a/pk3DS/Subforms/Gen6/EvolutionEditor6.cs +++ /dev/null @@ -1,230 +0,0 @@ -using System; -using System.Drawing; -using System.IO; -using System.Linq; -using System.Media; -using System.Text; -using System.Windows.Forms; -using pk3DS.Properties; -using pk3DS.Core; -using pk3DS.Core.Randomizers; -using pk3DS.Core.Structures; - -namespace pk3DS -{ - public partial class EvolutionEditor6 : Form - { - public EvolutionEditor6(byte[][] infiles) - { - files = infiles; - InitializeComponent(); - - specieslist[0] = movelist[0] = itemlist[0] = ""; - Array.Resize(ref specieslist, Main.Config.MaxSpeciesID + 1); - - string[] evolutionMethods = - { - "", - "Level Up with Friendship", - "Level Up at Morning with Friendship", - "Level Up at Night with Friendship", - "Level Up", - "Trade", - "Trade with Held Item", - $"Trade for opposite {specieslist[588]}/{specieslist[616]}", // Shelmet&Karrablast - "Used Item", - "Level Up (Attack > Defense)", - "Level Up (Attack = Defense)", - "Level Up (Attack < Defense)", - "Level Up (Random < 5)", - "Level Up (Random > 5)", - $"Level Up ({specieslist[291]})", // Ninjask - $"Level Up ({specieslist[292]})", // Shedinja - "Level Up (Beauty)", - "Used Item (Male)", // Kirlia->Gallade - "Used Item (Female)", // Snorunt->Froslass - "Level Up with Held Item (Day)", - "Level Up with Held Item (Night)", - "Level Up with Move", - "Level Up with Party", - "Level Up Male", - "Level Up Female", - "Level Up at Electric", - "Level Up at Forest", - "Level Up at Cold", - "Level Up with 3DS Upside Down", - "Level Up with 50 Affection + MoveType", - $"{typelist[16]} Type in Party", - "Overworld Rain", - "Level Up (@) at Morning", - "Level Up (@) at Night", - "Level Up Female (SetForm 1)", - }; - - mb = new[] { CB_M1, CB_M2, CB_M3, CB_M4, CB_M5, CB_M6, CB_M7, CB_M8 }; - pb = new[] { CB_P1, CB_P2, CB_P3, CB_P4, CB_P5, CB_P6, CB_P7, CB_P8 }; - rb = new[] { CB_I1, CB_I2, CB_I3, CB_I4, CB_I5, CB_I6, CB_I7, CB_I8 }; - pic = new[] { PB_1, PB_2, PB_3, PB_4, PB_5, PB_6, PB_7, PB_8 }; - - foreach (ComboBox cb in mb) { foreach (string s in evolutionMethods) cb.Items.Add(s); } - foreach (ComboBox cb in rb) { foreach (string s in specieslist) cb.Items.Add(s); } - - sortedspecies = (string[])specieslist.Clone(); - Array.Sort(sortedspecies); - - CB_Species.Items.Clear(); - foreach (string s in sortedspecies) CB_Species.Items.Add(s); - CB_Species.Items.RemoveAt(0); - - CB_Species.SelectedIndex = 0; - } - private readonly byte[][] files; - private readonly ComboBox[] pb; - private readonly ComboBox[] rb; - private readonly ComboBox[] mb; - private readonly PictureBox[] pic; - private int entry = -1; - private readonly string[] sortedspecies; - private readonly string[] specieslist = Main.Config.getText(TextName.SpeciesNames); - private readonly string[] movelist = Main.Config.getText(TextName.MoveNames); - private readonly string[] itemlist = Main.Config.getText(TextName.ItemNames); - private readonly string[] typelist = Main.Config.getText(TextName.Types); - private bool dumping; - private EvolutionSet evo = new EvolutionSet6(new byte[EvolutionSet6.SIZE]); - private void getList() - { - entry = Array.IndexOf(specieslist, CB_Species.Text); - byte[] input = files[entry]; - if (input.Length != EvolutionSet6.SIZE) return; // error - evo = new EvolutionSet6(input); - - for (int i = 0; i < evo.PossibleEvolutions.Length; i++) - { - if (evo.PossibleEvolutions[i].Method > 34) return; // Invalid! - - mb[i].SelectedIndex = evo.PossibleEvolutions[i].Method; // Which will trigger the params cb to reload the valid params list - pb[i].SelectedIndex = evo.PossibleEvolutions[i].Argument; - rb[i].SelectedIndex = evo.PossibleEvolutions[i].Species; - } - } - private void setList() - { - if (entry < 1 || dumping) return; - - for (int i = 0; i < 8; i++) - { - evo.PossibleEvolutions[i].Method = mb[i].SelectedIndex; - evo.PossibleEvolutions[i].Argument = pb[i].SelectedIndex; - evo.PossibleEvolutions[i].Species = rb[i].SelectedIndex; - } - files[entry] = evo.Write(); - } - - private void changeEntry(object sender, EventArgs e) - { - setList(); - getList(); - } - - private void B_RandAll_Click(object sender, EventArgs e) - { - if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomize all resulting species?", "Evolution methods and parameters will stay the same.")) - return; - - setList(); - // Set up advanced randomization options - var evos = files.Select(z => new EvolutionSet6(z)).ToArray(); - var evoRand = new EvolutionRandomizer(Main.Config, evos); - evoRand.Randomizer.rBST = CHK_BST.Checked; - evoRand.Randomizer.rEXP = CHK_Exp.Checked; - evoRand.Randomizer.rType = CHK_Type.Checked; - evoRand.Randomizer.Initialize(); - evoRand.Execute(); - evos.Select(z => z.Write()).ToArray().CopyTo(files, 0); - getList(); - - WinFormsUtil.Alert("All Pokémon's Evolutions have been randomized!"); - } - private void B_Dump_Click(object sender, EventArgs e) - { - if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Dump all Evolutions to Text File?")) - return; - - dumping = true; - string result = ""; - for (int i = 0; i < CB_Species.Items.Count; i++) - { - CB_Species.SelectedIndex = i; // Get new Species - result += "======" + Environment.NewLine + entry + " " + CB_Species.Text + Environment.NewLine + "======" + Environment.NewLine; - for (int j = 0; j < 8; j++) - { - int methodval = mb[j].SelectedIndex; - // int param = pb[j].SelectedIndex; - int poke = rb[j].SelectedIndex; - if (poke > 0 && methodval > 0) - result += mb[j].Text + (pb[j].Visible ? " [" + pb[j].Text + "]" : "") + " into " + rb[j].Text + Environment.NewLine; - } - - result += Environment.NewLine; - } - SaveFileDialog sfd = new SaveFileDialog {FileName = "Evolutions.txt", Filter = "Text File|*.txt"}; - - SystemSounds.Asterisk.Play(); - if (sfd.ShowDialog() == DialogResult.OK) - { - string path = sfd.FileName; - File.WriteAllText(path, result, Encoding.Unicode); - } - dumping = false; - } - - private void formClosing(object sender, FormClosingEventArgs e) - { - setList(); - } - - private void changeMethod(object sender, EventArgs e) - { - int op = Array.IndexOf(mb, sender as ComboBox); - ushort[] methodCase = - { - 0,0,0,0,1,0,2,0,2,1,1,1,1,1,1,1,5,2,2,2,2,3,4,1,1,0,0,0, // 27, Past Methods - // New Methods - 1, // 28 - Dark Type Party - 6, // 29 - Affection + MoveType - 1, // 30 - UpsideDown 3DS - 1, // 31 - Overworld Rain - 1, // 32 - Level @ Day - 1, // 33 - Level @ Night - 1, // 34 - Gender Branch - }; - - pb[op].Visible = pic[op].Visible = rb[op].Visible = mb[op].SelectedIndex > 0; - - pb[op].Items.Clear(); - int cv = methodCase[mb[op].SelectedIndex]; - switch (cv) - { - case 0: // No Parameter Required - { pb[op].Visible = false; pb[op].Items.Add(""); break; } - case 1: // Level - { for (int i = 0; i <= 100; i++) pb[op].Items.Add(i.ToString()); break; } - case 2: // Items - { foreach (string t in itemlist) pb[op].Items.Add(t); break; } - case 3: // Moves - { foreach (string t in movelist) pb[op].Items.Add(t); break; } - case 4: // Species - { for (int i = 0; i < sortedspecies.Length; i++) pb[op].Items.Add(specieslist[i]); break; } - case 5: // 0-255 (Beauty) - { for (int i = 0; i <= 255; i++) pb[op].Items.Add(i.ToString()); break; } - case 6: - { foreach (string t in typelist) pb[op].Items.Add(t); break; } - } - pb[op].SelectedIndex = 0; - } - private void changeInto(object sender, EventArgs e) - { - pic[Array.IndexOf(rb, sender as ComboBox)].Image = (Bitmap)Resources.ResourceManager.GetObject("_" + Array.IndexOf(specieslist, (sender as ComboBox).Text)); - } - } -} diff --git a/pk3DS/Subforms/Gen6/Experimental/MapPermView.Designer.cs b/pk3DS/Subforms/Gen6/Experimental/MapPermView.Designer.cs deleted file mode 100644 index 3f3b1dfdcf..0000000000 --- a/pk3DS/Subforms/Gen6/Experimental/MapPermView.Designer.cs +++ /dev/null @@ -1,200 +0,0 @@ -namespace pk3DS.Subforms -{ - partial class MapPermView - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.L_MapCoord = new System.Windows.Forms.Label(); - this.PAN_MAP = new System.Windows.Forms.Panel(); - this.PB_Map = new System.Windows.Forms.PictureBox(); - this.CHK_AutoDraw = new System.Windows.Forms.CheckBox(); - this.B_Redraw = new System.Windows.Forms.Button(); - this.L_Scale = new System.Windows.Forms.Label(); - this.NUD_Scale = new System.Windows.Forms.NumericUpDown(); - this.L_Flavor = new System.Windows.Forms.Label(); - this.NUD_Flavor = new System.Windows.Forms.NumericUpDown(); - this.PAN_MAP.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.PB_Map)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Scale)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Flavor)).BeginInit(); - this.SuspendLayout(); - // - // L_MapCoord - // - this.L_MapCoord.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.L_MapCoord.Location = new System.Drawing.Point(349, 2); - this.L_MapCoord.Name = "L_MapCoord"; - this.L_MapCoord.Size = new System.Drawing.Size(131, 28); - this.L_MapCoord.TabIndex = 20; - this.L_MapCoord.Text = "V:0x00000000\r\nX: 1 Y: 1"; - this.L_MapCoord.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // PAN_MAP - // - this.PAN_MAP.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.PAN_MAP.AutoScroll = true; - this.PAN_MAP.Controls.Add(this.PB_Map); - this.PAN_MAP.Location = new System.Drawing.Point(9, 31); - this.PAN_MAP.Name = "PAN_MAP"; - this.PAN_MAP.Size = new System.Drawing.Size(470, 430); - this.PAN_MAP.TabIndex = 19; - // - // PB_Map - // - this.PB_Map.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; - this.PB_Map.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.PB_Map.Location = new System.Drawing.Point(0, 0); - this.PB_Map.Name = "PB_Map"; - this.PB_Map.Size = new System.Drawing.Size(470, 430); - this.PB_Map.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; - this.PB_Map.TabIndex = 2; - this.PB_Map.TabStop = false; - this.PB_Map.DoubleClick += new System.EventHandler(this.dclickMap); - this.PB_Map.MouseEnter += new System.EventHandler(this.focusPanel); - this.PB_Map.MouseMove += new System.Windows.Forms.MouseEventHandler(this.hoverMap); - // - // CHK_AutoDraw - // - this.CHK_AutoDraw.AutoSize = true; - this.CHK_AutoDraw.Location = new System.Drawing.Point(267, 8); - this.CHK_AutoDraw.Name = "CHK_AutoDraw"; - this.CHK_AutoDraw.Size = new System.Drawing.Size(76, 17); - this.CHK_AutoDraw.TabIndex = 18; - this.CHK_AutoDraw.Text = "Auto-Draw"; - this.CHK_AutoDraw.UseVisualStyleBackColor = true; - // - // B_Redraw - // - this.B_Redraw.Location = new System.Drawing.Point(186, 5); - this.B_Redraw.Name = "B_Redraw"; - this.B_Redraw.Size = new System.Drawing.Size(75, 23); - this.B_Redraw.TabIndex = 17; - this.B_Redraw.Text = "Redraw"; - this.B_Redraw.UseVisualStyleBackColor = true; - this.B_Redraw.Click += new System.EventHandler(this.B_Redraw_Click); - // - // L_Scale - // - this.L_Scale.AutoSize = true; - this.L_Scale.Location = new System.Drawing.Point(100, 9); - this.L_Scale.Name = "L_Scale"; - this.L_Scale.Size = new System.Drawing.Size(37, 13); - this.L_Scale.TabIndex = 16; - this.L_Scale.Text = "Scale:"; - // - // NUD_Scale - // - this.NUD_Scale.Location = new System.Drawing.Point(143, 7); - this.NUD_Scale.Maximum = new decimal(new int[] { - 16, - 0, - 0, - 0}); - this.NUD_Scale.Minimum = new decimal(new int[] { - 1, - 0, - 0, - 0}); - this.NUD_Scale.Name = "NUD_Scale"; - this.NUD_Scale.Size = new System.Drawing.Size(37, 20); - this.NUD_Scale.TabIndex = 15; - this.NUD_Scale.Value = new decimal(new int[] { - 8, - 0, - 0, - 0}); - // - // L_Flavor - // - this.L_Flavor.AutoSize = true; - this.L_Flavor.Location = new System.Drawing.Point(12, 9); - this.L_Flavor.Name = "L_Flavor"; - this.L_Flavor.Size = new System.Drawing.Size(39, 13); - this.L_Flavor.TabIndex = 14; - this.L_Flavor.Text = "Flavor:"; - // - // NUD_Flavor - // - this.NUD_Flavor.Location = new System.Drawing.Point(57, 7); - this.NUD_Flavor.Minimum = new decimal(new int[] { - 1, - 0, - 0, - 0}); - this.NUD_Flavor.Name = "NUD_Flavor"; - this.NUD_Flavor.Size = new System.Drawing.Size(37, 20); - this.NUD_Flavor.TabIndex = 13; - this.NUD_Flavor.Value = new decimal(new int[] { - 5, - 0, - 0, - 0}); - // - // MapPermView - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(489, 467); - this.Controls.Add(this.L_MapCoord); - this.Controls.Add(this.PAN_MAP); - this.Controls.Add(this.CHK_AutoDraw); - this.Controls.Add(this.B_Redraw); - this.Controls.Add(this.L_Scale); - this.Controls.Add(this.NUD_Scale); - this.Controls.Add(this.L_Flavor); - this.Controls.Add(this.NUD_Flavor); - this.MinimumSize = new System.Drawing.Size(505, 505); - this.Name = "MapPermView"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Map Viewer"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MapPermView_FormClosing); - this.PAN_MAP.ResumeLayout(false); - this.PAN_MAP.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.PB_Map)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Scale)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Flavor)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Label L_MapCoord; - private System.Windows.Forms.Panel PAN_MAP; - private System.Windows.Forms.PictureBox PB_Map; - private System.Windows.Forms.CheckBox CHK_AutoDraw; - private System.Windows.Forms.Button B_Redraw; - private System.Windows.Forms.Label L_Scale; - private System.Windows.Forms.NumericUpDown NUD_Scale; - private System.Windows.Forms.Label L_Flavor; - private System.Windows.Forms.NumericUpDown NUD_Flavor; - - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/Experimental/MapPermView.cs b/pk3DS/Subforms/Gen6/Experimental/MapPermView.cs deleted file mode 100644 index 75e03e13be..0000000000 --- a/pk3DS/Subforms/Gen6/Experimental/MapPermView.cs +++ /dev/null @@ -1,197 +0,0 @@ -using System; -using System.Drawing; -using System.IO; -using System.Windows.Forms; -using pk3DS.Core.CTR; - -namespace pk3DS.Subforms -{ - public partial class MapPermView : Form - { - public MapPermView() - { - InitializeComponent(); - MapMatrixes = Directory.GetFiles("mapMatrix"); - MapGRs = Directory.GetFiles("mapGR"); - } - - private readonly string[] MapMatrixes; - private readonly string[] MapGRs; - private int mapScale = -1; - public int DrawMap = -1; - public void drawMap(int Map) - { - DrawMap = Map; - PB_Map.Image = CHK_AutoDraw.Checked ? getMapImage(sliceArea: true) : null; - } - public Bitmap getMapImage(bool crop = false, bool entity = true, bool sliceArea = false) - { - // Load MM - byte[][] MM = mini.unpackMini(File.ReadAllBytes(MapMatrixes[DrawMap]), "MM"); - var mm = OWSE.mm = new MapMatrix(MM); - - // Unknown - if (ModifierKeys == Keys.Control) - Clipboard.SetText(mm.Unk2String()); - - // Load GR TileMaps - for (int i = 0; i < mm.EntryList.Length; i++) - { - if (mm.EntryList[i] == 0xFFFF) // Mystery Zone - continue; - byte[][] GR = mini.unpackMini(File.ReadAllBytes(MapGRs[mm.EntryList[i]]), "GR"); - mm.Entries[i] = new MapMatrix.Entry(GR[0]) {coll = new MapMatrix.Collision(GR[2])}; - } - mapScale = Math.Max(1, (int)NUD_Scale.Value); - Bitmap img = mm.Preview(mapScale, (int)NUD_Flavor.Value); - - baseImage = (Bitmap)img.Clone(); - - if (sliceArea && mapScale > 3) - { - int area = 40*mapScale; - for (int x = 0; x < img.Width; x++) - for (int y = 0; y < img.Height; y++) - if (x % area == 0 || y % area == 0) - img.SetPixel(x,y,Color.FromArgb(0x10,0xFF,0,0)); - } - - if (entity && mapScale == 8) - img = overlayEntities(img); - - if (crop) - img = WinFormsUtil.TrimBitmap(img); - - return img; - } - - internal static Bitmap baseImage; - - private Bitmap overlayEntities(Bitmap img) - { - const float opacity = 0.66f; - // Overlay every... overworld entity - foreach (var e in OWSE.CurrentZone.Entities.Furniture) - { - int x = e.X; - int y = e.Y; - for (int sx = 0; sx < e.WX; sx++) // Stretch X - for (int sy = 0; sy < e.WY; sy++) // Stretch Y - try { WinFormsUtil.LayerImage(img, Properties.Resources.F, (x + sx) * mapScale, (y + sy) * mapScale, opacity); } - catch { } - } - foreach (var e in OWSE.CurrentZone.Entities.NPCs) - { - int x = e.X; - int y = e.Y; - try { WinFormsUtil.LayerImage(img, Properties.Resources.N, x * mapScale, y * mapScale, opacity); } - catch { } - } - foreach (var e in OWSE.CurrentZone.Entities.Warps) - { - int x = (int)e.pX; // shifted warps look weird - int y = (int)e.pY; // shifted warps look weird - for (int sx = 0; sx < e.Width; sx++) // Stretch X - for (int sy = 0; sy < e.Height; sy++) // Stretch Y - try { WinFormsUtil.LayerImage(img, Properties.Resources.W, (x + sx) * mapScale, (y + sy) * mapScale, opacity); } - catch { } - } - foreach (var e in OWSE.CurrentZone.Entities.Triggers1) - { - int x = e.X; - int y = e.Y; - for (int sx = 0; sx < e.Width; sx++) // Stretch X - for (int sy = 0; sy < e.Height; sy++) // Stretch Y - try { WinFormsUtil.LayerImage(img, Properties.Resources.T1, (x + sx) * mapScale, (y + sy) * mapScale, opacity); } - catch { } - } - foreach (var e in OWSE.CurrentZone.Entities.Triggers2) - { - int x = e.X; - int y = e.Y; - for (int sx = 0; sx < e.Width; sx++) // Stretch X - for (int sy = 0; sy < e.Height; sy++) // Stretch Y - try { WinFormsUtil.LayerImage(img, Properties.Resources.T2, (x + sx) * mapScale, (y + sy) * mapScale, opacity); } - catch { } - } - - // Overlay Map Data - // Flyto - { - int x = (int)OWSE.CurrentZone.ZD.pX2; - int y = (int)OWSE.CurrentZone.ZD.pY2; - for (int sx = 0; sx < 1; sx++) // Stretch X - for (int sy = 0; sy < 1; sy++) // Stretch Y - try { WinFormsUtil.LayerImage(img, Properties.Resources.FLY, (x + sx) * mapScale, (y + sy) * mapScale, opacity/2); } - catch { } - } - // Unknown - //{ - // using(var g = Graphics.FromImage(img)) - // foreach (var l in OWSE.mm.LoadLines) - // try { g.DrawLine(new Pen(Color.Red, 4), l.p2 * mapScale, l.p1 * mapScale, l.p4 * mapScale, l.p3 * mapScale); } - // catch {} - //} - - return img; - } - - // UI - private void hoverMap(object sender, MouseEventArgs e) - { - if (mapScale < 0) - return; - - if (PB_Map.Image == null) - return; - - int X = e.X / mapScale; - int Y = e.Y / mapScale; - - int entryX = X/40; - int entryY = Y/40; - - int entry = entryY*(PB_Map.Image.Width/40/mapScale) + entryX; - int epX = X%40; - int epY = Y%40; - int tile = epY * 40 + epX; - try - { - var tileVal = OWSE.mm.Entries[entry] == null - ? "No Tile" - : OWSE.mm.Entries[entry].Tiles[tile].ToString("X8"); - - L_MapCoord.Text = string.Format("V:0x{3}{2}X:{0,3} Y:{1,3}", X, Y, Environment.NewLine, tileVal); - } - catch { } - } - private void B_Redraw_Click(object sender, EventArgs e) - { - if (DrawMap != -1) - PB_Map.Image = getMapImage(sliceArea: true); - } - - private void MapPermView_FormClosing(object sender, FormClosingEventArgs e) - { - CHK_AutoDraw.Checked = false; - Hide(); - e.Cancel = true; - } - - private void focusPanel(object sender, EventArgs e) - { - if (ContainsFocus) - PAN_MAP.Focus(); - } - - private void dclickMap(object sender, EventArgs e) - { - DialogResult dr = WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Copy image to Clipboard?", - "Yes: Map & Overworlds" + Environment.NewLine + "No: Map Only"); - if (dr == DialogResult.No) // Map Only - Clipboard.SetImage(WinFormsUtil.TrimBitmap(baseImage)); - if (dr == DialogResult.Yes) - Clipboard.SetImage(PB_Map.Image); - } - } -} diff --git a/pk3DS/Subforms/Gen6/Experimental/OWSE.Designer.cs b/pk3DS/Subforms/Gen6/Experimental/OWSE.Designer.cs deleted file mode 100644 index 73d030a94c..0000000000 --- a/pk3DS/Subforms/Gen6/Experimental/OWSE.Designer.cs +++ /dev/null @@ -1,2112 +0,0 @@ -namespace pk3DS -{ - partial class OWSE - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.CB_LocationID = new System.Windows.Forms.ComboBox(); - this.L_Location = new System.Windows.Forms.Label(); - this.RTB_ZD = new System.Windows.Forms.RichTextBox(); - this.tb_Zone = new System.Windows.Forms.TabControl(); - this.tb_ZoneData = new System.Windows.Forms.TabPage(); - this.L_MapInfoTabData = new System.Windows.Forms.Label(); - this.tb_OWSC = new System.Windows.Forms.TabPage(); - this.B_ResetOverworlds = new System.Windows.Forms.Button(); - this.CHK_EditRAW = new System.Windows.Forms.CheckBox(); - this.NUD_UnkCount = new System.Windows.Forms.NumericUpDown(); - this.L_Unk = new System.Windows.Forms.Label(); - this.L_OWEntities = new System.Windows.Forms.Label(); - this.NUD_TrigCount = new System.Windows.Forms.NumericUpDown(); - this.L_TriggerCount = new System.Windows.Forms.Label(); - this.NUD_WarpCount = new System.Windows.Forms.NumericUpDown(); - this.L_WarpCount = new System.Windows.Forms.Label(); - this.NUD_FurnCount = new System.Windows.Forms.NumericUpDown(); - this.L_FurnitureCount = new System.Windows.Forms.Label(); - this.tc_OWSC = new System.Windows.Forms.TabControl(); - this.tb_Furniture = new System.Windows.Forms.TabPage(); - this.GB_F = new System.Windows.Forms.GroupBox(); - this.B_ResetFurniture = new System.Windows.Forms.Button(); - this.NUD_FWY = new System.Windows.Forms.NumericUpDown(); - this.L_FWY = new System.Windows.Forms.Label(); - this.NUD_FWX = new System.Windows.Forms.NumericUpDown(); - this.L_FWX = new System.Windows.Forms.Label(); - this.NUD_FY = new System.Windows.Forms.NumericUpDown(); - this.L_FY = new System.Windows.Forms.Label(); - this.NUD_FX = new System.Windows.Forms.NumericUpDown(); - this.L_FX = new System.Windows.Forms.Label(); - this.RTB_F = new System.Windows.Forms.RichTextBox(); - this.NUD_FE = new System.Windows.Forms.NumericUpDown(); - this.L_FE = new System.Windows.Forms.Label(); - this.tb_NPC = new System.Windows.Forms.TabPage(); - this.GB_N = new System.Windows.Forms.GroupBox(); - this.B_ResetNPC = new System.Windows.Forms.Button(); - this.NUD_NMove2 = new System.Windows.Forms.NumericUpDown(); - this.L_Move2 = new System.Windows.Forms.Label(); - this.NUD_NMove1 = new System.Windows.Forms.NumericUpDown(); - this.L_Move1 = new System.Windows.Forms.Label(); - this.TB_Leash = new System.Windows.Forms.TextBox(); - this.L_LeashInfo = new System.Windows.Forms.Label(); - this.L_NDeg = new System.Windows.Forms.Label(); - this.TB_NDeg = new System.Windows.Forms.TextBox(); - this.NUD_NRange = new System.Windows.Forms.NumericUpDown(); - this.L_Range = new System.Windows.Forms.Label(); - this.L_ModelAsHex = new System.Windows.Forms.Label(); - this.NUD_NFlag = new System.Windows.Forms.NumericUpDown(); - this.L_NFlag = new System.Windows.Forms.Label(); - this.NUD_NScript = new System.Windows.Forms.NumericUpDown(); - this.L_NScript = new System.Windows.Forms.Label(); - this.NUD_NFace = new System.Windows.Forms.NumericUpDown(); - this.L_NFaceDirection = new System.Windows.Forms.Label(); - this.NUD_NY = new System.Windows.Forms.NumericUpDown(); - this.L_NY = new System.Windows.Forms.Label(); - this.NUD_NX = new System.Windows.Forms.NumericUpDown(); - this.L_NX = new System.Windows.Forms.Label(); - this.NUD_NModel = new System.Windows.Forms.NumericUpDown(); - this.L_NModel = new System.Windows.Forms.Label(); - this.RTB_N = new System.Windows.Forms.RichTextBox(); - this.NUD_NID = new System.Windows.Forms.NumericUpDown(); - this.L_NID = new System.Windows.Forms.Label(); - this.NUD_NE = new System.Windows.Forms.NumericUpDown(); - this.L_NE = new System.Windows.Forms.Label(); - this.tb_Warp = new System.Windows.Forms.TabPage(); - this.GB_W = new System.Windows.Forms.GroupBox(); - this.B_ResetWarp = new System.Windows.Forms.Button(); - this.L_WpY = new System.Windows.Forms.Label(); - this.L_WpX = new System.Windows.Forms.Label(); - this.NUD_WY = new System.Windows.Forms.NumericUpDown(); - this.L_WY = new System.Windows.Forms.Label(); - this.NUD_WX = new System.Windows.Forms.NumericUpDown(); - this.L_WX = new System.Windows.Forms.Label(); - this.RTB_W = new System.Windows.Forms.RichTextBox(); - this.L_WarpDest = new System.Windows.Forms.Label(); - this.L_DestMap = new System.Windows.Forms.Label(); - this.NUD_WTile = new System.Windows.Forms.NumericUpDown(); - this.L_DestWarpTile = new System.Windows.Forms.Label(); - this.NUD_WMap = new System.Windows.Forms.NumericUpDown(); - this.NUD_WE = new System.Windows.Forms.NumericUpDown(); - this.L_WE = new System.Windows.Forms.Label(); - this.tb_Trigger1 = new System.Windows.Forms.TabPage(); - this.GB_T1 = new System.Windows.Forms.GroupBox(); - this.B_ResetTrigger1 = new System.Windows.Forms.Button(); - this.NUD_T1Y = new System.Windows.Forms.NumericUpDown(); - this.L_T1Y = new System.Windows.Forms.Label(); - this.NUD_T1X = new System.Windows.Forms.NumericUpDown(); - this.L_T1X = new System.Windows.Forms.Label(); - this.RTB_T1 = new System.Windows.Forms.RichTextBox(); - this.NUD_TE = new System.Windows.Forms.NumericUpDown(); - this.L_TE = new System.Windows.Forms.Label(); - this.tb_Trigger2 = new System.Windows.Forms.TabPage(); - this.GB_T2 = new System.Windows.Forms.GroupBox(); - this.B_ResetTrigger2 = new System.Windows.Forms.Button(); - this.NUD_T2Y = new System.Windows.Forms.NumericUpDown(); - this.L_T2Y = new System.Windows.Forms.Label(); - this.NUD_T2X = new System.Windows.Forms.NumericUpDown(); - this.L_T2X = new System.Windows.Forms.Label(); - this.RTB_T2 = new System.Windows.Forms.RichTextBox(); - this.NUD_UE = new System.Windows.Forms.NumericUpDown(); - this.L_UE = new System.Windows.Forms.Label(); - this.tb_Script = new System.Windows.Forms.TabPage(); - this.RTB_OSP = new System.Windows.Forms.RichTextBox(); - this.RTB_OS = new System.Windows.Forms.RichTextBox(); - this.L_OWSCDesc = new System.Windows.Forms.Label(); - this.RTB_OWSCMD = new System.Windows.Forms.RichTextBox(); - this.NUD_NPCCount = new System.Windows.Forms.NumericUpDown(); - this.L_NPCCount = new System.Windows.Forms.Label(); - this.tb_MSC = new System.Windows.Forms.TabPage(); - this.RTB_MSP = new System.Windows.Forms.RichTextBox(); - this.RTB_MSCMD = new System.Windows.Forms.RichTextBox(); - this.L_MSSCDesc = new System.Windows.Forms.Label(); - this.RTB_MS = new System.Windows.Forms.RichTextBox(); - this.tb_Encounters = new System.Windows.Forms.TabPage(); - this.L_Encounters = new System.Windows.Forms.Label(); - this.tb_File5 = new System.Windows.Forms.TabPage(); - this.L_File5TabData = new System.Windows.Forms.Label(); - this.tb_RAW = new System.Windows.Forms.TabPage(); - this.L_ZD = new System.Windows.Forms.Label(); - this.L_File3 = new System.Windows.Forms.Label(); - this.L_ZDMaster = new System.Windows.Forms.Label(); - this.L_File5 = new System.Windows.Forms.Label(); - this.L_File4 = new System.Windows.Forms.Label(); - this.L_File2 = new System.Windows.Forms.Label(); - this.L_File1 = new System.Windows.Forms.Label(); - this.RTB_ZDMaster = new System.Windows.Forms.RichTextBox(); - this.RTB_File5 = new System.Windows.Forms.RichTextBox(); - this.RTB_OWSC = new System.Windows.Forms.RichTextBox(); - this.RTB_Encounter = new System.Windows.Forms.RichTextBox(); - this.RTB_MapSC = new System.Windows.Forms.RichTextBox(); - this.tb_Dev = new System.Windows.Forms.TabPage(); - this.B_DumpZD = new System.Windows.Forms.Button(); - this.L_DeComp = new System.Windows.Forms.Label(); - this.RTB_CompressedScript = new System.Windows.Forms.RichTextBox(); - this.RTB_DecompressedScript = new System.Windows.Forms.RichTextBox(); - this.L_Comp = new System.Windows.Forms.Label(); - this.B_DumpMaps = new System.Windows.Forms.Button(); - this.B_DumpUnk = new System.Windows.Forms.Button(); - this.B_DumpTrigger = new System.Windows.Forms.Button(); - this.B_DumpWarp = new System.Windows.Forms.Button(); - this.B_DumpNPC = new System.Windows.Forms.Button(); - this.B_DumpFurniture = new System.Windows.Forms.Button(); - this.B_Map = new System.Windows.Forms.Button(); - this.L_ZDPreview = new System.Windows.Forms.Label(); - this.B_HLCMD = new System.Windows.Forms.Button(); - this.tb_Zone.SuspendLayout(); - this.tb_ZoneData.SuspendLayout(); - this.tb_OWSC.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_UnkCount)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_TrigCount)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_WarpCount)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_FurnCount)).BeginInit(); - this.tc_OWSC.SuspendLayout(); - this.tb_Furniture.SuspendLayout(); - this.GB_F.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_FWY)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_FWX)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_FY)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_FX)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_FE)).BeginInit(); - this.tb_NPC.SuspendLayout(); - this.GB_N.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_NMove2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_NMove1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_NRange)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_NFlag)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_NScript)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_NFace)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_NY)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_NX)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_NModel)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_NID)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_NE)).BeginInit(); - this.tb_Warp.SuspendLayout(); - this.GB_W.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_WY)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_WX)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_WTile)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_WMap)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_WE)).BeginInit(); - this.tb_Trigger1.SuspendLayout(); - this.GB_T1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_T1Y)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_T1X)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_TE)).BeginInit(); - this.tb_Trigger2.SuspendLayout(); - this.GB_T2.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_T2Y)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_T2X)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_UE)).BeginInit(); - this.tb_Script.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_NPCCount)).BeginInit(); - this.tb_MSC.SuspendLayout(); - this.tb_Encounters.SuspendLayout(); - this.tb_File5.SuspendLayout(); - this.tb_RAW.SuspendLayout(); - this.tb_Dev.SuspendLayout(); - this.SuspendLayout(); - // - // CB_LocationID - // - this.CB_LocationID.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_LocationID.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_LocationID.Enabled = false; - this.CB_LocationID.FormattingEnabled = true; - this.CB_LocationID.Location = new System.Drawing.Point(46, 5); - this.CB_LocationID.Name = "CB_LocationID"; - this.CB_LocationID.Size = new System.Drawing.Size(164, 21); - this.CB_LocationID.TabIndex = 407; - this.CB_LocationID.SelectedIndexChanged += new System.EventHandler(this.CB_LocationID_SelectedIndexChanged); - // - // L_Location - // - this.L_Location.AutoSize = true; - this.L_Location.Location = new System.Drawing.Point(12, 8); - this.L_Location.Name = "L_Location"; - this.L_Location.Size = new System.Drawing.Size(28, 13); - this.L_Location.TabIndex = 411; - this.L_Location.Text = "Loc:"; - // - // RTB_ZD - // - this.RTB_ZD.Font = new System.Drawing.Font("Courier New", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.RTB_ZD.Location = new System.Drawing.Point(217, 3); - this.RTB_ZD.Name = "RTB_ZD"; - this.RTB_ZD.ReadOnly = true; - this.RTB_ZD.Size = new System.Drawing.Size(266, 36); - this.RTB_ZD.TabIndex = 412; - this.RTB_ZD.Text = "00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF"; - // - // tb_Zone - // - this.tb_Zone.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tb_Zone.Controls.Add(this.tb_ZoneData); - this.tb_Zone.Controls.Add(this.tb_OWSC); - this.tb_Zone.Controls.Add(this.tb_MSC); - this.tb_Zone.Controls.Add(this.tb_Encounters); - this.tb_Zone.Controls.Add(this.tb_File5); - this.tb_Zone.Controls.Add(this.tb_RAW); - this.tb_Zone.Controls.Add(this.tb_Dev); - this.tb_Zone.Location = new System.Drawing.Point(12, 32); - this.tb_Zone.Name = "tb_Zone"; - this.tb_Zone.SelectedIndex = 0; - this.tb_Zone.Size = new System.Drawing.Size(494, 497); - this.tb_Zone.TabIndex = 417; - // - // tb_ZoneData - // - this.tb_ZoneData.Controls.Add(this.L_MapInfoTabData); - this.tb_ZoneData.Location = new System.Drawing.Point(4, 22); - this.tb_ZoneData.Name = "tb_ZoneData"; - this.tb_ZoneData.Padding = new System.Windows.Forms.Padding(3); - this.tb_ZoneData.Size = new System.Drawing.Size(486, 471); - this.tb_ZoneData.TabIndex = 0; - this.tb_ZoneData.Text = "ZoneData"; - this.tb_ZoneData.UseVisualStyleBackColor = true; - // - // L_MapInfoTabData - // - this.L_MapInfoTabData.AutoSize = true; - this.L_MapInfoTabData.Location = new System.Drawing.Point(26, 26); - this.L_MapInfoTabData.Name = "L_MapInfoTabData"; - this.L_MapInfoTabData.Size = new System.Drawing.Size(227, 13); - this.L_MapInfoTabData.TabIndex = 2; - this.L_MapInfoTabData.Text = "Functionality unknown. See RAW tab for data."; - // - // tb_OWSC - // - this.tb_OWSC.Controls.Add(this.B_ResetOverworlds); - this.tb_OWSC.Controls.Add(this.CHK_EditRAW); - this.tb_OWSC.Controls.Add(this.NUD_UnkCount); - this.tb_OWSC.Controls.Add(this.L_Unk); - this.tb_OWSC.Controls.Add(this.L_OWEntities); - this.tb_OWSC.Controls.Add(this.NUD_TrigCount); - this.tb_OWSC.Controls.Add(this.L_TriggerCount); - this.tb_OWSC.Controls.Add(this.NUD_WarpCount); - this.tb_OWSC.Controls.Add(this.L_WarpCount); - this.tb_OWSC.Controls.Add(this.NUD_FurnCount); - this.tb_OWSC.Controls.Add(this.L_FurnitureCount); - this.tb_OWSC.Controls.Add(this.tc_OWSC); - this.tb_OWSC.Controls.Add(this.NUD_NPCCount); - this.tb_OWSC.Controls.Add(this.L_NPCCount); - this.tb_OWSC.Location = new System.Drawing.Point(4, 22); - this.tb_OWSC.Name = "tb_OWSC"; - this.tb_OWSC.Padding = new System.Windows.Forms.Padding(3); - this.tb_OWSC.Size = new System.Drawing.Size(486, 471); - this.tb_OWSC.TabIndex = 1; - this.tb_OWSC.Text = "OW & SC"; - this.tb_OWSC.UseVisualStyleBackColor = true; - // - // B_ResetOverworlds - // - this.B_ResetOverworlds.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.B_ResetOverworlds.Location = new System.Drawing.Point(413, 157); - this.B_ResetOverworlds.Name = "B_ResetOverworlds"; - this.B_ResetOverworlds.Size = new System.Drawing.Size(62, 42); - this.B_ResetOverworlds.TabIndex = 467; - this.B_ResetOverworlds.Text = "Reset\r\nAll"; - this.B_ResetOverworlds.UseVisualStyleBackColor = true; - this.B_ResetOverworlds.Click += new System.EventHandler(this.B_ResetOverworlds_Click); - // - // CHK_EditRAW - // - this.CHK_EditRAW.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.CHK_EditRAW.AutoSize = true; - this.CHK_EditRAW.CheckAlign = System.Drawing.ContentAlignment.MiddleRight; - this.CHK_EditRAW.Location = new System.Drawing.Point(380, 134); - this.CHK_EditRAW.Name = "CHK_EditRAW"; - this.CHK_EditRAW.Size = new System.Drawing.Size(95, 17); - this.CHK_EditRAW.TabIndex = 430; - this.CHK_EditRAW.Text = "Edit Raw Data"; - this.CHK_EditRAW.UseVisualStyleBackColor = true; - this.CHK_EditRAW.CheckedChanged += new System.EventHandler(this.changeRAWCheck); - // - // NUD_UnkCount - // - this.NUD_UnkCount.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.NUD_UnkCount.Location = new System.Drawing.Point(422, 108); - this.NUD_UnkCount.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.NUD_UnkCount.Name = "NUD_UnkCount"; - this.NUD_UnkCount.Size = new System.Drawing.Size(53, 20); - this.NUD_UnkCount.TabIndex = 428; - this.NUD_UnkCount.ValueChanged += new System.EventHandler(this.changeUnkCount); - // - // L_Unk - // - this.L_Unk.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.L_Unk.Location = new System.Drawing.Point(350, 108); - this.L_Unk.Name = "L_Unk"; - this.L_Unk.Size = new System.Drawing.Size(66, 15); - this.L_Unk.TabIndex = 429; - this.L_Unk.Text = "Unk:"; - this.L_Unk.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_OWEntities - // - this.L_OWEntities.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.L_OWEntities.AutoSize = true; - this.L_OWEntities.Location = new System.Drawing.Point(357, 13); - this.L_OWEntities.Name = "L_OWEntities"; - this.L_OWEntities.Size = new System.Drawing.Size(118, 13); - this.L_OWEntities.TabIndex = 423; - this.L_OWEntities.Text = "Overworld Entity Count:"; - // - // NUD_TrigCount - // - this.NUD_TrigCount.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.NUD_TrigCount.Location = new System.Drawing.Point(422, 88); - this.NUD_TrigCount.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.NUD_TrigCount.Name = "NUD_TrigCount"; - this.NUD_TrigCount.Size = new System.Drawing.Size(53, 20); - this.NUD_TrigCount.TabIndex = 421; - this.NUD_TrigCount.ValueChanged += new System.EventHandler(this.changeTriggerCount); - // - // L_TriggerCount - // - this.L_TriggerCount.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.L_TriggerCount.Location = new System.Drawing.Point(350, 88); - this.L_TriggerCount.Name = "L_TriggerCount"; - this.L_TriggerCount.Size = new System.Drawing.Size(66, 15); - this.L_TriggerCount.TabIndex = 422; - this.L_TriggerCount.Text = "Trigger:"; - this.L_TriggerCount.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_WarpCount - // - this.NUD_WarpCount.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.NUD_WarpCount.Location = new System.Drawing.Point(422, 68); - this.NUD_WarpCount.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.NUD_WarpCount.Name = "NUD_WarpCount"; - this.NUD_WarpCount.Size = new System.Drawing.Size(53, 20); - this.NUD_WarpCount.TabIndex = 419; - this.NUD_WarpCount.ValueChanged += new System.EventHandler(this.changeWarpCount); - // - // L_WarpCount - // - this.L_WarpCount.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.L_WarpCount.Location = new System.Drawing.Point(350, 68); - this.L_WarpCount.Name = "L_WarpCount"; - this.L_WarpCount.Size = new System.Drawing.Size(66, 15); - this.L_WarpCount.TabIndex = 420; - this.L_WarpCount.Text = "Warp:"; - this.L_WarpCount.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_FurnCount - // - this.NUD_FurnCount.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.NUD_FurnCount.Location = new System.Drawing.Point(422, 28); - this.NUD_FurnCount.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.NUD_FurnCount.Name = "NUD_FurnCount"; - this.NUD_FurnCount.Size = new System.Drawing.Size(53, 20); - this.NUD_FurnCount.TabIndex = 417; - this.NUD_FurnCount.ValueChanged += new System.EventHandler(this.changeFurnitureCount); - // - // L_FurnitureCount - // - this.L_FurnitureCount.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.L_FurnitureCount.Location = new System.Drawing.Point(350, 28); - this.L_FurnitureCount.Name = "L_FurnitureCount"; - this.L_FurnitureCount.Size = new System.Drawing.Size(66, 15); - this.L_FurnitureCount.TabIndex = 418; - this.L_FurnitureCount.Text = "Furniture:"; - this.L_FurnitureCount.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // tc_OWSC - // - this.tc_OWSC.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tc_OWSC.Controls.Add(this.tb_Furniture); - this.tc_OWSC.Controls.Add(this.tb_NPC); - this.tc_OWSC.Controls.Add(this.tb_Warp); - this.tc_OWSC.Controls.Add(this.tb_Trigger1); - this.tc_OWSC.Controls.Add(this.tb_Trigger2); - this.tc_OWSC.Controls.Add(this.tb_Script); - this.tc_OWSC.Location = new System.Drawing.Point(6, 6); - this.tc_OWSC.Name = "tc_OWSC"; - this.tc_OWSC.SelectedIndex = 0; - this.tc_OWSC.Size = new System.Drawing.Size(345, 462); - this.tc_OWSC.TabIndex = 415; - // - // tb_Furniture - // - this.tb_Furniture.Controls.Add(this.GB_F); - this.tb_Furniture.Controls.Add(this.NUD_FE); - this.tb_Furniture.Controls.Add(this.L_FE); - this.tb_Furniture.Location = new System.Drawing.Point(4, 22); - this.tb_Furniture.Name = "tb_Furniture"; - this.tb_Furniture.Padding = new System.Windows.Forms.Padding(3); - this.tb_Furniture.Size = new System.Drawing.Size(337, 436); - this.tb_Furniture.TabIndex = 0; - this.tb_Furniture.Text = "Furniture"; - this.tb_Furniture.UseVisualStyleBackColor = true; - // - // GB_F - // - this.GB_F.Controls.Add(this.B_ResetFurniture); - this.GB_F.Controls.Add(this.NUD_FWY); - this.GB_F.Controls.Add(this.L_FWY); - this.GB_F.Controls.Add(this.NUD_FWX); - this.GB_F.Controls.Add(this.L_FWX); - this.GB_F.Controls.Add(this.NUD_FY); - this.GB_F.Controls.Add(this.L_FY); - this.GB_F.Controls.Add(this.NUD_FX); - this.GB_F.Controls.Add(this.L_FX); - this.GB_F.Controls.Add(this.RTB_F); - this.GB_F.Location = new System.Drawing.Point(6, 40); - this.GB_F.Name = "GB_F"; - this.GB_F.Size = new System.Drawing.Size(325, 323); - this.GB_F.TabIndex = 437; - this.GB_F.TabStop = false; - this.GB_F.Text = "Info:"; - // - // B_ResetFurniture - // - this.B_ResetFurniture.Location = new System.Drawing.Point(257, 275); - this.B_ResetFurniture.Name = "B_ResetFurniture"; - this.B_ResetFurniture.Size = new System.Drawing.Size(62, 42); - this.B_ResetFurniture.TabIndex = 470; - this.B_ResetFurniture.Text = "Reset\r\nFurniture"; - this.B_ResetFurniture.UseVisualStyleBackColor = true; - this.B_ResetFurniture.Click += new System.EventHandler(this.B_ResetFurniture_Click); - // - // NUD_FWY - // - this.NUD_FWY.Location = new System.Drawing.Point(125, 216); - this.NUD_FWY.Maximum = new decimal(new int[] { - 65535, - 0, - 0, - 0}); - this.NUD_FWY.Name = "NUD_FWY"; - this.NUD_FWY.Size = new System.Drawing.Size(53, 20); - this.NUD_FWY.TabIndex = 469; - // - // L_FWY - // - this.L_FWY.Location = new System.Drawing.Point(43, 216); - this.L_FWY.Name = "L_FWY"; - this.L_FWY.Size = new System.Drawing.Size(76, 16); - this.L_FWY.TabIndex = 468; - this.L_FWY.Text = "FwY:"; - this.L_FWY.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_FWX - // - this.NUD_FWX.Location = new System.Drawing.Point(125, 190); - this.NUD_FWX.Maximum = new decimal(new int[] { - 65535, - 0, - 0, - 0}); - this.NUD_FWX.Name = "NUD_FWX"; - this.NUD_FWX.Size = new System.Drawing.Size(53, 20); - this.NUD_FWX.TabIndex = 467; - // - // L_FWX - // - this.L_FWX.Location = new System.Drawing.Point(43, 190); - this.L_FWX.Name = "L_FWX"; - this.L_FWX.Size = new System.Drawing.Size(76, 16); - this.L_FWX.TabIndex = 466; - this.L_FWX.Text = "FwX:"; - this.L_FWX.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_FY - // - this.NUD_FY.Location = new System.Drawing.Point(125, 164); - this.NUD_FY.Maximum = new decimal(new int[] { - 65535, - 0, - 0, - 0}); - this.NUD_FY.Name = "NUD_FY"; - this.NUD_FY.Size = new System.Drawing.Size(53, 20); - this.NUD_FY.TabIndex = 463; - // - // L_FY - // - this.L_FY.Location = new System.Drawing.Point(43, 164); - this.L_FY.Name = "L_FY"; - this.L_FY.Size = new System.Drawing.Size(76, 16); - this.L_FY.TabIndex = 462; - this.L_FY.Text = "Y Coordinate:"; - this.L_FY.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_FX - // - this.NUD_FX.Location = new System.Drawing.Point(125, 138); - this.NUD_FX.Maximum = new decimal(new int[] { - 65535, - 0, - 0, - 0}); - this.NUD_FX.Name = "NUD_FX"; - this.NUD_FX.Size = new System.Drawing.Size(53, 20); - this.NUD_FX.TabIndex = 461; - // - // L_FX - // - this.L_FX.Location = new System.Drawing.Point(43, 138); - this.L_FX.Name = "L_FX"; - this.L_FX.Size = new System.Drawing.Size(76, 16); - this.L_FX.TabIndex = 460; - this.L_FX.Text = "X Coordinate:"; - this.L_FX.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // RTB_F - // - this.RTB_F.Font = new System.Drawing.Font("Courier New", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.RTB_F.Location = new System.Drawing.Point(6, 275); - this.RTB_F.Name = "RTB_F"; - this.RTB_F.Size = new System.Drawing.Size(245, 42); - this.RTB_F.TabIndex = 425; - this.RTB_F.Text = "00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF 00 11 22 33 44 55 66 77 88 99 AA " + - "BB CC DD EE FF 00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF "; - this.RTB_F.Visible = false; - this.RTB_F.TextChanged += new System.EventHandler(this.changeRAW_F); - // - // NUD_FE - // - this.NUD_FE.Location = new System.Drawing.Point(75, 11); - this.NUD_FE.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.NUD_FE.Name = "NUD_FE"; - this.NUD_FE.Size = new System.Drawing.Size(53, 20); - this.NUD_FE.TabIndex = 423; - this.NUD_FE.ValueChanged += new System.EventHandler(this.changeFurniture); - // - // L_FE - // - this.L_FE.Location = new System.Drawing.Point(3, 11); - this.L_FE.Name = "L_FE"; - this.L_FE.Size = new System.Drawing.Size(66, 15); - this.L_FE.TabIndex = 424; - this.L_FE.Text = "Entry:"; - this.L_FE.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // tb_NPC - // - this.tb_NPC.Controls.Add(this.GB_N); - this.tb_NPC.Controls.Add(this.NUD_NE); - this.tb_NPC.Controls.Add(this.L_NE); - this.tb_NPC.Location = new System.Drawing.Point(4, 22); - this.tb_NPC.Name = "tb_NPC"; - this.tb_NPC.Padding = new System.Windows.Forms.Padding(3); - this.tb_NPC.Size = new System.Drawing.Size(337, 436); - this.tb_NPC.TabIndex = 1; - this.tb_NPC.Text = "NPC"; - this.tb_NPC.UseVisualStyleBackColor = true; - // - // GB_N - // - this.GB_N.Controls.Add(this.B_ResetNPC); - this.GB_N.Controls.Add(this.NUD_NMove2); - this.GB_N.Controls.Add(this.L_Move2); - this.GB_N.Controls.Add(this.NUD_NMove1); - this.GB_N.Controls.Add(this.L_Move1); - this.GB_N.Controls.Add(this.TB_Leash); - this.GB_N.Controls.Add(this.L_LeashInfo); - this.GB_N.Controls.Add(this.L_NDeg); - this.GB_N.Controls.Add(this.TB_NDeg); - this.GB_N.Controls.Add(this.NUD_NRange); - this.GB_N.Controls.Add(this.L_Range); - this.GB_N.Controls.Add(this.L_ModelAsHex); - this.GB_N.Controls.Add(this.NUD_NFlag); - this.GB_N.Controls.Add(this.L_NFlag); - this.GB_N.Controls.Add(this.NUD_NScript); - this.GB_N.Controls.Add(this.L_NScript); - this.GB_N.Controls.Add(this.NUD_NFace); - this.GB_N.Controls.Add(this.L_NFaceDirection); - this.GB_N.Controls.Add(this.NUD_NY); - this.GB_N.Controls.Add(this.L_NY); - this.GB_N.Controls.Add(this.NUD_NX); - this.GB_N.Controls.Add(this.L_NX); - this.GB_N.Controls.Add(this.NUD_NModel); - this.GB_N.Controls.Add(this.L_NModel); - this.GB_N.Controls.Add(this.RTB_N); - this.GB_N.Controls.Add(this.NUD_NID); - this.GB_N.Controls.Add(this.L_NID); - this.GB_N.Location = new System.Drawing.Point(6, 40); - this.GB_N.Name = "GB_N"; - this.GB_N.Size = new System.Drawing.Size(325, 323); - this.GB_N.TabIndex = 436; - this.GB_N.TabStop = false; - this.GB_N.Text = "Info:"; - // - // B_ResetNPC - // - this.B_ResetNPC.Location = new System.Drawing.Point(257, 275); - this.B_ResetNPC.Name = "B_ResetNPC"; - this.B_ResetNPC.Size = new System.Drawing.Size(62, 42); - this.B_ResetNPC.TabIndex = 458; - this.B_ResetNPC.Text = "Reset\r\nNPC"; - this.B_ResetNPC.UseVisualStyleBackColor = true; - this.B_ResetNPC.Click += new System.EventHandler(this.B_ResetNPC_Click); - // - // NUD_NMove2 - // - this.NUD_NMove2.Location = new System.Drawing.Point(234, 146); - this.NUD_NMove2.Maximum = new decimal(new int[] { - 65535, - 0, - 0, - 0}); - this.NUD_NMove2.Name = "NUD_NMove2"; - this.NUD_NMove2.Size = new System.Drawing.Size(53, 20); - this.NUD_NMove2.TabIndex = 457; - // - // L_Move2 - // - this.L_Move2.Location = new System.Drawing.Point(152, 146); - this.L_Move2.Name = "L_Move2"; - this.L_Move2.Size = new System.Drawing.Size(76, 16); - this.L_Move2.TabIndex = 456; - this.L_Move2.Text = "Move2:"; - this.L_Move2.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_NMove1 - // - this.NUD_NMove1.Location = new System.Drawing.Point(234, 120); - this.NUD_NMove1.Maximum = new decimal(new int[] { - 65535, - 0, - 0, - 0}); - this.NUD_NMove1.Name = "NUD_NMove1"; - this.NUD_NMove1.Size = new System.Drawing.Size(53, 20); - this.NUD_NMove1.TabIndex = 455; - // - // L_Move1 - // - this.L_Move1.Location = new System.Drawing.Point(152, 120); - this.L_Move1.Name = "L_Move1"; - this.L_Move1.Size = new System.Drawing.Size(76, 16); - this.L_Move1.TabIndex = 454; - this.L_Move1.Text = "Move1:"; - this.L_Move1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // TB_Leash - // - this.TB_Leash.Location = new System.Drawing.Point(93, 250); - this.TB_Leash.Name = "TB_Leash"; - this.TB_Leash.ReadOnly = true; - this.TB_Leash.Size = new System.Drawing.Size(158, 20); - this.TB_Leash.TabIndex = 453; - // - // L_LeashInfo - // - this.L_LeashInfo.Location = new System.Drawing.Point(11, 251); - this.L_LeashInfo.Name = "L_LeashInfo"; - this.L_LeashInfo.Size = new System.Drawing.Size(76, 16); - this.L_LeashInfo.TabIndex = 452; - this.L_LeashInfo.Text = "Leash Info:"; - this.L_LeashInfo.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_NDeg - // - this.L_NDeg.Location = new System.Drawing.Point(11, 225); - this.L_NDeg.Name = "L_NDeg"; - this.L_NDeg.Size = new System.Drawing.Size(76, 16); - this.L_NDeg.TabIndex = 451; - this.L_NDeg.Text = "Degrees (?):"; - this.L_NDeg.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // TB_NDeg - // - this.TB_NDeg.Location = new System.Drawing.Point(93, 224); - this.TB_NDeg.Name = "TB_NDeg"; - this.TB_NDeg.ReadOnly = true; - this.TB_NDeg.Size = new System.Drawing.Size(53, 20); - this.TB_NDeg.TabIndex = 437; - // - // NUD_NRange - // - this.NUD_NRange.Location = new System.Drawing.Point(93, 146); - this.NUD_NRange.Maximum = new decimal(new int[] { - 65535, - 0, - 0, - 0}); - this.NUD_NRange.Name = "NUD_NRange"; - this.NUD_NRange.Size = new System.Drawing.Size(53, 20); - this.NUD_NRange.TabIndex = 450; - // - // L_Range - // - this.L_Range.Location = new System.Drawing.Point(11, 146); - this.L_Range.Name = "L_Range"; - this.L_Range.Size = new System.Drawing.Size(76, 16); - this.L_Range.TabIndex = 449; - this.L_Range.Text = "Sight Range:"; - this.L_Range.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_ModelAsHex - // - this.L_ModelAsHex.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.L_ModelAsHex.AutoSize = true; - this.L_ModelAsHex.Location = new System.Drawing.Point(152, 44); - this.L_ModelAsHex.Name = "L_ModelAsHex"; - this.L_ModelAsHex.Size = new System.Drawing.Size(29, 13); - this.L_ModelAsHex.TabIndex = 448; - this.L_ModelAsHex.Text = "HEX"; - // - // NUD_NFlag - // - this.NUD_NFlag.Location = new System.Drawing.Point(93, 68); - this.NUD_NFlag.Maximum = new decimal(new int[] { - 65535, - 0, - 0, - 0}); - this.NUD_NFlag.Name = "NUD_NFlag"; - this.NUD_NFlag.Size = new System.Drawing.Size(53, 20); - this.NUD_NFlag.TabIndex = 447; - // - // L_NFlag - // - this.L_NFlag.Location = new System.Drawing.Point(11, 68); - this.L_NFlag.Name = "L_NFlag"; - this.L_NFlag.Size = new System.Drawing.Size(76, 16); - this.L_NFlag.TabIndex = 446; - this.L_NFlag.Text = "Spawn Flag:"; - this.L_NFlag.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_NScript - // - this.NUD_NScript.Location = new System.Drawing.Point(93, 94); - this.NUD_NScript.Maximum = new decimal(new int[] { - 65535, - 0, - 0, - 0}); - this.NUD_NScript.Name = "NUD_NScript"; - this.NUD_NScript.Size = new System.Drawing.Size(53, 20); - this.NUD_NScript.TabIndex = 445; - // - // L_NScript - // - this.L_NScript.Location = new System.Drawing.Point(11, 94); - this.L_NScript.Name = "L_NScript"; - this.L_NScript.Size = new System.Drawing.Size(76, 16); - this.L_NScript.TabIndex = 444; - this.L_NScript.Text = "Script:"; - this.L_NScript.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_NFace - // - this.NUD_NFace.Location = new System.Drawing.Point(93, 120); - this.NUD_NFace.Maximum = new decimal(new int[] { - 65535, - 0, - 0, - 0}); - this.NUD_NFace.Name = "NUD_NFace"; - this.NUD_NFace.Size = new System.Drawing.Size(53, 20); - this.NUD_NFace.TabIndex = 443; - // - // L_NFaceDirection - // - this.L_NFaceDirection.Location = new System.Drawing.Point(11, 120); - this.L_NFaceDirection.Name = "L_NFaceDirection"; - this.L_NFaceDirection.Size = new System.Drawing.Size(76, 16); - this.L_NFaceDirection.TabIndex = 442; - this.L_NFaceDirection.Text = "Facing:"; - this.L_NFaceDirection.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_NY - // - this.NUD_NY.Location = new System.Drawing.Point(93, 198); - this.NUD_NY.Maximum = new decimal(new int[] { - 65535, - 0, - 0, - 0}); - this.NUD_NY.Name = "NUD_NY"; - this.NUD_NY.Size = new System.Drawing.Size(53, 20); - this.NUD_NY.TabIndex = 441; - // - // L_NY - // - this.L_NY.Location = new System.Drawing.Point(11, 198); - this.L_NY.Name = "L_NY"; - this.L_NY.Size = new System.Drawing.Size(76, 16); - this.L_NY.TabIndex = 440; - this.L_NY.Text = "Y Coordinate:"; - this.L_NY.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_NX - // - this.NUD_NX.Location = new System.Drawing.Point(93, 172); - this.NUD_NX.Maximum = new decimal(new int[] { - 65535, - 0, - 0, - 0}); - this.NUD_NX.Name = "NUD_NX"; - this.NUD_NX.Size = new System.Drawing.Size(53, 20); - this.NUD_NX.TabIndex = 439; - // - // L_NX - // - this.L_NX.Location = new System.Drawing.Point(11, 172); - this.L_NX.Name = "L_NX"; - this.L_NX.Size = new System.Drawing.Size(76, 16); - this.L_NX.TabIndex = 438; - this.L_NX.Text = "X Coordinate:"; - this.L_NX.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_NModel - // - this.NUD_NModel.Location = new System.Drawing.Point(93, 42); - this.NUD_NModel.Maximum = new decimal(new int[] { - 65535, - 0, - 0, - 0}); - this.NUD_NModel.Name = "NUD_NModel"; - this.NUD_NModel.Size = new System.Drawing.Size(53, 20); - this.NUD_NModel.TabIndex = 437; - this.NUD_NModel.ValueChanged += new System.EventHandler(this.changeNPC_Model); - // - // L_NModel - // - this.L_NModel.Location = new System.Drawing.Point(11, 42); - this.L_NModel.Name = "L_NModel"; - this.L_NModel.Size = new System.Drawing.Size(76, 16); - this.L_NModel.TabIndex = 436; - this.L_NModel.Text = "Model:"; - this.L_NModel.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // RTB_N - // - this.RTB_N.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.RTB_N.Font = new System.Drawing.Font("Courier New", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.RTB_N.Location = new System.Drawing.Point(6, 275); - this.RTB_N.Name = "RTB_N"; - this.RTB_N.Size = new System.Drawing.Size(245, 42); - this.RTB_N.TabIndex = 414; - this.RTB_N.Text = "00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF 00 11 22 33 44 55 66 77 88 99 AA " + - "BB CC DD EE FF 00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF "; - this.RTB_N.Visible = false; - this.RTB_N.TextChanged += new System.EventHandler(this.changeRAW_N); - // - // NUD_NID - // - this.NUD_NID.Location = new System.Drawing.Point(93, 16); - this.NUD_NID.Maximum = new decimal(new int[] { - 65535, - 0, - 0, - 0}); - this.NUD_NID.Name = "NUD_NID"; - this.NUD_NID.Size = new System.Drawing.Size(53, 20); - this.NUD_NID.TabIndex = 435; - this.NUD_NID.ValueChanged += new System.EventHandler(this.changeNPC_ID); - // - // L_NID - // - this.L_NID.Location = new System.Drawing.Point(11, 16); - this.L_NID.Name = "L_NID"; - this.L_NID.Size = new System.Drawing.Size(76, 16); - this.L_NID.TabIndex = 433; - this.L_NID.Text = "Entity ID:"; - this.L_NID.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_NE - // - this.NUD_NE.Location = new System.Drawing.Point(75, 11); - this.NUD_NE.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.NUD_NE.Name = "NUD_NE"; - this.NUD_NE.Size = new System.Drawing.Size(53, 20); - this.NUD_NE.TabIndex = 425; - this.NUD_NE.ValueChanged += new System.EventHandler(this.changeNPC); - // - // L_NE - // - this.L_NE.Location = new System.Drawing.Point(3, 11); - this.L_NE.Name = "L_NE"; - this.L_NE.Size = new System.Drawing.Size(66, 15); - this.L_NE.TabIndex = 426; - this.L_NE.Text = "Entry:"; - this.L_NE.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // tb_Warp - // - this.tb_Warp.Controls.Add(this.GB_W); - this.tb_Warp.Controls.Add(this.NUD_WE); - this.tb_Warp.Controls.Add(this.L_WE); - this.tb_Warp.Location = new System.Drawing.Point(4, 22); - this.tb_Warp.Name = "tb_Warp"; - this.tb_Warp.Size = new System.Drawing.Size(337, 436); - this.tb_Warp.TabIndex = 2; - this.tb_Warp.Text = "Warp"; - this.tb_Warp.UseVisualStyleBackColor = true; - // - // GB_W - // - this.GB_W.Controls.Add(this.B_ResetWarp); - this.GB_W.Controls.Add(this.L_WpY); - this.GB_W.Controls.Add(this.L_WpX); - this.GB_W.Controls.Add(this.NUD_WY); - this.GB_W.Controls.Add(this.L_WY); - this.GB_W.Controls.Add(this.NUD_WX); - this.GB_W.Controls.Add(this.L_WX); - this.GB_W.Controls.Add(this.RTB_W); - this.GB_W.Controls.Add(this.L_WarpDest); - this.GB_W.Controls.Add(this.L_DestMap); - this.GB_W.Controls.Add(this.NUD_WTile); - this.GB_W.Controls.Add(this.L_DestWarpTile); - this.GB_W.Controls.Add(this.NUD_WMap); - this.GB_W.Location = new System.Drawing.Point(6, 40); - this.GB_W.Name = "GB_W"; - this.GB_W.Size = new System.Drawing.Size(325, 323); - this.GB_W.TabIndex = 438; - this.GB_W.TabStop = false; - this.GB_W.Text = "Info:"; - // - // B_ResetWarp - // - this.B_ResetWarp.Location = new System.Drawing.Point(256, 275); - this.B_ResetWarp.Name = "B_ResetWarp"; - this.B_ResetWarp.Size = new System.Drawing.Size(62, 42); - this.B_ResetWarp.TabIndex = 466; - this.B_ResetWarp.Text = "Reset\r\nWarp"; - this.B_ResetWarp.UseVisualStyleBackColor = true; - this.B_ResetWarp.Click += new System.EventHandler(this.B_ResetWarp_Click); - // - // L_WpY - // - this.L_WpY.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.L_WpY.AutoSize = true; - this.L_WpY.Location = new System.Drawing.Point(253, 191); - this.L_WpY.Name = "L_WpY"; - this.L_WpY.Size = new System.Drawing.Size(31, 13); - this.L_WpY.TabIndex = 465; - this.L_WpY.Text = "#/18"; - // - // L_WpX - // - this.L_WpX.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.L_WpX.AutoSize = true; - this.L_WpX.Location = new System.Drawing.Point(253, 165); - this.L_WpX.Name = "L_WpX"; - this.L_WpX.Size = new System.Drawing.Size(31, 13); - this.L_WpX.TabIndex = 464; - this.L_WpX.Text = "#/18"; - // - // NUD_WY - // - this.NUD_WY.Increment = new decimal(new int[] { - 18, - 0, - 0, - 0}); - this.NUD_WY.Location = new System.Drawing.Point(125, 189); - this.NUD_WY.Maximum = new decimal(new int[] { - 65535, - 0, - 0, - 0}); - this.NUD_WY.Name = "NUD_WY"; - this.NUD_WY.Size = new System.Drawing.Size(53, 20); - this.NUD_WY.TabIndex = 463; - this.NUD_WY.ValueChanged += new System.EventHandler(this.changeWarp_Y); - // - // L_WY - // - this.L_WY.Location = new System.Drawing.Point(43, 189); - this.L_WY.Name = "L_WY"; - this.L_WY.Size = new System.Drawing.Size(76, 16); - this.L_WY.TabIndex = 462; - this.L_WY.Text = "Y Coordinate:"; - this.L_WY.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_WX - // - this.NUD_WX.Increment = new decimal(new int[] { - 18, - 0, - 0, - 0}); - this.NUD_WX.Location = new System.Drawing.Point(125, 163); - this.NUD_WX.Maximum = new decimal(new int[] { - 65535, - 0, - 0, - 0}); - this.NUD_WX.Name = "NUD_WX"; - this.NUD_WX.Size = new System.Drawing.Size(53, 20); - this.NUD_WX.TabIndex = 461; - this.NUD_WX.ValueChanged += new System.EventHandler(this.changeWarp_X); - // - // L_WX - // - this.L_WX.Location = new System.Drawing.Point(43, 163); - this.L_WX.Name = "L_WX"; - this.L_WX.Size = new System.Drawing.Size(76, 16); - this.L_WX.TabIndex = 460; - this.L_WX.Text = "X Coordinate:"; - this.L_WX.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // RTB_W - // - this.RTB_W.Font = new System.Drawing.Font("Courier New", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.RTB_W.Location = new System.Drawing.Point(6, 275); - this.RTB_W.Name = "RTB_W"; - this.RTB_W.Size = new System.Drawing.Size(245, 42); - this.RTB_W.TabIndex = 425; - this.RTB_W.Text = "00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF 00 11 22 33 44 55 66 77 88 99 AA " + - "BB CC DD EE FF 00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF "; - this.RTB_W.Visible = false; - this.RTB_W.TextChanged += new System.EventHandler(this.changeRAW_W); - // - // L_WarpDest - // - this.L_WarpDest.Location = new System.Drawing.Point(58, 31); - this.L_WarpDest.Name = "L_WarpDest"; - this.L_WarpDest.Size = new System.Drawing.Size(120, 15); - this.L_WarpDest.TabIndex = 432; - this.L_WarpDest.Text = "Dest:"; - this.L_WarpDest.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.L_WarpDest.DoubleClick += new System.EventHandler(this.dclickDestMap); - // - // L_DestMap - // - this.L_DestMap.Location = new System.Drawing.Point(-1, 50); - this.L_DestMap.Name = "L_DestMap"; - this.L_DestMap.Size = new System.Drawing.Size(120, 15); - this.L_DestMap.TabIndex = 428; - this.L_DestMap.Text = "Destination Map:"; - this.L_DestMap.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_WTile - // - this.NUD_WTile.Location = new System.Drawing.Point(125, 70); - this.NUD_WTile.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.NUD_WTile.Name = "NUD_WTile"; - this.NUD_WTile.Size = new System.Drawing.Size(53, 20); - this.NUD_WTile.TabIndex = 431; - // - // L_DestWarpTile - // - this.L_DestWarpTile.Location = new System.Drawing.Point(-1, 71); - this.L_DestWarpTile.Name = "L_DestWarpTile"; - this.L_DestWarpTile.Size = new System.Drawing.Size(120, 15); - this.L_DestWarpTile.TabIndex = 429; - this.L_DestWarpTile.Text = "Destination WarpTile:"; - this.L_DestWarpTile.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_WMap - // - this.NUD_WMap.Location = new System.Drawing.Point(125, 49); - this.NUD_WMap.Maximum = new decimal(new int[] { - 999, - 0, - 0, - 0}); - this.NUD_WMap.Name = "NUD_WMap"; - this.NUD_WMap.Size = new System.Drawing.Size(53, 20); - this.NUD_WMap.TabIndex = 430; - // - // NUD_WE - // - this.NUD_WE.Location = new System.Drawing.Point(75, 11); - this.NUD_WE.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.NUD_WE.Name = "NUD_WE"; - this.NUD_WE.Size = new System.Drawing.Size(53, 20); - this.NUD_WE.TabIndex = 425; - this.NUD_WE.ValueChanged += new System.EventHandler(this.changeWarp); - // - // L_WE - // - this.L_WE.Location = new System.Drawing.Point(3, 11); - this.L_WE.Name = "L_WE"; - this.L_WE.Size = new System.Drawing.Size(66, 15); - this.L_WE.TabIndex = 426; - this.L_WE.Text = "Entry:"; - this.L_WE.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // tb_Trigger1 - // - this.tb_Trigger1.Controls.Add(this.GB_T1); - this.tb_Trigger1.Controls.Add(this.NUD_TE); - this.tb_Trigger1.Controls.Add(this.L_TE); - this.tb_Trigger1.Location = new System.Drawing.Point(4, 22); - this.tb_Trigger1.Name = "tb_Trigger1"; - this.tb_Trigger1.Size = new System.Drawing.Size(337, 436); - this.tb_Trigger1.TabIndex = 3; - this.tb_Trigger1.Text = "Trigger1"; - this.tb_Trigger1.UseVisualStyleBackColor = true; - // - // GB_T1 - // - this.GB_T1.Controls.Add(this.B_ResetTrigger1); - this.GB_T1.Controls.Add(this.NUD_T1Y); - this.GB_T1.Controls.Add(this.L_T1Y); - this.GB_T1.Controls.Add(this.NUD_T1X); - this.GB_T1.Controls.Add(this.L_T1X); - this.GB_T1.Controls.Add(this.RTB_T1); - this.GB_T1.Location = new System.Drawing.Point(6, 40); - this.GB_T1.Name = "GB_T1"; - this.GB_T1.Size = new System.Drawing.Size(325, 323); - this.GB_T1.TabIndex = 439; - this.GB_T1.TabStop = false; - this.GB_T1.Text = "Info:"; - // - // B_ResetTrigger1 - // - this.B_ResetTrigger1.Location = new System.Drawing.Point(257, 275); - this.B_ResetTrigger1.Name = "B_ResetTrigger1"; - this.B_ResetTrigger1.Size = new System.Drawing.Size(62, 42); - this.B_ResetTrigger1.TabIndex = 467; - this.B_ResetTrigger1.Text = "Reset\r\nTrigger1"; - this.B_ResetTrigger1.UseVisualStyleBackColor = true; - this.B_ResetTrigger1.Click += new System.EventHandler(this.B_ResetTrigger1_Click); - // - // NUD_T1Y - // - this.NUD_T1Y.Location = new System.Drawing.Point(143, 164); - this.NUD_T1Y.Maximum = new decimal(new int[] { - 65535, - 0, - 0, - 0}); - this.NUD_T1Y.Name = "NUD_T1Y"; - this.NUD_T1Y.Size = new System.Drawing.Size(53, 20); - this.NUD_T1Y.TabIndex = 445; - // - // L_T1Y - // - this.L_T1Y.Location = new System.Drawing.Point(61, 164); - this.L_T1Y.Name = "L_T1Y"; - this.L_T1Y.Size = new System.Drawing.Size(76, 16); - this.L_T1Y.TabIndex = 444; - this.L_T1Y.Text = "Y Coordinate:"; - this.L_T1Y.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_T1X - // - this.NUD_T1X.Location = new System.Drawing.Point(143, 138); - this.NUD_T1X.Maximum = new decimal(new int[] { - 65535, - 0, - 0, - 0}); - this.NUD_T1X.Name = "NUD_T1X"; - this.NUD_T1X.Size = new System.Drawing.Size(53, 20); - this.NUD_T1X.TabIndex = 443; - // - // L_T1X - // - this.L_T1X.Location = new System.Drawing.Point(61, 138); - this.L_T1X.Name = "L_T1X"; - this.L_T1X.Size = new System.Drawing.Size(76, 16); - this.L_T1X.TabIndex = 442; - this.L_T1X.Text = "X Coordinate:"; - this.L_T1X.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // RTB_T1 - // - this.RTB_T1.Font = new System.Drawing.Font("Courier New", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.RTB_T1.Location = new System.Drawing.Point(6, 275); - this.RTB_T1.Name = "RTB_T1"; - this.RTB_T1.Size = new System.Drawing.Size(245, 42); - this.RTB_T1.TabIndex = 425; - this.RTB_T1.Text = "00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF 00 11 22 33 44 55 66 77 88 99 AA " + - "BB CC DD EE FF 00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF "; - this.RTB_T1.Visible = false; - this.RTB_T1.TextChanged += new System.EventHandler(this.changeRAW_T1); - // - // NUD_TE - // - this.NUD_TE.Location = new System.Drawing.Point(75, 11); - this.NUD_TE.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.NUD_TE.Name = "NUD_TE"; - this.NUD_TE.Size = new System.Drawing.Size(53, 20); - this.NUD_TE.TabIndex = 425; - this.NUD_TE.ValueChanged += new System.EventHandler(this.changeTrigger1); - // - // L_TE - // - this.L_TE.Location = new System.Drawing.Point(3, 11); - this.L_TE.Name = "L_TE"; - this.L_TE.Size = new System.Drawing.Size(66, 15); - this.L_TE.TabIndex = 426; - this.L_TE.Text = "Entry:"; - this.L_TE.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // tb_Trigger2 - // - this.tb_Trigger2.Controls.Add(this.GB_T2); - this.tb_Trigger2.Controls.Add(this.NUD_UE); - this.tb_Trigger2.Controls.Add(this.L_UE); - this.tb_Trigger2.Location = new System.Drawing.Point(4, 22); - this.tb_Trigger2.Name = "tb_Trigger2"; - this.tb_Trigger2.Padding = new System.Windows.Forms.Padding(3); - this.tb_Trigger2.Size = new System.Drawing.Size(337, 436); - this.tb_Trigger2.TabIndex = 5; - this.tb_Trigger2.Text = "Trigger2"; - this.tb_Trigger2.UseVisualStyleBackColor = true; - // - // GB_T2 - // - this.GB_T2.Controls.Add(this.B_ResetTrigger2); - this.GB_T2.Controls.Add(this.NUD_T2Y); - this.GB_T2.Controls.Add(this.L_T2Y); - this.GB_T2.Controls.Add(this.NUD_T2X); - this.GB_T2.Controls.Add(this.L_T2X); - this.GB_T2.Controls.Add(this.RTB_T2); - this.GB_T2.Location = new System.Drawing.Point(6, 40); - this.GB_T2.Name = "GB_T2"; - this.GB_T2.Size = new System.Drawing.Size(325, 323); - this.GB_T2.TabIndex = 440; - this.GB_T2.TabStop = false; - this.GB_T2.Text = "Info:"; - // - // B_ResetTrigger2 - // - this.B_ResetTrigger2.Location = new System.Drawing.Point(257, 275); - this.B_ResetTrigger2.Name = "B_ResetTrigger2"; - this.B_ResetTrigger2.Size = new System.Drawing.Size(62, 42); - this.B_ResetTrigger2.TabIndex = 467; - this.B_ResetTrigger2.Text = "Reset\r\nTrigger2"; - this.B_ResetTrigger2.UseVisualStyleBackColor = true; - this.B_ResetTrigger2.Click += new System.EventHandler(this.B_ResetTrigger2_Click); - // - // NUD_T2Y - // - this.NUD_T2Y.Location = new System.Drawing.Point(143, 164); - this.NUD_T2Y.Maximum = new decimal(new int[] { - 65535, - 0, - 0, - 0}); - this.NUD_T2Y.Name = "NUD_T2Y"; - this.NUD_T2Y.Size = new System.Drawing.Size(53, 20); - this.NUD_T2Y.TabIndex = 445; - // - // L_T2Y - // - this.L_T2Y.Location = new System.Drawing.Point(61, 164); - this.L_T2Y.Name = "L_T2Y"; - this.L_T2Y.Size = new System.Drawing.Size(76, 16); - this.L_T2Y.TabIndex = 444; - this.L_T2Y.Text = "Y Coordinate:"; - this.L_T2Y.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_T2X - // - this.NUD_T2X.Location = new System.Drawing.Point(143, 138); - this.NUD_T2X.Maximum = new decimal(new int[] { - 65535, - 0, - 0, - 0}); - this.NUD_T2X.Name = "NUD_T2X"; - this.NUD_T2X.Size = new System.Drawing.Size(53, 20); - this.NUD_T2X.TabIndex = 443; - // - // L_T2X - // - this.L_T2X.Location = new System.Drawing.Point(61, 138); - this.L_T2X.Name = "L_T2X"; - this.L_T2X.Size = new System.Drawing.Size(76, 16); - this.L_T2X.TabIndex = 442; - this.L_T2X.Text = "X Coordinate:"; - this.L_T2X.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // RTB_T2 - // - this.RTB_T2.Font = new System.Drawing.Font("Courier New", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.RTB_T2.Location = new System.Drawing.Point(6, 275); - this.RTB_T2.Name = "RTB_T2"; - this.RTB_T2.Size = new System.Drawing.Size(245, 42); - this.RTB_T2.TabIndex = 425; - this.RTB_T2.Text = "00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF 00 11 22 33 44 55 66 77 88 99 AA " + - "BB CC DD EE FF 00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF "; - this.RTB_T2.Visible = false; - this.RTB_T2.TextChanged += new System.EventHandler(this.changeRAW_T2); - // - // NUD_UE - // - this.NUD_UE.Location = new System.Drawing.Point(75, 11); - this.NUD_UE.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.NUD_UE.Name = "NUD_UE"; - this.NUD_UE.Size = new System.Drawing.Size(53, 20); - this.NUD_UE.TabIndex = 427; - this.NUD_UE.ValueChanged += new System.EventHandler(this.changeTrigger2); - // - // L_UE - // - this.L_UE.Location = new System.Drawing.Point(3, 11); - this.L_UE.Name = "L_UE"; - this.L_UE.Size = new System.Drawing.Size(66, 15); - this.L_UE.TabIndex = 428; - this.L_UE.Text = "Entry:"; - this.L_UE.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // tb_Script - // - this.tb_Script.Controls.Add(this.RTB_OSP); - this.tb_Script.Controls.Add(this.RTB_OS); - this.tb_Script.Controls.Add(this.L_OWSCDesc); - this.tb_Script.Controls.Add(this.RTB_OWSCMD); - this.tb_Script.Location = new System.Drawing.Point(4, 22); - this.tb_Script.Name = "tb_Script"; - this.tb_Script.Size = new System.Drawing.Size(337, 436); - this.tb_Script.TabIndex = 4; - this.tb_Script.Text = "Script"; - this.tb_Script.UseVisualStyleBackColor = true; - // - // RTB_OSP - // - this.RTB_OSP.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.RTB_OSP.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.RTB_OSP.Location = new System.Drawing.Point(6, 234); - this.RTB_OSP.Name = "RTB_OSP"; - this.RTB_OSP.ReadOnly = true; - this.RTB_OSP.Size = new System.Drawing.Size(331, 202); - this.RTB_OSP.TabIndex = 425; - this.RTB_OSP.Text = "Parse Output"; - // - // RTB_OS - // - this.RTB_OS.Font = new System.Drawing.Font("Courier New", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.RTB_OS.Location = new System.Drawing.Point(97, 3); - this.RTB_OS.Name = "RTB_OS"; - this.RTB_OS.ReadOnly = true; - this.RTB_OS.Size = new System.Drawing.Size(85, 225); - this.RTB_OS.TabIndex = 424; - this.RTB_OS.Text = "Raw Data"; - // - // L_OWSCDesc - // - this.L_OWSCDesc.AutoSize = true; - this.L_OWSCDesc.Location = new System.Drawing.Point(188, 3); - this.L_OWSCDesc.Name = "L_OWSCDesc"; - this.L_OWSCDesc.Size = new System.Drawing.Size(75, 13); - this.L_OWSCDesc.TabIndex = 423; - this.L_OWSCDesc.Text = "Script Analysis"; - // - // RTB_OWSCMD - // - this.RTB_OWSCMD.Font = new System.Drawing.Font("Courier New", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.RTB_OWSCMD.Location = new System.Drawing.Point(6, 3); - this.RTB_OWSCMD.Name = "RTB_OWSCMD"; - this.RTB_OWSCMD.ReadOnly = true; - this.RTB_OWSCMD.Size = new System.Drawing.Size(85, 225); - this.RTB_OWSCMD.TabIndex = 422; - this.RTB_OWSCMD.Text = "Script CMDs"; - // - // NUD_NPCCount - // - this.NUD_NPCCount.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.NUD_NPCCount.Location = new System.Drawing.Point(422, 48); - this.NUD_NPCCount.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.NUD_NPCCount.Name = "NUD_NPCCount"; - this.NUD_NPCCount.Size = new System.Drawing.Size(53, 20); - this.NUD_NPCCount.TabIndex = 415; - this.NUD_NPCCount.ValueChanged += new System.EventHandler(this.changeNPCCount); - // - // L_NPCCount - // - this.L_NPCCount.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.L_NPCCount.Location = new System.Drawing.Point(350, 48); - this.L_NPCCount.Name = "L_NPCCount"; - this.L_NPCCount.Size = new System.Drawing.Size(66, 15); - this.L_NPCCount.TabIndex = 416; - this.L_NPCCount.Text = "NPC:"; - this.L_NPCCount.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // tb_MSC - // - this.tb_MSC.Controls.Add(this.RTB_MSP); - this.tb_MSC.Controls.Add(this.RTB_MSCMD); - this.tb_MSC.Controls.Add(this.L_MSSCDesc); - this.tb_MSC.Controls.Add(this.RTB_MS); - this.tb_MSC.Location = new System.Drawing.Point(4, 22); - this.tb_MSC.Name = "tb_MSC"; - this.tb_MSC.Size = new System.Drawing.Size(486, 471); - this.tb_MSC.TabIndex = 2; - this.tb_MSC.Text = "Map SC"; - this.tb_MSC.UseVisualStyleBackColor = true; - // - // RTB_MSP - // - this.RTB_MSP.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.RTB_MSP.Font = new System.Drawing.Font("Courier New", 8.25F); - this.RTB_MSP.Location = new System.Drawing.Point(3, 234); - this.RTB_MSP.Name = "RTB_MSP"; - this.RTB_MSP.ReadOnly = true; - this.RTB_MSP.Size = new System.Drawing.Size(483, 237); - this.RTB_MSP.TabIndex = 428; - this.RTB_MSP.Text = "Parse Output"; - // - // RTB_MSCMD - // - this.RTB_MSCMD.Font = new System.Drawing.Font("Courier New", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.RTB_MSCMD.Location = new System.Drawing.Point(3, 3); - this.RTB_MSCMD.Name = "RTB_MSCMD"; - this.RTB_MSCMD.ReadOnly = true; - this.RTB_MSCMD.Size = new System.Drawing.Size(85, 225); - this.RTB_MSCMD.TabIndex = 427; - this.RTB_MSCMD.Text = "Script CMDs"; - // - // L_MSSCDesc - // - this.L_MSSCDesc.AutoSize = true; - this.L_MSSCDesc.Location = new System.Drawing.Point(185, 3); - this.L_MSSCDesc.Name = "L_MSSCDesc"; - this.L_MSSCDesc.Size = new System.Drawing.Size(75, 13); - this.L_MSSCDesc.TabIndex = 426; - this.L_MSSCDesc.Text = "Script Analysis"; - // - // RTB_MS - // - this.RTB_MS.Font = new System.Drawing.Font("Courier New", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.RTB_MS.Location = new System.Drawing.Point(94, 3); - this.RTB_MS.Name = "RTB_MS"; - this.RTB_MS.ReadOnly = true; - this.RTB_MS.Size = new System.Drawing.Size(85, 225); - this.RTB_MS.TabIndex = 425; - this.RTB_MS.Text = "Raw Data"; - // - // tb_Encounters - // - this.tb_Encounters.Controls.Add(this.L_Encounters); - this.tb_Encounters.Location = new System.Drawing.Point(4, 22); - this.tb_Encounters.Name = "tb_Encounters"; - this.tb_Encounters.Size = new System.Drawing.Size(486, 471); - this.tb_Encounters.TabIndex = 3; - this.tb_Encounters.Text = "Encounters"; - this.tb_Encounters.UseVisualStyleBackColor = true; - // - // L_Encounters - // - this.L_Encounters.AutoSize = true; - this.L_Encounters.Location = new System.Drawing.Point(26, 26); - this.L_Encounters.Name = "L_Encounters"; - this.L_Encounters.Size = new System.Drawing.Size(241, 13); - this.L_Encounters.TabIndex = 0; - this.L_Encounters.Text = "Encounters are handled in the regular Wild Editor."; - // - // tb_File5 - // - this.tb_File5.Controls.Add(this.L_File5TabData); - this.tb_File5.Location = new System.Drawing.Point(4, 22); - this.tb_File5.Name = "tb_File5"; - this.tb_File5.Size = new System.Drawing.Size(486, 471); - this.tb_File5.TabIndex = 4; - this.tb_File5.Text = "File 5"; - this.tb_File5.UseVisualStyleBackColor = true; - // - // L_File5TabData - // - this.L_File5TabData.AutoSize = true; - this.L_File5TabData.Location = new System.Drawing.Point(26, 26); - this.L_File5TabData.Name = "L_File5TabData"; - this.L_File5TabData.Size = new System.Drawing.Size(227, 13); - this.L_File5TabData.TabIndex = 1; - this.L_File5TabData.Text = "Functionality unknown. See RAW tab for data."; - // - // tb_RAW - // - this.tb_RAW.Controls.Add(this.L_ZD); - this.tb_RAW.Controls.Add(this.L_File3); - this.tb_RAW.Controls.Add(this.L_ZDMaster); - this.tb_RAW.Controls.Add(this.L_File5); - this.tb_RAW.Controls.Add(this.L_File4); - this.tb_RAW.Controls.Add(this.L_File2); - this.tb_RAW.Controls.Add(this.L_File1); - this.tb_RAW.Controls.Add(this.RTB_ZDMaster); - this.tb_RAW.Controls.Add(this.RTB_ZD); - this.tb_RAW.Controls.Add(this.RTB_File5); - this.tb_RAW.Controls.Add(this.RTB_OWSC); - this.tb_RAW.Controls.Add(this.RTB_Encounter); - this.tb_RAW.Controls.Add(this.RTB_MapSC); - this.tb_RAW.Location = new System.Drawing.Point(4, 22); - this.tb_RAW.Name = "tb_RAW"; - this.tb_RAW.Size = new System.Drawing.Size(486, 471); - this.tb_RAW.TabIndex = 5; - this.tb_RAW.Text = "RAW"; - this.tb_RAW.UseVisualStyleBackColor = true; - // - // L_ZD - // - this.L_ZD.AutoSize = true; - this.L_ZD.Font = new System.Drawing.Font("Courier New", 8.25F); - this.L_ZD.Location = new System.Drawing.Point(140, 346); - this.L_ZD.Name = "L_ZD"; - this.L_ZD.Size = new System.Drawing.Size(35, 28); - this.L_ZD.TabIndex = 430; - this.L_ZD.Text = "X: ~\r\nY: ~"; - // - // L_File3 - // - this.L_File3.Location = new System.Drawing.Point(70, 83); - this.L_File3.Name = "L_File3"; - this.L_File3.Size = new System.Drawing.Size(141, 23); - this.L_File3.TabIndex = 429; - this.L_File3.Text = "Map Environment [3]:"; - this.L_File3.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_ZDMaster - // - this.L_ZDMaster.Location = new System.Drawing.Point(-4, 277); - this.L_ZDMaster.Name = "L_ZDMaster"; - this.L_ZDMaster.Size = new System.Drawing.Size(141, 23); - this.L_ZDMaster.TabIndex = 428; - this.L_ZDMaster.Text = "Master ZoneData Table:"; - this.L_ZDMaster.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_File5 - // - this.L_File5.Location = new System.Drawing.Point(70, 167); - this.L_File5.Name = "L_File5"; - this.L_File5.Size = new System.Drawing.Size(141, 23); - this.L_File5.TabIndex = 427; - this.L_File5.Text = "Unknown [5]:"; - this.L_File5.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_File4 - // - this.L_File4.Location = new System.Drawing.Point(70, 125); - this.L_File4.Name = "L_File4"; - this.L_File4.Size = new System.Drawing.Size(141, 23); - this.L_File4.TabIndex = 426; - this.L_File4.Text = "Encounter Data [4]:"; - this.L_File4.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_File2 - // - this.L_File2.Location = new System.Drawing.Point(70, 41); - this.L_File2.Name = "L_File2"; - this.L_File2.Size = new System.Drawing.Size(141, 23); - this.L_File2.TabIndex = 424; - this.L_File2.Text = "Overworlds [2]:"; - this.L_File2.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_File1 - // - this.L_File1.Location = new System.Drawing.Point(70, -1); - this.L_File1.Name = "L_File1"; - this.L_File1.Size = new System.Drawing.Size(141, 23); - this.L_File1.TabIndex = 423; - this.L_File1.Text = "ZoneData [1]:"; - this.L_File1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // RTB_ZDMaster - // - this.RTB_ZDMaster.Font = new System.Drawing.Font("Courier New", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.RTB_ZDMaster.Location = new System.Drawing.Point(143, 279); - this.RTB_ZDMaster.Name = "RTB_ZDMaster"; - this.RTB_ZDMaster.ReadOnly = true; - this.RTB_ZDMaster.Size = new System.Drawing.Size(340, 64); - this.RTB_ZDMaster.TabIndex = 422; - this.RTB_ZDMaster.Text = "00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF 00 11 22 33 44 55 66 77 88 99 AA " + - "BB CC DD EE FF 00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF 00 11 22 33 44 55" + - " 66 77 88 99 AA BB CC DD EE FF"; - // - // RTB_File5 - // - this.RTB_File5.Font = new System.Drawing.Font("Courier New", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.RTB_File5.Location = new System.Drawing.Point(217, 171); - this.RTB_File5.Name = "RTB_File5"; - this.RTB_File5.ReadOnly = true; - this.RTB_File5.Size = new System.Drawing.Size(266, 36); - this.RTB_File5.TabIndex = 421; - this.RTB_File5.Text = "00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF"; - // - // RTB_OWSC - // - this.RTB_OWSC.Font = new System.Drawing.Font("Courier New", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.RTB_OWSC.Location = new System.Drawing.Point(217, 45); - this.RTB_OWSC.Name = "RTB_OWSC"; - this.RTB_OWSC.ReadOnly = true; - this.RTB_OWSC.Size = new System.Drawing.Size(266, 36); - this.RTB_OWSC.TabIndex = 418; - this.RTB_OWSC.Text = "00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF"; - // - // RTB_Encounter - // - this.RTB_Encounter.Font = new System.Drawing.Font("Courier New", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.RTB_Encounter.Location = new System.Drawing.Point(217, 129); - this.RTB_Encounter.Name = "RTB_Encounter"; - this.RTB_Encounter.ReadOnly = true; - this.RTB_Encounter.Size = new System.Drawing.Size(266, 36); - this.RTB_Encounter.TabIndex = 420; - this.RTB_Encounter.Text = "00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF"; - // - // RTB_MapSC - // - this.RTB_MapSC.Font = new System.Drawing.Font("Courier New", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.RTB_MapSC.Location = new System.Drawing.Point(217, 87); - this.RTB_MapSC.Name = "RTB_MapSC"; - this.RTB_MapSC.ReadOnly = true; - this.RTB_MapSC.Size = new System.Drawing.Size(266, 36); - this.RTB_MapSC.TabIndex = 419; - this.RTB_MapSC.Text = "00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF"; - // - // tb_Dev - // - this.tb_Dev.Controls.Add(this.B_DumpZD); - this.tb_Dev.Controls.Add(this.L_DeComp); - this.tb_Dev.Controls.Add(this.RTB_CompressedScript); - this.tb_Dev.Controls.Add(this.RTB_DecompressedScript); - this.tb_Dev.Controls.Add(this.L_Comp); - this.tb_Dev.Controls.Add(this.B_DumpMaps); - this.tb_Dev.Controls.Add(this.B_DumpUnk); - this.tb_Dev.Controls.Add(this.B_DumpTrigger); - this.tb_Dev.Controls.Add(this.B_DumpWarp); - this.tb_Dev.Controls.Add(this.B_DumpNPC); - this.tb_Dev.Controls.Add(this.B_DumpFurniture); - this.tb_Dev.Location = new System.Drawing.Point(4, 22); - this.tb_Dev.Name = "tb_Dev"; - this.tb_Dev.Padding = new System.Windows.Forms.Padding(3); - this.tb_Dev.Size = new System.Drawing.Size(486, 471); - this.tb_Dev.TabIndex = 7; - this.tb_Dev.Text = "Dev"; - this.tb_Dev.UseVisualStyleBackColor = true; - // - // B_DumpZD - // - this.B_DumpZD.Location = new System.Drawing.Point(149, 51); - this.B_DumpZD.Name = "B_DumpZD"; - this.B_DumpZD.Size = new System.Drawing.Size(89, 39); - this.B_DumpZD.TabIndex = 431; - this.B_DumpZD.Text = "Dump all ZD"; - this.B_DumpZD.UseVisualStyleBackColor = true; - this.B_DumpZD.Click += new System.EventHandler(this.B_DumpZD_Click); - // - // L_DeComp - // - this.L_DeComp.AutoSize = true; - this.L_DeComp.Location = new System.Drawing.Point(395, 224); - this.L_DeComp.Name = "L_DeComp"; - this.L_DeComp.Size = new System.Drawing.Size(78, 13); - this.L_DeComp.TabIndex = 430; - this.L_DeComp.Text = "Decompressed"; - // - // RTB_CompressedScript - // - this.RTB_CompressedScript.Font = new System.Drawing.Font("Courier New", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.RTB_CompressedScript.Location = new System.Drawing.Point(304, 240); - this.RTB_CompressedScript.Name = "RTB_CompressedScript"; - this.RTB_CompressedScript.Size = new System.Drawing.Size(85, 225); - this.RTB_CompressedScript.TabIndex = 429; - this.RTB_CompressedScript.Text = "Script CMDs"; - this.RTB_CompressedScript.TextChanged += new System.EventHandler(this.pasteScript); - // - // RTB_DecompressedScript - // - this.RTB_DecompressedScript.Font = new System.Drawing.Font("Courier New", 6.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.RTB_DecompressedScript.Location = new System.Drawing.Point(395, 240); - this.RTB_DecompressedScript.Name = "RTB_DecompressedScript"; - this.RTB_DecompressedScript.ReadOnly = true; - this.RTB_DecompressedScript.Size = new System.Drawing.Size(85, 225); - this.RTB_DecompressedScript.TabIndex = 428; - this.RTB_DecompressedScript.Text = "Raw Data"; - // - // L_Comp - // - this.L_Comp.AutoSize = true; - this.L_Comp.Location = new System.Drawing.Point(301, 224); - this.L_Comp.Name = "L_Comp"; - this.L_Comp.Size = new System.Drawing.Size(65, 13); - this.L_Comp.TabIndex = 426; - this.L_Comp.Text = "Compressed"; - // - // B_DumpMaps - // - this.B_DumpMaps.Location = new System.Drawing.Point(149, 6); - this.B_DumpMaps.Name = "B_DumpMaps"; - this.B_DumpMaps.Size = new System.Drawing.Size(89, 39); - this.B_DumpMaps.TabIndex = 425; - this.B_DumpMaps.Text = "Dump all Maps"; - this.B_DumpMaps.UseVisualStyleBackColor = true; - this.B_DumpMaps.Click += new System.EventHandler(this.B_DumpMaps_Click); - // - // B_DumpUnk - // - this.B_DumpUnk.Location = new System.Drawing.Point(6, 186); - this.B_DumpUnk.Name = "B_DumpUnk"; - this.B_DumpUnk.Size = new System.Drawing.Size(89, 39); - this.B_DumpUnk.TabIndex = 424; - this.B_DumpUnk.Text = "Dump all\r\nUnk"; - this.B_DumpUnk.UseVisualStyleBackColor = true; - this.B_DumpUnk.Click += new System.EventHandler(this.B_DumpUnk_Click); - // - // B_DumpTrigger - // - this.B_DumpTrigger.Location = new System.Drawing.Point(6, 141); - this.B_DumpTrigger.Name = "B_DumpTrigger"; - this.B_DumpTrigger.Size = new System.Drawing.Size(89, 39); - this.B_DumpTrigger.TabIndex = 423; - this.B_DumpTrigger.Text = "Dump all\r\nTriggers"; - this.B_DumpTrigger.UseVisualStyleBackColor = true; - this.B_DumpTrigger.Click += new System.EventHandler(this.B_DumpTrigger_Click); - // - // B_DumpWarp - // - this.B_DumpWarp.Location = new System.Drawing.Point(6, 96); - this.B_DumpWarp.Name = "B_DumpWarp"; - this.B_DumpWarp.Size = new System.Drawing.Size(89, 39); - this.B_DumpWarp.TabIndex = 422; - this.B_DumpWarp.Text = "Dump all\r\nWarp Bytes"; - this.B_DumpWarp.UseVisualStyleBackColor = true; - this.B_DumpWarp.Click += new System.EventHandler(this.B_DumpWarp_Click); - // - // B_DumpNPC - // - this.B_DumpNPC.Location = new System.Drawing.Point(6, 51); - this.B_DumpNPC.Name = "B_DumpNPC"; - this.B_DumpNPC.Size = new System.Drawing.Size(89, 39); - this.B_DumpNPC.TabIndex = 421; - this.B_DumpNPC.Text = "Dump all\r\nNPC Bytes"; - this.B_DumpNPC.UseVisualStyleBackColor = true; - this.B_DumpNPC.Click += new System.EventHandler(this.B_DumpNPC_Click); - // - // B_DumpFurniture - // - this.B_DumpFurniture.Location = new System.Drawing.Point(6, 6); - this.B_DumpFurniture.Name = "B_DumpFurniture"; - this.B_DumpFurniture.Size = new System.Drawing.Size(89, 39); - this.B_DumpFurniture.TabIndex = 420; - this.B_DumpFurniture.Text = "Dump all\r\nFurniture Bytes"; - this.B_DumpFurniture.UseVisualStyleBackColor = true; - this.B_DumpFurniture.Click += new System.EventHandler(this.B_DumpFurniture_Click); - // - // B_Map - // - this.B_Map.Location = new System.Drawing.Point(318, 5); - this.B_Map.Name = "B_Map"; - this.B_Map.Size = new System.Drawing.Size(89, 23); - this.B_Map.TabIndex = 420; - this.B_Map.Text = "Show Map"; - this.B_Map.UseVisualStyleBackColor = true; - this.B_Map.Click += new System.EventHandler(this.B_Map_Click); - // - // L_ZDPreview - // - this.L_ZDPreview.AutoSize = true; - this.L_ZDPreview.Location = new System.Drawing.Point(216, 3); - this.L_ZDPreview.Name = "L_ZDPreview"; - this.L_ZDPreview.Size = new System.Drawing.Size(50, 26); - this.L_ZDPreview.TabIndex = 418; - this.L_ZDPreview.Text = "Text File:\r\nMap File:"; - // - // B_HLCMD - // - this.B_HLCMD.Location = new System.Drawing.Point(413, 5); - this.B_HLCMD.Name = "B_HLCMD"; - this.B_HLCMD.Size = new System.Drawing.Size(89, 23); - this.B_HLCMD.TabIndex = 419; - this.B_HLCMD.Text = "HL **CMD**"; - this.B_HLCMD.UseVisualStyleBackColor = true; - this.B_HLCMD.Click += new System.EventHandler(this.B_HLCMD_Click); - // - // OWSE - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(514, 537); - this.Controls.Add(this.B_Map); - this.Controls.Add(this.B_HLCMD); - this.Controls.Add(this.L_ZDPreview); - this.Controls.Add(this.tb_Zone); - this.Controls.Add(this.L_Location); - this.Controls.Add(this.CB_LocationID); - this.MaximizeBox = false; - this.MinimumSize = new System.Drawing.Size(530, 575); - this.Name = "OWSE"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Overworld Editor"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.closingForm); - this.tb_Zone.ResumeLayout(false); - this.tb_ZoneData.ResumeLayout(false); - this.tb_ZoneData.PerformLayout(); - this.tb_OWSC.ResumeLayout(false); - this.tb_OWSC.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_UnkCount)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_TrigCount)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_WarpCount)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_FurnCount)).EndInit(); - this.tc_OWSC.ResumeLayout(false); - this.tb_Furniture.ResumeLayout(false); - this.GB_F.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.NUD_FWY)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_FWX)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_FY)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_FX)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_FE)).EndInit(); - this.tb_NPC.ResumeLayout(false); - this.GB_N.ResumeLayout(false); - this.GB_N.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_NMove2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_NMove1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_NRange)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_NFlag)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_NScript)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_NFace)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_NY)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_NX)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_NModel)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_NID)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_NE)).EndInit(); - this.tb_Warp.ResumeLayout(false); - this.GB_W.ResumeLayout(false); - this.GB_W.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_WY)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_WX)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_WTile)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_WMap)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_WE)).EndInit(); - this.tb_Trigger1.ResumeLayout(false); - this.GB_T1.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.NUD_T1Y)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_T1X)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_TE)).EndInit(); - this.tb_Trigger2.ResumeLayout(false); - this.GB_T2.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.NUD_T2Y)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_T2X)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_UE)).EndInit(); - this.tb_Script.ResumeLayout(false); - this.tb_Script.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_NPCCount)).EndInit(); - this.tb_MSC.ResumeLayout(false); - this.tb_MSC.PerformLayout(); - this.tb_Encounters.ResumeLayout(false); - this.tb_Encounters.PerformLayout(); - this.tb_File5.ResumeLayout(false); - this.tb_File5.PerformLayout(); - this.tb_RAW.ResumeLayout(false); - this.tb_RAW.PerformLayout(); - this.tb_Dev.ResumeLayout(false); - this.tb_Dev.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.ComboBox CB_LocationID; - private System.Windows.Forms.Label L_Location; - private System.Windows.Forms.RichTextBox RTB_ZD; - private System.Windows.Forms.TabControl tb_Zone; - private System.Windows.Forms.TabPage tb_ZoneData; - private System.Windows.Forms.TabPage tb_OWSC; - private System.Windows.Forms.TabPage tb_MSC; - private System.Windows.Forms.TabPage tb_Encounters; - private System.Windows.Forms.TabPage tb_File5; - private System.Windows.Forms.TabControl tc_OWSC; - private System.Windows.Forms.TabPage tb_Furniture; - private System.Windows.Forms.TabPage tb_NPC; - private System.Windows.Forms.RichTextBox RTB_N; - private System.Windows.Forms.TabPage tb_Warp; - private System.Windows.Forms.TabPage tb_Trigger1; - private System.Windows.Forms.RichTextBox RTB_OWSC; - private System.Windows.Forms.RichTextBox RTB_MapSC; - private System.Windows.Forms.RichTextBox RTB_Encounter; - private System.Windows.Forms.RichTextBox RTB_File5; - private System.Windows.Forms.NumericUpDown NUD_TrigCount; - private System.Windows.Forms.Label L_TriggerCount; - private System.Windows.Forms.NumericUpDown NUD_WarpCount; - private System.Windows.Forms.Label L_WarpCount; - private System.Windows.Forms.NumericUpDown NUD_FurnCount; - private System.Windows.Forms.Label L_FurnitureCount; - private System.Windows.Forms.NumericUpDown NUD_NPCCount; - private System.Windows.Forms.Label L_NPCCount; - private System.Windows.Forms.NumericUpDown NUD_FE; - private System.Windows.Forms.Label L_FE; - private System.Windows.Forms.NumericUpDown NUD_NE; - private System.Windows.Forms.Label L_NE; - private System.Windows.Forms.NumericUpDown NUD_WE; - private System.Windows.Forms.Label L_WE; - private System.Windows.Forms.NumericUpDown NUD_TE; - private System.Windows.Forms.Label L_TE; - private System.Windows.Forms.TabPage tb_Script; - private System.Windows.Forms.RichTextBox RTB_ZDMaster; - private System.Windows.Forms.RichTextBox RTB_F; - private System.Windows.Forms.RichTextBox RTB_OWSCMD; - private System.Windows.Forms.NumericUpDown NUD_WTile; - private System.Windows.Forms.NumericUpDown NUD_WMap; - private System.Windows.Forms.Label L_DestWarpTile; - private System.Windows.Forms.Label L_DestMap; - private System.Windows.Forms.Label L_OWSCDesc; - private System.Windows.Forms.TabPage tb_RAW; - private System.Windows.Forms.Label L_MSSCDesc; - private System.Windows.Forms.RichTextBox RTB_MS; - private System.Windows.Forms.Label L_WarpDest; - private System.Windows.Forms.NumericUpDown NUD_NID; - private System.Windows.Forms.Label L_NID; - private System.Windows.Forms.Label L_ZDPreview; - private System.Windows.Forms.RichTextBox RTB_OS; - private System.Windows.Forms.RichTextBox RTB_MSCMD; - private System.Windows.Forms.Label L_Encounters; - private System.Windows.Forms.Label L_ZDMaster; - private System.Windows.Forms.Label L_File5; - private System.Windows.Forms.Label L_File4; - private System.Windows.Forms.Label L_File2; - private System.Windows.Forms.Label L_File1; - private System.Windows.Forms.Label L_File3; - private System.Windows.Forms.Label L_MapInfoTabData; - private System.Windows.Forms.Label L_File5TabData; - private System.Windows.Forms.Label L_OWEntities; - private System.Windows.Forms.RichTextBox RTB_OSP; - private System.Windows.Forms.RichTextBox RTB_MSP; - private System.Windows.Forms.Button B_HLCMD; - private System.Windows.Forms.GroupBox GB_N; - private System.Windows.Forms.NumericUpDown NUD_NModel; - private System.Windows.Forms.Label L_NModel; - private System.Windows.Forms.NumericUpDown NUD_NY; - private System.Windows.Forms.Label L_NY; - private System.Windows.Forms.NumericUpDown NUD_NX; - private System.Windows.Forms.Label L_NX; - private System.Windows.Forms.NumericUpDown NUD_NFace; - private System.Windows.Forms.Label L_NFaceDirection; - private System.Windows.Forms.NumericUpDown NUD_NScript; - private System.Windows.Forms.Label L_NScript; - private System.Windows.Forms.NumericUpDown NUD_NFlag; - private System.Windows.Forms.Label L_NFlag; - private System.Windows.Forms.NumericUpDown NUD_UnkCount; - private System.Windows.Forms.Label L_Unk; - private System.Windows.Forms.TabPage tb_Trigger2; - private System.Windows.Forms.NumericUpDown NUD_UE; - private System.Windows.Forms.Label L_UE; - private System.Windows.Forms.Label L_ModelAsHex; - private System.Windows.Forms.GroupBox GB_F; - private System.Windows.Forms.GroupBox GB_W; - private System.Windows.Forms.RichTextBox RTB_W; - private System.Windows.Forms.GroupBox GB_T1; - private System.Windows.Forms.RichTextBox RTB_T1; - private System.Windows.Forms.GroupBox GB_T2; - private System.Windows.Forms.RichTextBox RTB_T2; - private System.Windows.Forms.TabPage tb_Dev; - private System.Windows.Forms.Button B_DumpUnk; - private System.Windows.Forms.Button B_DumpTrigger; - private System.Windows.Forms.Button B_DumpWarp; - private System.Windows.Forms.Button B_DumpNPC; - private System.Windows.Forms.Button B_DumpFurniture; - private System.Windows.Forms.Button B_DumpMaps; - private System.Windows.Forms.Label L_Comp; - private System.Windows.Forms.Label L_DeComp; - private System.Windows.Forms.RichTextBox RTB_CompressedScript; - private System.Windows.Forms.RichTextBox RTB_DecompressedScript; - private System.Windows.Forms.NumericUpDown NUD_NRange; - private System.Windows.Forms.Label L_Range; - private System.Windows.Forms.TextBox TB_NDeg; - private System.Windows.Forms.Label L_NDeg; - private System.Windows.Forms.TextBox TB_Leash; - private System.Windows.Forms.Label L_LeashInfo; - private System.Windows.Forms.NumericUpDown NUD_NMove2; - private System.Windows.Forms.Label L_Move2; - private System.Windows.Forms.NumericUpDown NUD_NMove1; - private System.Windows.Forms.Label L_Move1; - private System.Windows.Forms.Label L_WpY; - private System.Windows.Forms.Label L_WpX; - private System.Windows.Forms.NumericUpDown NUD_WY; - private System.Windows.Forms.Label L_WY; - private System.Windows.Forms.NumericUpDown NUD_WX; - private System.Windows.Forms.Label L_WX; - private System.Windows.Forms.NumericUpDown NUD_FWY; - private System.Windows.Forms.Label L_FWY; - private System.Windows.Forms.NumericUpDown NUD_FWX; - private System.Windows.Forms.Label L_FWX; - private System.Windows.Forms.NumericUpDown NUD_FY; - private System.Windows.Forms.Label L_FY; - private System.Windows.Forms.NumericUpDown NUD_FX; - private System.Windows.Forms.Label L_FX; - private System.Windows.Forms.NumericUpDown NUD_T1Y; - private System.Windows.Forms.Label L_T1Y; - private System.Windows.Forms.NumericUpDown NUD_T1X; - private System.Windows.Forms.Label L_T1X; - private System.Windows.Forms.NumericUpDown NUD_T2Y; - private System.Windows.Forms.Label L_T2Y; - private System.Windows.Forms.NumericUpDown NUD_T2X; - private System.Windows.Forms.Label L_T2X; - private System.Windows.Forms.Button B_Map; - private System.Windows.Forms.Label L_ZD; - private System.Windows.Forms.Button B_DumpZD; - private System.Windows.Forms.CheckBox CHK_EditRAW; - private System.Windows.Forms.Button B_ResetNPC; - private System.Windows.Forms.Button B_ResetOverworlds; - private System.Windows.Forms.Button B_ResetFurniture; - private System.Windows.Forms.Button B_ResetWarp; - private System.Windows.Forms.Button B_ResetTrigger1; - private System.Windows.Forms.Button B_ResetTrigger2; - } -} - diff --git a/pk3DS/Subforms/Gen6/Experimental/OWSE.cs b/pk3DS/Subforms/Gen6/Experimental/OWSE.cs deleted file mode 100644 index 68f9c8665f..0000000000 --- a/pk3DS/Subforms/Gen6/Experimental/OWSE.cs +++ /dev/null @@ -1,880 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Drawing; -using System.IO; -using System.Linq; -using System.Windows.Forms; -using pk3DS.Subforms; -using pk3DS.Core; -using pk3DS.Core.CTR; - -namespace pk3DS -{ - public partial class OWSE : Form - { - public OWSE() - { - InitializeComponent(); - - // Script Drag&Drop - AllowDrop = true; - DragEnter += tabMain_DragEnter; - DragDrop += tabMain_DragDrop; - - // Finished - openQuick(Directory.GetFiles("encdata")); - mapView.Show(); - tb_Zone.SelectedIndex = 1; // Show Overworlds tab - } - private readonly string[] gameLocations = Main.Config.getText(TextName.metlist_000000); - private string[] filepaths; - private string[] encdatapaths; - private byte[] masterZoneData; - private bool debugToolDumping; - - // Generated Storage - private string[] zdLocations; - private string[] rawLocations; - private byte[][] locationData; - - // Map Viewer References - internal static Zone CurrentZone; - internal static MapMatrix mm; - private readonly MapPermView mapView = new MapPermView(); - - private void openQuick(string[] encdata) - { - // Gather - encdatapaths = encdata; - Array.Sort(encdatapaths); - filepaths = encdatapaths.Skip(Main.Config.ORAS ? 2 : 1).Take(encdatapaths.Length - (Main.Config.ORAS ? 2 : 1)).ToArray(); - masterZoneData = File.ReadAllBytes(encdatapaths[0]); - zdLocations = new string[filepaths.Length]; - rawLocations = new string[filepaths.Length]; - - tb_File5.Visible = Main.Config.ORAS; // 5th File is only present with OR/AS. - - // Analyze - for (int f = 0; f < filepaths.Length; f++) - { - string name = Path.GetFileNameWithoutExtension(filepaths[f]); - - int LocationNum = Convert.ToInt16(name.Substring(4, name.Length - 4)); - ZoneData zo = new ZoneData(masterZoneData.Skip(f * ZoneData.Size).Take(ZoneData.Size).ToArray()); - string LocationName = gameLocations[zo.ParentMap]; - zdLocations[f] = LocationNum.ToString("000") + " - " + LocationName; - rawLocations[f] = LocationName; - } - - // Assign - CB_LocationID.DataSource = zdLocations; - CB_LocationID.Enabled = true; - CB_LocationID_SelectedIndexChanged(null, null); - NUD_WMap.Maximum = zdLocations.Length; // Cap map warp destinations to the amount of maps. - } - private void B_Map_Click(object sender, EventArgs e) - { - if (!mapView.Visible) - mapView.Show(); - } - private void closingForm(object sender, FormClosingEventArgs e) - { - // Close map view - mapView.Close(); - mapView.Dispose(); - } - - private void CB_LocationID_SelectedIndexChanged(object sender, EventArgs e) - { - setEntry(); - entry = CB_LocationID.SelectedIndex; - getEntry(); - } - private void getEntry() - { - if (entry < 0) return; - byte[] raw = File.ReadAllBytes(filepaths[entry]); - locationData = Core.CTR.mini.unpackMini(raw, "ZO"); - if (locationData == null) return; - - // Read master ZD table - byte[] zd = masterZoneData.Skip(ZoneData.Size * entry).Take(ZoneData.Size).ToArray(); - RTB_ZDMaster.Lines = Scripts.getHexLines(zd, 0x10); - - // Load from location Data. - CurrentZone = new Zone(locationData); - // File 0 - ZoneData - RTB_ZD.Lines = Scripts.getHexLines(locationData[0], 0x10); - getZoneData(); - - // File 1 - Overworld Setup & Script - RTB_OWSC.Lines = Scripts.getHexLines(locationData[1], 0x10); - getOWSData(); - - // File 2 - Map Script - RTB_MapSC.Lines = Scripts.getHexLines(locationData[2], 0x10); - getScriptData(); - - // File 3 - Encounters - RTB_Encounter.Lines = Scripts.getHexLines(locationData[3], 0x10); - - // File 4 - ?? (ORAS Only?) - RTB_File5.Lines = Scripts.getHexLines(locationData.Length <= 4 ? null : locationData[4], 0x10); - } - private void setEntry() - { - if (entry < 0) return; - if (debugToolDumping) return; - - // Set the data back into the class object - // Currently only the first two files. - setZoneData(); // File 0 - setOWSData(); - // setMSData(); - // setEncounterData(); - // if (Main.Config.ORAS) - // setUnknown(); - - // Reassemble files - byte[][] data = CurrentZone.Write(); - - // Debug Check (can stay, why not.) - if (!locationData.Where((t, i) => !data[i].SequenceEqual(t)).Any()) - return; - - // Util.Alert("Zone has been edited!"); - System.Media.SystemSounds.Asterisk.Play(); - - // Package the files into the permanent package file. - byte[] raw = mini.packMini(data, "ZO"); - File.WriteAllBytes(filepaths[entry], raw); - } - - // Loading of Data - private void getZoneData() - { - L_ZDPreview.Text = "Text File: " + CurrentZone.ZD.TextFile - + Environment.NewLine + "Map File: " + CurrentZone.ZD.MapMatrix; - - L_ZD.Text = string.Format("X: {0,5}{3}Y: {1,5}{3}Z:{2,6}{3}{3}X: {4,5}{3}Y: {5,5}{3}Z:{6,6}", CurrentZone.ZD.pX, CurrentZone.ZD.pY, - CurrentZone.ZD.Z, Environment.NewLine, CurrentZone.ZD.pX2, CurrentZone.ZD.pY2, - CurrentZone.ZD.Z2); - - if (Math.Abs(CurrentZone.ZD.pX - CurrentZone.ZD.pX2) > 0.01 - || Math.Abs(CurrentZone.ZD.pY - CurrentZone.ZD.pY2) > 0.01 - || CurrentZone.ZD.Z != CurrentZone.ZD.Z2) - { - L_ZD.Text += Environment.NewLine + "COORDINATE MISMATCH"; - } - - // Fetch Map Image - mapView.drawMap(CurrentZone.ZD.MapMatrix); - } - private void getOWSData() - { - // Reset Fields a little. - RTB_F.Text = RTB_N.Text = RTB_W.Text = RTB_T1.Text = RTB_T2.Text = string.Empty; - fEntry = nEntry = wEntry = tEntry = uEntry = -1; - // Set Counters - NUD_FurnCount.Value = CurrentZone.Entities.FurnitureCount; changeFurnitureCount(null, null); - NUD_NPCCount.Value = CurrentZone.Entities.NPCCount; changeNPCCount(null, null); - NUD_WarpCount.Value = CurrentZone.Entities.WarpCount; changeWarpCount(null, null); - NUD_TrigCount.Value = CurrentZone.Entities.TriggerCount; changeTriggerCount(null, null); - NUD_UnkCount.Value = CurrentZone.Entities.UnknownCount; changeUnkCount(null, null); - - // Collect/Load Data - NUD_FE.Value = NUD_FE.Maximum < 0 ? -1 : 0; changeFurniture(null, null); - NUD_NE.Value = NUD_NE.Maximum < 0 ? -1 : 0; changeNPC(null, null); - NUD_WE.Value = NUD_WE.Maximum < 0 ? -1 : 0; changeWarp(null, null); - NUD_TE.Value = NUD_TE.Maximum < 0 ? -1 : 0; changeTrigger1(null, null); - NUD_UE.Value = NUD_UE.Maximum < 0 ? -1 : 0; changeTrigger2(null, null); - - // Process Scripts - var script = CurrentZone.Entities.Script; - if (script.Raw.Length > 4) - { - RTB_OS.Lines = Scripts.getHexLines(script.Raw); - L_OWSCDesc.Text = script.Info; - - uint[] Instructions = script.DecompressedInstructions; - RTB_OWSCMD.Lines = Scripts.getHexLines(Instructions); - - if (script.DecompressedLength / 4 != Instructions.Length) - RTB_OWSCMD.Text = RTB_OSP.Text = "DCMP FAIL"; - else - RTB_OSP.Lines = script.ParseScript.Concat(script.ParseMoves).ToArray(); - } - else - RTB_OWSCMD.Lines = RTB_OS.Lines = new[] {"No Data"}; - } - private void getScriptData() - { - var script = CurrentZone.MapScript.Script; - if (script.Raw.Length > 4) - { - RTB_MS.Lines = Scripts.getHexLines(script.Raw); - L_MSSCDesc.Text = script.Info; - - uint[] Instructions = script.DecompressedInstructions; - RTB_MSCMD.Lines = Scripts.getHexLines(Instructions); - - if (script.DecompressedLength / 4 != Instructions.Length) - RTB_MSCMD.Text = RTB_OSP.Text = "DCMP FAIL"; - else - RTB_MSP.Lines = script.ParseScript.Concat(script.ParseMoves).ToArray(); - } - else - RTB_MSCMD.Lines = RTB_OS.Lines = new[] { "No Data" }; - } - private void setZoneData() - { - // Nothing, ZoneData is not currently researched enough. - } - private void setOWSData() - { - // Force all entities to be written back - setFurniture(); - setNPC(); - setWarp(); - setTrigger1(); - setTrigger2(); - } - - // Overworld Viewing - private int entry = -1; - private int fEntry, nEntry, wEntry, tEntry, uEntry = -1; - #region Enabling - internal static void toggleEnable(NumericUpDown master, NumericUpDown slave, GroupBox display) - { - slave.Maximum = master.Value - 1; - slave.Enabled = display.Visible = slave.Maximum > -1; - slave.Minimum = slave.Enabled ? 0 : -1; - } - private void changeFurnitureCount(object sender, EventArgs e) - { - // Resize array - int count = (int)NUD_FurnCount.Value; - CurrentZone.Entities.FurnitureCount = count; - Array.Resize(ref CurrentZone.Entities.Furniture, count); - for (int i = 0; i < count; i++) - CurrentZone.Entities.Furniture[i] = CurrentZone.Entities.Furniture[i] ?? new Zone.ZoneEntities.EntityFurniture(); - - toggleEnable(NUD_FurnCount, NUD_FE, GB_F); - } - private void changeNPCCount(object sender, EventArgs e) - { - // Resize array - int count = (int)NUD_NPCCount.Value; - CurrentZone.Entities.NPCCount = count; - Array.Resize(ref CurrentZone.Entities.NPCs, count); - for (int i = 0; i < count; i++) - CurrentZone.Entities.NPCs[i] = CurrentZone.Entities.NPCs[i] ?? new Zone.ZoneEntities.EntityNPC(); - - toggleEnable(NUD_NPCCount, NUD_NE, GB_N); - } - private void changeWarpCount(object sender, EventArgs e) - { - // Resize array - int count = (int)NUD_WarpCount.Value; - CurrentZone.Entities.WarpCount = count; - Array.Resize(ref CurrentZone.Entities.Warps, count); - for (int i = 0; i < count; i++) - CurrentZone.Entities.Warps[i] = CurrentZone.Entities.Warps[i] ?? new Zone.ZoneEntities.EntityWarp(); - - toggleEnable(NUD_WarpCount, NUD_WE, GB_W); - } - private void changeTriggerCount(object sender, EventArgs e) - { - // Resize array - int count = (int)NUD_TrigCount.Value; - CurrentZone.Entities.TriggerCount = count; - Array.Resize(ref CurrentZone.Entities.Triggers1, count); - for (int i = 0; i < count; i++) - CurrentZone.Entities.Triggers1[i] = CurrentZone.Entities.Triggers1[i] ?? new Zone.ZoneEntities.EntityTrigger1(); - - toggleEnable(NUD_TrigCount, NUD_TE, GB_T1); - } - private void changeUnkCount(object sender, EventArgs e) - { - // Resize array - int count = (int)NUD_UnkCount.Value; - CurrentZone.Entities.UnknownCount = count; - Array.Resize(ref CurrentZone.Entities.Triggers2, count); - for (int i = 0; i < count; i++) - CurrentZone.Entities.Triggers2[i] = CurrentZone.Entities.Triggers2[i] ?? new Zone.ZoneEntities.EntityTrigger2(); - - toggleEnable(NUD_UnkCount, NUD_UE, GB_T2); - } - #endregion - #region Updating - private void changeFurniture(object sender, EventArgs e) - { - if (NUD_FE.Value < 0) return; - setFurniture(); - fEntry = (int)NUD_FE.Value; - getFurniture(); - } - private void getFurniture() - { - if (NUD_FE.Value < 0) return; - - var Furniture = CurrentZone.Entities.Furniture[fEntry]; - NUD_FX.Value = Furniture.X; - NUD_FY.Value = Furniture.Y; - NUD_FWX.Value = Furniture.WX; - NUD_FWY.Value = Furniture.WY; - RTB_F.Text = Util.getHexString(Furniture.Raw); - } - private void setFurniture() - { - if (NUD_FE.Value < 0) return; - if (fEntry < 0) return; - - var FUrniture = CurrentZone.Entities.Furniture[fEntry]; - FUrniture.X = (int)NUD_FX.Value; - FUrniture.Y = (int)NUD_FY.Value; - FUrniture.WX = (int)NUD_FWX.Value; - FUrniture.WY = (int)NUD_FWY.Value; - } - - private void changeNPC(object sender, EventArgs e) - { - if (NUD_NE.Value < 0) return; - setNPC(); - nEntry = (int)NUD_NE.Value; - getNPC(); - } - private void getNPC() - { - if (NUD_NE.Value < 0) return; - var NPC = CurrentZone.Entities.NPCs[nEntry]; - - // Load new Attributes - NUD_NID.Value = NPC.ID; - NUD_NModel.Value = NPC.Model; - NUD_NFlag.Value = NPC.SpawnFlag; - NUD_NScript.Value = NPC.Script; - NUD_NFace.Value = NPC.FaceDirection; - NUD_NRange.Value = NPC.SightRange; - NUD_NX.Value = NPC.X; - NUD_NY.Value = NPC.Y; - NUD_NMove1.Value = NPC.MovePermissions; - NUD_NMove2.Value = NPC.MovePermissions2; - - // Uneditables - TB_NDeg.Text = NPC.Deg18.ToString(); - TB_Leash.Text = NPC.L1 == NPC.L2 && NPC.L2 == NPC.L3 && NPC.L3 == -1 - ? TB_Leash.Text = "No Leash!" - : $"{NPC.L1}, {NPC.L2}, {NPC.L3} -- {NPC.LDir}"; - - RTB_N.Text = Util.getHexString(NPC.Raw); - } - private void setNPC() - { - if (NUD_NE.Value < 0) return; - if (nEntry < 0) return; - - var NPC = CurrentZone.Entities.NPCs[nEntry]; - NPC.ID = (int)NUD_NID.Value; - NPC.Model = (int)NUD_NModel.Value; - NPC.SpawnFlag = (int)NUD_NFlag.Value; - NPC.Script = (int)NUD_NScript.Value; - NPC.FaceDirection = (int)NUD_NFace.Value; - NPC.SightRange = (int)NUD_NRange.Value; - NPC.X = (int)NUD_NX.Value; - NPC.Y = (int)NUD_NY.Value; - - NPC.MovePermissions = (int)NUD_NMove1.Value; - NPC.MovePermissions2 = (int)NUD_NMove2.Value; - } - - private void changeWarp(object sender, EventArgs e) - { - if (NUD_WE.Value < 0) return; - setWarp(); - wEntry = (int)NUD_WE.Value; - getWarp(); - } - private void getWarp() - { - if (NUD_WE.Value < 0) return; - - var Warp = CurrentZone.Entities.Warps[wEntry]; - RTB_W.Text = Util.getHexString(Warp.Raw); - - // Load new Attributes - NUD_WMap.Value = Warp.DestinationMap; - NUD_WTile.Value = Warp.DestinationTileIndex; - - NUD_WX.Value = Warp.X; - NUD_WY.Value = Warp.Y; - - // Flavor Mods - L_WarpDest.Text = zdLocations[Warp.DestinationMap]; - } - private void setWarp() - { - if (NUD_WE.Value < 0) return; - if (wEntry < 0) return; - - var Warp = CurrentZone.Entities.Warps[wEntry]; - Warp.DestinationMap = (int)NUD_WMap.Value; - Warp.DestinationTileIndex = (int)NUD_WTile.Value; - Warp.X = (int)NUD_WX.Value; - Warp.Y = (int)NUD_WY.Value; - } - - private void changeTrigger1(object sender, EventArgs e) - { - if (NUD_TE.Value < 0) return; - setTrigger1(); - tEntry = (int)NUD_TE.Value; - getTrigger1(); - } - private void getTrigger1() - { - if (NUD_TE.Value < 0) return; - - var Trigger1 = CurrentZone.Entities.Triggers1[tEntry]; - NUD_T1X.Value = Trigger1.X; - NUD_T1Y.Value = Trigger1.Y; - RTB_T1.Text = Util.getHexString(Trigger1.Raw); - } - private void setTrigger1() - { - if (NUD_TE.Value < 0) return; - if (tEntry < 0) return; - - var Trigger1 = CurrentZone.Entities.Triggers1[tEntry]; - Trigger1.X = (int)NUD_T1X.Value; - Trigger1.Y = (int)NUD_T1Y.Value; - } - - private void changeTrigger2(object sender, EventArgs e) - { - if (NUD_UE.Value < 0) return; - setTrigger2(); - uEntry = (int)NUD_UE.Value; - getTrigger2(); - } - private void getTrigger2() - { - if (NUD_UE.Value < 0) return; - - // Load New Data - var Trigger2 = CurrentZone.Entities.Triggers2[uEntry]; - NUD_T2X.Value = Trigger2.X; - NUD_T2Y.Value = Trigger2.Y; - RTB_T2.Text = Util.getHexString(Trigger2.Raw); - } - private void setTrigger2() - { - if (NUD_UE.Value < 0) return; - if (uEntry < 0) return; - - var Trigger2 = CurrentZone.Entities.Triggers2[uEntry]; - Trigger2.X = (int)NUD_T2X.Value; - Trigger2.Y = (int)NUD_T2Y.Value; - } - #endregion - - // Overworld User Enhancements - private void changeNPC_ID(object sender, EventArgs e) - { - L_NID.ForeColor = NUD_NID.Value != NUD_NE.Value ? Color.Red : Color.Black; - } - private void changeNPC_Model(object sender, EventArgs e) - { - L_ModelAsHex.Text = "0x" + ((int)NUD_NModel.Value).ToString("X4"); - } - private void dclickDestMap(object sender, EventArgs e) - { - var Tile = NUD_WTile.Value; - CB_LocationID.SelectedIndex = (int)NUD_WMap.Value; - try - { NUD_WE.Value = Tile; } - catch - { try { NUD_WE.Value = 0; } catch { } } - } - private void changeWarp_X(object sender, EventArgs e) - { - L_WpX.Text = (NUD_WX.Value / 18).ToString(); - } - private void changeWarp_Y(object sender, EventArgs e) - { - L_WpY.Text = (NUD_WY.Value / 18).ToString(); - } - - // Script Handling - private void B_HLCMD_Click(object sender, EventArgs e) - { - int ctr = WinFormsUtil.highlightText(RTB_OSP, "**", Color.Red) + WinFormsUtil.highlightText(RTB_MSP, "**", Color.Red) / 2; - WinFormsUtil.Alert($"{ctr} instance{(ctr > 1 ? "s" : "")} of \"*\" present."); - } - private void tabMain_DragEnter(object sender, DragEventArgs e) - { - if (e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = DragDropEffects.Copy; - } - private void tabMain_DragDrop(object sender, DragEventArgs e) - { - string[] files = (string[])e.Data.GetData(DataFormats.FileDrop); - string path = files[0]; // open first D&D - if (new FileInfo(path).Length < 10000000) - parseScriptInput(File.ReadAllBytes(path)); - } - private void parseScriptInput(byte[] data) - { - Script scr = new Script(data); - RTB_CompressedScript.Lines = Scripts.getHexLines(scr.CompressedBytes); - System.Media.SystemSounds.Asterisk.Play(); - } - private void pasteScript(object sender, EventArgs e) - { - // import data as bytes - try - { - string text = RTB_CompressedScript.Text.Replace(Environment.NewLine, "").Replace("\n", "").Replace(" ", ""); - byte[] data = Util.StringToByteArray(text); - - byte[] dec = Scripts.decompressScript(data); - - RTB_DecompressedScript.Lines = Scripts.getHexLines(dec); - } - catch - { - RTB_DecompressedScript.Text = "DECMP ERROR"; - } - } - - // Dev Dumpers - private void B_DumpFurniture_Click(object sender, EventArgs e) - { - if (WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Export all Furniture?") != DialogResult.Yes) - return; - - debugToolDumping = true; - List result = new List(); - List data = new List(); - for (int i = 0; i < CB_LocationID.Items.Count; i++) - { - CB_LocationID.SelectedIndex = i; - for (int j = 0; j < CurrentZone.Entities.FurnitureCount; j++) - { - result.Add(Util.getHexString(CurrentZone.Entities.Furniture[j].Raw)); - data.Add(CurrentZone.Entities.Furniture[j].Raw); - } - } - if (WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Write Furniture to file?") == DialogResult.Yes) - File.WriteAllBytes("Furniture.bin", data.SelectMany(z => z).ToArray()); - - if (WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Copy Furniture to Clipboard?") == DialogResult.Yes) - Clipboard.SetText(string.Join(Environment.NewLine, result)); - - CB_LocationID.SelectedIndex = 0; - debugToolDumping = false; - } - private void B_DumpNPC_Click(object sender, EventArgs e) - { - if (WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Export all NPCs?") != DialogResult.Yes) - return; - - debugToolDumping = true; - List result = new List(); - List data = new List(); - for (int i = 0; i < CB_LocationID.Items.Count; i++) - { - CB_LocationID.SelectedIndex = i; - for (int j = 0; j < CurrentZone.Entities.NPCCount; j++) - { - result.Add(Util.getHexString(CurrentZone.Entities.NPCs[j].Raw)); - data.Add(CurrentZone.Entities.NPCs[j].Raw); - } - } - if (WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Write NPCs to file?") == DialogResult.Yes) - File.WriteAllBytes("NPCs.bin", data.SelectMany(z => z).ToArray()); - - if (WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Copy NPCs to Clipboard?") == DialogResult.Yes) - Clipboard.SetText(string.Join(Environment.NewLine, result)); - - CB_LocationID.SelectedIndex = 0; - debugToolDumping = false; - } - private void B_DumpWarp_Click(object sender, EventArgs e) - { - if (WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Export all Warps?") != DialogResult.Yes) - return; - - debugToolDumping = true; - List result = new List(); - List data = new List(); - for (int i = 0; i < CB_LocationID.Items.Count; i++) - { - CB_LocationID.SelectedIndex = i; - for (int j = 0; j < CurrentZone.Entities.WarpCount; j++) - { - result.Add(Util.getHexString(CurrentZone.Entities.Warps[j].Raw)); - data.Add(CurrentZone.Entities.Warps[j].Raw); - } - } - if (WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Write Warps to file?") == DialogResult.Yes) - File.WriteAllBytes("Warps.bin", data.SelectMany(z => z).ToArray()); - - if (WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Copy Warps to Clipboard?") == DialogResult.Yes) - Clipboard.SetText(string.Join(Environment.NewLine, result)); - - CB_LocationID.SelectedIndex = 0; - debugToolDumping = false; - } - private void B_DumpTrigger_Click(object sender, EventArgs e) - { - if (WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Export all Triggers?") != DialogResult.Yes) - return; - - debugToolDumping = true; - List result = new List(); - List data = new List(); - for (int i = 0; i < CB_LocationID.Items.Count; i++) - { - CB_LocationID.SelectedIndex = i; - for (int j = 0; j < CurrentZone.Entities.TriggerCount; j++) - { - result.Add(Util.getHexString(CurrentZone.Entities.Triggers1[j].Raw)); - data.Add(CurrentZone.Entities.Triggers1[j].Raw); - } - } - if (WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Write Triggers to file?") == DialogResult.Yes) - File.WriteAllBytes("Triggers.bin", data.SelectMany(z => z).ToArray()); - - if (WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Copy Triggers to Clipboard?") == DialogResult.Yes) - Clipboard.SetText(string.Join(Environment.NewLine, result)); - - CB_LocationID.SelectedIndex = 0; - debugToolDumping = false; - } - private void B_DumpUnk_Click(object sender, EventArgs e) - { - if (WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Export all Unks?") != DialogResult.Yes) - return; - - debugToolDumping = true; - List result = new List(); - List data = new List(); - for (int i = 0; i < CB_LocationID.Items.Count; i++) - { - CB_LocationID.SelectedIndex = i; - for (int j = 0; j < CurrentZone.Entities.UnknownCount; j++) - { - result.Add(Util.getHexString(CurrentZone.Entities.Triggers2[j].Raw)); - data.Add(CurrentZone.Entities.Triggers2[j].Raw); - } - } - if (WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Write Unks to file?") == DialogResult.Yes) - File.WriteAllBytes("Unks.bin", data.SelectMany(z => z).ToArray()); - - if (WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Copy Unks to Clipboard?") == DialogResult.Yes) - Clipboard.SetText(string.Join(Environment.NewLine, result)); - - CB_LocationID.SelectedIndex = 0; - debugToolDumping = false; - } - private void B_DumpMaps_Click(object sender, EventArgs e) - { - if (WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Export all MapImages?") != DialogResult.Yes) - return; - - debugToolDumping = true; - const string folder = "MapImages"; - if (!Directory.Exists(folder)) - Directory.CreateDirectory(folder); - - string[] result = new string[CB_LocationID.Items.Count]; - for (int i = 0; i < CB_LocationID.Items.Count; i++) - { - mapView.DrawMap = i; - Image img = mapView.getMapImage(crop: true); - using (MemoryStream ms = new MemoryStream()) - { - //error will throw from here - img.Save(ms, System.Drawing.Imaging.ImageFormat.Png); - byte[] data = ms.ToArray(); - File.WriteAllBytes(Path.Combine(folder, $"{zdLocations[i].Replace('?', '-')} ({i}).png"), data); - } - string l = mm.EntryList.Where(t => t != 0xFFFF).Aggregate("", (current, t) => current + t.ToString("000" + " ")); - result[i] = $"{i.ToString("000")}\t{CB_LocationID.Items[i]}\t{l}"; - } - if (WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Write Map parse output?") == DialogResult.Yes) - File.WriteAllLines("MapLocations.txt", result); - CB_LocationID.SelectedIndex = 0; - WinFormsUtil.Alert("All Map images have been dumped to " + folder + "."); - debugToolDumping = false; - } - private void B_DumpZD_Click(object sender, EventArgs e) - { - if (WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Export all ZD?") != DialogResult.Yes) - return; - - debugToolDumping = true; - List result = new List(); - List data = new List(); - for (int i = 0; i < CB_LocationID.Items.Count; i++) - { - CB_LocationID.SelectedIndex = i; - result.Add(Util.getHexString(CurrentZone.ZD.Data)); - data.Add(CurrentZone.ZD.Data); - } - if (WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Write ZDs to file?") == DialogResult.Yes) - File.WriteAllBytes("ZDs.bin", data.SelectMany(z => z).ToArray()); - - if (WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Copy ZDs to Clipboard?") == DialogResult.Yes) - Clipboard.SetText(string.Join(Environment.NewLine, result)); - - CB_LocationID.SelectedIndex = 0; - debugToolDumping = false; - } - - // Raw file editing - private void changeRAWCheck(object sender, EventArgs e) - { - bool chk = (sender as CheckBox).Checked; - foreach (NumericUpDown nud in GB_F.Controls.OfType()) - nud.Enabled = !chk; - foreach (NumericUpDown nud in GB_N.Controls.OfType()) - nud.Enabled = !chk; - foreach (NumericUpDown nud in GB_W.Controls.OfType()) - nud.Enabled = !chk; - foreach (NumericUpDown nud in GB_T1.Controls.OfType()) - nud.Enabled = !chk; - foreach (NumericUpDown nud in GB_T2.Controls.OfType()) - nud.Enabled = !chk; - - foreach (RichTextBox rtb in new[] {RTB_F, RTB_N, RTB_W, RTB_T1, RTB_T2}) - rtb.Visible = chk; - } - private void changeRAW_F(object sender, EventArgs e) - { - if (!(sender is RichTextBox) || !(sender as RichTextBox).Visible) - return; - - try - { - byte[] data = Util.StringToByteArray((sender as RichTextBox).Text.Replace(Environment.NewLine, " ").Replace(" ", "")); - if (data.Length != Zone.ZoneEntities.EntityFurniture.Size) - return; - CurrentZone.Entities.Furniture[fEntry].Raw = data; - getFurniture(); - } - catch - { - (sender as RichTextBox).Text = Util.getHexString(CurrentZone.Entities.Furniture[fEntry].Raw); - } - } - private void changeRAW_N(object sender, EventArgs e) - { - if (!(sender is RichTextBox) || !(sender as RichTextBox).Visible) - return; - - try - { - byte[] data = Util.StringToByteArray((sender as RichTextBox).Text.Replace(Environment.NewLine, " ").Replace(" ", "")); - if (data.Length != Zone.ZoneEntities.EntityNPC.Size) - return; - CurrentZone.Entities.NPCs[nEntry].Raw = data; - getNPC(); - } - catch - { - (sender as RichTextBox).Text = Util.getHexString(CurrentZone.Entities.NPCs[nEntry].Raw); - } - } - private void changeRAW_W(object sender, EventArgs e) - { - if (!(sender is RichTextBox) || !(sender as RichTextBox).Visible) - return; - - try - { - byte[] data = Util.StringToByteArray((sender as RichTextBox).Text.Replace(Environment.NewLine, " ").Replace(" ", "")); - if (data.Length != Zone.ZoneEntities.EntityWarp.Size) - return; - CurrentZone.Entities.Warps[wEntry].Raw = data; - getWarp(); - } - catch - { - (sender as RichTextBox).Text = Util.getHexString(CurrentZone.Entities.Warps[wEntry].Raw); - } - } - private void changeRAW_T1(object sender, EventArgs e) - { - if (!(sender is RichTextBox) || !(sender as RichTextBox).Visible) - return; - - try - { - byte[] data = Util.StringToByteArray((sender as RichTextBox).Text.Replace(Environment.NewLine, " ").Replace(" ", "")); - if (data.Length != Zone.ZoneEntities.EntityTrigger1.Size) - return; - CurrentZone.Entities.Triggers1[tEntry].Raw = data; - getTrigger1(); - } - catch - { - (sender as RichTextBox).Text = Util.getHexString(CurrentZone.Entities.Triggers1[tEntry].Raw); - } - } - private void changeRAW_T2(object sender, EventArgs e) - { - if (!(sender is RichTextBox) || !(sender as RichTextBox).Visible) - return; - - try - { - byte[] data = Util.StringToByteArray((sender as RichTextBox).Text.Replace(Environment.NewLine, " ").Replace(" ","")); - if (data.Length != Zone.ZoneEntities.EntityTrigger2.Size) - return; - CurrentZone.Entities.Triggers2[uEntry].Raw = data; - getTrigger2(); - } - catch - { - (sender as RichTextBox).Text = Util.getHexString(CurrentZone.Entities.Triggers2[uEntry].Raw); - } - } - - // RAW Resets - private void B_ResetOverworlds_Click(object sender, EventArgs e) - { - if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Reset all overworld entities?")) - return; - - // since scripts are not editable, just reset the overworld file. - CurrentZone.Entities = new Zone.ZoneEntities(locationData[1]); - getOWSData(); - } - private void B_ResetFurniture_Click(object sender, EventArgs e) - { - CurrentZone.Entities.Furniture[fEntry].OriginalData.CopyTo(CurrentZone.Entities.Furniture[fEntry].Raw, 0); - getFurniture(); - } - private void B_ResetNPC_Click(object sender, EventArgs e) - { - CurrentZone.Entities.NPCs[nEntry].OriginalData.CopyTo(CurrentZone.Entities.NPCs[nEntry].Raw, 0); - getNPC(); - } - private void B_ResetWarp_Click(object sender, EventArgs e) - { - CurrentZone.Entities.Warps[wEntry].OriginalData.CopyTo(CurrentZone.Entities.Warps[wEntry].Raw, 0); - getWarp(); - } - private void B_ResetTrigger1_Click(object sender, EventArgs e) - { - CurrentZone.Entities.Triggers1[tEntry].OriginalData.CopyTo(CurrentZone.Entities.Triggers1[tEntry].Raw, 0); - getTrigger1(); - } - private void B_ResetTrigger2_Click(object sender, EventArgs e) - { - CurrentZone.Entities.Triggers2[uEntry].OriginalData.CopyTo(CurrentZone.Entities.Triggers2[uEntry].Raw, 0); - getTrigger2(); - } - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/Experimental/OWSEStructs.cs b/pk3DS/Subforms/Gen6/Experimental/OWSEStructs.cs deleted file mode 100644 index 1e91a38262..0000000000 --- a/pk3DS/Subforms/Gen6/Experimental/OWSEStructs.cs +++ /dev/null @@ -1,753 +0,0 @@ -using pk3DS.Core; -using System; -using System.Collections.Generic; -using System.Drawing; -using System.Drawing.Imaging; -using System.IO; -using System.Linq; - -namespace pk3DS -{ - #region Game Related Classes - public class MapMatrix - { - public uint u0; - public ushort uL; - public ushort Width, Height; - private readonly int Area; - public ushort[] EntryList; - public Entry[] Entries; - public Unknown[] Unknowns; - - public byte[] UnkData; - public MapMatrix(byte[][] data) - { - using (BinaryReader br = new BinaryReader(new MemoryStream(data[0]))) - { - u0 = br.ReadUInt32(); - Width = br.ReadUInt16(); - Height = br.ReadUInt16(); - Area = Width*Height; - Entries = new Entry[Area]; - EntryList = new ushort[Area]; - for (int i = 0; i < Area; i++) - EntryList[i] = br.ReadUInt16(); - - if (br.BaseStream.Position != br.BaseStream.Length) - uL = br.ReadUInt16(); - } - if (data.Length > 1) - parseUnk(UnkData = data[1]); - } - public byte[] Write() - { - using (MemoryStream ms = new MemoryStream()) - using (BinaryWriter bw = new BinaryWriter(ms)) - { - bw.Write(u0); - bw.Write(Width); - bw.Write(Height); - foreach (ushort Entry in EntryList) bw.Write(Entry); - bw.Write(uL); - return ms.ToArray(); - } - } - - public Bitmap Preview(int Scale, int ColorShift) - { - // Require the entries to be defined in order to continue. - if (Entries.Any(entry => entry == null)) - { - // Do nothing; images are instead created with the standard dimensions and returned. - } - - // Fetch Singular Images first - Bitmap[] EntryImages = new Bitmap[Area]; - for (int i = 0; i < Area; i++) - EntryImages[i] = Entries[i] == null - ? new Bitmap(40 * Scale, 40 * Scale) - : Entries[i].Preview(Scale, ColorShift); - - // Combine all images into one. - Bitmap img = new Bitmap(EntryImages[0].Width * Width, EntryImages[0].Height * Height); - - using (Graphics g = Graphics.FromImage(img)) - for (int i = 0; i < Area; i++) - { - g.DrawImage(EntryImages[i], new Point(i * EntryImages[0].Width % img.Width, EntryImages[0].Height * (i / Width))); - } - return img; - } - - public class Entry - { - public Collision coll; - - public ushort Width, Height; - private readonly int Area; - public uint[] Tiles; // Certain bits? - public Entry(byte[] data) - { - using (BinaryReader br = new BinaryReader(new MemoryStream(data))) - { - Width = br.ReadUInt16(); - Height = br.ReadUInt16(); - Area = Width*Height; - Tiles = new uint[Area]; - for (int i = 0; i < Area; i++) - Tiles[i] = br.ReadUInt32(); - } - } - public byte[] Write() - { - using (MemoryStream ms = new MemoryStream()) - using (BinaryWriter bw = new BinaryWriter(ms)) - { - bw.Write(Width); - bw.Write(Height); - foreach (uint Tile in Tiles) bw.Write(Tile); - return ms.ToArray(); - } - } - - public Bitmap Preview(int s, int ColorShift) - { - byte[] bmpData = BytePreview(s, ColorShift); - Bitmap b = new Bitmap(Width * s, Height * s, PixelFormat.Format32bppArgb); - BitmapData bData = b.LockBits(new Rectangle(0, 0, Width * s, Height * s), ImageLockMode.WriteOnly, PixelFormat.Format32bppArgb); - System.Runtime.InteropServices.Marshal.Copy(bmpData, 0, bData.Scan0, bmpData.Length); - b.UnlockBits(bData); - - return b; - } - public byte[] BytePreview(int s, int ColorShift) - { - byte[] bmpData = new byte[4 * Width * Height * s * s]; - for (int i = 0; i < Area; i++) - { - int X = i % 40; - int Y = i / 40; - uint colorValue = Tiles[i] == 0x01000021 - ? 0xFF000000 - : LCRNG32.Advance(Tiles[i], ColorShift) | 0xFF000000; - - byte[] pixel = BitConverter.GetBytes(colorValue); - for (int x = 0; x < s * s; x++) - pixel.CopyTo(bmpData, 4 * ((Y * s + x / s) * Width * s + X * s + x % s)); - } - return bmpData; - } - } - public class Collision - { - public string Magic; - public int termOffset; - public int U5D8; - public byte[] UnknownBytes; - public CollisionObject[] Map40; - public int[] MapInts; - public CollisionObject[] MapMisc; - public string termMagic; - public byte[] termData; - public Collision(byte[] data) - { - using (BinaryReader br = new BinaryReader(new MemoryStream(data))) - { - Magic = new string(br.ReadChars(4)); // Magic - if (Magic != "coll") - return; // all other properties are null - - termOffset = br.ReadInt32(); - U5D8 = br.ReadInt32(); - UnknownBytes = br.ReadBytes(0x14); - - // Read 40 collision rectangles - Map40 = new CollisionObject[40]; - for (int i = 0; i < Map40.Length; i++) - Map40[i] = new CollisionObject(br.ReadBytes(0x10)); - - // Read 32 Int32s - MapInts = new int[0x20]; - for (int i = 0; i < MapInts.Length; i++) - MapInts[i] = br.ReadInt32(); - - // Read misc collision rectangles - int ct = termOffset - (int)br.BaseStream.Position + 0x10; - MapMisc = new CollisionObject[ct/0x10]; - for (int i = 0; i < MapMisc.Length; i++) - MapMisc[i] = new CollisionObject(br.ReadBytes(0x10)); - - // Read Term - termMagic = new string(br.ReadChars(4)); - if (termMagic != "term") - return; // all other properties are null - - // Read the rest of the data.... - termData = br.ReadBytes((int)(br.BaseStream.Length - br.BaseStream.Position)); - } - } - public class CollisionObject - { - private readonly float _0; - private readonly float _1; - private readonly float _2; - private readonly float _3; // rarely used - - // I don't even know... - public float F1 => _0 / 2; - public float F2 => _1 * 80; - public float F3 => _2 / 2; - public float F4 => _3; - - public CollisionObject(byte[] data) - { - _0 = BitConverter.ToSingle(data, 0x0); - _1 = BitConverter.ToSingle(data, 0x4); - _2 = BitConverter.ToSingle(data, 0x8); - _3 = BitConverter.ToSingle(data, 0xC); - } - public override string ToString() - { - return string.Join(", ", F1.ToString(), F2.ToString(), F3.ToString(), F4.ToString()); - } - } - } - - public string Unk2String() - { - return Unknowns.Aggregate("", (current, l) => current + $"{l.Direction}: {l.p1,3} {l.p2,3} {l.p3,3} {l.p4,3}{Environment.NewLine,3}"); - } - private void parseUnk(byte[] data) - { - List unk = new List(); - using (var br = new BinaryReader(new MemoryStream(data))) - do - { - unk.Add(new Unknown { - Direction = br.ReadUInt32(), - _1 = br.ReadSingle(), - _2 = br.ReadSingle(), - _3 = br.ReadSingle(), - _4 = br.ReadSingle(), - }); - } while (unk.Last().Direction != 0); - unk.RemoveAt(unk.Count-1); - Unknowns = unk.ToArray(); - } - - public class Unknown - { - public uint Direction; - public float _1; - public float _2; - public float _3; - public float _4; - - public int p1 => (int)_1 / 18; - public int p2 => (int)_2 / 18; - public int p3 => (int)_3 / 18; - public int p4 => (int)_4 / 18; - } - } - public class ZoneData - { - internal const int Size = 0x38; - public readonly byte[] Data; - public int MapMatrix { get => BitConverter.ToUInt16(Data, 0x04); set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x04); } - public int TextFile { get => BitConverter.ToUInt16(Data, 0x06); set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x06); } - public int ParentMap // 0x1C - low 7 bits - { - get => BitConverter.ToUInt16(Data, 0x1C) & 0x1FF; - set => BitConverter.GetBytes((ushort)(value | (BitConverter.ToUInt16(Data, 0x1C) & ~0x1FF))).CopyTo(Data, 0x1C); - } - public int OLFlags // 0x1C - high 9(?) bits - { - get => BitConverter.ToUInt16(Data, 0x1C) >> 9; - set => BitConverter.GetBytes((ushort)((value << 9) | (BitConverter.ToUInt16(Data, 0x1C) & 0x1FF))).CopyTo(Data, 0x1C); - } - - private int X { get => BitConverter.ToUInt16(Data, 0x2C); set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x2C); } - public int Z { get => BitConverter.ToInt16(Data, 0x2E); set => BitConverter.GetBytes((short)value).CopyTo(Data, 0x2E); } - private int Y { get => BitConverter.ToUInt16(Data, 0x30); set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x30); } - private int X2 { get => BitConverter.ToUInt16(Data, 0x32); set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x32); } - public int Z2 { get => BitConverter.ToInt16(Data, 0x34); set => BitConverter.GetBytes((short)value).CopyTo(Data, 0x34); } - private int Y2 { get => BitConverter.ToUInt16(Data, 0x36); set => BitConverter.GetBytes((ushort)value).CopyTo(Data, 0x36); } - - public float pX { get => (float)X / 18; set => X = (int)(18 * value); } - public float pY { get => (float)Y / 18; set => Y = (int)(18 * value); } - public float pX2 { get => (float)X2 / 18; set => X2 = (int)(18 * value); } - public float pY2 { get => (float)Y2 / 18; set => Y2 = (int)(18 * value); } - - public ZoneData(byte[] data) - { - if (data.Length != Size) - return; - Data = data; - } - - public byte[] Write() - { - return Data; - } - } - public class Zone - { - public readonly ZoneData ZD; - public ZoneEntities Entities; - public readonly ZoneScript MapScript; - public readonly ZoneEncounters Encounters; - public readonly ZoneUnknown File5; - - public Zone(byte[][] Zone) - { - // A ZO is comprised of 4-5 files. - - // Array 0 is [Map Info] - ZD = new ZoneData(Zone[0]); - // Array 1 is [Overworld Entities & their Scripts] - Entities = new ZoneEntities(Zone[1]); - // Array 2 is [Map Script] - MapScript = new ZoneScript(Zone[2]); - // Array 3 is [Wild Encounters] - Encounters = new ZoneEncounters(Zone[3]); - // Array 4 is [???] - May not be present in all. - if (Zone.Length <= 4) - return; - File5 = new ZoneUnknown(Zone[4]); - } - - public byte[][] Write() - { - byte[][] Zone = new byte[File5 != null ? 5 : 4][]; - Zone[0] = ZD.Data; - Zone[1] = Entities.Write(); - Zone[2] = MapScript.Write(); - Zone[3] = Encounters.Write(); - if (Zone.Length <= 4) - return Zone; - - Zone[4] = File5.Write(); - return Zone; - } - - public class ZoneEntities - { - public byte[] Data; - - public int Length; - public int FurnitureCount, NPCCount, WarpCount, TriggerCount, UnknownCount; - public EntityFurniture[] Furniture; - public EntityNPC[] NPCs; - public EntityWarp[] Warps; - public EntityTrigger1[] Triggers1; - public EntityTrigger2[] Triggers2; - - public Script Script; - - public ZoneEntities(byte[] data) - { - Data = data; - - using (BinaryReader br = new BinaryReader(new MemoryStream(data))) - { - // Load Header - Length = br.ReadInt32(); - Furniture = new EntityFurniture[FurnitureCount = br.ReadByte()]; - NPCs = new EntityNPC[NPCCount = br.ReadByte()]; - Warps = new EntityWarp[WarpCount = br.ReadByte()]; - Triggers1 = new EntityTrigger1[TriggerCount = br.ReadByte()]; - Triggers2 = new EntityTrigger2[UnknownCount = br.ReadInt32()]; // not sure if there's other types or if the remaining 3 bytes are padding. - - // Load Entitites - for (int i = 0; i < FurnitureCount; i++) - Furniture[i] = new EntityFurniture(br.ReadBytes(EntityFurniture.Size)); - for (int i = 0; i < NPCCount; i++) - NPCs[i] = new EntityNPC(br.ReadBytes(EntityNPC.Size)); - for (int i = 0; i < WarpCount; i++) - Warps[i] = new EntityWarp(br.ReadBytes(EntityWarp.Size)); - for (int i = 0; i < TriggerCount; i++) - Triggers1[i] = new EntityTrigger1(br.ReadBytes(EntityTrigger1.Size)); - for (int i = 0; i < UnknownCount; i++) - Triggers2[i] = new EntityTrigger2(br.ReadBytes(EntityTrigger2.Size)); - - // Load Script Data - int len = br.ReadInt32(); - br.BaseStream.Position -= 4; - Script = new Script(br.ReadBytes(len)); - } - } - public byte[] Write() - { - byte[] F = new byte[Furniture.Length * EntityFurniture.Size]; - for (int i = 0; i < Furniture.Length; i++) - Furniture[i].Write().CopyTo(F, i * EntityFurniture.Size); - - byte[] N = new byte[NPCs.Length * EntityNPC.Size]; - for (int i = 0; i < NPCs.Length; i++) - NPCs[i].Write().CopyTo(N, i * EntityNPC.Size); - - byte[] W = new byte[Warps.Length * EntityWarp.Size]; - for (int i = 0; i < Warps.Length; i++) - Warps[i].Write().CopyTo(W, i * EntityWarp.Size); - - byte[] T = new byte[Triggers1.Length * EntityTrigger1.Size]; - for (int i = 0; i < Triggers1.Length; i++) - Triggers1[i].Write().CopyTo(T, i * EntityTrigger1.Size); - - byte[] U = new byte[Triggers2.Length * EntityTrigger2.Size]; - for (int i = 0; i < Triggers2.Length; i++) - Triggers2[i].Write().CopyTo(U, i * EntityTrigger2.Size); - - // Assemble entity information - byte[] OWEntities = F.Concat(N).Concat(W).Concat(T).Concat(U).ToArray(); - byte[] EntityLength = BitConverter.GetBytes(8 + OWEntities.Length); - byte[] EntityCounts = {(byte)Furniture.Length, (byte)NPCs.Length, (byte)Warps.Length, (byte)Triggers1.Length, (byte)Triggers2.Length, 0, 0, 0 }; - - // Reassemble NPC portion - byte[] OWEntityData = EntityLength.Concat(EntityCounts).Concat(OWEntities).ToArray(); - - // Reassemble Script portion - byte[] OWScriptData = Script.Write(); - - byte[] finalData = OWEntityData.Concat(OWScriptData).ToArray(); - - // Add padding zeroes if required (yield size % 4 == 0) - if (finalData.Length % 4 != 0) - Array.Resize(ref finalData, finalData.Length + 4 - finalData.Length % 4); - - return finalData; - } - - // Entity Classes - public class EntityFurniture - { - // Usable Attributes - public int Script { get => BitConverter.ToUInt16(Raw, 0x00); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x00); } - - public int U2 { get => BitConverter.ToUInt16(Raw, 0x02); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x02); } - public int U4 { get => BitConverter.ToUInt16(Raw, 0x04); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x04); } - public int U6 { get => BitConverter.ToUInt16(Raw, 0x06); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x06); } - - // Coordinates have some upper-bit usage it seems... - public int X { get => BitConverter.ToUInt16(Raw, 0x08); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x08); } - public int Y { get => BitConverter.ToUInt16(Raw, 0x0A); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x0A); } - // Next two bytes should be dealing with furniture width? - public int WX { get => BitConverter.ToInt16(Raw, 0x0C); set => BitConverter.GetBytes((short)value).CopyTo(Raw, 0x0C); } - public int WY { get => BitConverter.ToInt16(Raw, 0x0E); set => BitConverter.GetBytes((short)value).CopyTo(Raw, 0x0E); } - - public int U10 { get => BitConverter.ToInt32(Raw, 0x10); set => BitConverter.GetBytes(value).CopyTo(Raw, 0x10); } - - public byte[] Raw; - public byte[] OriginalData; - internal static readonly byte Size = 0x14; - public EntityFurniture(byte[] data = null) - { - Raw = data ?? new byte[Size]; - OriginalData = (byte[])Raw.Clone(); - } - public byte[] Write() - { - return Raw; - } - } - public class EntityNPC - { - // Usable Attributes - public int ID { get => BitConverter.ToUInt16(Raw, 0x00); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x00); } - public int Model { get => BitConverter.ToUInt16(Raw, 0x02); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x02); } - public int MovePermissions { get => BitConverter.ToUInt16(Raw, 0x04); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x04); } - public int MovePermissions2 { get => BitConverter.ToUInt16(Raw, 0x06); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x06); } - public int SpawnFlag { get => BitConverter.ToUInt16(Raw, 0x08); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x08); } - public int Script { get => BitConverter.ToUInt16(Raw, 0x0A); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x0A); } - public int FaceDirection { get => BitConverter.ToUInt16(Raw, 0x0C); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x0C); } - public int SightRange { get => BitConverter.ToUInt16(Raw, 0x0E); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x0E); } - - // XY Only - public int U10 { get => BitConverter.ToUInt16(Raw, 0x10); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x10); } - public int U12 { get => BitConverter.ToUInt16(Raw, 0x12); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x12); } - - // Shorts - public int U14 { get => BitConverter.ToInt16(Raw, 0x14); set => BitConverter.GetBytes((short)value).CopyTo(Raw, 0x14); } - public int U16 { get => BitConverter.ToInt16(Raw, 0x16); set => BitConverter.GetBytes((short)value).CopyTo(Raw, 0x16); } - // Negative only in X/Y... seeing behind them? Might be projection of an interaction area. - public int U18 { get => BitConverter.ToInt16(Raw, 0x18); set => BitConverter.GetBytes((short)value).CopyTo(Raw, 0x18); } - public int U1A { get => BitConverter.ToInt16(Raw, 0x1A); set => BitConverter.GetBytes((short)value).CopyTo(Raw, 0x1A); } - - // WalkArea Leashes (?): If these are for NPCs that walk in an area, I'm not sure if there's a direction specified. - // Set L# to -1 to turn off. - public int L1 { get => BitConverter.ToInt16(Raw, 0x1C); set => BitConverter.GetBytes((short)value).CopyTo(Raw, 0x1C); } - public int L2 { get => BitConverter.ToInt16(Raw, 0x1E); set => BitConverter.GetBytes((short)value).CopyTo(Raw, 0x1E); } - public int L3 { get => BitConverter.ToInt16(Raw, 0x20); set => BitConverter.GetBytes((short)value).CopyTo(Raw, 0x20); } - // Leash Direction? Only used when an area is specified. - public int LDir { get => BitConverter.ToUInt16(Raw, 0x22); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x22); } - - // 0x24-0x25 is Unused in OR/AS, rarely 1 in XY - public int U24 { get => BitConverter.ToUInt16(Raw, 0x24); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x24); } - // 0x26-0x27 is Unused in OR/AS - - // Highest bits for X/Y seem to be fractions of a coordinate? - public int X { get => BitConverter.ToUInt16(Raw, 0x28); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x28); } - public int Y { get => BitConverter.ToUInt16(Raw, 0x2A); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x2A); } - - // -360, 360 ???? - public float Degrees { get => BitConverter.ToSingle(Raw, 0x2C); set => BitConverter.GetBytes(value).CopyTo(Raw, 0x2C); } - public float Deg18 => Degrees/18; - - public byte[] Raw; - public byte[] OriginalData; - internal static readonly byte Size = 0x30; - public EntityNPC(byte[] data = null) - { - Raw = data ?? new byte[Size]; - OriginalData = (byte[])Raw.Clone(); - } - public byte[] Write() - { - return Raw; - } - } - public class EntityWarp - { - // Usable Attributes - public int DestinationMap { get => BitConverter.ToUInt16(Raw, 0x00); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x00); } - public int DestinationTileIndex { get => BitConverter.ToUInt16(Raw, 0x02); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x02); } - - // Not sure if these are widths or face direction - public int WX { get => Raw[0x04]; set => Raw[0x4] = (byte)value; } - public int WY { get => Raw[0x05]; set => Raw[0x5] = (byte)value; } - - // Either 0 or 1, only in X/Y - public int U06 { get => BitConverter.ToUInt16(Raw, 0x06); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x06); } - // Coordinates have some upper-bit usage it seems... - public int X { get => BitConverter.ToUInt16(Raw, 0x08); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x08); } - public int Z { get => BitConverter.ToInt16(Raw, 0x0A); set => BitConverter.GetBytes((short)value).CopyTo(Raw, 0x0A); } - public int Y { get => BitConverter.ToUInt16(Raw, 0x0C); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x0C); } - - public decimal pX => (decimal)X / 18; - public decimal pY => (decimal)Y / 18; - - // Stretches RIGHT - public int Width { get => BitConverter.ToInt16(Raw, 0x0E); set => BitConverter.GetBytes((short)value).CopyTo(Raw, 0x0E); } - // Stretches DOWN - public int Height { get => BitConverter.ToInt16(Raw, 0x10); set => BitConverter.GetBytes((short)value).CopyTo(Raw, 0x10); } - // Not sure. - public int U12 { get => BitConverter.ToInt16(Raw, 0x12); set => BitConverter.GetBytes((short)value).CopyTo(Raw, 0x12); } - - // 0x14-0x15 Unused - // 0x16-0x17 Unused - - public byte[] Raw; - public byte[] OriginalData; - internal static readonly byte Size = 0x18; - public EntityWarp(byte[] data = null) - { - Raw = data ?? new byte[Size]; - OriginalData = (byte[])Raw.Clone(); - } - public byte[] Write() - { - return Raw; - } - } - public class EntityTrigger1 - { - // Usable Attributes - public int Script { get => BitConverter.ToUInt16(Raw, 0x00); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x00); } - public int U2 { get => BitConverter.ToUInt16(Raw, 0x02); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x02); } - public int Constant { get => BitConverter.ToUInt16(Raw, 0x04); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x04); } - - // 0 or 1 for type2, 0/5-8 for type1 - public int U6 { get => BitConverter.ToUInt16(Raw, 0x06); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x06); } - // 0 or 1, always 0 in ORAS - public int U8 { get => BitConverter.ToUInt16(Raw, 0x08); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x08); } - - // 0x0A-0x0B unused - - public int X { get => BitConverter.ToUInt16(Raw, 0x0C); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x0C); } - public int Y { get => BitConverter.ToUInt16(Raw, 0x0E); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x0E); } - - public int Width { get => BitConverter.ToInt16(Raw, 0x10); set => BitConverter.GetBytes((short)value).CopyTo(Raw, 0x10); } - public int Height { get => BitConverter.ToInt16(Raw, 0x12); set => BitConverter.GetBytes((short)value).CopyTo(Raw, 0x12); } - public int U14 { get => BitConverter.ToInt16(Raw, 0x14); set => BitConverter.GetBytes((short)value).CopyTo(Raw, 0x14); } - public int U16 { get => BitConverter.ToInt16(Raw, 0x16); set => BitConverter.GetBytes((short)value).CopyTo(Raw, 0x16); } - - public byte[] Raw; - public byte[] OriginalData; - internal static readonly byte Size = 0x18; - public EntityTrigger1(byte[] data = null) - { - Raw = data ?? new byte[Size]; - OriginalData = (byte[])Raw.Clone(); - } - public byte[] Write() - { - return Raw; - } - } - public class EntityTrigger2 - { - // Usable Attributes - public int Script { get => BitConverter.ToUInt16(Raw, 0x00); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x00); } - public int U2 { get => BitConverter.ToUInt16(Raw, 0x02); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x02); } - public int Constant { get => BitConverter.ToUInt16(Raw, 0x04); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x04); } - - // 0 or 1 for type2, 0/5-8 for type1 - public int U6 { get => BitConverter.ToUInt16(Raw, 0x06); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x06); } - // 0 or 1, always 0 in ORAS - public int U8 { get => BitConverter.ToUInt16(Raw, 0x08); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x08); } - - // 0x0A-0x0B unused - - public int X { get => BitConverter.ToUInt16(Raw, 0x0C); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x0C); } - public int Y { get => BitConverter.ToUInt16(Raw, 0x0E); set => BitConverter.GetBytes((ushort)value).CopyTo(Raw, 0x0E); } - - public int Width { get => BitConverter.ToInt16(Raw, 0x10); set => BitConverter.GetBytes((short)value).CopyTo(Raw, 0x10); } - public int Height { get => BitConverter.ToInt16(Raw, 0x12); set => BitConverter.GetBytes((short)value).CopyTo(Raw, 0x12); } - public int U14 { get => BitConverter.ToInt16(Raw, 0x14); set => BitConverter.GetBytes((short)value).CopyTo(Raw, 0x14); } - public int U16 { get => BitConverter.ToInt16(Raw, 0x16); set => BitConverter.GetBytes((short)value).CopyTo(Raw, 0x16); } - - public byte[] Raw; - public byte[] OriginalData; - internal static readonly byte Size = 0x18; - public EntityTrigger2(byte[] data = null) - { - Raw = data ?? new byte[Size]; - OriginalData = (byte[])Raw.Clone(); - } - public byte[] Write() => Raw; - } - } - public class ZoneScript - { - public byte[] Data; // File details unknown. - public Script Script; - public ZoneScript(byte[] data) - { - Data = data; - Script = new Script(data); - } - public byte[] Write() - { - Data = Script.Write(); - return Data; - } - } - public class ZoneEncounters - { - public byte[] Data; // File details unknown. - public byte[] Header; - public EncounterSet[] Encounters; - public ZoneEncounters(byte[] data) - { - Data = data; - - using (BinaryReader br = new BinaryReader(new MemoryStream(data))) - { - Header = br.ReadBytes(0x10); - Encounters = new EncounterSet[(int)(br.BaseStream.Length - br.BaseStream.Position)/4]; - for (int i = 0; i < Encounters.Length; i++) - Encounters[i] = new EncounterSet(br.ReadBytes(4)); - } - } - public byte[] Write() - { - byte[] data = Header; // Start with the header data, then concat every encounter in afterwards. - return Encounters.Aggregate(data, (current, t) => current.Concat(t.Write()).ToArray()); - } - - public class EncounterSet - { - public int Species; - public int Form; - public byte LevelMin, LevelMax; - - public EncounterSet(byte[] data) - { - using (BinaryReader br = new BinaryReader(new MemoryStream(data))) - { - ushort SpecForm = br.ReadUInt16(); - Species = SpecForm & 0x7FF; - Form = SpecForm >> 11; - LevelMin = br.ReadByte(); - LevelMax = br.ReadByte(); - } - } - public byte[] Write() - { - using (MemoryStream ms = new MemoryStream()) - using (BinaryWriter bw = new BinaryWriter(ms)) - { - bw.Write((ushort)(Species | (Form << 11))); - bw.Write(LevelMin); - bw.Write(LevelMax); - return ms.ToArray(); - } - } - } - } - public class ZoneUnknown - { - public byte[] FileData; // File details unknown. - public ZoneUnknown(byte[] data) - { - FileData = data; - } - - public byte[] Write() - { - return FileData; - } - } - } - public class Script - { - public int Length => BitConverter.ToInt32(Raw, 0x00); - public uint Magic => BitConverter.ToUInt32(Raw, 0x04); - // case 0x0A0AF1E0: code = read_code_block(f); break; - // case 0x0A0AF1EF: debug = read_debug_block(f); break; - public bool Debug => Magic == 0x0A0AF1EF; - - public ushort PtrOffset => BitConverter.ToUInt16(Raw, 0x08); - public ushort PtrCount => BitConverter.ToUInt16(Raw, 0x0A); - - public int ScriptInstructionStart => BitConverter.ToInt32(Raw, 0x0C); - public int ScriptMovementStart => BitConverter.ToInt32(Raw, 0x10); - public int FinalOffset => BitConverter.ToInt32(Raw, 0x14); - public int AllocatedMemory => BitConverter.ToInt32(Raw, 0x18); - - // Generated Attributes - public int CompressedLength => Length - ScriptInstructionStart; - public byte[] CompressedBytes => Raw.Skip(ScriptInstructionStart).ToArray(); - public int DecompressedLength => FinalOffset - ScriptInstructionStart; - public uint[] DecompressedInstructions => Scripts.quickDecompress(CompressedBytes, DecompressedLength/4); - - public uint[] ScriptCommands => DecompressedInstructions.Take((ScriptMovementStart - ScriptInstructionStart) / 4).ToArray(); - public uint[] MoveCommands => DecompressedInstructions.Skip((ScriptMovementStart - ScriptInstructionStart) / 4).ToArray(); - public string[] ParseScript => Scripts.parseScript(ScriptCommands); - public string[] ParseMoves => Scripts.parseMovement(MoveCommands); - - public string Info => "Data Start: 0x" + ScriptInstructionStart.ToString("X4") - + Environment.NewLine + "Movement Offset: 0x" + ScriptMovementStart.ToString("X4") - + Environment.NewLine + "Total Used Size: 0x" + FinalOffset.ToString("X4") - + Environment.NewLine + "Reserved Size: 0x" + AllocatedMemory.ToString("X4") - + Environment.NewLine + "Compressed Len: 0x" + CompressedLength.ToString("X4") - + Environment.NewLine + "Decompressed Len: 0x" + DecompressedLength.ToString("X4") - + Environment.NewLine + "Compression Ratio: " + - ((DecompressedLength - CompressedLength)/(decimal)DecompressedLength).ToString("p1"); - - public byte[] Raw; - public Script(byte[] data = null) - { - Raw = data ?? new byte[0]; - - // sub_51AAFC - if ((Raw[8] & 1) != 0) - throw new ArgumentException("Multi-environment script!?"); - } - public byte[] Write() - { - return Raw; - } - } - #endregion -} diff --git a/pk3DS/Subforms/Gen6/GiftEditor6.Designer.cs b/pk3DS/Subforms/Gen6/GiftEditor6.Designer.cs deleted file mode 100644 index 3a3593387e..0000000000 --- a/pk3DS/Subforms/Gen6/GiftEditor6.Designer.cs +++ /dev/null @@ -1,843 +0,0 @@ -namespace pk3DS -{ - partial class GiftEditor6 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.B_Cancel = new System.Windows.Forms.Button(); - this.B_Save = new System.Windows.Forms.Button(); - this.LB_Gifts = new System.Windows.Forms.ListBox(); - this.CB_Species = new System.Windows.Forms.ComboBox(); - this.CB_HeldItem = new System.Windows.Forms.ComboBox(); - this.NUD_IV0 = new System.Windows.Forms.NumericUpDown(); - this.NUD_IV1 = new System.Windows.Forms.NumericUpDown(); - this.NUD_IV2 = new System.Windows.Forms.NumericUpDown(); - this.NUD_IV3 = new System.Windows.Forms.NumericUpDown(); - this.NUD_IV4 = new System.Windows.Forms.NumericUpDown(); - this.NUD_IV5 = new System.Windows.Forms.NumericUpDown(); - this.L_Species = new System.Windows.Forms.Label(); - this.L_HeldItem = new System.Windows.Forms.Label(); - this.NUD_Level = new System.Windows.Forms.NumericUpDown(); - this.L_Level = new System.Windows.Forms.Label(); - this.NUD_Form = new System.Windows.Forms.NumericUpDown(); - this.L_Form = new System.Windows.Forms.Label(); - this.L_HP = new System.Windows.Forms.Label(); - this.L_ATK = new System.Windows.Forms.Label(); - this.L_DEF = new System.Windows.Forms.Label(); - this.L_SPA = new System.Windows.Forms.Label(); - this.L_SPE = new System.Windows.Forms.Label(); - this.L_SPD = new System.Windows.Forms.Label(); - this.L_Nature = new System.Windows.Forms.Label(); - this.NUD_Nature = new System.Windows.Forms.NumericUpDown(); - this.L_Ability = new System.Windows.Forms.Label(); - this.NUD_Ability = new System.Windows.Forms.NumericUpDown(); - this.L_Gender = new System.Windows.Forms.Label(); - this.NUD_Gender = new System.Windows.Forms.NumericUpDown(); - this.B_RandAll = new System.Windows.Forms.Button(); - this.tabControl1 = new System.Windows.Forms.TabControl(); - this.tabPage1 = new System.Windows.Forms.TabPage(); - this.label1 = new System.Windows.Forms.Label(); - this.L_Hint = new System.Windows.Forms.Label(); - this.tabPage2 = new System.Windows.Forms.TabPage(); - this.L_Mega = new System.Windows.Forms.Label(); - this.CHK_Mega = new System.Windows.Forms.CheckBox(); - this.GB_Tweak = new System.Windows.Forms.GroupBox(); - this.L_RandOpt = new System.Windows.Forms.Label(); - this.CHK_BST = new System.Windows.Forms.CheckBox(); - this.CHK_E = new System.Windows.Forms.CheckBox(); - this.CHK_L = new System.Windows.Forms.CheckBox(); - this.CHK_G6 = new System.Windows.Forms.CheckBox(); - this.CHK_G5 = new System.Windows.Forms.CheckBox(); - this.CHK_G4 = new System.Windows.Forms.CheckBox(); - this.CHK_G3 = new System.Windows.Forms.CheckBox(); - this.CHK_G2 = new System.Windows.Forms.CheckBox(); - this.CHK_G1 = new System.Windows.Forms.CheckBox(); - this.NUD_LevelBoost = new System.Windows.Forms.NumericUpDown(); - this.CHK_Level = new System.Windows.Forms.CheckBox(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_IV0)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_IV1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_IV2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_IV3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_IV4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_IV5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Level)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Form)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Nature)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Ability)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Gender)).BeginInit(); - this.tabControl1.SuspendLayout(); - this.tabPage1.SuspendLayout(); - this.tabPage2.SuspendLayout(); - this.GB_Tweak.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_LevelBoost)).BeginInit(); - this.SuspendLayout(); - // - // B_Cancel - // - this.B_Cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.B_Cancel.Location = new System.Drawing.Point(264, 269); - this.B_Cancel.Name = "B_Cancel"; - this.B_Cancel.Size = new System.Drawing.Size(70, 23); - this.B_Cancel.TabIndex = 467; - this.B_Cancel.Text = "Cancel"; - this.B_Cancel.UseVisualStyleBackColor = true; - this.B_Cancel.Click += new System.EventHandler(this.B_Cancel_Click); - // - // B_Save - // - this.B_Save.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.B_Save.Location = new System.Drawing.Point(335, 269); - this.B_Save.Name = "B_Save"; - this.B_Save.Size = new System.Drawing.Size(70, 23); - this.B_Save.TabIndex = 466; - this.B_Save.Text = "Save"; - this.B_Save.UseVisualStyleBackColor = true; - this.B_Save.Click += new System.EventHandler(this.B_Save_Click); - // - // LB_Gifts - // - this.LB_Gifts.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left))); - this.LB_Gifts.FormattingEnabled = true; - this.LB_Gifts.Location = new System.Drawing.Point(12, 12); - this.LB_Gifts.Name = "LB_Gifts"; - this.LB_Gifts.Size = new System.Drawing.Size(110, 277); - this.LB_Gifts.TabIndex = 468; - this.LB_Gifts.SelectedIndexChanged += new System.EventHandler(this.changeIndex); - // - // CB_Species - // - this.CB_Species.FormattingEnabled = true; - this.CB_Species.Location = new System.Drawing.Point(106, 3); - this.CB_Species.Name = "CB_Species"; - this.CB_Species.Size = new System.Drawing.Size(121, 21); - this.CB_Species.TabIndex = 469; - this.CB_Species.SelectedIndexChanged += new System.EventHandler(this.changeSpecies); - // - // CB_HeldItem - // - this.CB_HeldItem.FormattingEnabled = true; - this.CB_HeldItem.Location = new System.Drawing.Point(106, 30); - this.CB_HeldItem.Name = "CB_HeldItem"; - this.CB_HeldItem.Size = new System.Drawing.Size(121, 21); - this.CB_HeldItem.TabIndex = 470; - // - // NUD_IV0 - // - this.NUD_IV0.Location = new System.Drawing.Point(112, 141); - this.NUD_IV0.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUD_IV0.Minimum = new decimal(new int[] { - 1, - 0, - 0, - -2147483648}); - this.NUD_IV0.Name = "NUD_IV0"; - this.NUD_IV0.Size = new System.Drawing.Size(34, 20); - this.NUD_IV0.TabIndex = 471; - this.NUD_IV0.Value = new decimal(new int[] { - 31, - 0, - 0, - 0}); - // - // NUD_IV1 - // - this.NUD_IV1.Location = new System.Drawing.Point(112, 164); - this.NUD_IV1.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUD_IV1.Minimum = new decimal(new int[] { - 1, - 0, - 0, - -2147483648}); - this.NUD_IV1.Name = "NUD_IV1"; - this.NUD_IV1.Size = new System.Drawing.Size(34, 20); - this.NUD_IV1.TabIndex = 472; - this.NUD_IV1.Value = new decimal(new int[] { - 31, - 0, - 0, - 0}); - // - // NUD_IV2 - // - this.NUD_IV2.Location = new System.Drawing.Point(112, 187); - this.NUD_IV2.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUD_IV2.Minimum = new decimal(new int[] { - 1, - 0, - 0, - -2147483648}); - this.NUD_IV2.Name = "NUD_IV2"; - this.NUD_IV2.Size = new System.Drawing.Size(34, 20); - this.NUD_IV2.TabIndex = 473; - this.NUD_IV2.Value = new decimal(new int[] { - 31, - 0, - 0, - 0}); - // - // NUD_IV3 - // - this.NUD_IV3.Location = new System.Drawing.Point(193, 141); - this.NUD_IV3.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUD_IV3.Minimum = new decimal(new int[] { - 1, - 0, - 0, - -2147483648}); - this.NUD_IV3.Name = "NUD_IV3"; - this.NUD_IV3.Size = new System.Drawing.Size(34, 20); - this.NUD_IV3.TabIndex = 474; - this.NUD_IV3.Value = new decimal(new int[] { - 31, - 0, - 0, - 0}); - // - // NUD_IV4 - // - this.NUD_IV4.Location = new System.Drawing.Point(193, 164); - this.NUD_IV4.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUD_IV4.Minimum = new decimal(new int[] { - 1, - 0, - 0, - -2147483648}); - this.NUD_IV4.Name = "NUD_IV4"; - this.NUD_IV4.Size = new System.Drawing.Size(34, 20); - this.NUD_IV4.TabIndex = 475; - this.NUD_IV4.Value = new decimal(new int[] { - 31, - 0, - 0, - 0}); - // - // NUD_IV5 - // - this.NUD_IV5.Location = new System.Drawing.Point(193, 187); - this.NUD_IV5.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUD_IV5.Minimum = new decimal(new int[] { - 1, - 0, - 0, - -2147483648}); - this.NUD_IV5.Name = "NUD_IV5"; - this.NUD_IV5.Size = new System.Drawing.Size(34, 20); - this.NUD_IV5.TabIndex = 476; - this.NUD_IV5.Value = new decimal(new int[] { - 31, - 0, - 0, - 0}); - // - // L_Species - // - this.L_Species.Location = new System.Drawing.Point(6, 2); - this.L_Species.Name = "L_Species"; - this.L_Species.Size = new System.Drawing.Size(94, 21); - this.L_Species.TabIndex = 477; - this.L_Species.Text = "Species:"; - this.L_Species.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_HeldItem - // - this.L_HeldItem.Location = new System.Drawing.Point(6, 29); - this.L_HeldItem.Name = "L_HeldItem"; - this.L_HeldItem.Size = new System.Drawing.Size(94, 21); - this.L_HeldItem.TabIndex = 478; - this.L_HeldItem.Text = "Held Item:"; - this.L_HeldItem.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_Level - // - this.NUD_Level.Location = new System.Drawing.Point(106, 57); - this.NUD_Level.Name = "NUD_Level"; - this.NUD_Level.Size = new System.Drawing.Size(41, 20); - this.NUD_Level.TabIndex = 479; - this.NUD_Level.Value = new decimal(new int[] { - 100, - 0, - 0, - 0}); - // - // L_Level - // - this.L_Level.Location = new System.Drawing.Point(7, 55); - this.L_Level.Name = "L_Level"; - this.L_Level.Size = new System.Drawing.Size(94, 21); - this.L_Level.TabIndex = 480; - this.L_Level.Text = "Level:"; - this.L_Level.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_Form - // - this.NUD_Form.Location = new System.Drawing.Point(193, 57); - this.NUD_Form.Name = "NUD_Form"; - this.NUD_Form.Size = new System.Drawing.Size(34, 20); - this.NUD_Form.TabIndex = 481; - // - // L_Form - // - this.L_Form.Location = new System.Drawing.Point(99, 55); - this.L_Form.Name = "L_Form"; - this.L_Form.Size = new System.Drawing.Size(94, 21); - this.L_Form.TabIndex = 482; - this.L_Form.Text = "Form:"; - this.L_Form.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_HP - // - this.L_HP.Location = new System.Drawing.Point(18, 139); - this.L_HP.Name = "L_HP"; - this.L_HP.Size = new System.Drawing.Size(94, 21); - this.L_HP.TabIndex = 483; - this.L_HP.Text = "HP:"; - this.L_HP.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_ATK - // - this.L_ATK.Location = new System.Drawing.Point(18, 162); - this.L_ATK.Name = "L_ATK"; - this.L_ATK.Size = new System.Drawing.Size(94, 21); - this.L_ATK.TabIndex = 484; - this.L_ATK.Text = "Atk:"; - this.L_ATK.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_DEF - // - this.L_DEF.Location = new System.Drawing.Point(18, 185); - this.L_DEF.Name = "L_DEF"; - this.L_DEF.Size = new System.Drawing.Size(94, 21); - this.L_DEF.TabIndex = 485; - this.L_DEF.Text = "Def:"; - this.L_DEF.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_SPA - // - this.L_SPA.Location = new System.Drawing.Point(99, 139); - this.L_SPA.Name = "L_SPA"; - this.L_SPA.Size = new System.Drawing.Size(94, 21); - this.L_SPA.TabIndex = 486; - this.L_SPA.Text = "SpA:"; - this.L_SPA.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_SPE - // - this.L_SPE.Location = new System.Drawing.Point(99, 185); - this.L_SPE.Name = "L_SPE"; - this.L_SPE.Size = new System.Drawing.Size(94, 21); - this.L_SPE.TabIndex = 487; - this.L_SPE.Text = "Spe:"; - this.L_SPE.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_SPD - // - this.L_SPD.Location = new System.Drawing.Point(99, 162); - this.L_SPD.Name = "L_SPD"; - this.L_SPD.Size = new System.Drawing.Size(94, 21); - this.L_SPD.TabIndex = 488; - this.L_SPD.Text = "SpD:"; - this.L_SPD.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_Nature - // - this.L_Nature.Location = new System.Drawing.Point(7, 77); - this.L_Nature.Name = "L_Nature"; - this.L_Nature.Size = new System.Drawing.Size(94, 21); - this.L_Nature.TabIndex = 490; - this.L_Nature.Text = "Nature:"; - this.L_Nature.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_Nature - // - this.NUD_Nature.Location = new System.Drawing.Point(106, 79); - this.NUD_Nature.Maximum = new decimal(new int[] { - 24, - 0, - 0, - 0}); - this.NUD_Nature.Minimum = new decimal(new int[] { - 1, - 0, - 0, - -2147483648}); - this.NUD_Nature.Name = "NUD_Nature"; - this.NUD_Nature.Size = new System.Drawing.Size(34, 20); - this.NUD_Nature.TabIndex = 491; - this.NUD_Nature.Value = new decimal(new int[] { - 1, - 0, - 0, - -2147483648}); - // - // L_Ability - // - this.L_Ability.Location = new System.Drawing.Point(99, 77); - this.L_Ability.Name = "L_Ability"; - this.L_Ability.Size = new System.Drawing.Size(94, 21); - this.L_Ability.TabIndex = 493; - this.L_Ability.Text = "Ability:"; - this.L_Ability.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_Ability - // - this.NUD_Ability.Location = new System.Drawing.Point(193, 79); - this.NUD_Ability.Maximum = new decimal(new int[] { - 2, - 0, - 0, - 0}); - this.NUD_Ability.Minimum = new decimal(new int[] { - 1, - 0, - 0, - -2147483648}); - this.NUD_Ability.Name = "NUD_Ability"; - this.NUD_Ability.Size = new System.Drawing.Size(34, 20); - this.NUD_Ability.TabIndex = 492; - // - // L_Gender - // - this.L_Gender.Location = new System.Drawing.Point(99, 100); - this.L_Gender.Name = "L_Gender"; - this.L_Gender.Size = new System.Drawing.Size(94, 21); - this.L_Gender.TabIndex = 495; - this.L_Gender.Text = "Gender:"; - this.L_Gender.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_Gender - // - this.NUD_Gender.Location = new System.Drawing.Point(193, 102); - this.NUD_Gender.Maximum = new decimal(new int[] { - 2, - 0, - 0, - 0}); - this.NUD_Gender.Name = "NUD_Gender"; - this.NUD_Gender.Size = new System.Drawing.Size(34, 20); - this.NUD_Gender.TabIndex = 494; - // - // B_RandAll - // - this.B_RandAll.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.B_RandAll.Location = new System.Drawing.Point(181, 269); - this.B_RandAll.Name = "B_RandAll"; - this.B_RandAll.Size = new System.Drawing.Size(83, 23); - this.B_RandAll.TabIndex = 496; - this.B_RandAll.Text = "Randomize All"; - this.B_RandAll.UseVisualStyleBackColor = true; - this.B_RandAll.Click += new System.EventHandler(this.B_RandAll_Click); - // - // tabControl1 - // - this.tabControl1.Controls.Add(this.tabPage1); - this.tabControl1.Controls.Add(this.tabPage2); - this.tabControl1.Location = new System.Drawing.Point(128, 12); - this.tabControl1.Name = "tabControl1"; - this.tabControl1.SelectedIndex = 0; - this.tabControl1.Size = new System.Drawing.Size(280, 251); - this.tabControl1.TabIndex = 502; - // - // tabPage1 - // - this.tabPage1.Controls.Add(this.label1); - this.tabPage1.Controls.Add(this.L_DEF); - this.tabPage1.Controls.Add(this.L_ATK); - this.tabPage1.Controls.Add(this.L_Hint); - this.tabPage1.Controls.Add(this.L_HP); - this.tabPage1.Controls.Add(this.NUD_IV0); - this.tabPage1.Controls.Add(this.NUD_IV1); - this.tabPage1.Controls.Add(this.NUD_IV2); - this.tabPage1.Controls.Add(this.L_Gender); - this.tabPage1.Controls.Add(this.CB_Species); - this.tabPage1.Controls.Add(this.NUD_Gender); - this.tabPage1.Controls.Add(this.NUD_Ability); - this.tabPage1.Controls.Add(this.NUD_Nature); - this.tabPage1.Controls.Add(this.L_Ability); - this.tabPage1.Controls.Add(this.L_SPA); - this.tabPage1.Controls.Add(this.L_Nature); - this.tabPage1.Controls.Add(this.L_SPE); - this.tabPage1.Controls.Add(this.L_SPD); - this.tabPage1.Controls.Add(this.L_Species); - this.tabPage1.Controls.Add(this.L_HeldItem); - this.tabPage1.Controls.Add(this.NUD_Level); - this.tabPage1.Controls.Add(this.L_Level); - this.tabPage1.Controls.Add(this.L_Form); - this.tabPage1.Controls.Add(this.CB_HeldItem); - this.tabPage1.Controls.Add(this.NUD_Form); - this.tabPage1.Controls.Add(this.NUD_IV5); - this.tabPage1.Controls.Add(this.NUD_IV4); - this.tabPage1.Controls.Add(this.NUD_IV3); - this.tabPage1.Location = new System.Drawing.Point(4, 22); - this.tabPage1.Name = "tabPage1"; - this.tabPage1.Padding = new System.Windows.Forms.Padding(3); - this.tabPage1.Size = new System.Drawing.Size(272, 225); - this.tabPage1.TabIndex = 0; - this.tabPage1.Text = "Editor"; - this.tabPage1.UseVisualStyleBackColor = true; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(6, 155); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(83, 65); - this.label1.TabIndex = 502; - this.label1.Text = "Ability:\r\n0: Random\r\n1: Ability 1\r\n2: Ability 2\r\n3: Hidden Ability"; - // - // L_Hint - // - this.L_Hint.AutoSize = true; - this.L_Hint.Location = new System.Drawing.Point(7, 99); - this.L_Hint.Name = "L_Hint"; - this.L_Hint.Size = new System.Drawing.Size(67, 52); - this.L_Hint.TabIndex = 500; - this.L_Hint.Text = "Gender:\r\n0: Random/-\r\n1: Male\r\n2: Female"; - // - // tabPage2 - // - this.tabPage2.Controls.Add(this.L_Mega); - this.tabPage2.Controls.Add(this.CHK_Mega); - this.tabPage2.Controls.Add(this.GB_Tweak); - this.tabPage2.Controls.Add(this.NUD_LevelBoost); - this.tabPage2.Controls.Add(this.CHK_Level); - this.tabPage2.Location = new System.Drawing.Point(4, 22); - this.tabPage2.Name = "tabPage2"; - this.tabPage2.Padding = new System.Windows.Forms.Padding(3); - this.tabPage2.Size = new System.Drawing.Size(272, 225); - this.tabPage2.TabIndex = 1; - this.tabPage2.Text = "Randomizer Options"; - this.tabPage2.UseVisualStyleBackColor = true; - // - // L_Mega - // - this.L_Mega.Location = new System.Drawing.Point(26, 190); - this.L_Mega.Name = "L_Mega"; - this.L_Mega.Size = new System.Drawing.Size(101, 33); - this.L_Mega.TabIndex = 512; - this.L_Mega.Text = "XY - Lucario\nORAS - Lati@s"; - this.L_Mega.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // CHK_Mega - // - this.CHK_Mega.AutoSize = true; - this.CHK_Mega.Checked = true; - this.CHK_Mega.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_Mega.Location = new System.Drawing.Point(9, 176); - this.CHK_Mega.Name = "CHK_Mega"; - this.CHK_Mega.Size = new System.Drawing.Size(264, 17); - this.CHK_Mega.TabIndex = 511; - this.CHK_Mega.Text = "Replace Megas with Another Mega (via Held Item)"; - this.CHK_Mega.UseVisualStyleBackColor = true; - // - // GB_Tweak - // - this.GB_Tweak.Controls.Add(this.L_RandOpt); - this.GB_Tweak.Controls.Add(this.CHK_BST); - this.GB_Tweak.Controls.Add(this.CHK_E); - this.GB_Tweak.Controls.Add(this.CHK_L); - this.GB_Tweak.Controls.Add(this.CHK_G6); - this.GB_Tweak.Controls.Add(this.CHK_G5); - this.GB_Tweak.Controls.Add(this.CHK_G4); - this.GB_Tweak.Controls.Add(this.CHK_G3); - this.GB_Tweak.Controls.Add(this.CHK_G2); - this.GB_Tweak.Controls.Add(this.CHK_G1); - this.GB_Tweak.Location = new System.Drawing.Point(7, 62); - this.GB_Tweak.Name = "GB_Tweak"; - this.GB_Tweak.Size = new System.Drawing.Size(258, 100); - this.GB_Tweak.TabIndex = 509; - this.GB_Tweak.TabStop = false; - this.GB_Tweak.Text = "Extra Randomization Tweaks"; - // - // L_RandOpt - // - this.L_RandOpt.AutoSize = true; - this.L_RandOpt.Location = new System.Drawing.Point(6, 16); - this.L_RandOpt.Name = "L_RandOpt"; - this.L_RandOpt.Size = new System.Drawing.Size(105, 13); - this.L_RandOpt.TabIndex = 294; - this.L_RandOpt.Text = "Randomizer Options:"; - // - // CHK_BST - // - this.CHK_BST.AutoSize = true; - this.CHK_BST.Location = new System.Drawing.Point(128, 64); - this.CHK_BST.Name = "CHK_BST"; - this.CHK_BST.Size = new System.Drawing.Size(117, 17); - this.CHK_BST.TabIndex = 288; - this.CHK_BST.Text = "Randomize by BST"; - this.CHK_BST.UseVisualStyleBackColor = true; - // - // CHK_E - // - this.CHK_E.AutoSize = true; - this.CHK_E.Checked = true; - this.CHK_E.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_E.Location = new System.Drawing.Point(128, 49); - this.CHK_E.Name = "CHK_E"; - this.CHK_E.Size = new System.Drawing.Size(98, 17); - this.CHK_E.TabIndex = 287; - this.CHK_E.Text = "Event Legends"; - this.CHK_E.UseVisualStyleBackColor = true; - // - // CHK_L - // - this.CHK_L.AutoSize = true; - this.CHK_L.Checked = true; - this.CHK_L.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_L.Location = new System.Drawing.Point(128, 34); - this.CHK_L.Name = "CHK_L"; - this.CHK_L.Size = new System.Drawing.Size(98, 17); - this.CHK_L.TabIndex = 286; - this.CHK_L.Text = "Game Legends"; - this.CHK_L.UseVisualStyleBackColor = true; - // - // CHK_G6 - // - this.CHK_G6.AutoSize = true; - this.CHK_G6.Checked = true; - this.CHK_G6.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G6.Location = new System.Drawing.Point(67, 64); - this.CHK_G6.Name = "CHK_G6"; - this.CHK_G6.Size = new System.Drawing.Size(55, 17); - this.CHK_G6.TabIndex = 285; - this.CHK_G6.Text = "Gen 6"; - this.CHK_G6.UseVisualStyleBackColor = true; - // - // CHK_G5 - // - this.CHK_G5.AutoSize = true; - this.CHK_G5.Checked = true; - this.CHK_G5.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G5.Location = new System.Drawing.Point(67, 49); - this.CHK_G5.Name = "CHK_G5"; - this.CHK_G5.Size = new System.Drawing.Size(55, 17); - this.CHK_G5.TabIndex = 284; - this.CHK_G5.Text = "Gen 5"; - this.CHK_G5.UseVisualStyleBackColor = true; - // - // CHK_G4 - // - this.CHK_G4.AutoSize = true; - this.CHK_G4.Checked = true; - this.CHK_G4.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G4.Location = new System.Drawing.Point(67, 34); - this.CHK_G4.Name = "CHK_G4"; - this.CHK_G4.Size = new System.Drawing.Size(55, 17); - this.CHK_G4.TabIndex = 283; - this.CHK_G4.Text = "Gen 4"; - this.CHK_G4.UseVisualStyleBackColor = true; - // - // CHK_G3 - // - this.CHK_G3.AutoSize = true; - this.CHK_G3.Checked = true; - this.CHK_G3.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G3.Location = new System.Drawing.Point(9, 64); - this.CHK_G3.Name = "CHK_G3"; - this.CHK_G3.Size = new System.Drawing.Size(55, 17); - this.CHK_G3.TabIndex = 282; - this.CHK_G3.Text = "Gen 3"; - this.CHK_G3.UseVisualStyleBackColor = true; - // - // CHK_G2 - // - this.CHK_G2.AutoSize = true; - this.CHK_G2.Checked = true; - this.CHK_G2.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G2.Location = new System.Drawing.Point(9, 49); - this.CHK_G2.Name = "CHK_G2"; - this.CHK_G2.Size = new System.Drawing.Size(55, 17); - this.CHK_G2.TabIndex = 281; - this.CHK_G2.Text = "Gen 2"; - this.CHK_G2.UseVisualStyleBackColor = true; - // - // CHK_G1 - // - this.CHK_G1.AutoSize = true; - this.CHK_G1.Checked = true; - this.CHK_G1.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G1.Location = new System.Drawing.Point(9, 34); - this.CHK_G1.Name = "CHK_G1"; - this.CHK_G1.Size = new System.Drawing.Size(55, 17); - this.CHK_G1.TabIndex = 280; - this.CHK_G1.Text = "Gen 1"; - this.CHK_G1.UseVisualStyleBackColor = true; - // - // NUD_LevelBoost - // - this.NUD_LevelBoost.DecimalPlaces = 2; - this.NUD_LevelBoost.Increment = new decimal(new int[] { - 5, - 0, - 0, - 131072}); - this.NUD_LevelBoost.Location = new System.Drawing.Point(140, 6); - this.NUD_LevelBoost.Maximum = new decimal(new int[] { - 3, - 0, - 0, - 0}); - this.NUD_LevelBoost.Name = "NUD_LevelBoost"; - this.NUD_LevelBoost.Size = new System.Drawing.Size(43, 20); - this.NUD_LevelBoost.TabIndex = 303; - this.NUD_LevelBoost.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // CHK_Level - // - this.CHK_Level.AutoSize = true; - this.CHK_Level.Checked = true; - this.CHK_Level.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_Level.Location = new System.Drawing.Point(9, 7); - this.CHK_Level.Name = "CHK_Level"; - this.CHK_Level.Size = new System.Drawing.Size(130, 17); - this.CHK_Level.TabIndex = 302; - this.CHK_Level.Text = "Multiply PKM Level by"; - this.CHK_Level.UseVisualStyleBackColor = true; - // - // GiftEditor6 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(417, 304); - this.Controls.Add(this.tabControl1); - this.Controls.Add(this.B_RandAll); - this.Controls.Add(this.LB_Gifts); - this.Controls.Add(this.B_Cancel); - this.Controls.Add(this.B_Save); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.MinimumSize = new System.Drawing.Size(433, 343); - this.Name = "GiftEditor6"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Gift Editor"; - ((System.ComponentModel.ISupportInitialize)(this.NUD_IV0)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_IV1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_IV2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_IV3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_IV4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_IV5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Level)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Form)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Nature)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Ability)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Gender)).EndInit(); - this.tabControl1.ResumeLayout(false); - this.tabPage1.ResumeLayout(false); - this.tabPage1.PerformLayout(); - this.tabPage2.ResumeLayout(false); - this.tabPage2.PerformLayout(); - this.GB_Tweak.ResumeLayout(false); - this.GB_Tweak.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_LevelBoost)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.Button B_Cancel; - private System.Windows.Forms.Button B_Save; - private System.Windows.Forms.ListBox LB_Gifts; - private System.Windows.Forms.ComboBox CB_Species; - private System.Windows.Forms.ComboBox CB_HeldItem; - private System.Windows.Forms.NumericUpDown NUD_IV0; - private System.Windows.Forms.NumericUpDown NUD_IV1; - private System.Windows.Forms.NumericUpDown NUD_IV2; - private System.Windows.Forms.NumericUpDown NUD_IV3; - private System.Windows.Forms.NumericUpDown NUD_IV4; - private System.Windows.Forms.NumericUpDown NUD_IV5; - private System.Windows.Forms.Label L_Species; - private System.Windows.Forms.Label L_HeldItem; - private System.Windows.Forms.NumericUpDown NUD_Level; - private System.Windows.Forms.Label L_Level; - private System.Windows.Forms.NumericUpDown NUD_Form; - private System.Windows.Forms.Label L_Form; - private System.Windows.Forms.Label L_HP; - private System.Windows.Forms.Label L_ATK; - private System.Windows.Forms.Label L_DEF; - private System.Windows.Forms.Label L_SPA; - private System.Windows.Forms.Label L_SPE; - private System.Windows.Forms.Label L_SPD; - private System.Windows.Forms.Label L_Nature; - private System.Windows.Forms.NumericUpDown NUD_Nature; - private System.Windows.Forms.Label L_Ability; - private System.Windows.Forms.NumericUpDown NUD_Ability; - private System.Windows.Forms.Label L_Gender; - private System.Windows.Forms.NumericUpDown NUD_Gender; - private System.Windows.Forms.Button B_RandAll; - private System.Windows.Forms.TabControl tabControl1; - private System.Windows.Forms.TabPage tabPage1; - private System.Windows.Forms.TabPage tabPage2; - private System.Windows.Forms.NumericUpDown NUD_LevelBoost; - private System.Windows.Forms.CheckBox CHK_Level; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Label L_Hint; - private System.Windows.Forms.GroupBox GB_Tweak; - private System.Windows.Forms.Label L_RandOpt; - private System.Windows.Forms.CheckBox CHK_BST; - private System.Windows.Forms.CheckBox CHK_E; - private System.Windows.Forms.CheckBox CHK_L; - private System.Windows.Forms.CheckBox CHK_G6; - private System.Windows.Forms.CheckBox CHK_G5; - private System.Windows.Forms.CheckBox CHK_G4; - private System.Windows.Forms.CheckBox CHK_G3; - private System.Windows.Forms.CheckBox CHK_G2; - private System.Windows.Forms.CheckBox CHK_G1; - private System.Windows.Forms.CheckBox CHK_Mega; - private System.Windows.Forms.Label L_Mega; - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/GiftEditor6.cs b/pk3DS/Subforms/Gen6/GiftEditor6.cs deleted file mode 100644 index 59c675c3f3..0000000000 --- a/pk3DS/Subforms/Gen6/GiftEditor6.cs +++ /dev/null @@ -1,281 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Windows.Forms; - -using pk3DS.Core; -using pk3DS.Core.Randomizers; -using pk3DS.Core.Structures; - -namespace pk3DS -{ - public partial class GiftEditor6 : Form - { - public GiftEditor6() - { - specieslist[0] = "---"; - Array.Resize(ref specieslist, Main.Config.MaxSpeciesID + 1); - if (!File.Exists(FieldPath)) - { - WinFormsUtil.Error("CRO does not exist! Closing.", FieldPath); - Close(); - } - InitializeComponent(); - Dictionary megaDictionary = GetMegaDictionary(Main.Config); - MegaDictionary = megaDictionary; - - specieslist[0] = "---"; - abilitylist[0] = itemlist[0] = movelist[0] = "(None)"; // blank == -1 - - CB_Species.Items.Clear(); - foreach (string s in specieslist) - CB_Species.Items.Add(s); - CB_HeldItem.Items.Clear(); - foreach (string s in itemlist) - CB_HeldItem.Items.Add(s); - - loadData(); - } - - public static Dictionary GetMegaDictionary(GameConfig config) - { - return config.XY ? MegaDictionaryXY : MegaDictionaryAO.Concat(MegaDictionaryXY) - .ToDictionary(pair => pair.Key, pair => pair.Value); - } - - private readonly string FieldPath = Path.Combine(Main.RomFSPath, "DllField.cro"); - private byte[] FieldData; - private readonly int fieldOffset = Main.Config.ORAS ? 0xF906C : 0xF805C; - private readonly int fieldSize = Main.Config.ORAS ? 0x24 : 0x18; - private readonly int count = Main.Config.ORAS ? 0x25 : 0x13; - private EncounterGift6[] GiftData; - private readonly string[] abilitylist = Main.Config.getText(TextName.AbilityNames); - private readonly string[] movelist = Main.Config.getText(TextName.MoveNames); - private readonly string[] itemlist = Main.Config.getText(TextName.ItemNames); - private readonly string[] specieslist = Main.Config.getText(TextName.SpeciesNames); - private readonly Dictionary MegaDictionary; - private void B_Save_Click(object sender, EventArgs e) - { - saveEntry(); - saveData(); - Close(); - } - private void B_Cancel_Click(object sender, EventArgs e) - { - Close(); - } - private void loadData() - { - FieldData = File.ReadAllBytes(FieldPath); - GiftData = new EncounterGift6[count]; - LB_Gifts.Items.Clear(); - for (int i = 0; i < GiftData.Length; i++) - { - GiftData[i] = new EncounterGift6(FieldData.Skip(fieldOffset + i * fieldSize).Take(fieldSize).ToArray(), Main.Config.ORAS); - LB_Gifts.Items.Add($"{i:00} - {specieslist[GiftData[i].Species]}"); - } - loaded = true; - LB_Gifts.SelectedIndex = 0; - } - private void saveData() - { - // Check to see if a starter has been modified right before we write data. - bool starters = false; - int[] entries = Main.Config.ORAS - ? new[] - { - 0, 1, 2, // Gen 3 - 28, 29, 30, // Gen 2 - 31, 32, 33, // Gen 4 - 34, 35, 36 // Gen 5 - } - : new[] - { - 0, 1, 2, // Gen 6 - 3, 4, 5, // Gen 1 - }; - - for (int i = 0; i < GiftData.Length; i++) - { - int offset = fieldOffset + i*fieldSize; - - // Check too see if starters got modified - if (Array.IndexOf(entries, i) > - 1 && BitConverter.ToUInt16(FieldData, offset) != GiftData[i].Species) - starters = true; - - // Write new data - Array.Copy(GiftData[i].Write(), 0, FieldData, offset, fieldSize); - } - - if (starters) // are modified - WinFormsUtil.Alert("Starters have been modified.", - "Be sure to update the Starters in DllPoke3Select.cro by updating via the Starter Editor."); - - File.WriteAllBytes(FieldPath, FieldData); - } - - private int entry = -1; - private bool loaded; - private void changeIndex(object sender, EventArgs e) - { - if (LB_Gifts.SelectedIndex < 0) - return; - if (!loaded) - return; - if (entry != -1) - saveEntry(); - entry = LB_Gifts.SelectedIndex; - loadEntry(); - } - private void loadEntry() - { - bool oldloaded = loaded; - loaded = false; - CB_Species.SelectedIndex = GiftData[entry].Species; - CB_HeldItem.SelectedIndex = GiftData[entry].HeldItem; - NUD_Level.Value = GiftData[entry].Level; - NUD_Form.Value = GiftData[entry].Form; - NUD_Nature.Value = GiftData[entry].Nature; - NUD_Ability.Value = GiftData[entry].Ability; - NUD_Gender.Value = GiftData[entry].Gender; - - NUD_IV0.Value = GiftData[entry].IVs[0]; - NUD_IV1.Value = GiftData[entry].IVs[1]; - NUD_IV2.Value = GiftData[entry].IVs[2]; - NUD_IV3.Value = GiftData[entry].IVs[3]; - NUD_IV4.Value = GiftData[entry].IVs[4]; - NUD_IV5.Value = GiftData[entry].IVs[5]; - loaded |= oldloaded; - } - private void saveEntry() - { - GiftData[entry].Species = (ushort)CB_Species.SelectedIndex; - GiftData[entry].HeldItem = CB_HeldItem.SelectedIndex; - GiftData[entry].Level = (byte)NUD_Level.Value; - GiftData[entry].Form = (byte)NUD_Form.Value; - GiftData[entry].Nature = (sbyte)NUD_Nature.Value; - GiftData[entry].Ability = (sbyte)NUD_Ability.Value; - GiftData[entry].Gender = (sbyte)NUD_Gender.Value; - - GiftData[entry].IVs[0] = (sbyte)NUD_IV0.Value; - GiftData[entry].IVs[1] = (sbyte)NUD_IV1.Value; - GiftData[entry].IVs[2] = (sbyte)NUD_IV2.Value; - GiftData[entry].IVs[3] = (sbyte)NUD_IV3.Value; - GiftData[entry].IVs[4] = (sbyte)NUD_IV4.Value; - GiftData[entry].IVs[5] = (sbyte)NUD_IV5.Value; - } - - private void B_RandAll_Click(object sender, EventArgs e) - { - if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomize all? Cannot undo.", "Double check Randomization settings in the Randomizer Options tab.") != DialogResult.Yes) return; - - var formrand = new FormRandomizer(Main.Config) { AllowMega = false, AllowAlolanForm = false }; - var specrand = new SpeciesRandomizer(Main.Config) - { - G1 = CHK_G1.Checked, - G2 = CHK_G2.Checked, - G3 = CHK_G3.Checked, - G4 = CHK_G4.Checked, - G5 = CHK_G5.Checked, - G6 = CHK_G6.Checked, - G7 = false, - - E = CHK_E.Checked, - L = CHK_L.Checked, - - rBST = CHK_BST.Checked, - }; - specrand.Initialize(); - for (int i = 0; i < LB_Gifts.Items.Count; i++) - { - LB_Gifts.SelectedIndex = i; - int species = CB_Species.SelectedIndex; - if (MegaDictionary.Values.Any(z => z.Contains(CB_HeldItem.SelectedIndex))) // mega stone gift pkm (only lucario?) - { - if (!CHK_Mega.Checked) - continue; // skip Lucario, battle needs to mega evolve - - int[] items = GetRandomMega(out species); - CB_HeldItem.SelectedIndex = items[Util.rand.Next(0, items.Length)]; - } - else - species = specrand.GetRandomSpecies(species); - - CB_Species.SelectedIndex = species; - NUD_Form.Value = formrand.GetRandomForme(species); - NUD_Gender.Value = 0; // random - - if (CHK_Level.Checked) - NUD_Level.Value = Randomizer.getModifiedLevel((int)NUD_Level.Value, NUD_LevelBoost.Value); - } - WinFormsUtil.Alert("Randomized all Gift Pokémon according to specification!"); - } - - private int[] GetRandomMega(out int species) - { - int rnd = Util.rand.Next(0, MegaDictionary.Count - 1); - species = MegaDictionary.Keys.ElementAt(rnd); - return MegaDictionary.Values.ElementAt(rnd); - } - - private static readonly Dictionary MegaDictionaryXY = new Dictionary - { - {003, new[] {659}}, // Venusaur @ Venusaurite - {006, new[] {660, 678}}, // Charizard @ Charizardite X/Y - {009, new[] {661}}, // Blastoise @ Blastoisinite - {065, new[] {679}}, // Alakazam @ Alakazite - {094, new[] {656}}, // Gengar @ Gengarite - {115, new[] {675}}, // Kangaskhan @ Kangaskhanite - {127, new[] {671}}, // Pinsir @ Pinsirite - {130, new[] {676}}, // Gyarados @ Gyaradosite - {142, new[] {672}}, // Aerodactyl @ Aerodactylite - {150, new[] {662, 663}}, // Mewtwo @ Mewtwonite X/Y - {181, new[] {658}}, // Ampharos @ Ampharosite - {212, new[] {670}}, // Scizor @ Scizorite - {214, new[] {680}}, // Heracross @ Heracronite - {229, new[] {666}}, // Houndoom @ Houndoominite - {248, new[] {669}}, // Tyranitar @ Tyranitarite - {257, new[] {664}}, // Blaziken @ Blazikenite - {282, new[] {657}}, // Gardevoir @ Gardevoirite - {303, new[] {681}}, // Mawile @ Mawilite - {306, new[] {667}}, // Aggron @ Aggronite - {308, new[] {665}}, // Medicham @ Medichamite - {310, new[] {682}}, // Manectric @ Manectite - {354, new[] {668}}, // Banette @ Banettite - {359, new[] {677}}, // Absol @ Absolite - {445, new[] {683}}, // Garchomp @ Garchompite - {448, new[] {673}}, // Lucario @ Lucarionite - {460, new[] {674}}, // Abomasnow @ Abomasite - }; - private static readonly Dictionary MegaDictionaryAO = new Dictionary - { - {015, new[] {770}}, // Beedrill @ Beedrillite - {018, new[] {762}}, // Pidgeot @ Pidgeotite - {080, new[] {760}}, // Slowbro @ Slowbronite - {208, new[] {761}}, // Steelix @ Steelixite - {254, new[] {753}}, // Sceptile @ Sceptilite - {260, new[] {752}}, // Swampert @ Swampertite - {302, new[] {754}}, // Sableye @ Sablenite - {319, new[] {759}}, // Sharpedo @ Sharpedonite - {323, new[] {767}}, // Camerupt @ Cameruptite - {334, new[] {755}}, // Altaria @ Altarianite - {362, new[] {763}}, // Glalie @ Glalitite - {373, new[] {769}}, // Salamence @ Salamencite - {376, new[] {758}}, // Metagross @ Metagrossite - {380, new[] {684}}, // Latias @ Latiasite - {381, new[] {685}}, // Latios @ Latiosite - {428, new[] {768}}, // Lopunny @ Lopunnite - {475, new[] {756}}, // Gallade @ Galladite - {531, new[] {757}}, // Audino @ Audinite - {719, new[] {764}}, // Diancie @ Diancite - - {384, new[] {-620}}, // Rayquaza @ Dragon Ascent - }; - private void changeSpecies(object sender, EventArgs e) - { - int index = LB_Gifts.SelectedIndex; - LB_Gifts.Items[index] = index.ToString("00") + " - " + CB_Species.Text; - } - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/ItemEditor6.Designer.cs b/pk3DS/Subforms/Gen6/ItemEditor6.Designer.cs deleted file mode 100644 index 1383e009cc..0000000000 --- a/pk3DS/Subforms/Gen6/ItemEditor6.Designer.cs +++ /dev/null @@ -1,133 +0,0 @@ -namespace pk3DS -{ - partial class ItemEditor6 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.Grid = new System.Windows.Forms.PropertyGrid(); - this.L_Index = new System.Windows.Forms.Label(); - this.RTB = new System.Windows.Forms.RichTextBox(); - this.L_Item = new System.Windows.Forms.Label(); - this.CB_Item = new System.Windows.Forms.ComboBox(); - this.B_Table = new System.Windows.Forms.Button(); - this.SuspendLayout(); - // - // Grid - // - this.Grid.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.Grid.LineColor = System.Drawing.SystemColors.ControlDark; - this.Grid.Location = new System.Drawing.Point(12, 94); - this.Grid.Name = "Grid"; - this.Grid.Size = new System.Drawing.Size(316, 280); - this.Grid.TabIndex = 52; - // - // L_Index - // - this.L_Index.AutoSize = true; - this.L_Index.Location = new System.Drawing.Point(221, 14); - this.L_Index.Name = "L_Index"; - this.L_Index.Size = new System.Drawing.Size(39, 13); - this.L_Index.TabIndex = 51; - this.L_Index.Text = "Index: "; - // - // RTB - // - this.RTB.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.RTB.Location = new System.Drawing.Point(11, 37); - this.RTB.Name = "RTB"; - this.RTB.ReadOnly = true; - this.RTB.Size = new System.Drawing.Size(316, 51); - this.RTB.TabIndex = 50; - this.RTB.Text = ""; - // - // L_Item - // - this.L_Item.Location = new System.Drawing.Point(12, 10); - this.L_Item.Name = "L_Item"; - this.L_Item.Size = new System.Drawing.Size(51, 21); - this.L_Item.TabIndex = 49; - this.L_Item.Text = "Item:"; - this.L_Item.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // CB_Item - // - this.CB_Item.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; - this.CB_Item.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Item.DropDownWidth = 120; - this.CB_Item.FormattingEnabled = true; - this.CB_Item.Location = new System.Drawing.Point(71, 10); - this.CB_Item.Name = "CB_Item"; - this.CB_Item.Size = new System.Drawing.Size(144, 21); - this.CB_Item.TabIndex = 48; - this.CB_Item.SelectedIndexChanged += new System.EventHandler(this.changeEntry); - // - // B_Table - // - this.B_Table.Location = new System.Drawing.Point(253, 94); - this.B_Table.Name = "B_Table"; - this.B_Table.Size = new System.Drawing.Size(75, 23); - this.B_Table.TabIndex = 53; - this.B_Table.Text = "Export Table"; - this.B_Table.UseVisualStyleBackColor = true; - this.B_Table.Click += new System.EventHandler(this.B_Table_Click); - // - // ItemEditor6 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(339, 381); - this.Controls.Add(this.B_Table); - this.Controls.Add(this.Grid); - this.Controls.Add(this.L_Index); - this.Controls.Add(this.RTB); - this.Controls.Add(this.L_Item); - this.Controls.Add(this.CB_Item); - this.MaximizeBox = false; - this.MaximumSize = new System.Drawing.Size(355, 1000); - this.MinimumSize = new System.Drawing.Size(355, 420); - this.Name = "ItemEditor6"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Item Editor"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.formClosing); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.PropertyGrid Grid; - private System.Windows.Forms.Label L_Index; - private System.Windows.Forms.RichTextBox RTB; - private System.Windows.Forms.Label L_Item; - private System.Windows.Forms.ComboBox CB_Item; - private System.Windows.Forms.Button B_Table; - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/ItemEditor6.cs b/pk3DS/Subforms/Gen6/ItemEditor6.cs deleted file mode 100644 index 1e09613585..0000000000 --- a/pk3DS/Subforms/Gen6/ItemEditor6.cs +++ /dev/null @@ -1,77 +0,0 @@ -using System; -using System.IO; -using System.Linq; -using System.Windows.Forms; -using pk3DS.Core; -using pk3DS.Core.Structures; - -namespace pk3DS -{ - public partial class ItemEditor6 : Form - { - public ItemEditor6(byte[][] infiles) - { - files = infiles; - itemlist[0] = ""; - - InitializeComponent(); - Setup(); - } - - private readonly byte[][] files; - private readonly string[] itemlist = Main.Config.getText(TextName.ItemNames); - private readonly string[] itemflavor = Main.Config.getText(TextName.ItemFlavor); - - private void Setup() - { - foreach (string s in itemlist) CB_Item.Items.Add(s); - CB_Item.SelectedIndex = 1; - } - private int entry = -1; - private void changeEntry(object sender, EventArgs e) - { - setEntry(); - entry = CB_Item.SelectedIndex; - L_Index.Text = "Index: " + entry.ToString("000"); - getEntry(); - } - private void getEntry() - { - if (entry < 1) return; - Grid.SelectedObject = new Item(files[entry]); - - RTB.Text = itemflavor[entry].Replace("\\n", Environment.NewLine); - } - private void setEntry() - { - if (entry < 1) return; - files[entry] = ((Item)Grid.SelectedObject).Write(); - } - private void formClosing(object sender, FormClosingEventArgs e) - { - setEntry(); - } - - private int getItemMapOffset() - { - if (Main.ExeFSPath == null) { WinFormsUtil.Alert("No exeFS code to load."); return -1; } - string[] exefsFiles = Directory.GetFiles(Main.ExeFSPath); - if (!File.Exists(exefsFiles[0]) || !Path.GetFileNameWithoutExtension(exefsFiles[0]).Contains("code")) { WinFormsUtil.Alert("No .code.bin detected."); return -1; } - byte[] data = File.ReadAllBytes(exefsFiles[0]); - - byte[] reference = Main.Config.ORAS - ? new byte[] { 0x92, 0x0A, 0x06, 0x3F, 0x75, 0x02 } // ORAS (vanilla @ 47C640) - : new byte[] { 0x92, 0x0A, 0x06, 0x3F, 0x41, 0x02 }; // XY (vanilla @ 43DB74) - - int ptr = Util.IndexOfBytes(data, reference, 0x400000, 0) - 2 + reference.Length; - return ptr; - } - - private void B_Table_Click(object sender, EventArgs e) - { - var items = files.Select(z => new Item(z)); - Clipboard.SetText(TableUtil.GetTable(items, itemlist)); - System.Media.SystemSounds.Asterisk.Play(); - } - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/LevelUpEditor6.Designer.cs b/pk3DS/Subforms/Gen6/LevelUpEditor6.Designer.cs deleted file mode 100644 index f2c0cc0455..0000000000 --- a/pk3DS/Subforms/Gen6/LevelUpEditor6.Designer.cs +++ /dev/null @@ -1,354 +0,0 @@ -namespace pk3DS -{ - partial class LevelUpEditor6 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.dgv = new System.Windows.Forms.DataGridView(); - this.CB_Species = new System.Windows.Forms.ComboBox(); - this.L_Species = new System.Windows.Forms.Label(); - this.B_RandAll = new System.Windows.Forms.Button(); - this.B_Dump = new System.Windows.Forms.Button(); - this.groupBox1 = new System.Windows.Forms.GroupBox(); - this.CHK_NoFixedDamage = new System.Windows.Forms.CheckBox(); - this.CHK_4MovesLvl1 = new System.Windows.Forms.CheckBox(); - this.L_Moves = new System.Windows.Forms.Label(); - this.NUD_Moves = new System.Windows.Forms.NumericUpDown(); - this.CHK_Expand = new System.Windows.Forms.CheckBox(); - this.L_Scale2 = new System.Windows.Forms.Label(); - this.NUD_Level = new System.Windows.Forms.NumericUpDown(); - this.L_Scale1 = new System.Windows.Forms.Label(); - this.CHK_Spread = new System.Windows.Forms.CheckBox(); - this.L_STAB = new System.Windows.Forms.Label(); - this.NUD_STAB = new System.Windows.Forms.NumericUpDown(); - this.CHK_STAB = new System.Windows.Forms.CheckBox(); - this.CHK_HMs = new System.Windows.Forms.CheckBox(); - this.PB_MonSprite = new System.Windows.Forms.PictureBox(); - ((System.ComponentModel.ISupportInitialize)(this.dgv)).BeginInit(); - this.groupBox1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Moves)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Level)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_STAB)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_MonSprite)).BeginInit(); - this.SuspendLayout(); - // - // dgv - // - this.dgv.AllowUserToResizeColumns = false; - this.dgv.AllowUserToResizeRows = false; - this.dgv.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.dgv.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgv.Location = new System.Drawing.Point(12, 41); - this.dgv.Name = "dgv"; - this.dgv.Size = new System.Drawing.Size(282, 359); - this.dgv.TabIndex = 0; - // - // CB_Species - // - this.CB_Species.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Species.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Species.FormattingEnabled = true; - this.CB_Species.Location = new System.Drawing.Point(66, 12); - this.CB_Species.Name = "CB_Species"; - this.CB_Species.Size = new System.Drawing.Size(121, 21); - this.CB_Species.TabIndex = 1; - this.CB_Species.SelectedIndexChanged += new System.EventHandler(this.changeEntry); - // - // L_Species - // - this.L_Species.AutoSize = true; - this.L_Species.Location = new System.Drawing.Point(12, 15); - this.L_Species.Name = "L_Species"; - this.L_Species.Size = new System.Drawing.Size(48, 13); - this.L_Species.TabIndex = 2; - this.L_Species.Text = "Species:"; - // - // B_RandAll - // - this.B_RandAll.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.B_RandAll.Location = new System.Drawing.Point(300, 10); - this.B_RandAll.Name = "B_RandAll"; - this.B_RandAll.Size = new System.Drawing.Size(95, 23); - this.B_RandAll.TabIndex = 4; - this.B_RandAll.Text = "Randomize!"; - this.B_RandAll.UseVisualStyleBackColor = true; - this.B_RandAll.Click += new System.EventHandler(this.B_RandAll_Click); - // - // B_Dump - // - this.B_Dump.Location = new System.Drawing.Point(248, 10); - this.B_Dump.Name = "B_Dump"; - this.B_Dump.Size = new System.Drawing.Size(46, 23); - this.B_Dump.TabIndex = 5; - this.B_Dump.Text = "Dump"; - this.B_Dump.UseVisualStyleBackColor = true; - this.B_Dump.Click += new System.EventHandler(this.B_Dump_Click); - // - // groupBox1 - // - this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Right))); - this.groupBox1.Controls.Add(this.CHK_NoFixedDamage); - this.groupBox1.Controls.Add(this.CHK_4MovesLvl1); - this.groupBox1.Controls.Add(this.L_Moves); - this.groupBox1.Controls.Add(this.NUD_Moves); - this.groupBox1.Controls.Add(this.CHK_Expand); - this.groupBox1.Controls.Add(this.L_Scale2); - this.groupBox1.Controls.Add(this.NUD_Level); - this.groupBox1.Controls.Add(this.L_Scale1); - this.groupBox1.Controls.Add(this.CHK_Spread); - this.groupBox1.Controls.Add(this.L_STAB); - this.groupBox1.Controls.Add(this.NUD_STAB); - this.groupBox1.Controls.Add(this.CHK_STAB); - this.groupBox1.Controls.Add(this.CHK_HMs); - this.groupBox1.Location = new System.Drawing.Point(300, 39); - this.groupBox1.Name = "groupBox1"; - this.groupBox1.Size = new System.Drawing.Size(95, 362); - this.groupBox1.TabIndex = 6; - this.groupBox1.TabStop = false; - this.groupBox1.Text = "Options"; - // - // CHK_NoFixedDamage - // - this.CHK_NoFixedDamage.AutoSize = true; - this.CHK_NoFixedDamage.Checked = true; - this.CHK_NoFixedDamage.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_NoFixedDamage.Location = new System.Drawing.Point(5, 271); - this.CHK_NoFixedDamage.Name = "CHK_NoFixedDamage"; - this.CHK_NoFixedDamage.Size = new System.Drawing.Size(68, 43); - this.CHK_NoFixedDamage.TabIndex = 14; - this.CHK_NoFixedDamage.Text = "No Fixed\nDamage\nMoves\n(Dragon Rage\n+ Sonic Boom)"; - this.CHK_NoFixedDamage.UseVisualStyleBackColor = true; - // - // CHK_4MovesLvl1 - // - this.CHK_4MovesLvl1.AutoSize = true; - this.CHK_4MovesLvl1.Location = new System.Drawing.Point(5, 159); - this.CHK_4MovesLvl1.Name = "CHK_4MovesLvl1"; - this.CHK_4MovesLvl1.Size = new System.Drawing.Size(70, 30); - this.CHK_4MovesLvl1.TabIndex = 11; - this.CHK_4MovesLvl1.Text = "Start with\n4 Moves"; - this.CHK_4MovesLvl1.UseVisualStyleBackColor = true; - // - // L_Moves - // - this.L_Moves.AutoSize = true; - this.L_Moves.Location = new System.Drawing.Point(10, 130); - this.L_Moves.Name = "L_Moves"; - this.L_Moves.Size = new System.Drawing.Size(42, 13); - this.L_Moves.TabIndex = 10; - this.L_Moves.Text = "Moves:"; - // - // NUD_Moves - // - this.NUD_Moves.Enabled = false; - this.NUD_Moves.Location = new System.Drawing.Point(53, 128); - this.NUD_Moves.Maximum = new decimal(new int[] { - 25, - 0, - 0, - 0}); - this.NUD_Moves.Minimum = new decimal(new int[] { - 25, - 0, - 0, - 0}); - this.NUD_Moves.Name = "NUD_Moves"; - this.NUD_Moves.Size = new System.Drawing.Size(36, 20); - this.NUD_Moves.TabIndex = 9; - this.NUD_Moves.Value = new decimal(new int[] { - 25, - 0, - 0, - 0}); - // - // CHK_Expand - // - this.CHK_Expand.AutoSize = true; - this.CHK_Expand.Location = new System.Drawing.Point(5, 110); - this.CHK_Expand.Name = "CHK_Expand"; - this.CHK_Expand.Size = new System.Drawing.Size(86, 17); - this.CHK_Expand.TabIndex = 8; - this.CHK_Expand.Text = "Expand Pool"; - this.CHK_Expand.UseVisualStyleBackColor = true; - // - // L_Scale2 - // - this.L_Scale2.AutoSize = true; - this.L_Scale2.Location = new System.Drawing.Point(2, 242); - this.L_Scale2.Name = "L_Scale2"; - this.L_Scale2.Size = new System.Drawing.Size(50, 13); - this.L_Scale2.TabIndex = 7; - this.L_Scale2.Text = "@ Level:"; - // - // NUD_Level - // - this.NUD_Level.Location = new System.Drawing.Point(54, 240); - this.NUD_Level.Minimum = new decimal(new int[] { - 16, - 0, - 0, - 0}); - this.NUD_Level.Name = "NUD_Level"; - this.NUD_Level.Size = new System.Drawing.Size(36, 20); - this.NUD_Level.TabIndex = 6; - this.NUD_Level.Value = new decimal(new int[] { - 75, - 0, - 0, - 0}); - // - // L_Scale1 - // - this.L_Scale1.AutoSize = true; - this.L_Scale1.Location = new System.Drawing.Point(5, 224); - this.L_Scale1.Name = "L_Scale1"; - this.L_Scale1.Size = new System.Drawing.Size(73, 13); - this.L_Scale1.TabIndex = 5; - this.L_Scale1.Text = "Stop Learning"; - // - // CHK_Spread - // - this.CHK_Spread.AutoSize = true; - this.CHK_Spread.Location = new System.Drawing.Point(5, 204); - this.CHK_Spread.Name = "CHK_Spread"; - this.CHK_Spread.Size = new System.Drawing.Size(95, 17); - this.CHK_Spread.TabIndex = 4; - this.CHK_Spread.Text = "Spread Evenly"; - this.CHK_Spread.UseVisualStyleBackColor = true; - // - // L_STAB - // - this.L_STAB.AutoSize = true; - this.L_STAB.Location = new System.Drawing.Point(6, 74); - this.L_STAB.Name = "L_STAB"; - this.L_STAB.Size = new System.Drawing.Size(46, 13); - this.L_STAB.TabIndex = 3; - this.L_STAB.Text = "% STAB"; - // - // NUD_STAB - // - this.NUD_STAB.Location = new System.Drawing.Point(53, 72); - this.NUD_STAB.Minimum = new decimal(new int[] { - 5, - 0, - 0, - 0}); - this.NUD_STAB.Name = "NUD_STAB"; - this.NUD_STAB.Size = new System.Drawing.Size(36, 20); - this.NUD_STAB.TabIndex = 2; - this.NUD_STAB.Value = new decimal(new int[] { - 52, - 0, - 0, - 0}); - // - // CHK_STAB - // - this.CHK_STAB.AutoSize = true; - this.CHK_STAB.Location = new System.Drawing.Point(5, 54); - this.CHK_STAB.Name = "CHK_STAB"; - this.CHK_STAB.Size = new System.Drawing.Size(87, 17); - this.CHK_STAB.TabIndex = 1; - this.CHK_STAB.Text = "Bias by Type"; - this.CHK_STAB.UseVisualStyleBackColor = true; - this.CHK_STAB.CheckedChanged += new System.EventHandler(this.CHK_TypeBias_CheckedChanged); - // - // CHK_HMs - // - this.CHK_HMs.AutoSize = true; - this.CHK_HMs.Location = new System.Drawing.Point(5, 19); - this.CHK_HMs.Name = "CHK_HMs"; - this.CHK_HMs.Size = new System.Drawing.Size(76, 17); - this.CHK_HMs.TabIndex = 0; - this.CHK_HMs.Text = "Allow HMs"; - this.CHK_HMs.UseVisualStyleBackColor = true; - // - // PB_MonSprite - // - this.PB_MonSprite.Location = new System.Drawing.Point(193, 5); - this.PB_MonSprite.Name = "PB_MonSprite"; - this.PB_MonSprite.Size = new System.Drawing.Size(40, 30); - this.PB_MonSprite.TabIndex = 90; - this.PB_MonSprite.TabStop = false; - // - // LevelUpEditor6 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(404, 412); - this.Controls.Add(this.PB_MonSprite); - this.Controls.Add(this.groupBox1); - this.Controls.Add(this.B_Dump); - this.Controls.Add(this.B_RandAll); - this.Controls.Add(this.L_Species); - this.Controls.Add(this.CB_Species); - this.Controls.Add(this.dgv); - this.MaximizeBox = false; - this.MinimumSize = new System.Drawing.Size(322, 450); - this.Name = "LevelUpEditor6"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Level Up Move Editor"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.formClosing); - ((System.ComponentModel.ISupportInitialize)(this.dgv)).EndInit(); - this.groupBox1.ResumeLayout(false); - this.groupBox1.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Moves)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Level)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_STAB)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_MonSprite)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.DataGridView dgv; - private System.Windows.Forms.ComboBox CB_Species; - private System.Windows.Forms.Label L_Species; - private System.Windows.Forms.Button B_RandAll; - private System.Windows.Forms.Button B_Dump; - private System.Windows.Forms.GroupBox groupBox1; - private System.Windows.Forms.CheckBox CHK_STAB; - private System.Windows.Forms.CheckBox CHK_HMs; - private System.Windows.Forms.Label L_STAB; - private System.Windows.Forms.NumericUpDown NUD_STAB; - private System.Windows.Forms.Label L_Scale2; - private System.Windows.Forms.NumericUpDown NUD_Level; - private System.Windows.Forms.Label L_Scale1; - private System.Windows.Forms.CheckBox CHK_Spread; - private System.Windows.Forms.Label L_Moves; - private System.Windows.Forms.NumericUpDown NUD_Moves; - private System.Windows.Forms.CheckBox CHK_Expand; - private System.Windows.Forms.PictureBox PB_MonSprite; - private System.Windows.Forms.CheckBox CHK_4MovesLvl1; - private System.Windows.Forms.CheckBox CHK_NoFixedDamage; - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/LevelUpEditor6.cs b/pk3DS/Subforms/Gen6/LevelUpEditor6.cs deleted file mode 100644 index 08f0536824..0000000000 --- a/pk3DS/Subforms/Gen6/LevelUpEditor6.cs +++ /dev/null @@ -1,228 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Drawing; -using System.IO; -using System.Linq; -using System.Media; -using System.Text; -using System.Windows.Forms; -using pk3DS.Properties; -using pk3DS.Core.Structures; -using pk3DS.Core; -using pk3DS.Core.Randomizers; - -namespace pk3DS -{ - public partial class LevelUpEditor6 : Form - { - public LevelUpEditor6(byte[][] infiles) - { - InitializeComponent(); - files = infiles; - string[] species = Main.Config.getText(TextName.SpeciesNames); - string[][] AltForms = Main.Config.Personal.getFormList(species, Main.Config.MaxSpeciesID); - int[] baseForm, formVal; - string[] specieslist = Main.Config.Personal.getPersonalEntryList(AltForms, species, Main.Config.MaxSpeciesID, out baseForm, out formVal); - specieslist[0] = movelist[0] = ""; - - string[] sortedspecies = (string[])specieslist.Clone(); - Array.Resize(ref sortedspecies, Main.Config.MaxSpeciesID); Array.Sort(sortedspecies); - setupDGV(); - - var newlist = new List(); - for (int i = 1; i < Main.Config.MaxSpeciesID; i++) // add all species - newlist.Add(new WinFormsUtil.cbItem { Text = sortedspecies[i], Value = Array.IndexOf(specieslist, sortedspecies[i]) }); - for (int i = Main.Config.MaxSpeciesID; i < specieslist.Length; i++) // add all forms - newlist.Add(new WinFormsUtil.cbItem { Text = specieslist[i], Value = i }); - - CB_Species.DisplayMember = "Text"; - CB_Species.ValueMember = "Value"; - CB_Species.DataSource = newlist; - CB_Species.SelectedIndex = 0; - } - - private readonly byte[][] files; - private int entry = -1; - private readonly string[] movelist = Main.Config.getText(TextName.MoveNames); - private bool dumping; - private void setupDGV() - { - string[] sortedmoves = (string[])movelist.Clone(); - Array.Sort(sortedmoves); - DataGridViewColumn dgvLevel = new DataGridViewTextBoxColumn(); - { - dgvLevel.HeaderText = "Level"; - dgvLevel.DisplayIndex = 0; - dgvLevel.Width = 45; - dgvLevel.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; - } - DataGridViewComboBoxColumn dgvMove = new DataGridViewComboBoxColumn(); - { - dgvMove.HeaderText = "Move"; - dgvMove.DisplayIndex = 1; - for (int i = 0; i < movelist.Length; i++) - dgvMove.Items.Add(sortedmoves[i]); // add only the Names - - dgvMove.Width = 135; - dgvMove.FlatStyle = FlatStyle.Flat; - } - dgv.Columns.Add(dgvLevel); - dgv.Columns.Add(dgvMove); - } - - private Learnset6 pkm; - private void getList() - { - entry = WinFormsUtil.getIndex(CB_Species); - - int[] specForm = Main.Config.Personal.getSpeciesForm(entry, Main.Config); - string filename = "_" + specForm[0] + (entry > 721 ? "_" + (specForm[1] + 1) : ""); - PB_MonSprite.Image = (Bitmap)Resources.ResourceManager.GetObject(filename); - - dgv.Rows.Clear(); - byte[] input = files[entry]; - if (input.Length <= 4) { files[entry] = BitConverter.GetBytes(-1); return; } - pkm = new Learnset6(input); - - dgv.Rows.Add(pkm.Count); - - // Fill Entries - for (int i = 0; i < pkm.Count; i++) - { - dgv.Rows[i].Cells[0].Value = pkm.Levels[i]; - dgv.Rows[i].Cells[1].Value = movelist[pkm.Moves[i]]; - } - - dgv.CancelEdit(); - } - private void setList() - { - if (entry < 1 || dumping) return; - List moves = new List(); - List levels = new List(); - for (int i = 0; i < dgv.Rows.Count - 1; i++) - { - int move = Array.IndexOf(movelist, dgv.Rows[i].Cells[1].Value); - if (move < 1) continue; - - moves.Add((short)move); - string level = (dgv.Rows[i].Cells[0].Value ?? 0).ToString(); - short lv; - short.TryParse(level, out lv); - if (lv > 100) lv = 100; - else if (lv == 0) lv = 1; - levels.Add(lv); - } - pkm.Moves = moves.ToArray(); - pkm.Levels = levels.ToArray(); - files[entry] = pkm.Write(); - } - - private void changeEntry(object sender, EventArgs e) - { - setList(); - getList(); - } - - private void B_RandAll_Click(object sender, EventArgs e) - { - ushort[] HMs = { 15, 19, 57, 70, 127, 249, 291 }; - ushort[] TMs = {}; - if (CHK_HMs.Checked && Main.ExeFSPath != null) - TMHMEditor6.getTMHMList(Main.Config.ORAS, ref TMs, ref HMs); - - List banned = new List {165, 621}; // Struggle, Hyperspace Fury - if (!CHK_HMs.Checked) - banned.AddRange(HMs.Select(z => (int)z)); - if (CHK_NoFixedDamage.Checked) - banned.AddRange(MoveRandomizer.FixedDamageMoves); - - setList(); - var sets = files.Select(z => new Learnset6(z)).ToArray(); - var rand = new LearnsetRandomizer(Main.Config, sets) - { - Expand = CHK_Expand.Checked, - ExpandTo = (int)NUD_Moves.Value, - Spread = CHK_Spread.Checked, - SpreadTo = (int)NUD_Level.Value, - STAB = CHK_STAB.Checked, - rSTABPercent = NUD_STAB.Value, - STABFirst = CHK_STAB.Checked, - BannedMoves = banned.ToArray(), - Learn4Level1 = CHK_4MovesLvl1.Checked, - }; - rand.Execute(); - sets.Select(z => z.Write()).ToArray().CopyTo(files, 0); - getList(); - WinFormsUtil.Alert("All Pokémon's Level Up Moves have been randomized!"); - } - private void B_Dump_Click(object sender, EventArgs e) - { - if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Dump all Level Up Moves to Text File?")) - return; - - dumping = true; - string result = ""; - for (int i = 0; i < CB_Species.Items.Count; i++) - { - CB_Species.SelectedIndex = i; // Get new Species - result += "======" + Environment.NewLine + entry + " " + CB_Species.Text + Environment.NewLine + "======" + Environment.NewLine; - for (int j = 0; j < dgv.Rows.Count - 1; j++) - result += $"{dgv.Rows[j].Cells[0].Value} - {dgv.Rows[j].Cells[1].Value + Environment.NewLine}"; - - result += Environment.NewLine; - } - SaveFileDialog sfd = new SaveFileDialog {FileName = "Level Up Moves.txt", Filter = "Text File|*.txt"}; - - SystemSounds.Asterisk.Play(); - if (sfd.ShowDialog() == DialogResult.OK) - { - string path = sfd.FileName; - File.WriteAllText(path, result, Encoding.Unicode); - } - dumping = false; - } - - private void formClosing(object sender, FormClosingEventArgs e) - { - setList(); - } - - private void CHK_TypeBias_CheckedChanged(object sender, EventArgs e) - { - NUD_STAB.Enabled = CHK_STAB.Checked; - NUD_STAB.Value = CHK_STAB.Checked ? 52 : NUD_STAB.Minimum; - } - - public void calcStats() // Debug Function - { - Move[] MoveData = Main.Config.Moves; - - int movectr = 0; - int max = 0; - int spec = 0; - int stab = 0; - for (int i = 0; i < Main.Config.MaxSpeciesID; i++) - { - byte[] movedata = files[i]; - int movecount = (movedata.Length - 4) / 4; - if (movecount == 65535) - continue; - movectr += movecount; // Average Moves - if (max < movecount) { max = movecount; spec = i; } // Max Moves (and species) - for (int m = 0; m < movedata.Length / 4; m++) - { - int move = BitConverter.ToUInt16(movedata, m*4); - if (move == 65535) - { - movectr--; - continue; - } - if (Main.Config.Personal[i].Types.Contains(MoveData[move].Type)) - stab++; - } - } - WinFormsUtil.Alert($"Moves Learned: {movectr}\r\nMost Learned: {max} @ {spec}\r\nSTAB Count: {stab}"); - } - } -} diff --git a/pk3DS/Subforms/Gen6/MaisonEditor6.Designer.cs b/pk3DS/Subforms/Gen6/MaisonEditor6.Designer.cs deleted file mode 100644 index a9591c989a..0000000000 --- a/pk3DS/Subforms/Gen6/MaisonEditor6.Designer.cs +++ /dev/null @@ -1,457 +0,0 @@ -namespace pk3DS -{ - partial class MaisonEditor6 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.CB_Trainer = new System.Windows.Forms.ComboBox(); - this.CB_Pokemon = new System.Windows.Forms.ComboBox(); - this.L_Trainer = new System.Windows.Forms.Label(); - this.L_Pokemon = new System.Windows.Forms.Label(); - this.GB_Trainer = new System.Windows.Forms.GroupBox(); - this.L_Class = new System.Windows.Forms.Label(); - this.B_Remove = new System.Windows.Forms.Button(); - this.B_Set = new System.Windows.Forms.Button(); - this.LB_Choices = new System.Windows.Forms.ListBox(); - this.CB_Class = new System.Windows.Forms.ComboBox(); - this.GB_Pokemon = new System.Windows.Forms.GroupBox(); - this.PB_PKM = new System.Windows.Forms.PictureBox(); - this.CHK_Spe = new System.Windows.Forms.CheckBox(); - this.CHK_SpD = new System.Windows.Forms.CheckBox(); - this.CHK_SpA = new System.Windows.Forms.CheckBox(); - this.CHK_DEF = new System.Windows.Forms.CheckBox(); - this.CHK_ATK = new System.Windows.Forms.CheckBox(); - this.CHK_HP = new System.Windows.Forms.CheckBox(); - this.L_Species = new System.Windows.Forms.Label(); - this.L_Item = new System.Windows.Forms.Label(); - this.L_Nature = new System.Windows.Forms.Label(); - this.L_Moves = new System.Windows.Forms.Label(); - this.CB_Item = new System.Windows.Forms.ComboBox(); - this.CB_Nature = new System.Windows.Forms.ComboBox(); - this.CB_Move4 = new System.Windows.Forms.ComboBox(); - this.CB_Move2 = new System.Windows.Forms.ComboBox(); - this.CB_Move3 = new System.Windows.Forms.ComboBox(); - this.CB_Move1 = new System.Windows.Forms.ComboBox(); - this.CB_Species = new System.Windows.Forms.ComboBox(); - this.B_DumpPKs = new System.Windows.Forms.Button(); - this.DumpTRs = new System.Windows.Forms.Button(); - this.GB_Trainer.SuspendLayout(); - this.GB_Pokemon.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.PB_PKM)).BeginInit(); - this.SuspendLayout(); - // - // CB_Trainer - // - this.CB_Trainer.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Trainer.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Trainer.FormattingEnabled = true; - this.CB_Trainer.Location = new System.Drawing.Point(67, 8); - this.CB_Trainer.Name = "CB_Trainer"; - this.CB_Trainer.Size = new System.Drawing.Size(121, 21); - this.CB_Trainer.TabIndex = 0; - this.CB_Trainer.SelectedIndexChanged += new System.EventHandler(this.changeTrainer); - // - // CB_Pokemon - // - this.CB_Pokemon.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon.FormattingEnabled = true; - this.CB_Pokemon.Location = new System.Drawing.Point(361, 8); - this.CB_Pokemon.Name = "CB_Pokemon"; - this.CB_Pokemon.Size = new System.Drawing.Size(106, 21); - this.CB_Pokemon.TabIndex = 1; - this.CB_Pokemon.SelectedIndexChanged += new System.EventHandler(this.changePokemon); - // - // L_Trainer - // - this.L_Trainer.AutoSize = true; - this.L_Trainer.Location = new System.Drawing.Point(18, 11); - this.L_Trainer.Name = "L_Trainer"; - this.L_Trainer.Size = new System.Drawing.Size(43, 13); - this.L_Trainer.TabIndex = 2; - this.L_Trainer.Text = "Trainer:"; - // - // L_Pokemon - // - this.L_Pokemon.AutoSize = true; - this.L_Pokemon.Location = new System.Drawing.Point(300, 11); - this.L_Pokemon.Name = "L_Pokemon"; - this.L_Pokemon.Size = new System.Drawing.Size(55, 13); - this.L_Pokemon.TabIndex = 3; - this.L_Pokemon.Text = "Pokémon:"; - // - // GB_Trainer - // - this.GB_Trainer.Controls.Add(this.L_Class); - this.GB_Trainer.Controls.Add(this.B_Remove); - this.GB_Trainer.Controls.Add(this.B_Set); - this.GB_Trainer.Controls.Add(this.LB_Choices); - this.GB_Trainer.Controls.Add(this.CB_Class); - this.GB_Trainer.Location = new System.Drawing.Point(12, 33); - this.GB_Trainer.Name = "GB_Trainer"; - this.GB_Trainer.Size = new System.Drawing.Size(276, 187); - this.GB_Trainer.TabIndex = 4; - this.GB_Trainer.TabStop = false; - this.GB_Trainer.Text = "Trainer Summary"; - // - // L_Class - // - this.L_Class.AutoSize = true; - this.L_Class.Location = new System.Drawing.Point(14, 23); - this.L_Class.Name = "L_Class"; - this.L_Class.Size = new System.Drawing.Size(35, 13); - this.L_Class.TabIndex = 5; - this.L_Class.Text = "Class:"; - // - // B_Remove - // - this.B_Remove.Location = new System.Drawing.Point(182, 158); - this.B_Remove.Name = "B_Remove"; - this.B_Remove.Size = new System.Drawing.Size(62, 23); - this.B_Remove.TabIndex = 4; - this.B_Remove.Text = "[X] Delete"; - this.B_Remove.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.B_Remove.UseVisualStyleBackColor = true; - this.B_Remove.Click += new System.EventHandler(this.B_Remove_Click); - // - // B_Set - // - this.B_Set.Location = new System.Drawing.Point(182, 47); - this.B_Set.Name = "B_Set"; - this.B_Set.Size = new System.Drawing.Size(62, 23); - this.B_Set.TabIndex = 2; - this.B_Set.Text = "[<] Set"; - this.B_Set.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.B_Set.UseVisualStyleBackColor = true; - this.B_Set.Click += new System.EventHandler(this.B_Set_Click); - // - // LB_Choices - // - this.LB_Choices.FormattingEnabled = true; - this.LB_Choices.Location = new System.Drawing.Point(9, 47); - this.LB_Choices.Name = "LB_Choices"; - this.LB_Choices.Size = new System.Drawing.Size(167, 134); - this.LB_Choices.TabIndex = 1; - this.LB_Choices.SelectedIndexChanged += new System.EventHandler(this.B_View_Click); - // - // CB_Class - // - this.CB_Class.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Class.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Class.FormattingEnabled = true; - this.CB_Class.Location = new System.Drawing.Point(55, 20); - this.CB_Class.Name = "CB_Class"; - this.CB_Class.Size = new System.Drawing.Size(121, 21); - this.CB_Class.TabIndex = 0; - // - // GB_Pokemon - // - this.GB_Pokemon.Controls.Add(this.PB_PKM); - this.GB_Pokemon.Controls.Add(this.CHK_Spe); - this.GB_Pokemon.Controls.Add(this.CHK_SpD); - this.GB_Pokemon.Controls.Add(this.CHK_SpA); - this.GB_Pokemon.Controls.Add(this.CHK_DEF); - this.GB_Pokemon.Controls.Add(this.CHK_ATK); - this.GB_Pokemon.Controls.Add(this.CHK_HP); - this.GB_Pokemon.Controls.Add(this.L_Species); - this.GB_Pokemon.Controls.Add(this.L_Item); - this.GB_Pokemon.Controls.Add(this.L_Nature); - this.GB_Pokemon.Controls.Add(this.L_Moves); - this.GB_Pokemon.Controls.Add(this.CB_Item); - this.GB_Pokemon.Controls.Add(this.CB_Nature); - this.GB_Pokemon.Controls.Add(this.CB_Move4); - this.GB_Pokemon.Controls.Add(this.CB_Move2); - this.GB_Pokemon.Controls.Add(this.CB_Move3); - this.GB_Pokemon.Controls.Add(this.CB_Move1); - this.GB_Pokemon.Controls.Add(this.CB_Species); - this.GB_Pokemon.Location = new System.Drawing.Point(294, 33); - this.GB_Pokemon.Name = "GB_Pokemon"; - this.GB_Pokemon.Size = new System.Drawing.Size(275, 187); - this.GB_Pokemon.TabIndex = 5; - this.GB_Pokemon.TabStop = false; - this.GB_Pokemon.Text = "Pokémon Summary"; - // - // PB_PKM - // - this.PB_PKM.Location = new System.Drawing.Point(179, 15); - this.PB_PKM.Name = "PB_PKM"; - this.PB_PKM.Size = new System.Drawing.Size(40, 30); - this.PB_PKM.TabIndex = 25; - this.PB_PKM.TabStop = false; - // - // CHK_Spe - // - this.CHK_Spe.AutoSize = true; - this.CHK_Spe.Location = new System.Drawing.Point(219, 157); - this.CHK_Spe.Name = "CHK_Spe"; - this.CHK_Spe.Size = new System.Drawing.Size(45, 17); - this.CHK_Spe.TabIndex = 24; - this.CHK_Spe.Text = "Spe"; - this.CHK_Spe.UseVisualStyleBackColor = true; - // - // CHK_SpD - // - this.CHK_SpD.AutoSize = true; - this.CHK_SpD.Location = new System.Drawing.Point(219, 143); - this.CHK_SpD.Name = "CHK_SpD"; - this.CHK_SpD.Size = new System.Drawing.Size(47, 17); - this.CHK_SpD.TabIndex = 23; - this.CHK_SpD.Text = "SpD"; - this.CHK_SpD.UseVisualStyleBackColor = true; - // - // CHK_SpA - // - this.CHK_SpA.AutoSize = true; - this.CHK_SpA.Location = new System.Drawing.Point(219, 129); - this.CHK_SpA.Name = "CHK_SpA"; - this.CHK_SpA.Size = new System.Drawing.Size(46, 17); - this.CHK_SpA.TabIndex = 22; - this.CHK_SpA.Text = "SpA"; - this.CHK_SpA.UseVisualStyleBackColor = true; - // - // CHK_DEF - // - this.CHK_DEF.AutoSize = true; - this.CHK_DEF.Location = new System.Drawing.Point(172, 157); - this.CHK_DEF.Name = "CHK_DEF"; - this.CHK_DEF.Size = new System.Drawing.Size(43, 17); - this.CHK_DEF.TabIndex = 21; - this.CHK_DEF.Text = "Def"; - this.CHK_DEF.UseVisualStyleBackColor = true; - // - // CHK_ATK - // - this.CHK_ATK.AutoSize = true; - this.CHK_ATK.Location = new System.Drawing.Point(172, 143); - this.CHK_ATK.Name = "CHK_ATK"; - this.CHK_ATK.Size = new System.Drawing.Size(42, 17); - this.CHK_ATK.TabIndex = 20; - this.CHK_ATK.Text = "Atk"; - this.CHK_ATK.UseVisualStyleBackColor = true; - // - // CHK_HP - // - this.CHK_HP.AutoSize = true; - this.CHK_HP.Location = new System.Drawing.Point(172, 129); - this.CHK_HP.Name = "CHK_HP"; - this.CHK_HP.Size = new System.Drawing.Size(41, 17); - this.CHK_HP.TabIndex = 19; - this.CHK_HP.Text = "HP"; - this.CHK_HP.UseVisualStyleBackColor = true; - // - // L_Species - // - this.L_Species.AutoSize = true; - this.L_Species.Location = new System.Drawing.Point(13, 23); - this.L_Species.Name = "L_Species"; - this.L_Species.Size = new System.Drawing.Size(48, 13); - this.L_Species.TabIndex = 18; - this.L_Species.Text = "Species:"; - // - // L_Item - // - this.L_Item.AutoSize = true; - this.L_Item.Location = new System.Drawing.Point(29, 159); - this.L_Item.Name = "L_Item"; - this.L_Item.Size = new System.Drawing.Size(30, 13); - this.L_Item.TabIndex = 17; - this.L_Item.Text = "Item:"; - // - // L_Nature - // - this.L_Nature.AutoSize = true; - this.L_Nature.Location = new System.Drawing.Point(17, 132); - this.L_Nature.Name = "L_Nature"; - this.L_Nature.Size = new System.Drawing.Size(42, 13); - this.L_Nature.TabIndex = 16; - this.L_Nature.Text = "Nature:"; - // - // L_Moves - // - this.L_Moves.AutoSize = true; - this.L_Moves.Location = new System.Drawing.Point(13, 48); - this.L_Moves.Name = "L_Moves"; - this.L_Moves.Size = new System.Drawing.Size(42, 13); - this.L_Moves.TabIndex = 15; - this.L_Moves.Text = "Moves:"; - // - // CB_Item - // - this.CB_Item.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Item.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Item.FormattingEnabled = true; - this.CB_Item.Location = new System.Drawing.Point(65, 156); - this.CB_Item.Name = "CB_Item"; - this.CB_Item.Size = new System.Drawing.Size(101, 21); - this.CB_Item.TabIndex = 14; - // - // CB_Nature - // - this.CB_Nature.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Nature.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Nature.FormattingEnabled = true; - this.CB_Nature.Location = new System.Drawing.Point(65, 129); - this.CB_Nature.Name = "CB_Nature"; - this.CB_Nature.Size = new System.Drawing.Size(101, 21); - this.CB_Nature.TabIndex = 13; - // - // CB_Move4 - // - this.CB_Move4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Move4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Move4.FormattingEnabled = true; - this.CB_Move4.Location = new System.Drawing.Point(140, 91); - this.CB_Move4.Name = "CB_Move4"; - this.CB_Move4.Size = new System.Drawing.Size(121, 21); - this.CB_Move4.TabIndex = 12; - // - // CB_Move2 - // - this.CB_Move2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Move2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Move2.FormattingEnabled = true; - this.CB_Move2.Location = new System.Drawing.Point(140, 64); - this.CB_Move2.Name = "CB_Move2"; - this.CB_Move2.Size = new System.Drawing.Size(121, 21); - this.CB_Move2.TabIndex = 11; - // - // CB_Move3 - // - this.CB_Move3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Move3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Move3.FormattingEnabled = true; - this.CB_Move3.Location = new System.Drawing.Point(13, 91); - this.CB_Move3.Name = "CB_Move3"; - this.CB_Move3.Size = new System.Drawing.Size(121, 21); - this.CB_Move3.TabIndex = 10; - // - // CB_Move1 - // - this.CB_Move1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Move1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Move1.FormattingEnabled = true; - this.CB_Move1.Location = new System.Drawing.Point(13, 64); - this.CB_Move1.Name = "CB_Move1"; - this.CB_Move1.Size = new System.Drawing.Size(121, 21); - this.CB_Move1.TabIndex = 9; - // - // CB_Species - // - this.CB_Species.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Species.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Species.FormattingEnabled = true; - this.CB_Species.Location = new System.Drawing.Point(67, 20); - this.CB_Species.Name = "CB_Species"; - this.CB_Species.Size = new System.Drawing.Size(106, 21); - this.CB_Species.TabIndex = 8; - this.CB_Species.SelectedIndexChanged += new System.EventHandler(this.changeSpecies); - // - // B_DumpPKs - // - this.B_DumpPKs.Location = new System.Drawing.Point(494, 7); - this.B_DumpPKs.Name = "B_DumpPKs"; - this.B_DumpPKs.Size = new System.Drawing.Size(75, 23); - this.B_DumpPKs.TabIndex = 6; - this.B_DumpPKs.Text = "Dump PKMs"; - this.B_DumpPKs.UseVisualStyleBackColor = true; - this.B_DumpPKs.Click += new System.EventHandler(this.B_DumpPKs_Click); - // - // DumpTRs - // - this.DumpTRs.Location = new System.Drawing.Point(213, 6); - this.DumpTRs.Name = "DumpTRs"; - this.DumpTRs.Size = new System.Drawing.Size(75, 23); - this.DumpTRs.TabIndex = 7; - this.DumpTRs.Text = "Dump TRs"; - this.DumpTRs.UseVisualStyleBackColor = true; - this.DumpTRs.Click += new System.EventHandler(this.DumpTRs_Click); - // - // MaisonEditor6 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(579, 226); - this.Controls.Add(this.DumpTRs); - this.Controls.Add(this.B_DumpPKs); - this.Controls.Add(this.GB_Pokemon); - this.Controls.Add(this.GB_Trainer); - this.Controls.Add(this.L_Pokemon); - this.Controls.Add(this.L_Trainer); - this.Controls.Add(this.CB_Pokemon); - this.Controls.Add(this.CB_Trainer); - this.MaximizeBox = false; - this.MaximumSize = new System.Drawing.Size(595, 265); - this.MinimumSize = new System.Drawing.Size(595, 265); - this.Name = "MaisonEditor6"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Maison Editor"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.formClosing); - this.GB_Trainer.ResumeLayout(false); - this.GB_Trainer.PerformLayout(); - this.GB_Pokemon.ResumeLayout(false); - this.GB_Pokemon.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.PB_PKM)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.ComboBox CB_Trainer; - private System.Windows.Forms.ComboBox CB_Pokemon; - private System.Windows.Forms.Label L_Trainer; - private System.Windows.Forms.Label L_Pokemon; - private System.Windows.Forms.GroupBox GB_Trainer; - private System.Windows.Forms.GroupBox GB_Pokemon; - private System.Windows.Forms.Button B_DumpPKs; - private System.Windows.Forms.Button DumpTRs; - private System.Windows.Forms.Label L_Item; - private System.Windows.Forms.Label L_Nature; - private System.Windows.Forms.Label L_Moves; - private System.Windows.Forms.ComboBox CB_Item; - private System.Windows.Forms.ComboBox CB_Nature; - private System.Windows.Forms.ComboBox CB_Move4; - private System.Windows.Forms.ComboBox CB_Move2; - private System.Windows.Forms.ComboBox CB_Move3; - private System.Windows.Forms.ComboBox CB_Move1; - private System.Windows.Forms.ComboBox CB_Species; - private System.Windows.Forms.Label L_Species; - private System.Windows.Forms.CheckBox CHK_Spe; - private System.Windows.Forms.CheckBox CHK_SpD; - private System.Windows.Forms.CheckBox CHK_SpA; - private System.Windows.Forms.CheckBox CHK_DEF; - private System.Windows.Forms.CheckBox CHK_ATK; - private System.Windows.Forms.CheckBox CHK_HP; - private System.Windows.Forms.PictureBox PB_PKM; - private System.Windows.Forms.Label L_Class; - private System.Windows.Forms.Button B_Remove; - private System.Windows.Forms.Button B_Set; - private System.Windows.Forms.ListBox LB_Choices; - private System.Windows.Forms.ComboBox CB_Class; - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/MaisonEditor6.cs b/pk3DS/Subforms/Gen6/MaisonEditor6.cs deleted file mode 100644 index ce595f7d60..0000000000 --- a/pk3DS/Subforms/Gen6/MaisonEditor6.cs +++ /dev/null @@ -1,257 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Media; -using System.Text; -using System.Windows.Forms; - -using pk3DS.Core; -using pk3DS.Core.Structures; - -namespace pk3DS -{ - public partial class MaisonEditor6 : Form - { - public MaisonEditor6(byte[][] trd, byte[][] trp, bool super) - { - trFiles = trd; - pkFiles = trp; - Array.Resize(ref specieslist, Main.Config.MaxSpeciesID + 1); - movelist[0] = specieslist[0] = itemlist[0] = ""; - - trNames = Main.Config.getText(super ? TextName.SuperTrainerNames : TextName.MaisonTrainerNames); Array.Resize(ref trNames, trFiles.Length); - - InitializeComponent(); - Setup(); - } - - private readonly byte[][] trFiles; - private readonly string[] trNames; - private readonly byte[][] pkFiles; - private readonly string[] natures = Main.Config.getText(TextName.Natures); - private readonly string[] movelist = Main.Config.getText(TextName.MoveNames); - private readonly string[] specieslist = Main.Config.getText(TextName.SpeciesNames); - private readonly string[] trClass = Main.Config.getText(TextName.TrainerClasses); - private readonly string[] itemlist = Main.Config.getText(TextName.ItemNames); - private int trEntry = -1; - private int pkEntry = -1; - private bool dumping; - private void Setup() - { - foreach (string s in trClass) CB_Class.Items.Add(s); - foreach (string s in specieslist) CB_Species.Items.Add(s); - foreach (string s in movelist) CB_Move1.Items.Add(s); - foreach (string s in movelist) CB_Move2.Items.Add(s); - foreach (string s in movelist) CB_Move3.Items.Add(s); - foreach (string s in movelist) CB_Move4.Items.Add(s); - foreach (string s in natures) CB_Nature.Items.Add(s); - foreach (string s in itemlist) CB_Item.Items.Add(s); - foreach (string s in trNames) CB_Trainer.Items.Add(s ?? "UNKNOWN"); - for (int i = 0; i < pkFiles.Length; i++) CB_Pokemon.Items.Add(i.ToString()); - - CB_Trainer.SelectedIndex = 1; - } - private void changeTrainer(object sender, EventArgs e) - { - setTrainer(); - trEntry = CB_Trainer.SelectedIndex; - getTrainer(); - if (GB_Trainer.Enabled) - LB_Choices.SelectedIndex = 0; - } - private void changePokemon(object sender, EventArgs e) - { - setPokemon(); - pkEntry = CB_Pokemon.SelectedIndex; - getPokemon(); - } - private void getTrainer() - { - if (trEntry < 0) return; - - // Get - LB_Choices.Items.Clear(); - Maison6.Trainer tr = new Maison6.Trainer(trFiles[trEntry]); - - CB_Class.SelectedIndex = tr.Class; - GB_Trainer.Enabled = tr.Count > 0; - - foreach (ushort Entry in tr.Choices) - LB_Choices.Items.Add(Entry.ToString()); - } - private void setTrainer() - { - if (trEntry < 0 || !GB_Trainer.Enabled || dumping) return; - // Gather - Maison6.Trainer tr = new Maison6.Trainer - { - Class = (ushort) CB_Class.SelectedIndex, - Count = (ushort) LB_Choices.Items.Count - }; - tr.Choices = new ushort[tr.Count]; - for (int i = 0; i < tr.Count; i++) - tr.Choices[i] = Convert.ToUInt16(LB_Choices.Items[i].ToString()); - Array.Sort(tr.Choices); - trFiles[trEntry] = tr.Write(); - } - private void getPokemon() - { - if (pkEntry < 0 || dumping) return; - Maison6.Pokemon pkm = new Maison6.Pokemon(pkFiles[pkEntry]); - - // Get - CB_Move1.SelectedIndex = pkm.Moves[0]; - CB_Move2.SelectedIndex = pkm.Moves[1]; - CB_Move3.SelectedIndex = pkm.Moves[2]; - CB_Move4.SelectedIndex = pkm.Moves[3]; - CHK_HP.Checked = pkm.HP; - CHK_ATK.Checked = pkm.ATK; - CHK_DEF.Checked = pkm.DEF; - CHK_Spe.Checked = pkm.SPE; - CHK_SpA.Checked = pkm.SPA; - CHK_SpD.Checked = pkm.SPD; - CB_Nature.SelectedIndex = pkm.Nature; - CB_Item.SelectedIndex = pkm.Item; - - CB_Species.SelectedIndex = pkm.Species; // Loaded last in order to refresh the sprite with all info. - // Last 2 Bytes are unused. - } - private void setPokemon() - { - if (pkEntry < 0 || dumping) return; - - // Each File is 16 Bytes. - Maison6.Pokemon pkm = new Maison6.Pokemon(pkFiles[pkEntry]) - { - Species = (ushort) CB_Species.SelectedIndex, - HP = CHK_HP.Checked, - ATK = CHK_ATK.Checked, - DEF = CHK_DEF.Checked, - SPE = CHK_Spe.Checked, - SPA = CHK_SpA.Checked, - SPD = CHK_SpD.Checked, - Nature = (byte) CB_Nature.SelectedIndex, - Item = (ushort) CB_Item.SelectedIndex, - Moves = - { - [0] = (ushort) CB_Move1.SelectedIndex, - [1] = (ushort) CB_Move2.SelectedIndex, - [2] = (ushort) CB_Move3.SelectedIndex, - [3] = (ushort) CB_Move4.SelectedIndex - } - }; - - byte[] data = pkm.Write(); - pkFiles[pkEntry] = data; - } - - private void changeSpecies(object sender, EventArgs e) - { - PB_PKM.Image = WinFormsUtil.getSprite(CB_Species.SelectedIndex, 0, 0, CB_Item.SelectedIndex, Main.Config); - } - - private void B_Remove_Click(object sender, EventArgs e) - { - if (LB_Choices.SelectedIndex > -1 && GB_Trainer.Enabled) - LB_Choices.Items.RemoveAt(LB_Choices.SelectedIndex); - } - private void B_Set_Click(object sender, EventArgs e) - { - if (LB_Choices.SelectedIndex <= -1 || !GB_Trainer.Enabled) return; - - int toAdd = CB_Pokemon.SelectedIndex; - int count = LB_Choices.Items.Count; - List choices = new List(); - for (int i = 0; i < count; i++) - choices.Add(Convert.ToUInt16(LB_Choices.Items[i].ToString())); - - if (Array.IndexOf(choices.ToArray(), toAdd) > 0) return; // Abort if already in the list - choices.Add((ushort)toAdd); // Add it to the list. - - // Get new list, and sort it. - ushort[] choiceList = choices.ToArray(); Array.Sort(choiceList); - - // Set new list. - LB_Choices.Items.Clear(); - foreach (ushort t in choiceList) - LB_Choices.Items.Add(t.ToString()); - - // Set current index to the one just added. - LB_Choices.SelectedIndex = Array.IndexOf(choiceList, toAdd); - } - private void B_View_Click(object sender, EventArgs e) - { - if (LB_Choices.SelectedIndex > -1 && GB_Trainer.Enabled) - CB_Pokemon.SelectedIndex = Convert.ToUInt16(LB_Choices.Items[LB_Choices.SelectedIndex].ToString()); - } - - private void formClosing(object sender, FormClosingEventArgs e) - { - setTrainer(); - setPokemon(); - } - - private void DumpTRs_Click(object sender, EventArgs e) - { - dumping = true; - string result = ""; - for (int i = 0; i < CB_Trainer.Items.Count; i++) - { - CB_Trainer.SelectedIndex = i; - int count = LB_Choices.Items.Count - 1; - if (count > 0) - { - result += "======" + Environment.NewLine + i + " - (" + CB_Class.Text + ") " + CB_Trainer.Text + Environment.NewLine + "======" + Environment.NewLine; - result += "Choices: "; - for (int c = 0; c < count; c++) - result += LB_Choices.Items[c] + ", "; - - result += Environment.NewLine; result += Environment.NewLine; - } - } - SaveFileDialog sfd = new SaveFileDialog {FileName = "Maison Trainers.txt", Filter = "Text File|*.txt"}; - - SystemSounds.Asterisk.Play(); - if (sfd.ShowDialog() == DialogResult.OK) - { - string path = sfd.FileName; - File.WriteAllText(path, result, Encoding.Unicode); - } - dumping = false; - CB_Trainer.SelectedIndex = 0; - } - private void B_DumpPKs_Click(object sender, EventArgs e) - { - string[] stats = {"HP", "ATK", "DEF", "Spe", "SpA", "SpD"}; - string result = ""; - for (int i = 0; i < pkFiles.Length; i++) - { - var pk = new Maison6.Pokemon(pkFiles[i]); - if (pk.Species == 0) - continue; - - result += "======" + Environment.NewLine; - result += $"{i} - {specieslist[pk.Species]}" + Environment.NewLine; - result += "======" + Environment.NewLine; - result += $"Held Item: {itemlist[pk.Item]}" + Environment.NewLine; - result += $"Nature: {natures[pk.Nature]}" + Environment.NewLine; - result += $"Move 1: {movelist[pk.Move1]}" + Environment.NewLine; - result += $"Move 2: {movelist[pk.Move2]}" + Environment.NewLine; - result += $"Move 3: {movelist[pk.Move3]}" + Environment.NewLine; - result += $"Move 4: {movelist[pk.Move4]}" + Environment.NewLine; - - var EVstr = string.Join(",", pk.EVs.Select((iv, x) => iv ? stats[x] : string.Empty).Where(x => !string.IsNullOrWhiteSpace(x))); - result += $"EV'd in: {(pk.EVs.Any() ? EVstr : "None")}" + Environment.NewLine; - - result += Environment.NewLine; - } - SaveFileDialog sfd = new SaveFileDialog {FileName = "Maison Pokemon.txt", Filter = "Text File|*.txt"}; - - if (sfd.ShowDialog() != DialogResult.OK) - return; - - File.WriteAllText(sfd.FileName, result, Encoding.Unicode); - } - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/MartEditor6.Designer.cs b/pk3DS/Subforms/Gen6/MartEditor6.Designer.cs deleted file mode 100644 index 2761083f13..0000000000 --- a/pk3DS/Subforms/Gen6/MartEditor6.Designer.cs +++ /dev/null @@ -1,138 +0,0 @@ -namespace pk3DS -{ - partial class MartEditor6 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.CB_Location = new System.Windows.Forms.ComboBox(); - this.dgv = new System.Windows.Forms.DataGridView(); - this.L_Mart = new System.Windows.Forms.Label(); - this.B_Randomize = new System.Windows.Forms.Button(); - this.B_Save = new System.Windows.Forms.Button(); - this.B_Cancel = new System.Windows.Forms.Button(); - ((System.ComponentModel.ISupportInitialize)(this.dgv)).BeginInit(); - this.SuspendLayout(); - // - // CB_Location - // - this.CB_Location.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.CB_Location.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_Location.FormattingEnabled = true; - this.CB_Location.Location = new System.Drawing.Point(69, 6); - this.CB_Location.Name = "CB_Location"; - this.CB_Location.Size = new System.Drawing.Size(243, 21); - this.CB_Location.TabIndex = 0; - this.CB_Location.SelectedIndexChanged += new System.EventHandler(this.changeIndex); - // - // dgv - // - this.dgv.AllowUserToAddRows = false; - this.dgv.AllowUserToDeleteRows = false; - this.dgv.AllowUserToResizeColumns = false; - this.dgv.AllowUserToResizeRows = false; - this.dgv.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.dgv.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgv.Location = new System.Drawing.Point(12, 33); - this.dgv.Name = "dgv"; - this.dgv.Size = new System.Drawing.Size(300, 284); - this.dgv.TabIndex = 1; - // - // L_Mart - // - this.L_Mart.AutoSize = true; - this.L_Mart.Location = new System.Drawing.Point(12, 9); - this.L_Mart.Name = "L_Mart"; - this.L_Mart.Size = new System.Drawing.Size(51, 13); - this.L_Mart.TabIndex = 2; - this.L_Mart.Text = "Location:"; - // - // B_Randomize - // - this.B_Randomize.Location = new System.Drawing.Point(12, 326); - this.B_Randomize.Name = "B_Randomize"; - this.B_Randomize.Size = new System.Drawing.Size(87, 23); - this.B_Randomize.TabIndex = 3; - this.B_Randomize.Text = "Randomize"; - this.B_Randomize.UseVisualStyleBackColor = true; - this.B_Randomize.Click += new System.EventHandler(this.B_Randomize_Click); - // - // B_Save - // - this.B_Save.Location = new System.Drawing.Point(244, 326); - this.B_Save.Name = "B_Save"; - this.B_Save.Size = new System.Drawing.Size(68, 23); - this.B_Save.TabIndex = 4; - this.B_Save.Text = "Save"; - this.B_Save.UseVisualStyleBackColor = true; - this.B_Save.Click += new System.EventHandler(this.B_Save_Click); - // - // B_Cancel - // - this.B_Cancel.Location = new System.Drawing.Point(170, 326); - this.B_Cancel.Name = "B_Cancel"; - this.B_Cancel.Size = new System.Drawing.Size(68, 23); - this.B_Cancel.TabIndex = 5; - this.B_Cancel.Text = "Cancel"; - this.B_Cancel.UseVisualStyleBackColor = true; - this.B_Cancel.Click += new System.EventHandler(this.B_Cancel_Click); - // - // Mart - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(324, 361); - this.Controls.Add(this.B_Cancel); - this.Controls.Add(this.B_Save); - this.Controls.Add(this.B_Randomize); - this.Controls.Add(this.L_Mart); - this.Controls.Add(this.dgv); - this.Controls.Add(this.CB_Location); - this.MaximizeBox = false; - this.MaximumSize = new System.Drawing.Size(340, 400); - this.MinimumSize = new System.Drawing.Size(340, 400); - this.Name = "MartEditor6"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Mart Editor"; - ((System.ComponentModel.ISupportInitialize)(this.dgv)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.ComboBox CB_Location; - private System.Windows.Forms.DataGridView dgv; - private System.Windows.Forms.Label L_Mart; - private System.Windows.Forms.Button B_Randomize; - private System.Windows.Forms.Button B_Save; - private System.Windows.Forms.Button B_Cancel; - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/MartEditor6.cs b/pk3DS/Subforms/Gen6/MartEditor6.cs deleted file mode 100644 index 10d38fdd55..0000000000 --- a/pk3DS/Subforms/Gen6/MartEditor6.cs +++ /dev/null @@ -1,200 +0,0 @@ -using pk3DS.Core; -using System; -using System.IO; -using System.Windows.Forms; - -namespace pk3DS -{ - public partial class MartEditor6 : Form - { - public MartEditor6() - { - InitializeComponent(); - if (Main.ExeFSPath == null) { WinFormsUtil.Alert("No exeFS code to load."); Close(); } - string[] files = Directory.GetFiles(Main.ExeFSPath); - if (!File.Exists(files[0]) || !Path.GetFileNameWithoutExtension(files[0]).Contains("code")) { WinFormsUtil.Alert("No .code.bin detected."); Close(); } - data = File.ReadAllBytes(files[0]); - if (data.Length % 0x200 != 0) { WinFormsUtil.Alert(".code.bin not decompressed. Aborting."); Close(); } - offset = GetDataOffset(data); - codebin = files[0]; - itemlist[0] = ""; - setupDGV(); - foreach (string s in locations) CB_Location.Items.Add(s); - CB_Location.SelectedIndex = 0; - } - - private static int GetDataOffset(byte[] data) - { - byte[] vanilla = - { - 0x00, 0x72, 0x6F, 0x6D, 0x3A, 0x2F, 0x44, 0x6C, 0x6C, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4D, 0x65, - 0x6E, 0x75, 0x2E, 0x63, 0x72, 0x6F, 0x00 - }; - int offset = Util.IndexOfBytes(data, vanilla, 0x400000, 0); - if (offset >= 0) - return offset + vanilla.Length; - - byte[] patched = - { - 0x00, 0x72, 0x6F, 0x6D, 0x32, 0x3A, 0x2F, 0x44, 0x6C, 0x6C, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4D, - 0x65, 0x6E, 0x75, 0x2E, 0x63, 0x72, 0x6F, 0x00, 0xFF - }; - offset = Util.IndexOfBytes(data, patched, 0x400000, 0); - - if (offset >= 0) - return offset + patched.Length; - - return -1; - } - - private readonly string codebin; - private readonly string[] itemlist = Main.Config.getText(TextName.ItemNames); - private readonly byte[] data; - - private readonly byte[] entries = Main.Config.ORAS - ? new byte[] // ORAS - { - 3, 10, 14, 17, 18, 19, 19, 19, 19, // General - 3, // Unused - 7, 6, 4, 3, 8, - 8, 3, 3, 4, - 3, 6, 8, - 5, 4 - } - : new byte[] // XY - { - 3, 10, 14, 17, 18, 19, 19, 19, 19, // General - 1, // Unused - 4, 10, 3, 9, 1, 1, // Misc - 3, 3, // Balls - 5, 5, // TMs - 6, // Vitamins - 7, // Balls - 5, // TMs - 5, // TMs - 8, // Battle - 3, // Balls - }; - - private readonly int offset; - private int dataoffset; - - readonly string[] locations = Main.Config.ORAS - ? new[] // ORAS - { - "No Badges", "1 Badge", "2 Badges", "3 Badges", "4 Badges", "5 Badges", "6 Badges", "7 Badges", "8 Badges", - "Unused", - "Slateport Market [Incenses]", "Slateport Market [Vitamins]", "Slateport Market [TMs]", "Rustboro City [Poké Balls]", "Slateport City [X Items]", - "Mauville City [TMs]", "Verdanturf Town [Poké Balls]", "Fallarbor Town [Poké Balls]", "Lavaridge Town [Herbs]", - "Lilycove Dept Store, 2F Left [Run Away Items]", "Lilycove Dept Store, 3F Left [Vitamins]", "Lilycove Dept Store, 3F Right [X Items]", - "Lilycove Dept Store, 4F Left [Offensive TMs]", "Lilycove Dept Store, 4F Right [Defensive TMs]" - } - : new[] // XY - { - "No Badges", "1 Badge", "2 Badges", "3 Badges", "4 Badges", "5 Badges", "6 Badges", "7 Badges", "8 Badges", - "Unused", - "Herbs", "Poké Balls", "Stones", "Incenses", "Aquacorde Town [Poké Ball]", "Aquacorde Town [Potion]", - "Lumiose City North Boulevard [Poké Balls]", "Cyllage City [Poké Balls]", - "Shalour City [TMs]", "Lumiose City South Boulevard [TMs]", - "Laverre City [Vitamins]", - "Snowbelle City [Poké Balls]", - "Kiloude City [TMs]", - "Anistar City [TMs]", - "Santalune City [X Items]", - "Coumarine City [Poké Balls]" - }; - - private void getDataOffset(int index) - { - dataoffset = offset; // reset - for (int i = 0; i < index; i++) - dataoffset += 2 * entries[i]; - } - private void setupDGV() - { - DataGridViewColumn dgvIndex = new DataGridViewTextBoxColumn(); - { - dgvIndex.HeaderText = "Index"; - dgvIndex.DisplayIndex = 0; - dgvIndex.Width = 45; - dgvIndex.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; - } - DataGridViewComboBoxColumn dgvItem = new DataGridViewComboBoxColumn(); - { - dgvItem.HeaderText = "Item"; - dgvItem.DisplayIndex = 1; - foreach (string t in itemlist) - dgvItem.Items.Add(t); // add only the Names - - dgvItem.Width = 135; - dgvItem.FlatStyle = FlatStyle.Flat; - } - dgv.Columns.Add(dgvIndex); - dgv.Columns.Add(dgvItem); - } - - private int entry = -1; - private void changeIndex(object sender, EventArgs e) - { - if (entry > -1) setList(); - entry = CB_Location.SelectedIndex; - getList(); - } - private void getList() - { - dgv.Rows.Clear(); - int count = entries[entry]; - dgv.Rows.Add(count); - getDataOffset(entry); - for (int i = 0; i < count; i++) - { - dgv.Rows[i].Cells[0].Value = i.ToString(); - dgv.Rows[i].Cells[1].Value = itemlist[BitConverter.ToUInt16(data, dataoffset + 2 * i)]; - } - } - private void setList() - { - int count = dgv.Rows.Count; - for (int i = 0; i < count; i++) - Array.Copy(BitConverter.GetBytes((ushort)Array.IndexOf(itemlist, dgv.Rows[i].Cells[1].Value)), 0, data, dataoffset + 2 * i, 2); - } - - private void B_Save_Click(object sender, EventArgs e) - { - if (entry > -1) setList(); - File.WriteAllBytes(codebin, data); - Close(); - } - private void B_Cancel_Click(object sender, EventArgs e) - { - Close(); - } - private void B_Randomize_Click(object sender, EventArgs e) - { - if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Randomize mart inventories?")) - return; - - int[] validItems = Randomizer.getRandomItemList(); - - int ctr = 0; - Util.Shuffle(validItems); - - bool specialOnly = DialogResult.Yes == WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomize only special marts?", "Will leave regular necessities intact."); - int start = specialOnly ? 9 : 0; - for (int i = start; i < CB_Location.Items.Count; i++) - { - CB_Location.SelectedIndex = i; - for (int r = 0; r < dgv.Rows.Count; r++) - { - int currentItem = Array.IndexOf(itemlist, dgv.Rows[r].Cells[1].Value); - if (MartEditor7.BannedItems.Contains(currentItem)) - continue; - dgv.Rows[r].Cells[1].Value = itemlist[validItems[ctr++]]; - if (ctr <= validItems.Length) continue; - Util.Shuffle(validItems); ctr = 0; - } - } - WinFormsUtil.Alert("Randomized!"); - } - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/MegaEvoEditor6.Designer.cs b/pk3DS/Subforms/Gen6/MegaEvoEditor6.Designer.cs deleted file mode 100644 index b42bd2bfc8..0000000000 --- a/pk3DS/Subforms/Gen6/MegaEvoEditor6.Designer.cs +++ /dev/null @@ -1,466 +0,0 @@ -namespace pk3DS -{ - partial class MegaEvoEditor6 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.LBL_Item1 = new System.Windows.Forms.Label(); - this.LBL_Forme1 = new System.Windows.Forms.Label(); - this.GB_MEvo1 = new System.Windows.Forms.GroupBox(); - this.LBL_Into1 = new System.Windows.Forms.Label(); - this.PB_M1 = new System.Windows.Forms.PictureBox(); - this.PB_S1 = new System.Windows.Forms.PictureBox(); - this.CB_Forme1 = new System.Windows.Forms.ComboBox(); - this.CB_Item1 = new System.Windows.Forms.ComboBox(); - this.GB_MEvo2 = new System.Windows.Forms.GroupBox(); - this.LBL_Into2 = new System.Windows.Forms.Label(); - this.PB_M2 = new System.Windows.Forms.PictureBox(); - this.CB_Forme2 = new System.Windows.Forms.ComboBox(); - this.PB_S2 = new System.Windows.Forms.PictureBox(); - this.CB_Item2 = new System.Windows.Forms.ComboBox(); - this.LBL_Forme2 = new System.Windows.Forms.Label(); - this.LBL_Item2 = new System.Windows.Forms.Label(); - this.CHK_MEvo1 = new System.Windows.Forms.CheckBox(); - this.CHK_MEvo2 = new System.Windows.Forms.CheckBox(); - this.CB_Species = new System.Windows.Forms.ComboBox(); - this.GB_MEvo3 = new System.Windows.Forms.GroupBox(); - this.LBL_Into3 = new System.Windows.Forms.Label(); - this.PB_M3 = new System.Windows.Forms.PictureBox(); - this.CB_Forme3 = new System.Windows.Forms.ComboBox(); - this.PB_S3 = new System.Windows.Forms.PictureBox(); - this.CB_Item3 = new System.Windows.Forms.ComboBox(); - this.LBL_Forme3 = new System.Windows.Forms.Label(); - this.LBL_Item3 = new System.Windows.Forms.Label(); - this.CHK_MEvo3 = new System.Windows.Forms.CheckBox(); - this.bpkx = new System.Windows.Forms.PictureBox(); - this.B_Dump = new System.Windows.Forms.Button(); - this.GB_MEvo1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.PB_M1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_S1)).BeginInit(); - this.GB_MEvo2.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.PB_M2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_S2)).BeginInit(); - this.GB_MEvo3.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.PB_M3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_S3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.bpkx)).BeginInit(); - this.SuspendLayout(); - // - // LBL_Item1 - // - this.LBL_Item1.AutoSize = true; - this.LBL_Item1.Location = new System.Drawing.Point(6, 20); - this.LBL_Item1.Name = "LBL_Item1"; - this.LBL_Item1.Size = new System.Drawing.Size(27, 13); - this.LBL_Item1.TabIndex = 9; - this.LBL_Item1.Text = "Item"; - // - // LBL_Forme1 - // - this.LBL_Forme1.AutoSize = true; - this.LBL_Forme1.Location = new System.Drawing.Point(6, 65); - this.LBL_Forme1.Name = "LBL_Forme1"; - this.LBL_Forme1.Size = new System.Drawing.Size(85, 13); - this.LBL_Forme1.TabIndex = 10; - this.LBL_Forme1.Text = "Alt Forme (if any)"; - // - // GB_MEvo1 - // - this.GB_MEvo1.Controls.Add(this.LBL_Into1); - this.GB_MEvo1.Controls.Add(this.PB_M1); - this.GB_MEvo1.Controls.Add(this.PB_S1); - this.GB_MEvo1.Controls.Add(this.CB_Forme1); - this.GB_MEvo1.Controls.Add(this.CB_Item1); - this.GB_MEvo1.Controls.Add(this.LBL_Forme1); - this.GB_MEvo1.Controls.Add(this.LBL_Item1); - this.GB_MEvo1.Enabled = false; - this.GB_MEvo1.Location = new System.Drawing.Point(12, 62); - this.GB_MEvo1.Name = "GB_MEvo1"; - this.GB_MEvo1.Size = new System.Drawing.Size(126, 142); - this.GB_MEvo1.TabIndex = 11; - this.GB_MEvo1.TabStop = false; - this.GB_MEvo1.Text = "Evolution 1"; - // - // LBL_Into1 - // - this.LBL_Into1.AutoSize = true; - this.LBL_Into1.Location = new System.Drawing.Point(51, 117); - this.LBL_Into1.Name = "LBL_Into1"; - this.LBL_Into1.Size = new System.Drawing.Size(28, 13); - this.LBL_Into1.TabIndex = 34; - this.LBL_Into1.Text = "Into:"; - // - // PB_M1 - // - this.PB_M1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.PB_M1.Location = new System.Drawing.Point(81, 106); - this.PB_M1.Name = "PB_M1"; - this.PB_M1.Size = new System.Drawing.Size(42, 32); - this.PB_M1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; - this.PB_M1.TabIndex = 33; - this.PB_M1.TabStop = false; - // - // PB_S1 - // - this.PB_S1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.PB_S1.Location = new System.Drawing.Point(5, 106); - this.PB_S1.Name = "PB_S1"; - this.PB_S1.Size = new System.Drawing.Size(42, 32); - this.PB_S1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; - this.PB_S1.TabIndex = 32; - this.PB_S1.TabStop = false; - // - // CB_Forme1 - // - this.CB_Forme1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Forme1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Forme1.FormattingEnabled = true; - this.CB_Forme1.Location = new System.Drawing.Point(5, 82); - this.CB_Forme1.Name = "CB_Forme1"; - this.CB_Forme1.Size = new System.Drawing.Size(121, 21); - this.CB_Forme1.TabIndex = 18; - this.CB_Forme1.SelectedIndexChanged += new System.EventHandler(this.Update_PBs); - // - // CB_Item1 - // - this.CB_Item1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Item1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Item1.FormattingEnabled = true; - this.CB_Item1.Location = new System.Drawing.Point(2, 35); - this.CB_Item1.Name = "CB_Item1"; - this.CB_Item1.Size = new System.Drawing.Size(121, 21); - this.CB_Item1.TabIndex = 12; - this.CB_Item1.SelectedValueChanged += new System.EventHandler(this.Update_PBs); - // - // GB_MEvo2 - // - this.GB_MEvo2.Controls.Add(this.LBL_Into2); - this.GB_MEvo2.Controls.Add(this.PB_M2); - this.GB_MEvo2.Controls.Add(this.CB_Forme2); - this.GB_MEvo2.Controls.Add(this.PB_S2); - this.GB_MEvo2.Controls.Add(this.CB_Item2); - this.GB_MEvo2.Controls.Add(this.LBL_Forme2); - this.GB_MEvo2.Controls.Add(this.LBL_Item2); - this.GB_MEvo2.Enabled = false; - this.GB_MEvo2.Location = new System.Drawing.Point(144, 62); - this.GB_MEvo2.Name = "GB_MEvo2"; - this.GB_MEvo2.Size = new System.Drawing.Size(126, 142); - this.GB_MEvo2.TabIndex = 12; - this.GB_MEvo2.TabStop = false; - this.GB_MEvo2.Text = "Evolution 2"; - // - // LBL_Into2 - // - this.LBL_Into2.AutoSize = true; - this.LBL_Into2.Location = new System.Drawing.Point(52, 117); - this.LBL_Into2.Name = "LBL_Into2"; - this.LBL_Into2.Size = new System.Drawing.Size(28, 13); - this.LBL_Into2.TabIndex = 35; - this.LBL_Into2.Text = "Into:"; - // - // PB_M2 - // - this.PB_M2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.PB_M2.Location = new System.Drawing.Point(80, 106); - this.PB_M2.Name = "PB_M2"; - this.PB_M2.Size = new System.Drawing.Size(42, 32); - this.PB_M2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; - this.PB_M2.TabIndex = 35; - this.PB_M2.TabStop = false; - // - // CB_Forme2 - // - this.CB_Forme2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Forme2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Forme2.FormattingEnabled = true; - this.CB_Forme2.Location = new System.Drawing.Point(2, 82); - this.CB_Forme2.Name = "CB_Forme2"; - this.CB_Forme2.Size = new System.Drawing.Size(121, 21); - this.CB_Forme2.TabIndex = 19; - this.CB_Forme2.SelectedIndexChanged += new System.EventHandler(this.Update_PBs); - // - // PB_S2 - // - this.PB_S2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.PB_S2.Location = new System.Drawing.Point(4, 106); - this.PB_S2.Name = "PB_S2"; - this.PB_S2.Size = new System.Drawing.Size(42, 32); - this.PB_S2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; - this.PB_S2.TabIndex = 34; - this.PB_S2.TabStop = false; - // - // CB_Item2 - // - this.CB_Item2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Item2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Item2.FormattingEnabled = true; - this.CB_Item2.Location = new System.Drawing.Point(2, 36); - this.CB_Item2.Name = "CB_Item2"; - this.CB_Item2.Size = new System.Drawing.Size(121, 21); - this.CB_Item2.TabIndex = 13; - this.CB_Item2.SelectedValueChanged += new System.EventHandler(this.Update_PBs); - // - // LBL_Forme2 - // - this.LBL_Forme2.AutoSize = true; - this.LBL_Forme2.Location = new System.Drawing.Point(6, 65); - this.LBL_Forme2.Name = "LBL_Forme2"; - this.LBL_Forme2.Size = new System.Drawing.Size(85, 13); - this.LBL_Forme2.TabIndex = 10; - this.LBL_Forme2.Text = "Alt Forme (if any)"; - // - // LBL_Item2 - // - this.LBL_Item2.AutoSize = true; - this.LBL_Item2.Location = new System.Drawing.Point(6, 20); - this.LBL_Item2.Name = "LBL_Item2"; - this.LBL_Item2.Size = new System.Drawing.Size(27, 13); - this.LBL_Item2.TabIndex = 9; - this.LBL_Item2.Text = "Item"; - // - // CHK_MEvo1 - // - this.CHK_MEvo1.AutoSize = true; - this.CHK_MEvo1.Location = new System.Drawing.Point(12, 39); - this.CHK_MEvo1.Name = "CHK_MEvo1"; - this.CHK_MEvo1.Size = new System.Drawing.Size(65, 17); - this.CHK_MEvo1.TabIndex = 13; - this.CHK_MEvo1.Text = "Enabled"; - this.CHK_MEvo1.UseVisualStyleBackColor = true; - this.CHK_MEvo1.CheckedChanged += new System.EventHandler(this.CHK_Changed); - // - // CHK_MEvo2 - // - this.CHK_MEvo2.AutoSize = true; - this.CHK_MEvo2.Location = new System.Drawing.Point(144, 39); - this.CHK_MEvo2.Name = "CHK_MEvo2"; - this.CHK_MEvo2.Size = new System.Drawing.Size(65, 17); - this.CHK_MEvo2.TabIndex = 14; - this.CHK_MEvo2.Text = "Enabled"; - this.CHK_MEvo2.UseVisualStyleBackColor = true; - this.CHK_MEvo2.CheckedChanged += new System.EventHandler(this.CHK_Changed); - // - // CB_Species - // - this.CB_Species.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Species.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Species.FormattingEnabled = true; - this.CB_Species.Location = new System.Drawing.Point(12, 12); - this.CB_Species.Name = "CB_Species"; - this.CB_Species.Size = new System.Drawing.Size(181, 21); - this.CB_Species.TabIndex = 15; - this.CB_Species.SelectedIndexChanged += new System.EventHandler(this.changeIndex); - // - // GB_MEvo3 - // - this.GB_MEvo3.Controls.Add(this.LBL_Into3); - this.GB_MEvo3.Controls.Add(this.PB_M3); - this.GB_MEvo3.Controls.Add(this.CB_Forme3); - this.GB_MEvo3.Controls.Add(this.PB_S3); - this.GB_MEvo3.Controls.Add(this.CB_Item3); - this.GB_MEvo3.Controls.Add(this.LBL_Forme3); - this.GB_MEvo3.Controls.Add(this.LBL_Item3); - this.GB_MEvo3.Enabled = false; - this.GB_MEvo3.Location = new System.Drawing.Point(276, 62); - this.GB_MEvo3.Name = "GB_MEvo3"; - this.GB_MEvo3.Size = new System.Drawing.Size(126, 142); - this.GB_MEvo3.TabIndex = 13; - this.GB_MEvo3.TabStop = false; - this.GB_MEvo3.Text = "Evolution 3"; - // - // LBL_Into3 - // - this.LBL_Into3.AutoSize = true; - this.LBL_Into3.Location = new System.Drawing.Point(48, 117); - this.LBL_Into3.Name = "LBL_Into3"; - this.LBL_Into3.Size = new System.Drawing.Size(28, 13); - this.LBL_Into3.TabIndex = 36; - this.LBL_Into3.Text = "Into:"; - // - // PB_M3 - // - this.PB_M3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.PB_M3.Location = new System.Drawing.Point(79, 106); - this.PB_M3.Name = "PB_M3"; - this.PB_M3.Size = new System.Drawing.Size(42, 32); - this.PB_M3.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; - this.PB_M3.TabIndex = 35; - this.PB_M3.TabStop = false; - // - // CB_Forme3 - // - this.CB_Forme3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Forme3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Forme3.FormattingEnabled = true; - this.CB_Forme3.Location = new System.Drawing.Point(3, 82); - this.CB_Forme3.Name = "CB_Forme3"; - this.CB_Forme3.Size = new System.Drawing.Size(121, 21); - this.CB_Forme3.TabIndex = 20; - this.CB_Forme3.SelectedIndexChanged += new System.EventHandler(this.Update_PBs); - // - // PB_S3 - // - this.PB_S3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.PB_S3.Location = new System.Drawing.Point(3, 106); - this.PB_S3.Name = "PB_S3"; - this.PB_S3.Size = new System.Drawing.Size(42, 32); - this.PB_S3.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; - this.PB_S3.TabIndex = 34; - this.PB_S3.TabStop = false; - // - // CB_Item3 - // - this.CB_Item3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Item3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Item3.FormattingEnabled = true; - this.CB_Item3.Location = new System.Drawing.Point(3, 36); - this.CB_Item3.Name = "CB_Item3"; - this.CB_Item3.Size = new System.Drawing.Size(121, 21); - this.CB_Item3.TabIndex = 18; - this.CB_Item3.SelectedValueChanged += new System.EventHandler(this.Update_PBs); - // - // LBL_Forme3 - // - this.LBL_Forme3.AutoSize = true; - this.LBL_Forme3.Location = new System.Drawing.Point(6, 65); - this.LBL_Forme3.Name = "LBL_Forme3"; - this.LBL_Forme3.Size = new System.Drawing.Size(85, 13); - this.LBL_Forme3.TabIndex = 10; - this.LBL_Forme3.Text = "Alt Forme (if any)"; - // - // LBL_Item3 - // - this.LBL_Item3.AutoSize = true; - this.LBL_Item3.Location = new System.Drawing.Point(6, 20); - this.LBL_Item3.Name = "LBL_Item3"; - this.LBL_Item3.Size = new System.Drawing.Size(27, 13); - this.LBL_Item3.TabIndex = 9; - this.LBL_Item3.Text = "Item"; - // - // CHK_MEvo3 - // - this.CHK_MEvo3.AutoSize = true; - this.CHK_MEvo3.Location = new System.Drawing.Point(285, 39); - this.CHK_MEvo3.Name = "CHK_MEvo3"; - this.CHK_MEvo3.Size = new System.Drawing.Size(65, 17); - this.CHK_MEvo3.TabIndex = 16; - this.CHK_MEvo3.Text = "Enabled"; - this.CHK_MEvo3.UseVisualStyleBackColor = true; - this.CHK_MEvo3.CheckedChanged += new System.EventHandler(this.CHK_Changed); - // - // bpkx - // - this.bpkx.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.bpkx.Location = new System.Drawing.Point(308, 99); - this.bpkx.Name = "bpkx"; - this.bpkx.Size = new System.Drawing.Size(42, 32); - this.bpkx.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; - this.bpkx.TabIndex = 31; - this.bpkx.TabStop = false; - // - // B_Dump - // - this.B_Dump.Location = new System.Drawing.Point(327, 5); - this.B_Dump.Name = "B_Dump"; - this.B_Dump.Size = new System.Drawing.Size(75, 23); - this.B_Dump.TabIndex = 18; - this.B_Dump.Text = "Dump"; - this.B_Dump.UseVisualStyleBackColor = true; - this.B_Dump.Click += new System.EventHandler(this.B_Dump_Click); - // - // MEE - // - this.AllowDrop = true; - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(414, 212); - this.Controls.Add(this.B_Dump); - this.Controls.Add(this.CHK_MEvo3); - this.Controls.Add(this.GB_MEvo3); - this.Controls.Add(this.CB_Species); - this.Controls.Add(this.CHK_MEvo2); - this.Controls.Add(this.CHK_MEvo1); - this.Controls.Add(this.GB_MEvo2); - this.Controls.Add(this.GB_MEvo1); - this.MaximizeBox = false; - this.MaximumSize = new System.Drawing.Size(430, 250); - this.MinimumSize = new System.Drawing.Size(430, 250); - this.Name = "MegaEvoEditor6"; - this.Text = "Mega Evo Editor"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.formClosing); - this.GB_MEvo1.ResumeLayout(false); - this.GB_MEvo1.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.PB_M1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_S1)).EndInit(); - this.GB_MEvo2.ResumeLayout(false); - this.GB_MEvo2.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.PB_M2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_S2)).EndInit(); - this.GB_MEvo3.ResumeLayout(false); - this.GB_MEvo3.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.PB_M3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_S3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.bpkx)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Label LBL_Item1; - private System.Windows.Forms.Label LBL_Forme1; - private System.Windows.Forms.GroupBox GB_MEvo1; - private System.Windows.Forms.GroupBox GB_MEvo2; - private System.Windows.Forms.Label LBL_Forme2; - private System.Windows.Forms.Label LBL_Item2; - private System.Windows.Forms.CheckBox CHK_MEvo1; - private System.Windows.Forms.CheckBox CHK_MEvo2; - private System.Windows.Forms.ComboBox CB_Species; - private System.Windows.Forms.GroupBox GB_MEvo3; - private System.Windows.Forms.Label LBL_Forme3; - private System.Windows.Forms.Label LBL_Item3; - private System.Windows.Forms.CheckBox CHK_MEvo3; - private System.Windows.Forms.ComboBox CB_Item1; - private System.Windows.Forms.ComboBox CB_Item2; - private System.Windows.Forms.ComboBox CB_Item3; - private System.Windows.Forms.ComboBox CB_Forme1; - private System.Windows.Forms.ComboBox CB_Forme2; - private System.Windows.Forms.ComboBox CB_Forme3; - private System.Windows.Forms.PictureBox PB_M1; - private System.Windows.Forms.PictureBox PB_S1; - private System.Windows.Forms.PictureBox PB_M2; - private System.Windows.Forms.PictureBox PB_S2; - private System.Windows.Forms.PictureBox PB_M3; - private System.Windows.Forms.PictureBox PB_S3; - private System.Windows.Forms.PictureBox bpkx; - private System.Windows.Forms.Label LBL_Into1; - private System.Windows.Forms.Label LBL_Into2; - private System.Windows.Forms.Label LBL_Into3; - private System.Windows.Forms.Button B_Dump; - } -} diff --git a/pk3DS/Subforms/Gen6/MegaEvoEditor6.cs b/pk3DS/Subforms/Gen6/MegaEvoEditor6.cs deleted file mode 100644 index ee67dc6f91..0000000000 --- a/pk3DS/Subforms/Gen6/MegaEvoEditor6.cs +++ /dev/null @@ -1,219 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Media; -using System.Text; -using System.Windows.Forms; - -using pk3DS.Core; -using pk3DS.Core.Structures; - -namespace pk3DS -{ - public partial class MegaEvoEditor6 : Form - { - private readonly byte[][] files; - private readonly string[] forms = Main.Config.getText(TextName.Forms); - private readonly string[] types = Main.Config.getText(TextName.Types); - private readonly string[] specieslist = Main.Config.getText(TextName.SpeciesNames); - private readonly string[] itemlist = Main.Config.getText(TextName.ItemNames); - private readonly GroupBox[] groupbox_spec; - private readonly ComboBox[] forme_spec; - private readonly ComboBox[] item_spec; - private readonly CheckBox[] checkbox_spec; - private readonly PictureBox[][] picturebox_spec; - private bool loaded; - private readonly string[][] AltForms; - private int entry = -1; - private bool dumping; - private MegaEvolutions me; - - public MegaEvoEditor6(byte[][] infiles) // All the initial settings - { - files = infiles; - InitializeComponent(); - CB_Species.DisplayMember = "Text"; - CB_Species.ValueMember = "Value"; - #region Intializations - - Array.Resize(ref specieslist, Main.Config.MaxSpeciesID + 1); - specieslist[0] = itemlist[0] = ""; - specieslist[32] += "♂"; specieslist[29] += "♀"; - AltForms = Main.Config.Personal.getFormList(specieslist, Main.Config.MaxSpeciesID); - - groupbox_spec = new[] { GB_MEvo1, GB_MEvo2, GB_MEvo3 }; - item_spec = new[] { CB_Item1, CB_Item2, CB_Item3 }; - forme_spec = new[] { CB_Forme1, CB_Forme2, CB_Forme3 }; - checkbox_spec = new[] { CHK_MEvo1, CHK_MEvo2, CHK_MEvo3 }; - picturebox_spec = new[] { new[] { PB_S1, PB_S2, PB_S3 }, new[] { PB_M1, PB_M2, PB_M3 } }; - #endregion - Setup(); - CB_Species.SelectedIndex = 0; - } - private void Setup() - { - List temp_list = new List(specieslist); - temp_list.Sort(); - - CB_Species.DataSource = temp_list.Select(mon => new WinFormsUtil.cbItem { Text = mon, Value = Array.IndexOf(specieslist, mon) }).ToList(); - - List items = new List(itemlist); - List sorted_items = new List(itemlist); - List[] item_lists = new List[item_spec.Length]; - for (int i = 0; i < item_lists.Length; i++) - item_lists[i] = new List(); - - sorted_items.Sort(); - for (int i = 0; i < items.Count; i++) - { - int index = items.IndexOf(sorted_items[i]); - { - var ncbi = new WinFormsUtil.cbItem(); - if (sorted_items[i] == "???") continue; // Don't allow stubbed items. - ncbi.Text = sorted_items[i] + " - " + index.ToString("000"); - ncbi.Value = index; - foreach (var l in item_lists) - l.Add(ncbi); - } - items[index] = ""; - } - for (int i = 0; i < item_spec.Length; i++) - { - item_spec[i].ValueMember = "Value"; - item_spec[i].DisplayMember = "Text"; - item_spec[i].DataSource = item_lists[i]; - item_spec[i].SelectedValue = 0; - } - - loaded = true; - } - private void CHK_Changed(object sender, EventArgs e) - { - for (int i = 0; i < groupbox_spec.Length; i++) - { - groupbox_spec[i].Enabled = checkbox_spec[i].Checked; - Update_PBs(i); - } - } - - private void changeIndex(object sender, EventArgs e) - { - setEntry(); - entry = (int)CB_Species.SelectedValue; - getEntry(); - } - private void getEntry() - { - if (!loaded) return; - if (Main.Config.ORAS && entry == 384 && !dumping) // Current Mon is Rayquaza - WinFormsUtil.Alert("Rayquaza is special and uses a different activator for its evolution. If it knows Dragon Ascent, it can Mega Evolve", "Don't edit its evolution table if you want to keep this functionality."); - - byte[] data = files[entry]; - - foreach (ComboBox CB in forme_spec) - FormUtil.setForms(entry, CB, AltForms); - - me = new MegaEvolutions(data); - for (int i = 0; i < 3; i++) - { - checkbox_spec[i].Checked = me.Method[i] == 1; - item_spec[i].SelectedValue = (int)me.Argument[i]; - forme_spec[i].SelectedIndex = me.Form[i]; - } - } - private void setEntry() - { - if (entry < 1 || entry == 384) return; // Don't edit invalid / Rayquaza. - for (int i = 0; i < 3; i++) - { - if (me.Method[i] > 1) - return; // Shouldn't hit this. - me.Method[i] = (ushort)(checkbox_spec[i].Checked ? 1 : 0); - me.Argument[i] = (ushort)WinFormsUtil.getIndex(item_spec[i]); - me.Form[i] = (ushort)forme_spec[i].SelectedIndex; - } - files[entry] = me.Write(); - } - - private void Update_PBs(object sender, EventArgs e) - { - if (!loaded) return; - for (int i = 0; i < checkbox_spec.Length; i++) - { - CheckBox CB = checkbox_spec[i]; - if (CB.Checked) - { - UpdateImage(picturebox_spec[0][i], entry, 0, WinFormsUtil.getIndex(item_spec[i]), 0); - UpdateImage(picturebox_spec[1][i], entry, forme_spec[i].SelectedIndex, WinFormsUtil.getIndex(item_spec[i]), 0); - } - else - { - UpdateImage(picturebox_spec[0][i], 0, 0, WinFormsUtil.getIndex(item_spec[i]), 0); - UpdateImage(picturebox_spec[1][i], 0, 0, WinFormsUtil.getIndex(item_spec[i]), 0); - } - } - } - - private void Update_PBs(int i) - { - if (!loaded) return; - CheckBox CB = checkbox_spec[i]; - if (CB.Checked) - { - UpdateImage(picturebox_spec[0][i], entry, 0, WinFormsUtil.getIndex(item_spec[i]), 0); - UpdateImage(picturebox_spec[1][i], entry, forme_spec[i].SelectedIndex, WinFormsUtil.getIndex(item_spec[i]), 0); - } - else - { - UpdateImage(picturebox_spec[0][i], 0, 0, WinFormsUtil.getIndex(item_spec[i]), 0); - UpdateImage(picturebox_spec[1][i], 0, 0, WinFormsUtil.getIndex(item_spec[i]), 0); - } - } - - private void UpdateImage(PictureBox pb, int species, int form, int item, int gender) - { - if (!pb.Enabled) - { - pb.Image = null; - return; - } - pb.Image = WinFormsUtil.getSprite(species, form, gender, item, Main.Config); - } - private void formClosing(object sender, FormClosingEventArgs e) - { - setEntry(); - } - - private void B_Dump_Click(object sender, EventArgs e) - { - if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Dump all Mega Evolutions to Text File?")) - return; - dumping = true; - string result = ""; - - for (int i = 0; i < Main.Config.MaxSpeciesID; i++) - { - CB_Species.SelectedValue = i; // Get new Species - string header = "======" + Environment.NewLine + entry + " " + CB_Species.Text + Environment.NewLine + "======" + Environment.NewLine; - bool headered = false; - for (int j = 0; j < 3; j++) - { - if (!checkbox_spec[j].Checked) continue; - if (!headered) { result += header; headered = true; } - result += string.Format("Can Mega Evolve into {1} if its held item is {0}." + Environment.NewLine, itemlist[(int)item_spec[j].SelectedValue], forme_spec[j].Text); - } - - if (headered) - result += Environment.NewLine; - } - SaveFileDialog sfd = new SaveFileDialog {FileName = "Mega Evolutions.txt", Filter = "Text File|*.txt"}; - - SystemSounds.Asterisk.Play(); - if (sfd.ShowDialog() == DialogResult.OK) - File.WriteAllText(sfd.FileName, result, Encoding.Unicode); - - dumping = false; - } - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/MoveEditor6.Designer.cs b/pk3DS/Subforms/Gen6/MoveEditor6.Designer.cs deleted file mode 100644 index c9921bc33f..0000000000 --- a/pk3DS/Subforms/Gen6/MoveEditor6.Designer.cs +++ /dev/null @@ -1,995 +0,0 @@ -namespace pk3DS -{ - partial class MoveEditor6 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.L_Type = new System.Windows.Forms.Label(); - this.CB_Move = new System.Windows.Forms.ComboBox(); - this.L_Move = new System.Windows.Forms.Label(); - this.CB_Type = new System.Windows.Forms.ComboBox(); - this.CB_Category = new System.Windows.Forms.ComboBox(); - this.L_Category = new System.Windows.Forms.Label(); - this.L_BP = new System.Windows.Forms.Label(); - this.L_PP = new System.Windows.Forms.Label(); - this.L_Min = new System.Windows.Forms.Label(); - this.L_Max = new System.Windows.Forms.Label(); - this.L_Priority = new System.Windows.Forms.Label(); - this.NUD_HitMax = new System.Windows.Forms.NumericUpDown(); - this.NUD_HitMin = new System.Windows.Forms.NumericUpDown(); - this.NUD_Priority = new System.Windows.Forms.NumericUpDown(); - this.NUD_PP = new System.Windows.Forms.NumericUpDown(); - this.NUD_Power = new System.Windows.Forms.NumericUpDown(); - this.NUD_TurnMin = new System.Windows.Forms.NumericUpDown(); - this.L_TrapMin = new System.Windows.Forms.Label(); - this.NUD_TurnMax = new System.Windows.Forms.NumericUpDown(); - this.L_TrapMax = new System.Windows.Forms.Label(); - this.NUD_Recoil = new System.Windows.Forms.NumericUpDown(); - this.L_Recoil = new System.Windows.Forms.Label(); - this.NUD_Heal = new System.Windows.Forms.NumericUpDown(); - this.L_Heal = new System.Windows.Forms.Label(); - this.NUD_CritStage = new System.Windows.Forms.NumericUpDown(); - this.L_CritStage = new System.Windows.Forms.Label(); - this.NUD_Flinch = new System.Windows.Forms.NumericUpDown(); - this.L_Flinch = new System.Windows.Forms.Label(); - this.GB_Stat = new System.Windows.Forms.GroupBox(); - this.NUD_StatP3 = new System.Windows.Forms.NumericUpDown(); - this.NUD_StatP2 = new System.Windows.Forms.NumericUpDown(); - this.NUD_StatP1 = new System.Windows.Forms.NumericUpDown(); - this.NUD_Stat2 = new System.Windows.Forms.NumericUpDown(); - this.NUD_Stat3 = new System.Windows.Forms.NumericUpDown(); - this.NUD_Stat1 = new System.Windows.Forms.NumericUpDown(); - this.CB_Stat3 = new System.Windows.Forms.ComboBox(); - this.CB_Stat2 = new System.Windows.Forms.ComboBox(); - this.CB_Stat1 = new System.Windows.Forms.ComboBox(); - this.L_Stage3 = new System.Windows.Forms.Label(); - this.L_Stage2 = new System.Windows.Forms.Label(); - this.L_Stage1 = new System.Windows.Forms.Label(); - this.L_Targeting = new System.Windows.Forms.Label(); - this.L_Influcts = new System.Windows.Forms.Label(); - this.RTB = new System.Windows.Forms.RichTextBox(); - this.CB_Targeting = new System.Windows.Forms.ComboBox(); - this.CB_Inflict = new System.Windows.Forms.ComboBox(); - this.L_Inflict = new System.Windows.Forms.Label(); - this.NUD_Inflict = new System.Windows.Forms.NumericUpDown(); - this.NUD_Effect = new System.Windows.Forms.NumericUpDown(); - this.L_Effect = new System.Windows.Forms.Label(); - this.NUD_Accuracy = new System.Windows.Forms.NumericUpDown(); - this.L_Accuracy = new System.Windows.Forms.Label(); - this.CB_Quality = new System.Windows.Forms.ComboBox(); - this.L_Quality = new System.Windows.Forms.Label(); - this.L_0xB = new System.Windows.Forms.Label(); - this.NUD_0xB = new System.Windows.Forms.NumericUpDown(); - this.NUD_0x20 = new System.Windows.Forms.NumericUpDown(); - this.NUD_0x21 = new System.Windows.Forms.NumericUpDown(); - this.L_0x20 = new System.Windows.Forms.Label(); - this.L_0x21 = new System.Windows.Forms.Label(); - this.B_RandAll = new System.Windows.Forms.Button(); - this.groupBox1 = new System.Windows.Forms.GroupBox(); - this.CHK_Type = new System.Windows.Forms.CheckBox(); - this.CHK_Category = new System.Windows.Forms.CheckBox(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_HitMax)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_HitMin)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Priority)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_PP)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Power)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_TurnMin)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_TurnMax)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Recoil)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Heal)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_CritStage)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Flinch)).BeginInit(); - this.GB_Stat.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_StatP3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_StatP2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_StatP1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Stat2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Stat3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Stat1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Inflict)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Effect)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Accuracy)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_0xB)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_0x20)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_0x21)).BeginInit(); - this.groupBox1.SuspendLayout(); - this.SuspendLayout(); - // - // L_Type - // - this.L_Type.AutoSize = true; - this.L_Type.Location = new System.Drawing.Point(32, 38); - this.L_Type.Name = "L_Type"; - this.L_Type.Size = new System.Drawing.Size(34, 13); - this.L_Type.TabIndex = 0; - this.L_Type.Text = "Type:"; - this.L_Type.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // CB_Move - // - this.CB_Move.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Move.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Move.DropDownWidth = 120; - this.CB_Move.FormattingEnabled = true; - this.CB_Move.Location = new System.Drawing.Point(71, 10); - this.CB_Move.Name = "CB_Move"; - this.CB_Move.Size = new System.Drawing.Size(130, 21); - this.CB_Move.TabIndex = 1; - this.CB_Move.SelectedIndexChanged += new System.EventHandler(this.changeEntry); - // - // L_Move - // - this.L_Move.AutoSize = true; - this.L_Move.Location = new System.Drawing.Point(33, 13); - this.L_Move.Name = "L_Move"; - this.L_Move.Size = new System.Drawing.Size(37, 13); - this.L_Move.TabIndex = 2; - this.L_Move.Text = "Move:"; - this.L_Move.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // CB_Type - // - this.CB_Type.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_Type.FormattingEnabled = true; - this.CB_Type.Location = new System.Drawing.Point(71, 35); - this.CB_Type.Name = "CB_Type"; - this.CB_Type.Size = new System.Drawing.Size(99, 21); - this.CB_Type.TabIndex = 3; - // - // CB_Category - // - this.CB_Category.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_Category.FormattingEnabled = true; - this.CB_Category.Location = new System.Drawing.Point(71, 58); - this.CB_Category.Name = "CB_Category"; - this.CB_Category.Size = new System.Drawing.Size(99, 21); - this.CB_Category.TabIndex = 4; - // - // L_Category - // - this.L_Category.AutoSize = true; - this.L_Category.Location = new System.Drawing.Point(18, 61); - this.L_Category.Name = "L_Category"; - this.L_Category.Size = new System.Drawing.Size(52, 13); - this.L_Category.TabIndex = 5; - this.L_Category.Text = "Category:"; - this.L_Category.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_BP - // - this.L_BP.AutoSize = true; - this.L_BP.Location = new System.Drawing.Point(26, 132); - this.L_BP.Name = "L_BP"; - this.L_BP.Size = new System.Drawing.Size(40, 13); - this.L_BP.TabIndex = 7; - this.L_BP.Text = "Power:"; - this.L_BP.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_PP - // - this.L_PP.AutoSize = true; - this.L_PP.Location = new System.Drawing.Point(15, 174); - this.L_PP.Name = "L_PP"; - this.L_PP.Size = new System.Drawing.Size(51, 13); - this.L_PP.TabIndex = 8; - this.L_PP.Text = "Base PP:"; - this.L_PP.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_Min - // - this.L_Min.AutoSize = true; - this.L_Min.Location = new System.Drawing.Point(236, 132); - this.L_Min.Name = "L_Min"; - this.L_Min.Size = new System.Drawing.Size(48, 13); - this.L_Min.TabIndex = 10; - this.L_Min.Text = "Min Hits:"; - this.L_Min.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_Max - // - this.L_Max.AutoSize = true; - this.L_Max.Location = new System.Drawing.Point(233, 153); - this.L_Max.Name = "L_Max"; - this.L_Max.Size = new System.Drawing.Size(51, 13); - this.L_Max.TabIndex = 12; - this.L_Max.Text = "Max Hits:"; - this.L_Max.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_Priority - // - this.L_Priority.AutoSize = true; - this.L_Priority.Location = new System.Drawing.Point(25, 195); - this.L_Priority.Name = "L_Priority"; - this.L_Priority.Size = new System.Drawing.Size(41, 13); - this.L_Priority.TabIndex = 17; - this.L_Priority.Text = "Priority:"; - // - // NUD_HitMax - // - this.NUD_HitMax.Location = new System.Drawing.Point(290, 151); - this.NUD_HitMax.Maximum = new decimal(new int[] { - 6, - 0, - 0, - 0}); - this.NUD_HitMax.Name = "NUD_HitMax"; - this.NUD_HitMax.Size = new System.Drawing.Size(30, 20); - this.NUD_HitMax.TabIndex = 18; - // - // NUD_HitMin - // - this.NUD_HitMin.Location = new System.Drawing.Point(290, 130); - this.NUD_HitMin.Maximum = new decimal(new int[] { - 6, - 0, - 0, - 0}); - this.NUD_HitMin.Name = "NUD_HitMin"; - this.NUD_HitMin.Size = new System.Drawing.Size(30, 20); - this.NUD_HitMin.TabIndex = 19; - // - // NUD_Priority - // - this.NUD_Priority.Location = new System.Drawing.Point(72, 193); - this.NUD_Priority.Maximum = new decimal(new int[] { - 8, - 0, - 0, - 0}); - this.NUD_Priority.Minimum = new decimal(new int[] { - 8, - 0, - 0, - -2147483648}); - this.NUD_Priority.Name = "NUD_Priority"; - this.NUD_Priority.Size = new System.Drawing.Size(35, 20); - this.NUD_Priority.TabIndex = 20; - // - // NUD_PP - // - this.NUD_PP.Location = new System.Drawing.Point(72, 172); - this.NUD_PP.Maximum = new decimal(new int[] { - 40, - 0, - 0, - 0}); - this.NUD_PP.Name = "NUD_PP"; - this.NUD_PP.Size = new System.Drawing.Size(35, 20); - this.NUD_PP.TabIndex = 21; - // - // NUD_Power - // - this.NUD_Power.Location = new System.Drawing.Point(72, 130); - this.NUD_Power.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.NUD_Power.Name = "NUD_Power"; - this.NUD_Power.Size = new System.Drawing.Size(45, 20); - this.NUD_Power.TabIndex = 22; - // - // NUD_TurnMin - // - this.NUD_TurnMin.Location = new System.Drawing.Point(290, 172); - this.NUD_TurnMin.Maximum = new decimal(new int[] { - 15, - 0, - 0, - 0}); - this.NUD_TurnMin.Name = "NUD_TurnMin"; - this.NUD_TurnMin.Size = new System.Drawing.Size(30, 20); - this.NUD_TurnMin.TabIndex = 26; - // - // L_TrapMin - // - this.L_TrapMin.AutoSize = true; - this.L_TrapMin.Location = new System.Drawing.Point(227, 174); - this.L_TrapMin.Name = "L_TrapMin"; - this.L_TrapMin.Size = new System.Drawing.Size(57, 13); - this.L_TrapMin.TabIndex = 23; - this.L_TrapMin.Text = "Min Turns:"; - this.L_TrapMin.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_TurnMax - // - this.NUD_TurnMax.Location = new System.Drawing.Point(290, 193); - this.NUD_TurnMax.Maximum = new decimal(new int[] { - 15, - 0, - 0, - 0}); - this.NUD_TurnMax.Name = "NUD_TurnMax"; - this.NUD_TurnMax.Size = new System.Drawing.Size(30, 20); - this.NUD_TurnMax.TabIndex = 25; - // - // L_TrapMax - // - this.L_TrapMax.AutoSize = true; - this.L_TrapMax.Location = new System.Drawing.Point(224, 195); - this.L_TrapMax.Name = "L_TrapMax"; - this.L_TrapMax.Size = new System.Drawing.Size(60, 13); - this.L_TrapMax.TabIndex = 24; - this.L_TrapMax.Text = "Max Turns:"; - this.L_TrapMax.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_Recoil - // - this.NUD_Recoil.Location = new System.Drawing.Point(184, 172); - this.NUD_Recoil.Minimum = new decimal(new int[] { - 100, - 0, - 0, - -2147483648}); - this.NUD_Recoil.Name = "NUD_Recoil"; - this.NUD_Recoil.Size = new System.Drawing.Size(40, 20); - this.NUD_Recoil.TabIndex = 34; - // - // L_Recoil - // - this.L_Recoil.AutoSize = true; - this.L_Recoil.Location = new System.Drawing.Point(114, 174); - this.L_Recoil.Name = "L_Recoil"; - this.L_Recoil.Size = new System.Drawing.Size(64, 13); - this.L_Recoil.TabIndex = 31; - this.L_Recoil.Text = "Rec/Abs %:"; - this.L_Recoil.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_Heal - // - this.NUD_Heal.Location = new System.Drawing.Point(184, 151); - this.NUD_Heal.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.NUD_Heal.Name = "NUD_Heal"; - this.NUD_Heal.Size = new System.Drawing.Size(40, 20); - this.NUD_Heal.TabIndex = 33; - // - // L_Heal - // - this.L_Heal.AutoSize = true; - this.L_Heal.Location = new System.Drawing.Point(135, 153); - this.L_Heal.Name = "L_Heal"; - this.L_Heal.Size = new System.Drawing.Size(43, 13); - this.L_Heal.TabIndex = 32; - this.L_Heal.Text = "Heal %:"; - this.L_Heal.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_CritStage - // - this.NUD_CritStage.Location = new System.Drawing.Point(184, 193); - this.NUD_CritStage.Maximum = new decimal(new int[] { - 6, - 0, - 0, - 0}); - this.NUD_CritStage.Name = "NUD_CritStage"; - this.NUD_CritStage.Size = new System.Drawing.Size(30, 20); - this.NUD_CritStage.TabIndex = 30; - // - // L_CritStage - // - this.L_CritStage.AutoSize = true; - this.L_CritStage.Location = new System.Drawing.Point(122, 195); - this.L_CritStage.Name = "L_CritStage"; - this.L_CritStage.Size = new System.Drawing.Size(56, 13); - this.L_CritStage.TabIndex = 27; - this.L_CritStage.Text = "Crit Stage:"; - this.L_CritStage.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_Flinch - // - this.NUD_Flinch.Location = new System.Drawing.Point(184, 130); - this.NUD_Flinch.Maximum = new decimal(new int[] { - 101, - 0, - 0, - 0}); - this.NUD_Flinch.Name = "NUD_Flinch"; - this.NUD_Flinch.Size = new System.Drawing.Size(40, 20); - this.NUD_Flinch.TabIndex = 29; - // - // L_Flinch - // - this.L_Flinch.AutoSize = true; - this.L_Flinch.Location = new System.Drawing.Point(129, 132); - this.L_Flinch.Name = "L_Flinch"; - this.L_Flinch.Size = new System.Drawing.Size(49, 13); - this.L_Flinch.TabIndex = 28; - this.L_Flinch.Text = "Flinch %:"; - this.L_Flinch.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // GB_Stat - // - this.GB_Stat.Controls.Add(this.NUD_StatP3); - this.GB_Stat.Controls.Add(this.NUD_StatP2); - this.GB_Stat.Controls.Add(this.NUD_StatP1); - this.GB_Stat.Controls.Add(this.NUD_Stat2); - this.GB_Stat.Controls.Add(this.NUD_Stat3); - this.GB_Stat.Controls.Add(this.NUD_Stat1); - this.GB_Stat.Controls.Add(this.CB_Stat3); - this.GB_Stat.Controls.Add(this.CB_Stat2); - this.GB_Stat.Controls.Add(this.CB_Stat1); - this.GB_Stat.Controls.Add(this.L_Stage3); - this.GB_Stat.Controls.Add(this.L_Stage2); - this.GB_Stat.Controls.Add(this.L_Stage1); - this.GB_Stat.Location = new System.Drawing.Point(11, 216); - this.GB_Stat.Name = "GB_Stat"; - this.GB_Stat.Size = new System.Drawing.Size(212, 100); - this.GB_Stat.TabIndex = 35; - this.GB_Stat.TabStop = false; - this.GB_Stat.Text = "Stat Stage Changes"; - // - // NUD_StatP3 - // - this.NUD_StatP3.Location = new System.Drawing.Point(165, 68); - this.NUD_StatP3.Maximum = new decimal(new int[] { - 101, - 0, - 0, - 0}); - this.NUD_StatP3.Name = "NUD_StatP3"; - this.NUD_StatP3.Size = new System.Drawing.Size(40, 20); - this.NUD_StatP3.TabIndex = 44; - // - // NUD_StatP2 - // - this.NUD_StatP2.Location = new System.Drawing.Point(165, 46); - this.NUD_StatP2.Maximum = new decimal(new int[] { - 101, - 0, - 0, - 0}); - this.NUD_StatP2.Name = "NUD_StatP2"; - this.NUD_StatP2.Size = new System.Drawing.Size(40, 20); - this.NUD_StatP2.TabIndex = 43; - // - // NUD_StatP1 - // - this.NUD_StatP1.Location = new System.Drawing.Point(165, 24); - this.NUD_StatP1.Maximum = new decimal(new int[] { - 101, - 0, - 0, - 0}); - this.NUD_StatP1.Name = "NUD_StatP1"; - this.NUD_StatP1.Size = new System.Drawing.Size(40, 20); - this.NUD_StatP1.TabIndex = 42; - // - // NUD_Stat2 - // - this.NUD_Stat2.Location = new System.Drawing.Point(127, 46); - this.NUD_Stat2.Maximum = new decimal(new int[] { - 5, - 0, - 0, - 0}); - this.NUD_Stat2.Minimum = new decimal(new int[] { - 5, - 0, - 0, - -2147483648}); - this.NUD_Stat2.Name = "NUD_Stat2"; - this.NUD_Stat2.Size = new System.Drawing.Size(35, 20); - this.NUD_Stat2.TabIndex = 41; - // - // NUD_Stat3 - // - this.NUD_Stat3.Location = new System.Drawing.Point(127, 68); - this.NUD_Stat3.Maximum = new decimal(new int[] { - 5, - 0, - 0, - 0}); - this.NUD_Stat3.Minimum = new decimal(new int[] { - 5, - 0, - 0, - -2147483648}); - this.NUD_Stat3.Name = "NUD_Stat3"; - this.NUD_Stat3.Size = new System.Drawing.Size(35, 20); - this.NUD_Stat3.TabIndex = 40; - // - // NUD_Stat1 - // - this.NUD_Stat1.Location = new System.Drawing.Point(127, 24); - this.NUD_Stat1.Maximum = new decimal(new int[] { - 5, - 0, - 0, - 0}); - this.NUD_Stat1.Minimum = new decimal(new int[] { - 5, - 0, - 0, - -2147483648}); - this.NUD_Stat1.Name = "NUD_Stat1"; - this.NUD_Stat1.Size = new System.Drawing.Size(35, 20); - this.NUD_Stat1.TabIndex = 39; - // - // CB_Stat3 - // - this.CB_Stat3.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_Stat3.FormattingEnabled = true; - this.CB_Stat3.Location = new System.Drawing.Point(27, 67); - this.CB_Stat3.Name = "CB_Stat3"; - this.CB_Stat3.Size = new System.Drawing.Size(99, 21); - this.CB_Stat3.TabIndex = 38; - // - // CB_Stat2 - // - this.CB_Stat2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_Stat2.FormattingEnabled = true; - this.CB_Stat2.Location = new System.Drawing.Point(27, 45); - this.CB_Stat2.Name = "CB_Stat2"; - this.CB_Stat2.Size = new System.Drawing.Size(99, 21); - this.CB_Stat2.TabIndex = 37; - // - // CB_Stat1 - // - this.CB_Stat1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_Stat1.FormattingEnabled = true; - this.CB_Stat1.Location = new System.Drawing.Point(27, 23); - this.CB_Stat1.Name = "CB_Stat1"; - this.CB_Stat1.Size = new System.Drawing.Size(99, 21); - this.CB_Stat1.TabIndex = 36; - // - // L_Stage3 - // - this.L_Stage3.AutoSize = true; - this.L_Stage3.Location = new System.Drawing.Point(5, 70); - this.L_Stage3.Name = "L_Stage3"; - this.L_Stage3.Size = new System.Drawing.Size(16, 13); - this.L_Stage3.TabIndex = 2; - this.L_Stage3.Text = "3:"; - // - // L_Stage2 - // - this.L_Stage2.AutoSize = true; - this.L_Stage2.Location = new System.Drawing.Point(5, 48); - this.L_Stage2.Name = "L_Stage2"; - this.L_Stage2.Size = new System.Drawing.Size(16, 13); - this.L_Stage2.TabIndex = 1; - this.L_Stage2.Text = "2:"; - // - // L_Stage1 - // - this.L_Stage1.AutoSize = true; - this.L_Stage1.Location = new System.Drawing.Point(5, 26); - this.L_Stage1.Name = "L_Stage1"; - this.L_Stage1.Size = new System.Drawing.Size(16, 13); - this.L_Stage1.TabIndex = 0; - this.L_Stage1.Text = "1:"; - // - // L_Targeting - // - this.L_Targeting.AutoSize = true; - this.L_Targeting.Location = new System.Drawing.Point(173, 38); - this.L_Targeting.Name = "L_Targeting"; - this.L_Targeting.Size = new System.Drawing.Size(55, 13); - this.L_Targeting.TabIndex = 36; - this.L_Targeting.Text = "Targeting:"; - this.L_Targeting.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_Influcts - // - this.L_Influcts.AutoSize = true; - this.L_Influcts.Location = new System.Drawing.Point(188, 60); - this.L_Influcts.Name = "L_Influcts"; - this.L_Influcts.Size = new System.Drawing.Size(40, 13); - this.L_Influcts.TabIndex = 37; - this.L_Influcts.Text = "Inflicts:"; - this.L_Influcts.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // RTB - // - this.RTB.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left))); - this.RTB.Location = new System.Drawing.Point(12, 324); - this.RTB.Name = "RTB"; - this.RTB.ReadOnly = true; - this.RTB.Size = new System.Drawing.Size(316, 51); - this.RTB.TabIndex = 38; - this.RTB.Text = ""; - // - // CB_Targeting - // - this.CB_Targeting.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_Targeting.DropDownWidth = 150; - this.CB_Targeting.FormattingEnabled = true; - this.CB_Targeting.Location = new System.Drawing.Point(228, 35); - this.CB_Targeting.Name = "CB_Targeting"; - this.CB_Targeting.Size = new System.Drawing.Size(99, 21); - this.CB_Targeting.TabIndex = 39; - // - // CB_Inflict - // - this.CB_Inflict.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_Inflict.DropDownWidth = 150; - this.CB_Inflict.FormattingEnabled = true; - this.CB_Inflict.Location = new System.Drawing.Point(228, 57); - this.CB_Inflict.Name = "CB_Inflict"; - this.CB_Inflict.Size = new System.Drawing.Size(99, 21); - this.CB_Inflict.TabIndex = 40; - // - // L_Inflict - // - this.L_Inflict.AutoSize = true; - this.L_Inflict.Location = new System.Drawing.Point(238, 81); - this.L_Inflict.Name = "L_Inflict"; - this.L_Inflict.Size = new System.Drawing.Size(46, 13); - this.L_Inflict.TabIndex = 41; - this.L_Inflict.Text = "Inflict %:"; - this.L_Inflict.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_Inflict - // - this.NUD_Inflict.Location = new System.Drawing.Point(287, 78); - this.NUD_Inflict.Maximum = new decimal(new int[] { - 101, - 0, - 0, - 0}); - this.NUD_Inflict.Name = "NUD_Inflict"; - this.NUD_Inflict.Size = new System.Drawing.Size(40, 20); - this.NUD_Inflict.TabIndex = 42; - // - // NUD_Effect - // - this.NUD_Effect.Location = new System.Drawing.Point(150, 103); - this.NUD_Effect.Maximum = new decimal(new int[] { - 65535, - 0, - 0, - 0}); - this.NUD_Effect.Name = "NUD_Effect"; - this.NUD_Effect.Size = new System.Drawing.Size(50, 20); - this.NUD_Effect.TabIndex = 44; - // - // L_Effect - // - this.L_Effect.AutoSize = true; - this.L_Effect.Location = new System.Drawing.Point(106, 106); - this.L_Effect.Name = "L_Effect"; - this.L_Effect.Size = new System.Drawing.Size(38, 13); - this.L_Effect.TabIndex = 45; - this.L_Effect.Text = "Effect:"; - this.L_Effect.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_Accuracy - // - this.NUD_Accuracy.Location = new System.Drawing.Point(72, 151); - this.NUD_Accuracy.Maximum = new decimal(new int[] { - 101, - 0, - 0, - 0}); - this.NUD_Accuracy.Name = "NUD_Accuracy"; - this.NUD_Accuracy.Size = new System.Drawing.Size(40, 20); - this.NUD_Accuracy.TabIndex = 47; - // - // L_Accuracy - // - this.L_Accuracy.AutoSize = true; - this.L_Accuracy.Location = new System.Drawing.Point(17, 153); - this.L_Accuracy.Name = "L_Accuracy"; - this.L_Accuracy.Size = new System.Drawing.Size(49, 13); - this.L_Accuracy.TabIndex = 46; - this.L_Accuracy.Text = "Accur %:"; - this.L_Accuracy.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // CB_Quality - // - this.CB_Quality.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_Quality.DropDownWidth = 170; - this.CB_Quality.FormattingEnabled = true; - this.CB_Quality.Location = new System.Drawing.Point(71, 81); - this.CB_Quality.Name = "CB_Quality"; - this.CB_Quality.Size = new System.Drawing.Size(129, 21); - this.CB_Quality.TabIndex = 48; - // - // L_Quality - // - this.L_Quality.AutoSize = true; - this.L_Quality.Location = new System.Drawing.Point(20, 84); - this.L_Quality.Name = "L_Quality"; - this.L_Quality.Size = new System.Drawing.Size(50, 13); - this.L_Quality.TabIndex = 49; - this.L_Quality.Text = "Qualities:"; - this.L_Quality.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_0xB - // - this.L_0xB.AutoSize = true; - this.L_0xB.Location = new System.Drawing.Point(256, 101); - this.L_0xB.Name = "L_0xB"; - this.L_0xB.Size = new System.Drawing.Size(28, 13); - this.L_0xB.TabIndex = 50; - this.L_0xB.Text = "0xB:"; - this.L_0xB.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_0xB - // - this.NUD_0xB.Location = new System.Drawing.Point(287, 99); - this.NUD_0xB.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.NUD_0xB.Name = "NUD_0xB"; - this.NUD_0xB.Size = new System.Drawing.Size(40, 20); - this.NUD_0xB.TabIndex = 51; - // - // NUD_0x20 - // - this.NUD_0x20.Location = new System.Drawing.Point(282, 239); - this.NUD_0x20.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.NUD_0x20.Name = "NUD_0x20"; - this.NUD_0x20.Size = new System.Drawing.Size(40, 20); - this.NUD_0x20.TabIndex = 52; - // - // NUD_0x21 - // - this.NUD_0x21.Location = new System.Drawing.Point(282, 261); - this.NUD_0x21.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.NUD_0x21.Name = "NUD_0x21"; - this.NUD_0x21.Size = new System.Drawing.Size(40, 20); - this.NUD_0x21.TabIndex = 53; - // - // L_0x20 - // - this.L_0x20.AutoSize = true; - this.L_0x20.Location = new System.Drawing.Point(232, 242); - this.L_0x20.Name = "L_0x20"; - this.L_0x20.Size = new System.Drawing.Size(44, 13); - this.L_0x20.TabIndex = 59; - this.L_0x20.Text = "Flags 1:"; - this.L_0x20.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_0x21 - // - this.L_0x21.AutoSize = true; - this.L_0x21.Location = new System.Drawing.Point(233, 264); - this.L_0x21.Name = "L_0x21"; - this.L_0x21.Size = new System.Drawing.Size(44, 13); - this.L_0x21.TabIndex = 62; - this.L_0x21.Text = "Flags 2:"; - this.L_0x21.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // B_RandAll - // - this.B_RandAll.Location = new System.Drawing.Point(333, 10); - this.B_RandAll.Name = "B_RandAll"; - this.B_RandAll.Size = new System.Drawing.Size(98, 23); - this.B_RandAll.TabIndex = 63; - this.B_RandAll.Text = "Randomize!"; - this.B_RandAll.UseVisualStyleBackColor = true; - this.B_RandAll.Click += new System.EventHandler(this.B_RandAll_Click); - // - // groupBox1 - // - this.groupBox1.Controls.Add(this.CHK_Category); - this.groupBox1.Controls.Add(this.CHK_Type); - this.groupBox1.Location = new System.Drawing.Point(333, 33); - this.groupBox1.Name = "groupBox1"; - this.groupBox1.Size = new System.Drawing.Size(98, 342); - this.groupBox1.TabIndex = 64; - this.groupBox1.TabStop = false; - this.groupBox1.Text = "Options"; - // - // CHK_Type - // - this.CHK_Type.AutoSize = true; - this.CHK_Type.Location = new System.Drawing.Point(6, 19); - this.CHK_Type.Name = "CHK_Type"; - this.CHK_Type.Size = new System.Drawing.Size(50, 17); - this.CHK_Type.TabIndex = 0; - this.CHK_Type.Text = "Type"; - this.CHK_Type.UseVisualStyleBackColor = true; - // - // CHK_Category - // - this.CHK_Category.AutoSize = true; - this.CHK_Category.Location = new System.Drawing.Point(6, 34); - this.CHK_Category.Name = "CHK_Category"; - this.CHK_Category.Size = new System.Drawing.Size(68, 17); - this.CHK_Category.TabIndex = 1; - this.CHK_Category.Text = "Category"; - this.CHK_Category.UseVisualStyleBackColor = true; - // - // Moves - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(439, 382); - this.Controls.Add(this.groupBox1); - this.Controls.Add(this.B_RandAll); - this.Controls.Add(this.L_0x21); - this.Controls.Add(this.L_0x20); - this.Controls.Add(this.NUD_0x21); - this.Controls.Add(this.NUD_0x20); - this.Controls.Add(this.NUD_0xB); - this.Controls.Add(this.L_0xB); - this.Controls.Add(this.CB_Quality); - this.Controls.Add(this.L_Quality); - this.Controls.Add(this.NUD_Accuracy); - this.Controls.Add(this.L_Accuracy); - this.Controls.Add(this.L_Effect); - this.Controls.Add(this.NUD_Effect); - this.Controls.Add(this.NUD_Inflict); - this.Controls.Add(this.L_Inflict); - this.Controls.Add(this.CB_Inflict); - this.Controls.Add(this.CB_Targeting); - this.Controls.Add(this.RTB); - this.Controls.Add(this.L_Targeting); - this.Controls.Add(this.L_Influcts); - this.Controls.Add(this.GB_Stat); - this.Controls.Add(this.NUD_Recoil); - this.Controls.Add(this.L_Recoil); - this.Controls.Add(this.NUD_Heal); - this.Controls.Add(this.L_Heal); - this.Controls.Add(this.NUD_CritStage); - this.Controls.Add(this.L_CritStage); - this.Controls.Add(this.NUD_Flinch); - this.Controls.Add(this.L_Flinch); - this.Controls.Add(this.NUD_TurnMin); - this.Controls.Add(this.L_TrapMin); - this.Controls.Add(this.NUD_TurnMax); - this.Controls.Add(this.L_TrapMax); - this.Controls.Add(this.L_Type); - this.Controls.Add(this.L_BP); - this.Controls.Add(this.CB_Type); - this.Controls.Add(this.NUD_Power); - this.Controls.Add(this.CB_Category); - this.Controls.Add(this.L_Category); - this.Controls.Add(this.NUD_PP); - this.Controls.Add(this.NUD_Priority); - this.Controls.Add(this.NUD_HitMin); - this.Controls.Add(this.L_PP); - this.Controls.Add(this.L_Min); - this.Controls.Add(this.L_Priority); - this.Controls.Add(this.NUD_HitMax); - this.Controls.Add(this.L_Max); - this.Controls.Add(this.L_Move); - this.Controls.Add(this.CB_Move); - this.MaximizeBox = false; - this.MaximumSize = new System.Drawing.Size(455, 420); - this.MinimumSize = new System.Drawing.Size(355, 420); - this.Name = "MoveEditor6"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Move Editor"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.formClosing); - ((System.ComponentModel.ISupportInitialize)(this.NUD_HitMax)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_HitMin)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Priority)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_PP)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Power)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_TurnMin)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_TurnMax)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Recoil)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Heal)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_CritStage)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Flinch)).EndInit(); - this.GB_Stat.ResumeLayout(false); - this.GB_Stat.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_StatP3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_StatP2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_StatP1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Stat2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Stat3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Stat1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Inflict)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Effect)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Accuracy)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_0xB)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_0x20)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_0x21)).EndInit(); - this.groupBox1.ResumeLayout(false); - this.groupBox1.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Label L_Type; - private System.Windows.Forms.ComboBox CB_Move; - private System.Windows.Forms.Label L_Move; - private System.Windows.Forms.ComboBox CB_Type; - private System.Windows.Forms.ComboBox CB_Category; - private System.Windows.Forms.Label L_Category; - private System.Windows.Forms.Label L_BP; - private System.Windows.Forms.Label L_PP; - private System.Windows.Forms.Label L_Min; - private System.Windows.Forms.Label L_Max; - private System.Windows.Forms.Label L_Priority; - private System.Windows.Forms.NumericUpDown NUD_HitMax; - private System.Windows.Forms.NumericUpDown NUD_HitMin; - private System.Windows.Forms.NumericUpDown NUD_Priority; - private System.Windows.Forms.NumericUpDown NUD_PP; - private System.Windows.Forms.NumericUpDown NUD_Power; - private System.Windows.Forms.NumericUpDown NUD_TurnMin; - private System.Windows.Forms.Label L_TrapMin; - private System.Windows.Forms.NumericUpDown NUD_TurnMax; - private System.Windows.Forms.Label L_TrapMax; - private System.Windows.Forms.NumericUpDown NUD_Recoil; - private System.Windows.Forms.Label L_Recoil; - private System.Windows.Forms.NumericUpDown NUD_Heal; - private System.Windows.Forms.Label L_Heal; - private System.Windows.Forms.NumericUpDown NUD_CritStage; - private System.Windows.Forms.Label L_CritStage; - private System.Windows.Forms.NumericUpDown NUD_Flinch; - private System.Windows.Forms.Label L_Flinch; - private System.Windows.Forms.GroupBox GB_Stat; - private System.Windows.Forms.NumericUpDown NUD_Stat2; - private System.Windows.Forms.NumericUpDown NUD_Stat3; - private System.Windows.Forms.NumericUpDown NUD_Stat1; - private System.Windows.Forms.ComboBox CB_Stat3; - private System.Windows.Forms.ComboBox CB_Stat2; - private System.Windows.Forms.ComboBox CB_Stat1; - private System.Windows.Forms.Label L_Stage3; - private System.Windows.Forms.Label L_Stage2; - private System.Windows.Forms.Label L_Stage1; - private System.Windows.Forms.Label L_Targeting; - private System.Windows.Forms.Label L_Influcts; - private System.Windows.Forms.RichTextBox RTB; - private System.Windows.Forms.ComboBox CB_Targeting; - private System.Windows.Forms.ComboBox CB_Inflict; - private System.Windows.Forms.Label L_Inflict; - private System.Windows.Forms.NumericUpDown NUD_Inflict; - private System.Windows.Forms.NumericUpDown NUD_Effect; - private System.Windows.Forms.Label L_Effect; - private System.Windows.Forms.NumericUpDown NUD_Accuracy; - private System.Windows.Forms.Label L_Accuracy; - private System.Windows.Forms.ComboBox CB_Quality; - private System.Windows.Forms.Label L_Quality; - private System.Windows.Forms.NumericUpDown NUD_StatP3; - private System.Windows.Forms.NumericUpDown NUD_StatP2; - private System.Windows.Forms.NumericUpDown NUD_StatP1; - private System.Windows.Forms.Label L_0xB; - private System.Windows.Forms.NumericUpDown NUD_0xB; - private System.Windows.Forms.NumericUpDown NUD_0x20; - private System.Windows.Forms.NumericUpDown NUD_0x21; - private System.Windows.Forms.Label L_0x20; - private System.Windows.Forms.Label L_0x21; - private System.Windows.Forms.Button B_RandAll; - private System.Windows.Forms.GroupBox groupBox1; - private System.Windows.Forms.CheckBox CHK_Category; - private System.Windows.Forms.CheckBox CHK_Type; - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/MoveEditor6.cs b/pk3DS/Subforms/Gen6/MoveEditor6.cs deleted file mode 100644 index a200a5255a..0000000000 --- a/pk3DS/Subforms/Gen6/MoveEditor6.cs +++ /dev/null @@ -1,194 +0,0 @@ -using pk3DS.Core; -using System; -using System.Windows.Forms; - -namespace pk3DS -{ - public partial class MoveEditor6 : Form - { - public MoveEditor6(byte[][] infiles) - { - files = infiles; - movelist[0] = ""; - sortedmoves = (string[])movelist.Clone(); - Array.Sort(sortedmoves); - - InitializeComponent(); - Setup(); - } - private byte[][] files; - private readonly string[] types = Main.Config.getText(TextName.Types); - private readonly string[] moveflavor = Main.Config.getText(TextName.MoveFlavor); - private readonly string[] movelist = Main.Config.getText(TextName.MoveNames); - private readonly string[] sortedmoves; - private readonly string[] MoveCategories = { "Status", "Physical", "Special", }; - private readonly string[] StatCategories = { "None", "Attack", "Defense", "Special Attack", "Special Defense", "Speed", "Accuracy", "Evasion", "All", }; - - private readonly string[] TargetingTypes = - { "Single Adjacent Ally/Foe", - "Any Ally", "Any Adjacent Ally", "Single Adjacent Foe", "Everyone but User", "All Foes", - "All Allies", "Self", "All Pokémon on Field", "Single Adjacent Foe (2)", "Entire Field", - "Opponent's Field", "User's Field", "Self", - }; - - private readonly string[] InflictionTypes = - { "None", - "Paralyze", "Sleep", "Freeze", "Burn", "Poison", - "Confusion", "Attract", "Capture", "Nightmare", "Curse", - "Taunt", "Torment", "Disable", "Yawn", "Heal Block", - "?", "Detect", "Leech Seed", "Embargo", "Perish Song", - "Ingrain", - }; - - private readonly string[] MoveQualities = - { "Only DMG", - "No DMG -> Inflict Status", "No DMG -> -Target/+User Stat", "No DMG | Heal User", "DMG | Inflict Status", "No DMG | STATUS | +Target Stat", - "DMG | -Target Stat", "DMG | +User Stat", "DMG | Absorbs DMG", "One-Hit KO", "Affects Whole Field", - "Affect One Side of the Field", "Forces Target to Switch", "Unique Effect", }; - private void Setup() - { - foreach (string s in sortedmoves) CB_Move.Items.Add(s); - foreach (string s in types) CB_Type.Items.Add(s); - foreach (string s in MoveCategories) CB_Category.Items.Add(s); - foreach (string s in StatCategories) CB_Stat1.Items.Add(s); - foreach (string s in StatCategories) CB_Stat2.Items.Add(s); - foreach (string s in StatCategories) CB_Stat3.Items.Add(s); - foreach (string s in TargetingTypes) CB_Targeting.Items.Add(s); - foreach (string s in MoveQualities) CB_Quality.Items.Add(s); - foreach (string s in InflictionTypes) CB_Inflict.Items.Add(s); - CB_Inflict.Items.Add("Special"); - - CB_Move.Items.RemoveAt(0); - CB_Move.SelectedIndex = 0; - } - private int entry = -1; - private void changeEntry(object sender, EventArgs e) - { - setEntry(); - entry = Array.IndexOf(movelist, CB_Move.Text); - getEntry(); - } - private void getEntry() - { - if (entry < 1) return; - byte[] data = files[entry]; - { - string flavor = moveflavor[entry].Replace("\\n", Environment.NewLine); - RTB.Text = flavor; - - CB_Type.SelectedIndex = data[0x00]; - CB_Quality.SelectedIndex = data[0x01]; - CB_Category.SelectedIndex = data[0x02]; - NUD_Power.Value = data[0x3]; - NUD_Accuracy.Value = data[0x4]; - NUD_PP.Value = data[0x05]; - NUD_Priority.Value = (sbyte)data[0x06]; - NUD_HitMin.Value = data[0x7] & 0xF; - NUD_HitMax.Value = data[0x7] >> 4; - short inflictVal = BitConverter.ToInt16(data, 0x08); - CB_Inflict.SelectedIndex = inflictVal < 0 ? CB_Inflict.Items.Count - 1 : inflictVal; - NUD_Inflict.Value = data[0xA]; - NUD_0xB.Value = data[0xB]; // 0xB ~ Something to deal with skipImmunity - NUD_TurnMin.Value = data[0xC]; - NUD_TurnMax.Value = data[0xD]; - NUD_CritStage.Value = data[0xE]; - NUD_Flinch.Value = data[0xF]; - NUD_Effect.Value = BitConverter.ToUInt16(data, 0x10); - NUD_Recoil.Value = (sbyte)data[0x12]; - NUD_Heal.Value = data[0x13]; - - CB_Targeting.SelectedIndex = data[0x14]; - CB_Stat1.SelectedIndex = data[0x15]; - CB_Stat2.SelectedIndex = data[0x16]; - CB_Stat3.SelectedIndex = data[0x17]; - NUD_Stat1.Value = (sbyte)data[0x18]; - NUD_Stat2.Value = (sbyte)data[0x19]; - NUD_Stat3.Value = (sbyte)data[0x1A]; - NUD_StatP1.Value = data[0x1B]; - NUD_StatP2.Value = data[0x1C]; - NUD_StatP3.Value = data[0x1D]; - - // Unknown (Bitflag Related for stuff like Contact and Extra Move Effects) - NUD_0x20.Value = data[0x20]; // 0x20 - NUD_0x21.Value = data[0x21]; // 0x21 - // end, the other bytes aren't used. - - //NUD_0x1E.Value = data[0x1E]; // 0x1E - //NUD_0x1F.Value = data[0x1F]; // 0x1F - //NUD_0x22.Value = data[0x22]; // 0x22 - //NUD_0x23.Value = data[0x23]; // 0x23 - } - } - private void setEntry() - { - if (entry < 1) return; - byte[] data = files[entry]; - { - data[0x00] = (byte)CB_Type.SelectedIndex; - data[0x01] = (byte)CB_Quality.SelectedIndex; - data[0x02] = (byte)CB_Category.SelectedIndex; - data[0x03] = (byte)NUD_Power.Value; - data[0x04] = (byte)NUD_Accuracy.Value; - data[0x05] = (byte)NUD_PP.Value; - data[0x06] = (byte)(int)NUD_Priority.Value; - data[0x07] = (byte)((byte)NUD_HitMin.Value | ((byte)NUD_HitMax.Value << 4)); - int inflictval = CB_Inflict.SelectedIndex; if (inflictval == CB_Inflict.Items.Count) inflictval = -1; - Array.Copy(BitConverter.GetBytes((short)inflictval), 0, data, 0x08, 2); - data[0x0A] = (byte)NUD_Inflict.Value; - data[0x0B] = (byte)NUD_0xB.Value; - data[0x0C] = (byte)NUD_TurnMin.Value; - data[0x0D] = (byte)NUD_TurnMax.Value; - data[0x0E] = (byte)NUD_CritStage.Value; - data[0x0F] = (byte)NUD_Flinch.Value; - Array.Copy(BitConverter.GetBytes((ushort)NUD_Effect.Value), 0, data, 0x10, 2); - data[0x12] = (byte)(int)NUD_Recoil.Value; - data[0x13] = (byte)NUD_Heal.Value; - data[0x14] = (byte)CB_Targeting.SelectedIndex; - data[0x15] = (byte)CB_Stat1.SelectedIndex; - data[0x16] = (byte)CB_Stat2.SelectedIndex; - data[0x17] = (byte)CB_Stat3.SelectedIndex; - data[0x18] = (byte)(int)NUD_Stat1.Value; - data[0x19] = (byte)(int)NUD_Stat2.Value; - data[0x1A] = (byte)(int)NUD_Stat3.Value; - data[0x1B] = (byte)NUD_StatP1.Value; - data[0x1C] = (byte)NUD_StatP2.Value; - data[0x1D] = (byte)NUD_StatP3.Value; - - data[0x20] = (byte)NUD_0x20.Value; - data[0x21] = (byte)NUD_0x21.Value; - // end, the other bytes aren't used. - } - files[entry] = data; - } - private void formClosing(object sender, FormClosingEventArgs e) - { - setEntry(); - } - - private void B_RandAll_Click(object sender, EventArgs e) - { - if (!CHK_Category.Checked && !CHK_Type.Checked) - { - WinFormsUtil.Alert("Cannot randomize Moves.", "Please check any of the options on the right to randomize Moves."); - return; - } - - if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomize Moves? Cannot undo.", "Double check options on the right before continuing.") != DialogResult.Yes) return; - Random rnd = new Random(); - for (int i = 0; i < CB_Move.Items.Count; i++) - { - CB_Move.SelectedIndex = i; // Get new Move - if (i == 165 || i == 174) continue; // Don't change Struggle or Curse - - // Change Damage Category if Not Status - if (CB_Category.SelectedIndex > 0 && CHK_Category.Checked) // Not Status - CB_Category.SelectedIndex = rnd.Next(1, 3); - - // Change Move Type - if (CHK_Type.Checked) - CB_Type.SelectedIndex = rnd.Next(0, 18); - } - WinFormsUtil.Alert("All Moves have been randomized!"); - } - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/OPower.Designer.cs b/pk3DS/Subforms/Gen6/OPower.Designer.cs deleted file mode 100644 index c389c2baf7..0000000000 --- a/pk3DS/Subforms/Gen6/OPower.Designer.cs +++ /dev/null @@ -1,394 +0,0 @@ -namespace pk3DS -{ - partial class OPower - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.RTB = new System.Windows.Forms.RichTextBox(); - this.TB_Name = new System.Windows.Forms.TextBox(); - this.TB_Type = new System.Windows.Forms.TextBox(); - this.NUD_PlayerCost = new System.Windows.Forms.NumericUpDown(); - this.NUD_OtherCost = new System.Windows.Forms.NumericUpDown(); - this.NUD_Stage = new System.Windows.Forms.NumericUpDown(); - this.NUD_LevelUp = new System.Windows.Forms.NumericUpDown(); - this.CB_Item = new System.Windows.Forms.ComboBox(); - this.NUD_Duration = new System.Windows.Forms.NumericUpDown(); - this.NUD_Efficacy = new System.Windows.Forms.NumericUpDown(); - this.L_PlayerCost = new System.Windows.Forms.Label(); - this.L_OtherCost = new System.Windows.Forms.Label(); - this.L_Stage = new System.Windows.Forms.Label(); - this.L_LevelUp = new System.Windows.Forms.Label(); - this.L_Duration = new System.Windows.Forms.Label(); - this.L_Efficacy = new System.Windows.Forms.Label(); - this.TB_Mini = new System.Windows.Forms.TextBox(); - this.TB_Quality = new System.Windows.Forms.TextBox(); - this.NUD_2 = new System.Windows.Forms.NumericUpDown(); - this.NUD_Usability = new System.Windows.Forms.NumericUpDown(); - this.L_2 = new System.Windows.Forms.Label(); - this.CB_SortOrder = new System.Windows.Forms.ComboBox(); - this.L_UsabilityText = new System.Windows.Forms.Label(); - this.L_Usability = new System.Windows.Forms.Label(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_PlayerCost)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_OtherCost)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Stage)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_LevelUp)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Duration)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Efficacy)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Usability)).BeginInit(); - this.SuspendLayout(); - // - // RTB - // - this.RTB.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.RTB.Location = new System.Drawing.Point(12, 85); - this.RTB.Name = "RTB"; - this.RTB.ReadOnly = true; - this.RTB.Size = new System.Drawing.Size(236, 51); - this.RTB.TabIndex = 38; - this.RTB.Text = ""; - // - // TB_Name - // - this.TB_Name.Location = new System.Drawing.Point(63, 11); - this.TB_Name.Name = "TB_Name"; - this.TB_Name.ReadOnly = true; - this.TB_Name.Size = new System.Drawing.Size(135, 20); - this.TB_Name.TabIndex = 39; - // - // TB_Type - // - this.TB_Type.Location = new System.Drawing.Point(12, 37); - this.TB_Type.Name = "TB_Type"; - this.TB_Type.ReadOnly = true; - this.TB_Type.Size = new System.Drawing.Size(135, 20); - this.TB_Type.TabIndex = 40; - // - // NUD_PlayerCost - // - this.NUD_PlayerCost.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.NUD_PlayerCost.Location = new System.Drawing.Point(327, 12); - this.NUD_PlayerCost.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.NUD_PlayerCost.Name = "NUD_PlayerCost"; - this.NUD_PlayerCost.Size = new System.Drawing.Size(45, 20); - this.NUD_PlayerCost.TabIndex = 42; - // - // NUD_OtherCost - // - this.NUD_OtherCost.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.NUD_OtherCost.Location = new System.Drawing.Point(327, 38); - this.NUD_OtherCost.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.NUD_OtherCost.Name = "NUD_OtherCost"; - this.NUD_OtherCost.Size = new System.Drawing.Size(45, 20); - this.NUD_OtherCost.TabIndex = 43; - // - // NUD_Stage - // - this.NUD_Stage.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.NUD_Stage.Location = new System.Drawing.Point(327, 64); - this.NUD_Stage.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.NUD_Stage.Name = "NUD_Stage"; - this.NUD_Stage.Size = new System.Drawing.Size(45, 20); - this.NUD_Stage.TabIndex = 44; - // - // NUD_LevelUp - // - this.NUD_LevelUp.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.NUD_LevelUp.Location = new System.Drawing.Point(327, 90); - this.NUD_LevelUp.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.NUD_LevelUp.Name = "NUD_LevelUp"; - this.NUD_LevelUp.Size = new System.Drawing.Size(45, 20); - this.NUD_LevelUp.TabIndex = 45; - // - // CB_Item - // - this.CB_Item.FormattingEnabled = true; - this.CB_Item.Location = new System.Drawing.Point(12, 11); - this.CB_Item.Name = "CB_Item"; - this.CB_Item.Size = new System.Drawing.Size(45, 21); - this.CB_Item.TabIndex = 46; - this.CB_Item.SelectedIndexChanged += new System.EventHandler(this.changeEntry); - // - // NUD_Duration - // - this.NUD_Duration.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.NUD_Duration.Location = new System.Drawing.Point(327, 116); - this.NUD_Duration.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.NUD_Duration.Name = "NUD_Duration"; - this.NUD_Duration.Size = new System.Drawing.Size(45, 20); - this.NUD_Duration.TabIndex = 47; - // - // NUD_Efficacy - // - this.NUD_Efficacy.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.NUD_Efficacy.Location = new System.Drawing.Point(327, 142); - this.NUD_Efficacy.Maximum = new decimal(new int[] { - 999, - 0, - 0, - 0}); - this.NUD_Efficacy.Name = "NUD_Efficacy"; - this.NUD_Efficacy.Size = new System.Drawing.Size(45, 20); - this.NUD_Efficacy.TabIndex = 48; - // - // L_PlayerCost - // - this.L_PlayerCost.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.L_PlayerCost.Location = new System.Drawing.Point(221, 9); - this.L_PlayerCost.Name = "L_PlayerCost"; - this.L_PlayerCost.Size = new System.Drawing.Size(100, 23); - this.L_PlayerCost.TabIndex = 49; - this.L_PlayerCost.Text = "Player Cost:"; - this.L_PlayerCost.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_OtherCost - // - this.L_OtherCost.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.L_OtherCost.Location = new System.Drawing.Point(221, 35); - this.L_OtherCost.Name = "L_OtherCost"; - this.L_OtherCost.Size = new System.Drawing.Size(100, 23); - this.L_OtherCost.TabIndex = 50; - this.L_OtherCost.Text = "Other Cost:"; - this.L_OtherCost.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_Stage - // - this.L_Stage.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.L_Stage.Location = new System.Drawing.Point(221, 61); - this.L_Stage.Name = "L_Stage"; - this.L_Stage.Size = new System.Drawing.Size(100, 23); - this.L_Stage.TabIndex = 51; - this.L_Stage.Text = "Stage:"; - this.L_Stage.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_LevelUp - // - this.L_LevelUp.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.L_LevelUp.Location = new System.Drawing.Point(221, 87); - this.L_LevelUp.Name = "L_LevelUp"; - this.L_LevelUp.Size = new System.Drawing.Size(100, 23); - this.L_LevelUp.TabIndex = 52; - this.L_LevelUp.Text = "Level Up:"; - this.L_LevelUp.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_Duration - // - this.L_Duration.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.L_Duration.Location = new System.Drawing.Point(221, 113); - this.L_Duration.Name = "L_Duration"; - this.L_Duration.Size = new System.Drawing.Size(100, 23); - this.L_Duration.TabIndex = 53; - this.L_Duration.Text = "Duration:"; - this.L_Duration.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_Efficacy - // - this.L_Efficacy.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.L_Efficacy.Location = new System.Drawing.Point(221, 139); - this.L_Efficacy.Name = "L_Efficacy"; - this.L_Efficacy.Size = new System.Drawing.Size(100, 23); - this.L_Efficacy.TabIndex = 54; - this.L_Efficacy.Text = "Efficacy:"; - this.L_Efficacy.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // TB_Mini - // - this.TB_Mini.Location = new System.Drawing.Point(153, 37); - this.TB_Mini.Name = "TB_Mini"; - this.TB_Mini.ReadOnly = true; - this.TB_Mini.Size = new System.Drawing.Size(45, 20); - this.TB_Mini.TabIndex = 55; - // - // TB_Quality - // - this.TB_Quality.Location = new System.Drawing.Point(12, 59); - this.TB_Quality.Name = "TB_Quality"; - this.TB_Quality.ReadOnly = true; - this.TB_Quality.Size = new System.Drawing.Size(135, 20); - this.TB_Quality.TabIndex = 57; - // - // NUD_2 - // - this.NUD_2.Location = new System.Drawing.Point(203, 137); - this.NUD_2.Maximum = new decimal(new int[] { - 999, - 0, - 0, - 0}); - this.NUD_2.Name = "NUD_2"; - this.NUD_2.ReadOnly = true; - this.NUD_2.Size = new System.Drawing.Size(45, 20); - this.NUD_2.TabIndex = 58; - // - // NUD_Usability - // - this.NUD_Usability.Location = new System.Drawing.Point(89, 137); - this.NUD_Usability.Maximum = new decimal(new int[] { - 999, - 0, - 0, - 0}); - this.NUD_Usability.Name = "NUD_Usability"; - this.NUD_Usability.Size = new System.Drawing.Size(45, 20); - this.NUD_Usability.TabIndex = 59; - // - // L_2 - // - this.L_2.AutoSize = true; - this.L_2.Location = new System.Drawing.Point(190, 139); - this.L_2.Name = "L_2"; - this.L_2.Size = new System.Drawing.Size(13, 13); - this.L_2.TabIndex = 63; - this.L_2.Text = "2"; - // - // CB_SortOrder - // - this.CB_SortOrder.Enabled = false; - this.CB_SortOrder.FormattingEnabled = true; - this.CB_SortOrder.Location = new System.Drawing.Point(153, 59); - this.CB_SortOrder.Name = "CB_SortOrder"; - this.CB_SortOrder.Size = new System.Drawing.Size(45, 21); - this.CB_SortOrder.TabIndex = 64; - // - // L_UsabilityText - // - this.L_UsabilityText.AutoSize = true; - this.L_UsabilityText.Location = new System.Drawing.Point(-2, 159); - this.L_UsabilityText.Name = "L_UsabilityText"; - this.L_UsabilityText.Size = new System.Drawing.Size(167, 13); - this.L_UsabilityText.TabIndex = 65; - this.L_UsabilityText.Text = "254 - Nobody, 0 - Self, 2 - Anyone"; - // - // L_Usability - // - this.L_Usability.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.L_Usability.Location = new System.Drawing.Point(-17, 134); - this.L_Usability.Name = "L_Usability"; - this.L_Usability.Size = new System.Drawing.Size(100, 23); - this.L_Usability.TabIndex = 66; - this.L_Usability.Text = "Usability(?):"; - this.L_Usability.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // OPower - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(384, 172); - this.Controls.Add(this.L_UsabilityText); - this.Controls.Add(this.CB_SortOrder); - this.Controls.Add(this.TB_Name); - this.Controls.Add(this.L_2); - this.Controls.Add(this.NUD_Usability); - this.Controls.Add(this.NUD_2); - this.Controls.Add(this.TB_Quality); - this.Controls.Add(this.TB_Mini); - this.Controls.Add(this.L_Stage); - this.Controls.Add(this.L_OtherCost); - this.Controls.Add(this.L_PlayerCost); - this.Controls.Add(this.NUD_Efficacy); - this.Controls.Add(this.NUD_Duration); - this.Controls.Add(this.CB_Item); - this.Controls.Add(this.NUD_LevelUp); - this.Controls.Add(this.NUD_Stage); - this.Controls.Add(this.NUD_OtherCost); - this.Controls.Add(this.NUD_PlayerCost); - this.Controls.Add(this.TB_Type); - this.Controls.Add(this.RTB); - this.Controls.Add(this.L_Efficacy); - this.Controls.Add(this.L_Duration); - this.Controls.Add(this.L_LevelUp); - this.Controls.Add(this.L_Usability); - this.MaximizeBox = false; - this.MaximumSize = new System.Drawing.Size(400, 210); - this.MinimumSize = new System.Drawing.Size(400, 210); - this.Name = "OPower"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "O-Power Editor"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.formClosing); - ((System.ComponentModel.ISupportInitialize)(this.NUD_PlayerCost)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_OtherCost)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Stage)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_LevelUp)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Duration)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Efficacy)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Usability)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.RichTextBox RTB; - private System.Windows.Forms.TextBox TB_Name; - private System.Windows.Forms.TextBox TB_Type; - private System.Windows.Forms.NumericUpDown NUD_PlayerCost; - private System.Windows.Forms.NumericUpDown NUD_OtherCost; - private System.Windows.Forms.NumericUpDown NUD_Stage; - private System.Windows.Forms.NumericUpDown NUD_LevelUp; - private System.Windows.Forms.ComboBox CB_Item; - private System.Windows.Forms.NumericUpDown NUD_Duration; - private System.Windows.Forms.NumericUpDown NUD_Efficacy; - private System.Windows.Forms.Label L_PlayerCost; - private System.Windows.Forms.Label L_OtherCost; - private System.Windows.Forms.Label L_Stage; - private System.Windows.Forms.Label L_LevelUp; - private System.Windows.Forms.Label L_Duration; - private System.Windows.Forms.Label L_Efficacy; - private System.Windows.Forms.TextBox TB_Mini; - private System.Windows.Forms.TextBox TB_Quality; - private System.Windows.Forms.NumericUpDown NUD_2; - private System.Windows.Forms.NumericUpDown NUD_Usability; - private System.Windows.Forms.Label L_2; - private System.Windows.Forms.ComboBox CB_SortOrder; - private System.Windows.Forms.Label L_UsabilityText; - private System.Windows.Forms.Label L_Usability; - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/OPower.cs b/pk3DS/Subforms/Gen6/OPower.cs deleted file mode 100644 index b7878094ba..0000000000 --- a/pk3DS/Subforms/Gen6/OPower.cs +++ /dev/null @@ -1,125 +0,0 @@ -using pk3DS.Core; -using System; -using System.IO; -using System.Linq; -using System.Windows.Forms; - -namespace pk3DS -{ - public partial class OPower : Form - { - public OPower() - { - InitializeComponent(); - if (Main.ExeFSPath == null) { WinFormsUtil.Alert("No exeFS code to load."); Close(); } - string[] files = Directory.GetFiles(Main.ExeFSPath); - if (!File.Exists(files[0]) || !Path.GetFileNameWithoutExtension(files[0]).Contains("code")) { WinFormsUtil.Alert("No .code.bin detected."); Close(); } - codebin = files[0]; - exefsData = File.ReadAllBytes(codebin); - if (exefsData.Length % 0x200 != 0) { WinFormsUtil.Alert(".code.bin not decompressed. Aborting."); Close(); } - - // Fetch Offset - offset = Util.IndexOfBytes(exefsData, new byte[] { 0x34, 0x39, 0x34, 0x36, 0x31, 0x38, 0x34, 0x35, 0x00 }, 0x400000, 0) + 9; - while (exefsData[offset] == 0xFF) offset++; - - // Gather Data - for (int i = 0; i < powerData.Length; i++) - powerData[i] = exefsData.Skip(offset + 22 * i).Take(22).ToArray(); - - // Prepare View - for (int i = 0; i < 10; i++) CB_SortOrder.Items.Add(i); - for (int i = 1; i < powerData.Length; i++) CB_Item.Items.Add(i); - CB_Item.SelectedIndex = 0; - WinFormsUtil.Alert("More research is required for giving S/MAX O-Powers ingame."); - } - - private readonly string codebin; - private readonly int offset; - private readonly byte[] exefsData; - private readonly byte[][] powerData = new byte[65][]; - private readonly string[] powerFlavor = Main.Config.getText(TextName.OPowerFlavor); - - private int entry = -1; - private void changeEntry(object sender, EventArgs e) - { - setEntry(); - entry = CB_Item.SelectedIndex + 1; - getEntry(); - } - private void getEntry() - { - if (entry < 1) return; - - // Fetch Data - byte quality = powerData[entry][0]; - byte _01 = powerData[entry][1]; - byte _02 = powerData[entry][2]; - byte playerCost = powerData[entry][0x3]; - byte otherCost = powerData[entry][0x4]; - // 0x5 unused? - int type = BitConverter.ToUInt16(powerData[entry], 0x6); - int mini = BitConverter.ToUInt16(powerData[entry], 0x8); - int desc = BitConverter.ToUInt16(powerData[entry], 0xA); - int name = BitConverter.ToUInt16(powerData[entry], 0xC); - int stage = powerData[entry][0xE]; - int lvlup = powerData[entry][0xF]; - int sortOrder = BitConverter.ToUInt16(powerData[entry], 0x10); - int efficacy = BitConverter.ToUInt16(powerData[entry], 0x12); - byte duration = powerData[entry][0x14]; // sbyte FF = -1 (no duration?) - // 0x15 unused? - - // Apply Fields - NUD_PlayerCost.Value = playerCost; - NUD_OtherCost.Value = otherCost; - NUD_Stage.Value = stage; - NUD_LevelUp.Value = lvlup; - TB_Type.Text = powerFlavor[type]; - TB_Mini.Text = powerFlavor[mini]; - TB_Name.Text = powerFlavor[name]; - TB_Quality.Text = powerFlavor[1 + quality]; // powerFlavor[quality]; - RTB.Text = powerFlavor[desc].Replace("\\n", Environment.NewLine); - - NUD_Efficacy.Value = efficacy; - NUD_Duration.Value = duration; - - CB_SortOrder.SelectedIndex = sortOrder; - NUD_Usability.Value = _01; - NUD_2.Value = _02; - } - private void setEntry() - { - if (entry < 1) return; - - // Copy back in the edited data sections - byte playerCost = (byte)NUD_PlayerCost.Value; - byte otherCost = (byte)NUD_OtherCost.Value; - byte stage = (byte)NUD_Stage.Value; - byte lvlup = (byte)NUD_LevelUp.Value; - byte duration = (byte)NUD_Duration.Value; - ushort efficacy = (ushort)NUD_Efficacy.Value; - - powerData[entry][0x3] = playerCost; - powerData[entry][0x4] = otherCost; - powerData[entry][0xE] = stage; - powerData[entry][0xF] = lvlup; - - Array.Copy(powerData[entry], 0x12, BitConverter.GetBytes(efficacy), 0, 2); - powerData[entry][0x14] = duration; // sbyte FF = -1 (no duration?) - - byte usability = (byte)NUD_Usability.Value; - - if (usability == 2 || usability == 254 || usability == 0) - powerData[entry][1] = usability; - } - - private void formClosing(object sender, FormClosingEventArgs e) - { - setEntry(); - // Copy data back to storage - for (int i = 0; i < powerData.Length; i++) - Array.Copy(powerData[i], 0, exefsData, offset + i * powerData[i].Length, powerData[i].Length); - if (ModifierKeys != Keys.Control) - File.WriteAllBytes(codebin, exefsData); - } - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/PersonalEditor6.Designer.cs b/pk3DS/Subforms/Gen6/PersonalEditor6.Designer.cs deleted file mode 100644 index 2215f1a838..0000000000 --- a/pk3DS/Subforms/Gen6/PersonalEditor6.Designer.cs +++ /dev/null @@ -1,1634 +0,0 @@ -namespace pk3DS -{ - partial class PersonalEditor6 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.CB_Species = new System.Windows.Forms.ComboBox(); - this.L_Species_Precursor = new System.Windows.Forms.Label(); - this.TC_Pokemon = new System.Windows.Forms.TabControl(); - this.TP_General = new System.Windows.Forms.TabPage(); - this.TB_BST = new System.Windows.Forms.TextBox(); - this.L_BST = new System.Windows.Forms.Label(); - this.TB_RawColor = new System.Windows.Forms.TextBox(); - this.TB_CatchRate = new System.Windows.Forms.MaskedTextBox(); - this.TB_Stage = new System.Windows.Forms.TextBox(); - this.L_Stage = new System.Windows.Forms.Label(); - this.L_WeightKG = new System.Windows.Forms.Label(); - this.L_HeightM = new System.Windows.Forms.Label(); - this.TB_FormeCount = new System.Windows.Forms.TextBox(); - this.L_FormesCount = new System.Windows.Forms.Label(); - this.TB_FormeSprite = new System.Windows.Forms.TextBox(); - this.L_FormeSprite = new System.Windows.Forms.Label(); - this.L_CatchRate = new System.Windows.Forms.Label(); - this.CB_Color = new System.Windows.Forms.ComboBox(); - this.CB_EXPGroup = new System.Windows.Forms.ComboBox(); - this.L_Color = new System.Windows.Forms.Label(); - this.L_EXPGrowth = new System.Windows.Forms.Label(); - this.TB_Weight = new System.Windows.Forms.MaskedTextBox(); - this.TB_Height = new System.Windows.Forms.MaskedTextBox(); - this.L_Weight = new System.Windows.Forms.Label(); - this.L_Height = new System.Windows.Forms.Label(); - this.CB_Ability3 = new System.Windows.Forms.ComboBox(); - this.CB_Ability2 = new System.Windows.Forms.ComboBox(); - this.CB_Ability1 = new System.Windows.Forms.ComboBox(); - this.CB_EggGroup2 = new System.Windows.Forms.ComboBox(); - this.CB_EggGroup1 = new System.Windows.Forms.ComboBox(); - this.L_EggGroup = new System.Windows.Forms.Label(); - this.L_Ability = new System.Windows.Forms.Label(); - this.TB_BaseExp = new System.Windows.Forms.MaskedTextBox(); - this.L_BaseEXP = new System.Windows.Forms.Label(); - this.TB_HatchCycles = new System.Windows.Forms.MaskedTextBox(); - this.L_HatchCycles = new System.Windows.Forms.Label(); - this.TB_Friendship = new System.Windows.Forms.MaskedTextBox(); - this.TB_Gender = new System.Windows.Forms.MaskedTextBox(); - this.L_Friendship = new System.Windows.Forms.Label(); - this.L_Gender = new System.Windows.Forms.Label(); - this.L_Item1 = new System.Windows.Forms.Label(); - this.L_Item5 = new System.Windows.Forms.Label(); - this.L_Item50 = new System.Windows.Forms.Label(); - this.CB_HeldItem3 = new System.Windows.Forms.ComboBox(); - this.CB_HeldItem2 = new System.Windows.Forms.ComboBox(); - this.CB_HeldItem1 = new System.Windows.Forms.ComboBox(); - this.L_HeldItem = new System.Windows.Forms.Label(); - this.CB_Type2 = new System.Windows.Forms.ComboBox(); - this.CB_Type1 = new System.Windows.Forms.ComboBox(); - this.L_Type = new System.Windows.Forms.Label(); - this.TB_SPEEVs = new System.Windows.Forms.MaskedTextBox(); - this.TB_SPDEVs = new System.Windows.Forms.MaskedTextBox(); - this.TB_SPAEVs = new System.Windows.Forms.MaskedTextBox(); - this.TB_DEFEVs = new System.Windows.Forms.MaskedTextBox(); - this.TB_ATKEVs = new System.Windows.Forms.MaskedTextBox(); - this.TB_HPEVs = new System.Windows.Forms.MaskedTextBox(); - this.TB_BaseSPE = new System.Windows.Forms.MaskedTextBox(); - this.TB_BaseSPD = new System.Windows.Forms.MaskedTextBox(); - this.TB_BaseSPA = new System.Windows.Forms.MaskedTextBox(); - this.TB_BaseDEF = new System.Windows.Forms.MaskedTextBox(); - this.TB_BaseATK = new System.Windows.Forms.MaskedTextBox(); - this.TB_BaseHP = new System.Windows.Forms.MaskedTextBox(); - this.Label_HP = new System.Windows.Forms.Label(); - this.Label_ATK = new System.Windows.Forms.Label(); - this.Label_DEF = new System.Windows.Forms.Label(); - this.Label_SPA = new System.Windows.Forms.Label(); - this.Label_SPD = new System.Windows.Forms.Label(); - this.Label_SPE = new System.Windows.Forms.Label(); - this.L_EVYield = new System.Windows.Forms.Label(); - this.L_BaseStats = new System.Windows.Forms.Label(); - this.TP_MoveTutors = new System.Windows.Forms.TabPage(); - this.L_ORASTutors = new System.Windows.Forms.Label(); - this.L_Special = new System.Windows.Forms.Label(); - this.L_TMHM = new System.Windows.Forms.Label(); - this.CLB_OrasTutors = new System.Windows.Forms.CheckedListBox(); - this.CLB_MoveTutors = new System.Windows.Forms.CheckedListBox(); - this.CLB_TMHM = new System.Windows.Forms.CheckedListBox(); - this.TP_Randomizer = new System.Windows.Forms.TabPage(); - this.GB_Modifier = new System.Windows.Forms.GroupBox(); - this.CHK_CatchRateMod = new System.Windows.Forms.CheckBox(); - this.L_CatchRateMod = new System.Windows.Forms.Label(); - this.NUD_CatchRateMod = new System.Windows.Forms.NumericUpDown(); - this.CHK_EXP = new System.Windows.Forms.CheckBox(); - this.CHK_Growth = new System.Windows.Forms.CheckBox(); - this.CHK_QuickHatch = new System.Windows.Forms.CheckBox(); - this.L_FinalXP = new System.Windows.Forms.Label(); - this.NUD_EXP = new System.Windows.Forms.NumericUpDown(); - this.CHK_NoEV = new System.Windows.Forms.CheckBox(); - this.B_ModAll = new System.Windows.Forms.Button(); - this.GB_Randomizer = new System.Windows.Forms.GroupBox(); - this.L_Same = new System.Windows.Forms.Label(); - this.NUD_Egg = new System.Windows.Forms.NumericUpDown(); - this.CHK_WGuard = new System.Windows.Forms.CheckBox(); - this.CHK_Ability = new System.Windows.Forms.CheckBox(); - this.CHK_ORASTutors = new System.Windows.Forms.CheckBox(); - this.CHK_Tutors = new System.Windows.Forms.CheckBox(); - this.CHK_rSPE = new System.Windows.Forms.CheckBox(); - this.CHK_Type = new System.Windows.Forms.CheckBox(); - this.CHK_rSPD = new System.Windows.Forms.CheckBox(); - this.CHK_rSPA = new System.Windows.Forms.CheckBox(); - this.L_SingleType = new System.Windows.Forms.Label(); - this.CHK_rDEF = new System.Windows.Forms.CheckBox(); - this.CHK_rATK = new System.Windows.Forms.CheckBox(); - this.NUD_TypePercent = new System.Windows.Forms.NumericUpDown(); - this.CHK_rHP = new System.Windows.Forms.CheckBox(); - this.CHK_HM = new System.Windows.Forms.CheckBox(); - this.L_StatDev = new System.Windows.Forms.Label(); - this.CHK_TM = new System.Windows.Forms.CheckBox(); - this.NUD_StatDev = new System.Windows.Forms.NumericUpDown(); - this.CHK_Stats = new System.Windows.Forms.CheckBox(); - this.CHK_EggGroup = new System.Windows.Forms.CheckBox(); - this.CHK_CatchRate = new System.Windows.Forms.CheckBox(); - this.CHK_Item = new System.Windows.Forms.CheckBox(); - this.B_Randomize = new System.Windows.Forms.Button(); - this.PB_MonSprite = new System.Windows.Forms.PictureBox(); - this.B_Dump = new System.Windows.Forms.Button(); - this.TC_Pokemon.SuspendLayout(); - this.TP_General.SuspendLayout(); - this.TP_MoveTutors.SuspendLayout(); - this.TP_Randomizer.SuspendLayout(); - this.GB_Modifier.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_CatchRateMod)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_EXP)).BeginInit(); - this.GB_Randomizer.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Egg)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_TypePercent)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_StatDev)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_MonSprite)).BeginInit(); - this.SuspendLayout(); - // - // CB_Species - // - this.CB_Species.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Species.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Species.FormattingEnabled = true; - this.CB_Species.Location = new System.Drawing.Point(107, 12); - this.CB_Species.Name = "CB_Species"; - this.CB_Species.Size = new System.Drawing.Size(160, 21); - this.CB_Species.TabIndex = 2; - this.CB_Species.SelectedIndexChanged += new System.EventHandler(this.CB_Species_SelectedIndexChanged); - // - // L_Species_Precursor - // - this.L_Species_Precursor.AutoSize = true; - this.L_Species_Precursor.Location = new System.Drawing.Point(13, 15); - this.L_Species_Precursor.Name = "L_Species_Precursor"; - this.L_Species_Precursor.Size = new System.Drawing.Size(88, 13); - this.L_Species_Precursor.TabIndex = 3; - this.L_Species_Precursor.Text = "Current Species: "; - // - // TC_Pokemon - // - this.TC_Pokemon.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left))); - this.TC_Pokemon.Controls.Add(this.TP_General); - this.TC_Pokemon.Controls.Add(this.TP_MoveTutors); - this.TC_Pokemon.Controls.Add(this.TP_Randomizer); - this.TC_Pokemon.Location = new System.Drawing.Point(12, 40); - this.TC_Pokemon.Name = "TC_Pokemon"; - this.TC_Pokemon.SelectedIndex = 0; - this.TC_Pokemon.Size = new System.Drawing.Size(445, 365); - this.TC_Pokemon.TabIndex = 416; - // - // TP_General - // - this.TP_General.Controls.Add(this.TB_BST); - this.TP_General.Controls.Add(this.L_BST); - this.TP_General.Controls.Add(this.TB_RawColor); - this.TP_General.Controls.Add(this.TB_CatchRate); - this.TP_General.Controls.Add(this.TB_Stage); - this.TP_General.Controls.Add(this.L_Stage); - this.TP_General.Controls.Add(this.L_WeightKG); - this.TP_General.Controls.Add(this.L_HeightM); - this.TP_General.Controls.Add(this.TB_FormeCount); - this.TP_General.Controls.Add(this.L_FormesCount); - this.TP_General.Controls.Add(this.TB_FormeSprite); - this.TP_General.Controls.Add(this.L_FormeSprite); - this.TP_General.Controls.Add(this.L_CatchRate); - this.TP_General.Controls.Add(this.CB_Color); - this.TP_General.Controls.Add(this.CB_EXPGroup); - this.TP_General.Controls.Add(this.L_Color); - this.TP_General.Controls.Add(this.L_EXPGrowth); - this.TP_General.Controls.Add(this.TB_Weight); - this.TP_General.Controls.Add(this.TB_Height); - this.TP_General.Controls.Add(this.L_Weight); - this.TP_General.Controls.Add(this.L_Height); - this.TP_General.Controls.Add(this.CB_Ability3); - this.TP_General.Controls.Add(this.CB_Ability2); - this.TP_General.Controls.Add(this.CB_Ability1); - this.TP_General.Controls.Add(this.CB_EggGroup2); - this.TP_General.Controls.Add(this.CB_EggGroup1); - this.TP_General.Controls.Add(this.L_EggGroup); - this.TP_General.Controls.Add(this.L_Ability); - this.TP_General.Controls.Add(this.TB_BaseExp); - this.TP_General.Controls.Add(this.L_BaseEXP); - this.TP_General.Controls.Add(this.TB_HatchCycles); - this.TP_General.Controls.Add(this.L_HatchCycles); - this.TP_General.Controls.Add(this.TB_Friendship); - this.TP_General.Controls.Add(this.TB_Gender); - this.TP_General.Controls.Add(this.L_Friendship); - this.TP_General.Controls.Add(this.L_Gender); - this.TP_General.Controls.Add(this.L_Item1); - this.TP_General.Controls.Add(this.L_Item5); - this.TP_General.Controls.Add(this.L_Item50); - this.TP_General.Controls.Add(this.CB_HeldItem3); - this.TP_General.Controls.Add(this.CB_HeldItem2); - this.TP_General.Controls.Add(this.CB_HeldItem1); - this.TP_General.Controls.Add(this.L_HeldItem); - this.TP_General.Controls.Add(this.CB_Type2); - this.TP_General.Controls.Add(this.CB_Type1); - this.TP_General.Controls.Add(this.L_Type); - this.TP_General.Controls.Add(this.TB_SPEEVs); - this.TP_General.Controls.Add(this.TB_SPDEVs); - this.TP_General.Controls.Add(this.TB_SPAEVs); - this.TP_General.Controls.Add(this.TB_DEFEVs); - this.TP_General.Controls.Add(this.TB_ATKEVs); - this.TP_General.Controls.Add(this.TB_HPEVs); - this.TP_General.Controls.Add(this.TB_BaseSPE); - this.TP_General.Controls.Add(this.TB_BaseSPD); - this.TP_General.Controls.Add(this.TB_BaseSPA); - this.TP_General.Controls.Add(this.TB_BaseDEF); - this.TP_General.Controls.Add(this.TB_BaseATK); - this.TP_General.Controls.Add(this.TB_BaseHP); - this.TP_General.Controls.Add(this.Label_HP); - this.TP_General.Controls.Add(this.Label_ATK); - this.TP_General.Controls.Add(this.Label_DEF); - this.TP_General.Controls.Add(this.Label_SPA); - this.TP_General.Controls.Add(this.Label_SPD); - this.TP_General.Controls.Add(this.Label_SPE); - this.TP_General.Controls.Add(this.L_EVYield); - this.TP_General.Controls.Add(this.L_BaseStats); - this.TP_General.Location = new System.Drawing.Point(4, 22); - this.TP_General.Name = "TP_General"; - this.TP_General.Padding = new System.Windows.Forms.Padding(3); - this.TP_General.Size = new System.Drawing.Size(437, 339); - this.TP_General.TabIndex = 0; - this.TP_General.Text = "General Info"; - this.TP_General.UseVisualStyleBackColor = true; - // - // TB_BST - // - this.TB_BST.Location = new System.Drawing.Point(387, 27); - this.TB_BST.Name = "TB_BST"; - this.TB_BST.ReadOnly = true; - this.TB_BST.Size = new System.Drawing.Size(31, 20); - this.TB_BST.TabIndex = 90; - this.TB_BST.Text = "___"; - this.TB_BST.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - // - // L_BST - // - this.L_BST.AutoSize = true; - this.L_BST.Location = new System.Drawing.Point(355, 30); - this.L_BST.Name = "L_BST"; - this.L_BST.Size = new System.Drawing.Size(31, 13); - this.L_BST.TabIndex = 89; - this.L_BST.Text = "BST:"; - this.L_BST.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // TB_RawColor - // - this.TB_RawColor.Location = new System.Drawing.Point(236, 211); - this.TB_RawColor.Name = "TB_RawColor"; - this.TB_RawColor.ReadOnly = true; - this.TB_RawColor.Size = new System.Drawing.Size(30, 20); - this.TB_RawColor.TabIndex = 88; - this.TB_RawColor.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_RawColor.Visible = false; - // - // TB_CatchRate - // - this.TB_CatchRate.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_CatchRate.Location = new System.Drawing.Point(387, 51); - this.TB_CatchRate.Mask = "000"; - this.TB_CatchRate.Name = "TB_CatchRate"; - this.TB_CatchRate.Size = new System.Drawing.Size(31, 20); - this.TB_CatchRate.TabIndex = 87; - this.TB_CatchRate.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_CatchRate.TextChanged += new System.EventHandler(this.ByteLimiter); - // - // TB_Stage - // - this.TB_Stage.Location = new System.Drawing.Point(376, 248); - this.TB_Stage.Name = "TB_Stage"; - this.TB_Stage.ReadOnly = true; - this.TB_Stage.Size = new System.Drawing.Size(30, 20); - this.TB_Stage.TabIndex = 86; - this.TB_Stage.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - // - // L_Stage - // - this.L_Stage.AutoSize = true; - this.L_Stage.Location = new System.Drawing.Point(290, 251); - this.L_Stage.Name = "L_Stage"; - this.L_Stage.Size = new System.Drawing.Size(85, 13); - this.L_Stage.TabIndex = 85; - this.L_Stage.Text = "Evolution Stage:"; - this.L_Stage.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_WeightKG - // - this.L_WeightKG.AutoSize = true; - this.L_WeightKG.Location = new System.Drawing.Point(269, 300); - this.L_WeightKG.Name = "L_WeightKG"; - this.L_WeightKG.Size = new System.Drawing.Size(19, 13); - this.L_WeightKG.TabIndex = 84; - this.L_WeightKG.Text = "kg"; - // - // L_HeightM - // - this.L_HeightM.AutoSize = true; - this.L_HeightM.Location = new System.Drawing.Point(128, 300); - this.L_HeightM.Name = "L_HeightM"; - this.L_HeightM.Size = new System.Drawing.Size(15, 13); - this.L_HeightM.TabIndex = 83; - this.L_HeightM.Text = "m"; - // - // TB_FormeCount - // - this.TB_FormeCount.Location = new System.Drawing.Point(376, 296); - this.TB_FormeCount.Name = "TB_FormeCount"; - this.TB_FormeCount.ReadOnly = true; - this.TB_FormeCount.Size = new System.Drawing.Size(30, 20); - this.TB_FormeCount.TabIndex = 82; - this.TB_FormeCount.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - // - // L_FormesCount - // - this.L_FormesCount.AutoSize = true; - this.L_FormesCount.Location = new System.Drawing.Point(300, 300); - this.L_FormesCount.Name = "L_FormesCount"; - this.L_FormesCount.Size = new System.Drawing.Size(75, 13); - this.L_FormesCount.TabIndex = 81; - this.L_FormesCount.Text = "Formes Count:"; - this.L_FormesCount.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // TB_FormeSprite - // - this.TB_FormeSprite.Location = new System.Drawing.Point(376, 272); - this.TB_FormeSprite.Name = "TB_FormeSprite"; - this.TB_FormeSprite.ReadOnly = true; - this.TB_FormeSprite.Size = new System.Drawing.Size(30, 20); - this.TB_FormeSprite.TabIndex = 80; - this.TB_FormeSprite.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - // - // L_FormeSprite - // - this.L_FormeSprite.AutoSize = true; - this.L_FormeSprite.Location = new System.Drawing.Point(306, 276); - this.L_FormeSprite.Name = "L_FormeSprite"; - this.L_FormeSprite.Size = new System.Drawing.Size(69, 13); - this.L_FormeSprite.TabIndex = 79; - this.L_FormeSprite.Text = "Forme Sprite:"; - this.L_FormeSprite.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_CatchRate - // - this.L_CatchRate.AutoSize = true; - this.L_CatchRate.Location = new System.Drawing.Point(322, 54); - this.L_CatchRate.Name = "L_CatchRate"; - this.L_CatchRate.Size = new System.Drawing.Size(64, 13); - this.L_CatchRate.TabIndex = 77; - this.L_CatchRate.Text = "Catch Rate:"; - // - // CB_Color - // - this.CB_Color.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Color.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Color.FormattingEnabled = true; - this.CB_Color.Location = new System.Drawing.Point(311, 211); - this.CB_Color.Name = "CB_Color"; - this.CB_Color.Size = new System.Drawing.Size(105, 21); - this.CB_Color.TabIndex = 76; - // - // CB_EXPGroup - // - this.CB_EXPGroup.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_EXPGroup.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_EXPGroup.FormattingEnabled = true; - this.CB_EXPGroup.Location = new System.Drawing.Point(80, 210); - this.CB_EXPGroup.Name = "CB_EXPGroup"; - this.CB_EXPGroup.Size = new System.Drawing.Size(112, 21); - this.CB_EXPGroup.TabIndex = 75; - // - // L_Color - // - this.L_Color.AutoSize = true; - this.L_Color.Location = new System.Drawing.Point(276, 214); - this.L_Color.Name = "L_Color"; - this.L_Color.Size = new System.Drawing.Size(34, 13); - this.L_Color.TabIndex = 74; - this.L_Color.Text = "Color:"; - // - // L_EXPGrowth - // - this.L_EXPGrowth.AutoSize = true; - this.L_EXPGrowth.Location = new System.Drawing.Point(16, 214); - this.L_EXPGrowth.Name = "L_EXPGrowth"; - this.L_EXPGrowth.Size = new System.Drawing.Size(63, 13); - this.L_EXPGrowth.TabIndex = 73; - this.L_EXPGrowth.Text = "EXP Group:"; - // - // TB_Weight - // - this.TB_Weight.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_Weight.Location = new System.Drawing.Point(235, 296); - this.TB_Weight.Mask = "000.0"; - this.TB_Weight.Name = "TB_Weight"; - this.TB_Weight.Size = new System.Drawing.Size(31, 20); - this.TB_Weight.TabIndex = 72; - this.TB_Weight.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - // - // TB_Height - // - this.TB_Height.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_Height.Location = new System.Drawing.Point(94, 296); - this.TB_Height.Mask = "00.0"; - this.TB_Height.Name = "TB_Height"; - this.TB_Height.Size = new System.Drawing.Size(31, 20); - this.TB_Height.TabIndex = 71; - this.TB_Height.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - // - // L_Weight - // - this.L_Weight.AutoSize = true; - this.L_Weight.Location = new System.Drawing.Point(190, 300); - this.L_Weight.Name = "L_Weight"; - this.L_Weight.Size = new System.Drawing.Size(44, 13); - this.L_Weight.TabIndex = 70; - this.L_Weight.Text = "Weight:"; - this.L_Weight.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_Height - // - this.L_Height.AutoSize = true; - this.L_Height.Location = new System.Drawing.Point(52, 300); - this.L_Height.Name = "L_Height"; - this.L_Height.Size = new System.Drawing.Size(41, 13); - this.L_Height.TabIndex = 69; - this.L_Height.Text = "Height:"; - this.L_Height.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // CB_Ability3 - // - this.CB_Ability3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Ability3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Ability3.FormattingEnabled = true; - this.CB_Ability3.Location = new System.Drawing.Point(276, 131); - this.CB_Ability3.Name = "CB_Ability3"; - this.CB_Ability3.Size = new System.Drawing.Size(140, 21); - this.CB_Ability3.TabIndex = 68; - // - // CB_Ability2 - // - this.CB_Ability2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Ability2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Ability2.FormattingEnabled = true; - this.CB_Ability2.Location = new System.Drawing.Point(276, 105); - this.CB_Ability2.Name = "CB_Ability2"; - this.CB_Ability2.Size = new System.Drawing.Size(140, 21); - this.CB_Ability2.TabIndex = 67; - // - // CB_Ability1 - // - this.CB_Ability1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Ability1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Ability1.FormattingEnabled = true; - this.CB_Ability1.Location = new System.Drawing.Point(276, 79); - this.CB_Ability1.Name = "CB_Ability1"; - this.CB_Ability1.Size = new System.Drawing.Size(140, 21); - this.CB_Ability1.TabIndex = 66; - // - // CB_EggGroup2 - // - this.CB_EggGroup2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_EggGroup2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_EggGroup2.FormattingEnabled = true; - this.CB_EggGroup2.Location = new System.Drawing.Point(295, 184); - this.CB_EggGroup2.Name = "CB_EggGroup2"; - this.CB_EggGroup2.Size = new System.Drawing.Size(121, 21); - this.CB_EggGroup2.TabIndex = 65; - // - // CB_EggGroup1 - // - this.CB_EggGroup1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_EggGroup1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_EggGroup1.FormattingEnabled = true; - this.CB_EggGroup1.Location = new System.Drawing.Point(295, 158); - this.CB_EggGroup1.Name = "CB_EggGroup1"; - this.CB_EggGroup1.Size = new System.Drawing.Size(121, 21); - this.CB_EggGroup1.TabIndex = 64; - // - // L_EggGroup - // - this.L_EggGroup.AutoSize = true; - this.L_EggGroup.Location = new System.Drawing.Point(230, 161); - this.L_EggGroup.Name = "L_EggGroup"; - this.L_EggGroup.Size = new System.Drawing.Size(66, 13); - this.L_EggGroup.TabIndex = 63; - this.L_EggGroup.Text = "Egg Groups:"; - // - // L_Ability - // - this.L_Ability.AutoSize = true; - this.L_Ability.Location = new System.Drawing.Point(230, 83); - this.L_Ability.Name = "L_Ability"; - this.L_Ability.Size = new System.Drawing.Size(45, 13); - this.L_Ability.TabIndex = 62; - this.L_Ability.Text = "Abilities:"; - // - // TB_BaseExp - // - this.TB_BaseExp.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_BaseExp.Location = new System.Drawing.Point(235, 272); - this.TB_BaseExp.Mask = "000"; - this.TB_BaseExp.Name = "TB_BaseExp"; - this.TB_BaseExp.Size = new System.Drawing.Size(31, 20); - this.TB_BaseExp.TabIndex = 61; - this.TB_BaseExp.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_BaseExp.TextChanged += new System.EventHandler(this.ByteLimiter); - // - // L_BaseEXP - // - this.L_BaseEXP.AutoSize = true; - this.L_BaseEXP.Location = new System.Drawing.Point(176, 276); - this.L_BaseEXP.Name = "L_BaseEXP"; - this.L_BaseEXP.Size = new System.Drawing.Size(58, 13); - this.L_BaseEXP.TabIndex = 60; - this.L_BaseEXP.Text = "Base EXP:"; - this.L_BaseEXP.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // TB_HatchCycles - // - this.TB_HatchCycles.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_HatchCycles.Location = new System.Drawing.Point(235, 248); - this.TB_HatchCycles.Mask = "000"; - this.TB_HatchCycles.Name = "TB_HatchCycles"; - this.TB_HatchCycles.Size = new System.Drawing.Size(31, 20); - this.TB_HatchCycles.TabIndex = 58; - this.TB_HatchCycles.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_HatchCycles.TextChanged += new System.EventHandler(this.ByteLimiter); - // - // L_HatchCycles - // - this.L_HatchCycles.AutoSize = true; - this.L_HatchCycles.Location = new System.Drawing.Point(161, 251); - this.L_HatchCycles.Name = "L_HatchCycles"; - this.L_HatchCycles.Size = new System.Drawing.Size(73, 13); - this.L_HatchCycles.TabIndex = 57; - this.L_HatchCycles.Text = "Hatch Cycles:"; - this.L_HatchCycles.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // TB_Friendship - // - this.TB_Friendship.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_Friendship.Location = new System.Drawing.Point(94, 272); - this.TB_Friendship.Mask = "000"; - this.TB_Friendship.Name = "TB_Friendship"; - this.TB_Friendship.Size = new System.Drawing.Size(31, 20); - this.TB_Friendship.TabIndex = 56; - this.TB_Friendship.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_Friendship.TextChanged += new System.EventHandler(this.ByteLimiter); - // - // TB_Gender - // - this.TB_Gender.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_Gender.Location = new System.Drawing.Point(94, 248); - this.TB_Gender.Mask = "000"; - this.TB_Gender.Name = "TB_Gender"; - this.TB_Gender.Size = new System.Drawing.Size(31, 20); - this.TB_Gender.TabIndex = 55; - this.TB_Gender.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_Gender.TextChanged += new System.EventHandler(this.ByteLimiter); - // - // L_Friendship - // - this.L_Friendship.AutoSize = true; - this.L_Friendship.Location = new System.Drawing.Point(35, 276); - this.L_Friendship.Name = "L_Friendship"; - this.L_Friendship.Size = new System.Drawing.Size(58, 13); - this.L_Friendship.TabIndex = 54; - this.L_Friendship.Text = "Friendship:"; - this.L_Friendship.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_Gender - // - this.L_Gender.AutoSize = true; - this.L_Gender.Location = new System.Drawing.Point(48, 251); - this.L_Gender.Name = "L_Gender"; - this.L_Gender.Size = new System.Drawing.Size(45, 13); - this.L_Gender.TabIndex = 53; - this.L_Gender.Text = "Gender:"; - this.L_Gender.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_Item1 - // - this.L_Item1.AutoSize = true; - this.L_Item1.Location = new System.Drawing.Point(195, 134); - this.L_Item1.Name = "L_Item1"; - this.L_Item1.Size = new System.Drawing.Size(21, 13); - this.L_Item1.TabIndex = 52; - this.L_Item1.Text = "1%"; - // - // L_Item5 - // - this.L_Item5.AutoSize = true; - this.L_Item5.Location = new System.Drawing.Point(195, 107); - this.L_Item5.Name = "L_Item5"; - this.L_Item5.Size = new System.Drawing.Size(21, 13); - this.L_Item5.TabIndex = 51; - this.L_Item5.Text = "5%"; - // - // L_Item50 - // - this.L_Item50.AutoSize = true; - this.L_Item50.Location = new System.Drawing.Point(195, 83); - this.L_Item50.Name = "L_Item50"; - this.L_Item50.Size = new System.Drawing.Size(27, 13); - this.L_Item50.TabIndex = 50; - this.L_Item50.Text = "50%"; - // - // CB_HeldItem3 - // - this.CB_HeldItem3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_HeldItem3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_HeldItem3.FormattingEnabled = true; - this.CB_HeldItem3.Location = new System.Drawing.Point(52, 131); - this.CB_HeldItem3.Name = "CB_HeldItem3"; - this.CB_HeldItem3.Size = new System.Drawing.Size(140, 21); - this.CB_HeldItem3.TabIndex = 49; - // - // CB_HeldItem2 - // - this.CB_HeldItem2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_HeldItem2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_HeldItem2.FormattingEnabled = true; - this.CB_HeldItem2.Location = new System.Drawing.Point(52, 105); - this.CB_HeldItem2.Name = "CB_HeldItem2"; - this.CB_HeldItem2.Size = new System.Drawing.Size(140, 21); - this.CB_HeldItem2.TabIndex = 48; - // - // CB_HeldItem1 - // - this.CB_HeldItem1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_HeldItem1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_HeldItem1.FormattingEnabled = true; - this.CB_HeldItem1.Location = new System.Drawing.Point(52, 79); - this.CB_HeldItem1.Name = "CB_HeldItem1"; - this.CB_HeldItem1.Size = new System.Drawing.Size(140, 21); - this.CB_HeldItem1.TabIndex = 47; - // - // L_HeldItem - // - this.L_HeldItem.AutoSize = true; - this.L_HeldItem.Location = new System.Drawing.Point(16, 82); - this.L_HeldItem.Name = "L_HeldItem"; - this.L_HeldItem.Size = new System.Drawing.Size(35, 13); - this.L_HeldItem.TabIndex = 46; - this.L_HeldItem.Text = "Items:"; - // - // CB_Type2 - // - this.CB_Type2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Type2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Type2.FormattingEnabled = true; - this.CB_Type2.Location = new System.Drawing.Point(63, 184); - this.CB_Type2.Name = "CB_Type2"; - this.CB_Type2.Size = new System.Drawing.Size(129, 21); - this.CB_Type2.TabIndex = 45; - // - // CB_Type1 - // - this.CB_Type1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Type1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Type1.FormattingEnabled = true; - this.CB_Type1.Location = new System.Drawing.Point(63, 158); - this.CB_Type1.Name = "CB_Type1"; - this.CB_Type1.Size = new System.Drawing.Size(129, 21); - this.CB_Type1.TabIndex = 44; - // - // L_Type - // - this.L_Type.AutoSize = true; - this.L_Type.Location = new System.Drawing.Point(16, 161); - this.L_Type.Name = "L_Type"; - this.L_Type.Size = new System.Drawing.Size(47, 13); - this.L_Type.TabIndex = 43; - this.L_Type.Text = "Typings:"; - // - // TB_SPEEVs - // - this.TB_SPEEVs.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_SPEEVs.Location = new System.Drawing.Point(273, 51); - this.TB_SPEEVs.Mask = "0"; - this.TB_SPEEVs.Name = "TB_SPEEVs"; - this.TB_SPEEVs.Size = new System.Drawing.Size(31, 20); - this.TB_SPEEVs.TabIndex = 42; - this.TB_SPEEVs.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_SPEEVs.TextChanged += new System.EventHandler(this.ByteLimiter); - // - // TB_SPDEVs - // - this.TB_SPDEVs.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_SPDEVs.Location = new System.Drawing.Point(234, 51); - this.TB_SPDEVs.Mask = "0"; - this.TB_SPDEVs.Name = "TB_SPDEVs"; - this.TB_SPDEVs.Size = new System.Drawing.Size(31, 20); - this.TB_SPDEVs.TabIndex = 41; - this.TB_SPDEVs.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_SPDEVs.TextChanged += new System.EventHandler(this.ByteLimiter); - // - // TB_SPAEVs - // - this.TB_SPAEVs.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_SPAEVs.Location = new System.Drawing.Point(195, 51); - this.TB_SPAEVs.Mask = "0"; - this.TB_SPAEVs.Name = "TB_SPAEVs"; - this.TB_SPAEVs.Size = new System.Drawing.Size(31, 20); - this.TB_SPAEVs.TabIndex = 40; - this.TB_SPAEVs.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_SPAEVs.TextChanged += new System.EventHandler(this.ByteLimiter); - // - // TB_DEFEVs - // - this.TB_DEFEVs.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_DEFEVs.Location = new System.Drawing.Point(157, 51); - this.TB_DEFEVs.Mask = "0"; - this.TB_DEFEVs.Name = "TB_DEFEVs"; - this.TB_DEFEVs.Size = new System.Drawing.Size(31, 20); - this.TB_DEFEVs.TabIndex = 39; - this.TB_DEFEVs.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_DEFEVs.TextChanged += new System.EventHandler(this.ByteLimiter); - // - // TB_ATKEVs - // - this.TB_ATKEVs.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_ATKEVs.Location = new System.Drawing.Point(119, 51); - this.TB_ATKEVs.Mask = "0"; - this.TB_ATKEVs.Name = "TB_ATKEVs"; - this.TB_ATKEVs.Size = new System.Drawing.Size(31, 20); - this.TB_ATKEVs.TabIndex = 38; - this.TB_ATKEVs.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_ATKEVs.TextChanged += new System.EventHandler(this.ByteLimiter); - // - // TB_HPEVs - // - this.TB_HPEVs.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_HPEVs.Location = new System.Drawing.Point(80, 51); - this.TB_HPEVs.Mask = "0"; - this.TB_HPEVs.Name = "TB_HPEVs"; - this.TB_HPEVs.Size = new System.Drawing.Size(31, 20); - this.TB_HPEVs.TabIndex = 37; - this.TB_HPEVs.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_HPEVs.TextChanged += new System.EventHandler(this.ByteLimiter); - // - // TB_BaseSPE - // - this.TB_BaseSPE.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_BaseSPE.Location = new System.Drawing.Point(273, 27); - this.TB_BaseSPE.Mask = "000"; - this.TB_BaseSPE.Name = "TB_BaseSPE"; - this.TB_BaseSPE.Size = new System.Drawing.Size(31, 20); - this.TB_BaseSPE.TabIndex = 36; - this.TB_BaseSPE.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_BaseSPE.TextChanged += new System.EventHandler(this.ByteLimiter); - // - // TB_BaseSPD - // - this.TB_BaseSPD.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_BaseSPD.Location = new System.Drawing.Point(234, 27); - this.TB_BaseSPD.Mask = "000"; - this.TB_BaseSPD.Name = "TB_BaseSPD"; - this.TB_BaseSPD.Size = new System.Drawing.Size(31, 20); - this.TB_BaseSPD.TabIndex = 35; - this.TB_BaseSPD.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_BaseSPD.TextChanged += new System.EventHandler(this.ByteLimiter); - // - // TB_BaseSPA - // - this.TB_BaseSPA.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_BaseSPA.Location = new System.Drawing.Point(195, 27); - this.TB_BaseSPA.Mask = "000"; - this.TB_BaseSPA.Name = "TB_BaseSPA"; - this.TB_BaseSPA.Size = new System.Drawing.Size(31, 20); - this.TB_BaseSPA.TabIndex = 34; - this.TB_BaseSPA.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_BaseSPA.TextChanged += new System.EventHandler(this.ByteLimiter); - // - // TB_BaseDEF - // - this.TB_BaseDEF.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_BaseDEF.Location = new System.Drawing.Point(157, 27); - this.TB_BaseDEF.Mask = "000"; - this.TB_BaseDEF.Name = "TB_BaseDEF"; - this.TB_BaseDEF.Size = new System.Drawing.Size(31, 20); - this.TB_BaseDEF.TabIndex = 33; - this.TB_BaseDEF.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_BaseDEF.TextChanged += new System.EventHandler(this.ByteLimiter); - // - // TB_BaseATK - // - this.TB_BaseATK.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_BaseATK.Location = new System.Drawing.Point(119, 27); - this.TB_BaseATK.Mask = "000"; - this.TB_BaseATK.Name = "TB_BaseATK"; - this.TB_BaseATK.Size = new System.Drawing.Size(31, 20); - this.TB_BaseATK.TabIndex = 32; - this.TB_BaseATK.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_BaseATK.TextChanged += new System.EventHandler(this.ByteLimiter); - // - // TB_BaseHP - // - this.TB_BaseHP.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_BaseHP.Location = new System.Drawing.Point(80, 27); - this.TB_BaseHP.Mask = "000"; - this.TB_BaseHP.Name = "TB_BaseHP"; - this.TB_BaseHP.Size = new System.Drawing.Size(31, 20); - this.TB_BaseHP.TabIndex = 31; - this.TB_BaseHP.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_BaseHP.TextChanged += new System.EventHandler(this.ByteLimiter); - // - // Label_HP - // - this.Label_HP.Location = new System.Drawing.Point(77, 11); - this.Label_HP.Name = "Label_HP"; - this.Label_HP.Size = new System.Drawing.Size(31, 13); - this.Label_HP.TabIndex = 25; - this.Label_HP.Text = "HP:"; - this.Label_HP.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // Label_ATK - // - this.Label_ATK.Location = new System.Drawing.Point(119, 11); - this.Label_ATK.Name = "Label_ATK"; - this.Label_ATK.Size = new System.Drawing.Size(31, 13); - this.Label_ATK.TabIndex = 26; - this.Label_ATK.Text = "Atk:"; - this.Label_ATK.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // Label_DEF - // - this.Label_DEF.Location = new System.Drawing.Point(157, 11); - this.Label_DEF.Name = "Label_DEF"; - this.Label_DEF.Size = new System.Drawing.Size(31, 13); - this.Label_DEF.TabIndex = 27; - this.Label_DEF.Text = "Def:"; - this.Label_DEF.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // Label_SPA - // - this.Label_SPA.Location = new System.Drawing.Point(195, 11); - this.Label_SPA.Name = "Label_SPA"; - this.Label_SPA.Size = new System.Drawing.Size(31, 13); - this.Label_SPA.TabIndex = 28; - this.Label_SPA.Text = "SpA:"; - this.Label_SPA.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // Label_SPD - // - this.Label_SPD.Location = new System.Drawing.Point(234, 11); - this.Label_SPD.Name = "Label_SPD"; - this.Label_SPD.Size = new System.Drawing.Size(31, 13); - this.Label_SPD.TabIndex = 29; - this.Label_SPD.Text = "SpD:"; - this.Label_SPD.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // Label_SPE - // - this.Label_SPE.Location = new System.Drawing.Point(271, 11); - this.Label_SPE.Name = "Label_SPE"; - this.Label_SPE.Size = new System.Drawing.Size(31, 13); - this.Label_SPE.TabIndex = 30; - this.Label_SPE.Text = "Spe:"; - this.Label_SPE.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_EVYield - // - this.L_EVYield.AutoSize = true; - this.L_EVYield.Location = new System.Drawing.Point(16, 54); - this.L_EVYield.Name = "L_EVYield"; - this.L_EVYield.Size = new System.Drawing.Size(50, 13); - this.L_EVYield.TabIndex = 2; - this.L_EVYield.Text = "EV Yield:"; - // - // L_BaseStats - // - this.L_BaseStats.AutoSize = true; - this.L_BaseStats.Location = new System.Drawing.Point(16, 30); - this.L_BaseStats.Name = "L_BaseStats"; - this.L_BaseStats.Size = new System.Drawing.Size(61, 13); - this.L_BaseStats.TabIndex = 1; - this.L_BaseStats.Text = "Base Stats:"; - // - // TP_MoveTutors - // - this.TP_MoveTutors.Controls.Add(this.L_ORASTutors); - this.TP_MoveTutors.Controls.Add(this.L_Special); - this.TP_MoveTutors.Controls.Add(this.L_TMHM); - this.TP_MoveTutors.Controls.Add(this.CLB_OrasTutors); - this.TP_MoveTutors.Controls.Add(this.CLB_MoveTutors); - this.TP_MoveTutors.Controls.Add(this.CLB_TMHM); - this.TP_MoveTutors.Location = new System.Drawing.Point(4, 22); - this.TP_MoveTutors.Name = "TP_MoveTutors"; - this.TP_MoveTutors.Padding = new System.Windows.Forms.Padding(3); - this.TP_MoveTutors.Size = new System.Drawing.Size(437, 339); - this.TP_MoveTutors.TabIndex = 1; - this.TP_MoveTutors.Text = "Move Tutors"; - this.TP_MoveTutors.UseVisualStyleBackColor = true; - // - // L_ORASTutors - // - this.L_ORASTutors.AutoSize = true; - this.L_ORASTutors.Location = new System.Drawing.Point(298, 3); - this.L_ORASTutors.Name = "L_ORASTutors"; - this.L_ORASTutors.Size = new System.Drawing.Size(104, 13); - this.L_ORASTutors.TabIndex = 7; - this.L_ORASTutors.Text = "Battle Resort Tutors:"; - this.L_ORASTutors.Visible = false; - // - // L_Special - // - this.L_Special.AutoSize = true; - this.L_Special.Location = new System.Drawing.Point(159, 3); - this.L_Special.Name = "L_Special"; - this.L_Special.Size = new System.Drawing.Size(78, 13); - this.L_Special.TabIndex = 6; - this.L_Special.Text = "Special Tutors:"; - // - // L_TMHM - // - this.L_TMHM.AutoSize = true; - this.L_TMHM.Location = new System.Drawing.Point(6, 3); - this.L_TMHM.Name = "L_TMHM"; - this.L_TMHM.Size = new System.Drawing.Size(48, 13); - this.L_TMHM.TabIndex = 5; - this.L_TMHM.Text = "TM/HM:"; - // - // CLB_OrasTutors - // - this.CLB_OrasTutors.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left))); - this.CLB_OrasTutors.Enabled = false; - this.CLB_OrasTutors.FormattingEnabled = true; - this.CLB_OrasTutors.Location = new System.Drawing.Point(301, 19); - this.CLB_OrasTutors.Name = "CLB_OrasTutors"; - this.CLB_OrasTutors.Size = new System.Drawing.Size(133, 319); - this.CLB_OrasTutors.TabIndex = 4; - this.CLB_OrasTutors.Visible = false; - // - // CLB_MoveTutors - // - this.CLB_MoveTutors.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left))); - this.CLB_MoveTutors.FormattingEnabled = true; - this.CLB_MoveTutors.Location = new System.Drawing.Point(162, 19); - this.CLB_MoveTutors.Name = "CLB_MoveTutors"; - this.CLB_MoveTutors.Size = new System.Drawing.Size(133, 319); - this.CLB_MoveTutors.TabIndex = 3; - // - // CLB_TMHM - // - this.CLB_TMHM.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left))); - this.CLB_TMHM.FormattingEnabled = true; - this.CLB_TMHM.Location = new System.Drawing.Point(9, 19); - this.CLB_TMHM.Name = "CLB_TMHM"; - this.CLB_TMHM.Size = new System.Drawing.Size(147, 319); - this.CLB_TMHM.TabIndex = 2; - // - // TP_Randomizer - // - this.TP_Randomizer.Controls.Add(this.GB_Modifier); - this.TP_Randomizer.Controls.Add(this.B_ModAll); - this.TP_Randomizer.Controls.Add(this.GB_Randomizer); - this.TP_Randomizer.Controls.Add(this.B_Randomize); - this.TP_Randomizer.Location = new System.Drawing.Point(4, 22); - this.TP_Randomizer.Name = "TP_Randomizer"; - this.TP_Randomizer.Size = new System.Drawing.Size(437, 339); - this.TP_Randomizer.TabIndex = 2; - this.TP_Randomizer.Text = "Enhancements"; - this.TP_Randomizer.UseVisualStyleBackColor = true; - // - // GB_Modifier - // - this.GB_Modifier.Controls.Add(this.CHK_CatchRateMod); - this.GB_Modifier.Controls.Add(this.L_CatchRateMod); - this.GB_Modifier.Controls.Add(this.NUD_CatchRateMod); - this.GB_Modifier.Controls.Add(this.CHK_EXP); - this.GB_Modifier.Controls.Add(this.CHK_Growth); - this.GB_Modifier.Controls.Add(this.CHK_QuickHatch); - this.GB_Modifier.Controls.Add(this.L_FinalXP); - this.GB_Modifier.Controls.Add(this.NUD_EXP); - this.GB_Modifier.Controls.Add(this.CHK_NoEV); - this.GB_Modifier.Location = new System.Drawing.Point(4, 147); - this.GB_Modifier.Name = "GB_Modifier"; - this.GB_Modifier.Size = new System.Drawing.Size(345, 129); - this.GB_Modifier.TabIndex = 419; - this.GB_Modifier.TabStop = false; - this.GB_Modifier.Text = "Modifier Options"; - // - // CHK_CatchRateMod - // - this.CHK_CatchRateMod.AutoSize = true; - this.CHK_CatchRateMod.Location = new System.Drawing.Point(204, 38); - this.CHK_CatchRateMod.Name = "CHK_CatchRateMod"; - this.CHK_CatchRateMod.Size = new System.Drawing.Size(114, 17); - this.CHK_CatchRateMod.TabIndex = 19; - this.CHK_CatchRateMod.Text = "Modify Catch Rate"; - this.CHK_CatchRateMod.UseVisualStyleBackColor = true; - // - // L_CatchRateMod - // - this.L_CatchRateMod.AutoSize = true; - this.L_CatchRateMod.Location = new System.Drawing.Point(204, 58); - this.L_CatchRateMod.Name = "L_CatchRateMod"; - this.L_CatchRateMod.Size = new System.Drawing.Size(34, 13); - this.L_CatchRateMod.TabIndex = 18; - this.L_CatchRateMod.Text = "Value"; - // - // NUD_CatchRateMod - // - this.NUD_CatchRateMod.Location = new System.Drawing.Point(267, 56); - this.NUD_CatchRateMod.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.NUD_CatchRateMod.Minimum = new decimal(new int[] { - 3, - 0, - 0, - 0}); - this.NUD_CatchRateMod.Name = "NUD_CatchRateMod"; - this.NUD_CatchRateMod.Size = new System.Drawing.Size(46, 20); - this.NUD_CatchRateMod.TabIndex = 17; - this.NUD_CatchRateMod.Value = new decimal(new int[] { - 3, - 0, - 0, - 0}); - // - // CHK_EXP - // - this.CHK_EXP.AutoSize = true; - this.CHK_EXP.Location = new System.Drawing.Point(6, 51); - this.CHK_EXP.Name = "CHK_EXP"; - this.CHK_EXP.Size = new System.Drawing.Size(107, 17); - this.CHK_EXP.TabIndex = 7; - this.CHK_EXP.Text = "Modify EXP Yield"; - this.CHK_EXP.UseVisualStyleBackColor = true; - // - // CHK_Growth - // - this.CHK_Growth.AutoSize = true; - this.CHK_Growth.Location = new System.Drawing.Point(6, 36); - this.CHK_Growth.Name = "CHK_Growth"; - this.CHK_Growth.Size = new System.Drawing.Size(147, 17); - this.CHK_Growth.TabIndex = 8; - this.CHK_Growth.Text = "Lowest EXP Growth Rate"; - this.CHK_Growth.UseVisualStyleBackColor = true; - // - // CHK_QuickHatch - // - this.CHK_QuickHatch.AutoSize = true; - this.CHK_QuickHatch.Checked = true; - this.CHK_QuickHatch.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_QuickHatch.Location = new System.Drawing.Point(204, 21); - this.CHK_QuickHatch.Name = "CHK_QuickHatch"; - this.CHK_QuickHatch.Size = new System.Drawing.Size(113, 17); - this.CHK_QuickHatch.TabIndex = 10; - this.CHK_QuickHatch.Text = "Quick Hatch Eggs"; - this.CHK_QuickHatch.UseVisualStyleBackColor = true; - // - // L_FinalXP - // - this.L_FinalXP.AutoSize = true; - this.L_FinalXP.Location = new System.Drawing.Point(6, 71); - this.L_FinalXP.Name = "L_FinalXP"; - this.L_FinalXP.Size = new System.Drawing.Size(63, 13); - this.L_FinalXP.TabIndex = 6; - this.L_FinalXP.Text = "Final XP (%)"; - // - // NUD_EXP - // - this.NUD_EXP.Location = new System.Drawing.Point(69, 69); - this.NUD_EXP.Maximum = new decimal(new int[] { - 300, - 0, - 0, - 0}); - this.NUD_EXP.Name = "NUD_EXP"; - this.NUD_EXP.Size = new System.Drawing.Size(46, 20); - this.NUD_EXP.TabIndex = 5; - this.NUD_EXP.Value = new decimal(new int[] { - 28, - 0, - 0, - 0}); - // - // CHK_NoEV - // - this.CHK_NoEV.AutoSize = true; - this.CHK_NoEV.Location = new System.Drawing.Point(6, 21); - this.CHK_NoEV.Name = "CHK_NoEV"; - this.CHK_NoEV.Size = new System.Drawing.Size(114, 17); - this.CHK_NoEV.TabIndex = 0; - this.CHK_NoEV.Text = "Remove EV Yields"; - this.CHK_NoEV.UseVisualStyleBackColor = true; - // - // B_ModAll - // - this.B_ModAll.Location = new System.Drawing.Point(352, 162); - this.B_ModAll.Name = "B_ModAll"; - this.B_ModAll.Size = new System.Drawing.Size(82, 23); - this.B_ModAll.TabIndex = 421; - this.B_ModAll.Text = "Modify All"; - this.B_ModAll.UseVisualStyleBackColor = true; - this.B_ModAll.Click += new System.EventHandler(this.B_ModifyAll); - // - // GB_Randomizer - // - this.GB_Randomizer.Controls.Add(this.L_Same); - this.GB_Randomizer.Controls.Add(this.NUD_Egg); - this.GB_Randomizer.Controls.Add(this.CHK_WGuard); - this.GB_Randomizer.Controls.Add(this.CHK_Ability); - this.GB_Randomizer.Controls.Add(this.CHK_ORASTutors); - this.GB_Randomizer.Controls.Add(this.CHK_Tutors); - this.GB_Randomizer.Controls.Add(this.CHK_rSPE); - this.GB_Randomizer.Controls.Add(this.CHK_Type); - this.GB_Randomizer.Controls.Add(this.CHK_rSPD); - this.GB_Randomizer.Controls.Add(this.CHK_rSPA); - this.GB_Randomizer.Controls.Add(this.L_SingleType); - this.GB_Randomizer.Controls.Add(this.CHK_rDEF); - this.GB_Randomizer.Controls.Add(this.CHK_rATK); - this.GB_Randomizer.Controls.Add(this.NUD_TypePercent); - this.GB_Randomizer.Controls.Add(this.CHK_rHP); - this.GB_Randomizer.Controls.Add(this.CHK_HM); - this.GB_Randomizer.Controls.Add(this.L_StatDev); - this.GB_Randomizer.Controls.Add(this.CHK_TM); - this.GB_Randomizer.Controls.Add(this.NUD_StatDev); - this.GB_Randomizer.Controls.Add(this.CHK_Stats); - this.GB_Randomizer.Controls.Add(this.CHK_EggGroup); - this.GB_Randomizer.Controls.Add(this.CHK_CatchRate); - this.GB_Randomizer.Controls.Add(this.CHK_Item); - this.GB_Randomizer.Location = new System.Drawing.Point(4, 12); - this.GB_Randomizer.Name = "GB_Randomizer"; - this.GB_Randomizer.Size = new System.Drawing.Size(345, 129); - this.GB_Randomizer.TabIndex = 418; - this.GB_Randomizer.TabStop = false; - this.GB_Randomizer.Text = "Randomizer Options"; - // - // L_Same - // - this.L_Same.AutoSize = true; - this.L_Same.Location = new System.Drawing.Point(216, 101); - this.L_Same.Name = "L_Same"; - this.L_Same.Size = new System.Drawing.Size(48, 13); - this.L_Same.TabIndex = 23; - this.L_Same.Text = "Same(%)"; - // - // NUD_Egg - // - this.NUD_Egg.Location = new System.Drawing.Point(267, 99); - this.NUD_Egg.Name = "NUD_Egg"; - this.NUD_Egg.Size = new System.Drawing.Size(46, 20); - this.NUD_Egg.TabIndex = 22; - this.NUD_Egg.Value = new decimal(new int[] { - 50, - 0, - 0, - 0}); - // - // CHK_WGuard - // - this.CHK_WGuard.AutoSize = true; - this.CHK_WGuard.Location = new System.Drawing.Point(118, 49); - this.CHK_WGuard.Name = "CHK_WGuard"; - this.CHK_WGuard.Size = new System.Drawing.Size(96, 17); - this.CHK_WGuard.TabIndex = 10; - this.CHK_WGuard.Text = "Wonder Guard"; - this.CHK_WGuard.UseVisualStyleBackColor = true; - // - // CHK_Ability - // - this.CHK_Ability.AutoSize = true; - this.CHK_Ability.Checked = true; - this.CHK_Ability.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_Ability.Location = new System.Drawing.Point(118, 34); - this.CHK_Ability.Name = "CHK_Ability"; - this.CHK_Ability.Size = new System.Drawing.Size(61, 17); - this.CHK_Ability.TabIndex = 1; - this.CHK_Ability.Text = "Abilities"; - this.CHK_Ability.UseVisualStyleBackColor = true; - this.CHK_Ability.CheckedChanged += new System.EventHandler(this.CHK_Ability_CheckedChanged); - // - // CHK_ORASTutors - // - this.CHK_ORASTutors.AutoSize = true; - this.CHK_ORASTutors.Checked = true; - this.CHK_ORASTutors.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_ORASTutors.Location = new System.Drawing.Point(219, 50); - this.CHK_ORASTutors.Name = "CHK_ORASTutors"; - this.CHK_ORASTutors.Size = new System.Drawing.Size(120, 17); - this.CHK_ORASTutors.TabIndex = 9; - this.CHK_ORASTutors.Text = "Battle Resort Tutors"; - this.CHK_ORASTutors.UseVisualStyleBackColor = true; - // - // CHK_Tutors - // - this.CHK_Tutors.AutoSize = true; - this.CHK_Tutors.Checked = true; - this.CHK_Tutors.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_Tutors.Location = new System.Drawing.Point(219, 34); - this.CHK_Tutors.Name = "CHK_Tutors"; - this.CHK_Tutors.Size = new System.Drawing.Size(94, 17); - this.CHK_Tutors.TabIndex = 8; - this.CHK_Tutors.Text = "Special Tutors"; - this.CHK_Tutors.UseVisualStyleBackColor = true; - // - // CHK_rSPE - // - this.CHK_rSPE.AutoSize = true; - this.CHK_rSPE.Checked = true; - this.CHK_rSPE.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_rSPE.Location = new System.Drawing.Point(51, 64); - this.CHK_rSPE.Name = "CHK_rSPE"; - this.CHK_rSPE.Size = new System.Drawing.Size(45, 17); - this.CHK_rSPE.TabIndex = 19; - this.CHK_rSPE.Text = "Spe"; - this.CHK_rSPE.UseVisualStyleBackColor = true; - // - // CHK_Type - // - this.CHK_Type.AutoSize = true; - this.CHK_Type.Checked = true; - this.CHK_Type.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_Type.Location = new System.Drawing.Point(118, 65); - this.CHK_Type.Name = "CHK_Type"; - this.CHK_Type.Size = new System.Drawing.Size(55, 17); - this.CHK_Type.TabIndex = 6; - this.CHK_Type.Text = "Types"; - this.CHK_Type.UseVisualStyleBackColor = true; - // - // CHK_rSPD - // - this.CHK_rSPD.AutoSize = true; - this.CHK_rSPD.Checked = true; - this.CHK_rSPD.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_rSPD.Location = new System.Drawing.Point(6, 64); - this.CHK_rSPD.Name = "CHK_rSPD"; - this.CHK_rSPD.Size = new System.Drawing.Size(47, 17); - this.CHK_rSPD.TabIndex = 18; - this.CHK_rSPD.Text = "SpD"; - this.CHK_rSPD.UseVisualStyleBackColor = true; - // - // CHK_rSPA - // - this.CHK_rSPA.AutoSize = true; - this.CHK_rSPA.Checked = true; - this.CHK_rSPA.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_rSPA.Location = new System.Drawing.Point(51, 49); - this.CHK_rSPA.Name = "CHK_rSPA"; - this.CHK_rSPA.Size = new System.Drawing.Size(46, 17); - this.CHK_rSPA.TabIndex = 17; - this.CHK_rSPA.Text = "SpA"; - this.CHK_rSPA.UseVisualStyleBackColor = true; - // - // L_SingleType - // - this.L_SingleType.AutoSize = true; - this.L_SingleType.Location = new System.Drawing.Point(115, 82); - this.L_SingleType.Name = "L_SingleType"; - this.L_SingleType.Size = new System.Drawing.Size(77, 13); - this.L_SingleType.TabIndex = 21; - this.L_SingleType.Text = "Single Type(%)"; - // - // CHK_rDEF - // - this.CHK_rDEF.AutoSize = true; - this.CHK_rDEF.Checked = true; - this.CHK_rDEF.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_rDEF.Location = new System.Drawing.Point(6, 49); - this.CHK_rDEF.Name = "CHK_rDEF"; - this.CHK_rDEF.Size = new System.Drawing.Size(43, 17); - this.CHK_rDEF.TabIndex = 16; - this.CHK_rDEF.Text = "Def"; - this.CHK_rDEF.UseVisualStyleBackColor = true; - // - // CHK_rATK - // - this.CHK_rATK.AutoSize = true; - this.CHK_rATK.Checked = true; - this.CHK_rATK.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_rATK.Location = new System.Drawing.Point(51, 34); - this.CHK_rATK.Name = "CHK_rATK"; - this.CHK_rATK.Size = new System.Drawing.Size(42, 17); - this.CHK_rATK.TabIndex = 15; - this.CHK_rATK.Text = "Atk"; - this.CHK_rATK.UseVisualStyleBackColor = true; - // - // NUD_TypePercent - // - this.NUD_TypePercent.Location = new System.Drawing.Point(134, 98); - this.NUD_TypePercent.Name = "NUD_TypePercent"; - this.NUD_TypePercent.Size = new System.Drawing.Size(46, 20); - this.NUD_TypePercent.TabIndex = 20; - this.NUD_TypePercent.Value = new decimal(new int[] { - 50, - 0, - 0, - 0}); - // - // CHK_rHP - // - this.CHK_rHP.AutoSize = true; - this.CHK_rHP.Checked = true; - this.CHK_rHP.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_rHP.Location = new System.Drawing.Point(6, 34); - this.CHK_rHP.Name = "CHK_rHP"; - this.CHK_rHP.Size = new System.Drawing.Size(41, 17); - this.CHK_rHP.TabIndex = 14; - this.CHK_rHP.Text = "HP"; - this.CHK_rHP.UseVisualStyleBackColor = true; - // - // CHK_HM - // - this.CHK_HM.AutoSize = true; - this.CHK_HM.Checked = true; - this.CHK_HM.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_HM.Location = new System.Drawing.Point(267, 19); - this.CHK_HM.Name = "CHK_HM"; - this.CHK_HM.Size = new System.Drawing.Size(43, 17); - this.CHK_HM.TabIndex = 7; - this.CHK_HM.Text = "HM"; - this.CHK_HM.UseVisualStyleBackColor = true; - // - // L_StatDev - // - this.L_StatDev.AutoSize = true; - this.L_StatDev.Location = new System.Drawing.Point(6, 82); - this.L_StatDev.Name = "L_StatDev"; - this.L_StatDev.Size = new System.Drawing.Size(67, 13); - this.L_StatDev.TabIndex = 4; - this.L_StatDev.Text = "Deviance(%)"; - // - // CHK_TM - // - this.CHK_TM.AutoSize = true; - this.CHK_TM.Checked = true; - this.CHK_TM.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_TM.Location = new System.Drawing.Point(219, 19); - this.CHK_TM.Name = "CHK_TM"; - this.CHK_TM.Size = new System.Drawing.Size(42, 17); - this.CHK_TM.TabIndex = 0; - this.CHK_TM.Text = "TM"; - this.CHK_TM.UseVisualStyleBackColor = true; - // - // NUD_StatDev - // - this.NUD_StatDev.Location = new System.Drawing.Point(27, 98); - this.NUD_StatDev.Name = "NUD_StatDev"; - this.NUD_StatDev.Size = new System.Drawing.Size(46, 20); - this.NUD_StatDev.TabIndex = 3; - this.NUD_StatDev.Value = new decimal(new int[] { - 25, - 0, - 0, - 0}); - // - // CHK_Stats - // - this.CHK_Stats.AutoSize = true; - this.CHK_Stats.Checked = true; - this.CHK_Stats.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_Stats.Location = new System.Drawing.Point(6, 19); - this.CHK_Stats.Name = "CHK_Stats"; - this.CHK_Stats.Size = new System.Drawing.Size(106, 17); - this.CHK_Stats.TabIndex = 2; - this.CHK_Stats.Text = "Randomize Stats"; - this.CHK_Stats.UseVisualStyleBackColor = true; - this.CHK_Stats.CheckedChanged += new System.EventHandler(this.CHK_Stats_CheckedChanged); - // - // CHK_EggGroup - // - this.CHK_EggGroup.AutoSize = true; - this.CHK_EggGroup.Checked = true; - this.CHK_EggGroup.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_EggGroup.Location = new System.Drawing.Point(219, 81); - this.CHK_EggGroup.Name = "CHK_EggGroup"; - this.CHK_EggGroup.Size = new System.Drawing.Size(77, 17); - this.CHK_EggGroup.TabIndex = 13; - this.CHK_EggGroup.Text = "Egg Group"; - this.CHK_EggGroup.UseVisualStyleBackColor = true; - // - // CHK_CatchRate - // - this.CHK_CatchRate.AutoSize = true; - this.CHK_CatchRate.Checked = true; - this.CHK_CatchRate.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_CatchRate.Location = new System.Drawing.Point(219, 66); - this.CHK_CatchRate.Name = "CHK_CatchRate"; - this.CHK_CatchRate.Size = new System.Drawing.Size(80, 17); - this.CHK_CatchRate.TabIndex = 11; - this.CHK_CatchRate.Text = "Catch Rate"; - this.CHK_CatchRate.UseVisualStyleBackColor = true; - // - // CHK_Item - // - this.CHK_Item.AutoSize = true; - this.CHK_Item.Checked = true; - this.CHK_Item.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_Item.Location = new System.Drawing.Point(118, 19); - this.CHK_Item.Name = "CHK_Item"; - this.CHK_Item.Size = new System.Drawing.Size(76, 17); - this.CHK_Item.TabIndex = 5; - this.CHK_Item.Text = "Held Items"; - this.CHK_Item.UseVisualStyleBackColor = true; - // - // B_Randomize - // - this.B_Randomize.Location = new System.Drawing.Point(352, 25); - this.B_Randomize.Name = "B_Randomize"; - this.B_Randomize.Size = new System.Drawing.Size(82, 23); - this.B_Randomize.TabIndex = 417; - this.B_Randomize.Text = "Randomize"; - this.B_Randomize.UseVisualStyleBackColor = true; - this.B_Randomize.Click += new System.EventHandler(this.B_Randomize_Click); - // - // PB_MonSprite - // - this.PB_MonSprite.Location = new System.Drawing.Point(285, 0); - this.PB_MonSprite.Name = "PB_MonSprite"; - this.PB_MonSprite.Size = new System.Drawing.Size(80, 60); - this.PB_MonSprite.TabIndex = 89; - this.PB_MonSprite.TabStop = false; - // - // B_Dump - // - this.B_Dump.Location = new System.Drawing.Point(368, 10); - this.B_Dump.Name = "B_Dump"; - this.B_Dump.Size = new System.Drawing.Size(82, 23); - this.B_Dump.TabIndex = 418; - this.B_Dump.Text = "Dump All"; - this.B_Dump.UseVisualStyleBackColor = true; - this.B_Dump.Click += new System.EventHandler(this.B_Dump_Click); - // - // PersonalEditor6 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(469, 416); - this.Controls.Add(this.B_Dump); - this.Controls.Add(this.PB_MonSprite); - this.Controls.Add(this.TC_Pokemon); - this.Controls.Add(this.L_Species_Precursor); - this.Controls.Add(this.CB_Species); - this.MaximizeBox = false; - this.MaximumSize = new System.Drawing.Size(485, 455); - this.MinimumSize = new System.Drawing.Size(485, 455); - this.Name = "PersonalEditor6"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Personal Stats Editor"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.formClosing); - this.TC_Pokemon.ResumeLayout(false); - this.TP_General.ResumeLayout(false); - this.TP_General.PerformLayout(); - this.TP_MoveTutors.ResumeLayout(false); - this.TP_MoveTutors.PerformLayout(); - this.TP_Randomizer.ResumeLayout(false); - this.GB_Modifier.ResumeLayout(false); - this.GB_Modifier.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_CatchRateMod)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_EXP)).EndInit(); - this.GB_Randomizer.ResumeLayout(false); - this.GB_Randomizer.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Egg)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_TypePercent)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_StatDev)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_MonSprite)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.ComboBox CB_Species; - private System.Windows.Forms.Label L_Species_Precursor; - private System.Windows.Forms.TabControl TC_Pokemon; - private System.Windows.Forms.TabPage TP_General; - private System.Windows.Forms.TabPage TP_MoveTutors; - private System.Windows.Forms.MaskedTextBox TB_SPEEVs; - private System.Windows.Forms.MaskedTextBox TB_SPDEVs; - private System.Windows.Forms.MaskedTextBox TB_SPAEVs; - private System.Windows.Forms.MaskedTextBox TB_DEFEVs; - private System.Windows.Forms.MaskedTextBox TB_ATKEVs; - private System.Windows.Forms.MaskedTextBox TB_HPEVs; - private System.Windows.Forms.MaskedTextBox TB_BaseSPE; - private System.Windows.Forms.MaskedTextBox TB_BaseSPD; - private System.Windows.Forms.MaskedTextBox TB_BaseSPA; - private System.Windows.Forms.MaskedTextBox TB_BaseDEF; - private System.Windows.Forms.MaskedTextBox TB_BaseATK; - private System.Windows.Forms.MaskedTextBox TB_BaseHP; - private System.Windows.Forms.Label Label_HP; - private System.Windows.Forms.Label Label_ATK; - private System.Windows.Forms.Label Label_DEF; - private System.Windows.Forms.Label Label_SPA; - private System.Windows.Forms.Label Label_SPD; - private System.Windows.Forms.Label Label_SPE; - private System.Windows.Forms.Label L_EVYield; - private System.Windows.Forms.Label L_BaseStats; - private System.Windows.Forms.ComboBox CB_HeldItem1; - private System.Windows.Forms.Label L_HeldItem; - private System.Windows.Forms.ComboBox CB_Type2; - private System.Windows.Forms.ComboBox CB_Type1; - private System.Windows.Forms.Label L_Type; - private System.Windows.Forms.Label L_Item1; - private System.Windows.Forms.Label L_Item5; - private System.Windows.Forms.Label L_Item50; - private System.Windows.Forms.ComboBox CB_HeldItem3; - private System.Windows.Forms.ComboBox CB_HeldItem2; - private System.Windows.Forms.MaskedTextBox TB_Weight; - private System.Windows.Forms.MaskedTextBox TB_Height; - private System.Windows.Forms.Label L_Weight; - private System.Windows.Forms.Label L_Height; - private System.Windows.Forms.ComboBox CB_Ability3; - private System.Windows.Forms.ComboBox CB_Ability2; - private System.Windows.Forms.ComboBox CB_Ability1; - private System.Windows.Forms.ComboBox CB_EggGroup2; - private System.Windows.Forms.ComboBox CB_EggGroup1; - private System.Windows.Forms.Label L_EggGroup; - private System.Windows.Forms.Label L_Ability; - private System.Windows.Forms.MaskedTextBox TB_BaseExp; - private System.Windows.Forms.Label L_BaseEXP; - private System.Windows.Forms.MaskedTextBox TB_HatchCycles; - private System.Windows.Forms.Label L_HatchCycles; - private System.Windows.Forms.MaskedTextBox TB_Friendship; - private System.Windows.Forms.MaskedTextBox TB_Gender; - private System.Windows.Forms.Label L_Friendship; - private System.Windows.Forms.Label L_Gender; - private System.Windows.Forms.ComboBox CB_Color; - private System.Windows.Forms.ComboBox CB_EXPGroup; - private System.Windows.Forms.Label L_Color; - private System.Windows.Forms.Label L_EXPGrowth; - private System.Windows.Forms.Label L_CatchRate; - private System.Windows.Forms.Label L_WeightKG; - private System.Windows.Forms.Label L_HeightM; - private System.Windows.Forms.TextBox TB_FormeCount; - private System.Windows.Forms.Label L_FormesCount; - private System.Windows.Forms.TextBox TB_FormeSprite; - private System.Windows.Forms.Label L_FormeSprite; - private System.Windows.Forms.TextBox TB_Stage; - private System.Windows.Forms.Label L_Stage; - private System.Windows.Forms.MaskedTextBox TB_CatchRate; - private System.Windows.Forms.TextBox TB_RawColor; - private System.Windows.Forms.Label L_BST; - private System.Windows.Forms.TextBox TB_BST; - private System.Windows.Forms.CheckedListBox CLB_TMHM; - private System.Windows.Forms.CheckedListBox CLB_OrasTutors; - private System.Windows.Forms.CheckedListBox CLB_MoveTutors; - private System.Windows.Forms.Label L_ORASTutors; - private System.Windows.Forms.Label L_Special; - private System.Windows.Forms.Label L_TMHM; - private System.Windows.Forms.PictureBox PB_MonSprite; - private System.Windows.Forms.Button B_Randomize; - private System.Windows.Forms.Button B_Dump; - private System.Windows.Forms.CheckBox CHK_TM; - private System.Windows.Forms.CheckBox CHK_Ability; - private System.Windows.Forms.CheckBox CHK_Stats; - private System.Windows.Forms.NumericUpDown NUD_StatDev; - private System.Windows.Forms.Label L_StatDev; - private System.Windows.Forms.CheckBox CHK_Item; - private System.Windows.Forms.CheckBox CHK_Type; - private System.Windows.Forms.CheckBox CHK_HM; - private System.Windows.Forms.CheckBox CHK_ORASTutors; - private System.Windows.Forms.CheckBox CHK_Tutors; - private System.Windows.Forms.CheckBox CHK_WGuard; - private System.Windows.Forms.CheckBox CHK_CatchRate; - private System.Windows.Forms.CheckBox CHK_rSPE; - private System.Windows.Forms.CheckBox CHK_rSPD; - private System.Windows.Forms.CheckBox CHK_rSPA; - private System.Windows.Forms.CheckBox CHK_rDEF; - private System.Windows.Forms.CheckBox CHK_rATK; - private System.Windows.Forms.CheckBox CHK_rHP; - private System.Windows.Forms.CheckBox CHK_EggGroup; - private System.Windows.Forms.Button B_ModAll; - private System.Windows.Forms.CheckBox CHK_NoEV; - private System.Windows.Forms.TabPage TP_Randomizer; - private System.Windows.Forms.Label L_SingleType; - private System.Windows.Forms.NumericUpDown NUD_TypePercent; - private System.Windows.Forms.GroupBox GB_Randomizer; - private System.Windows.Forms.GroupBox GB_Modifier; - private System.Windows.Forms.CheckBox CHK_EXP; - private System.Windows.Forms.Label L_FinalXP; - private System.Windows.Forms.NumericUpDown NUD_EXP; - private System.Windows.Forms.CheckBox CHK_Growth; - private System.Windows.Forms.CheckBox CHK_QuickHatch; - private System.Windows.Forms.Label L_Same; - private System.Windows.Forms.NumericUpDown NUD_Egg; - private System.Windows.Forms.CheckBox CHK_CatchRateMod; - private System.Windows.Forms.Label L_CatchRateMod; - private System.Windows.Forms.NumericUpDown NUD_CatchRateMod; - } -} diff --git a/pk3DS/Subforms/Gen6/PersonalEditor6.cs b/pk3DS/Subforms/Gen6/PersonalEditor6.cs deleted file mode 100644 index a6812534ee..0000000000 --- a/pk3DS/Subforms/Gen6/PersonalEditor6.cs +++ /dev/null @@ -1,446 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Drawing; -using System.IO; -using System.Linq; -using System.Media; -using System.Text; -using System.Windows.Forms; -using pk3DS.Core.Structures.PersonalInfo; -using pk3DS.Core; -using pk3DS.Core.Randomizers; - -namespace pk3DS -{ - public partial class PersonalEditor6 : Form - { - public PersonalEditor6(byte[][] infiles) - { - InitializeComponent(); - helditem_boxes = new[] { CB_HeldItem1, CB_HeldItem2, CB_HeldItem3 }; - ability_boxes = new[] { CB_Ability1, CB_Ability2, CB_Ability3 }; - typing_boxes = new[] { CB_Type1, CB_Type2 }; - eggGroup_boxes = new[] { CB_EggGroup1, CB_EggGroup2 }; - byte_boxes = new[] { TB_BaseHP, TB_BaseATK, TB_BaseDEF, TB_BaseSPA, TB_BaseSPD, TB_BaseSPE, TB_Gender, TB_HatchCycles, TB_Friendship, TB_CatchRate }; - ev_boxes = new[] { TB_HPEVs, TB_ATKEVs, TB_DEFEVs, TB_SPEEVs, TB_SPAEVs, TB_SPDEVs }; - rstat_boxes = new[] { CHK_rHP, CHK_rATK, CHK_rDEF, CHK_rSPA, CHK_rSPD, CHK_rSPE }; - files = infiles; - - abilities = Main.Config.getText(TextName.AbilityNames); - moves = Main.Config.getText(TextName.MoveNames); - items = Main.Config.getText(TextName.ItemNames); - species = Main.Config.getText(TextName.SpeciesNames); - types = Main.Config.getText(TextName.Types); - species[0] = "---"; - abilities[0] = items[0] = moves[0] = ""; - string[][] AltForms = Main.Config.Personal.getFormList(species, Main.Config.MaxSpeciesID); - species = Main.Config.Personal.getPersonalEntryList(AltForms, species, Main.Config.MaxSpeciesID, out baseForms, out formVal); - - Setup(); //Turn string resources into arrays - CB_Species.SelectedIndex = 1; - } - #region Global Variables - private readonly string mode = Main.Config.ORAS ? "ORAS" : "XY"; - private readonly byte[][] files; - - private string[] items = { }; - private string[] moves = { }; - private string[] species = { }; - private readonly string[] abilities = { }; - - private readonly ComboBox[] helditem_boxes; - private readonly ComboBox[] ability_boxes; - private readonly ComboBox[] typing_boxes; - private readonly ComboBox[] eggGroup_boxes; - - private readonly MaskedTextBox[] byte_boxes; - private readonly MaskedTextBox[] ev_boxes; - private readonly CheckBox[] rstat_boxes; - - private readonly string[] types = { }; - - private readonly string[] eggGroups = { "---", "Monster", "Water 1", "Bug", "Flying", "Field", "Fairy", "Grass", "Human-Like", "Water 3", "Mineral", "Amorphous", "Water 2", "Ditto", "Dragon", "Undiscovered" }; - private readonly string[] EXPGroups = { "Medium-Fast", "Erratic", "Fluctuating", "Medium-Slow", "Fast", "Slow" }; - private readonly string[] colors = { "Red", "Blue", "Yellow", "Green", "Black", "Brown", "Purple", "Gray", "White", "Pink" }; - - /* - public string[] tutormoves = { "Frenzy Plant", "Blast Burn", "Hydro Cannon", "Grass Pledge", "Fire Pledge", "Water Pledge", "Draco Meteor", "Dragon's Ascent" }; - public string[] tutor1 = { "Bug Bite", "Covet", "Super Fang", "Dual Chop", "Signal Beam", "Iron Head", "Seed Bomb", "Drill Run", "Bounce", "Low Kick", "Gunk Shot", "Uproar", "Thunder Punch", "Fire Punch", "Ice Punch" }; - public string[] tutor2 = { "Magic Coat", "Block", "Earth Power", "Foul Play", "Gravity", "Magnet Rise", "Iron Defense", "Last Resort", "Superpower", "Electroweb", "Icy Wind", "Aqua Tail", "Dark Pulse", "Zen Headbutt", "Dragon Pulse", "Hyper Voice", "Iron Tail" }; - public string[] tutor3 = { "Bind", "Snore", "Knock Off", "Synthesis", "Heat Wave", "Role Play", "Heal Bell", "Tailwind", "Sky Attack", "Pain Split", "Giga Drain", "Drain Punch", "Air Cutter", "Focus Punch", "Shock Wave", "Water Pulse" }; - public string[] tutor4 = { "Gastro Acid", "Worry Seed", "Spite", "After You", "Helping Hand", "Trick", "Magic Room", "Wonder Room", "Endeavor", "Outrage", "Recycle", "Snatch", "Stealth Rock", "Sleep Talk", "Skill Swap" }; - */ - private readonly ushort[] tutormoves = { 520, 519, 518, 338, 307, 308, 434, 620 }; - private readonly ushort[] tutor1 = { 450, 343, 162, 530, 324, 442, 402, 529, 340, 067, 441, 253, 009, 007, 008 }; - private readonly ushort[] tutor2 = { 277, 335, 414, 492, 356, 393, 334, 387, 276, 527, 196, 401, 399, 428, 406, 304, 231 }; - private readonly ushort[] tutor3 = { 020, 173, 282, 235, 257, 272, 215, 366, 143, 220, 202, 409, 355, 264, 351, 352 }; - private readonly ushort[] tutor4 = { 380, 388, 180, 495, 270, 271, 478, 472, 283, 200, 278, 289, 446, 214, 285 }; - - private readonly int[] baseForms, formVal; - int entry = -1; - #endregion - private void Setup() - { - ushort[] TMs = new ushort[0]; - ushort[] HMs = new ushort[0]; - TMHMEditor6.getTMHMList(Main.Config.ORAS, ref TMs, ref HMs); - CLB_TMHM.Items.Clear(); - int hmcount = Main.Config.ORAS ? 7 : 5; - - if (TMs.Length == 0) // No ExeFS to grab TMs from. - { - for (int i = 1; i <= 100; i++) - CLB_TMHM.Items.Add($"TM{i:00}"); - for (int i = 1; i <= hmcount; i++) - CLB_TMHM.Items.Add($"HM{i:00}"); - } - else // Use TMHM moves. - { - for (int i = 1; i <= 100; i++) - CLB_TMHM.Items.Add($"TM{i:00} {moves[TMs[i - 1]]}"); - for (int i = 1; i <= hmcount; i++) - CLB_TMHM.Items.Add($"HM{i:00} {moves[HMs[i - 1]]}"); - } - for (int i = 0; i < tutormoves.Length - 1; i++) - CLB_MoveTutors.Items.Add(moves[tutormoves[i]]); - - if (mode == "XY") - { - string[] temp_items = new string[718]; // 719 items in XY - Array.Copy(items, temp_items, temp_items.Length); - items = temp_items; - - string[] temp_moves = new string[moves.Length - 4]; // 4 new moves added in ORAS - Array.Copy(moves, temp_moves, temp_moves.Length); - moves = temp_moves; - - string[] temp_species = new string[799]; // 799 species in XY - Array.Copy(species, temp_species, temp_species.Length); - species = temp_species; - - CLB_OrasTutors.Visible = - CLB_OrasTutors.Enabled = - L_ORASTutors.Visible = false; - CHK_ORASTutors.Visible = false; - } - else if (mode == "ORAS") - { - CLB_MoveTutors.Items.Add(moves[tutormoves[tutormoves.Length - 1]]); //Dragon's Ascent - foreach (ushort tm in tutor1) - CLB_OrasTutors.Items.Add(moves[tm]); - foreach (ushort tm in tutor2) - CLB_OrasTutors.Items.Add(moves[tm]); - foreach (ushort tm in tutor3) - CLB_OrasTutors.Items.Add(moves[tm]); - foreach (ushort tm in tutor4) - CLB_OrasTutors.Items.Add(moves[tm]); - - CLB_OrasTutors.Visible = - CLB_OrasTutors.Enabled = - L_ORASTutors.Visible = true; - } - for (int i = 0; i < species.Length; i++) - CB_Species.Items.Add($"{species[i]} - {i:000}"); - - foreach (ComboBox cb in helditem_boxes) - foreach (string it in items) - cb.Items.Add(it); - - foreach (ComboBox cb in ability_boxes) - foreach (string ab in abilities) - cb.Items.Add(ab); - - foreach (ComboBox cb in typing_boxes) - foreach (string ty in types) - cb.Items.Add(ty); - - foreach (ComboBox cb in eggGroup_boxes) - foreach (string eg in eggGroups) - cb.Items.Add(eg); - - foreach (string co in colors) - CB_Color.Items.Add(co); - - foreach (string eg in EXPGroups) - CB_EXPGroup.Items.Add(eg); - } - - private void CB_Species_SelectedIndexChanged(object sender, EventArgs e) - { - if (entry > -1 && !dumping) saveEntry(); - entry = CB_Species.SelectedIndex; - readEntry(); - } - private void ByteLimiter(object sender, EventArgs e) - { - if (!(sender is MaskedTextBox mtb)) - return; - int.TryParse(mtb.Text, out int val); - if (Array.IndexOf(byte_boxes, mtb) > -1 && val > 255) - mtb.Text = "255"; - else if (Array.IndexOf(ev_boxes, mtb) > -1 && val > 3) - mtb.Text = "3"; - } - - private PersonalInfo pkm; - private void readInfo() - { - pkm = Main.SpeciesStat[entry]; - - TB_BaseHP.Text = pkm.HP.ToString("000"); - TB_BaseATK.Text = pkm.ATK.ToString("000"); - TB_BaseDEF.Text = pkm.DEF.ToString("000"); - TB_BaseSPE.Text = pkm.SPE.ToString("000"); - TB_BaseSPA.Text = pkm.SPA.ToString("000"); - TB_BaseSPD.Text = pkm.SPD.ToString("000"); - TB_HPEVs.Text = pkm.EV_HP.ToString("0"); - TB_ATKEVs.Text = pkm.EV_ATK.ToString("0"); - TB_DEFEVs.Text = pkm.EV_DEF.ToString("0"); - TB_SPEEVs.Text = pkm.EV_SPE.ToString("0"); - TB_SPAEVs.Text = pkm.EV_SPA.ToString("0"); - TB_SPDEVs.Text = pkm.EV_SPD.ToString("0"); - - CB_Type1.SelectedIndex = pkm.Types[0]; - CB_Type2.SelectedIndex = pkm.Types[1]; - - TB_CatchRate.Text = pkm.CatchRate.ToString("000"); - TB_Stage.Text = pkm.EvoStage.ToString("0"); - - CB_HeldItem1.SelectedIndex = pkm.Items[0]; - CB_HeldItem2.SelectedIndex = pkm.Items[1]; - CB_HeldItem3.SelectedIndex = pkm.Items[2]; - - TB_Gender.Text = pkm.Gender.ToString("000"); - TB_HatchCycles.Text = pkm.HatchCycles.ToString("000"); - TB_Friendship.Text = pkm.BaseFriendship.ToString("000"); - - CB_EXPGroup.SelectedIndex = pkm.EXPGrowth; - - CB_EggGroup1.SelectedIndex = pkm.EggGroups[0]; - CB_EggGroup2.SelectedIndex = pkm.EggGroups[1]; - - CB_Ability1.SelectedIndex = pkm.Abilities[0]; - CB_Ability2.SelectedIndex = pkm.Abilities[1]; - CB_Ability3.SelectedIndex = pkm.Abilities[2]; - - TB_FormeCount.Text = pkm.FormeCount.ToString("000"); - TB_FormeSprite.Text = pkm.FormeSprite.ToString("000"); - - TB_RawColor.Text = pkm.Color.ToString("000"); - CB_Color.SelectedIndex = pkm.Color & 0xF; - - TB_BaseExp.Text = pkm.BaseEXP.ToString("000"); - TB_BST.Text = pkm.BST.ToString("000"); - - TB_Height.Text = ((decimal)pkm.Height / 100).ToString("00.00"); - TB_Weight.Text = ((decimal)pkm.Weight / 10).ToString("000.0"); - - for (int i = 0; i < CLB_TMHM.Items.Count; i++) - CLB_TMHM.SetItemChecked(i, pkm.TMHM[i]); // Bitflags for TMHM - - for (int i = 0; i < CLB_MoveTutors.Items.Count; i++) - CLB_MoveTutors.SetItemChecked(i, pkm.TypeTutors[i]); // Bitflags for Tutors - - if (pkm.SpecialTutors.Length > 0) - { - int[] len = { tutor1.Length, tutor2.Length, tutor3.Length, tutor4.Length }; - int ctr = 0; - for (int i = 0; i < len.Length; i++) - for (int b = 0; b < len[i]; b++) - CLB_OrasTutors.SetItemChecked(ctr++, pkm.SpecialTutors[i][b]); - } - } - private void readEntry() - { - readInfo(); - - if (dumping) return; - int s = baseForms[entry]; - int f = formVal[entry]; - if (entry <= Main.Config.MaxSpeciesID) - s = entry; - Bitmap rawImg = WinFormsUtil.getSprite(s, f, 0, 0, Main.Config); - Bitmap bigImg = new Bitmap(rawImg.Width * 2, rawImg.Height * 2); - for (int x = 0; x < rawImg.Width; x++) - { - for (int y = 0; y < rawImg.Height; y++) - { - Color c = rawImg.GetPixel(x, y); - bigImg.SetPixel(2 * x, 2 * y, c); - bigImg.SetPixel(2 * x + 1, 2 * y, c); - bigImg.SetPixel(2 * x, 2 * y + 1, c); - bigImg.SetPixel(2 * x + 1, 2 * y + 1, c); - } - } - PB_MonSprite.Image = bigImg; - } - private void savePersonal() - { - pkm.HP = Convert.ToByte(TB_BaseHP.Text); - pkm.ATK = Convert.ToByte(TB_BaseATK.Text); - pkm.DEF = Convert.ToByte(TB_BaseDEF.Text); - pkm.SPE = Convert.ToByte(TB_BaseSPE.Text); - pkm.SPA = Convert.ToByte(TB_BaseSPA.Text); - pkm.SPD = Convert.ToByte(TB_BaseSPD.Text); - - pkm.EV_HP = Convert.ToByte(TB_HPEVs.Text); - pkm.EV_ATK = Convert.ToByte(TB_ATKEVs.Text); - pkm.EV_DEF = Convert.ToByte(TB_DEFEVs.Text); - pkm.EV_SPE = Convert.ToByte(TB_SPEEVs.Text); - pkm.EV_SPA = Convert.ToByte(TB_SPAEVs.Text); - pkm.EV_SPD = Convert.ToByte(TB_SPDEVs.Text); - - pkm.CatchRate = Convert.ToByte(TB_CatchRate.Text); - pkm.EvoStage = Convert.ToByte(TB_Stage.Text); - - pkm.Types = new[] { CB_Type1.SelectedIndex, CB_Type2.SelectedIndex }; - pkm.Items = new[] { CB_HeldItem1.SelectedIndex, CB_HeldItem2.SelectedIndex, CB_HeldItem3.SelectedIndex }; - - pkm.Gender = Convert.ToByte(TB_Gender.Text); - pkm.HatchCycles = Convert.ToByte(TB_HatchCycles.Text); - pkm.BaseFriendship = Convert.ToByte(TB_Friendship.Text); - pkm.EXPGrowth = (byte) CB_EXPGroup.SelectedIndex; - pkm.EggGroups = new[] { CB_EggGroup1.SelectedIndex, CB_EggGroup2.SelectedIndex }; - pkm.Abilities = new[] { CB_Ability1.SelectedIndex, CB_Ability2.SelectedIndex, CB_Ability3.SelectedIndex }; - - pkm.FormeSprite = Convert.ToUInt16(TB_FormeSprite.Text); - pkm.FormeCount = Convert.ToByte(TB_FormeCount.Text); - pkm.Color = (byte) (Convert.ToByte(CB_Color.SelectedIndex) | (Convert.ToByte(TB_RawColor.Text) & 0xF0)); - pkm.BaseEXP = Convert.ToUInt16(TB_BaseExp.Text); - - decimal h; decimal.TryParse(TB_Height.Text, out h); - decimal w; decimal.TryParse(TB_Weight.Text, out w); - pkm.Height = (int)(h * 100); - pkm.Weight = (int)(w * 10); - - for (int i = 0; i < CLB_TMHM.Items.Count; i++) - pkm.TMHM[i] = CLB_TMHM.GetItemChecked(i); - - for (int t = 0; t < CLB_MoveTutors.Items.Count; t++) - pkm.TypeTutors[t] = CLB_MoveTutors.GetItemChecked(t); - - if (!Main.Config.ORAS) return; - - int[] len = {tutor1.Length, tutor2.Length, tutor3.Length, tutor4.Length}; - int ctr = 0; - for (int i = 0; i < 4; i++) - for (int t = 0; t < len[i]; t++) - pkm.SpecialTutors[i][t] = CLB_OrasTutors.GetItemChecked(ctr++); - } - private void saveEntry() - { - savePersonal(); - byte[] edits = pkm.Write(); - files[entry] = edits; - } - - private void B_Randomize_Click(object sender, EventArgs e) - { - saveEntry(); - - // input settings - var rnd = new PersonalRandomizer(Main.SpeciesStat, Main.Config) - { - TypeCount = CB_Type1.Items.Count, - ModifyCatchRate = CHK_CatchRate.Checked, - ModifyEggGroup = CHK_EggGroup.Checked, - ModifyStats = CHK_Stats.Checked, - StatsToRandomize = rstat_boxes.Select(g => g.Checked).ToArray(), - ModifyAbilities = CHK_Ability.Checked, - ModifyLearnsetTM = CHK_TM.Checked, - ModifyLearnsetHM = CHK_HM.Checked, - ModifyLearnsetTypeTutors = CHK_Tutors.Checked, - ModifyLearnsetMoveTutors = Main.Config.ORAS && CHK_ORASTutors.Checked, - ModifyTypes = CHK_Type.Checked, - ModifyHeldItems = CHK_Item.Checked, - SameTypeChance = NUD_TypePercent.Value, - SameEggGroupChance = NUD_Egg.Value, - StatDeviation = NUD_StatDev.Value, - AllowWonderGuard = CHK_WGuard.Checked - }; - rnd.Execute(); - Main.SpeciesStat.Select(z => z.Write()).ToArray().CopyTo(files, 0); - - readEntry(); - WinFormsUtil.Alert("All relevant Pokémon Personal Entries have been randomized!"); - } - private void B_ModifyAll(object sender, EventArgs e) - { - for (int i = 1; i < CB_Species.Items.Count; i++) - { - CB_Species.SelectedIndex = i; // Get new Species - - if (CHK_NoEV.Checked) - for (int z = 0; z < 6; z++) - ev_boxes[z].Text = 0.ToString(); - if (CHK_Growth.Checked) - CB_EXPGroup.SelectedIndex = 5; - if (CHK_EXP.Checked) - TB_BaseExp.Text = ((float)NUD_EXP.Value*(Convert.ToUInt16(TB_BaseExp.Text)/100f)).ToString("000"); - - if (CHK_QuickHatch.Checked) - TB_HatchCycles.Text = 1.ToString(); - if(CHK_CatchRateMod.Checked) - TB_CatchRate.Text = ((int)NUD_CatchRateMod.Value).ToString(); - } - CB_Species.SelectedIndex = 1; - WinFormsUtil.Alert("All species modified according to specification!"); - } - private bool dumping; - private void B_Dump_Click(object sender, EventArgs e) - { - if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Dump all Personal Entries to Text File?")) - return; - SaveFileDialog sfd = new SaveFileDialog { FileName = "Personal Entries.txt", Filter = "Text File|*.txt" }; - SystemSounds.Asterisk.Play(); - if (sfd.ShowDialog() != DialogResult.OK) - return; - - dumping = true; - List lines = new List(); - for (int i = 0; i < CB_Species.Items.Count; i++) - { - CB_Species.SelectedIndex = i; // Get new Species - lines.Add("======"); - lines.Add($"{entry} - {CB_Species.Text} (Stage: {TB_Stage.Text})"); - lines.Add("======"); - lines.Add($"Base Stats: {TB_BaseHP.Text}.{TB_BaseATK.Text}.{TB_BaseDEF.Text}.{TB_BaseSPA.Text}.{TB_BaseSPD.Text}.{TB_BaseSPE.Text} (BST: {pkm.BST})"); - lines.Add($"EV Yield: {TB_HPEVs.Text}.{TB_ATKEVs.Text}.{TB_DEFEVs.Text}.{TB_SPAEVs.Text}.{TB_SPDEVs.Text}.{TB_SPEEVs.Text}"); - lines.Add($"Abilities: {CB_Ability1.Text} (1) | {CB_Ability2.Text} (2) | {CB_Ability3.Text} (H)"); - lines.Add(string.Format(CB_Type1.SelectedIndex != CB_Type2.SelectedIndex - ? "Type: {0} / {1}" - : "Type: {0}", CB_Type1.Text, CB_Type2.Text)); - - lines.Add($"Item 1 (50%): {CB_HeldItem1.Text}"); - lines.Add($"Item 2 (5%): {CB_HeldItem2.Text}"); - lines.Add($"Item 3 (1%): {CB_HeldItem3.Text}"); - - lines.Add($"EXP Group: {CB_EXPGroup.Text}"); - lines.Add(string.Format(CB_EggGroup1.SelectedIndex != CB_EggGroup2.SelectedIndex - ? "Egg Group: {0} / {1}" - : "Egg Group: {0}", CB_EggGroup1.Text, CB_EggGroup2.Text)); - lines.Add($"Hatch Cycles: {TB_HatchCycles.Text}"); - lines.Add($"Height: {TB_Height.Text} m, Weight: {TB_Weight.Text} kg, Color: {CB_Color.Text}"); - lines.Add(""); - } - string path = sfd.FileName; - File.WriteAllLines(path, lines, Encoding.Unicode); - } - private void CHK_Stats_CheckedChanged(object sender, EventArgs e) - { - L_StatDev.Visible = NUD_StatDev.Visible = CHK_Stats.Checked; - CHK_rHP.Enabled = CHK_rATK.Enabled = CHK_rDEF.Enabled = CHK_rSPA.Enabled = CHK_rSPD.Enabled = CHK_rSPE.Enabled = CHK_Stats.Checked; - } - private void CHK_Ability_CheckedChanged(object sender, EventArgs e) - { - CHK_WGuard.Enabled = CHK_Ability.Checked; - if (!CHK_WGuard.Enabled) - CHK_WGuard.Checked = false; - } - - private void formClosing(object sender, FormClosingEventArgs e) - { - if (entry > -1) saveEntry(); - } - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/PickupEditor6.Designer.cs b/pk3DS/Subforms/Gen6/PickupEditor6.Designer.cs deleted file mode 100644 index 649a08718a..0000000000 --- a/pk3DS/Subforms/Gen6/PickupEditor6.Designer.cs +++ /dev/null @@ -1,180 +0,0 @@ -namespace pk3DS -{ - partial class PickupEditor6 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.dgvCommon = new System.Windows.Forms.DataGridView(); - this.L_TM = new System.Windows.Forms.Label(); - this.dgvRare = new System.Windows.Forms.DataGridView(); - this.L_HM = new System.Windows.Forms.Label(); - this.label1 = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); - this.B_Save = new System.Windows.Forms.Button(); - this.B_Cancel = new System.Windows.Forms.Button(); - this.B_Randomize = new System.Windows.Forms.Button(); - ((System.ComponentModel.ISupportInitialize)(this.dgvCommon)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.dgvRare)).BeginInit(); - this.SuspendLayout(); - // - // dgvCommon - // - this.dgvCommon.AllowUserToAddRows = false; - this.dgvCommon.AllowUserToDeleteRows = false; - this.dgvCommon.AllowUserToResizeColumns = false; - this.dgvCommon.AllowUserToResizeRows = false; - this.dgvCommon.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left))); - this.dgvCommon.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgvCommon.Location = new System.Drawing.Point(9, 25); - this.dgvCommon.Name = "dgvCommon"; - this.dgvCommon.Size = new System.Drawing.Size(240, 300); - this.dgvCommon.TabIndex = 1; - // - // L_TM - // - this.L_TM.AutoSize = true; - this.L_TM.Location = new System.Drawing.Point(9, 9); - this.L_TM.Name = "L_TM"; - this.L_TM.Size = new System.Drawing.Size(97, 13); - this.L_TM.TabIndex = 2; - this.L_TM.Text = "Common (30%-4%):"; - // - // dgvRare - // - this.dgvRare.AllowUserToAddRows = false; - this.dgvRare.AllowUserToDeleteRows = false; - this.dgvRare.AllowUserToResizeColumns = false; - this.dgvRare.AllowUserToResizeRows = false; - this.dgvRare.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left))); - this.dgvRare.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgvRare.Location = new System.Drawing.Point(256, 25); - this.dgvRare.Name = "dgvRare"; - this.dgvRare.Size = new System.Drawing.Size(240, 300); - this.dgvRare.TabIndex = 3; - // - // L_HM - // - this.L_HM.AutoSize = true; - this.L_HM.Location = new System.Drawing.Point(253, 9); - this.L_HM.Name = "L_HM"; - this.L_HM.Size = new System.Drawing.Size(56, 13); - this.L_HM.TabIndex = 4; - this.L_HM.Text = "Rare (1%):"; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(112, 9); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(100, 13); - this.label1.TabIndex = 5; - this.label1.Text = "(level-1)/10, take 9."; - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(315, 9); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(100, 13); - this.label2.TabIndex = 6; - this.label2.Text = "(level-1)/10, take 2."; - // - // B_Save - // - this.B_Save.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.B_Save.Location = new System.Drawing.Point(421, 331); - this.B_Save.Name = "B_Save"; - this.B_Save.Size = new System.Drawing.Size(75, 23); - this.B_Save.TabIndex = 7; - this.B_Save.Text = "Save"; - this.B_Save.UseVisualStyleBackColor = true; - this.B_Save.Click += new System.EventHandler(this.B_Save_Click); - // - // B_Cancel - // - this.B_Cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.B_Cancel.Location = new System.Drawing.Point(340, 331); - this.B_Cancel.Name = "B_Cancel"; - this.B_Cancel.Size = new System.Drawing.Size(75, 23); - this.B_Cancel.TabIndex = 8; - this.B_Cancel.Text = "Cancel"; - this.B_Cancel.UseVisualStyleBackColor = true; - this.B_Cancel.Click += new System.EventHandler(this.B_Cancel_Click); - // - // B_Randomize - // - this.B_Randomize.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.B_Randomize.Location = new System.Drawing.Point(9, 331); - this.B_Randomize.Name = "B_Randomize"; - this.B_Randomize.Size = new System.Drawing.Size(75, 23); - this.B_Randomize.TabIndex = 9; - this.B_Randomize.Text = "Randomize"; - this.B_Randomize.UseVisualStyleBackColor = true; - this.B_Randomize.Click += new System.EventHandler(this.B_Randomize_Click); - // - // Pickup - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(504, 361); - this.Controls.Add(this.B_Randomize); - this.Controls.Add(this.B_Cancel); - this.Controls.Add(this.B_Save); - this.Controls.Add(this.label2); - this.Controls.Add(this.label1); - this.Controls.Add(this.L_HM); - this.Controls.Add(this.dgvRare); - this.Controls.Add(this.L_TM); - this.Controls.Add(this.dgvCommon); - this.MaximizeBox = false; - this.MaximumSize = new System.Drawing.Size(520, 670); - this.MinimumSize = new System.Drawing.Size(520, 400); - this.Name = "PickupEditor6"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Pickup Editor"; - ((System.ComponentModel.ISupportInitialize)(this.dgvCommon)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.dgvRare)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.DataGridView dgvCommon; - private System.Windows.Forms.Label L_TM; - private System.Windows.Forms.DataGridView dgvRare; - private System.Windows.Forms.Label L_HM; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Button B_Save; - private System.Windows.Forms.Button B_Cancel; - private System.Windows.Forms.Button B_Randomize; - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/PickupEditor6.cs b/pk3DS/Subforms/Gen6/PickupEditor6.cs deleted file mode 100644 index 2f676ca8f5..0000000000 --- a/pk3DS/Subforms/Gen6/PickupEditor6.cs +++ /dev/null @@ -1,138 +0,0 @@ -using pk3DS.Core; -using System; -using System.Collections.Generic; -using System.IO; -using System.Windows.Forms; - -namespace pk3DS -{ - public partial class PickupEditor6 : Form - { - public PickupEditor6() - { - InitializeComponent(); - if (Main.ExeFSPath == null) { WinFormsUtil.Alert("No exeFS code to load."); Close(); } - string[] files = Directory.GetFiles(Main.ExeFSPath); - if (!File.Exists(files[0]) || !Path.GetFileNameWithoutExtension(files[0]).Contains("code")) { WinFormsUtil.Alert("No .code.bin detected."); Close(); } - data = File.ReadAllBytes(files[0]); - if (data.Length % 0x200 != 0) { WinFormsUtil.Alert(".code.bin not decompressed. Aborting."); Close(); } - offset = Util.IndexOfBytes(data, new byte[] { 0x1E, 0x28, 0x32, 0x3C, 0x46, 0x50, 0x5A, 0x5E, 0x62, 0x05, 0x0A, 0x0F, 0x14, 0x19, 0x1E, 0x23, 0x28, 0x2D, 0x32 }, 0x400000, 0) - 0x3A; - codebin = files[0]; - itemlist[0] = ""; - setupDGV(); - getList(); - } - - private readonly string codebin; - private readonly string[] itemlist = Main.Config.getText(TextName.ItemNames); - private readonly int offset = Main.Config.ORAS ? 0x004872FC : 0x004455A8; - private readonly byte[] data; - private int dataoffset; - private void getDataOffset() - { - dataoffset = offset; // reset - } - private void setupDGV() - { - dgvCommon.Columns.Clear(); dgvRare.Columns.Clear(); - DataGridViewColumn dgvIndex = new DataGridViewTextBoxColumn(); - { - dgvIndex.HeaderText = "Index"; - dgvIndex.DisplayIndex = 0; - dgvIndex.Width = 45; - dgvIndex.ReadOnly = true; - dgvIndex.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; - } - DataGridViewComboBoxColumn dgvMove = new DataGridViewComboBoxColumn(); - { - dgvMove.HeaderText = "Item"; - dgvMove.DisplayIndex = 1; - foreach (string t in itemlist) - dgvMove.Items.Add(t); // add only the Names - - dgvMove.Width = 133; - dgvMove.FlatStyle = FlatStyle.Flat; - } - dgvCommon.Columns.Add(dgvIndex); - dgvCommon.Columns.Add(dgvMove); - dgvRare.Columns.Add((DataGridViewColumn)dgvIndex.Clone()); - dgvRare.Columns.Add((DataGridViewColumn)dgvMove.Clone()); - } - - private List common = new List(); - private List rare = new List(); - - private void getList() - { - common = new List(); - rare = new List(); - dgvCommon.Rows.Clear(); - - getDataOffset(); - for (int i = 0; i < 0x12; i++) // 0x12 Common - common.Add(BitConverter.ToUInt16(data, dataoffset + 2 * i)); - for (int i = 0x12; i < 0x12 + 0xB; i++) // 0xB Rare - rare.Add(BitConverter.ToUInt16(data, dataoffset + 2 * i)); - - ushort[] clist = common.ToArray(); - ushort[] rlist = rare.ToArray(); - for (int i = 0; i < clist.Length; i++) - { dgvCommon.Rows.Add(); dgvCommon.Rows[i].Cells[0].Value = i.ToString(); dgvCommon.Rows[i].Cells[1].Value = itemlist[clist[i]]; } - for (int i = 0; i < rlist.Length; i++) - { dgvRare.Rows.Add(); dgvRare.Rows[i].Cells[0].Value = i.ToString(); dgvRare.Rows[i].Cells[1].Value = itemlist[rlist[i]]; } - - } - private void setList() - { - common = new List(); - rare = new List(); - for (int i = 0; i < 0x12; i++) // 0x12 Common - common.Add((ushort)Array.IndexOf(itemlist, dgvCommon.Rows[i].Cells[1].Value)); - - for (int i = 0x12; i < 0x12 + 0xB; i++) // 0xB Rare - rare.Add((ushort)Array.IndexOf(itemlist, dgvRare.Rows[i - 0x12].Cells[1].Value)); - - ushort[] clist = common.ToArray(); - ushort[] rlist = rare.ToArray(); - - for (int i = 0; i < 0x12; i++) - Array.Copy(BitConverter.GetBytes(clist[i]), 0, data, offset + 2 * i, 2); - for (int i = 0x12; i < 0x12 + 0xB; i++) - Array.Copy(BitConverter.GetBytes(rlist[i - 0x12]), 0, data, offset + 2 * i, 2); - } - - private void B_Save_Click(object sender, EventArgs e) - { - setList(); - File.WriteAllBytes(codebin, data); - Close(); - } - private void B_Cancel_Click(object sender, EventArgs e) - { - Close(); - } - private void B_Randomize_Click(object sender, EventArgs e) - { - if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Randomize pickup lists?")) - return; - - int[] validItems = Randomizer.getRandomItemList(); - - int ctr = 0; - Util.Shuffle(validItems); - for (int r = 0; r < dgvCommon.Rows.Count; r++) - { - dgvCommon.Rows[r].Cells[1].Value = itemlist[validItems[ctr++]]; - if (ctr <= validItems.Length) continue; - Util.Shuffle(validItems); ctr = 0; - } - for (int r = 0; r < dgvRare.Rows.Count; r++) - { - dgvRare.Rows[r].Cells[1].Value = itemlist[validItems[ctr++]]; - if (ctr <= validItems.Length) continue; - Util.Shuffle(validItems); ctr = 0; - } - WinFormsUtil.Alert("Randomized!"); - } - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/RSTE.Designer.cs b/pk3DS/Subforms/Gen6/RSTE.Designer.cs deleted file mode 100644 index f82f0fe7f6..0000000000 --- a/pk3DS/Subforms/Gen6/RSTE.Designer.cs +++ /dev/null @@ -1,2415 +0,0 @@ -namespace pk3DS -{ - partial class RSTE - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.B_Dump = new System.Windows.Forms.Button(); - this.L_TrainerID = new System.Windows.Forms.Label(); - this.CB_TrainerID = new System.Windows.Forms.ComboBox(); - this.tabControl1 = new System.Windows.Forms.TabControl(); - this.tabPage1 = new System.Windows.Forms.TabPage(); - this.checkBox_Healer = new System.Windows.Forms.CheckBox(); - this.L_TPrize = new System.Windows.Forms.Label(); - this.CB_Prize = new System.Windows.Forms.ComboBox(); - this.L_AI = new System.Windows.Forms.Label(); - this.CB_AI = new System.Windows.Forms.ComboBox(); - this.L_Money = new System.Windows.Forms.Label(); - this.CB_Money = new System.Windows.Forms.ComboBox(); - this.L_Battle_Type = new System.Windows.Forms.Label(); - this.CB_Battle_Type = new System.Windows.Forms.ComboBox(); - this.L_Trainer_Class = new System.Windows.Forms.Label(); - this.CB_Trainer_Class = new System.Windows.Forms.ComboBox(); - this.checkBox_Moves = new System.Windows.Forms.CheckBox(); - this.checkBox_Item = new System.Windows.Forms.CheckBox(); - this.L_Item_4 = new System.Windows.Forms.Label(); - this.CB_Item_4 = new System.Windows.Forms.ComboBox(); - this.L_Item_3 = new System.Windows.Forms.Label(); - this.CB_Item_3 = new System.Windows.Forms.ComboBox(); - this.L_Item_2 = new System.Windows.Forms.Label(); - this.CB_Item_2 = new System.Windows.Forms.ComboBox(); - this.L_Item_1 = new System.Windows.Forms.Label(); - this.CB_Item_1 = new System.Windows.Forms.ComboBox(); - this.L_numPokemon = new System.Windows.Forms.Label(); - this.CB_numPokemon = new System.Windows.Forms.ComboBox(); - this.tabPage2 = new System.Windows.Forms.TabPage(); - this.L_Pokemon_1_Form = new System.Windows.Forms.Label(); - this.CB_Pokemon_1_Ability = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_1_Gender = new System.Windows.Forms.Label(); - this.CB_Pokemon_1_Gender = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_1_Ability = new System.Windows.Forms.Label(); - this.CB_Pokemon_1_Form = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_1_IVs = new System.Windows.Forms.Label(); - this.CB_Pokemon_1_IVs = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_1_Move_4 = new System.Windows.Forms.Label(); - this.CB_Pokemon_1_Move_4 = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_1_Move_3 = new System.Windows.Forms.Label(); - this.CB_Pokemon_1_Move_3 = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_1_Move_2 = new System.Windows.Forms.Label(); - this.CB_Pokemon_1_Move_2 = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_1_Move_1 = new System.Windows.Forms.Label(); - this.CB_Pokemon_1_Move_1 = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_1_Item = new System.Windows.Forms.Label(); - this.CB_Pokemon_1_Item = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_1_Level = new System.Windows.Forms.Label(); - this.CB_Pokemon_1_Level = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_1_Pokemon = new System.Windows.Forms.Label(); - this.CB_Pokemon_1_Pokemon = new System.Windows.Forms.ComboBox(); - this.tabPage3 = new System.Windows.Forms.TabPage(); - this.L_Pokemon_2_Gender = new System.Windows.Forms.Label(); - this.CB_Pokemon_2_Gender = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_2_Ability = new System.Windows.Forms.Label(); - this.CB_Pokemon_2_Ability = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_2_Form = new System.Windows.Forms.Label(); - this.CB_Pokemon_2_Form = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_2_IVs = new System.Windows.Forms.Label(); - this.CB_Pokemon_2_IVs = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_2_Move_4 = new System.Windows.Forms.Label(); - this.CB_Pokemon_2_Move_4 = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_2_Move_3 = new System.Windows.Forms.Label(); - this.CB_Pokemon_2_Move_3 = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_2_Move_2 = new System.Windows.Forms.Label(); - this.CB_Pokemon_2_Move_2 = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_2_Move_1 = new System.Windows.Forms.Label(); - this.CB_Pokemon_2_Move_1 = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_2_Item = new System.Windows.Forms.Label(); - this.CB_Pokemon_2_Item = new System.Windows.Forms.ComboBox(); - this.L_CB_Pokemon_2_Level = new System.Windows.Forms.Label(); - this.CB_Pokemon_2_Level = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_2_Pokemon = new System.Windows.Forms.Label(); - this.CB_Pokemon_2_Pokemon = new System.Windows.Forms.ComboBox(); - this.tabPage4 = new System.Windows.Forms.TabPage(); - this.L_Pokemon_3_Gender = new System.Windows.Forms.Label(); - this.CB_Pokemon_3_Gender = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_3_Ability = new System.Windows.Forms.Label(); - this.CB_Pokemon_3_Ability = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_3_Form = new System.Windows.Forms.Label(); - this.CB_Pokemon_3_Form = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_3_IVs = new System.Windows.Forms.Label(); - this.CB_Pokemon_3_IVs = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_3_Move_4 = new System.Windows.Forms.Label(); - this.CB_Pokemon_3_Move_4 = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_3_Move_3 = new System.Windows.Forms.Label(); - this.CB_Pokemon_3_Move_3 = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_3_Move_2 = new System.Windows.Forms.Label(); - this.CB_Pokemon_3_Move_2 = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_3_Move_1 = new System.Windows.Forms.Label(); - this.CB_Pokemon_3_Move_1 = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_3_Item = new System.Windows.Forms.Label(); - this.CB_Pokemon_3_Item = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_3_Level = new System.Windows.Forms.Label(); - this.CB_Pokemon_3_Level = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_3_Pokemon = new System.Windows.Forms.Label(); - this.CB_Pokemon_3_Pokemon = new System.Windows.Forms.ComboBox(); - this.tabPage5 = new System.Windows.Forms.TabPage(); - this.L_Pokemon_4_Gender = new System.Windows.Forms.Label(); - this.CB_Pokemon_4_Gender = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_4_Ability = new System.Windows.Forms.Label(); - this.CB_Pokemon_4_Ability = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_4_Form = new System.Windows.Forms.Label(); - this.CB_Pokemon_4_Form = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_4_IVs = new System.Windows.Forms.Label(); - this.CB_Pokemon_4_IVs = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_4_Move_4 = new System.Windows.Forms.Label(); - this.CB_Pokemon_4_Move_4 = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_4_Move_3 = new System.Windows.Forms.Label(); - this.CB_Pokemon_4_Move_3 = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_4_Move_2 = new System.Windows.Forms.Label(); - this.CB_Pokemon_4_Move_2 = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_4_Move_1 = new System.Windows.Forms.Label(); - this.CB_Pokemon_4_Move_1 = new System.Windows.Forms.ComboBox(); - this.L_CB_Pokemon_4_Item = new System.Windows.Forms.Label(); - this.CB_Pokemon_4_Item = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_4_Level = new System.Windows.Forms.Label(); - this.CB_Pokemon_4_Level = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_4_Pokemon = new System.Windows.Forms.Label(); - this.CB_Pokemon_4_Pokemon = new System.Windows.Forms.ComboBox(); - this.tabPage6 = new System.Windows.Forms.TabPage(); - this.L_Pokemon_5_Gender = new System.Windows.Forms.Label(); - this.CB_Pokemon_5_Gender = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_5_Ability = new System.Windows.Forms.Label(); - this.CB_Pokemon_5_Ability = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_5_Form = new System.Windows.Forms.Label(); - this.CB_Pokemon_5_Form = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_5_IVs = new System.Windows.Forms.Label(); - this.CB_Pokemon_5_IVs = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_5_Move_4 = new System.Windows.Forms.Label(); - this.CB_Pokemon_5_Move_4 = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_5_Move_3 = new System.Windows.Forms.Label(); - this.CB_Pokemon_5_Move_3 = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_5_Move_2 = new System.Windows.Forms.Label(); - this.CB_Pokemon_5_Move_2 = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_5_Move_1 = new System.Windows.Forms.Label(); - this.CB_Pokemon_5_Move_1 = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_5_Item = new System.Windows.Forms.Label(); - this.CB_Pokemon_5_Item = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_5_Level = new System.Windows.Forms.Label(); - this.CB_Pokemon_5_Level = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_5_Pokemon = new System.Windows.Forms.Label(); - this.CB_Pokemon_5_Pokemon = new System.Windows.Forms.ComboBox(); - this.tabPage7 = new System.Windows.Forms.TabPage(); - this.L_Pokemon_6_Gender = new System.Windows.Forms.Label(); - this.CB_Pokemon_6_Gender = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_6_Ability = new System.Windows.Forms.Label(); - this.CB_Pokemon_6_Ability = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_6_Form = new System.Windows.Forms.Label(); - this.CB_Pokemon_6_Form = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_6_IVs = new System.Windows.Forms.Label(); - this.CB_Pokemon_6_IVs = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_6_Move_4 = new System.Windows.Forms.Label(); - this.CB_Pokemon_6_Move_4 = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_6_Move_3 = new System.Windows.Forms.Label(); - this.CB_Pokemon_6_Move_3 = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_6_Move_2 = new System.Windows.Forms.Label(); - this.CB_Pokemon_6_Move_2 = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_6_Move_1 = new System.Windows.Forms.Label(); - this.CB_Pokemon_6_Move_1 = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_6_Item = new System.Windows.Forms.Label(); - this.CB_Pokemon_6_Item = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_6_Level = new System.Windows.Forms.Label(); - this.CB_Pokemon_6_Level = new System.Windows.Forms.ComboBox(); - this.L_Pokemon_6_Pokemon = new System.Windows.Forms.Label(); - this.CB_Pokemon_6_Pokemon = new System.Windows.Forms.ComboBox(); - this.B_Randomize = new System.Windows.Forms.Button(); - this.TB_Text1 = new System.Windows.Forms.TextBox(); - this.L_Text1 = new System.Windows.Forms.Label(); - this.PB_Team6 = new System.Windows.Forms.PictureBox(); - this.PB_Team5 = new System.Windows.Forms.PictureBox(); - this.PB_Team4 = new System.Windows.Forms.PictureBox(); - this.PB_Team3 = new System.Windows.Forms.PictureBox(); - this.PB_Team2 = new System.Windows.Forms.PictureBox(); - this.PB_Team1 = new System.Windows.Forms.PictureBox(); - this.label4 = new System.Windows.Forms.Label(); - this.L_Text2 = new System.Windows.Forms.Label(); - this.TB_Text2 = new System.Windows.Forms.TextBox(); - this.tabControl1.SuspendLayout(); - this.tabPage1.SuspendLayout(); - this.tabPage2.SuspendLayout(); - this.tabPage3.SuspendLayout(); - this.tabPage4.SuspendLayout(); - this.tabPage5.SuspendLayout(); - this.tabPage6.SuspendLayout(); - this.tabPage7.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.PB_Team6)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_Team5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_Team4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_Team3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_Team2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_Team1)).BeginInit(); - this.SuspendLayout(); - // - // B_Dump - // - this.B_Dump.Location = new System.Drawing.Point(483, 4); - this.B_Dump.Name = "B_Dump"; - this.B_Dump.Size = new System.Drawing.Size(93, 23); - this.B_Dump.TabIndex = 67; - this.B_Dump.Text = "Dump to .TXT"; - this.B_Dump.UseVisualStyleBackColor = true; - this.B_Dump.Click += new System.EventHandler(this.B_Dump_Click); - // - // L_TrainerID - // - this.L_TrainerID.AutoSize = true; - this.L_TrainerID.Location = new System.Drawing.Point(12, 9); - this.L_TrainerID.Name = "L_TrainerID"; - this.L_TrainerID.Size = new System.Drawing.Size(57, 13); - this.L_TrainerID.TabIndex = 63; - this.L_TrainerID.Text = "Trainer ID:"; - // - // CB_TrainerID - // - this.CB_TrainerID.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_TrainerID.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_TrainerID.FormattingEnabled = true; - this.CB_TrainerID.Location = new System.Drawing.Point(75, 6); - this.CB_TrainerID.Name = "CB_TrainerID"; - this.CB_TrainerID.Size = new System.Drawing.Size(134, 21); - this.CB_TrainerID.TabIndex = 62; - this.CB_TrainerID.SelectedIndexChanged += new System.EventHandler(this.changeTrainerIndex); - // - // tabControl1 - // - this.tabControl1.Controls.Add(this.tabPage1); - this.tabControl1.Controls.Add(this.tabPage2); - this.tabControl1.Controls.Add(this.tabPage3); - this.tabControl1.Controls.Add(this.tabPage4); - this.tabControl1.Controls.Add(this.tabPage5); - this.tabControl1.Controls.Add(this.tabPage6); - this.tabControl1.Controls.Add(this.tabPage7); - this.tabControl1.Location = new System.Drawing.Point(12, 33); - this.tabControl1.Name = "tabControl1"; - this.tabControl1.SelectedIndex = 0; - this.tabControl1.Size = new System.Drawing.Size(565, 153); - this.tabControl1.TabIndex = 61; - // - // tabPage1 - // - this.tabPage1.BackColor = System.Drawing.SystemColors.Control; - this.tabPage1.Controls.Add(this.checkBox_Healer); - this.tabPage1.Controls.Add(this.L_TPrize); - this.tabPage1.Controls.Add(this.CB_Prize); - this.tabPage1.Controls.Add(this.L_AI); - this.tabPage1.Controls.Add(this.CB_AI); - this.tabPage1.Controls.Add(this.L_Money); - this.tabPage1.Controls.Add(this.CB_Money); - this.tabPage1.Controls.Add(this.L_Battle_Type); - this.tabPage1.Controls.Add(this.CB_Battle_Type); - this.tabPage1.Controls.Add(this.L_Trainer_Class); - this.tabPage1.Controls.Add(this.CB_Trainer_Class); - this.tabPage1.Controls.Add(this.checkBox_Moves); - this.tabPage1.Controls.Add(this.checkBox_Item); - this.tabPage1.Controls.Add(this.L_Item_4); - this.tabPage1.Controls.Add(this.CB_Item_4); - this.tabPage1.Controls.Add(this.L_Item_3); - this.tabPage1.Controls.Add(this.CB_Item_3); - this.tabPage1.Controls.Add(this.L_Item_2); - this.tabPage1.Controls.Add(this.CB_Item_2); - this.tabPage1.Controls.Add(this.L_Item_1); - this.tabPage1.Controls.Add(this.CB_Item_1); - this.tabPage1.Controls.Add(this.L_numPokemon); - this.tabPage1.Controls.Add(this.CB_numPokemon); - this.tabPage1.Location = new System.Drawing.Point(4, 22); - this.tabPage1.Name = "tabPage1"; - this.tabPage1.Padding = new System.Windows.Forms.Padding(3); - this.tabPage1.Size = new System.Drawing.Size(557, 127); - this.tabPage1.TabIndex = 0; - this.tabPage1.Text = "Trainer Info"; - // - // checkBox_Healer - // - this.checkBox_Healer.AutoSize = true; - this.checkBox_Healer.Location = new System.Drawing.Point(7, 35); - this.checkBox_Healer.Name = "checkBox_Healer"; - this.checkBox_Healer.Size = new System.Drawing.Size(57, 17); - this.checkBox_Healer.TabIndex = 58; - this.checkBox_Healer.Text = "Healer"; - this.checkBox_Healer.UseVisualStyleBackColor = true; - // - // L_TPrize - // - this.L_TPrize.AutoSize = true; - this.L_TPrize.Location = new System.Drawing.Point(454, 3); - this.L_TPrize.Name = "L_TPrize"; - this.L_TPrize.Size = new System.Drawing.Size(33, 13); - this.L_TPrize.TabIndex = 57; - this.L_TPrize.Text = "Prize:"; - // - // CB_Prize - // - this.CB_Prize.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Prize.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Prize.FormattingEnabled = true; - this.CB_Prize.Location = new System.Drawing.Point(457, 19); - this.CB_Prize.Name = "CB_Prize"; - this.CB_Prize.Size = new System.Drawing.Size(93, 21); - this.CB_Prize.TabIndex = 56; - // - // L_AI - // - this.L_AI.AutoSize = true; - this.L_AI.Location = new System.Drawing.Point(11, 103); - this.L_AI.Name = "L_AI"; - this.L_AI.Size = new System.Drawing.Size(49, 13); - this.L_AI.TabIndex = 55; - this.L_AI.Text = "AI Level:"; - // - // CB_AI - // - this.CB_AI.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_AI.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_AI.FormattingEnabled = true; - this.CB_AI.Location = new System.Drawing.Point(66, 100); - this.CB_AI.Name = "CB_AI"; - this.CB_AI.Size = new System.Drawing.Size(74, 21); - this.CB_AI.TabIndex = 54; - // - // L_Money - // - this.L_Money.AutoSize = true; - this.L_Money.Location = new System.Drawing.Point(146, 103); - this.L_Money.Name = "L_Money"; - this.L_Money.Size = new System.Drawing.Size(42, 13); - this.L_Money.TabIndex = 53; - this.L_Money.Text = "Money:"; - // - // CB_Money - // - this.CB_Money.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Money.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Money.FormattingEnabled = true; - this.CB_Money.Location = new System.Drawing.Point(195, 100); - this.CB_Money.Name = "CB_Money"; - this.CB_Money.Size = new System.Drawing.Size(77, 21); - this.CB_Money.TabIndex = 52; - // - // L_Battle_Type - // - this.L_Battle_Type.AutoSize = true; - this.L_Battle_Type.Location = new System.Drawing.Point(86, 76); - this.L_Battle_Type.Name = "L_Battle_Type"; - this.L_Battle_Type.Size = new System.Drawing.Size(64, 13); - this.L_Battle_Type.TabIndex = 51; - this.L_Battle_Type.Text = "Battle Type:"; - // - // CB_Battle_Type - // - this.CB_Battle_Type.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Battle_Type.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Battle_Type.FormattingEnabled = true; - this.CB_Battle_Type.Items.AddRange(new object[] { - "Single Battle", - "Double Battle", - "Triple Battle", - "Rotation Battle", - "Horde Battle"}); - this.CB_Battle_Type.Location = new System.Drawing.Point(156, 73); - this.CB_Battle_Type.Name = "CB_Battle_Type"; - this.CB_Battle_Type.Size = new System.Drawing.Size(116, 21); - this.CB_Battle_Type.TabIndex = 50; - // - // L_Trainer_Class - // - this.L_Trainer_Class.AutoSize = true; - this.L_Trainer_Class.Location = new System.Drawing.Point(79, 49); - this.L_Trainer_Class.Name = "L_Trainer_Class"; - this.L_Trainer_Class.Size = new System.Drawing.Size(71, 13); - this.L_Trainer_Class.TabIndex = 49; - this.L_Trainer_Class.Text = "Trainer Class:"; - // - // CB_Trainer_Class - // - this.CB_Trainer_Class.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Trainer_Class.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Trainer_Class.DropDownWidth = 165; - this.CB_Trainer_Class.FormattingEnabled = true; - this.CB_Trainer_Class.Location = new System.Drawing.Point(156, 46); - this.CB_Trainer_Class.Name = "CB_Trainer_Class"; - this.CB_Trainer_Class.Size = new System.Drawing.Size(116, 21); - this.CB_Trainer_Class.TabIndex = 48; - // - // checkBox_Moves - // - this.checkBox_Moves.AutoSize = true; - this.checkBox_Moves.Location = new System.Drawing.Point(7, 58); - this.checkBox_Moves.Name = "checkBox_Moves"; - this.checkBox_Moves.Size = new System.Drawing.Size(58, 17); - this.checkBox_Moves.TabIndex = 40; - this.checkBox_Moves.Text = "Moves"; - this.checkBox_Moves.UseVisualStyleBackColor = true; - this.checkBox_Moves.CheckedChanged += new System.EventHandler(this.changeTrainerType); - // - // checkBox_Item - // - this.checkBox_Item.AutoSize = true; - this.checkBox_Item.Location = new System.Drawing.Point(7, 81); - this.checkBox_Item.Name = "checkBox_Item"; - this.checkBox_Item.Size = new System.Drawing.Size(51, 17); - this.checkBox_Item.TabIndex = 39; - this.checkBox_Item.Text = "Items"; - this.checkBox_Item.UseVisualStyleBackColor = true; - this.checkBox_Item.CheckedChanged += new System.EventHandler(this.changeTrainerType); - // - // L_Item_4 - // - this.L_Item_4.AutoSize = true; - this.L_Item_4.Location = new System.Drawing.Point(278, 103); - this.L_Item_4.Name = "L_Item_4"; - this.L_Item_4.Size = new System.Drawing.Size(39, 13); - this.L_Item_4.TabIndex = 34; - this.L_Item_4.Text = "Item 4:"; - // - // CB_Item_4 - // - this.CB_Item_4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Item_4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Item_4.FormattingEnabled = true; - this.CB_Item_4.Location = new System.Drawing.Point(330, 100); - this.CB_Item_4.Name = "CB_Item_4"; - this.CB_Item_4.Size = new System.Drawing.Size(121, 21); - this.CB_Item_4.TabIndex = 33; - // - // L_Item_3 - // - this.L_Item_3.AutoSize = true; - this.L_Item_3.Location = new System.Drawing.Point(278, 76); - this.L_Item_3.Name = "L_Item_3"; - this.L_Item_3.Size = new System.Drawing.Size(39, 13); - this.L_Item_3.TabIndex = 32; - this.L_Item_3.Text = "Item 3:"; - // - // CB_Item_3 - // - this.CB_Item_3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Item_3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Item_3.FormattingEnabled = true; - this.CB_Item_3.Location = new System.Drawing.Point(330, 73); - this.CB_Item_3.Name = "CB_Item_3"; - this.CB_Item_3.Size = new System.Drawing.Size(121, 21); - this.CB_Item_3.TabIndex = 31; - // - // L_Item_2 - // - this.L_Item_2.AutoSize = true; - this.L_Item_2.Location = new System.Drawing.Point(278, 49); - this.L_Item_2.Name = "L_Item_2"; - this.L_Item_2.Size = new System.Drawing.Size(39, 13); - this.L_Item_2.TabIndex = 30; - this.L_Item_2.Text = "Item 2:"; - // - // CB_Item_2 - // - this.CB_Item_2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Item_2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Item_2.FormattingEnabled = true; - this.CB_Item_2.Location = new System.Drawing.Point(330, 46); - this.CB_Item_2.Name = "CB_Item_2"; - this.CB_Item_2.Size = new System.Drawing.Size(121, 21); - this.CB_Item_2.TabIndex = 29; - // - // L_Item_1 - // - this.L_Item_1.AutoSize = true; - this.L_Item_1.Location = new System.Drawing.Point(278, 22); - this.L_Item_1.Name = "L_Item_1"; - this.L_Item_1.Size = new System.Drawing.Size(39, 13); - this.L_Item_1.TabIndex = 28; - this.L_Item_1.Text = "Item 1:"; - // - // CB_Item_1 - // - this.CB_Item_1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Item_1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Item_1.FormattingEnabled = true; - this.CB_Item_1.Location = new System.Drawing.Point(330, 19); - this.CB_Item_1.Name = "CB_Item_1"; - this.CB_Item_1.Size = new System.Drawing.Size(121, 21); - this.CB_Item_1.TabIndex = 27; - // - // L_numPokemon - // - this.L_numPokemon.AutoSize = true; - this.L_numPokemon.Location = new System.Drawing.Point(43, 22); - this.L_numPokemon.Name = "L_numPokemon"; - this.L_numPokemon.Size = new System.Drawing.Size(107, 13); - this.L_numPokemon.TabIndex = 22; - this.L_numPokemon.Text = "Number of Pokémon:"; - // - // CB_numPokemon - // - this.CB_numPokemon.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_numPokemon.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_numPokemon.FormattingEnabled = true; - this.CB_numPokemon.Items.AddRange(new object[] { - "0", - "1", - "2", - "3", - "4", - "5", - "6"}); - this.CB_numPokemon.Location = new System.Drawing.Point(156, 19); - this.CB_numPokemon.Name = "CB_numPokemon"; - this.CB_numPokemon.Size = new System.Drawing.Size(116, 21); - this.CB_numPokemon.TabIndex = 21; - this.CB_numPokemon.SelectedIndexChanged += new System.EventHandler(this.changeTrainerType); - // - // tabPage2 - // - this.tabPage2.BackColor = System.Drawing.SystemColors.Control; - this.tabPage2.Controls.Add(this.L_Pokemon_1_Form); - this.tabPage2.Controls.Add(this.CB_Pokemon_1_Ability); - this.tabPage2.Controls.Add(this.L_Pokemon_1_Gender); - this.tabPage2.Controls.Add(this.CB_Pokemon_1_Gender); - this.tabPage2.Controls.Add(this.L_Pokemon_1_Ability); - this.tabPage2.Controls.Add(this.CB_Pokemon_1_Form); - this.tabPage2.Controls.Add(this.L_Pokemon_1_IVs); - this.tabPage2.Controls.Add(this.CB_Pokemon_1_IVs); - this.tabPage2.Controls.Add(this.L_Pokemon_1_Move_4); - this.tabPage2.Controls.Add(this.CB_Pokemon_1_Move_4); - this.tabPage2.Controls.Add(this.L_Pokemon_1_Move_3); - this.tabPage2.Controls.Add(this.CB_Pokemon_1_Move_3); - this.tabPage2.Controls.Add(this.L_Pokemon_1_Move_2); - this.tabPage2.Controls.Add(this.CB_Pokemon_1_Move_2); - this.tabPage2.Controls.Add(this.L_Pokemon_1_Move_1); - this.tabPage2.Controls.Add(this.CB_Pokemon_1_Move_1); - this.tabPage2.Controls.Add(this.L_Pokemon_1_Item); - this.tabPage2.Controls.Add(this.CB_Pokemon_1_Item); - this.tabPage2.Controls.Add(this.L_Pokemon_1_Level); - this.tabPage2.Controls.Add(this.CB_Pokemon_1_Level); - this.tabPage2.Controls.Add(this.L_Pokemon_1_Pokemon); - this.tabPage2.Controls.Add(this.CB_Pokemon_1_Pokemon); - this.tabPage2.Location = new System.Drawing.Point(4, 22); - this.tabPage2.Name = "tabPage2"; - this.tabPage2.Padding = new System.Windows.Forms.Padding(3); - this.tabPage2.Size = new System.Drawing.Size(557, 127); - this.tabPage2.TabIndex = 1; - this.tabPage2.Text = "Pokémon 1"; - // - // L_Pokemon_1_Form - // - this.L_Pokemon_1_Form.AutoSize = true; - this.L_Pokemon_1_Form.Location = new System.Drawing.Point(33, 36); - this.L_Pokemon_1_Form.Name = "L_Pokemon_1_Form"; - this.L_Pokemon_1_Form.Size = new System.Drawing.Size(33, 13); - this.L_Pokemon_1_Form.TabIndex = 63; - this.L_Pokemon_1_Form.Text = "Form:"; - // - // CB_Pokemon_1_Ability - // - this.CB_Pokemon_1_Ability.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_1_Ability.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_1_Ability.Enabled = false; - this.CB_Pokemon_1_Ability.FormattingEnabled = true; - this.CB_Pokemon_1_Ability.Location = new System.Drawing.Point(429, 33); - this.CB_Pokemon_1_Ability.Name = "CB_Pokemon_1_Ability"; - this.CB_Pokemon_1_Ability.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_1_Ability.TabIndex = 62; - // - // L_Pokemon_1_Gender - // - this.L_Pokemon_1_Gender.AutoSize = true; - this.L_Pokemon_1_Gender.Location = new System.Drawing.Point(378, 63); - this.L_Pokemon_1_Gender.Name = "L_Pokemon_1_Gender"; - this.L_Pokemon_1_Gender.Size = new System.Drawing.Size(45, 13); - this.L_Pokemon_1_Gender.TabIndex = 59; - this.L_Pokemon_1_Gender.Text = "Gender:"; - // - // CB_Pokemon_1_Gender - // - this.CB_Pokemon_1_Gender.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_1_Gender.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_1_Gender.Enabled = false; - this.CB_Pokemon_1_Gender.FormattingEnabled = true; - this.CB_Pokemon_1_Gender.Location = new System.Drawing.Point(429, 60); - this.CB_Pokemon_1_Gender.Name = "CB_Pokemon_1_Gender"; - this.CB_Pokemon_1_Gender.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_1_Gender.TabIndex = 58; - this.CB_Pokemon_1_Gender.SelectedIndexChanged += new System.EventHandler(this.changeTeam); - // - // L_Pokemon_1_Ability - // - this.L_Pokemon_1_Ability.AutoSize = true; - this.L_Pokemon_1_Ability.Location = new System.Drawing.Point(386, 36); - this.L_Pokemon_1_Ability.Name = "L_Pokemon_1_Ability"; - this.L_Pokemon_1_Ability.Size = new System.Drawing.Size(37, 13); - this.L_Pokemon_1_Ability.TabIndex = 57; - this.L_Pokemon_1_Ability.Text = "Ability:"; - // - // CB_Pokemon_1_Form - // - this.CB_Pokemon_1_Form.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_1_Form.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_1_Form.Enabled = false; - this.CB_Pokemon_1_Form.FormattingEnabled = true; - this.CB_Pokemon_1_Form.Location = new System.Drawing.Point(72, 33); - this.CB_Pokemon_1_Form.Name = "CB_Pokemon_1_Form"; - this.CB_Pokemon_1_Form.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_1_Form.TabIndex = 56; - this.CB_Pokemon_1_Form.SelectedIndexChanged += new System.EventHandler(this.refreshFormAbility); - // - // L_Pokemon_1_IVs - // - this.L_Pokemon_1_IVs.AutoSize = true; - this.L_Pokemon_1_IVs.Location = new System.Drawing.Point(398, 9); - this.L_Pokemon_1_IVs.Name = "L_Pokemon_1_IVs"; - this.L_Pokemon_1_IVs.Size = new System.Drawing.Size(25, 13); - this.L_Pokemon_1_IVs.TabIndex = 36; - this.L_Pokemon_1_IVs.Text = "IVs:"; - // - // CB_Pokemon_1_IVs - // - this.CB_Pokemon_1_IVs.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_1_IVs.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_1_IVs.Enabled = false; - this.CB_Pokemon_1_IVs.FormattingEnabled = true; - this.CB_Pokemon_1_IVs.Location = new System.Drawing.Point(429, 6); - this.CB_Pokemon_1_IVs.Name = "CB_Pokemon_1_IVs"; - this.CB_Pokemon_1_IVs.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_1_IVs.TabIndex = 35; - // - // L_Pokemon_1_Move_4 - // - this.L_Pokemon_1_Move_4.AutoSize = true; - this.L_Pokemon_1_Move_4.Location = new System.Drawing.Point(199, 90); - this.L_Pokemon_1_Move_4.Name = "L_Pokemon_1_Move_4"; - this.L_Pokemon_1_Move_4.Size = new System.Drawing.Size(46, 13); - this.L_Pokemon_1_Move_4.TabIndex = 34; - this.L_Pokemon_1_Move_4.Text = "Move 4:"; - // - // CB_Pokemon_1_Move_4 - // - this.CB_Pokemon_1_Move_4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_1_Move_4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_1_Move_4.Enabled = false; - this.CB_Pokemon_1_Move_4.FormattingEnabled = true; - this.CB_Pokemon_1_Move_4.Location = new System.Drawing.Point(251, 87); - this.CB_Pokemon_1_Move_4.Name = "CB_Pokemon_1_Move_4"; - this.CB_Pokemon_1_Move_4.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_1_Move_4.TabIndex = 33; - // - // L_Pokemon_1_Move_3 - // - this.L_Pokemon_1_Move_3.AutoSize = true; - this.L_Pokemon_1_Move_3.Location = new System.Drawing.Point(199, 63); - this.L_Pokemon_1_Move_3.Name = "L_Pokemon_1_Move_3"; - this.L_Pokemon_1_Move_3.Size = new System.Drawing.Size(46, 13); - this.L_Pokemon_1_Move_3.TabIndex = 32; - this.L_Pokemon_1_Move_3.Text = "Move 3:"; - // - // CB_Pokemon_1_Move_3 - // - this.CB_Pokemon_1_Move_3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_1_Move_3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_1_Move_3.Enabled = false; - this.CB_Pokemon_1_Move_3.FormattingEnabled = true; - this.CB_Pokemon_1_Move_3.Location = new System.Drawing.Point(251, 60); - this.CB_Pokemon_1_Move_3.Name = "CB_Pokemon_1_Move_3"; - this.CB_Pokemon_1_Move_3.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_1_Move_3.TabIndex = 31; - // - // L_Pokemon_1_Move_2 - // - this.L_Pokemon_1_Move_2.AutoSize = true; - this.L_Pokemon_1_Move_2.Location = new System.Drawing.Point(199, 36); - this.L_Pokemon_1_Move_2.Name = "L_Pokemon_1_Move_2"; - this.L_Pokemon_1_Move_2.Size = new System.Drawing.Size(46, 13); - this.L_Pokemon_1_Move_2.TabIndex = 30; - this.L_Pokemon_1_Move_2.Text = "Move 2:"; - // - // CB_Pokemon_1_Move_2 - // - this.CB_Pokemon_1_Move_2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_1_Move_2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_1_Move_2.Enabled = false; - this.CB_Pokemon_1_Move_2.FormattingEnabled = true; - this.CB_Pokemon_1_Move_2.Location = new System.Drawing.Point(251, 33); - this.CB_Pokemon_1_Move_2.Name = "CB_Pokemon_1_Move_2"; - this.CB_Pokemon_1_Move_2.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_1_Move_2.TabIndex = 29; - // - // L_Pokemon_1_Move_1 - // - this.L_Pokemon_1_Move_1.AutoSize = true; - this.L_Pokemon_1_Move_1.Location = new System.Drawing.Point(199, 9); - this.L_Pokemon_1_Move_1.Name = "L_Pokemon_1_Move_1"; - this.L_Pokemon_1_Move_1.Size = new System.Drawing.Size(46, 13); - this.L_Pokemon_1_Move_1.TabIndex = 28; - this.L_Pokemon_1_Move_1.Text = "Move 1:"; - // - // CB_Pokemon_1_Move_1 - // - this.CB_Pokemon_1_Move_1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_1_Move_1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_1_Move_1.Enabled = false; - this.CB_Pokemon_1_Move_1.FormattingEnabled = true; - this.CB_Pokemon_1_Move_1.Location = new System.Drawing.Point(251, 6); - this.CB_Pokemon_1_Move_1.Name = "CB_Pokemon_1_Move_1"; - this.CB_Pokemon_1_Move_1.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_1_Move_1.TabIndex = 27; - // - // L_Pokemon_1_Item - // - this.L_Pokemon_1_Item.AutoSize = true; - this.L_Pokemon_1_Item.Location = new System.Drawing.Point(36, 90); - this.L_Pokemon_1_Item.Name = "L_Pokemon_1_Item"; - this.L_Pokemon_1_Item.Size = new System.Drawing.Size(30, 13); - this.L_Pokemon_1_Item.TabIndex = 26; - this.L_Pokemon_1_Item.Text = "Item:"; - // - // CB_Pokemon_1_Item - // - this.CB_Pokemon_1_Item.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_1_Item.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_1_Item.Enabled = false; - this.CB_Pokemon_1_Item.FormattingEnabled = true; - this.CB_Pokemon_1_Item.Location = new System.Drawing.Point(72, 87); - this.CB_Pokemon_1_Item.Name = "CB_Pokemon_1_Item"; - this.CB_Pokemon_1_Item.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_1_Item.TabIndex = 25; - this.CB_Pokemon_1_Item.SelectedIndexChanged += new System.EventHandler(this.changeTeam); - // - // L_Pokemon_1_Level - // - this.L_Pokemon_1_Level.AutoSize = true; - this.L_Pokemon_1_Level.Location = new System.Drawing.Point(30, 63); - this.L_Pokemon_1_Level.Name = "L_Pokemon_1_Level"; - this.L_Pokemon_1_Level.Size = new System.Drawing.Size(36, 13); - this.L_Pokemon_1_Level.TabIndex = 24; - this.L_Pokemon_1_Level.Text = "Level:"; - // - // CB_Pokemon_1_Level - // - this.CB_Pokemon_1_Level.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_1_Level.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_1_Level.Enabled = false; - this.CB_Pokemon_1_Level.FormattingEnabled = true; - this.CB_Pokemon_1_Level.Location = new System.Drawing.Point(72, 60); - this.CB_Pokemon_1_Level.Name = "CB_Pokemon_1_Level"; - this.CB_Pokemon_1_Level.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_1_Level.TabIndex = 23; - // - // L_Pokemon_1_Pokemon - // - this.L_Pokemon_1_Pokemon.AutoSize = true; - this.L_Pokemon_1_Pokemon.Location = new System.Drawing.Point(11, 9); - this.L_Pokemon_1_Pokemon.Name = "L_Pokemon_1_Pokemon"; - this.L_Pokemon_1_Pokemon.Size = new System.Drawing.Size(55, 13); - this.L_Pokemon_1_Pokemon.TabIndex = 22; - this.L_Pokemon_1_Pokemon.Text = "Pokémon:"; - // - // CB_Pokemon_1_Pokemon - // - this.CB_Pokemon_1_Pokemon.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_1_Pokemon.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_1_Pokemon.Enabled = false; - this.CB_Pokemon_1_Pokemon.FormattingEnabled = true; - this.CB_Pokemon_1_Pokemon.Location = new System.Drawing.Point(72, 6); - this.CB_Pokemon_1_Pokemon.Name = "CB_Pokemon_1_Pokemon"; - this.CB_Pokemon_1_Pokemon.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_1_Pokemon.TabIndex = 21; - this.CB_Pokemon_1_Pokemon.SelectedIndexChanged += new System.EventHandler(this.refreshSpeciesAbility); - // - // tabPage3 - // - this.tabPage3.BackColor = System.Drawing.SystemColors.Control; - this.tabPage3.Controls.Add(this.L_Pokemon_2_Gender); - this.tabPage3.Controls.Add(this.CB_Pokemon_2_Gender); - this.tabPage3.Controls.Add(this.L_Pokemon_2_Ability); - this.tabPage3.Controls.Add(this.CB_Pokemon_2_Ability); - this.tabPage3.Controls.Add(this.L_Pokemon_2_Form); - this.tabPage3.Controls.Add(this.CB_Pokemon_2_Form); - this.tabPage3.Controls.Add(this.L_Pokemon_2_IVs); - this.tabPage3.Controls.Add(this.CB_Pokemon_2_IVs); - this.tabPage3.Controls.Add(this.L_Pokemon_2_Move_4); - this.tabPage3.Controls.Add(this.CB_Pokemon_2_Move_4); - this.tabPage3.Controls.Add(this.L_Pokemon_2_Move_3); - this.tabPage3.Controls.Add(this.CB_Pokemon_2_Move_3); - this.tabPage3.Controls.Add(this.L_Pokemon_2_Move_2); - this.tabPage3.Controls.Add(this.CB_Pokemon_2_Move_2); - this.tabPage3.Controls.Add(this.L_Pokemon_2_Move_1); - this.tabPage3.Controls.Add(this.CB_Pokemon_2_Move_1); - this.tabPage3.Controls.Add(this.L_Pokemon_2_Item); - this.tabPage3.Controls.Add(this.CB_Pokemon_2_Item); - this.tabPage3.Controls.Add(this.L_CB_Pokemon_2_Level); - this.tabPage3.Controls.Add(this.CB_Pokemon_2_Level); - this.tabPage3.Controls.Add(this.L_Pokemon_2_Pokemon); - this.tabPage3.Controls.Add(this.CB_Pokemon_2_Pokemon); - this.tabPage3.Location = new System.Drawing.Point(4, 22); - this.tabPage3.Name = "tabPage3"; - this.tabPage3.Padding = new System.Windows.Forms.Padding(3); - this.tabPage3.Size = new System.Drawing.Size(557, 127); - this.tabPage3.TabIndex = 2; - this.tabPage3.Text = "Pokémon 2"; - // - // L_Pokemon_2_Gender - // - this.L_Pokemon_2_Gender.AutoSize = true; - this.L_Pokemon_2_Gender.Location = new System.Drawing.Point(378, 63); - this.L_Pokemon_2_Gender.Name = "L_Pokemon_2_Gender"; - this.L_Pokemon_2_Gender.Size = new System.Drawing.Size(45, 13); - this.L_Pokemon_2_Gender.TabIndex = 65; - this.L_Pokemon_2_Gender.Text = "Gender:"; - // - // CB_Pokemon_2_Gender - // - this.CB_Pokemon_2_Gender.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_2_Gender.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_2_Gender.Enabled = false; - this.CB_Pokemon_2_Gender.FormattingEnabled = true; - this.CB_Pokemon_2_Gender.Location = new System.Drawing.Point(429, 60); - this.CB_Pokemon_2_Gender.Name = "CB_Pokemon_2_Gender"; - this.CB_Pokemon_2_Gender.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_2_Gender.TabIndex = 64; - this.CB_Pokemon_2_Gender.SelectedIndexChanged += new System.EventHandler(this.changeTeam); - // - // L_Pokemon_2_Ability - // - this.L_Pokemon_2_Ability.AutoSize = true; - this.L_Pokemon_2_Ability.Location = new System.Drawing.Point(386, 36); - this.L_Pokemon_2_Ability.Name = "L_Pokemon_2_Ability"; - this.L_Pokemon_2_Ability.Size = new System.Drawing.Size(37, 13); - this.L_Pokemon_2_Ability.TabIndex = 63; - this.L_Pokemon_2_Ability.Text = "Ability:"; - // - // CB_Pokemon_2_Ability - // - this.CB_Pokemon_2_Ability.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_2_Ability.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_2_Ability.Enabled = false; - this.CB_Pokemon_2_Ability.FormattingEnabled = true; - this.CB_Pokemon_2_Ability.Location = new System.Drawing.Point(429, 33); - this.CB_Pokemon_2_Ability.Name = "CB_Pokemon_2_Ability"; - this.CB_Pokemon_2_Ability.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_2_Ability.TabIndex = 62; - // - // L_Pokemon_2_Form - // - this.L_Pokemon_2_Form.AutoSize = true; - this.L_Pokemon_2_Form.Location = new System.Drawing.Point(33, 36); - this.L_Pokemon_2_Form.Name = "L_Pokemon_2_Form"; - this.L_Pokemon_2_Form.Size = new System.Drawing.Size(33, 13); - this.L_Pokemon_2_Form.TabIndex = 59; - this.L_Pokemon_2_Form.Text = "Form:"; - // - // CB_Pokemon_2_Form - // - this.CB_Pokemon_2_Form.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_2_Form.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_2_Form.Enabled = false; - this.CB_Pokemon_2_Form.FormattingEnabled = true; - this.CB_Pokemon_2_Form.Location = new System.Drawing.Point(72, 33); - this.CB_Pokemon_2_Form.Name = "CB_Pokemon_2_Form"; - this.CB_Pokemon_2_Form.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_2_Form.TabIndex = 58; - this.CB_Pokemon_2_Form.SelectedIndexChanged += new System.EventHandler(this.refreshFormAbility); - // - // L_Pokemon_2_IVs - // - this.L_Pokemon_2_IVs.AutoSize = true; - this.L_Pokemon_2_IVs.Location = new System.Drawing.Point(398, 9); - this.L_Pokemon_2_IVs.Name = "L_Pokemon_2_IVs"; - this.L_Pokemon_2_IVs.Size = new System.Drawing.Size(25, 13); - this.L_Pokemon_2_IVs.TabIndex = 38; - this.L_Pokemon_2_IVs.Text = "IVs:"; - // - // CB_Pokemon_2_IVs - // - this.CB_Pokemon_2_IVs.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_2_IVs.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_2_IVs.Enabled = false; - this.CB_Pokemon_2_IVs.FormattingEnabled = true; - this.CB_Pokemon_2_IVs.Location = new System.Drawing.Point(429, 6); - this.CB_Pokemon_2_IVs.Name = "CB_Pokemon_2_IVs"; - this.CB_Pokemon_2_IVs.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_2_IVs.TabIndex = 37; - // - // L_Pokemon_2_Move_4 - // - this.L_Pokemon_2_Move_4.AutoSize = true; - this.L_Pokemon_2_Move_4.Location = new System.Drawing.Point(199, 90); - this.L_Pokemon_2_Move_4.Name = "L_Pokemon_2_Move_4"; - this.L_Pokemon_2_Move_4.Size = new System.Drawing.Size(46, 13); - this.L_Pokemon_2_Move_4.TabIndex = 34; - this.L_Pokemon_2_Move_4.Text = "Move 4:"; - // - // CB_Pokemon_2_Move_4 - // - this.CB_Pokemon_2_Move_4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_2_Move_4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_2_Move_4.Enabled = false; - this.CB_Pokemon_2_Move_4.FormattingEnabled = true; - this.CB_Pokemon_2_Move_4.Location = new System.Drawing.Point(251, 87); - this.CB_Pokemon_2_Move_4.Name = "CB_Pokemon_2_Move_4"; - this.CB_Pokemon_2_Move_4.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_2_Move_4.TabIndex = 33; - // - // L_Pokemon_2_Move_3 - // - this.L_Pokemon_2_Move_3.AutoSize = true; - this.L_Pokemon_2_Move_3.Location = new System.Drawing.Point(199, 63); - this.L_Pokemon_2_Move_3.Name = "L_Pokemon_2_Move_3"; - this.L_Pokemon_2_Move_3.Size = new System.Drawing.Size(46, 13); - this.L_Pokemon_2_Move_3.TabIndex = 32; - this.L_Pokemon_2_Move_3.Text = "Move 3:"; - // - // CB_Pokemon_2_Move_3 - // - this.CB_Pokemon_2_Move_3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_2_Move_3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_2_Move_3.Enabled = false; - this.CB_Pokemon_2_Move_3.FormattingEnabled = true; - this.CB_Pokemon_2_Move_3.Location = new System.Drawing.Point(251, 60); - this.CB_Pokemon_2_Move_3.Name = "CB_Pokemon_2_Move_3"; - this.CB_Pokemon_2_Move_3.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_2_Move_3.TabIndex = 31; - // - // L_Pokemon_2_Move_2 - // - this.L_Pokemon_2_Move_2.AutoSize = true; - this.L_Pokemon_2_Move_2.Location = new System.Drawing.Point(199, 36); - this.L_Pokemon_2_Move_2.Name = "L_Pokemon_2_Move_2"; - this.L_Pokemon_2_Move_2.Size = new System.Drawing.Size(46, 13); - this.L_Pokemon_2_Move_2.TabIndex = 30; - this.L_Pokemon_2_Move_2.Text = "Move 2:"; - // - // CB_Pokemon_2_Move_2 - // - this.CB_Pokemon_2_Move_2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_2_Move_2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_2_Move_2.Enabled = false; - this.CB_Pokemon_2_Move_2.FormattingEnabled = true; - this.CB_Pokemon_2_Move_2.Location = new System.Drawing.Point(251, 33); - this.CB_Pokemon_2_Move_2.Name = "CB_Pokemon_2_Move_2"; - this.CB_Pokemon_2_Move_2.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_2_Move_2.TabIndex = 29; - // - // L_Pokemon_2_Move_1 - // - this.L_Pokemon_2_Move_1.AutoSize = true; - this.L_Pokemon_2_Move_1.Location = new System.Drawing.Point(199, 9); - this.L_Pokemon_2_Move_1.Name = "L_Pokemon_2_Move_1"; - this.L_Pokemon_2_Move_1.Size = new System.Drawing.Size(46, 13); - this.L_Pokemon_2_Move_1.TabIndex = 28; - this.L_Pokemon_2_Move_1.Text = "Move 1:"; - // - // CB_Pokemon_2_Move_1 - // - this.CB_Pokemon_2_Move_1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_2_Move_1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_2_Move_1.Enabled = false; - this.CB_Pokemon_2_Move_1.FormattingEnabled = true; - this.CB_Pokemon_2_Move_1.Location = new System.Drawing.Point(251, 6); - this.CB_Pokemon_2_Move_1.Name = "CB_Pokemon_2_Move_1"; - this.CB_Pokemon_2_Move_1.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_2_Move_1.TabIndex = 27; - // - // L_Pokemon_2_Item - // - this.L_Pokemon_2_Item.AutoSize = true; - this.L_Pokemon_2_Item.Location = new System.Drawing.Point(36, 90); - this.L_Pokemon_2_Item.Name = "L_Pokemon_2_Item"; - this.L_Pokemon_2_Item.Size = new System.Drawing.Size(30, 13); - this.L_Pokemon_2_Item.TabIndex = 26; - this.L_Pokemon_2_Item.Text = "Item:"; - // - // CB_Pokemon_2_Item - // - this.CB_Pokemon_2_Item.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_2_Item.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_2_Item.Enabled = false; - this.CB_Pokemon_2_Item.FormattingEnabled = true; - this.CB_Pokemon_2_Item.Location = new System.Drawing.Point(72, 87); - this.CB_Pokemon_2_Item.Name = "CB_Pokemon_2_Item"; - this.CB_Pokemon_2_Item.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_2_Item.TabIndex = 25; - this.CB_Pokemon_2_Item.SelectedIndexChanged += new System.EventHandler(this.changeTeam); - // - // L_CB_Pokemon_2_Level - // - this.L_CB_Pokemon_2_Level.AutoSize = true; - this.L_CB_Pokemon_2_Level.Location = new System.Drawing.Point(30, 63); - this.L_CB_Pokemon_2_Level.Name = "L_CB_Pokemon_2_Level"; - this.L_CB_Pokemon_2_Level.Size = new System.Drawing.Size(36, 13); - this.L_CB_Pokemon_2_Level.TabIndex = 24; - this.L_CB_Pokemon_2_Level.Text = "Level:"; - // - // CB_Pokemon_2_Level - // - this.CB_Pokemon_2_Level.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_2_Level.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_2_Level.Enabled = false; - this.CB_Pokemon_2_Level.FormattingEnabled = true; - this.CB_Pokemon_2_Level.Location = new System.Drawing.Point(72, 60); - this.CB_Pokemon_2_Level.Name = "CB_Pokemon_2_Level"; - this.CB_Pokemon_2_Level.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_2_Level.TabIndex = 23; - // - // L_Pokemon_2_Pokemon - // - this.L_Pokemon_2_Pokemon.AutoSize = true; - this.L_Pokemon_2_Pokemon.Location = new System.Drawing.Point(11, 9); - this.L_Pokemon_2_Pokemon.Name = "L_Pokemon_2_Pokemon"; - this.L_Pokemon_2_Pokemon.Size = new System.Drawing.Size(55, 13); - this.L_Pokemon_2_Pokemon.TabIndex = 22; - this.L_Pokemon_2_Pokemon.Text = "Pokémon:"; - // - // CB_Pokemon_2_Pokemon - // - this.CB_Pokemon_2_Pokemon.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_2_Pokemon.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_2_Pokemon.Enabled = false; - this.CB_Pokemon_2_Pokemon.FormattingEnabled = true; - this.CB_Pokemon_2_Pokemon.Location = new System.Drawing.Point(72, 6); - this.CB_Pokemon_2_Pokemon.Name = "CB_Pokemon_2_Pokemon"; - this.CB_Pokemon_2_Pokemon.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_2_Pokemon.TabIndex = 21; - this.CB_Pokemon_2_Pokemon.SelectedIndexChanged += new System.EventHandler(this.refreshSpeciesAbility); - // - // tabPage4 - // - this.tabPage4.BackColor = System.Drawing.SystemColors.Control; - this.tabPage4.Controls.Add(this.L_Pokemon_3_Gender); - this.tabPage4.Controls.Add(this.CB_Pokemon_3_Gender); - this.tabPage4.Controls.Add(this.L_Pokemon_3_Ability); - this.tabPage4.Controls.Add(this.CB_Pokemon_3_Ability); - this.tabPage4.Controls.Add(this.L_Pokemon_3_Form); - this.tabPage4.Controls.Add(this.CB_Pokemon_3_Form); - this.tabPage4.Controls.Add(this.L_Pokemon_3_IVs); - this.tabPage4.Controls.Add(this.CB_Pokemon_3_IVs); - this.tabPage4.Controls.Add(this.L_Pokemon_3_Move_4); - this.tabPage4.Controls.Add(this.CB_Pokemon_3_Move_4); - this.tabPage4.Controls.Add(this.L_Pokemon_3_Move_3); - this.tabPage4.Controls.Add(this.CB_Pokemon_3_Move_3); - this.tabPage4.Controls.Add(this.L_Pokemon_3_Move_2); - this.tabPage4.Controls.Add(this.CB_Pokemon_3_Move_2); - this.tabPage4.Controls.Add(this.L_Pokemon_3_Move_1); - this.tabPage4.Controls.Add(this.CB_Pokemon_3_Move_1); - this.tabPage4.Controls.Add(this.L_Pokemon_3_Item); - this.tabPage4.Controls.Add(this.CB_Pokemon_3_Item); - this.tabPage4.Controls.Add(this.L_Pokemon_3_Level); - this.tabPage4.Controls.Add(this.CB_Pokemon_3_Level); - this.tabPage4.Controls.Add(this.L_Pokemon_3_Pokemon); - this.tabPage4.Controls.Add(this.CB_Pokemon_3_Pokemon); - this.tabPage4.Location = new System.Drawing.Point(4, 22); - this.tabPage4.Name = "tabPage4"; - this.tabPage4.Padding = new System.Windows.Forms.Padding(3); - this.tabPage4.Size = new System.Drawing.Size(557, 127); - this.tabPage4.TabIndex = 3; - this.tabPage4.Text = "Pokémon 3"; - // - // L_Pokemon_3_Gender - // - this.L_Pokemon_3_Gender.AutoSize = true; - this.L_Pokemon_3_Gender.Location = new System.Drawing.Point(378, 63); - this.L_Pokemon_3_Gender.Name = "L_Pokemon_3_Gender"; - this.L_Pokemon_3_Gender.Size = new System.Drawing.Size(45, 13); - this.L_Pokemon_3_Gender.TabIndex = 65; - this.L_Pokemon_3_Gender.Text = "Gender:"; - // - // CB_Pokemon_3_Gender - // - this.CB_Pokemon_3_Gender.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_3_Gender.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_3_Gender.Enabled = false; - this.CB_Pokemon_3_Gender.FormattingEnabled = true; - this.CB_Pokemon_3_Gender.Location = new System.Drawing.Point(429, 60); - this.CB_Pokemon_3_Gender.Name = "CB_Pokemon_3_Gender"; - this.CB_Pokemon_3_Gender.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_3_Gender.TabIndex = 64; - this.CB_Pokemon_3_Gender.SelectedIndexChanged += new System.EventHandler(this.changeTeam); - // - // L_Pokemon_3_Ability - // - this.L_Pokemon_3_Ability.AutoSize = true; - this.L_Pokemon_3_Ability.Location = new System.Drawing.Point(386, 36); - this.L_Pokemon_3_Ability.Name = "L_Pokemon_3_Ability"; - this.L_Pokemon_3_Ability.Size = new System.Drawing.Size(37, 13); - this.L_Pokemon_3_Ability.TabIndex = 63; - this.L_Pokemon_3_Ability.Text = "Ability:"; - // - // CB_Pokemon_3_Ability - // - this.CB_Pokemon_3_Ability.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_3_Ability.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_3_Ability.Enabled = false; - this.CB_Pokemon_3_Ability.FormattingEnabled = true; - this.CB_Pokemon_3_Ability.Location = new System.Drawing.Point(429, 33); - this.CB_Pokemon_3_Ability.Name = "CB_Pokemon_3_Ability"; - this.CB_Pokemon_3_Ability.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_3_Ability.TabIndex = 62; - // - // L_Pokemon_3_Form - // - this.L_Pokemon_3_Form.AutoSize = true; - this.L_Pokemon_3_Form.Location = new System.Drawing.Point(33, 36); - this.L_Pokemon_3_Form.Name = "L_Pokemon_3_Form"; - this.L_Pokemon_3_Form.Size = new System.Drawing.Size(33, 13); - this.L_Pokemon_3_Form.TabIndex = 59; - this.L_Pokemon_3_Form.Text = "Form:"; - // - // CB_Pokemon_3_Form - // - this.CB_Pokemon_3_Form.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_3_Form.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_3_Form.Enabled = false; - this.CB_Pokemon_3_Form.FormattingEnabled = true; - this.CB_Pokemon_3_Form.Location = new System.Drawing.Point(72, 33); - this.CB_Pokemon_3_Form.Name = "CB_Pokemon_3_Form"; - this.CB_Pokemon_3_Form.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_3_Form.TabIndex = 58; - this.CB_Pokemon_3_Form.SelectedIndexChanged += new System.EventHandler(this.refreshFormAbility); - // - // L_Pokemon_3_IVs - // - this.L_Pokemon_3_IVs.AutoSize = true; - this.L_Pokemon_3_IVs.Location = new System.Drawing.Point(398, 9); - this.L_Pokemon_3_IVs.Name = "L_Pokemon_3_IVs"; - this.L_Pokemon_3_IVs.Size = new System.Drawing.Size(25, 13); - this.L_Pokemon_3_IVs.TabIndex = 38; - this.L_Pokemon_3_IVs.Text = "IVs:"; - // - // CB_Pokemon_3_IVs - // - this.CB_Pokemon_3_IVs.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_3_IVs.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_3_IVs.Enabled = false; - this.CB_Pokemon_3_IVs.FormattingEnabled = true; - this.CB_Pokemon_3_IVs.Location = new System.Drawing.Point(429, 6); - this.CB_Pokemon_3_IVs.Name = "CB_Pokemon_3_IVs"; - this.CB_Pokemon_3_IVs.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_3_IVs.TabIndex = 37; - // - // L_Pokemon_3_Move_4 - // - this.L_Pokemon_3_Move_4.AutoSize = true; - this.L_Pokemon_3_Move_4.Location = new System.Drawing.Point(199, 90); - this.L_Pokemon_3_Move_4.Name = "L_Pokemon_3_Move_4"; - this.L_Pokemon_3_Move_4.Size = new System.Drawing.Size(46, 13); - this.L_Pokemon_3_Move_4.TabIndex = 34; - this.L_Pokemon_3_Move_4.Text = "Move 4:"; - // - // CB_Pokemon_3_Move_4 - // - this.CB_Pokemon_3_Move_4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_3_Move_4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_3_Move_4.Enabled = false; - this.CB_Pokemon_3_Move_4.FormattingEnabled = true; - this.CB_Pokemon_3_Move_4.Location = new System.Drawing.Point(251, 87); - this.CB_Pokemon_3_Move_4.Name = "CB_Pokemon_3_Move_4"; - this.CB_Pokemon_3_Move_4.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_3_Move_4.TabIndex = 33; - // - // L_Pokemon_3_Move_3 - // - this.L_Pokemon_3_Move_3.AutoSize = true; - this.L_Pokemon_3_Move_3.Location = new System.Drawing.Point(199, 63); - this.L_Pokemon_3_Move_3.Name = "L_Pokemon_3_Move_3"; - this.L_Pokemon_3_Move_3.Size = new System.Drawing.Size(46, 13); - this.L_Pokemon_3_Move_3.TabIndex = 32; - this.L_Pokemon_3_Move_3.Text = "Move 3:"; - // - // CB_Pokemon_3_Move_3 - // - this.CB_Pokemon_3_Move_3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_3_Move_3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_3_Move_3.Enabled = false; - this.CB_Pokemon_3_Move_3.FormattingEnabled = true; - this.CB_Pokemon_3_Move_3.Location = new System.Drawing.Point(251, 60); - this.CB_Pokemon_3_Move_3.Name = "CB_Pokemon_3_Move_3"; - this.CB_Pokemon_3_Move_3.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_3_Move_3.TabIndex = 31; - // - // L_Pokemon_3_Move_2 - // - this.L_Pokemon_3_Move_2.AutoSize = true; - this.L_Pokemon_3_Move_2.Location = new System.Drawing.Point(199, 36); - this.L_Pokemon_3_Move_2.Name = "L_Pokemon_3_Move_2"; - this.L_Pokemon_3_Move_2.Size = new System.Drawing.Size(46, 13); - this.L_Pokemon_3_Move_2.TabIndex = 30; - this.L_Pokemon_3_Move_2.Text = "Move 2:"; - // - // CB_Pokemon_3_Move_2 - // - this.CB_Pokemon_3_Move_2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_3_Move_2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_3_Move_2.Enabled = false; - this.CB_Pokemon_3_Move_2.FormattingEnabled = true; - this.CB_Pokemon_3_Move_2.Location = new System.Drawing.Point(251, 33); - this.CB_Pokemon_3_Move_2.Name = "CB_Pokemon_3_Move_2"; - this.CB_Pokemon_3_Move_2.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_3_Move_2.TabIndex = 29; - // - // L_Pokemon_3_Move_1 - // - this.L_Pokemon_3_Move_1.AutoSize = true; - this.L_Pokemon_3_Move_1.Location = new System.Drawing.Point(199, 9); - this.L_Pokemon_3_Move_1.Name = "L_Pokemon_3_Move_1"; - this.L_Pokemon_3_Move_1.Size = new System.Drawing.Size(46, 13); - this.L_Pokemon_3_Move_1.TabIndex = 28; - this.L_Pokemon_3_Move_1.Text = "Move 1:"; - // - // CB_Pokemon_3_Move_1 - // - this.CB_Pokemon_3_Move_1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_3_Move_1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_3_Move_1.Enabled = false; - this.CB_Pokemon_3_Move_1.FormattingEnabled = true; - this.CB_Pokemon_3_Move_1.Location = new System.Drawing.Point(251, 6); - this.CB_Pokemon_3_Move_1.Name = "CB_Pokemon_3_Move_1"; - this.CB_Pokemon_3_Move_1.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_3_Move_1.TabIndex = 27; - // - // L_Pokemon_3_Item - // - this.L_Pokemon_3_Item.AutoSize = true; - this.L_Pokemon_3_Item.Location = new System.Drawing.Point(36, 90); - this.L_Pokemon_3_Item.Name = "L_Pokemon_3_Item"; - this.L_Pokemon_3_Item.Size = new System.Drawing.Size(30, 13); - this.L_Pokemon_3_Item.TabIndex = 26; - this.L_Pokemon_3_Item.Text = "Item:"; - // - // CB_Pokemon_3_Item - // - this.CB_Pokemon_3_Item.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_3_Item.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_3_Item.Enabled = false; - this.CB_Pokemon_3_Item.FormattingEnabled = true; - this.CB_Pokemon_3_Item.Location = new System.Drawing.Point(72, 87); - this.CB_Pokemon_3_Item.Name = "CB_Pokemon_3_Item"; - this.CB_Pokemon_3_Item.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_3_Item.TabIndex = 25; - this.CB_Pokemon_3_Item.SelectedIndexChanged += new System.EventHandler(this.changeTeam); - // - // L_Pokemon_3_Level - // - this.L_Pokemon_3_Level.AutoSize = true; - this.L_Pokemon_3_Level.Location = new System.Drawing.Point(30, 63); - this.L_Pokemon_3_Level.Name = "L_Pokemon_3_Level"; - this.L_Pokemon_3_Level.Size = new System.Drawing.Size(36, 13); - this.L_Pokemon_3_Level.TabIndex = 24; - this.L_Pokemon_3_Level.Text = "Level:"; - // - // CB_Pokemon_3_Level - // - this.CB_Pokemon_3_Level.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_3_Level.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_3_Level.Enabled = false; - this.CB_Pokemon_3_Level.FormattingEnabled = true; - this.CB_Pokemon_3_Level.Location = new System.Drawing.Point(72, 60); - this.CB_Pokemon_3_Level.Name = "CB_Pokemon_3_Level"; - this.CB_Pokemon_3_Level.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_3_Level.TabIndex = 23; - // - // L_Pokemon_3_Pokemon - // - this.L_Pokemon_3_Pokemon.AutoSize = true; - this.L_Pokemon_3_Pokemon.Location = new System.Drawing.Point(11, 9); - this.L_Pokemon_3_Pokemon.Name = "L_Pokemon_3_Pokemon"; - this.L_Pokemon_3_Pokemon.Size = new System.Drawing.Size(55, 13); - this.L_Pokemon_3_Pokemon.TabIndex = 22; - this.L_Pokemon_3_Pokemon.Text = "Pokémon:"; - // - // CB_Pokemon_3_Pokemon - // - this.CB_Pokemon_3_Pokemon.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_3_Pokemon.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_3_Pokemon.Enabled = false; - this.CB_Pokemon_3_Pokemon.FormattingEnabled = true; - this.CB_Pokemon_3_Pokemon.Location = new System.Drawing.Point(72, 6); - this.CB_Pokemon_3_Pokemon.Name = "CB_Pokemon_3_Pokemon"; - this.CB_Pokemon_3_Pokemon.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_3_Pokemon.TabIndex = 21; - this.CB_Pokemon_3_Pokemon.SelectedIndexChanged += new System.EventHandler(this.refreshSpeciesAbility); - // - // tabPage5 - // - this.tabPage5.BackColor = System.Drawing.SystemColors.Control; - this.tabPage5.Controls.Add(this.L_Pokemon_4_Gender); - this.tabPage5.Controls.Add(this.CB_Pokemon_4_Gender); - this.tabPage5.Controls.Add(this.L_Pokemon_4_Ability); - this.tabPage5.Controls.Add(this.CB_Pokemon_4_Ability); - this.tabPage5.Controls.Add(this.L_Pokemon_4_Form); - this.tabPage5.Controls.Add(this.CB_Pokemon_4_Form); - this.tabPage5.Controls.Add(this.L_Pokemon_4_IVs); - this.tabPage5.Controls.Add(this.CB_Pokemon_4_IVs); - this.tabPage5.Controls.Add(this.L_Pokemon_4_Move_4); - this.tabPage5.Controls.Add(this.CB_Pokemon_4_Move_4); - this.tabPage5.Controls.Add(this.L_Pokemon_4_Move_3); - this.tabPage5.Controls.Add(this.CB_Pokemon_4_Move_3); - this.tabPage5.Controls.Add(this.L_Pokemon_4_Move_2); - this.tabPage5.Controls.Add(this.CB_Pokemon_4_Move_2); - this.tabPage5.Controls.Add(this.L_Pokemon_4_Move_1); - this.tabPage5.Controls.Add(this.CB_Pokemon_4_Move_1); - this.tabPage5.Controls.Add(this.L_CB_Pokemon_4_Item); - this.tabPage5.Controls.Add(this.CB_Pokemon_4_Item); - this.tabPage5.Controls.Add(this.L_Pokemon_4_Level); - this.tabPage5.Controls.Add(this.CB_Pokemon_4_Level); - this.tabPage5.Controls.Add(this.L_Pokemon_4_Pokemon); - this.tabPage5.Controls.Add(this.CB_Pokemon_4_Pokemon); - this.tabPage5.Location = new System.Drawing.Point(4, 22); - this.tabPage5.Name = "tabPage5"; - this.tabPage5.Padding = new System.Windows.Forms.Padding(3); - this.tabPage5.Size = new System.Drawing.Size(557, 127); - this.tabPage5.TabIndex = 4; - this.tabPage5.Text = "Pokémon 4"; - // - // L_Pokemon_4_Gender - // - this.L_Pokemon_4_Gender.AutoSize = true; - this.L_Pokemon_4_Gender.Location = new System.Drawing.Point(378, 63); - this.L_Pokemon_4_Gender.Name = "L_Pokemon_4_Gender"; - this.L_Pokemon_4_Gender.Size = new System.Drawing.Size(45, 13); - this.L_Pokemon_4_Gender.TabIndex = 65; - this.L_Pokemon_4_Gender.Text = "Gender:"; - // - // CB_Pokemon_4_Gender - // - this.CB_Pokemon_4_Gender.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_4_Gender.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_4_Gender.Enabled = false; - this.CB_Pokemon_4_Gender.FormattingEnabled = true; - this.CB_Pokemon_4_Gender.Location = new System.Drawing.Point(429, 60); - this.CB_Pokemon_4_Gender.Name = "CB_Pokemon_4_Gender"; - this.CB_Pokemon_4_Gender.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_4_Gender.TabIndex = 64; - this.CB_Pokemon_4_Gender.SelectedIndexChanged += new System.EventHandler(this.changeTeam); - // - // L_Pokemon_4_Ability - // - this.L_Pokemon_4_Ability.AutoSize = true; - this.L_Pokemon_4_Ability.Location = new System.Drawing.Point(386, 36); - this.L_Pokemon_4_Ability.Name = "L_Pokemon_4_Ability"; - this.L_Pokemon_4_Ability.Size = new System.Drawing.Size(37, 13); - this.L_Pokemon_4_Ability.TabIndex = 63; - this.L_Pokemon_4_Ability.Text = "Ability:"; - // - // CB_Pokemon_4_Ability - // - this.CB_Pokemon_4_Ability.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_4_Ability.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_4_Ability.Enabled = false; - this.CB_Pokemon_4_Ability.FormattingEnabled = true; - this.CB_Pokemon_4_Ability.Location = new System.Drawing.Point(429, 33); - this.CB_Pokemon_4_Ability.Name = "CB_Pokemon_4_Ability"; - this.CB_Pokemon_4_Ability.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_4_Ability.TabIndex = 62; - // - // L_Pokemon_4_Form - // - this.L_Pokemon_4_Form.AutoSize = true; - this.L_Pokemon_4_Form.Location = new System.Drawing.Point(33, 36); - this.L_Pokemon_4_Form.Name = "L_Pokemon_4_Form"; - this.L_Pokemon_4_Form.Size = new System.Drawing.Size(33, 13); - this.L_Pokemon_4_Form.TabIndex = 59; - this.L_Pokemon_4_Form.Text = "Form:"; - // - // CB_Pokemon_4_Form - // - this.CB_Pokemon_4_Form.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_4_Form.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_4_Form.Enabled = false; - this.CB_Pokemon_4_Form.FormattingEnabled = true; - this.CB_Pokemon_4_Form.Location = new System.Drawing.Point(72, 33); - this.CB_Pokemon_4_Form.Name = "CB_Pokemon_4_Form"; - this.CB_Pokemon_4_Form.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_4_Form.TabIndex = 58; - this.CB_Pokemon_4_Form.SelectedIndexChanged += new System.EventHandler(this.refreshFormAbility); - // - // L_Pokemon_4_IVs - // - this.L_Pokemon_4_IVs.AutoSize = true; - this.L_Pokemon_4_IVs.Location = new System.Drawing.Point(398, 9); - this.L_Pokemon_4_IVs.Name = "L_Pokemon_4_IVs"; - this.L_Pokemon_4_IVs.Size = new System.Drawing.Size(25, 13); - this.L_Pokemon_4_IVs.TabIndex = 38; - this.L_Pokemon_4_IVs.Text = "IVs:"; - // - // CB_Pokemon_4_IVs - // - this.CB_Pokemon_4_IVs.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_4_IVs.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_4_IVs.Enabled = false; - this.CB_Pokemon_4_IVs.FormattingEnabled = true; - this.CB_Pokemon_4_IVs.Location = new System.Drawing.Point(429, 6); - this.CB_Pokemon_4_IVs.Name = "CB_Pokemon_4_IVs"; - this.CB_Pokemon_4_IVs.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_4_IVs.TabIndex = 37; - // - // L_Pokemon_4_Move_4 - // - this.L_Pokemon_4_Move_4.AutoSize = true; - this.L_Pokemon_4_Move_4.Location = new System.Drawing.Point(199, 90); - this.L_Pokemon_4_Move_4.Name = "L_Pokemon_4_Move_4"; - this.L_Pokemon_4_Move_4.Size = new System.Drawing.Size(46, 13); - this.L_Pokemon_4_Move_4.TabIndex = 34; - this.L_Pokemon_4_Move_4.Text = "Move 4:"; - // - // CB_Pokemon_4_Move_4 - // - this.CB_Pokemon_4_Move_4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_4_Move_4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_4_Move_4.Enabled = false; - this.CB_Pokemon_4_Move_4.FormattingEnabled = true; - this.CB_Pokemon_4_Move_4.Location = new System.Drawing.Point(251, 87); - this.CB_Pokemon_4_Move_4.Name = "CB_Pokemon_4_Move_4"; - this.CB_Pokemon_4_Move_4.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_4_Move_4.TabIndex = 33; - // - // L_Pokemon_4_Move_3 - // - this.L_Pokemon_4_Move_3.AutoSize = true; - this.L_Pokemon_4_Move_3.Location = new System.Drawing.Point(199, 63); - this.L_Pokemon_4_Move_3.Name = "L_Pokemon_4_Move_3"; - this.L_Pokemon_4_Move_3.Size = new System.Drawing.Size(46, 13); - this.L_Pokemon_4_Move_3.TabIndex = 32; - this.L_Pokemon_4_Move_3.Text = "Move 3:"; - // - // CB_Pokemon_4_Move_3 - // - this.CB_Pokemon_4_Move_3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_4_Move_3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_4_Move_3.Enabled = false; - this.CB_Pokemon_4_Move_3.FormattingEnabled = true; - this.CB_Pokemon_4_Move_3.Location = new System.Drawing.Point(251, 60); - this.CB_Pokemon_4_Move_3.Name = "CB_Pokemon_4_Move_3"; - this.CB_Pokemon_4_Move_3.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_4_Move_3.TabIndex = 31; - // - // L_Pokemon_4_Move_2 - // - this.L_Pokemon_4_Move_2.AutoSize = true; - this.L_Pokemon_4_Move_2.Location = new System.Drawing.Point(199, 36); - this.L_Pokemon_4_Move_2.Name = "L_Pokemon_4_Move_2"; - this.L_Pokemon_4_Move_2.Size = new System.Drawing.Size(46, 13); - this.L_Pokemon_4_Move_2.TabIndex = 30; - this.L_Pokemon_4_Move_2.Text = "Move 2:"; - // - // CB_Pokemon_4_Move_2 - // - this.CB_Pokemon_4_Move_2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_4_Move_2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_4_Move_2.Enabled = false; - this.CB_Pokemon_4_Move_2.FormattingEnabled = true; - this.CB_Pokemon_4_Move_2.Location = new System.Drawing.Point(251, 33); - this.CB_Pokemon_4_Move_2.Name = "CB_Pokemon_4_Move_2"; - this.CB_Pokemon_4_Move_2.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_4_Move_2.TabIndex = 29; - // - // L_Pokemon_4_Move_1 - // - this.L_Pokemon_4_Move_1.AutoSize = true; - this.L_Pokemon_4_Move_1.Location = new System.Drawing.Point(199, 9); - this.L_Pokemon_4_Move_1.Name = "L_Pokemon_4_Move_1"; - this.L_Pokemon_4_Move_1.Size = new System.Drawing.Size(46, 13); - this.L_Pokemon_4_Move_1.TabIndex = 28; - this.L_Pokemon_4_Move_1.Text = "Move 1:"; - // - // CB_Pokemon_4_Move_1 - // - this.CB_Pokemon_4_Move_1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_4_Move_1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_4_Move_1.Enabled = false; - this.CB_Pokemon_4_Move_1.FormattingEnabled = true; - this.CB_Pokemon_4_Move_1.Location = new System.Drawing.Point(251, 6); - this.CB_Pokemon_4_Move_1.Name = "CB_Pokemon_4_Move_1"; - this.CB_Pokemon_4_Move_1.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_4_Move_1.TabIndex = 27; - // - // L_CB_Pokemon_4_Item - // - this.L_CB_Pokemon_4_Item.AutoSize = true; - this.L_CB_Pokemon_4_Item.Location = new System.Drawing.Point(36, 90); - this.L_CB_Pokemon_4_Item.Name = "L_CB_Pokemon_4_Item"; - this.L_CB_Pokemon_4_Item.Size = new System.Drawing.Size(30, 13); - this.L_CB_Pokemon_4_Item.TabIndex = 26; - this.L_CB_Pokemon_4_Item.Text = "Item:"; - // - // CB_Pokemon_4_Item - // - this.CB_Pokemon_4_Item.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_4_Item.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_4_Item.Enabled = false; - this.CB_Pokemon_4_Item.FormattingEnabled = true; - this.CB_Pokemon_4_Item.Location = new System.Drawing.Point(72, 87); - this.CB_Pokemon_4_Item.Name = "CB_Pokemon_4_Item"; - this.CB_Pokemon_4_Item.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_4_Item.TabIndex = 25; - this.CB_Pokemon_4_Item.SelectedIndexChanged += new System.EventHandler(this.changeTeam); - // - // L_Pokemon_4_Level - // - this.L_Pokemon_4_Level.AutoSize = true; - this.L_Pokemon_4_Level.Location = new System.Drawing.Point(30, 63); - this.L_Pokemon_4_Level.Name = "L_Pokemon_4_Level"; - this.L_Pokemon_4_Level.Size = new System.Drawing.Size(36, 13); - this.L_Pokemon_4_Level.TabIndex = 24; - this.L_Pokemon_4_Level.Text = "Level:"; - // - // CB_Pokemon_4_Level - // - this.CB_Pokemon_4_Level.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_4_Level.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_4_Level.Enabled = false; - this.CB_Pokemon_4_Level.FormattingEnabled = true; - this.CB_Pokemon_4_Level.Location = new System.Drawing.Point(72, 60); - this.CB_Pokemon_4_Level.Name = "CB_Pokemon_4_Level"; - this.CB_Pokemon_4_Level.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_4_Level.TabIndex = 23; - // - // L_Pokemon_4_Pokemon - // - this.L_Pokemon_4_Pokemon.AutoSize = true; - this.L_Pokemon_4_Pokemon.Location = new System.Drawing.Point(11, 9); - this.L_Pokemon_4_Pokemon.Name = "L_Pokemon_4_Pokemon"; - this.L_Pokemon_4_Pokemon.Size = new System.Drawing.Size(55, 13); - this.L_Pokemon_4_Pokemon.TabIndex = 22; - this.L_Pokemon_4_Pokemon.Text = "Pokémon:"; - // - // CB_Pokemon_4_Pokemon - // - this.CB_Pokemon_4_Pokemon.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_4_Pokemon.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_4_Pokemon.Enabled = false; - this.CB_Pokemon_4_Pokemon.FormattingEnabled = true; - this.CB_Pokemon_4_Pokemon.Location = new System.Drawing.Point(72, 6); - this.CB_Pokemon_4_Pokemon.Name = "CB_Pokemon_4_Pokemon"; - this.CB_Pokemon_4_Pokemon.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_4_Pokemon.TabIndex = 21; - this.CB_Pokemon_4_Pokemon.SelectedIndexChanged += new System.EventHandler(this.refreshSpeciesAbility); - // - // tabPage6 - // - this.tabPage6.BackColor = System.Drawing.SystemColors.Control; - this.tabPage6.Controls.Add(this.L_Pokemon_5_Gender); - this.tabPage6.Controls.Add(this.CB_Pokemon_5_Gender); - this.tabPage6.Controls.Add(this.L_Pokemon_5_Ability); - this.tabPage6.Controls.Add(this.CB_Pokemon_5_Ability); - this.tabPage6.Controls.Add(this.L_Pokemon_5_Form); - this.tabPage6.Controls.Add(this.CB_Pokemon_5_Form); - this.tabPage6.Controls.Add(this.L_Pokemon_5_IVs); - this.tabPage6.Controls.Add(this.CB_Pokemon_5_IVs); - this.tabPage6.Controls.Add(this.L_Pokemon_5_Move_4); - this.tabPage6.Controls.Add(this.CB_Pokemon_5_Move_4); - this.tabPage6.Controls.Add(this.L_Pokemon_5_Move_3); - this.tabPage6.Controls.Add(this.CB_Pokemon_5_Move_3); - this.tabPage6.Controls.Add(this.L_Pokemon_5_Move_2); - this.tabPage6.Controls.Add(this.CB_Pokemon_5_Move_2); - this.tabPage6.Controls.Add(this.L_Pokemon_5_Move_1); - this.tabPage6.Controls.Add(this.CB_Pokemon_5_Move_1); - this.tabPage6.Controls.Add(this.L_Pokemon_5_Item); - this.tabPage6.Controls.Add(this.CB_Pokemon_5_Item); - this.tabPage6.Controls.Add(this.L_Pokemon_5_Level); - this.tabPage6.Controls.Add(this.CB_Pokemon_5_Level); - this.tabPage6.Controls.Add(this.L_Pokemon_5_Pokemon); - this.tabPage6.Controls.Add(this.CB_Pokemon_5_Pokemon); - this.tabPage6.Location = new System.Drawing.Point(4, 22); - this.tabPage6.Name = "tabPage6"; - this.tabPage6.Padding = new System.Windows.Forms.Padding(3); - this.tabPage6.Size = new System.Drawing.Size(557, 127); - this.tabPage6.TabIndex = 5; - this.tabPage6.Text = "Pokémon 5"; - // - // L_Pokemon_5_Gender - // - this.L_Pokemon_5_Gender.AutoSize = true; - this.L_Pokemon_5_Gender.Location = new System.Drawing.Point(378, 63); - this.L_Pokemon_5_Gender.Name = "L_Pokemon_5_Gender"; - this.L_Pokemon_5_Gender.Size = new System.Drawing.Size(45, 13); - this.L_Pokemon_5_Gender.TabIndex = 65; - this.L_Pokemon_5_Gender.Text = "Gender:"; - // - // CB_Pokemon_5_Gender - // - this.CB_Pokemon_5_Gender.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_5_Gender.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_5_Gender.Enabled = false; - this.CB_Pokemon_5_Gender.FormattingEnabled = true; - this.CB_Pokemon_5_Gender.Location = new System.Drawing.Point(429, 60); - this.CB_Pokemon_5_Gender.Name = "CB_Pokemon_5_Gender"; - this.CB_Pokemon_5_Gender.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_5_Gender.TabIndex = 64; - this.CB_Pokemon_5_Gender.SelectedIndexChanged += new System.EventHandler(this.changeTeam); - // - // L_Pokemon_5_Ability - // - this.L_Pokemon_5_Ability.AutoSize = true; - this.L_Pokemon_5_Ability.Location = new System.Drawing.Point(386, 36); - this.L_Pokemon_5_Ability.Name = "L_Pokemon_5_Ability"; - this.L_Pokemon_5_Ability.Size = new System.Drawing.Size(37, 13); - this.L_Pokemon_5_Ability.TabIndex = 63; - this.L_Pokemon_5_Ability.Text = "Ability:"; - // - // CB_Pokemon_5_Ability - // - this.CB_Pokemon_5_Ability.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_5_Ability.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_5_Ability.Enabled = false; - this.CB_Pokemon_5_Ability.FormattingEnabled = true; - this.CB_Pokemon_5_Ability.Location = new System.Drawing.Point(429, 33); - this.CB_Pokemon_5_Ability.Name = "CB_Pokemon_5_Ability"; - this.CB_Pokemon_5_Ability.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_5_Ability.TabIndex = 62; - // - // L_Pokemon_5_Form - // - this.L_Pokemon_5_Form.AutoSize = true; - this.L_Pokemon_5_Form.Location = new System.Drawing.Point(33, 36); - this.L_Pokemon_5_Form.Name = "L_Pokemon_5_Form"; - this.L_Pokemon_5_Form.Size = new System.Drawing.Size(33, 13); - this.L_Pokemon_5_Form.TabIndex = 59; - this.L_Pokemon_5_Form.Text = "Form:"; - // - // CB_Pokemon_5_Form - // - this.CB_Pokemon_5_Form.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_5_Form.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_5_Form.Enabled = false; - this.CB_Pokemon_5_Form.FormattingEnabled = true; - this.CB_Pokemon_5_Form.Location = new System.Drawing.Point(72, 33); - this.CB_Pokemon_5_Form.Name = "CB_Pokemon_5_Form"; - this.CB_Pokemon_5_Form.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_5_Form.TabIndex = 58; - this.CB_Pokemon_5_Form.SelectedIndexChanged += new System.EventHandler(this.refreshFormAbility); - // - // L_Pokemon_5_IVs - // - this.L_Pokemon_5_IVs.AutoSize = true; - this.L_Pokemon_5_IVs.Location = new System.Drawing.Point(398, 9); - this.L_Pokemon_5_IVs.Name = "L_Pokemon_5_IVs"; - this.L_Pokemon_5_IVs.Size = new System.Drawing.Size(25, 13); - this.L_Pokemon_5_IVs.TabIndex = 38; - this.L_Pokemon_5_IVs.Text = "IVs:"; - // - // CB_Pokemon_5_IVs - // - this.CB_Pokemon_5_IVs.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_5_IVs.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_5_IVs.Enabled = false; - this.CB_Pokemon_5_IVs.FormattingEnabled = true; - this.CB_Pokemon_5_IVs.Location = new System.Drawing.Point(429, 6); - this.CB_Pokemon_5_IVs.Name = "CB_Pokemon_5_IVs"; - this.CB_Pokemon_5_IVs.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_5_IVs.TabIndex = 37; - // - // L_Pokemon_5_Move_4 - // - this.L_Pokemon_5_Move_4.AutoSize = true; - this.L_Pokemon_5_Move_4.Location = new System.Drawing.Point(199, 90); - this.L_Pokemon_5_Move_4.Name = "L_Pokemon_5_Move_4"; - this.L_Pokemon_5_Move_4.Size = new System.Drawing.Size(46, 13); - this.L_Pokemon_5_Move_4.TabIndex = 34; - this.L_Pokemon_5_Move_4.Text = "Move 4:"; - // - // CB_Pokemon_5_Move_4 - // - this.CB_Pokemon_5_Move_4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_5_Move_4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_5_Move_4.Enabled = false; - this.CB_Pokemon_5_Move_4.FormattingEnabled = true; - this.CB_Pokemon_5_Move_4.Location = new System.Drawing.Point(251, 87); - this.CB_Pokemon_5_Move_4.Name = "CB_Pokemon_5_Move_4"; - this.CB_Pokemon_5_Move_4.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_5_Move_4.TabIndex = 33; - // - // L_Pokemon_5_Move_3 - // - this.L_Pokemon_5_Move_3.AutoSize = true; - this.L_Pokemon_5_Move_3.Location = new System.Drawing.Point(199, 63); - this.L_Pokemon_5_Move_3.Name = "L_Pokemon_5_Move_3"; - this.L_Pokemon_5_Move_3.Size = new System.Drawing.Size(46, 13); - this.L_Pokemon_5_Move_3.TabIndex = 32; - this.L_Pokemon_5_Move_3.Text = "Move 3:"; - // - // CB_Pokemon_5_Move_3 - // - this.CB_Pokemon_5_Move_3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_5_Move_3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_5_Move_3.Enabled = false; - this.CB_Pokemon_5_Move_3.FormattingEnabled = true; - this.CB_Pokemon_5_Move_3.Location = new System.Drawing.Point(251, 60); - this.CB_Pokemon_5_Move_3.Name = "CB_Pokemon_5_Move_3"; - this.CB_Pokemon_5_Move_3.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_5_Move_3.TabIndex = 31; - // - // L_Pokemon_5_Move_2 - // - this.L_Pokemon_5_Move_2.AutoSize = true; - this.L_Pokemon_5_Move_2.Location = new System.Drawing.Point(199, 36); - this.L_Pokemon_5_Move_2.Name = "L_Pokemon_5_Move_2"; - this.L_Pokemon_5_Move_2.Size = new System.Drawing.Size(46, 13); - this.L_Pokemon_5_Move_2.TabIndex = 30; - this.L_Pokemon_5_Move_2.Text = "Move 2:"; - // - // CB_Pokemon_5_Move_2 - // - this.CB_Pokemon_5_Move_2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_5_Move_2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_5_Move_2.Enabled = false; - this.CB_Pokemon_5_Move_2.FormattingEnabled = true; - this.CB_Pokemon_5_Move_2.Location = new System.Drawing.Point(251, 33); - this.CB_Pokemon_5_Move_2.Name = "CB_Pokemon_5_Move_2"; - this.CB_Pokemon_5_Move_2.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_5_Move_2.TabIndex = 29; - // - // L_Pokemon_5_Move_1 - // - this.L_Pokemon_5_Move_1.AutoSize = true; - this.L_Pokemon_5_Move_1.Location = new System.Drawing.Point(199, 9); - this.L_Pokemon_5_Move_1.Name = "L_Pokemon_5_Move_1"; - this.L_Pokemon_5_Move_1.Size = new System.Drawing.Size(46, 13); - this.L_Pokemon_5_Move_1.TabIndex = 28; - this.L_Pokemon_5_Move_1.Text = "Move 1:"; - // - // CB_Pokemon_5_Move_1 - // - this.CB_Pokemon_5_Move_1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_5_Move_1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_5_Move_1.Enabled = false; - this.CB_Pokemon_5_Move_1.FormattingEnabled = true; - this.CB_Pokemon_5_Move_1.Location = new System.Drawing.Point(251, 6); - this.CB_Pokemon_5_Move_1.Name = "CB_Pokemon_5_Move_1"; - this.CB_Pokemon_5_Move_1.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_5_Move_1.TabIndex = 27; - // - // L_Pokemon_5_Item - // - this.L_Pokemon_5_Item.AutoSize = true; - this.L_Pokemon_5_Item.Location = new System.Drawing.Point(36, 90); - this.L_Pokemon_5_Item.Name = "L_Pokemon_5_Item"; - this.L_Pokemon_5_Item.Size = new System.Drawing.Size(30, 13); - this.L_Pokemon_5_Item.TabIndex = 26; - this.L_Pokemon_5_Item.Text = "Item:"; - // - // CB_Pokemon_5_Item - // - this.CB_Pokemon_5_Item.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_5_Item.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_5_Item.Enabled = false; - this.CB_Pokemon_5_Item.FormattingEnabled = true; - this.CB_Pokemon_5_Item.Location = new System.Drawing.Point(72, 87); - this.CB_Pokemon_5_Item.Name = "CB_Pokemon_5_Item"; - this.CB_Pokemon_5_Item.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_5_Item.TabIndex = 25; - this.CB_Pokemon_5_Item.SelectedIndexChanged += new System.EventHandler(this.changeTeam); - // - // L_Pokemon_5_Level - // - this.L_Pokemon_5_Level.AutoSize = true; - this.L_Pokemon_5_Level.Location = new System.Drawing.Point(30, 63); - this.L_Pokemon_5_Level.Name = "L_Pokemon_5_Level"; - this.L_Pokemon_5_Level.Size = new System.Drawing.Size(36, 13); - this.L_Pokemon_5_Level.TabIndex = 24; - this.L_Pokemon_5_Level.Text = "Level:"; - // - // CB_Pokemon_5_Level - // - this.CB_Pokemon_5_Level.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_5_Level.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_5_Level.Enabled = false; - this.CB_Pokemon_5_Level.FormattingEnabled = true; - this.CB_Pokemon_5_Level.Location = new System.Drawing.Point(72, 60); - this.CB_Pokemon_5_Level.Name = "CB_Pokemon_5_Level"; - this.CB_Pokemon_5_Level.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_5_Level.TabIndex = 23; - // - // L_Pokemon_5_Pokemon - // - this.L_Pokemon_5_Pokemon.AutoSize = true; - this.L_Pokemon_5_Pokemon.Location = new System.Drawing.Point(11, 9); - this.L_Pokemon_5_Pokemon.Name = "L_Pokemon_5_Pokemon"; - this.L_Pokemon_5_Pokemon.Size = new System.Drawing.Size(55, 13); - this.L_Pokemon_5_Pokemon.TabIndex = 22; - this.L_Pokemon_5_Pokemon.Text = "Pokémon:"; - // - // CB_Pokemon_5_Pokemon - // - this.CB_Pokemon_5_Pokemon.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_5_Pokemon.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_5_Pokemon.Enabled = false; - this.CB_Pokemon_5_Pokemon.FormattingEnabled = true; - this.CB_Pokemon_5_Pokemon.Location = new System.Drawing.Point(72, 6); - this.CB_Pokemon_5_Pokemon.Name = "CB_Pokemon_5_Pokemon"; - this.CB_Pokemon_5_Pokemon.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_5_Pokemon.TabIndex = 21; - this.CB_Pokemon_5_Pokemon.SelectedIndexChanged += new System.EventHandler(this.refreshSpeciesAbility); - // - // tabPage7 - // - this.tabPage7.BackColor = System.Drawing.SystemColors.Control; - this.tabPage7.Controls.Add(this.L_Pokemon_6_Gender); - this.tabPage7.Controls.Add(this.CB_Pokemon_6_Gender); - this.tabPage7.Controls.Add(this.L_Pokemon_6_Ability); - this.tabPage7.Controls.Add(this.CB_Pokemon_6_Ability); - this.tabPage7.Controls.Add(this.L_Pokemon_6_Form); - this.tabPage7.Controls.Add(this.CB_Pokemon_6_Form); - this.tabPage7.Controls.Add(this.L_Pokemon_6_IVs); - this.tabPage7.Controls.Add(this.CB_Pokemon_6_IVs); - this.tabPage7.Controls.Add(this.L_Pokemon_6_Move_4); - this.tabPage7.Controls.Add(this.CB_Pokemon_6_Move_4); - this.tabPage7.Controls.Add(this.L_Pokemon_6_Move_3); - this.tabPage7.Controls.Add(this.CB_Pokemon_6_Move_3); - this.tabPage7.Controls.Add(this.L_Pokemon_6_Move_2); - this.tabPage7.Controls.Add(this.CB_Pokemon_6_Move_2); - this.tabPage7.Controls.Add(this.L_Pokemon_6_Move_1); - this.tabPage7.Controls.Add(this.CB_Pokemon_6_Move_1); - this.tabPage7.Controls.Add(this.L_Pokemon_6_Item); - this.tabPage7.Controls.Add(this.CB_Pokemon_6_Item); - this.tabPage7.Controls.Add(this.L_Pokemon_6_Level); - this.tabPage7.Controls.Add(this.CB_Pokemon_6_Level); - this.tabPage7.Controls.Add(this.L_Pokemon_6_Pokemon); - this.tabPage7.Controls.Add(this.CB_Pokemon_6_Pokemon); - this.tabPage7.Location = new System.Drawing.Point(4, 22); - this.tabPage7.Name = "tabPage7"; - this.tabPage7.Padding = new System.Windows.Forms.Padding(3); - this.tabPage7.Size = new System.Drawing.Size(557, 127); - this.tabPage7.TabIndex = 6; - this.tabPage7.Text = "Pokémon 6"; - // - // L_Pokemon_6_Gender - // - this.L_Pokemon_6_Gender.AutoSize = true; - this.L_Pokemon_6_Gender.Location = new System.Drawing.Point(378, 63); - this.L_Pokemon_6_Gender.Name = "L_Pokemon_6_Gender"; - this.L_Pokemon_6_Gender.Size = new System.Drawing.Size(45, 13); - this.L_Pokemon_6_Gender.TabIndex = 65; - this.L_Pokemon_6_Gender.Text = "Gender:"; - // - // CB_Pokemon_6_Gender - // - this.CB_Pokemon_6_Gender.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_6_Gender.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_6_Gender.Enabled = false; - this.CB_Pokemon_6_Gender.FormattingEnabled = true; - this.CB_Pokemon_6_Gender.Location = new System.Drawing.Point(429, 60); - this.CB_Pokemon_6_Gender.Name = "CB_Pokemon_6_Gender"; - this.CB_Pokemon_6_Gender.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_6_Gender.TabIndex = 64; - this.CB_Pokemon_6_Gender.SelectedIndexChanged += new System.EventHandler(this.changeTeam); - // - // L_Pokemon_6_Ability - // - this.L_Pokemon_6_Ability.AutoSize = true; - this.L_Pokemon_6_Ability.Location = new System.Drawing.Point(386, 36); - this.L_Pokemon_6_Ability.Name = "L_Pokemon_6_Ability"; - this.L_Pokemon_6_Ability.Size = new System.Drawing.Size(37, 13); - this.L_Pokemon_6_Ability.TabIndex = 63; - this.L_Pokemon_6_Ability.Text = "Ability:"; - // - // CB_Pokemon_6_Ability - // - this.CB_Pokemon_6_Ability.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_6_Ability.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_6_Ability.Enabled = false; - this.CB_Pokemon_6_Ability.FormattingEnabled = true; - this.CB_Pokemon_6_Ability.Location = new System.Drawing.Point(429, 33); - this.CB_Pokemon_6_Ability.Name = "CB_Pokemon_6_Ability"; - this.CB_Pokemon_6_Ability.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_6_Ability.TabIndex = 62; - // - // L_Pokemon_6_Form - // - this.L_Pokemon_6_Form.AutoSize = true; - this.L_Pokemon_6_Form.Location = new System.Drawing.Point(33, 36); - this.L_Pokemon_6_Form.Name = "L_Pokemon_6_Form"; - this.L_Pokemon_6_Form.Size = new System.Drawing.Size(33, 13); - this.L_Pokemon_6_Form.TabIndex = 59; - this.L_Pokemon_6_Form.Text = "Form:"; - // - // CB_Pokemon_6_Form - // - this.CB_Pokemon_6_Form.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_6_Form.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_6_Form.Enabled = false; - this.CB_Pokemon_6_Form.FormattingEnabled = true; - this.CB_Pokemon_6_Form.Location = new System.Drawing.Point(72, 33); - this.CB_Pokemon_6_Form.Name = "CB_Pokemon_6_Form"; - this.CB_Pokemon_6_Form.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_6_Form.TabIndex = 58; - this.CB_Pokemon_6_Form.SelectedIndexChanged += new System.EventHandler(this.refreshFormAbility); - // - // L_Pokemon_6_IVs - // - this.L_Pokemon_6_IVs.AutoSize = true; - this.L_Pokemon_6_IVs.Location = new System.Drawing.Point(398, 9); - this.L_Pokemon_6_IVs.Name = "L_Pokemon_6_IVs"; - this.L_Pokemon_6_IVs.Size = new System.Drawing.Size(25, 13); - this.L_Pokemon_6_IVs.TabIndex = 38; - this.L_Pokemon_6_IVs.Text = "IVs:"; - // - // CB_Pokemon_6_IVs - // - this.CB_Pokemon_6_IVs.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_6_IVs.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_6_IVs.Enabled = false; - this.CB_Pokemon_6_IVs.FormattingEnabled = true; - this.CB_Pokemon_6_IVs.Location = new System.Drawing.Point(429, 6); - this.CB_Pokemon_6_IVs.Name = "CB_Pokemon_6_IVs"; - this.CB_Pokemon_6_IVs.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_6_IVs.TabIndex = 37; - // - // L_Pokemon_6_Move_4 - // - this.L_Pokemon_6_Move_4.AutoSize = true; - this.L_Pokemon_6_Move_4.Location = new System.Drawing.Point(199, 90); - this.L_Pokemon_6_Move_4.Name = "L_Pokemon_6_Move_4"; - this.L_Pokemon_6_Move_4.Size = new System.Drawing.Size(46, 13); - this.L_Pokemon_6_Move_4.TabIndex = 34; - this.L_Pokemon_6_Move_4.Text = "Move 4:"; - // - // CB_Pokemon_6_Move_4 - // - this.CB_Pokemon_6_Move_4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_6_Move_4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_6_Move_4.Enabled = false; - this.CB_Pokemon_6_Move_4.FormattingEnabled = true; - this.CB_Pokemon_6_Move_4.Location = new System.Drawing.Point(251, 87); - this.CB_Pokemon_6_Move_4.Name = "CB_Pokemon_6_Move_4"; - this.CB_Pokemon_6_Move_4.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_6_Move_4.TabIndex = 33; - // - // L_Pokemon_6_Move_3 - // - this.L_Pokemon_6_Move_3.AutoSize = true; - this.L_Pokemon_6_Move_3.Location = new System.Drawing.Point(199, 63); - this.L_Pokemon_6_Move_3.Name = "L_Pokemon_6_Move_3"; - this.L_Pokemon_6_Move_3.Size = new System.Drawing.Size(46, 13); - this.L_Pokemon_6_Move_3.TabIndex = 32; - this.L_Pokemon_6_Move_3.Text = "Move 3:"; - // - // CB_Pokemon_6_Move_3 - // - this.CB_Pokemon_6_Move_3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_6_Move_3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_6_Move_3.Enabled = false; - this.CB_Pokemon_6_Move_3.FormattingEnabled = true; - this.CB_Pokemon_6_Move_3.Location = new System.Drawing.Point(251, 60); - this.CB_Pokemon_6_Move_3.Name = "CB_Pokemon_6_Move_3"; - this.CB_Pokemon_6_Move_3.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_6_Move_3.TabIndex = 31; - // - // L_Pokemon_6_Move_2 - // - this.L_Pokemon_6_Move_2.AutoSize = true; - this.L_Pokemon_6_Move_2.Location = new System.Drawing.Point(199, 36); - this.L_Pokemon_6_Move_2.Name = "L_Pokemon_6_Move_2"; - this.L_Pokemon_6_Move_2.Size = new System.Drawing.Size(46, 13); - this.L_Pokemon_6_Move_2.TabIndex = 30; - this.L_Pokemon_6_Move_2.Text = "Move 2:"; - // - // CB_Pokemon_6_Move_2 - // - this.CB_Pokemon_6_Move_2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_6_Move_2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_6_Move_2.Enabled = false; - this.CB_Pokemon_6_Move_2.FormattingEnabled = true; - this.CB_Pokemon_6_Move_2.Location = new System.Drawing.Point(251, 33); - this.CB_Pokemon_6_Move_2.Name = "CB_Pokemon_6_Move_2"; - this.CB_Pokemon_6_Move_2.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_6_Move_2.TabIndex = 29; - // - // L_Pokemon_6_Move_1 - // - this.L_Pokemon_6_Move_1.AutoSize = true; - this.L_Pokemon_6_Move_1.Location = new System.Drawing.Point(199, 9); - this.L_Pokemon_6_Move_1.Name = "L_Pokemon_6_Move_1"; - this.L_Pokemon_6_Move_1.Size = new System.Drawing.Size(46, 13); - this.L_Pokemon_6_Move_1.TabIndex = 28; - this.L_Pokemon_6_Move_1.Text = "Move 1:"; - // - // CB_Pokemon_6_Move_1 - // - this.CB_Pokemon_6_Move_1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_6_Move_1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_6_Move_1.Enabled = false; - this.CB_Pokemon_6_Move_1.FormattingEnabled = true; - this.CB_Pokemon_6_Move_1.Location = new System.Drawing.Point(251, 6); - this.CB_Pokemon_6_Move_1.Name = "CB_Pokemon_6_Move_1"; - this.CB_Pokemon_6_Move_1.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_6_Move_1.TabIndex = 27; - // - // L_Pokemon_6_Item - // - this.L_Pokemon_6_Item.AutoSize = true; - this.L_Pokemon_6_Item.Location = new System.Drawing.Point(36, 90); - this.L_Pokemon_6_Item.Name = "L_Pokemon_6_Item"; - this.L_Pokemon_6_Item.Size = new System.Drawing.Size(30, 13); - this.L_Pokemon_6_Item.TabIndex = 26; - this.L_Pokemon_6_Item.Text = "Item:"; - // - // CB_Pokemon_6_Item - // - this.CB_Pokemon_6_Item.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_6_Item.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_6_Item.Enabled = false; - this.CB_Pokemon_6_Item.FormattingEnabled = true; - this.CB_Pokemon_6_Item.Location = new System.Drawing.Point(72, 87); - this.CB_Pokemon_6_Item.Name = "CB_Pokemon_6_Item"; - this.CB_Pokemon_6_Item.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_6_Item.TabIndex = 25; - this.CB_Pokemon_6_Item.SelectedIndexChanged += new System.EventHandler(this.changeTeam); - // - // L_Pokemon_6_Level - // - this.L_Pokemon_6_Level.AutoSize = true; - this.L_Pokemon_6_Level.Location = new System.Drawing.Point(30, 63); - this.L_Pokemon_6_Level.Name = "L_Pokemon_6_Level"; - this.L_Pokemon_6_Level.Size = new System.Drawing.Size(36, 13); - this.L_Pokemon_6_Level.TabIndex = 24; - this.L_Pokemon_6_Level.Text = "Level:"; - // - // CB_Pokemon_6_Level - // - this.CB_Pokemon_6_Level.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_6_Level.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_6_Level.Enabled = false; - this.CB_Pokemon_6_Level.FormattingEnabled = true; - this.CB_Pokemon_6_Level.Location = new System.Drawing.Point(72, 60); - this.CB_Pokemon_6_Level.Name = "CB_Pokemon_6_Level"; - this.CB_Pokemon_6_Level.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_6_Level.TabIndex = 23; - // - // L_Pokemon_6_Pokemon - // - this.L_Pokemon_6_Pokemon.AutoSize = true; - this.L_Pokemon_6_Pokemon.Location = new System.Drawing.Point(11, 9); - this.L_Pokemon_6_Pokemon.Name = "L_Pokemon_6_Pokemon"; - this.L_Pokemon_6_Pokemon.Size = new System.Drawing.Size(55, 13); - this.L_Pokemon_6_Pokemon.TabIndex = 22; - this.L_Pokemon_6_Pokemon.Text = "Pokémon:"; - // - // CB_Pokemon_6_Pokemon - // - this.CB_Pokemon_6_Pokemon.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon_6_Pokemon.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon_6_Pokemon.Enabled = false; - this.CB_Pokemon_6_Pokemon.FormattingEnabled = true; - this.CB_Pokemon_6_Pokemon.Location = new System.Drawing.Point(72, 6); - this.CB_Pokemon_6_Pokemon.Name = "CB_Pokemon_6_Pokemon"; - this.CB_Pokemon_6_Pokemon.Size = new System.Drawing.Size(121, 21); - this.CB_Pokemon_6_Pokemon.TabIndex = 21; - this.CB_Pokemon_6_Pokemon.SelectedIndexChanged += new System.EventHandler(this.refreshSpeciesAbility); - // - // B_Randomize - // - this.B_Randomize.Location = new System.Drawing.Point(384, 4); - this.B_Randomize.Name = "B_Randomize"; - this.B_Randomize.Size = new System.Drawing.Size(93, 23); - this.B_Randomize.TabIndex = 68; - this.B_Randomize.Text = "Randomize All"; - this.B_Randomize.UseVisualStyleBackColor = true; - this.B_Randomize.Click += new System.EventHandler(this.B_Randomize_Click); - // - // TB_Text1 - // - this.TB_Text1.Location = new System.Drawing.Point(66, 256); - this.TB_Text1.Name = "TB_Text1"; - this.TB_Text1.Size = new System.Drawing.Size(511, 20); - this.TB_Text1.TabIndex = 69; - // - // L_Text1 - // - this.L_Text1.Location = new System.Drawing.Point(-6, 258); - this.L_Text1.Name = "L_Text1"; - this.L_Text1.Size = new System.Drawing.Size(66, 15); - this.L_Text1.TabIndex = 425; - this.L_Text1.Text = "Text1:"; - this.L_Text1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // PB_Team6 - // - this.PB_Team6.Location = new System.Drawing.Point(496, 190); - this.PB_Team6.Name = "PB_Team6"; - this.PB_Team6.Size = new System.Drawing.Size(80, 60); - this.PB_Team6.TabIndex = 432; - this.PB_Team6.TabStop = false; - this.PB_Team6.Click += new System.EventHandler(this.gotoParty); - // - // PB_Team5 - // - this.PB_Team5.Location = new System.Drawing.Point(410, 190); - this.PB_Team5.Name = "PB_Team5"; - this.PB_Team5.Size = new System.Drawing.Size(80, 60); - this.PB_Team5.TabIndex = 433; - this.PB_Team5.TabStop = false; - this.PB_Team5.Click += new System.EventHandler(this.gotoParty); - // - // PB_Team4 - // - this.PB_Team4.Location = new System.Drawing.Point(324, 190); - this.PB_Team4.Name = "PB_Team4"; - this.PB_Team4.Size = new System.Drawing.Size(80, 60); - this.PB_Team4.TabIndex = 434; - this.PB_Team4.TabStop = false; - this.PB_Team4.Click += new System.EventHandler(this.gotoParty); - // - // PB_Team3 - // - this.PB_Team3.Location = new System.Drawing.Point(238, 190); - this.PB_Team3.Name = "PB_Team3"; - this.PB_Team3.Size = new System.Drawing.Size(80, 60); - this.PB_Team3.TabIndex = 435; - this.PB_Team3.TabStop = false; - this.PB_Team3.Click += new System.EventHandler(this.gotoParty); - // - // PB_Team2 - // - this.PB_Team2.Location = new System.Drawing.Point(152, 190); - this.PB_Team2.Name = "PB_Team2"; - this.PB_Team2.Size = new System.Drawing.Size(80, 60); - this.PB_Team2.TabIndex = 436; - this.PB_Team2.TabStop = false; - this.PB_Team2.Click += new System.EventHandler(this.gotoParty); - // - // PB_Team1 - // - this.PB_Team1.Location = new System.Drawing.Point(66, 190); - this.PB_Team1.Name = "PB_Team1"; - this.PB_Team1.Size = new System.Drawing.Size(80, 60); - this.PB_Team1.TabIndex = 437; - this.PB_Team1.TabStop = false; - this.PB_Team1.Click += new System.EventHandler(this.gotoParty); - // - // label4 - // - this.label4.Location = new System.Drawing.Point(-6, 213); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(66, 15); - this.label4.TabIndex = 438; - this.label4.Text = "Team:"; - this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_Text2 - // - this.L_Text2.Location = new System.Drawing.Point(-6, 284); - this.L_Text2.Name = "L_Text2"; - this.L_Text2.Size = new System.Drawing.Size(66, 15); - this.L_Text2.TabIndex = 440; - this.L_Text2.Text = "Text2:"; - this.L_Text2.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // TB_Text2 - // - this.TB_Text2.Location = new System.Drawing.Point(66, 282); - this.TB_Text2.Name = "TB_Text2"; - this.TB_Text2.Size = new System.Drawing.Size(511, 20); - this.TB_Text2.TabIndex = 439; - // - // RSTE - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(584, 256); - this.Controls.Add(this.L_Text2); - this.Controls.Add(this.TB_Text2); - this.Controls.Add(this.label4); - this.Controls.Add(this.PB_Team1); - this.Controls.Add(this.PB_Team2); - this.Controls.Add(this.PB_Team3); - this.Controls.Add(this.PB_Team4); - this.Controls.Add(this.PB_Team5); - this.Controls.Add(this.PB_Team6); - this.Controls.Add(this.L_Text1); - this.Controls.Add(this.TB_Text1); - this.Controls.Add(this.B_Randomize); - this.Controls.Add(this.B_Dump); - this.Controls.Add(this.L_TrainerID); - this.Controls.Add(this.CB_TrainerID); - this.Controls.Add(this.tabControl1); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; - this.MaximizeBox = false; - this.Name = "RSTE"; - this.Text = "Trainer Editor"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.formClosing); - this.tabControl1.ResumeLayout(false); - this.tabPage1.ResumeLayout(false); - this.tabPage1.PerformLayout(); - this.tabPage2.ResumeLayout(false); - this.tabPage2.PerformLayout(); - this.tabPage3.ResumeLayout(false); - this.tabPage3.PerformLayout(); - this.tabPage4.ResumeLayout(false); - this.tabPage4.PerformLayout(); - this.tabPage5.ResumeLayout(false); - this.tabPage5.PerformLayout(); - this.tabPage6.ResumeLayout(false); - this.tabPage6.PerformLayout(); - this.tabPage7.ResumeLayout(false); - this.tabPage7.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.PB_Team6)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_Team5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_Team4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_Team3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_Team2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_Team1)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Button B_Dump; - private System.Windows.Forms.Label L_TrainerID; - private System.Windows.Forms.ComboBox CB_TrainerID; - private System.Windows.Forms.TabControl tabControl1; - private System.Windows.Forms.TabPage tabPage1; - private System.Windows.Forms.CheckBox checkBox_Healer; - private System.Windows.Forms.Label L_TPrize; - private System.Windows.Forms.ComboBox CB_Prize; - private System.Windows.Forms.Label L_AI; - private System.Windows.Forms.ComboBox CB_AI; - private System.Windows.Forms.Label L_Money; - private System.Windows.Forms.ComboBox CB_Money; - private System.Windows.Forms.Label L_Battle_Type; - private System.Windows.Forms.ComboBox CB_Battle_Type; - private System.Windows.Forms.Label L_Trainer_Class; - private System.Windows.Forms.ComboBox CB_Trainer_Class; - private System.Windows.Forms.CheckBox checkBox_Moves; - private System.Windows.Forms.CheckBox checkBox_Item; - private System.Windows.Forms.Label L_Item_4; - private System.Windows.Forms.ComboBox CB_Item_4; - private System.Windows.Forms.Label L_Item_3; - private System.Windows.Forms.ComboBox CB_Item_3; - private System.Windows.Forms.Label L_Item_2; - private System.Windows.Forms.ComboBox CB_Item_2; - private System.Windows.Forms.Label L_Item_1; - private System.Windows.Forms.ComboBox CB_Item_1; - private System.Windows.Forms.Label L_numPokemon; - private System.Windows.Forms.ComboBox CB_numPokemon; - private System.Windows.Forms.TabPage tabPage2; - private System.Windows.Forms.Label L_Pokemon_1_Form; - private System.Windows.Forms.ComboBox CB_Pokemon_1_Ability; - private System.Windows.Forms.Label L_Pokemon_1_Gender; - private System.Windows.Forms.ComboBox CB_Pokemon_1_Gender; - private System.Windows.Forms.Label L_Pokemon_1_Ability; - private System.Windows.Forms.ComboBox CB_Pokemon_1_Form; - private System.Windows.Forms.Label L_Pokemon_1_IVs; - private System.Windows.Forms.ComboBox CB_Pokemon_1_IVs; - private System.Windows.Forms.Label L_Pokemon_1_Move_4; - private System.Windows.Forms.ComboBox CB_Pokemon_1_Move_4; - private System.Windows.Forms.Label L_Pokemon_1_Move_3; - private System.Windows.Forms.ComboBox CB_Pokemon_1_Move_3; - private System.Windows.Forms.Label L_Pokemon_1_Move_2; - private System.Windows.Forms.ComboBox CB_Pokemon_1_Move_2; - private System.Windows.Forms.Label L_Pokemon_1_Move_1; - private System.Windows.Forms.ComboBox CB_Pokemon_1_Move_1; - private System.Windows.Forms.Label L_Pokemon_1_Item; - private System.Windows.Forms.ComboBox CB_Pokemon_1_Item; - private System.Windows.Forms.Label L_Pokemon_1_Level; - private System.Windows.Forms.ComboBox CB_Pokemon_1_Level; - private System.Windows.Forms.Label L_Pokemon_1_Pokemon; - private System.Windows.Forms.ComboBox CB_Pokemon_1_Pokemon; - private System.Windows.Forms.TabPage tabPage3; - private System.Windows.Forms.Label L_Pokemon_2_Gender; - private System.Windows.Forms.ComboBox CB_Pokemon_2_Gender; - private System.Windows.Forms.Label L_Pokemon_2_Ability; - private System.Windows.Forms.ComboBox CB_Pokemon_2_Ability; - private System.Windows.Forms.Label L_Pokemon_2_Form; - private System.Windows.Forms.ComboBox CB_Pokemon_2_Form; - private System.Windows.Forms.Label L_Pokemon_2_IVs; - private System.Windows.Forms.ComboBox CB_Pokemon_2_IVs; - private System.Windows.Forms.Label L_Pokemon_2_Move_4; - private System.Windows.Forms.ComboBox CB_Pokemon_2_Move_4; - private System.Windows.Forms.Label L_Pokemon_2_Move_3; - private System.Windows.Forms.ComboBox CB_Pokemon_2_Move_3; - private System.Windows.Forms.Label L_Pokemon_2_Move_2; - private System.Windows.Forms.ComboBox CB_Pokemon_2_Move_2; - private System.Windows.Forms.Label L_Pokemon_2_Move_1; - private System.Windows.Forms.ComboBox CB_Pokemon_2_Move_1; - private System.Windows.Forms.Label L_Pokemon_2_Item; - private System.Windows.Forms.ComboBox CB_Pokemon_2_Item; - private System.Windows.Forms.Label L_CB_Pokemon_2_Level; - private System.Windows.Forms.ComboBox CB_Pokemon_2_Level; - private System.Windows.Forms.Label L_Pokemon_2_Pokemon; - private System.Windows.Forms.ComboBox CB_Pokemon_2_Pokemon; - private System.Windows.Forms.TabPage tabPage4; - private System.Windows.Forms.Label L_Pokemon_3_Gender; - private System.Windows.Forms.ComboBox CB_Pokemon_3_Gender; - private System.Windows.Forms.Label L_Pokemon_3_Ability; - private System.Windows.Forms.ComboBox CB_Pokemon_3_Ability; - private System.Windows.Forms.Label L_Pokemon_3_Form; - private System.Windows.Forms.ComboBox CB_Pokemon_3_Form; - private System.Windows.Forms.Label L_Pokemon_3_IVs; - private System.Windows.Forms.ComboBox CB_Pokemon_3_IVs; - private System.Windows.Forms.Label L_Pokemon_3_Move_4; - private System.Windows.Forms.ComboBox CB_Pokemon_3_Move_4; - private System.Windows.Forms.Label L_Pokemon_3_Move_3; - private System.Windows.Forms.ComboBox CB_Pokemon_3_Move_3; - private System.Windows.Forms.Label L_Pokemon_3_Move_2; - private System.Windows.Forms.ComboBox CB_Pokemon_3_Move_2; - private System.Windows.Forms.Label L_Pokemon_3_Move_1; - private System.Windows.Forms.ComboBox CB_Pokemon_3_Move_1; - private System.Windows.Forms.Label L_Pokemon_3_Item; - private System.Windows.Forms.ComboBox CB_Pokemon_3_Item; - private System.Windows.Forms.Label L_Pokemon_3_Level; - private System.Windows.Forms.ComboBox CB_Pokemon_3_Level; - private System.Windows.Forms.Label L_Pokemon_3_Pokemon; - private System.Windows.Forms.ComboBox CB_Pokemon_3_Pokemon; - private System.Windows.Forms.TabPage tabPage5; - private System.Windows.Forms.Label L_Pokemon_4_Gender; - private System.Windows.Forms.ComboBox CB_Pokemon_4_Gender; - private System.Windows.Forms.Label L_Pokemon_4_Ability; - private System.Windows.Forms.ComboBox CB_Pokemon_4_Ability; - private System.Windows.Forms.Label L_Pokemon_4_Form; - private System.Windows.Forms.ComboBox CB_Pokemon_4_Form; - private System.Windows.Forms.Label L_Pokemon_4_IVs; - private System.Windows.Forms.ComboBox CB_Pokemon_4_IVs; - private System.Windows.Forms.Label L_Pokemon_4_Move_4; - private System.Windows.Forms.ComboBox CB_Pokemon_4_Move_4; - private System.Windows.Forms.Label L_Pokemon_4_Move_3; - private System.Windows.Forms.ComboBox CB_Pokemon_4_Move_3; - private System.Windows.Forms.Label L_Pokemon_4_Move_2; - private System.Windows.Forms.ComboBox CB_Pokemon_4_Move_2; - private System.Windows.Forms.Label L_Pokemon_4_Move_1; - private System.Windows.Forms.ComboBox CB_Pokemon_4_Move_1; - private System.Windows.Forms.Label L_CB_Pokemon_4_Item; - private System.Windows.Forms.ComboBox CB_Pokemon_4_Item; - private System.Windows.Forms.Label L_Pokemon_4_Level; - private System.Windows.Forms.ComboBox CB_Pokemon_4_Level; - private System.Windows.Forms.Label L_Pokemon_4_Pokemon; - private System.Windows.Forms.ComboBox CB_Pokemon_4_Pokemon; - private System.Windows.Forms.TabPage tabPage6; - private System.Windows.Forms.Label L_Pokemon_5_Gender; - private System.Windows.Forms.ComboBox CB_Pokemon_5_Gender; - private System.Windows.Forms.Label L_Pokemon_5_Ability; - private System.Windows.Forms.ComboBox CB_Pokemon_5_Ability; - private System.Windows.Forms.Label L_Pokemon_5_Form; - private System.Windows.Forms.ComboBox CB_Pokemon_5_Form; - private System.Windows.Forms.Label L_Pokemon_5_IVs; - private System.Windows.Forms.ComboBox CB_Pokemon_5_IVs; - private System.Windows.Forms.Label L_Pokemon_5_Move_4; - private System.Windows.Forms.ComboBox CB_Pokemon_5_Move_4; - private System.Windows.Forms.Label L_Pokemon_5_Move_3; - private System.Windows.Forms.ComboBox CB_Pokemon_5_Move_3; - private System.Windows.Forms.Label L_Pokemon_5_Move_2; - private System.Windows.Forms.ComboBox CB_Pokemon_5_Move_2; - private System.Windows.Forms.Label L_Pokemon_5_Move_1; - private System.Windows.Forms.ComboBox CB_Pokemon_5_Move_1; - private System.Windows.Forms.Label L_Pokemon_5_Item; - private System.Windows.Forms.ComboBox CB_Pokemon_5_Item; - private System.Windows.Forms.Label L_Pokemon_5_Level; - private System.Windows.Forms.ComboBox CB_Pokemon_5_Level; - private System.Windows.Forms.Label L_Pokemon_5_Pokemon; - private System.Windows.Forms.ComboBox CB_Pokemon_5_Pokemon; - private System.Windows.Forms.TabPage tabPage7; - private System.Windows.Forms.Label L_Pokemon_6_Gender; - private System.Windows.Forms.ComboBox CB_Pokemon_6_Gender; - private System.Windows.Forms.Label L_Pokemon_6_Ability; - private System.Windows.Forms.ComboBox CB_Pokemon_6_Ability; - private System.Windows.Forms.Label L_Pokemon_6_Form; - private System.Windows.Forms.ComboBox CB_Pokemon_6_Form; - private System.Windows.Forms.Label L_Pokemon_6_IVs; - private System.Windows.Forms.ComboBox CB_Pokemon_6_IVs; - private System.Windows.Forms.Label L_Pokemon_6_Move_4; - private System.Windows.Forms.ComboBox CB_Pokemon_6_Move_4; - private System.Windows.Forms.Label L_Pokemon_6_Move_3; - private System.Windows.Forms.ComboBox CB_Pokemon_6_Move_3; - private System.Windows.Forms.Label L_Pokemon_6_Move_2; - private System.Windows.Forms.ComboBox CB_Pokemon_6_Move_2; - private System.Windows.Forms.Label L_Pokemon_6_Move_1; - private System.Windows.Forms.ComboBox CB_Pokemon_6_Move_1; - private System.Windows.Forms.Label L_Pokemon_6_Item; - private System.Windows.Forms.ComboBox CB_Pokemon_6_Item; - private System.Windows.Forms.Label L_Pokemon_6_Level; - private System.Windows.Forms.ComboBox CB_Pokemon_6_Level; - private System.Windows.Forms.Label L_Pokemon_6_Pokemon; - private System.Windows.Forms.ComboBox CB_Pokemon_6_Pokemon; - private System.Windows.Forms.Button B_Randomize; - private System.Windows.Forms.TextBox TB_Text1; - private System.Windows.Forms.Label L_Text1; - private System.Windows.Forms.PictureBox PB_Team6; - private System.Windows.Forms.PictureBox PB_Team5; - private System.Windows.Forms.PictureBox PB_Team4; - private System.Windows.Forms.PictureBox PB_Team3; - private System.Windows.Forms.PictureBox PB_Team2; - private System.Windows.Forms.PictureBox PB_Team1; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.Label L_Text2; - private System.Windows.Forms.TextBox TB_Text2; - } -} diff --git a/pk3DS/Subforms/Gen6/RSTE.cs b/pk3DS/Subforms/Gen6/RSTE.cs deleted file mode 100644 index c0d30f3055..0000000000 --- a/pk3DS/Subforms/Gen6/RSTE.cs +++ /dev/null @@ -1,939 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Drawing; -using System.IO; -using System.Linq; -using System.Media; -using System.Text; -using System.Windows.Forms; - -using pk3DS.Core; -using pk3DS.Core.Randomizers; -using pk3DS.Core.Structures; - -namespace pk3DS -{ - public partial class RSTE : Form - { - public RSTE(byte[][] trc, byte[][] trd, byte[][] trp) - { - trclass = trc; - trdata = trd; - trpoke = trp; - Array.Resize(ref specieslist, Main.Config.MaxSpeciesID + 1); - MegaDictionary = GiftEditor6.GetMegaDictionary(Main.Config); - rModelRestricted = Main.Config.ORAS ? Legal.Model_AO : Legal.Model_XY; - - InitializeComponent(); - // String Fetching - #region Combo Box Arrays - trpk_pkm = new[] - { - CB_Pokemon_1_Pokemon, - CB_Pokemon_2_Pokemon, - CB_Pokemon_3_Pokemon, - CB_Pokemon_4_Pokemon, - CB_Pokemon_5_Pokemon, - CB_Pokemon_6_Pokemon, - }; - trpk_lvl = new[] - { - CB_Pokemon_1_Level, - CB_Pokemon_2_Level, - CB_Pokemon_3_Level, - CB_Pokemon_4_Level, - CB_Pokemon_5_Level, - CB_Pokemon_6_Level, - }; - trpk_item = new[] - { - CB_Pokemon_1_Item, - CB_Pokemon_2_Item, - CB_Pokemon_3_Item, - CB_Pokemon_4_Item, - CB_Pokemon_5_Item, - CB_Pokemon_6_Item, - }; - trpk_abil = new[] - { - CB_Pokemon_1_Ability, - CB_Pokemon_2_Ability, - CB_Pokemon_3_Ability, - CB_Pokemon_4_Ability, - CB_Pokemon_5_Ability, - CB_Pokemon_6_Ability, - }; - trpk_m1 = new[] - { - CB_Pokemon_1_Move_1, - CB_Pokemon_2_Move_1, - CB_Pokemon_3_Move_1, - CB_Pokemon_4_Move_1, - CB_Pokemon_5_Move_1, - CB_Pokemon_6_Move_1, - }; - trpk_m2 = new[] - { - CB_Pokemon_1_Move_2, - CB_Pokemon_2_Move_2, - CB_Pokemon_3_Move_2, - CB_Pokemon_4_Move_2, - CB_Pokemon_5_Move_2, - CB_Pokemon_6_Move_2, - }; - trpk_m3 = new[] - { - CB_Pokemon_1_Move_3, - CB_Pokemon_2_Move_3, - CB_Pokemon_3_Move_3, - CB_Pokemon_4_Move_3, - CB_Pokemon_5_Move_3, - CB_Pokemon_6_Move_3, - }; - trpk_m4 = new[] - { - CB_Pokemon_1_Move_4, - CB_Pokemon_2_Move_4, - CB_Pokemon_3_Move_4, - CB_Pokemon_4_Move_4, - CB_Pokemon_5_Move_4, - CB_Pokemon_6_Move_4, - }; - trpk_IV = new[] - { - CB_Pokemon_1_IVs, - CB_Pokemon_2_IVs, - CB_Pokemon_3_IVs, - CB_Pokemon_4_IVs, - CB_Pokemon_5_IVs, - CB_Pokemon_6_IVs, - }; - trpk_form = new[] - { - CB_Pokemon_1_Form, - CB_Pokemon_2_Form, - CB_Pokemon_3_Form, - CB_Pokemon_4_Form, - CB_Pokemon_5_Form, - CB_Pokemon_6_Form, - }; - trpk_gender = new[] - { - CB_Pokemon_1_Gender, - CB_Pokemon_2_Gender, - CB_Pokemon_3_Gender, - CB_Pokemon_4_Gender, - CB_Pokemon_5_Gender, - CB_Pokemon_6_Gender, - }; - #endregion - Setup(); - } - private string[][] AltForms; - internal static readonly Random rand = new Random(); - internal static uint rnd32() - { - return (uint)rand.Next(1 << 30) << 2 | (uint)rand.Next(1 << 2); - } - private bool start = true; - private bool loading = true; - private int index = -1; - #region Global Variables - private readonly ComboBox[] trpk_pkm; - private readonly ComboBox[] trpk_lvl; - private readonly ComboBox[] trpk_item; - private readonly ComboBox[] trpk_abil; - private readonly ComboBox[] trpk_m1, trpk_m2, trpk_m3, trpk_m4; - private readonly ComboBox[] trpk_IV; - private readonly ComboBox[] trpk_form; - private readonly ComboBox[] trpk_gender; - - private PictureBox[] pba; - - // Top Level Functions - private readonly byte[][] trclass; - private readonly byte[][] trdata; - private readonly byte[][] trpoke; - private readonly string[] abilitylist = Main.Config.getText(TextName.AbilityNames); - private readonly string[] movelist = Main.Config.getText(TextName.MoveNames); - private readonly string[] itemlist = Main.Config.getText(TextName.ItemNames); - private readonly string[] specieslist = Main.Config.getText(TextName.SpeciesNames); - private readonly string[] types = Main.Config.getText(TextName.Types); - private readonly string[] forms = Main.Config.getText(TextName.Forms); - private string[] trName = Main.Config.getText(TextName.TrainerNames); - private readonly string[] trClass = Main.Config.getText(TextName.TrainerClasses); - private readonly string[] trText = Main.Config.getText(TextName.TrainerText); - #endregion - - // Ability Loading - private void refreshFormAbility(object sender, EventArgs e) - { - int i = Array.IndexOf(trpk_form, sender as ComboBox); - refreshPKMSlotAbility(i); - } - private void refreshSpeciesAbility(object sender, EventArgs e) - { - int i = Array.IndexOf(trpk_pkm, sender as ComboBox); - FormUtil.setForms(trpk_pkm[i].SelectedIndex, trpk_form[i], AltForms); - refreshPKMSlotAbility(i); - } - private void refreshPKMSlotAbility(int slot) - { - int previousAbility = trpk_abil[slot].SelectedIndex; - - int species = trpk_pkm[slot].SelectedIndex; - int formnum = trpk_form[slot].SelectedIndex; - - int entry = Main.Config.Personal.getFormeIndex(species, formnum); - - trpk_abil[slot].Items.Clear(); - trpk_abil[slot].Items.Add("Any (1 or 2)"); - trpk_abil[slot].Items.Add(abilitylist[Main.SpeciesStat[entry].Abilities[0]] + " (1)"); - trpk_abil[slot].Items.Add(abilitylist[Main.SpeciesStat[entry].Abilities[1]] + " (2)"); - trpk_abil[slot].Items.Add(abilitylist[Main.SpeciesStat[entry].Abilities[2]] + " (H)"); - - trpk_abil[slot].SelectedIndex = previousAbility; - - showTeams(slot); - } - // Set Loading - private void changeTrainerType(object sender, EventArgs e) - { - if (start || loading) return; - int pkm = CB_numPokemon.SelectedIndex; - { - for (int i = 0; i < 6; i++) // enable all if the pkm exists - { - trpk_pkm[i].Enabled = - trpk_gender[i].Enabled = - trpk_abil[i].Enabled = - trpk_IV[i].Enabled = - trpk_lvl[i].Enabled = i < pkm; - - trpk_item[i].Enabled = i < pkm && checkBox_Item.Checked; - - trpk_m1[i].Enabled = - trpk_m2[i].Enabled = - trpk_m3[i].Enabled = - trpk_m4[i].Enabled = i < pkm && checkBox_Moves.Checked; - - if (!trpk_pkm[i].Enabled) - { - trpk_pkm[i].SelectedIndex = - trpk_gender[i].SelectedIndex = - trpk_form[i].SelectedIndex = - trpk_abil[i].SelectedIndex = - trpk_IV[i].SelectedIndex = - trpk_lvl[i].SelectedIndex = 0; - } - if (!trpk_item[i].Enabled) - { - trpk_item[i].SelectedIndex = 0; - } - if (!trpk_m1[i].Enabled) - { - trpk_m1[i].SelectedIndex = - trpk_m2[i].SelectedIndex = - trpk_m3[i].SelectedIndex = - trpk_m4[i].SelectedIndex = 0; - } - } - for (int i = pkm; i < 6; i++) - trpk_form[i].Enabled = false; - } - } - - // Dumping - private string getTRSummary() - { - string toret = "======" + Environment.NewLine; - - toret += CB_TrainerID.SelectedIndex + " - " + CB_Trainer_Class.Text.Substring(0, CB_Trainer_Class.Text.Length - 6) + " " + CB_TrainerID.Text.Substring(0, CB_TrainerID.Text.Length - 6) + Environment.NewLine; - toret += "======" + Environment.NewLine; - int pkm = CB_numPokemon.SelectedIndex; - toret += "Pokemon: " + pkm + Environment.NewLine; - for (int i = 0; i < pkm; i++) - { - toret += trpk_pkm[i].Text + " (Lv. " + trpk_lvl[i].SelectedIndex + ") "; - if (trpk_item[i].SelectedIndex > 0) - toret += "@" + trpk_item[i].Text; - if (trpk_abil[i].SelectedIndex != 0) - { - string abil = trpk_abil[i].Text; - abil = abil.Substring(0, abil.Length - 4); - toret += " (Ability: " + abil + ")"; - } - if (checkBox_Moves.Checked) - { - toret += " (Moves: "; - if (trpk_m1[i].SelectedIndex > 0) toret += trpk_m1[i].Text; - if (trpk_m2[i].SelectedIndex > 0) toret += " / " + trpk_m2[i].Text; - if (trpk_m3[i].SelectedIndex > 0) toret += " / " + trpk_m3[i].Text; - if (trpk_m4[i].SelectedIndex > 0) toret += " / " + trpk_m4[i].Text; - toret += ")"; - } - toret += " IVs: All " + Convert.ToInt32(trpk_IV[i].SelectedIndex) / 8; - toret += Environment.NewLine; - } - toret += Environment.NewLine; - return toret; - } - private bool dumping; - private void B_Dump_Click(object sender, EventArgs e) - { - string toret = ""; dumping = true; - for (int i = 1; i < CB_TrainerID.Items.Count; i++) - { - CB_TrainerID.SelectedIndex = i; - string tdata = getTRSummary(); - toret += tdata; - } - SaveFileDialog sfd = new SaveFileDialog {FileName = "Battles.txt", Filter = "Text File|*.txt"}; - - SystemSounds.Asterisk.Play(); - if (sfd.ShowDialog() == DialogResult.OK) - { - string path = sfd.FileName; - File.WriteAllText(path, toret, Encoding.Unicode); - } - dumping = false; - } - - // Change Read/Write - private trdata6 tr; - private void changeTrainerIndex(object sender, EventArgs e) - { - if (!dumping && index > -1) writeFile(); - readFile(); // Load the new file. - } - private void readFile() - { - if (start) return; - index = CB_TrainerID.SelectedIndex; - loading = true; - - if (index == 0) return; - - tabControl1.Enabled = true; - byte[] trd = trdata[index]; - byte[] trp = trpoke[index]; - tr = new trdata6(trd, trp, Main.Config.ORAS); - - // Load Trainer Data - CB_Trainer_Class.SelectedIndex = tr.Class; - checkBox_Item.Checked = tr.Item; - checkBox_Moves.Checked = tr.Moves; - CB_Battle_Type.SelectedIndex = tr.BattleType; - CB_numPokemon.SelectedIndex = tr.NumPokemon; - CB_Item_1.SelectedIndex = tr.Items[0]; - CB_Item_2.SelectedIndex = tr.Items[1]; - CB_Item_3.SelectedIndex = tr.Items[2]; - CB_Item_4.SelectedIndex = tr.Items[3]; - CB_AI.SelectedIndex = tr.AI; - checkBox_Healer.Checked = tr.Healer; - CB_Money.SelectedIndex = tr.Money; - CB_Prize.SelectedIndex = tr.Prize; - - // Load Pokemon Data - for (int i = 0; i < tr.NumPokemon; i++) - { - trpk_IV[i].SelectedIndex = tr.Team[i].IVs; - trpk_lvl[i].SelectedIndex = tr.Team[i].Level; - trpk_pkm[i].SelectedIndex = tr.Team[i].Species; - FormUtil.setForms(tr.Team[i].Species, trpk_form[i], AltForms); - trpk_form[i].SelectedIndex = tr.Team[i].Form % trpk_form[i].Items.Count; // stupid X/Y buggy edge cases (220 / 222) - refreshPKMSlotAbility(i); // Repopulate Abilities - - trpk_abil[i].SelectedIndex = tr.Team[i].Ability; - trpk_gender[i].SelectedIndex = tr.Team[i].Gender; - - trpk_item[i].SelectedIndex = tr.Team[i].Item; - trpk_m1[i].SelectedIndex = tr.Team[i].Moves[0]; - trpk_m2[i].SelectedIndex = tr.Team[i].Moves[1]; - trpk_m3[i].SelectedIndex = tr.Team[i].Moves[2]; - trpk_m4[i].SelectedIndex = tr.Team[i].Moves[3]; - } - loading = false; - changeTrainerType(null, null); // Prompt cleaning update of PKM fields - - // Refresh Team View - if (!loading) - { - for (int i = 0; i < 6; i++) showTeams(i); - // showText(); // Commented out for now, have to figure out how text is assigned. - } - - } - private void writeFile() - { - // Set Trainer Data - tr.Moves = checkBox_Moves.Checked; - tr.Item = checkBox_Item.Checked; - tr.Class = CB_Trainer_Class.SelectedIndex; - tr.BattleType = (byte)CB_Battle_Type.SelectedIndex; - tr.NumPokemon = (byte)CB_numPokemon.SelectedIndex; - if (tr.NumPokemon == 0) - tr.NumPokemon = 1; // No empty teams! - tr.Items[0] = (ushort)CB_Item_1.SelectedIndex; - tr.Items[1] = (ushort)CB_Item_2.SelectedIndex; - tr.Items[2] = (ushort)CB_Item_3.SelectedIndex; - tr.Items[3] = (ushort)CB_Item_4.SelectedIndex; - tr.AI = (byte)CB_AI.SelectedIndex; - tr.Healer = checkBox_Healer.Checked; - tr.Money = (byte)CB_Money.SelectedIndex; - tr.Prize = (ushort)CB_Prize.SelectedIndex; - - // Set Pokemon Data - Array.Resize(ref tr.Team, tr.NumPokemon); - for (int i = 0; i < tr.NumPokemon; i++) - { - if (tr.Team[i] == null) - tr.Team[i] = new trdata6.Pokemon(new byte[100], false, false); // Initialize with zeroes - tr.Team[i].IVs = (byte)trpk_IV[i].SelectedIndex; - tr.Team[i].Ability = trpk_abil[i].SelectedIndex; - tr.Team[i].Gender = trpk_gender[i].SelectedIndex; - tr.Team[i].Level = (ushort)trpk_lvl[i].SelectedIndex; - tr.Team[i].Species = (ushort)trpk_pkm[i].SelectedIndex; - tr.Team[i].Form = (ushort)trpk_form[i].SelectedIndex; - tr.Team[i].Item = (ushort)trpk_item[i].SelectedIndex; - - tr.Team[i].Moves[0] = (ushort)trpk_m1[i].SelectedIndex; - tr.Team[i].Moves[1] = (ushort)trpk_m2[i].SelectedIndex; - tr.Team[i].Moves[2] = (ushort)trpk_m3[i].SelectedIndex; - tr.Team[i].Moves[3] = (ushort)trpk_m4[i].SelectedIndex; - } - byte[] trd = tr.Write(); - trdata[index] = trd; - byte[] trp = tr.WriteTeam(); - trpoke[index] = trp; - } - - // Image Displays - private void changeTeam(object sender, EventArgs e) - { - if (loading) return; - - int gendSlot = Array.IndexOf(trpk_gender, sender as ComboBox); - int itemSlot = Array.IndexOf(trpk_item, sender as ComboBox); - showTeams(gendSlot < 0 ? itemSlot : gendSlot); - } - private void showTeams(int i) - { - if (tr == null) return; - if (i >= tr.Team.Length) { pba[i].Image = null; return; } - Bitmap rawImg = WinFormsUtil.getSprite(tr.Team[i].Species, tr.Team[i].Form, tr.Team[i].Gender, tr.Team[i].Item, Main.Config); - pba[i].Image = WinFormsUtil.scaleImage(rawImg, 2); - } - private void showText() - { - if (index * 2 >= trText.Length) return; - TB_Text1.Text = trText[index * 2]; - TB_Text2.Text = trText[index * 2 + 1]; - } - - private void Setup() - { - start = true; - string[] species = Main.Config.getText(TextName.SpeciesNames); - AltForms = Main.Config.Personal.getFormList(species, Main.Config.MaxSpeciesID); - - Array.Resize(ref trName, trdata.Length); - CB_TrainerID.Items.Clear(); - for (int i = 0; i < trdata.Length; i++) - CB_TrainerID.Items.Add($"{trName[i] ?? "UNKNOWN"} - {i:000}"); - - CB_Trainer_Class.Items.Clear(); - for (int i = 0; i < trClass.Length; i++) - CB_Trainer_Class.Items.Add($"{trClass[i]} - {i:000}"); - - specieslist[0] = "---"; - abilitylist[0] = itemlist[0] = movelist[0] = ""; - pba = new[] { PB_Team1, PB_Team2, PB_Team3, PB_Team4, PB_Team5, PB_Team6 }; - - for (int i = 0; i < 6; i++) - { - trpk_pkm[i].Items.Clear(); - foreach (string s in specieslist) - trpk_pkm[i].Items.Add(s); - - trpk_m1[i].Items.Clear(); - trpk_m2[i].Items.Clear(); - trpk_m3[i].Items.Clear(); - trpk_m4[i].Items.Clear(); - foreach (string s in movelist) - { - trpk_m1[i].Items.Add(s); - trpk_m2[i].Items.Add(s); - trpk_m3[i].Items.Add(s); - trpk_m4[i].Items.Add(s); - } - - trpk_item[i].Items.Clear(); - foreach (string s in itemlist) - trpk_item[i].Items.Add(s); - - trpk_lvl[i].Items.Clear(); - for (int z = 0; z <= 100; z++) - trpk_lvl[i].Items.Add(z.ToString()); - - trpk_IV[i].Items.Clear(); - for (int z = 0; z < 256; z++) - trpk_IV[i].Items.Add(z.ToString()); - - trpk_gender[i].Items.Clear(); - trpk_gender[i].Items.Add("- / G/Random"); - trpk_gender[i].Items.Add("♂ / M"); - trpk_gender[i].Items.Add("♀ / F"); - - trpk_form[i].Items.Add(""); - - trpk_pkm[i].SelectedIndex = 0; - } - CB_Item_1.Items.Clear(); - CB_Item_2.Items.Clear(); - CB_Item_3.Items.Clear(); - CB_Item_4.Items.Clear(); - CB_Prize.Items.Clear(); - foreach (string s in itemlist) - { - CB_Item_1.Items.Add(s); - CB_Item_2.Items.Add(s); - CB_Item_3.Items.Add(s); - CB_Item_4.Items.Add(s); - CB_Prize.Items.Add(s); - } - - CB_AI.Items.Clear(); CB_Money.Items.Clear(); - for (int i = 0; i < 256; i++) - { CB_AI.Items.Add(i.ToString()); CB_Money.Items.Add(i.ToString()); } - - CB_Battle_Type.Items.Clear(); - CB_Battle_Type.Items.Add("Single"); - CB_Battle_Type.Items.Add("Double"); - CB_Battle_Type.Items.Add("Triple"); - CB_Battle_Type.Items.Add("Rotation"); - CB_Battle_Type.Items.Add("Horde"); - megaEvos = Main.Config.ORAS - ? new[] { 15, 18, 80, 208, 254, 260, 302, 319, 323, 334, 362, 373, 376, 380, 381, 428, 475, 531, 719, 3, 6, 9, 65, 94, 115, 127, 130, 142, 150, 181, 212, 214, 229, 248, 257, 282, 303, 306, 308, 310, 354, 359, 445, 448, 460 } - : new[] { 3, 6, 9, 65, 94, 115, 127, 130, 142, 150, 181, 212, 214, 229, 248, 257, 282, 303, 306, 308, 310, 354, 359, 445, 448, 460 }; - - CB_TrainerID.SelectedIndex = 1; - start = false; - readFile(); - } - - public static bool rPKM, rSmart, rLevel, rMove, rNoMove, rAbility, rDiffAI, - rDiffIV, rClass, rGift, rItem, rDoRand, rRandomMegas, rGymE4Only, - rTypeTheme, rTypeGymTrainers, rOnlySingles, rDMG, rSTAB, r6PKM; - public static bool rNoFixedDamage; - internal static bool[] rThemedClasses = { }; - private static string[] rTags; - private static int[] megaEvos; - public static int[] rIgnoreClass, rEnsureMEvo; - public static int rDMGCount, rSTABCount; - private int[] mEvoTypes; - private static int[] rModelRestricted; - private string[] rImportant; - private readonly List Tags = new List(); - private readonly Dictionary TagTypes = new Dictionary(); - public static int[] sL; // Random Species List - public static decimal rGiftPercent, rLevelMultiplier; - private void B_Randomize_Click(object sender, EventArgs e) - { - rPKM = rMove = rAbility = rDiffAI = rDiffIV = rClass = rGift = rItem = rDoRand = false; // init to false - rGiftPercent = 0; // 0 - new TrainerRand().ShowDialog(); // Open Randomizer Config to get config vals - if (rDoRand) - Randomize(); - } - private void Randomize() - { - List banned = new List { 165, 621 }; // Struggle, Hyperspace Fury - if (rNoFixedDamage) - banned.AddRange(MoveRandomizer.FixedDamageMoves); - var move = new MoveRandomizer(Main.Config) - { - rDMG = rDMG, - rSTAB = rSTAB, - rSTABCount = rSTABCount, - rDMGCount = rDMGCount, - BannedMoves = banned, - }; - - rImportant = new string[CB_TrainerID.Items.Count]; - rTags = Main.Config.ORAS ? GetTagsORAS() : GetTagsXY(); - mEvoTypes = GetMegaEvolvableTypes(); - List GymE4Types = new List(); - - // Fetch Move Stats for more difficult randomization - - if (rEnsureMEvo.Length > 0) - { - if (mEvoTypes.Length < 13 && rTypeTheme) - { - WinFormsUtil.Alert("There are insufficient Types with at least one mega evolution to Guarantee story Mega Evos while keeping Type theming.", - "Re-Randomize Personal or don't choose both options."); return; } - GymE4Types.AddRange(mEvoTypes); - } - else - GymE4Types.AddRange(Enumerable.Range(0, types.Length).ToArray()); - foreach (int t1 in rEnsureMEvo.Where(t1 => rTags[t1] != "" && !TagTypes.Keys.Contains(rTags[t1]))) - { - int t; - if (rTags[t1].Contains("GYM") || rTags[t1].Contains("ELITE") || rTags[t1].Contains("CHAMPION")) - { - t = GymE4Types[(int)(rnd32() % GymE4Types.Count)]; - GymE4Types.Remove(t); - } - else - t = mEvoTypes[rnd32() % mEvoTypes.Length]; - TagTypes[rTags[t1]] = t; - } - foreach (string t1 in Tags) - { - if (!TagTypes.Keys.Contains(t1) && t1 != "") - { - int t; - if (t1.Contains("GYM") || t1.Contains("ELITE") || t1.Contains("CHAMPION")) - { - t = GymE4Types[(int)(rnd32() % GymE4Types.Count)]; - GymE4Types.Remove(t); - } - else - t = (int)(rnd32() % types.Length); - - TagTypes[t1] = t; - } - Console.WriteLine(t1 + ": " + types[TagTypes[t1]]); - } - - CB_TrainerID.SelectedIndex = 0; // fake a writeback - ushort[] itemvals = Main.Config.ORAS ? Legal.Pouch_Items_AO : Legal.Pouch_Items_XY; - itemvals = itemvals.Concat(Legal.Pouch_Berry_XY).ToArray(); - - string[] ImportantClasses = {"GYM", "ELITE", "CHAMPION"}; - for (int i = 1; i < CB_TrainerID.Items.Count; i++) - { - // Trainer Type/Mega Evo - int type = GetRandomType(i); - bool mevo = rEnsureMEvo.Contains(i); - bool typerand = rTypeTheme && !rGymE4Only || - rTypeTheme && rImportant[i] != null && ImportantClasses.Contains(rImportant[i]); - rSpeciesRand.rType = typerand; - - byte[] trd = trdata[i]; - byte[] trp = trpoke[i]; - var t = new trdata6(trd, trp, Main.Config.ORAS) - { - Moves = rMove || !rNoMove && checkBox_Moves.Checked, - Item = rItem || checkBox_Item.Checked - }; - - InitializeTrainerTeamInfo(t, rImportant[i] == null); - RandomizeTrainerAIClass(t, trClass); - RandomizeTrainerPrizeItem(t); - RandomizeTeam(t, move, itemvals, type, mevo, typerand); - - trdata[i] = t.Write(); - trpoke[i] = t.WriteTeam(); - } - CB_TrainerID.SelectedIndex = 1; - WinFormsUtil.Alert("Randomized all Trainers according to specification!", "Press the Dump to .TXT button to view the new Trainer information!"); - } - - private static void RandomizeTeam(trdata6 t, MoveRandomizer move, ushort[] itemvals, int type, bool mevo, bool typerand) - { - int last = t.Team.Length - 1; - for (int p = 0; p < t.Team.Length; p++) - { - var pk = t.Team[p]; - int[] stones = null; - if (rPKM) - { - // randomize pokemon - int species; - if (typerand) - { - species = rSpeciesRand.GetRandomSpeciesType(pk.Species, type); - if (p == last && mevo) - { - int tries = 0; - do { stones = GetRandomMega(out species); } - while (Main.Config.Personal[species].Types.All(z => z != type) && tries++ < 100); - } - } - else if (p == last && mevo) - stones = GetRandomMega(out species); - else - species = rSpeciesRand.GetRandomSpecies(pk.Species); - - pk.Species = (ushort)species; - pk.Gender = 0; // Set Gender to Random - bool mega = rRandomMegas & !(mevo && p == last); // except if mega evolution is forced for the last slot - pk.Form = (ushort)Randomizer.GetRandomForme(pk.Species, mega, true, Main.SpeciesStat); - } - if (rLevel) - pk.Level = (ushort)Randomizer.getModifiedLevel(pk.Level, rLevelMultiplier); - if (rAbility) - pk.Ability = (int)(1 + rnd32() % 3); - if (rDiffIV) - pk.IVs = 255; - - if (mevo && p == last && stones != null) - pk.Item = (ushort)stones[rnd32() % stones.Length]; - else if (rItem) - pk.Item = itemvals[rnd32() % itemvals.Length]; - - if (rMove) - { - var pkMoves = move.GetRandomMoveset(pk.Species, 4); - for (int m = 0; m < 4; m++) - pk.Moves[m] = (ushort)pkMoves[m]; - } - } - } - private static void InitializeTrainerTeamInfo(trdata6 t, bool important) - { - // skip the first rival battles - if (!r6PKM || important) - return; - - // Copy the last slot to random pokemon - int lastPKM = Math.Max(t.NumPokemon - 1, 0); // 0,1-6 => 0-5 (never is 0) - - t.NumPokemon = 6; - Array.Resize(ref t.Team, t.NumPokemon); - for (int f = lastPKM + 1; f < t.NumPokemon; f++) - { - t.Team[f] = // clone last pkm then increment level by 1 - new trdata6.Pokemon(t.Team[lastPKM].Write(t.Item, t.Moves), t.Item, t.Moves) - { - Level = (ushort) Math.Min(t.Team[f - 1].Level + 1, 100) - }; - } - } - private static void RandomizeTrainerAIClass(trdata6 t, string[] trClass) - { - if (rDiffAI) - t.AI |= 7; // Set first 3 bits, keep any other flag if present - if (rOnlySingles) - t.AI &= 7; - - if (rClass && rModelRestricted.Contains(t.Class)) // Classes selected to be randomized - { - //if (rIgnoreClass.Any()) // ignored special classes - // return; - int randClass() => (int) (rnd32() % rModelRestricted.Length); - t.Class = rModelRestricted[randClass()]; - } - else - if ( - rClass // Classes selected to be randomized - && (!rOnlySingles || t.BattleType == 0) // Nonsingles only get changed if rOnlySingles - && !rIgnoreClass.Contains(t.Class) // Current class isn't a special class - ) - { - int randClass() => (int)(rnd32() % trClass.Length); - int rv; do { rv = randClass(); } - // Ensure the Random Class isn't an exclusive class - while (rIgnoreClass.Contains(rv) || trClass[rv].StartsWith("[~")); // don't allow disallowed classes - t.Class = rv; - } - } - private static void RandomizeTrainerPrizeItem(trdata6 t) - { - if (rGift && rnd32() % 100 < rGiftPercent) - { - ushort[] items; - uint rnd = rnd32() % 10; - if (rnd < 2) // held item - items = Main.Config.ORAS ? Legal.Pouch_Items_AO : Legal.Pouch_Items_XY; - else if (rnd < 5) // medicine - items = Main.Config.ORAS ? Legal.Pouch_Medicine_AO : Legal.Pouch_Medicine_XY; - else // berry - items = Legal.Pouch_Berry_XY; - t.Prize = items[rnd32() % items.Length]; - } - else if (rGift) - t.Prize = 0; - } - - private string[] GetTagsORAS() - { - string[] tags = Enumerable.Repeat("", trdata.Length).ToArray(); - ImportantTrainers = true; - //Rival Battles - TagTrainer(tags, "RIVAL1", 289, 292, 295, 298, 527, 530, 674, 677, 699, 906); // Rival w/ Grass Starter - TagTrainer(tags, "RIVAL2", 290, 293, 296, 299, 528, 531, 675, 678, 700, 907); // Rival w/ Fire Starter - TagTrainer(tags, "RIVAL3", 291, 294, 297, 300, 529, 532, 676, 679, 701, 908); // Rival w/ Water Starter - - //Aqua Admins - TagTrainer(tags, "AQUA1", 178, 231, 266); // Archie - TagTrainer(tags, "AQUA2", 683, 684, 685, 686, 687); // Matt - TagTrainer(tags, "AQUA3", 688, 689, 690); // Shelly - - //Magma Admins - TagTrainer(tags, "MAGMA1", 235, 236, 271); // Maxie - TagTrainer(tags, "MAGMA2", 694, 695, 696, 697, 698); // Courney - TagTrainer(tags, "MAGMA3", 691, 692, 693); // Tabitha - - //Gym Leaders - TagTrainer(tags, "GYM1", 561); // Roxanne - TagTrainer(tags, "GYM2", 563); // Brawly - TagTrainer(tags, "GYM3", 567); // Wattson - TagTrainer(tags, "GYM4", 569); // Flannery - TagTrainer(tags, "GYM5", 570); // Norman - TagTrainer(tags, "GYM6", 571); // Winona - TagTrainer(tags, "GYM7", 552); // Liza & Tate - TagTrainer(tags, "GYM8", 572, 943); // Wallace - - //Elite 4 - TagTrainer(tags, "ELITE1", 553, 909); // Sidney - TagTrainer(tags, "ELITE2", 554, 910); // Phoebe - TagTrainer(tags, "ELITE3", 555, 911); // Glacia - TagTrainer(tags, "ELITE4", 556, 912); // Drake - TagTrainer(tags, "CHAMPION", 557, 680, 913, 942); // Champion Steven - - //Wally - TagTrainer(tags, "WALLY", 518, 583, 944, 945, 946, 947); - - //Zinnia - TagTrainer(tags, "LOREKEEPER", 713, 898); - - ImportantTrainers = false; - TagTrainer(tags, "RIVAL1", 1, 4); // Rival w/ Grass Starter - TagTrainer(tags, "RIVAL2", 2, 5); // Rival w/ Fire Starter - TagTrainer(tags, "RIVAL3", 3, 6); // Rival w/ Water Starter - //Gym Trainers (Tagged in order of appearance on Bulbapedia's lists) - if (rTypeGymTrainers) - { - TagTrainer(tags, "GYM1", 562, 22, 667); - TagTrainer(tags, "GYM2", 60, 56, 59); - TagTrainer(tags, "GYM3", 34, 568, 614, 35); - TagTrainer(tags, "GYM4", 81, 824, 83, 615, 823, 613, 85); - TagTrainer(tags, "GYM5", 63, 67, 64, 68, 65, 69, 66); - TagTrainer(tags, "GYM6", 115, 517, 516, 118, 730); - TagTrainer(tags, "GYM7", 157, 226, 320, 159, 225, 158); - TagTrainer(tags, "GYM8", 647, 342, 594, 646, 338, 339, 340, 341); - } - return tags; - } - private string[] GetTagsXY() - { - string[] tags = Enumerable.Repeat("", trdata.Length).ToArray(); - ImportantTrainers = true; - //Rival Battles - TagTrainer(tags, "RIVAL1", 130, 184, 329, 332, 335, 338, 341, 435, 519, 604, 575, 578, 581, 584, 587, 590, 593, 596, 599, 607); // Rival w/ Fire Starter - TagTrainer(tags, "RIVAL2", 131, 185, 330, 333, 336, 339, 342, 436, 520, 605, 576, 579, 582, 585, 588, 591, 594, 597, 600, 608); // Rival w/ Water Starter - TagTrainer(tags, "RIVAL3", 132, 186, 331, 334, 337, 340, 343, 437, 521, 606, 577, 580, 583, 586, 589, 592, 595, 598, 601, 609); // Rival w/ Grass Starter - - //Important Flare Members - TagTrainer(tags, "FLAREBOSS", 303, 525, 526); // Lysandre - TagTrainer(tags, "FLARE1", 175, 344); // Aliana - TagTrainer(tags, "FLARE2", 350, 351); // Bryony - TagTrainer(tags, "FLARE3", 348, 349); // Celosia - TagTrainer(tags, "FLARE4", 346, 347); // Mable - TagTrainer(tags, "FLARE5", 345); // Xerosic - - //Gym Leaders - TagTrainer(tags, "GYM1", 6, 254, 262); // Viola - TagTrainer(tags, "GYM2", 76, 261, 279); // Grant - TagTrainer(tags, "GYM3", 21, 188, 255, 263, 613); // Korrina - TagTrainer(tags, "GYM4", 22, 256, 264); // Ramos - TagTrainer(tags, "GYM5", 23, 257, 265); // Clemont - TagTrainer(tags, "GYM6", 24, 258, 266); // Valerie - TagTrainer(tags, "GYM7", 25, 259, 267); // Olympia - TagTrainer(tags, "GYM8", 26, 260, 268); // Wulfric - - //Elite 4 - TagTrainer(tags, "ELITE1", 269, 273, 507); // Malva - TagTrainer(tags, "ELITE2", 271, 275); // Siebold - TagTrainer(tags, "ELITE3", 187, 272); // Wikstrom - TagTrainer(tags, "ELITE4", 270, 274); // Drasna - TagTrainer(tags, "CHAMPION", 276, 277); // Champion Diantha - - //"Friends" - TagTrainer(tags, "SHAUNA", 137, 138, 139, 321, 322, 323); - TagTrainer(tags, "TREVOR", 325, 439); - TagTrainer(tags, "TIERNO", 324, 438, 573); - - //Prof - TagTrainer(tags, "PROFESSOR", 327, 328); - - //Suspicious Trainer ??? - TagTrainer(tags, "ESSENTIA", 503, 504, 505, 511, 512, 513, 514, 515); // Emma - - ImportantTrainers = false; - //Gym Trainers (Tagged in order of appearance on Bulbapedia's lists) - if (rTypeGymTrainers) - { - TagTrainer(tags, "GYM1", 39, 40, 48); - TagTrainer(tags, "GYM2", 64, 63, 106, 105); - TagTrainer(tags, "GYM3", 83, 147, 84, 146); - TagTrainer(tags, "GYM4", 123, 121, 124, 122); - TagTrainer(tags, "GYM5", 461, 462, 463, 464, 465, 466, 28, 29, 30, 467, 468, 469); - TagTrainer(tags, "GYM6", 245, 250, 248, 243); - TagTrainer(tags, "GYM7", 170, 171, 172, 365, 366); - TagTrainer(tags, "GYM8", 169, 32, 168, 31); - } - return tags; - } - private bool ImportantTrainers; - public static SpeciesRandomizer rSpeciesRand; - - // Theme Methods - private void TagTrainer(string[] trTags, string tag, params int[] ids) - { - foreach (int id in ids.Where(id => id < trTags.Length)) - trTags[id] = tag; - - if (!Tags.Contains(tag)) - Tags.Add(tag); - - if (!ImportantTrainers) return; - foreach (int id in ids) - rImportant[id] = tag; - } - - private static Dictionary MegaDictionary; - private static int[] GetRandomMega(out int species) - { - int rnd = Util.rand.Next(0, MegaDictionary.Count - 1); - species = MegaDictionary.Keys.ElementAt(rnd); - return MegaDictionary.Values.ElementAt(rnd); - } - private int GetRandomType(int trainer) - { - if (rTags[trainer] != "") - return TagTypes[rTags[trainer]]; - if (!rEnsureMEvo.Contains(trainer)) - return (int)(rnd32()%types.Length); - return mEvoTypes[rnd32() % mEvoTypes.Length]; - } - private int[] GetMegaEvolvableTypes() - { - List MEvoTypes = new List(); - foreach (int spec in megaEvos) - { - if (!MEvoTypes.Contains(Main.SpeciesStat[spec].Types[0])) - MEvoTypes.Add(Main.SpeciesStat[spec].Types[0]); - if (!MEvoTypes.Contains(Main.SpeciesStat[spec].Types[1])) - MEvoTypes.Add(Main.SpeciesStat[spec].Types[1]); - } - MEvoTypes.Sort(); - Console.WriteLine("There are " + MEvoTypes.Count + " Types capable of Mega Evolution."); - return MEvoTypes.ToArray(); - } - - private void formClosing(object sender, FormClosingEventArgs e) - { - writeFile(); - } - - private void gotoParty(object sender, EventArgs e) - { - // When sprite is clicked, jump to that Pokémon. - tabControl1.SelectedIndex = 1 + Array.IndexOf(new[]{PB_Team1, PB_Team2, PB_Team3, PB_Team4, PB_Team5, PB_Team6,}, sender as PictureBox); - } - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/RSWE.cs b/pk3DS/Subforms/Gen6/RSWE.cs deleted file mode 100644 index 93fca682e1..0000000000 --- a/pk3DS/Subforms/Gen6/RSWE.cs +++ /dev/null @@ -1,810 +0,0 @@ -using pk3DS.Core; -using System; -using System.IO; -using System.Linq; -using System.Windows.Forms; -using pk3DS.Core.Randomizers; - -namespace pk3DS -{ - public partial class RSWE : Form - { - public RSWE() - { - InitializeComponent(); - spec = new[] - { - CB_Grass1, CB_Grass2, CB_Grass3, CB_Grass4, CB_Grass5, CB_Grass6, CB_Grass7, CB_Grass8, CB_Grass9, CB_Grass10, CB_Grass11, CB_Grass12, - CB_TallGrass1, CB_TallGrass2, CB_TallGrass3, CB_TallGrass4, CB_TallGrass5, CB_TallGrass6, CB_TallGrass7, CB_TallGrass8, CB_TallGrass9, CB_TallGrass10, CB_TallGrass11, CB_TallGrass12, - CB_Swarm1, CB_Swarm2, CB_Swarm3, - CB_Surf1, CB_Surf2, CB_Surf3, CB_Surf4, CB_Surf5, - CB_RockSmash1, CB_RockSmash2, CB_RockSmash3, CB_RockSmash4, CB_RockSmash5, - CB_Old1, CB_Old2, CB_Old3, - CB_Good1, CB_Good2, CB_Good3, - CB_Super1, CB_Super2, CB_Super3, - CB_HordeA1, CB_HordeA2, CB_HordeA3, CB_HordeA4, CB_HordeA5, - CB_HordeB1, CB_HordeB2, CB_HordeB3, CB_HordeB4, CB_HordeB5, - CB_HordeC1, CB_HordeC2, CB_HordeC3, CB_HordeC4, CB_HordeC5, - }; - min = new[] - { - NUP_GrassMin1, NUP_GrassMin2, NUP_GrassMin3, NUP_GrassMin4, NUP_GrassMin5, NUP_GrassMin6, NUP_GrassMin7, NUP_GrassMin8, NUP_GrassMin9, NUP_GrassMin10, NUP_GrassMin11, NUP_GrassMin12, - NUP_TallGrassMin1, NUP_TallGrassMin2, NUP_TallGrassMin3, NUP_TallGrassMin4, NUP_TallGrassMin5, NUP_TallGrassMin6, NUP_TallGrassMin7, NUP_TallGrassMin8, NUP_TallGrassMin9, NUP_TallGrassMin10, NUP_TallGrassMin11, NUP_TallGrassMin12, - NUP_SwarmMin1, NUP_SwarmMin2, NUP_SwarmMin3, - NUP_SurfMin1, NUP_SurfMin2, NUP_SurfMin3, NUP_SurfMin4, NUP_SurfMin5, - NUP_RockSmashMin1, NUP_RockSmashMin2, NUP_RockSmashMin3, NUP_RockSmashMin4, NUP_RockSmashMin5, - NUP_OldMin1, NUP_OldMin2, NUP_OldMin3, - NUP_GoodMin1, NUP_GoodMin2, NUP_GoodMin3, - NUP_SuperMin1, NUP_SuperMin2, NUP_SuperMin3, - NUP_HordeAMin1, NUP_HordeAMin2, NUP_HordeAMin3, NUP_HordeAMin4, NUP_HordeAMin5, - NUP_HordeBMin1, NUP_HordeBMin2, NUP_HordeBMin3, NUP_HordeBMin4, NUP_HordeBMin5, - NUP_HordeCMin1, NUP_HordeCMin2, NUP_HordeCMin3, NUP_HordeCMin4, NUP_HordeCMin5, - }; - max = new[] - { - NUP_GrassMax1, NUP_GrassMax2, NUP_GrassMax3, NUP_GrassMax4, NUP_GrassMax5, NUP_GrassMax6, NUP_GrassMax7, NUP_GrassMax8, NUP_GrassMax9, NUP_GrassMax10, NUP_GrassMax11, NUP_GrassMax12, - NUP_TallGrassMax1, NUP_TallGrassMax2, NUP_TallGrassMax3, NUP_TallGrassMax4, NUP_TallGrassMax5, NUP_TallGrassMax6, NUP_TallGrassMax7, NUP_TallGrassMax8, NUP_TallGrassMax9, NUP_TallGrassMax10, NUP_TallGrassMax11, NUP_TallGrassMax12, - NUP_SwarmMax1, NUP_SwarmMax2, NUP_SwarmMax3, - NUP_SurfMax1, NUP_SurfMax2, NUP_SurfMax3, NUP_SurfMax4, NUP_SurfMax5, - NUP_RockSmashMax1, NUP_RockSmashMax2, NUP_RockSmashMax3, NUP_RockSmashMax4, NUP_RockSmashMax5, - NUP_OldMax1, NUP_OldMax2, NUP_OldMax3, - NUP_GoodMax1, NUP_GoodMax2, NUP_GoodMax3, - NUP_SuperMax1, NUP_SuperMax2, NUP_SuperMax3, - NUP_HordeAMax1, NUP_HordeAMax2, NUP_HordeAMax3, NUP_HordeAMax4, NUP_HordeAMax5, - NUP_HordeBMax1, NUP_HordeBMax2, NUP_HordeBMax3, NUP_HordeBMax4, NUP_HordeBMax5, - NUP_HordeCMax1, NUP_HordeCMax2, NUP_HordeCMax3, NUP_HordeCMax4, NUP_HordeCMax5, - }; - form = new[] - { - NUP_GrassForme1, NUP_GrassForme2, NUP_GrassForme3, NUP_GrassForme4, NUP_GrassForme5, NUP_GrassForme6, NUP_GrassForme7, NUP_GrassForme8, NUP_GrassForme9, NUP_GrassForme10, NUP_GrassForme11, NUP_GrassForme12, - NUP_TallGrassForme1, NUP_TallGrassForme2, NUP_TallGrassForme3, NUP_TallGrassForme4, NUP_TallGrassForme5, NUP_TallGrassForme6, NUP_TallGrassForme7, NUP_TallGrassForme8, NUP_TallGrassForme9, NUP_TallGrassForme10, NUP_TallGrassForme11, NUP_TallGrassForme12, - NUP_SwarmForme1, NUP_SwarmForme2, NUP_SwarmForme3, - NUP_SurfForme1, NUP_SurfForme2, NUP_SurfForme3, NUP_SurfForme4, NUP_SurfForme5, - NUP_RockSmashForme1, NUP_RockSmashForme2, NUP_RockSmashForme3, NUP_RockSmashForme4, NUP_RockSmashForme5, - NUP_OldForme1, NUP_OldForme2, NUP_OldForme3, - NUP_GoodForme1, NUP_GoodForme2, NUP_GoodForme3, - NUP_SuperForme1, NUP_SuperForme2, NUP_SuperForme3, - NUP_HordeAForme1, NUP_HordeAForme2, NUP_HordeAForme3, NUP_HordeAForme4, NUP_HordeAForme5, - NUP_HordeBForme1, NUP_HordeBForme2, NUP_HordeBForme3, NUP_HordeBForme4, NUP_HordeBForme5, - NUP_HordeCForme1, NUP_HordeCForme2, NUP_HordeCForme3, NUP_HordeCForme4, NUP_HordeCForme5, - }; - formlist = new[] { "Unown-A - 0", - "Unown-B - 1", - "Unown-C - 2", - "Unown-D - 3", - "Unown-E - 4", - "Unown-F - 5", - "Unown-G - 6", - "Unown-H - 7", - "Unown-I - 8", - "Unown-J - 9", - "Unown-K - 10", - "Unown-L - 11", - "Unown-M - 12", - "Unown-N - 13", - "Unown-O - 14", - "Unown-P - 15", - "Unown-Q - 16", - "Unown-R - 17", - "Unown-S - 18", - "Unown-T - 19", - "Unown-U - 20", - "Unown-V - 21", - "Unown-W - 22", - "Unown-X - 23", - "Unown-Y - 24", - "Unown-Z - 25", - "Unown-! - 26", - "Unown-? - 27", - "", - "Castform-Normal - 0", - "Castform-Sunny - 1", - "Castform-Rainy - 2", - "Castform-Snowy - 3", - "", - "Deoxys-Normal - 0", - "Deoxys-Attack - 1", - "Deoxys-Defense - 2", - "Deoxys-Speed - 3", - "", - "Burmy-Plant Cloak - 0", - "Burmy-Sandy Cloak - 1", - "Burmy-Trash Cloak - 2", - "", - "Wormadam-Plant Cloak - 0", - "Wormadam-Sandy Cloak - 1", - "Wormadam-Trash Cloak - 2", - "", - "Cherrim-Overcast - 0", - "Cherrim-Sunshine - 1", - "", - "Shellos-West Sea - 0", - "Shellos-East Sea - 1", - "", - "Gastrodon-West Sea - 0", - "Gastrodon-East Sea - 1", - "", - "Rotom-Normal - 0", - "Rotom-Heat - 1", - "Rotom-Wash - 2", - "Rotom-Frost - 3", - "Rotom-Fan - 4", - "Rotom-Mow - 5", - "", - "Giratina-Altered - 0", - "Giratina-Origin - 1", - "", - "Shaymin-Land - 0", - "Shaymin-Sky - 1", - "", - "Arceus-Normal - 0", - "Arceus-Fighting - 1", - "Arceus-Flying - 2", - "Arceus-Poison - 3", - "Arceus-Ground - 4", - "Arceus-Rock - 5", - "Arceus-Bug - 6", - "Arceus-Ghost - 7", - "Arceus-Steel - 8", - "Arceus-Fire - 9", - "Arceus-Water - 10", - "Arceus-Grass - 11", - "Arceus-Electric - 12", - "Arceus-Psychic - 13", - "Arceus-Ice - 14", - "Arceus-Dragon - 15", - "Arceus-Dark - 16", - "Arceus-Fairy - 17", - "", - "Basculin-Red-Striped - 0", - "Basculin-Blue-Striped - 1", - "", - "Darmanitan-Standard Mode - 0", - "Darmanitan-Zen Mode - 1", - "", - "Deerling-Spring - 0", - "Deerling-Summer - 1", - "Deerling-Autumn - 2", - "Deerling-Winter - 3", - "", - "Sawsbuck-Spring - 0", - "Sawsbuck-Summer - 1", - "Sawsbuck-Autumn - 2", - "Sawsbuck-Winter - 3", - "", - "Tornadus-Incarnate - 0", - "Tornadus-Therian - 1", - "", - "Thundurus-Incarnate - 0", - "Thundurus-Therian - 1", - "", - "Landorus-Incarnate - 0", - "Landorus-Therian - 1", - "", - "Kyurem-Normal - 0", - "Kyurem-White - 1", - "Kyurem-Black - 2", - "", - "Keldeo-Ordinary - 0", - "Keldeo-Resolute - 1", - "", - "Meloetta-Aria - 0", - "Meloetta-Pirouette - 1", - "", - "Genesect-Normal - 0", - "Genesect-Water - 1", - "Genesect-Electric - 2", - "Genesect-Fire - 3", - "Genesect-Ice - 4", - "", - "Flabebe-Red - 0", - "Flabebe-Yellow - 1", - "Flabebe-Orange - 2", - "Flabebe-Blue - 3", - "Flabebe-White - 4", - "", - "Floette-Red - 0", - "Floette-Yellow - 1", - "Floette-Orange - 2", - "Floette-Blue - 3", - "Floette-White - 4", - "Floette-Eternal - 5", - "", - "Florges-Red - 0", - "Florges-Yellow - 1", - "Florges-Orange - 2", - "Florges-Blue - 3", - "Florges-White - 4", - "", - "Furfrou-Natural - 0", - "Furfrou-Heart - 1", - "Furfrou-Star - 2", - "Furfrou-Diamond - 3", - "Furfrou-Deputante - 4", - "Furfrou-Matron - 5", - "Furfrou-Dandy - 6", - "Furfrou-La Reine- 7", - "Furfrou-Kabuki - 8", - "Furfrou-Pharaoh - 9", - "", - "Aegislash-Shield - 0", - "Aegislash-Blade - 0", - "", - "Vivillon-Icy Snow - 0", - "Vivillon-Polar - 1", - "Vivillon-Tundra - 2", - "Vivillon-Continental - 3", - "Vivillon-Garden - 4", - "Vivillon-Elegant - 5", - "Vivillon-Meadow - 6", - "Vivillon-Modern - 7", - "Vivillon-Marine - 8", - "Vivillon-Archipelago - 9", - "Vivillon-High-Plains - 10", - "Vivillon-Sandstorm - 11", - "Vivillon-River - 12", - "Vivillon-Monsoon - 13", - "Vivillon-Savannah - 14", - "Vivillon-Sun - 15", - "Vivillon-Ocean - 16", - "Vivillon-Jungle - 17", - "Vivillon-Fancy - 18", - "Vivillon-Poké Ball - 19", - "", - "Pumpkaboo-Small - 0", - "Pumpkaboo-Average - 1", - "Pumpkaboo-Large - 2", - "Pumpkaboo-Super - 3", - "", - "Gourgeist-Small - 0", - "Gourgeist-Average - 1", - "Gourgeist-Large - 2", - "Gourgeist-Super - 3", - "", - "Hoopa-Confined - 0", - "Hoopa-Unbound - 1", - "", - "Megas-Normal - 0", - "Megas-Mega (X) - 1", - "Megas-Mega (Y) - 2", - }; - RSWE_Load(); - openQuick(Directory.GetFiles("encdata")); - } - private readonly ComboBox[] spec; - private readonly NumericUpDown[] min; - private readonly NumericUpDown[] max; - private readonly NumericUpDown[] form; - string[] specieslist = { }; - readonly string[] formlist = { }; - string[] metRS_00000 = { }; - byte[] zonedata = { }; - byte[] decStorage = { }; - string[] LocationNames = { }; - private string[] encdatapaths; - private string[] filepaths; - - private void RSWE_Load() - { - specieslist = Main.Config.getText(TextName.SpeciesNames); - specieslist[0] = "---"; - - foreach (string s in formlist) - CB_FormeList.Items.Add(s); - - // Clear & Reset Data - for (int i = 0; i < max.Length; i++) - { - spec[i].Items.Clear(); - foreach (string s in specieslist) - spec[i].Items.Add(s); - spec[i].SelectedIndex = 0; - } - - //Preload Tabs - PreloadTabs(); - } - internal static Random rand = new Random(); - internal static uint rnd32() - { - return (uint)rand.Next(1 << 30) << 2 | (uint)rand.Next(1 << 2); - } - - private void openQuick(string[] encdata) - { - encdatapaths = encdata; - Array.Sort(encdatapaths); - filepaths = new string[encdatapaths.Length - 2]; - Array.Copy(encdatapaths, 2, filepaths, 0, filepaths.Length); - metRS_00000 = Main.Config.getText(TextName.metlist_000000); - zonedata = File.ReadAllBytes(encdatapaths[0]); - decStorage = File.ReadAllBytes(encdatapaths[1]); - LocationNames = new string[filepaths.Length]; - for (int f = 0; f < filepaths.Length; f++) - { - string name = Path.GetFileNameWithoutExtension(filepaths[f]); - - int LocationNum = Convert.ToInt16(name.Substring(4, name.Length - 4)); - int indNum = LocationNum * 56 + 0x1C; - string LocationName = metRS_00000[zonedata[indNum] + 0x100 * (zonedata[indNum + 1] & 1)]; - LocationNames[f] = LocationNum.ToString("000") + " - " + LocationName; - } - CB_LocationID.DataSource = LocationNames; - B_Save.Enabled = B_Dump.Enabled = B_Randomize.Enabled = true; - CB_LocationID.Enabled = true; - CB_LocationID_SelectedIndexChanged(null, null); - } - - private void parse(byte[] ed) - { - // Encounter Slot Counts per Encounter Type - /* OLD XY// 12,12,12,12,12 - // 5,5 - // 3,3,3 - // 5,5,5,*/ - - // ORAS - //12 grass - //12 tall grass - //3 Swarm - //5 surf - //5 rock smash - //3 old rod - //3 good rod - //3 super rod - //5 horde 60 - //5 horde 35 - //5 horde 5 - byte[] slot = new Byte[4]; - const int offset = 0x0; - - // read data into form - for (int i = 0; i < max.Length; i++) - { - // Fetch Data - Array.Copy(ed, offset + i * 4, slot, 0, 4); - int[] data = pslot(slot); - - // Load Data - spec[i].SelectedIndex = data[0]; - form[i].Value = data[1]; - min[i].Value = data[2]; - max[i].Value = data[3]; - } - - #if DUMPER - int r = CB_LocationID.SelectedIndex * 56 + 0x1C; - int loc = zonedata[r] + 0x100 * (zonedata[r + 1] & 1); - byte[] edata = BitConverter.GetBytes((ushort) loc).Concat(ed).ToArray(); - - if (!Directory.Exists("encounter_ao")) - Directory.CreateDirectory("encounter_ao"); - File.WriteAllBytes(Path.Combine("encounter_ao", loc.ToString("000") + CB_LocationID.SelectedIndex.ToString("000") + ".bin"), edata); - #endif - } - private int[] pslot(byte[] slot) // Parse Slot to Bytes - { - int index = BitConverter.ToUInt16(slot, 0) & 0x7FF; - int f = BitConverter.ToUInt16(slot, 0) >> 11; - int lo = slot[2]; - int hi = slot[3]; - int[] data = new int[4]; - data[0] = index; - data[1] = f; - data[2] = lo; - data[3] = hi; - return data; - } - private string parseslot(byte[] slot) - { - int index = BitConverter.ToUInt16(slot, 0) & 0x7FF; - if (index == 0) return ""; - int form = BitConverter.ToUInt16(slot, 0) >> 11; - int min = slot[2]; - int max = slot[3]; - string species = specieslist[index]; - if (form > 0) species += "-" + form; - return species + ',' + min + ',' + max + ','; - } - private byte[] MakeSlotData(int species, int f, int lo, int hi) - { - byte[] data = new byte[4]; - Array.Copy(BitConverter.GetBytes(Convert.ToUInt16((Convert.ToUInt16(f) << 11) + Convert.ToUInt16(species))), 0, data, 0, 2); - data[2] = (byte)lo; - data[3] = (byte)hi; - return data; - } - private byte[] ConcatArrays(byte[] b1, byte[] b2) - { - byte[] concat = new byte[b1.Length + b2.Length]; - Array.Copy(b1, 0, concat, 0, b1.Length); - Array.Copy(b2, 0, concat, b1.Length, b2.Length); - return concat; - } - - private void CB_LocationID_SelectedIndexChanged(object sender, EventArgs e) - { - int f = CB_LocationID.SelectedIndex; - FileStream InStream = File.OpenRead(filepaths[f]); - BinaryReader br = new BinaryReader(InStream); - br.BaseStream.Seek(0x10, SeekOrigin.Begin); - int offset = br.ReadInt32() + 0xE; - int ofs2 = br.ReadInt32(); - int length = ofs2 - offset; - if (length < 0xF6) //no encounters in this map - { - ClearData(); - br.Close(); - return; - } - br.Close(); - - byte[] filedata = File.ReadAllBytes(filepaths[f]); - - byte[] encounterdata = new Byte[0xF6]; - Array.Copy(filedata, offset, encounterdata, 0, 0xF6); - parse(encounterdata); - } - - // Utility - private bool needsInsertion(int mapID) - { - if (mapID != 535) // Hardcoded, bad, I know. - return BitConverter.ToUInt32(decStorage, (mapID + 2) * 4) - BitConverter.ToUInt32(decStorage, (mapID + 1) * 4) == 0; - return BitConverter.ToUInt32(decStorage, (mapID + 1) * 4) == decStorage.Length; - } - - private bool hasData() - { - for (int i = 0; i < max.Length; i++) - { - if (spec[i].SelectedIndex > 0) { return true; } - if (form[i].Value > 0) { return true; } - if (min[i].Value > 0) { return true; } - if (max[i].Value > 0) { return true; } - } - return false; - } - private void PreloadTabs() - { - for (int i = 0; i < TabControl_EncounterData.TabPages.Count; i++) - TabControl_EncounterData.TabPages[i].Show(); - TabControl_EncounterData.TabPages[0].Show(); - } - private void ClearData() - { - for (int i = 0; i < max.Length; i++) - { - // Load Data - spec[i].SelectedIndex = 0; - form[i].Value = 0; - min[i].Value = 0; - max[i].Value = 0; - } - } - private byte[] MakeEncounterData() - { - byte[] ed = new byte[0x102]; - const int offset = 0x0; - for (int i = 0; i < max.Length; i++) - { - byte[] data = MakeSlotData(spec[i].SelectedIndex, (int)form[i].Value, (int)min[i].Value, (int)max[i].Value); - Array.Copy(data, 0, ed, offset + i * 4, 4); - } - return ed; - } - private string GetEncDataString() - { - string toret = "======" + Environment.NewLine; - toret += "Map " + CB_LocationID.Text + "" + Environment.NewLine; - toret += "======" + Environment.NewLine; - if (hasData()) - { - toret += "Grass: " + label31.Text + " - " + CB_Grass1.Text + " (Level " + NUP_GrassMin1.Text + ", Forme: " + NUP_GrassForme1.Text + "), " + label32.Text + " - " + CB_Grass2.Text + " (Level " + NUP_GrassMin2.Text + ", Forme: " + NUP_GrassForme2.Text + "), " + label33.Text + " - " + CB_Grass3.Text + " (Level " + NUP_GrassMin3.Text + ", Forme: " + NUP_GrassForme3.Text + "), " + label34.Text + " - " + CB_Grass4.Text + " (Level " + NUP_GrassMin4.Text + ", Forme: " + NUP_GrassForme4.Text + "), " + label35.Text + " - " + CB_Grass5.Text + " (Level " + NUP_GrassMin5.Text + ", Forme: " + NUP_GrassForme5.Text + "), " + label36.Text + " - " + CB_Grass6.Text + " (Level " + NUP_GrassMin6.Text + ", Forme: " + NUP_GrassForme6.Text + "), " + label37.Text + " - " + CB_Grass7.Text + " (Level " + NUP_GrassMin7.Text + ", Forme: " + NUP_GrassForme7.Text + "), " + label38.Text + " - " + CB_Grass8.Text + " (Level " + NUP_GrassMin8.Text + ", Forme: " + NUP_GrassForme8.Text + "), " + label39.Text + " - " + CB_Grass9.Text + " (Level " + NUP_GrassMin9.Text + ", Forme: " + NUP_GrassForme9.Text + "), " + label40.Text + " - " + CB_Grass10.Text + " (Level " + NUP_GrassMin10.Text + ", Forme: " + NUP_GrassForme10.Text + "), " + label42.Text + " - " + CB_Grass11.Text + " (Level " + NUP_GrassMin11.Text + ", Forme: " + NUP_GrassForme11.Text + "), " + label41.Text + " - " + CB_Grass12.Text + " (Level " + NUP_GrassMin12.Text + ", Forme: " + NUP_GrassForme12.Text + ")" + Environment.NewLine; - - toret += "Tall Grass: " + label10.Text + " - " + CB_TallGrass1.Text + " (Level " + NUP_TallGrassMin1.Text + ", Forme: " + NUP_TallGrassForme1.Text + "), " + label21.Text + " - " + CB_TallGrass2.Text + " (Level " + NUP_TallGrassMin2.Text + ", Forme: " + NUP_TallGrassForme2.Text + "), " + label20.Text + " - " + CB_TallGrass3.Text + " (Level " + NUP_TallGrassMin3.Text + ", Forme: " + NUP_TallGrassForme3.Text + "), " + label19.Text + " - " + CB_TallGrass4.Text + " (Level " + NUP_TallGrassMin4.Text + ", Forme: " + NUP_TallGrassForme4.Text + "), " + label18.Text + " - " + CB_TallGrass5.Text + " (Level " + NUP_TallGrassMin5.Text + ", Forme: " + NUP_TallGrassForme5.Text + "), " + label17.Text + " - " + CB_TallGrass6.Text + " (Level " + NUP_TallGrassMin6.Text + ", Forme: " + NUP_TallGrassForme6.Text + "), " + label16.Text + " - " + CB_TallGrass7.Text + " (Level " + NUP_TallGrassMin7.Text + ", Forme: " + NUP_TallGrassForme7.Text + "), " + label15.Text + " - " + CB_TallGrass8.Text + " (Level " + NUP_TallGrassMin8.Text + ", Forme: " + NUP_TallGrassForme8.Text + "), " + label14.Text + " - " + CB_TallGrass9.Text + " (Level " + NUP_TallGrassMin9.Text + ", Forme: " + NUP_TallGrassForme9.Text + "), " + label13.Text + " - " + CB_TallGrass10.Text + " (Level " + NUP_TallGrassMin10.Text + ", Forme: " + NUP_TallGrassForme10.Text + "), " + label12.Text + " - " + CB_TallGrass11.Text + " (Level " + NUP_TallGrassMin11.Text + ", Forme: " + NUP_TallGrassForme11.Text + "), " + label11.Text + " - " + CB_TallGrass12.Text + " (Level " + NUP_TallGrassMin12.Text + ", Forme: " + NUP_TallGrassForme12.Text + ")" + Environment.NewLine; - - toret += "Rock Smash: " + label111.Text + " - " + CB_RockSmash1.Text + " (Level " + NUP_RockSmashMin1.Text + ", Forme: " + NUP_RockSmashForme1.Text + "), " + label110.Text + " - " + CB_RockSmash2.Text + " (Level " + NUP_RockSmashMin2.Text + ", Forme: " + NUP_RockSmashForme2.Text + "), " + label109.Text + " - " + CB_RockSmash3.Text + " (Level " + NUP_RockSmashMin3.Text + ", Forme: " + NUP_RockSmashForme3.Text + "), " + label108.Text + " - " + CB_RockSmash4.Text + " (Level " + NUP_RockSmashMin4.Text + ", Forme: " + NUP_RockSmashForme4.Text + "), " + label107.Text + " - " + CB_RockSmash5.Text + " (Level " + NUP_RockSmashMin5.Text + ", Forme: " + NUP_RockSmashForme5.Text + ")" + Environment.NewLine; - - toret += "Swarm: " + label70.Text + " - " + CB_Swarm1.Text + " (Level " + NUP_SwarmMin1.Text + ", Forme: " + NUP_SwarmForme1.Text + "), " + label81.Text + " - " + CB_Swarm2.Text + " (Level " + NUP_SwarmMin2.Text + ", Forme: " + NUP_SwarmForme2.Text + "), " + label80.Text + " - " + CB_Swarm3.Text + " (Level " + NUP_SwarmMin3.Text + ", Forme: " + NUP_SwarmForme3.Text + ")" + Environment.NewLine; - - toret += "Old Rod: " + label43.Text + " - " + CB_Old1.Text + " (Level " + NUP_OldMin1.Text + ", Forme: " + NUP_OldForme1.Text + "), " + label44.Text + " - " + CB_Old2.Text + " (Level " + NUP_OldMin2.Text + ", Forme: " + NUP_OldForme2.Text + "), " + label45.Text + " - " + CB_Old3.Text + " (Level " + NUP_OldMin3.Text + ", Forme: " + NUP_OldForme3.Text + ")" + Environment.NewLine; - - toret += "Good Rod: " + label29.Text + " - " + CB_Good1.Text + " (Level " + NUP_GoodMin1.Text + ", Forme: " + NUP_GoodForme1.Text + "), " + label28.Text + " - " + CB_Good2.Text + " (Level " + NUP_GoodMin2.Text + ", Forme: " + NUP_GoodForme2.Text + "), " + label27.Text + " - " + CB_Good3.Text + " (Level " + NUP_GoodMin3.Text + ", Forme: " + NUP_GoodForme3.Text + ")" + Environment.NewLine; - - toret += "Super Rod: " + label99.Text + " - " + CB_Super1.Text + " (Level " + NUP_SuperMin1.Text + ", Forme: " + NUP_SuperForme1.Text + "), " + label98.Text + " - " + CB_Super2.Text + " (Level " + NUP_SuperMin2.Text + ", Forme: " + NUP_SuperForme2.Text + "), " + label49.Text + " - " + CB_Super3.Text + " (Level " + NUP_SuperMin3.Text + ", Forme: " + NUP_SuperForme3.Text + ")" + Environment.NewLine; - - toret += "Surf: " + label120.Text + " - " + CB_Surf1.Text + " (Level " + NUP_SurfMin1.Text + ", Forme: " + NUP_SurfForme1.Text + "), " + label119.Text + " - " + CB_Surf2.Text + " (Level " + NUP_SurfMin2.Text + ", Forme: " + NUP_SurfForme2.Text + "), " + label118.Text + " - " + CB_Surf3.Text + " (Level " + NUP_SurfMin3.Text + ", Forme: " + NUP_SurfForme3.Text + "), " + label117.Text + " - " + CB_Surf4.Text + " (Level " + NUP_SurfMin4.Text + ", Forme: " + NUP_SurfForme4.Text + "), " + label116.Text + " - " + CB_Surf5.Text + " (Level " + NUP_SurfMin5.Text + ", Forme: " + NUP_SurfForme5.Text + ")" + Environment.NewLine; - - toret += "Horde A (60%): " + CB_HordeA1.Text + " (Level " + NUP_HordeAMin1.Text + ", Forme: " + NUP_HordeAForme1.Text + "), " + CB_HordeA2.Text + " (Level " + NUP_HordeAMin2.Text + ", Forme: " + NUP_HordeAForme2.Text + "), " + CB_HordeA3.Text + " (Level " + NUP_HordeAMin3.Text + ", Forme: " + NUP_HordeAForme3.Text + "), " + CB_HordeA4.Text + " (Level " + NUP_HordeAMin4.Text + ", Forme: " + NUP_HordeAForme4.Text + "), " + CB_HordeA5.Text + " (Level " + NUP_HordeAMin5.Text + ", Forme: " + NUP_HordeAForme5.Text + ")" + Environment.NewLine; - - toret += "Horde B (35%): " + CB_HordeB1.Text + " (Level " + NUP_HordeBMin1.Text + ", Forme: " + NUP_HordeBForme1.Text + "), " + CB_HordeB2.Text + " (Level " + NUP_HordeBMin2.Text + ", Forme: " + NUP_HordeBForme2.Text + "), " + CB_HordeB3.Text + " (Level " + NUP_HordeBMin3.Text + ", Forme: " + NUP_HordeBForme3.Text + "), " + CB_HordeB4.Text + " (Level " + NUP_HordeBMin4.Text + ", Forme: " + NUP_HordeBForme4.Text + "), " + CB_HordeB5.Text + " (Level " + NUP_HordeBMin5.Text + ", Forme: " + NUP_HordeBForme5.Text + ")" + Environment.NewLine; - - toret += "Horde C (5%): " + CB_HordeC1.Text + " (Level " + NUP_HordeCMin1.Text + ", Forme: " + NUP_HordeCForme1.Text + "), " + CB_HordeC2.Text + " (Level " + NUP_HordeCMin2.Text + ", Forme: " + NUP_HordeCForme2.Text + "), " + CB_HordeC3.Text + " (Level " + NUP_HordeCMin3.Text + ", Forme: " + NUP_HordeCForme3.Text + "), " + CB_HordeC4.Text + " (Level " + NUP_HordeCMin4.Text + ", Forme: " + NUP_HordeCForme4.Text + "), " + CB_HordeC5.Text + " (Level " + NUP_HordeCMin5.Text + ", Forme: " + NUP_HordeCForme5.Text + ")" + Environment.NewLine + Environment.NewLine; - - toret = toret.Replace("--- (No Level)", "None"); - } - else - toret += "No encounters found." + Environment.NewLine + Environment.NewLine; - return toret; - } - - // Operation - private void B_Dump_Click(object sender, EventArgs e) - { - string toret = ""; - for (int i = 0; i < 535; i++) //hardcoded map count. Yes, it's bad. No, I don't really care. - { - CB_LocationID.SelectedIndex = i; - string tdata = GetEncDataString(); - toret += tdata; - } - SaveFileDialog savetxt = new SaveFileDialog {FileName = "Encounter Slots", Filter = "Text File|*.txt"}; - if (savetxt.ShowDialog() != DialogResult.OK) return; - - string path = savetxt.FileName; - File.WriteAllText(path, toret); - } - private void B_Save_Click(object sender, EventArgs e) - { - int f = CB_LocationID.SelectedIndex; - string filepath = filepaths[f]; - if (needsInsertion(f)) - { - //To be implemented, eventually. - //Spoiler: I am actually probably not going to bother. - //Basically, just don't add encounters to a map that doesn't have any, and don't take away all encounters from a map that does have them. - } - else - { - FileStream InStream = File.OpenRead(filepaths[f]); - BinaryReader br = new BinaryReader(InStream); - br.BaseStream.Seek(0x10, SeekOrigin.Begin); - int offset = br.ReadInt32() + 0xe; - // int length = (int)br.BaseStream.Length - offset; - br.Close(); - byte[] filedata = File.ReadAllBytes(filepaths[f]); - byte[] preoffset; - if (offset < filedata.Length) - { - preoffset = new byte[offset]; - Array.Copy(filedata, preoffset, offset); - } - else - { - preoffset = new byte[filedata.Length]; - Array.Copy(filedata, preoffset, filedata.Length); - //overwrite offset so the game actually looks at the data - Array.Copy(BitConverter.GetBytes(Convert.ToUInt32(filedata.Length)), 0, preoffset, 0x10, 4); - } - byte[] encdata = { }; - if (hasData()) { encdata = MakeEncounterData(); } - byte[] newdata = ConcatArrays(preoffset, encdata); - File.WriteAllBytes(filepath, newdata); - //Also write to 537.EN (decStorage) - int ENOfs = BitConverter.ToInt32(decStorage, (f + 1) * 4) + 0xE; - encdata = MakeEncounterData(); - Array.Copy(encdata, 0x0, decStorage, ENOfs, 0xF4); //copy encounter tables to EN 2pack storage - File.WriteAllBytes(encdatapaths[1], decStorage); - } - } - - // Randomization - private void B_Randomize_Click(object sender, EventArgs e) - { - if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomize all? Cannot undo.", "Double check Randomization settings in the Horde tab.") != DialogResult.Yes) return; - - Enabled = false; - - // Calculate % diff we will apply to each level - decimal leveldiff = NUD_LevelAmp.Value; - - // Nonrepeating List Start - var rand = new SpeciesRandomizer(Main.Config) - { - G1 = CHK_G1.Checked, - G2 = CHK_G2.Checked, - G3 = CHK_G3.Checked, - G4 = CHK_G4.Checked, - G5 = CHK_G5.Checked, - G6 = CHK_G6.Checked, - - L = CHK_L.Checked, - E = CHK_E.Checked, - Shedinja = false, - - rBST = CHK_BST.Checked, - }; - rand.Initialize(); - - int[] slotArray = Enumerable.Range(0, max.Length).Select(a => a).ToArray(); - - for (int i = 0; i < CB_LocationID.Items.Count; i++) // for every location - { - CB_LocationID.SelectedIndex = i; - if (!hasData()) continue; // Don't randomize if doesn't have data. - - // Assign Levels - if (CHK_Level.Checked) - for (int l = 0; l < max.Length; l++) - min[l].Value = max[l].Value = max[l].Value <= 1 ? max[l].Value : Math.Max(1, Math.Min(100, (int)(leveldiff * max[l].Value))); - - // Get a new list of Pokemon so that DexNav does not crash. - int[] list = new int[max.Length]; - int used = 19; - - // Count up how many slots are active. - for (int s = 0; s < max.Length; s++) - if (spec[s].SelectedIndex > 0) - list[s] = spec[s].SelectedIndex; - - // At most 18, but don't chew if there's only a few slots. - int cons = list.Count(a => a != 0); - int[] RandomList = new int[cons > 18 ? 18 - cons / 8 : cons]; - - // Fill Location List - for (int s = 0; s < RandomList.Length; s++) - RandomList[s] = rand.GetRandomSpecies(spec[s].SelectedIndex); - - // Assign Slots - while (used < RandomList.Distinct().Count() || used > 18) // Can just arbitrarily assign slots. - { - Util.Shuffle(slotArray); - for (int s = 0; s < max.Length; s++) - { - int slot = slotArray[s]; - if (spec[slot].SelectedIndex != 0) // If the slot is in use - list[slot] = RandomList[Util.rand.Next(0, RandomList.Length)]; - } - used = countUnique(list); - if (used != RandomList.Length) - ShuffleSlots(ref list, RandomList.Length); - used = countUnique(list); - } - // If Distinct Hordes are selected, homogenize - int hordeslot = 0; - if (CHK_HomogeneousHordes.Checked) - for (int slot = max.Length - 15; slot < max.Length; slot++) - { - list[slot] = list[slot - hordeslot % 5]; - hordeslot++; - } - - // Fill Slots - for (int slot = 0; slot < max.Length; slot++) - if (spec[slot].SelectedIndex != 0) - { - spec[slot].SelectedIndex = list[slot]; - setRandomForm(slot, spec[slot].SelectedIndex); - } - - B_Save_Click(sender, e); - } - Enabled = true; - WinFormsUtil.Alert("Randomized all Wild Encounters according to specification!", "Press the Dump Tables button to view the new Wild Encounter information!"); - } - private int countUnique(int[] list) - { - int used = 0; - used += list.Skip(0).Take(12).Distinct().Count(a => a != 0); - used += list.Skip(12).Take(12).Distinct().Count(a => a != 0); - used += list.Skip(24).Take(3).Distinct().Count(a => a != 0); - used += list.Skip(27).Take(5).Distinct().Count(a => a != 0); - used += list.Skip(32).Take(5).Distinct().Count(a => a != 0); - used += list.Skip(37).Take(3).Distinct().Count(a => a != 0); - used += list.Skip(40).Take(3).Distinct().Count(a => a != 0); - used += list.Skip(43).Take(3).Distinct().Count(a => a != 0); - used += list.Skip(46).Take(15).Distinct().Count(a => a != 0); - return used; - } - private void setRandomForm(int slot, int species) - { - if (CHK_MegaForm.Checked && Main.SpeciesStat[species].FormeCount > 1 && Legal.Mega_ORAS.Contains((ushort)species)) - form[slot].Value = rnd32() % Main.SpeciesStat[species].FormeCount; // Slot-Random - else if (species == 666 || species == 665 || species == 664) // Vivillon - form[slot].Value = rnd32() % 20; - else if (species == 386) // Deoxys - form[slot].Value = rnd32() % 4; - else if (species == 201) // Unown - form[slot].Value = 31; - else if (species == 550) // Basculin - form[slot].Value = rnd32() % 2; - else if (species == 412 || species == 413) // Wormadam - form[slot].Value = rnd32() % 3; - else if (species == 422 || species == 423) // Gastrodon - form[slot].Value = rnd32() % 2; - else if (species == 585 || species == 586) // Sawsbuck - form[slot].Value = rnd32() % 4; - else if (species == 669 || species == 671) // Flabebe/Florges - form[slot].Value = rnd32() % 5; - else if (species == 670) // Floette - form[slot].Value = rnd32() % 6; - else if (species == 710 || species == 711) // Pumpkaboo - form[slot].Value = rnd32() % 4; - else - form[slot].Value = 0; - } - private void ShuffleSlots(ref int[] list, int slC) - { - int[] input = (int[])list.Clone(); - // int rawct = input.Distinct().Count(a => a != 0); - // Initialize - int[] slotset = { 0, 12, 24, 27, 32, 37, 40, 43, 46 }; - int[] slotlen = { 12, 12, 3, 5, 5, 3, 3, 3, 5 + 5 + 5 }; - int[][] slotdata = new int[slotset.Length][]; - for (int i = 0; i < slotset.Length; i++) - slotdata[i] = list.Skip(slotset[i]).Take(slotlen[i]).ToArray(); - - int used = countUnique(list); - // Iterate - while (used > 18) - { - for (int n = 0; n <= 20; n++) - { - if (n == 20) - { list = (int[])input.Clone(); continue; } // Reset and try again (shuffle failed) - for (int i = 0; i < slotdata.Length; i++) - { - for (int j = 0; j < slotdata[i].Length; j++) - { - int data = slotdata[i][j]; - if (data == 0) continue; - for (int s = 0; s < slotdata.Length; s++) - { - if (s == i) continue; - if (!slotdata[s].Contains(data)) continue; - - int z = Array.LastIndexOf(slotdata[s], data); - int next = (z + 1 + Util.rand.Next(slotdata[s].Length - 1)) % slotdata[s].Length; - int donor = slotdata[s][next]; - if (donor == 0) continue; - if (donor != data) - swap(ref slotdata[s][next], ref slotdata[i][j]); - } - } - } - int[] temp = slotdata[0]; - for (int i = 1; i < slotdata.Length; i++) - temp = temp.Concat(slotdata[i]).ToArray(); - list = temp.ToArray(); - used = countUnique(list); - if (used < 18) break; - } - } - } - private void swap(ref int a1, ref int a2) - { - var s1 = a1; var s2 = a2; - a2 = s1; a1 = s2; - } - - private void modifyLevels(object sender, EventArgs e) - { - if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Modify all current Level ranges?", "Cannot undo.") != DialogResult.Yes) return; - - // Disable Interface while modifying - Enabled = false; - - // Calculate % diff we will apply to each level - decimal leveldiff = NUD_LevelAmp.Value; - - // Cycle through each location to modify levels - for (int i = 0; i < CB_LocationID.Items.Count; i++) // for every location - { - // Load location - CB_LocationID.SelectedIndex = i; - - // Amp Levels - for (int l = 0; l < max.Length; l++) - if (min[l].Value > 1) - min[l].Value = max[l].Value = Randomizer.getModifiedLevel((int)max[l].Value, leveldiff); - - // Save Changes - B_Save_Click(sender, e); - } - // Enable Interface... modification complete. - Enabled = true; - WinFormsUtil.Alert("Modified all Level ranges according to specification!", "Press the Dump Tables button to view the new Level ranges!"); - } - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/StarterEditor6.Designer.cs b/pk3DS/Subforms/Gen6/StarterEditor6.Designer.cs deleted file mode 100644 index 1b5545a6af..0000000000 --- a/pk3DS/Subforms/Gen6/StarterEditor6.Designer.cs +++ /dev/null @@ -1,533 +0,0 @@ -namespace pk3DS -{ - partial class StarterEditor6 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.PB_G1_0 = new System.Windows.Forms.PictureBox(); - this.CB_G1_0 = new System.Windows.Forms.ComboBox(); - this.CB_G1_1 = new System.Windows.Forms.ComboBox(); - this.PB_G1_1 = new System.Windows.Forms.PictureBox(); - this.CB_G1_2 = new System.Windows.Forms.ComboBox(); - this.PB_G1_2 = new System.Windows.Forms.PictureBox(); - this.CB_G2_2 = new System.Windows.Forms.ComboBox(); - this.PB_G2_2 = new System.Windows.Forms.PictureBox(); - this.CB_G2_1 = new System.Windows.Forms.ComboBox(); - this.PB_G2_1 = new System.Windows.Forms.PictureBox(); - this.CB_G2_0 = new System.Windows.Forms.ComboBox(); - this.PB_G2_0 = new System.Windows.Forms.PictureBox(); - this.CB_G3_2 = new System.Windows.Forms.ComboBox(); - this.PB_G3_2 = new System.Windows.Forms.PictureBox(); - this.CB_G3_1 = new System.Windows.Forms.ComboBox(); - this.PB_G3_1 = new System.Windows.Forms.PictureBox(); - this.CB_G3_0 = new System.Windows.Forms.ComboBox(); - this.PB_G3_0 = new System.Windows.Forms.PictureBox(); - this.CB_G4_2 = new System.Windows.Forms.ComboBox(); - this.PB_G4_2 = new System.Windows.Forms.PictureBox(); - this.CB_G4_1 = new System.Windows.Forms.ComboBox(); - this.PB_G4_1 = new System.Windows.Forms.PictureBox(); - this.CB_G4_0 = new System.Windows.Forms.ComboBox(); - this.PB_G4_0 = new System.Windows.Forms.PictureBox(); - this.B_Save = new System.Windows.Forms.Button(); - this.B_Cancel = new System.Windows.Forms.Button(); - this.B_Randomize = new System.Windows.Forms.Button(); - this.L_Set1 = new System.Windows.Forms.Label(); - this.L_Set3 = new System.Windows.Forms.Label(); - this.L_Set4 = new System.Windows.Forms.Label(); - this.L_Set2 = new System.Windows.Forms.Label(); - this.CHK_Gen = new System.Windows.Forms.CheckBox(); - this.CHK_BST = new System.Windows.Forms.CheckBox(); - ((System.ComponentModel.ISupportInitialize)(this.PB_G1_0)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_G1_1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_G1_2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_G2_2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_G2_1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_G2_0)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_G3_2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_G3_1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_G3_0)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_G4_2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_G4_1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_G4_0)).BeginInit(); - this.SuspendLayout(); - // - // PB_G1_0 - // - this.PB_G1_0.Location = new System.Drawing.Point(12, 30); - this.PB_G1_0.Name = "PB_G1_0"; - this.PB_G1_0.Size = new System.Drawing.Size(120, 90); - this.PB_G1_0.TabIndex = 440; - this.PB_G1_0.TabStop = false; - // - // CB_G1_0 - // - this.CB_G1_0.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_G1_0.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_G1_0.FormattingEnabled = true; - this.CB_G1_0.Location = new System.Drawing.Point(12, 126); - this.CB_G1_0.Name = "CB_G1_0"; - this.CB_G1_0.Size = new System.Drawing.Size(120, 21); - this.CB_G1_0.TabIndex = 441; - this.CB_G1_0.SelectedIndexChanged += new System.EventHandler(this.changeSpecies); - // - // CB_G1_1 - // - this.CB_G1_1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_G1_1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_G1_1.FormattingEnabled = true; - this.CB_G1_1.Location = new System.Drawing.Point(138, 126); - this.CB_G1_1.Name = "CB_G1_1"; - this.CB_G1_1.Size = new System.Drawing.Size(120, 21); - this.CB_G1_1.TabIndex = 443; - this.CB_G1_1.SelectedIndexChanged += new System.EventHandler(this.changeSpecies); - // - // PB_G1_1 - // - this.PB_G1_1.Location = new System.Drawing.Point(138, 30); - this.PB_G1_1.Name = "PB_G1_1"; - this.PB_G1_1.Size = new System.Drawing.Size(120, 90); - this.PB_G1_1.TabIndex = 442; - this.PB_G1_1.TabStop = false; - // - // CB_G1_2 - // - this.CB_G1_2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_G1_2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_G1_2.FormattingEnabled = true; - this.CB_G1_2.Location = new System.Drawing.Point(264, 126); - this.CB_G1_2.Name = "CB_G1_2"; - this.CB_G1_2.Size = new System.Drawing.Size(120, 21); - this.CB_G1_2.TabIndex = 445; - this.CB_G1_2.SelectedIndexChanged += new System.EventHandler(this.changeSpecies); - // - // PB_G1_2 - // - this.PB_G1_2.Location = new System.Drawing.Point(264, 30); - this.PB_G1_2.Name = "PB_G1_2"; - this.PB_G1_2.Size = new System.Drawing.Size(120, 90); - this.PB_G1_2.TabIndex = 444; - this.PB_G1_2.TabStop = false; - // - // CB_G2_2 - // - this.CB_G2_2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.CB_G2_2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_G2_2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_G2_2.FormattingEnabled = true; - this.CB_G2_2.Location = new System.Drawing.Point(264, 279); - this.CB_G2_2.Name = "CB_G2_2"; - this.CB_G2_2.Size = new System.Drawing.Size(120, 21); - this.CB_G2_2.TabIndex = 451; - this.CB_G2_2.SelectedIndexChanged += new System.EventHandler(this.changeSpecies); - // - // PB_G2_2 - // - this.PB_G2_2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.PB_G2_2.Location = new System.Drawing.Point(264, 183); - this.PB_G2_2.Name = "PB_G2_2"; - this.PB_G2_2.Size = new System.Drawing.Size(120, 90); - this.PB_G2_2.TabIndex = 450; - this.PB_G2_2.TabStop = false; - // - // CB_G2_1 - // - this.CB_G2_1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.CB_G2_1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_G2_1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_G2_1.FormattingEnabled = true; - this.CB_G2_1.Location = new System.Drawing.Point(138, 279); - this.CB_G2_1.Name = "CB_G2_1"; - this.CB_G2_1.Size = new System.Drawing.Size(120, 21); - this.CB_G2_1.TabIndex = 449; - this.CB_G2_1.SelectedIndexChanged += new System.EventHandler(this.changeSpecies); - // - // PB_G2_1 - // - this.PB_G2_1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.PB_G2_1.Location = new System.Drawing.Point(138, 183); - this.PB_G2_1.Name = "PB_G2_1"; - this.PB_G2_1.Size = new System.Drawing.Size(120, 90); - this.PB_G2_1.TabIndex = 448; - this.PB_G2_1.TabStop = false; - // - // CB_G2_0 - // - this.CB_G2_0.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.CB_G2_0.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_G2_0.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_G2_0.FormattingEnabled = true; - this.CB_G2_0.Location = new System.Drawing.Point(12, 279); - this.CB_G2_0.Name = "CB_G2_0"; - this.CB_G2_0.Size = new System.Drawing.Size(120, 21); - this.CB_G2_0.TabIndex = 447; - this.CB_G2_0.SelectedIndexChanged += new System.EventHandler(this.changeSpecies); - // - // PB_G2_0 - // - this.PB_G2_0.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.PB_G2_0.Location = new System.Drawing.Point(12, 183); - this.PB_G2_0.Name = "PB_G2_0"; - this.PB_G2_0.Size = new System.Drawing.Size(120, 90); - this.PB_G2_0.TabIndex = 446; - this.PB_G2_0.TabStop = false; - // - // CB_G3_2 - // - this.CB_G3_2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.CB_G3_2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_G3_2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_G3_2.FormattingEnabled = true; - this.CB_G3_2.Location = new System.Drawing.Point(672, 126); - this.CB_G3_2.Name = "CB_G3_2"; - this.CB_G3_2.Size = new System.Drawing.Size(120, 21); - this.CB_G3_2.TabIndex = 457; - this.CB_G3_2.Visible = false; - this.CB_G3_2.SelectedIndexChanged += new System.EventHandler(this.changeSpecies); - // - // PB_G3_2 - // - this.PB_G3_2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.PB_G3_2.Location = new System.Drawing.Point(672, 30); - this.PB_G3_2.Name = "PB_G3_2"; - this.PB_G3_2.Size = new System.Drawing.Size(120, 90); - this.PB_G3_2.TabIndex = 456; - this.PB_G3_2.TabStop = false; - this.PB_G3_2.Visible = false; - // - // CB_G3_1 - // - this.CB_G3_1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.CB_G3_1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_G3_1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_G3_1.FormattingEnabled = true; - this.CB_G3_1.Location = new System.Drawing.Point(546, 126); - this.CB_G3_1.Name = "CB_G3_1"; - this.CB_G3_1.Size = new System.Drawing.Size(120, 21); - this.CB_G3_1.TabIndex = 455; - this.CB_G3_1.Visible = false; - this.CB_G3_1.SelectedIndexChanged += new System.EventHandler(this.changeSpecies); - // - // PB_G3_1 - // - this.PB_G3_1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.PB_G3_1.Location = new System.Drawing.Point(546, 30); - this.PB_G3_1.Name = "PB_G3_1"; - this.PB_G3_1.Size = new System.Drawing.Size(120, 90); - this.PB_G3_1.TabIndex = 454; - this.PB_G3_1.TabStop = false; - this.PB_G3_1.Visible = false; - // - // CB_G3_0 - // - this.CB_G3_0.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.CB_G3_0.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_G3_0.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_G3_0.FormattingEnabled = true; - this.CB_G3_0.Location = new System.Drawing.Point(420, 126); - this.CB_G3_0.Name = "CB_G3_0"; - this.CB_G3_0.Size = new System.Drawing.Size(120, 21); - this.CB_G3_0.TabIndex = 453; - this.CB_G3_0.Visible = false; - this.CB_G3_0.SelectedIndexChanged += new System.EventHandler(this.changeSpecies); - // - // PB_G3_0 - // - this.PB_G3_0.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.PB_G3_0.Location = new System.Drawing.Point(420, 30); - this.PB_G3_0.Name = "PB_G3_0"; - this.PB_G3_0.Size = new System.Drawing.Size(120, 90); - this.PB_G3_0.TabIndex = 452; - this.PB_G3_0.TabStop = false; - this.PB_G3_0.Visible = false; - // - // CB_G4_2 - // - this.CB_G4_2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.CB_G4_2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_G4_2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_G4_2.FormattingEnabled = true; - this.CB_G4_2.Location = new System.Drawing.Point(672, 279); - this.CB_G4_2.Name = "CB_G4_2"; - this.CB_G4_2.Size = new System.Drawing.Size(120, 21); - this.CB_G4_2.TabIndex = 463; - this.CB_G4_2.Visible = false; - this.CB_G4_2.SelectedIndexChanged += new System.EventHandler(this.changeSpecies); - // - // PB_G4_2 - // - this.PB_G4_2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.PB_G4_2.Location = new System.Drawing.Point(672, 183); - this.PB_G4_2.Name = "PB_G4_2"; - this.PB_G4_2.Size = new System.Drawing.Size(120, 90); - this.PB_G4_2.TabIndex = 462; - this.PB_G4_2.TabStop = false; - this.PB_G4_2.Visible = false; - // - // CB_G4_1 - // - this.CB_G4_1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.CB_G4_1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_G4_1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_G4_1.FormattingEnabled = true; - this.CB_G4_1.Location = new System.Drawing.Point(546, 279); - this.CB_G4_1.Name = "CB_G4_1"; - this.CB_G4_1.Size = new System.Drawing.Size(120, 21); - this.CB_G4_1.TabIndex = 461; - this.CB_G4_1.Visible = false; - this.CB_G4_1.SelectedIndexChanged += new System.EventHandler(this.changeSpecies); - // - // PB_G4_1 - // - this.PB_G4_1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.PB_G4_1.Location = new System.Drawing.Point(546, 183); - this.PB_G4_1.Name = "PB_G4_1"; - this.PB_G4_1.Size = new System.Drawing.Size(120, 90); - this.PB_G4_1.TabIndex = 460; - this.PB_G4_1.TabStop = false; - this.PB_G4_1.Visible = false; - // - // CB_G4_0 - // - this.CB_G4_0.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.CB_G4_0.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_G4_0.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_G4_0.FormattingEnabled = true; - this.CB_G4_0.Location = new System.Drawing.Point(420, 279); - this.CB_G4_0.Name = "CB_G4_0"; - this.CB_G4_0.Size = new System.Drawing.Size(120, 21); - this.CB_G4_0.TabIndex = 459; - this.CB_G4_0.Visible = false; - this.CB_G4_0.SelectedIndexChanged += new System.EventHandler(this.changeSpecies); - // - // PB_G4_0 - // - this.PB_G4_0.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.PB_G4_0.Location = new System.Drawing.Point(420, 183); - this.PB_G4_0.Name = "PB_G4_0"; - this.PB_G4_0.Size = new System.Drawing.Size(120, 90); - this.PB_G4_0.TabIndex = 458; - this.PB_G4_0.TabStop = false; - this.PB_G4_0.Visible = false; - // - // B_Save - // - this.B_Save.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.B_Save.Location = new System.Drawing.Point(717, 317); - this.B_Save.Name = "B_Save"; - this.B_Save.Size = new System.Drawing.Size(75, 23); - this.B_Save.TabIndex = 464; - this.B_Save.Text = "Save"; - this.B_Save.UseVisualStyleBackColor = true; - this.B_Save.Click += new System.EventHandler(this.B_Save_Click); - // - // B_Cancel - // - this.B_Cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.B_Cancel.Location = new System.Drawing.Point(636, 317); - this.B_Cancel.Name = "B_Cancel"; - this.B_Cancel.Size = new System.Drawing.Size(75, 23); - this.B_Cancel.TabIndex = 465; - this.B_Cancel.Text = "Cancel"; - this.B_Cancel.UseVisualStyleBackColor = true; - this.B_Cancel.Click += new System.EventHandler(this.B_Cancel_Click); - // - // B_Randomize - // - this.B_Randomize.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.B_Randomize.Location = new System.Drawing.Point(12, 317); - this.B_Randomize.Name = "B_Randomize"; - this.B_Randomize.Size = new System.Drawing.Size(75, 23); - this.B_Randomize.TabIndex = 466; - this.B_Randomize.Text = "Randomize!"; - this.B_Randomize.UseVisualStyleBackColor = true; - this.B_Randomize.Click += new System.EventHandler(this.B_Randomize_Click); - // - // L_Set1 - // - this.L_Set1.AutoSize = true; - this.L_Set1.ForeColor = System.Drawing.Color.Red; - this.L_Set1.Location = new System.Drawing.Point(9, 14); - this.L_Set1.Name = "L_Set1"; - this.L_Set1.Size = new System.Drawing.Size(32, 13); - this.L_Set1.TabIndex = 467; - this.L_Set1.Text = "Set 1"; - // - // L_Set3 - // - this.L_Set3.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.L_Set3.AutoSize = true; - this.L_Set3.ForeColor = System.Drawing.Color.Green; - this.L_Set3.Location = new System.Drawing.Point(416, 14); - this.L_Set3.Name = "L_Set3"; - this.L_Set3.Size = new System.Drawing.Size(32, 13); - this.L_Set3.TabIndex = 468; - this.L_Set3.Text = "Set 3"; - this.L_Set3.Visible = false; - // - // L_Set4 - // - this.L_Set4.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.L_Set4.AutoSize = true; - this.L_Set4.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(192))))); - this.L_Set4.Location = new System.Drawing.Point(416, 167); - this.L_Set4.Name = "L_Set4"; - this.L_Set4.Size = new System.Drawing.Size(32, 13); - this.L_Set4.TabIndex = 469; - this.L_Set4.Text = "Set 4"; - this.L_Set4.Visible = false; - // - // L_Set2 - // - this.L_Set2.AutoSize = true; - this.L_Set2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(192))))); - this.L_Set2.Location = new System.Drawing.Point(9, 167); - this.L_Set2.Name = "L_Set2"; - this.L_Set2.Size = new System.Drawing.Size(32, 13); - this.L_Set2.TabIndex = 470; - this.L_Set2.Text = "Set 2"; - // - // CHK_Gen - // - this.CHK_Gen.AutoSize = true; - this.CHK_Gen.Location = new System.Drawing.Point(93, 314); - this.CHK_Gen.Name = "CHK_Gen"; - this.CHK_Gen.Size = new System.Drawing.Size(104, 17); - this.CHK_Gen.TabIndex = 471; - this.CHK_Gen.Text = "Keep Same Gen"; - this.CHK_Gen.UseVisualStyleBackColor = true; - // - // CHK_BST - // - this.CHK_BST.AutoSize = true; - this.CHK_BST.Checked = true; - this.CHK_BST.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_BST.Location = new System.Drawing.Point(93, 328); - this.CHK_BST.Name = "CHK_BST"; - this.CHK_BST.Size = new System.Drawing.Size(108, 17); - this.CHK_BST.TabIndex = 472; - this.CHK_BST.Text = "Keep Similar BST"; - this.CHK_BST.UseVisualStyleBackColor = true; - // - // Starters - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(804, 352); - this.Controls.Add(this.CHK_BST); - this.Controls.Add(this.CHK_Gen); - this.Controls.Add(this.L_Set2); - this.Controls.Add(this.L_Set4); - this.Controls.Add(this.L_Set3); - this.Controls.Add(this.L_Set1); - this.Controls.Add(this.B_Randomize); - this.Controls.Add(this.B_Cancel); - this.Controls.Add(this.B_Save); - this.Controls.Add(this.CB_G4_2); - this.Controls.Add(this.PB_G4_2); - this.Controls.Add(this.CB_G4_1); - this.Controls.Add(this.PB_G4_1); - this.Controls.Add(this.CB_G4_0); - this.Controls.Add(this.PB_G4_0); - this.Controls.Add(this.CB_G3_2); - this.Controls.Add(this.PB_G3_2); - this.Controls.Add(this.CB_G3_1); - this.Controls.Add(this.PB_G3_1); - this.Controls.Add(this.CB_G3_0); - this.Controls.Add(this.PB_G3_0); - this.Controls.Add(this.CB_G2_2); - this.Controls.Add(this.PB_G2_2); - this.Controls.Add(this.CB_G2_1); - this.Controls.Add(this.PB_G2_1); - this.Controls.Add(this.CB_G2_0); - this.Controls.Add(this.PB_G2_0); - this.Controls.Add(this.CB_G1_2); - this.Controls.Add(this.PB_G1_2); - this.Controls.Add(this.CB_G1_1); - this.Controls.Add(this.PB_G1_1); - this.Controls.Add(this.CB_G1_0); - this.Controls.Add(this.PB_G1_0); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; - this.MaximizeBox = false; - this.MinimumSize = new System.Drawing.Size(410, 390); - this.Name = "StarterEditor6"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Starter Editor"; - ((System.ComponentModel.ISupportInitialize)(this.PB_G1_0)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_G1_1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_G1_2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_G2_2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_G2_1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_G2_0)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_G3_2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_G3_1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_G3_0)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_G4_2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_G4_1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_G4_0)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.PictureBox PB_G1_0; - private System.Windows.Forms.ComboBox CB_G1_0; - private System.Windows.Forms.ComboBox CB_G1_1; - private System.Windows.Forms.PictureBox PB_G1_1; - private System.Windows.Forms.ComboBox CB_G1_2; - private System.Windows.Forms.PictureBox PB_G1_2; - private System.Windows.Forms.ComboBox CB_G2_2; - private System.Windows.Forms.PictureBox PB_G2_2; - private System.Windows.Forms.ComboBox CB_G2_1; - private System.Windows.Forms.PictureBox PB_G2_1; - private System.Windows.Forms.ComboBox CB_G2_0; - private System.Windows.Forms.PictureBox PB_G2_0; - private System.Windows.Forms.ComboBox CB_G3_2; - private System.Windows.Forms.PictureBox PB_G3_2; - private System.Windows.Forms.ComboBox CB_G3_1; - private System.Windows.Forms.PictureBox PB_G3_1; - private System.Windows.Forms.ComboBox CB_G3_0; - private System.Windows.Forms.PictureBox PB_G3_0; - private System.Windows.Forms.ComboBox CB_G4_2; - private System.Windows.Forms.PictureBox PB_G4_2; - private System.Windows.Forms.ComboBox CB_G4_1; - private System.Windows.Forms.PictureBox PB_G4_1; - private System.Windows.Forms.ComboBox CB_G4_0; - private System.Windows.Forms.PictureBox PB_G4_0; - private System.Windows.Forms.Button B_Save; - private System.Windows.Forms.Button B_Cancel; - private System.Windows.Forms.Button B_Randomize; - private System.Windows.Forms.Label L_Set1; - private System.Windows.Forms.Label L_Set3; - private System.Windows.Forms.Label L_Set4; - private System.Windows.Forms.Label L_Set2; - private System.Windows.Forms.CheckBox CHK_Gen; - private System.Windows.Forms.CheckBox CHK_BST; - - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/StarterEditor6.cs b/pk3DS/Subforms/Gen6/StarterEditor6.cs deleted file mode 100644 index 388ab41494..0000000000 --- a/pk3DS/Subforms/Gen6/StarterEditor6.cs +++ /dev/null @@ -1,181 +0,0 @@ -using pk3DS.Core; -using System; -using System.IO; -using System.Windows.Forms; -using pk3DS.Core.Randomizers; - -namespace pk3DS -{ - public partial class StarterEditor6 : Form - { - public StarterEditor6() - { - specieslist[0] = "---"; - Array.Resize(ref specieslist, Main.Config.MaxSpeciesID + 1); - - if (!File.Exists(CROPath)) - { - WinFormsUtil.Error("CRO does not exist! Closing.", CROPath); - Close(); - } - if (!File.Exists(FieldPath)) - { - WinFormsUtil.Error("CRO does not exist! Closing.", FieldPath); - Close(); - } - InitializeComponent(); - - // 2 sets of Starters for X/Y - // 4 sets of Starters for OR/AS - Choices = new[] - { - new[] {CB_G1_0, CB_G1_1, CB_G1_2}, - new[] {CB_G2_0, CB_G2_1, CB_G2_2}, - new[] {CB_G3_0, CB_G3_1, CB_G3_2}, - new[] {CB_G4_0, CB_G4_1, CB_G4_2}, - }; - Previews = new[] - { - new[] {PB_G1_0, PB_G1_1, PB_G1_2}, - new[] {PB_G2_0, PB_G2_1, PB_G2_2}, - new[] {PB_G3_0, PB_G3_1, PB_G3_2}, - new[] {PB_G4_0, PB_G4_1, PB_G4_2}, - }; - Labels = new[] { L_Set1, L_Set2, L_Set3, L_Set4 }; - - Width = Main.Config.ORAS ? Width : Width/2 + 2; - loadData(); - } - private readonly string CROPath = Path.Combine(Main.RomFSPath, "DllPoke3Select.cro"); - private readonly string FieldPath = Path.Combine(Main.RomFSPath, "DllField.cro"); - private readonly string[] specieslist = Main.Config.getText(TextName.SpeciesNames); - private readonly ComboBox[][] Choices; - private readonly PictureBox[][] Previews; - private readonly Label[] Labels; - private readonly string[] StarterSummary = Main.Config.ORAS - ? new[] { "Gen 3 Starters", "Gen 2 Starters", "Gen 4 Starters", "Gen 5 Starters" } - : new[] { "Gen 6 Starters", "Gen 1 Starters" }; - private byte[] Data; - private byte[] FieldData; - private readonly int Count = Main.Config.ORAS ? 4 : 2; - private int offset; - private void B_Save_Click(object sender, EventArgs e) - { - saveData(); - Close(); - } - private void B_Cancel_Click(object sender, EventArgs e) - { - Close(); - } - - private void loadData() - { - Data = File.ReadAllBytes(CROPath); - FieldData = File.ReadAllBytes(FieldPath); - offset = BitConverter.ToInt32(Data, 0xb8); - if (!Main.Config.ORAS) // XY have 0x10 bytes of zeroes - offset += 0x10; - for (int i = 0; i < Count; i++) - { - Labels[i].Visible = true; - Labels[i].Text = StarterSummary[i]; - for (int j = 0; j < 3; j++) - { - foreach (string s in specieslist) - Choices[i][j].Items.Add(s); - int species = BitConverter.ToUInt16(Data, offset + (i*3 + j)*0x54); - Choices[i][j].SelectedIndex = species; // changing index prompts loading of sprite - - Choices[i][j].Visible = Previews[i][j].Visible = true; - } - } - } - private void saveData() - { - for (int i = 0; i < Count; i++) - for (int j = 0; j < 3; j++) - Array.Copy(BitConverter.GetBytes((ushort)Choices[i][j].SelectedIndex), 0, Data, offset + (i*3 + j)*0x54, 2); - - // Set the choices back - int fieldOffset = Main.Config.ORAS ? 0xF906C : 0xF805C; - int fieldSize = Main.Config.ORAS ? 0x24 : 0x18; - int[] entries = Main.Config.ORAS - ? new[] - { - 0, 1, 2, // Gen 3 - 28, 29, 30, // Gen 2 - 31, 32, 33, // Gen 4 - 34, 35, 36 // Gen 5 - } - : new[] - { - 0, 1, 2, // Gen 6 - 3, 4, 5, // Gen 1 - }; - - for (int i = 0; i < Count; i++) - for (int j = 0; j < 3; j++) - Array.Copy(BitConverter.GetBytes((ushort)Choices[i][j].SelectedIndex), 0, FieldData, fieldOffset + entries[i*3 + j]*fieldSize, 2); - - File.WriteAllBytes(CROPath, Data); // poke3 - File.WriteAllBytes(FieldPath, FieldData); // field - } - - private void changeSpecies(object sender, EventArgs e) - { - // Fetch the corresponding PictureBox to update - string name = (sender as ComboBox).Name; - int group = int.Parse(name[4]+"") - 1; - int index = int.Parse(name[6]+""); - - int species = (sender as ComboBox).SelectedIndex; - Previews[group][index].Image = WinFormsUtil.scaleImage(WinFormsUtil.getSprite(species, 0, 0, 0, Main.Config), 3); - } - - private void B_Randomize_Click(object sender, EventArgs e) - { - bool blind = DialogResult.Yes == - WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Hide randomization, save, and close?", - "If you want the Starters to be a surprise :)"); - if (blind) - Hide(); - - // Iterate for each group of Starters - for (int i = 0; i < Count; i++) - { - // Get Species List - - int gen = int.Parse(Labels[i].Text[4] + ""); - var rand = new SpeciesRandomizer(Main.Config) - { - G1 = !CHK_Gen.Checked || gen == 1, - G2 = !CHK_Gen.Checked || gen == 2, - G3 = !CHK_Gen.Checked || gen == 3, - G4 = !CHK_Gen.Checked || gen == 4, - G5 = !CHK_Gen.Checked || gen == 5, - G6 = !CHK_Gen.Checked || gen == 6, - - L = false, - E = false, - Shedinja = false, - - rBST = CHK_BST.Checked, - }; - rand.Initialize(); - // Assign Species - for (int j = 0; j < 3; j++) - { - int oldSpecies = BitConverter.ToUInt16(Data, offset + (i * 3 + j) * 0x54); - Choices[i][j].SelectedIndex = rand.GetRandomSpecies(oldSpecies); - } - } - - if (blind) - { - saveData(); - Close(); - } - } - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/StaticEncounterEditor6.Designer.cs b/pk3DS/Subforms/Gen6/StaticEncounterEditor6.Designer.cs deleted file mode 100644 index fca531630f..0000000000 --- a/pk3DS/Subforms/Gen6/StaticEncounterEditor6.Designer.cs +++ /dev/null @@ -1,577 +0,0 @@ -namespace pk3DS -{ - partial class StaticEncounterEditor6 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.B_Cancel = new System.Windows.Forms.Button(); - this.B_Save = new System.Windows.Forms.Button(); - this.LB_Encounters = new System.Windows.Forms.ListBox(); - this.CB_Species = new System.Windows.Forms.ComboBox(); - this.L_Species = new System.Windows.Forms.Label(); - this.NUD_Level = new System.Windows.Forms.NumericUpDown(); - this.L_Level = new System.Windows.Forms.Label(); - this.NUD_Form = new System.Windows.Forms.NumericUpDown(); - this.L_Form = new System.Windows.Forms.Label(); - this.B_RandAll = new System.Windows.Forms.Button(); - this.L_HeldItem = new System.Windows.Forms.Label(); - this.CB_HeldItem = new System.Windows.Forms.ComboBox(); - this.NUD_Ability = new System.Windows.Forms.NumericUpDown(); - this.L_Ability = new System.Windows.Forms.Label(); - this.NUD_Gender = new System.Windows.Forms.NumericUpDown(); - this.L_Gender = new System.Windows.Forms.Label(); - this.CHK_3IV = new System.Windows.Forms.CheckBox(); - this.CHK_NoShiny = new System.Windows.Forms.CheckBox(); - this.CHK_3IV_2 = new System.Windows.Forms.CheckBox(); - this.L_Hint = new System.Windows.Forms.Label(); - this.tabControl1 = new System.Windows.Forms.TabControl(); - this.tabPage1 = new System.Windows.Forms.TabPage(); - this.label1 = new System.Windows.Forms.Label(); - this.tabPage2 = new System.Windows.Forms.TabPage(); - this.GB_Tweak = new System.Windows.Forms.GroupBox(); - this.L_RandOpt = new System.Windows.Forms.Label(); - this.CHK_BST = new System.Windows.Forms.CheckBox(); - this.CHK_E = new System.Windows.Forms.CheckBox(); - this.CHK_L = new System.Windows.Forms.CheckBox(); - this.CHK_G6 = new System.Windows.Forms.CheckBox(); - this.CHK_G5 = new System.Windows.Forms.CheckBox(); - this.CHK_G4 = new System.Windows.Forms.CheckBox(); - this.CHK_G3 = new System.Windows.Forms.CheckBox(); - this.CHK_G2 = new System.Windows.Forms.CheckBox(); - this.CHK_G1 = new System.Windows.Forms.CheckBox(); - this.NUD_LevelBoost = new System.Windows.Forms.NumericUpDown(); - this.CHK_Level = new System.Windows.Forms.CheckBox(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Level)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Form)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Ability)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Gender)).BeginInit(); - this.tabControl1.SuspendLayout(); - this.tabPage1.SuspendLayout(); - this.tabPage2.SuspendLayout(); - this.GB_Tweak.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_LevelBoost)).BeginInit(); - this.SuspendLayout(); - // - // B_Cancel - // - this.B_Cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.B_Cancel.Location = new System.Drawing.Point(261, 296); - this.B_Cancel.Name = "B_Cancel"; - this.B_Cancel.Size = new System.Drawing.Size(70, 23); - this.B_Cancel.TabIndex = 467; - this.B_Cancel.Text = "Cancel"; - this.B_Cancel.UseVisualStyleBackColor = true; - this.B_Cancel.Click += new System.EventHandler(this.B_Cancel_Click); - // - // B_Save - // - this.B_Save.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.B_Save.Location = new System.Drawing.Point(332, 296); - this.B_Save.Name = "B_Save"; - this.B_Save.Size = new System.Drawing.Size(70, 23); - this.B_Save.TabIndex = 466; - this.B_Save.Text = "Save"; - this.B_Save.UseVisualStyleBackColor = true; - this.B_Save.Click += new System.EventHandler(this.B_Save_Click); - // - // LB_Encounters - // - this.LB_Encounters.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left))); - this.LB_Encounters.FormattingEnabled = true; - this.LB_Encounters.Location = new System.Drawing.Point(12, 12); - this.LB_Encounters.Name = "LB_Encounters"; - this.LB_Encounters.Size = new System.Drawing.Size(110, 303); - this.LB_Encounters.TabIndex = 468; - this.LB_Encounters.SelectedIndexChanged += new System.EventHandler(this.changeIndex); - // - // CB_Species - // - this.CB_Species.FormattingEnabled = true; - this.CB_Species.Location = new System.Drawing.Point(106, 3); - this.CB_Species.Name = "CB_Species"; - this.CB_Species.Size = new System.Drawing.Size(121, 21); - this.CB_Species.TabIndex = 469; - this.CB_Species.SelectedIndexChanged += new System.EventHandler(this.changeSpecies); - // - // L_Species - // - this.L_Species.Location = new System.Drawing.Point(6, 3); - this.L_Species.Name = "L_Species"; - this.L_Species.Size = new System.Drawing.Size(94, 21); - this.L_Species.TabIndex = 477; - this.L_Species.Text = "Species:"; - this.L_Species.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_Level - // - this.NUD_Level.Location = new System.Drawing.Point(106, 57); - this.NUD_Level.Name = "NUD_Level"; - this.NUD_Level.Size = new System.Drawing.Size(41, 20); - this.NUD_Level.TabIndex = 479; - this.NUD_Level.Value = new decimal(new int[] { - 100, - 0, - 0, - 0}); - // - // L_Level - // - this.L_Level.Location = new System.Drawing.Point(9, 55); - this.L_Level.Name = "L_Level"; - this.L_Level.Size = new System.Drawing.Size(92, 21); - this.L_Level.TabIndex = 480; - this.L_Level.Text = "Level:"; - this.L_Level.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_Form - // - this.NUD_Form.Location = new System.Drawing.Point(193, 57); - this.NUD_Form.Name = "NUD_Form"; - this.NUD_Form.Size = new System.Drawing.Size(34, 20); - this.NUD_Form.TabIndex = 481; - // - // L_Form - // - this.L_Form.Location = new System.Drawing.Point(99, 55); - this.L_Form.Name = "L_Form"; - this.L_Form.Size = new System.Drawing.Size(94, 21); - this.L_Form.TabIndex = 482; - this.L_Form.Text = "Form:"; - this.L_Form.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // B_RandAll - // - this.B_RandAll.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.B_RandAll.Location = new System.Drawing.Point(178, 296); - this.B_RandAll.Name = "B_RandAll"; - this.B_RandAll.Size = new System.Drawing.Size(83, 23); - this.B_RandAll.TabIndex = 496; - this.B_RandAll.Text = "Randomize All"; - this.B_RandAll.UseVisualStyleBackColor = true; - this.B_RandAll.Click += new System.EventHandler(this.B_RandAll_Click); - // - // L_HeldItem - // - this.L_HeldItem.Location = new System.Drawing.Point(6, 29); - this.L_HeldItem.Name = "L_HeldItem"; - this.L_HeldItem.Size = new System.Drawing.Size(94, 21); - this.L_HeldItem.TabIndex = 478; - this.L_HeldItem.Text = "Held Item:"; - this.L_HeldItem.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // CB_HeldItem - // - this.CB_HeldItem.FormattingEnabled = true; - this.CB_HeldItem.Location = new System.Drawing.Point(106, 30); - this.CB_HeldItem.Name = "CB_HeldItem"; - this.CB_HeldItem.Size = new System.Drawing.Size(121, 21); - this.CB_HeldItem.TabIndex = 470; - // - // NUD_Ability - // - this.NUD_Ability.Location = new System.Drawing.Point(194, 82); - this.NUD_Ability.Maximum = new decimal(new int[] { - 3, - 0, - 0, - 0}); - this.NUD_Ability.Name = "NUD_Ability"; - this.NUD_Ability.Size = new System.Drawing.Size(34, 20); - this.NUD_Ability.TabIndex = 492; - // - // L_Ability - // - this.L_Ability.Location = new System.Drawing.Point(100, 80); - this.L_Ability.Name = "L_Ability"; - this.L_Ability.Size = new System.Drawing.Size(94, 21); - this.L_Ability.TabIndex = 493; - this.L_Ability.Text = "Ability:"; - this.L_Ability.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_Gender - // - this.NUD_Gender.Location = new System.Drawing.Point(194, 108); - this.NUD_Gender.Maximum = new decimal(new int[] { - 2, - 0, - 0, - 0}); - this.NUD_Gender.Name = "NUD_Gender"; - this.NUD_Gender.Size = new System.Drawing.Size(34, 20); - this.NUD_Gender.TabIndex = 494; - // - // L_Gender - // - this.L_Gender.Location = new System.Drawing.Point(100, 106); - this.L_Gender.Name = "L_Gender"; - this.L_Gender.Size = new System.Drawing.Size(94, 21); - this.L_Gender.TabIndex = 495; - this.L_Gender.Text = "Gender:"; - this.L_Gender.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // CHK_3IV - // - this.CHK_3IV.AutoSize = true; - this.CHK_3IV.Location = new System.Drawing.Point(9, 106); - this.CHK_3IV.Name = "CHK_3IV"; - this.CHK_3IV.Size = new System.Drawing.Size(42, 17); - this.CHK_3IV.TabIndex = 497; - this.CHK_3IV.Text = "3IV"; - this.CHK_3IV.UseVisualStyleBackColor = true; - // - // CHK_NoShiny - // - this.CHK_NoShiny.AutoSize = true; - this.CHK_NoShiny.Location = new System.Drawing.Point(9, 83); - this.CHK_NoShiny.Name = "CHK_NoShiny"; - this.CHK_NoShiny.Size = new System.Drawing.Size(79, 17); - this.CHK_NoShiny.TabIndex = 498; - this.CHK_NoShiny.Text = "Shiny Lock"; - this.CHK_NoShiny.UseVisualStyleBackColor = true; - // - // CHK_3IV_2 - // - this.CHK_3IV_2.AutoSize = true; - this.CHK_3IV_2.Location = new System.Drawing.Point(9, 129); - this.CHK_3IV_2.Name = "CHK_3IV_2"; - this.CHK_3IV_2.Size = new System.Drawing.Size(54, 17); - this.CHK_3IV_2.TabIndex = 499; - this.CHK_3IV_2.Text = "3IV_2"; - this.CHK_3IV_2.UseVisualStyleBackColor = true; - // - // L_Hint - // - this.L_Hint.AutoSize = true; - this.L_Hint.Location = new System.Drawing.Point(161, 148); - this.L_Hint.Name = "L_Hint"; - this.L_Hint.Size = new System.Drawing.Size(67, 52); - this.L_Hint.TabIndex = 500; - this.L_Hint.Text = "Gender:\r\n0: Random/-\r\n1: Male\r\n2: Female"; - // - // tabControl1 - // - this.tabControl1.Controls.Add(this.tabPage1); - this.tabControl1.Controls.Add(this.tabPage2); - this.tabControl1.Location = new System.Drawing.Point(128, 12); - this.tabControl1.Name = "tabControl1"; - this.tabControl1.SelectedIndex = 0; - this.tabControl1.Size = new System.Drawing.Size(280, 260); - this.tabControl1.TabIndex = 501; - // - // tabPage1 - // - this.tabPage1.Controls.Add(this.label1); - this.tabPage1.Controls.Add(this.L_Hint); - this.tabPage1.Controls.Add(this.CB_Species); - this.tabPage1.Controls.Add(this.NUD_Ability); - this.tabPage1.Controls.Add(this.CHK_3IV_2); - this.tabPage1.Controls.Add(this.CHK_NoShiny); - this.tabPage1.Controls.Add(this.L_Species); - this.tabPage1.Controls.Add(this.CHK_3IV); - this.tabPage1.Controls.Add(this.L_HeldItem); - this.tabPage1.Controls.Add(this.L_Level); - this.tabPage1.Controls.Add(this.L_Gender); - this.tabPage1.Controls.Add(this.CB_HeldItem); - this.tabPage1.Controls.Add(this.NUD_Gender); - this.tabPage1.Controls.Add(this.NUD_Form); - this.tabPage1.Controls.Add(this.NUD_Level); - this.tabPage1.Controls.Add(this.L_Ability); - this.tabPage1.Controls.Add(this.L_Form); - this.tabPage1.Location = new System.Drawing.Point(4, 22); - this.tabPage1.Name = "tabPage1"; - this.tabPage1.Padding = new System.Windows.Forms.Padding(3); - this.tabPage1.Size = new System.Drawing.Size(272, 234); - this.tabPage1.TabIndex = 0; - this.tabPage1.Text = "Editor"; - this.tabPage1.UseVisualStyleBackColor = true; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(90, 148); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(59, 65); - this.label1.TabIndex = 502; - this.label1.Text = "Ability:\r\n0: Random\r\n1: Ability 0\r\n2: Ability 1\r\n3: Hidden"; - // - // tabPage2 - // - this.tabPage2.Controls.Add(this.GB_Tweak); - this.tabPage2.Controls.Add(this.NUD_LevelBoost); - this.tabPage2.Controls.Add(this.CHK_Level); - this.tabPage2.Location = new System.Drawing.Point(4, 22); - this.tabPage2.Name = "tabPage2"; - this.tabPage2.Padding = new System.Windows.Forms.Padding(3); - this.tabPage2.Size = new System.Drawing.Size(272, 234); - this.tabPage2.TabIndex = 1; - this.tabPage2.Text = "Randomizer Options"; - this.tabPage2.UseVisualStyleBackColor = true; - // - // GB_Tweak - // - this.GB_Tweak.Controls.Add(this.L_RandOpt); - this.GB_Tweak.Controls.Add(this.CHK_BST); - this.GB_Tweak.Controls.Add(this.CHK_E); - this.GB_Tweak.Controls.Add(this.CHK_L); - this.GB_Tweak.Controls.Add(this.CHK_G6); - this.GB_Tweak.Controls.Add(this.CHK_G5); - this.GB_Tweak.Controls.Add(this.CHK_G4); - this.GB_Tweak.Controls.Add(this.CHK_G3); - this.GB_Tweak.Controls.Add(this.CHK_G2); - this.GB_Tweak.Controls.Add(this.CHK_G1); - this.GB_Tweak.Location = new System.Drawing.Point(7, 67); - this.GB_Tweak.Name = "GB_Tweak"; - this.GB_Tweak.Size = new System.Drawing.Size(258, 100); - this.GB_Tweak.TabIndex = 509; - this.GB_Tweak.TabStop = false; - this.GB_Tweak.Text = "Extra Randomization Tweaks"; - // - // L_RandOpt - // - this.L_RandOpt.AutoSize = true; - this.L_RandOpt.Location = new System.Drawing.Point(6, 16); - this.L_RandOpt.Name = "L_RandOpt"; - this.L_RandOpt.Size = new System.Drawing.Size(105, 13); - this.L_RandOpt.TabIndex = 294; - this.L_RandOpt.Text = "Randomizer Options:"; - // - // CHK_BST - // - this.CHK_BST.AutoSize = true; - this.CHK_BST.Location = new System.Drawing.Point(128, 64); - this.CHK_BST.Name = "CHK_BST"; - this.CHK_BST.Size = new System.Drawing.Size(117, 17); - this.CHK_BST.TabIndex = 288; - this.CHK_BST.Text = "Randomize by BST"; - this.CHK_BST.UseVisualStyleBackColor = true; - // - // CHK_E - // - this.CHK_E.AutoSize = true; - this.CHK_E.Checked = true; - this.CHK_E.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_E.Location = new System.Drawing.Point(128, 49); - this.CHK_E.Name = "CHK_E"; - this.CHK_E.Size = new System.Drawing.Size(98, 17); - this.CHK_E.TabIndex = 287; - this.CHK_E.Text = "Event Legends"; - this.CHK_E.UseVisualStyleBackColor = true; - // - // CHK_L - // - this.CHK_L.AutoSize = true; - this.CHK_L.Checked = true; - this.CHK_L.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_L.Location = new System.Drawing.Point(128, 34); - this.CHK_L.Name = "CHK_L"; - this.CHK_L.Size = new System.Drawing.Size(98, 17); - this.CHK_L.TabIndex = 286; - this.CHK_L.Text = "Game Legends"; - this.CHK_L.UseVisualStyleBackColor = true; - // - // CHK_G6 - // - this.CHK_G6.AutoSize = true; - this.CHK_G6.Checked = true; - this.CHK_G6.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G6.Location = new System.Drawing.Point(67, 64); - this.CHK_G6.Name = "CHK_G6"; - this.CHK_G6.Size = new System.Drawing.Size(55, 17); - this.CHK_G6.TabIndex = 285; - this.CHK_G6.Text = "Gen 6"; - this.CHK_G6.UseVisualStyleBackColor = true; - // - // CHK_G5 - // - this.CHK_G5.AutoSize = true; - this.CHK_G5.Checked = true; - this.CHK_G5.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G5.Location = new System.Drawing.Point(67, 49); - this.CHK_G5.Name = "CHK_G5"; - this.CHK_G5.Size = new System.Drawing.Size(55, 17); - this.CHK_G5.TabIndex = 284; - this.CHK_G5.Text = "Gen 5"; - this.CHK_G5.UseVisualStyleBackColor = true; - // - // CHK_G4 - // - this.CHK_G4.AutoSize = true; - this.CHK_G4.Checked = true; - this.CHK_G4.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G4.Location = new System.Drawing.Point(67, 34); - this.CHK_G4.Name = "CHK_G4"; - this.CHK_G4.Size = new System.Drawing.Size(55, 17); - this.CHK_G4.TabIndex = 283; - this.CHK_G4.Text = "Gen 4"; - this.CHK_G4.UseVisualStyleBackColor = true; - // - // CHK_G3 - // - this.CHK_G3.AutoSize = true; - this.CHK_G3.Checked = true; - this.CHK_G3.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G3.Location = new System.Drawing.Point(9, 64); - this.CHK_G3.Name = "CHK_G3"; - this.CHK_G3.Size = new System.Drawing.Size(55, 17); - this.CHK_G3.TabIndex = 282; - this.CHK_G3.Text = "Gen 3"; - this.CHK_G3.UseVisualStyleBackColor = true; - // - // CHK_G2 - // - this.CHK_G2.AutoSize = true; - this.CHK_G2.Checked = true; - this.CHK_G2.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G2.Location = new System.Drawing.Point(9, 49); - this.CHK_G2.Name = "CHK_G2"; - this.CHK_G2.Size = new System.Drawing.Size(55, 17); - this.CHK_G2.TabIndex = 281; - this.CHK_G2.Text = "Gen 2"; - this.CHK_G2.UseVisualStyleBackColor = true; - // - // CHK_G1 - // - this.CHK_G1.AutoSize = true; - this.CHK_G1.Checked = true; - this.CHK_G1.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G1.Location = new System.Drawing.Point(9, 34); - this.CHK_G1.Name = "CHK_G1"; - this.CHK_G1.Size = new System.Drawing.Size(55, 17); - this.CHK_G1.TabIndex = 280; - this.CHK_G1.Text = "Gen 1"; - this.CHK_G1.UseVisualStyleBackColor = true; - // - // NUD_LevelBoost - // - this.NUD_LevelBoost.DecimalPlaces = 2; - this.NUD_LevelBoost.Increment = new decimal(new int[] { - 5, - 0, - 0, - 131072}); - this.NUD_LevelBoost.Location = new System.Drawing.Point(140, 6); - this.NUD_LevelBoost.Maximum = new decimal(new int[] { - 3, - 0, - 0, - 0}); - this.NUD_LevelBoost.Name = "NUD_LevelBoost"; - this.NUD_LevelBoost.Size = new System.Drawing.Size(43, 20); - this.NUD_LevelBoost.TabIndex = 303; - this.NUD_LevelBoost.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // CHK_Level - // - this.CHK_Level.AutoSize = true; - this.CHK_Level.Checked = true; - this.CHK_Level.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_Level.Location = new System.Drawing.Point(8, 7); - this.CHK_Level.Name = "CHK_Level"; - this.CHK_Level.Size = new System.Drawing.Size(130, 17); - this.CHK_Level.TabIndex = 302; - this.CHK_Level.Text = "Multiply PKM Level by"; - this.CHK_Level.UseVisualStyleBackColor = true; - // - // StaticEncounterEditor6 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(414, 331); - this.Controls.Add(this.tabControl1); - this.Controls.Add(this.B_RandAll); - this.Controls.Add(this.LB_Encounters); - this.Controls.Add(this.B_Cancel); - this.Controls.Add(this.B_Save); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.MinimumSize = new System.Drawing.Size(380, 370); - this.Name = "StaticEncounterEditor6"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Static Encounter Editor"; - ((System.ComponentModel.ISupportInitialize)(this.NUD_Level)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Form)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Ability)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Gender)).EndInit(); - this.tabControl1.ResumeLayout(false); - this.tabPage1.ResumeLayout(false); - this.tabPage1.PerformLayout(); - this.tabPage2.ResumeLayout(false); - this.tabPage2.PerformLayout(); - this.GB_Tweak.ResumeLayout(false); - this.GB_Tweak.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_LevelBoost)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.Button B_Cancel; - private System.Windows.Forms.Button B_Save; - private System.Windows.Forms.ListBox LB_Encounters; - private System.Windows.Forms.ComboBox CB_Species; - private System.Windows.Forms.Label L_Species; - private System.Windows.Forms.NumericUpDown NUD_Level; - private System.Windows.Forms.Label L_Level; - private System.Windows.Forms.NumericUpDown NUD_Form; - private System.Windows.Forms.Label L_Form; - private System.Windows.Forms.Button B_RandAll; - private System.Windows.Forms.Label L_Gender; - private System.Windows.Forms.NumericUpDown NUD_Gender; - private System.Windows.Forms.Label L_Ability; - private System.Windows.Forms.NumericUpDown NUD_Ability; - private System.Windows.Forms.ComboBox CB_HeldItem; - private System.Windows.Forms.Label L_HeldItem; - private System.Windows.Forms.CheckBox CHK_3IV; - private System.Windows.Forms.CheckBox CHK_NoShiny; - private System.Windows.Forms.CheckBox CHK_3IV_2; - private System.Windows.Forms.Label L_Hint; - private System.Windows.Forms.TabControl tabControl1; - private System.Windows.Forms.TabPage tabPage1; - private System.Windows.Forms.TabPage tabPage2; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.NumericUpDown NUD_LevelBoost; - private System.Windows.Forms.CheckBox CHK_Level; - private System.Windows.Forms.GroupBox GB_Tweak; - private System.Windows.Forms.Label L_RandOpt; - private System.Windows.Forms.CheckBox CHK_BST; - private System.Windows.Forms.CheckBox CHK_E; - private System.Windows.Forms.CheckBox CHK_L; - private System.Windows.Forms.CheckBox CHK_G6; - private System.Windows.Forms.CheckBox CHK_G5; - private System.Windows.Forms.CheckBox CHK_G4; - private System.Windows.Forms.CheckBox CHK_G3; - private System.Windows.Forms.CheckBox CHK_G2; - private System.Windows.Forms.CheckBox CHK_G1; - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/StaticEncounterEditor6.cs b/pk3DS/Subforms/Gen6/StaticEncounterEditor6.cs deleted file mode 100644 index c11f8e7ab3..0000000000 --- a/pk3DS/Subforms/Gen6/StaticEncounterEditor6.cs +++ /dev/null @@ -1,164 +0,0 @@ -using pk3DS.Core; -using System; -using System.IO; -using System.Linq; -using System.Windows.Forms; - -using pk3DS.Core.Randomizers; -using pk3DS.Core.Structures; - -namespace pk3DS -{ - public partial class StaticEncounterEditor6 : Form - { - public StaticEncounterEditor6() - { - specieslist[0] = "---"; - Array.Resize(ref specieslist, Main.Config.MaxSpeciesID + 1); - if (!File.Exists(FieldPath)) - { - WinFormsUtil.Error("CRO does not exist! Closing.", FieldPath); - Close(); - } - InitializeComponent(); - - specieslist[0] = "---"; - itemlist[0] = "(None)"; // blank == -1 - - CB_Species.Items.Clear(); - foreach (string s in specieslist) - CB_Species.Items.Add(s); - CB_HeldItem.Items.Clear(); - foreach (string s in itemlist) - CB_HeldItem.Items.Add(s); - loadData(); - } - private readonly string FieldPath = Path.Combine(Main.RomFSPath, "DllField.cro"); - private byte[] FieldData; - private readonly int fieldOffset = Main.Config.ORAS ? 0xF1B20 : 0xEE478; - private const int fieldSize = 0xC; - private readonly int count = Main.Config.ORAS ? 0x3B : 0xC; - private EncounterStatic6[] EncounterData; - private readonly string[] itemlist = Main.Config.getText(TextName.ItemNames); - private readonly string[] specieslist = Main.Config.getText(TextName.SpeciesNames); - private void B_Save_Click(object sender, EventArgs e) - { - saveEntry(); - saveData(); - Close(); - } - private void B_Cancel_Click(object sender, EventArgs e) - { - Close(); - } - private void loadData() - { - FieldData = File.ReadAllBytes(FieldPath); - EncounterData = new EncounterStatic6[count]; - LB_Encounters.Items.Clear(); - for (int i = 0; i < EncounterData.Length; i++) - { - EncounterData[i] = new EncounterStatic6(FieldData.Skip(fieldOffset + i * fieldSize).Take(fieldSize).ToArray()); - LB_Encounters.Items.Add($"{i.ToString("00")} - {specieslist[EncounterData[i].Species]}"); - } - loaded = true; - LB_Encounters.SelectedIndex = 0; - } - private void saveData() - { - for (int i = 0; i < EncounterData.Length; i++) - { - int offset = fieldOffset + i*fieldSize; - // Write new data - Array.Copy(EncounterData[i].Write(), 0, FieldData, offset, fieldSize); - } - File.WriteAllBytes(FieldPath, FieldData); - } - - private int entry = -1; - private bool loaded; - private void changeIndex(object sender, EventArgs e) - { - if (LB_Encounters.SelectedIndex < 0) - return; - if (!loaded) - return; - if (entry != -1) - saveEntry(); - entry = LB_Encounters.SelectedIndex; - loadEntry(); - } - private void loadEntry() - { - bool oldloaded = loaded; - loaded = false; - CB_Species.SelectedIndex = EncounterData[entry].Species; - CB_HeldItem.SelectedIndex = EncounterData[entry].HeldItem; - NUD_Level.Value = EncounterData[entry].Level; - NUD_Form.Value = EncounterData[entry].Form; - NUD_Ability.Value = EncounterData[entry].Ability; - NUD_Gender.Value = EncounterData[entry].Gender; - - CHK_NoShiny.Checked = EncounterData[entry].ShinyLock; - CHK_3IV.Checked = EncounterData[entry].IV3; - CHK_3IV_2.Checked = EncounterData[entry].IV3_1; - loaded |= oldloaded; - } - private void saveEntry() - { - EncounterData[entry].Species = (ushort)CB_Species.SelectedIndex; - EncounterData[entry].HeldItem = CB_HeldItem.SelectedIndex; - EncounterData[entry].Level = (byte)NUD_Level.Value; - EncounterData[entry].Form = (byte)NUD_Form.Value; - EncounterData[entry].Ability = (sbyte)NUD_Ability.Value; - EncounterData[entry].Gender = (sbyte)NUD_Gender.Value; - - EncounterData[entry].ShinyLock = CHK_NoShiny.Checked; - EncounterData[entry].IV3 = CHK_3IV.Checked; - EncounterData[entry].IV3_1 = CHK_3IV_2.Checked; - } - - private void B_RandAll_Click(object sender, EventArgs e) - { - if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomize all? Cannot undo.", "Double check Randomization settings in the Randomizer Options tab.") != DialogResult.Yes) return; - - var formrand = new FormRandomizer(Main.Config) { AllowMega = false, AllowAlolanForm = false }; - var specrand = new SpeciesRandomizer(Main.Config) - { - G1 = CHK_G1.Checked, - G2 = CHK_G2.Checked, - G3 = CHK_G3.Checked, - G4 = CHK_G4.Checked, - G5 = CHK_G5.Checked, - G6 = CHK_G6.Checked, - G7 = false, - - E = CHK_E.Checked, - L = CHK_L.Checked, - - rBST = CHK_BST.Checked, - }; - specrand.Initialize(); - for (int i = 0; i < LB_Encounters.Items.Count; i++) - { - LB_Encounters.SelectedIndex = i; - - int species = CB_Species.SelectedIndex; - species = specrand.GetRandomSpecies(species); - CB_Species.SelectedIndex = species; - NUD_Form.Value = formrand.GetRandomForme(species); - NUD_Gender.Value = 0; // random - - if (CHK_Level.Checked) - NUD_Level.Value = Randomizer.getModifiedLevel((int)NUD_Level.Value, NUD_LevelBoost.Value); - } - WinFormsUtil.Alert("Randomized all Static Encounters according to specification!"); - } - - private void changeSpecies(object sender, EventArgs e) - { - int index = LB_Encounters.SelectedIndex; - LB_Encounters.Items[index] = index.ToString("00") + " - " + CB_Species.Text; - } - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/TMHMEditor6.Designer.cs b/pk3DS/Subforms/Gen6/TMHMEditor6.Designer.cs deleted file mode 100644 index a5b7d33d69..0000000000 --- a/pk3DS/Subforms/Gen6/TMHMEditor6.Designer.cs +++ /dev/null @@ -1,141 +0,0 @@ -namespace pk3DS -{ - partial class TMHMEditor6 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.dgvTM = new System.Windows.Forms.DataGridView(); - this.L_TM = new System.Windows.Forms.Label(); - this.dgvHM = new System.Windows.Forms.DataGridView(); - this.L_HM = new System.Windows.Forms.Label(); - this.B_RTM = new System.Windows.Forms.Button(); - this.CHK_RandomizeHM = new System.Windows.Forms.CheckBox(); - ((System.ComponentModel.ISupportInitialize)(this.dgvTM)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.dgvHM)).BeginInit(); - this.SuspendLayout(); - // - // dgvTM - // - this.dgvTM.AllowUserToAddRows = false; - this.dgvTM.AllowUserToDeleteRows = false; - this.dgvTM.AllowUserToResizeColumns = false; - this.dgvTM.AllowUserToResizeRows = false; - this.dgvTM.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left))); - this.dgvTM.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgvTM.Location = new System.Drawing.Point(9, 25); - this.dgvTM.Name = "dgvTM"; - this.dgvTM.Size = new System.Drawing.Size(240, 300); - this.dgvTM.TabIndex = 1; - // - // L_TM - // - this.L_TM.AutoSize = true; - this.L_TM.Location = new System.Drawing.Point(9, 9); - this.L_TM.Name = "L_TM"; - this.L_TM.Size = new System.Drawing.Size(26, 13); - this.L_TM.TabIndex = 2; - this.L_TM.Text = "TM:"; - // - // dgvHM - // - this.dgvHM.AllowUserToAddRows = false; - this.dgvHM.AllowUserToDeleteRows = false; - this.dgvHM.AllowUserToResizeColumns = false; - this.dgvHM.AllowUserToResizeRows = false; - this.dgvHM.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left))); - this.dgvHM.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgvHM.Location = new System.Drawing.Point(256, 25); - this.dgvHM.Name = "dgvHM"; - this.dgvHM.Size = new System.Drawing.Size(240, 277); - this.dgvHM.TabIndex = 3; - // - // L_HM - // - this.L_HM.AutoSize = true; - this.L_HM.Location = new System.Drawing.Point(253, 9); - this.L_HM.Name = "L_HM"; - this.L_HM.Size = new System.Drawing.Size(27, 13); - this.L_HM.TabIndex = 4; - this.L_HM.Text = "HM:"; - // - // B_RTM - // - this.B_RTM.Location = new System.Drawing.Point(41, 1); - this.B_RTM.Name = "B_RTM"; - this.B_RTM.Size = new System.Drawing.Size(75, 23); - this.B_RTM.TabIndex = 5; - this.B_RTM.Text = "Randomize"; - this.B_RTM.UseVisualStyleBackColor = true; - this.B_RTM.Click += new System.EventHandler(this.B_RandomTM_Click); - // - // CHK_RandomizeHM - // - this.CHK_RandomizeHM.AutoSize = true; - this.CHK_RandomizeHM.Location = new System.Drawing.Point(256, 308); - this.CHK_RandomizeHM.Name = "CHK_RandomizeHM"; - this.CHK_RandomizeHM.Size = new System.Drawing.Size(104, 17); - this.CHK_RandomizeHM.TabIndex = 280; - this.CHK_RandomizeHM.Text = "Randomize HMs"; - this.CHK_RandomizeHM.UseVisualStyleBackColor = true; - // - // TMHMEditor6 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(504, 332); - this.Controls.Add(this.CHK_RandomizeHM); - this.Controls.Add(this.B_RTM); - this.Controls.Add(this.L_HM); - this.Controls.Add(this.dgvHM); - this.Controls.Add(this.L_TM); - this.Controls.Add(this.dgvTM); - this.MaximizeBox = false; - this.MaximumSize = new System.Drawing.Size(520, 670); - this.MinimumSize = new System.Drawing.Size(520, 370); - this.Name = "TMHMEditor6"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "TM / HM Editor"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.formClosing); - ((System.ComponentModel.ISupportInitialize)(this.dgvTM)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.dgvHM)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.DataGridView dgvTM; - private System.Windows.Forms.Label L_TM; - private System.Windows.Forms.DataGridView dgvHM; - private System.Windows.Forms.Label L_HM; - private System.Windows.Forms.Button B_RTM; - private System.Windows.Forms.CheckBox CHK_RandomizeHM; - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/TMHMEditor6.cs b/pk3DS/Subforms/Gen6/TMHMEditor6.cs deleted file mode 100644 index 1bd98f484d..0000000000 --- a/pk3DS/Subforms/Gen6/TMHMEditor6.cs +++ /dev/null @@ -1,222 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Windows.Forms; -using System.Linq; -using pk3DS.Core; - -namespace pk3DS -{ - public partial class TMHMEditor6 : Form - { - public TMHMEditor6() - { - InitializeComponent(); - if (Main.ExeFSPath == null) { WinFormsUtil.Alert("No exeFS code to load."); Close(); } - string[] files = Directory.GetFiles(Main.ExeFSPath); - if (!File.Exists(files[0]) || !Path.GetFileNameWithoutExtension(files[0]).Contains("code")) { WinFormsUtil.Alert("No .code.bin detected."); Close(); } - data = File.ReadAllBytes(files[0]); - if (data.Length % 0x200 != 0) { WinFormsUtil.Alert(".code.bin not decompressed. Aborting."); Close(); } - offset = Util.IndexOfBytes(data, Signature, 0x400000, 0) + 8; - codebin = files[0]; - movelist[0] = ""; - setupDGV(); - getList(); - } - - private static readonly byte[] Signature = {0xD4, 0x00, 0xAE, 0x02, 0xAF, 0x02, 0xB0, 0x02}; - private readonly string codebin; - private readonly string[] movelist = Main.Config.getText(TextName.MoveNames); - private readonly int offset = Main.Config.ORAS ? 0x004A67EE : 0x00464796; // Default - private readonly byte[] data; - private int dataoffset; - private void getDataOffset() - { - dataoffset = offset; // reset - } - private void setupDGV() - { - dgvTM.Columns.Clear(); dgvHM.Columns.Clear(); - DataGridViewColumn dgvIndex = new DataGridViewTextBoxColumn(); - { - dgvIndex.HeaderText = "Index"; - dgvIndex.DisplayIndex = 0; - dgvIndex.Width = 45; - dgvIndex.ReadOnly = true; - dgvIndex.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; - dgvIndex.SortMode = DataGridViewColumnSortMode.NotSortable; - } - DataGridViewComboBoxColumn dgvMove = new DataGridViewComboBoxColumn(); - { - dgvMove.HeaderText = "Move"; - dgvMove.DisplayIndex = 1; - foreach (string t in movelist) - dgvMove.Items.Add(t); // add only the Names - - dgvMove.Width = 133; - dgvMove.FlatStyle = FlatStyle.Flat; - dgvIndex.SortMode = DataGridViewColumnSortMode.NotSortable; - } - dgvTM.Columns.Add(dgvIndex); - dgvTM.Columns.Add(dgvMove); - dgvHM.Columns.Add((DataGridViewColumn)dgvIndex.Clone()); - dgvHM.Columns.Add((DataGridViewColumn)dgvMove.Clone()); - } - - private List tms = new List(); - private List hms = new List(); - - private void getList() - { - tms = new List(); - hms = new List(); - dgvTM.Rows.Clear(); - - getDataOffset(); - for (int i = 0; i < 92; i++) // 1-92 TMs stored sequentially - tms.Add(BitConverter.ToUInt16(data, dataoffset + 2 * i)); - for (int i = 92; i < 92 + 5; i++) - hms.Add(BitConverter.ToUInt16(data, dataoffset + 2 * i)); - if (Main.Config.ORAS) - { - hms.Add(BitConverter.ToUInt16(data, dataoffset + 2 * 97)); - for (int i = 98; i < 106; i++) - tms.Add(BitConverter.ToUInt16(data, dataoffset + 2 * i)); - hms.Add(BitConverter.ToUInt16(data, dataoffset + 2 * 106)); - } - else - { - for (int i = 97; i < 105; i++) - tms.Add(BitConverter.ToUInt16(data, dataoffset + 2 * i)); - } - - ushort[] tmlist = tms.ToArray(); - ushort[] hmlist = hms.ToArray(); - for (int i = 0; i < tmlist.Length; i++) - { dgvTM.Rows.Add(); dgvTM.Rows[i].Cells[0].Value = (i + 1).ToString(); dgvTM.Rows[i].Cells[1].Value = movelist[tmlist[i]]; } - for (int i = 0; i < hmlist.Length; i++) - { dgvHM.Rows.Add(); dgvHM.Rows[i].Cells[0].Value = (i + 1).ToString(); dgvHM.Rows[i].Cells[1].Value = movelist[hmlist[i]]; } - } - private void setList() - { - // Gather TM/HM list. - tms = new List(); - hms = new List(); - for (int i = 0; i < dgvTM.Rows.Count; i++) - tms.Add((ushort)Array.IndexOf(movelist, dgvTM.Rows[i].Cells[1].Value)); - - for (int i = 0; i < dgvHM.Rows.Count; i++) - hms.Add((ushort)Array.IndexOf(movelist, dgvHM.Rows[i].Cells[1].Value)); - - ushort[] tmlist = tms.ToArray(); - ushort[] hmlist = hms.ToArray(); - - // Set TM/HM list in - for (int i = 0; i < 92; i++) - Array.Copy(BitConverter.GetBytes(tmlist[i]), 0, data, offset + 2 * i, 2); - for (int i = 92; i < 92 + 5; i++) - Array.Copy(BitConverter.GetBytes(hmlist[i - 92]), 0, data, offset + 2 * i, 2); - if (Main.Config.ORAS) - { - Array.Copy(BitConverter.GetBytes(hmlist[5]), 0, data, offset + 2 * 97, 2); - for (int i = 98; i < 106; i++) - Array.Copy(BitConverter.GetBytes(tmlist[i - 6]), 0, data, offset + 2 * i, 2); - Array.Copy(BitConverter.GetBytes(hmlist[6]), 0, data, offset + 2 * 106, 2); - } - else - { - for (int i = 97; i < 105; i++) - Array.Copy(BitConverter.GetBytes(tmlist[i - 5]), 0, data, offset + 2 * i, 2); - } - - // Set Move Text Descriptions back into Item Text File - string[] itemDescriptions = Main.Config.getText(TextName.ItemFlavor); - string[] moveDescriptions = Main.Config.getText(TextName.MoveFlavor); - for (int i = 1 - 1; i <= 92 - 1; i++) // TM01 - TM92 - itemDescriptions[328 + i] = moveDescriptions[tmlist[i]]; - for (int i = 93 - 1; i <= 95 - 1; i++) // TM92 - TM95 - itemDescriptions[618 + i - 92] = moveDescriptions[tmlist[i]]; - for (int i = 96 - 1; i <= 100 - 1; i++) // TM96 - TM100 - itemDescriptions[690 + i - 95] = moveDescriptions[tmlist[i]]; - for (int i = 1 - 1; i <= 5 - 1; i++) // HM01 - HM05 - itemDescriptions[420 + i] = moveDescriptions[hmlist[i]]; - if (Main.Config.ORAS) - { - itemDescriptions[425] = moveDescriptions[hmlist[5]]; // HM06 - itemDescriptions[737] = moveDescriptions[hmlist[6]]; // HM07 - } - Main.Config.setText(TextName.ItemFlavor, itemDescriptions); - } - - private void formClosing(object sender, FormClosingEventArgs e) - { - setList(); - File.WriteAllBytes(codebin, data); - } - - private void B_RandomTM_Click(object sender, EventArgs e) - { - if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomize TMs?", "Move compatibility will be the same as the base TMs.") != DialogResult.Yes) return; - if(CHK_RandomizeHM.Checked) - if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomizing HMs can halt story progression!", "Continue anyway?") != DialogResult.Yes) return; - - int[] randomMoves = Enumerable.Range(1, movelist.Length - 1).Select(i => i).ToArray(); - Util.Shuffle(randomMoves); - - int[] banned = { 15, 19, 57, 70, 127, 249, 291, 148, 290 }; // Moves with overworld effects - int ctr = 0; - - for (int i = 0; i < dgvTM.Rows.Count; i++) - { - int val = Array.IndexOf(movelist, dgvTM.Rows[i].Cells[1].Value); - if (banned.Contains(val)) continue; - while (banned.Contains(randomMoves[ctr])) ctr++; - - dgvTM.Rows[i].Cells[1].Value = movelist[randomMoves[ctr++]]; - } - - if (CHK_RandomizeHM.Checked) - { - for (int i = 0; i < dgvHM.Rows.Count; i++) - { - dgvTM.Rows[i].Cells[1].Value = movelist[randomMoves[ctr++]]; - dgvHM.Rows[i].Cells[1].Value = movelist[randomMoves[ctr++]]; - } - } - WinFormsUtil.Alert("Randomized!"); - } - - internal static void getTMHMList(bool oras, ref ushort[] TMs, ref ushort[] HMs) - { - if (Main.ExeFSPath == null) return; - string[] files = Directory.GetFiles(Main.ExeFSPath); - if (!File.Exists(files[0]) || !Path.GetFileNameWithoutExtension(files[0]).Contains("code")) return; - byte[] data = File.ReadAllBytes(files[0]); - int dataoffset = Util.IndexOfBytes(data, Signature, 0x400000, 0) + 8; - if (data.Length % 0x200 != 0) return; - - List tms = new List(); - List hms = new List(); - - for (int i = 0; i < 92; i++) // 1-92 TMs stored sequentially - tms.Add(BitConverter.ToUInt16(data, dataoffset + 2 * i)); - for (int i = 92; i < 92 + 5; i++) - hms.Add(BitConverter.ToUInt16(data, dataoffset + 2 * i)); - if (Main.Config.ORAS) - { - hms.Add(BitConverter.ToUInt16(data, dataoffset + 2 * 97)); - for (int i = 98; i < 106; i++) - tms.Add(BitConverter.ToUInt16(data, dataoffset + 2 * i)); - hms.Add(BitConverter.ToUInt16(data, dataoffset + 2 * 106)); - } - else - { - for (int i = 97; i < 105; i++) - tms.Add(BitConverter.ToUInt16(data, dataoffset + 2 * i)); - } - - TMs = tms.ToArray(); - HMs = hms.ToArray(); - } - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/TitleScreenEditor6.Designer.cs b/pk3DS/Subforms/Gen6/TitleScreenEditor6.Designer.cs deleted file mode 100644 index 4c647663e4..0000000000 --- a/pk3DS/Subforms/Gen6/TitleScreenEditor6.Designer.cs +++ /dev/null @@ -1,119 +0,0 @@ -namespace pk3DS -{ - partial class TitleScreenEditor6 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.PB_Image = new System.Windows.Forms.PictureBox(); - this.CB_DARC = new System.Windows.Forms.ComboBox(); - this.CB_File = new System.Windows.Forms.ComboBox(); - this.L_DARCSelect = new System.Windows.Forms.Label(); - this.L_Dimensions = new System.Windows.Forms.Label(); - ((System.ComponentModel.ISupportInitialize)(this.PB_Image)).BeginInit(); - this.SuspendLayout(); - // - // PB_Image - // - this.PB_Image.Location = new System.Drawing.Point(12, 66); - this.PB_Image.Name = "PB_Image"; - this.PB_Image.Size = new System.Drawing.Size(400, 240); - this.PB_Image.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; - this.PB_Image.TabIndex = 0; - this.PB_Image.TabStop = false; - this.PB_Image.Click += new System.EventHandler(this.PB_Image_Click); - // - // CB_DARC - // - this.CB_DARC.FormattingEnabled = true; - this.CB_DARC.Location = new System.Drawing.Point(58, 8); - this.CB_DARC.Name = "CB_DARC"; - this.CB_DARC.Size = new System.Drawing.Size(100, 21); - this.CB_DARC.TabIndex = 1; - this.CB_DARC.SelectedIndexChanged += new System.EventHandler(this.changeDARC); - // - // CB_File - // - this.CB_File.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.CB_File.FormattingEnabled = true; - this.CB_File.Location = new System.Drawing.Point(12, 35); - this.CB_File.Name = "CB_File"; - this.CB_File.Size = new System.Drawing.Size(400, 21); - this.CB_File.TabIndex = 2; - this.CB_File.SelectedIndexChanged += new System.EventHandler(this.changeFile); - // - // L_DARCSelect - // - this.L_DARCSelect.AutoSize = true; - this.L_DARCSelect.Location = new System.Drawing.Point(12, 11); - this.L_DARCSelect.Name = "L_DARCSelect"; - this.L_DARCSelect.Size = new System.Drawing.Size(40, 13); - this.L_DARCSelect.TabIndex = 3; - this.L_DARCSelect.Text = "DARC:"; - // - // L_Dimensions - // - this.L_Dimensions.AutoSize = true; - this.L_Dimensions.Location = new System.Drawing.Point(164, 11); - this.L_Dimensions.Name = "L_Dimensions"; - this.L_Dimensions.Size = new System.Drawing.Size(61, 13); - this.L_Dimensions.TabIndex = 4; - this.L_Dimensions.Text = "Dimensions"; - // - // TitleScreen - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(424, 316); - this.Controls.Add(this.L_Dimensions); - this.Controls.Add(this.L_DARCSelect); - this.Controls.Add(this.CB_File); - this.Controls.Add(this.CB_DARC); - this.Controls.Add(this.PB_Image); - this.MaximizeBox = false; - this.MaximumSize = new System.Drawing.Size(555, 420); - this.MinimumSize = new System.Drawing.Size(440, 354); - this.Name = "TitleScreenEditor6"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Title Screen Editor"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.formClosing); - ((System.ComponentModel.ISupportInitialize)(this.PB_Image)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.PictureBox PB_Image; - private System.Windows.Forms.ComboBox CB_DARC; - private System.Windows.Forms.ComboBox CB_File; - private System.Windows.Forms.Label L_DARCSelect; - private System.Windows.Forms.Label L_Dimensions; - - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/TitleScreenEditor6.cs b/pk3DS/Subforms/Gen6/TitleScreenEditor6.cs deleted file mode 100644 index a12931a19c..0000000000 --- a/pk3DS/Subforms/Gen6/TitleScreenEditor6.cs +++ /dev/null @@ -1,336 +0,0 @@ -using pk3DS.Core.CTR; -using System; -using System.Drawing; -using System.Drawing.Imaging; -using System.IO; -using System.Linq; -using System.Windows.Forms; - -namespace pk3DS -{ - public partial class TitleScreenEditor6 : Form - { - private readonly bool compressed = Main.Config.ORAS; - public TitleScreenEditor6() - { - InitializeComponent(); - AllowDrop = true; - DragEnter += tabMain_DragEnter; - DragDrop += tabMain_DragDrop; - PB_Image.AllowDrop = true; - PB_Image.DragEnter += tabMain_DragEnter; - PB_Image.DragDrop += tabMain_DragDrop; - - // Add tooltip to image - new ToolTip().SetToolTip(PB_Image, "Click to toggle Green Screen\nRightClick for I/O\nCTRL+Click for Copy->Clipboard."); - - // Add context menus - ContextMenuStrip mnu = new ContextMenuStrip(); - ToolStripMenuItem mnuR = new ToolStripMenuItem("Replace with..."); - ToolStripMenuItem mnuS = new ToolStripMenuItem("Save as..."); - // Assign event handlers - mnuR.Click += clickOpen; - mnuS.Click += clickSave; - // Add to main context menu - mnu.Items.AddRange(new ToolStripItem[] { mnuR, mnuS, }); - - // Assign - PB_Image.ContextMenuStrip = mnu; - - // Set up languages - string[] languages = (Main.Config.ORAS ? new[] {"JP1"} : new string[] {}).Concat(new[] {"DE", "ES", "FR", "IT", "JP", "KO", "EN"}).ToArray(); - string[] games = Main.Config.ORAS ? new[] {"OR", "AS"} : new[] {"X", "Y"}; - for (int i = 0; i < darcs.Length/2; i++) - CB_DARC.Items.Add($"{games[0]} - {languages[i]}"); - for (int i = darcs.Length/2; i < darcs.Length; i++) - CB_DARC.Items.Add($"{games[1]} - {languages[i - darcs.Length/2]}"); - - // Load darcs - for (int i = 0; i < darcs.Length; i++) - { - // Get DARC name and assign the decompressed name - usedFiles[i] = "titlescreen\\" + (compressed ? "dec_" : "") + Path.GetFileName(files[darcFiles[i]]); - if (compressed) // Decompress file (XY does not compress) - LZSS.Decompress(files[darcFiles[i]], usedFiles[i]); - // Read decompressed file - var data = File.ReadAllBytes(usedFiles[i]); - - // Find darc data offset (ignore header) - int pos = 0; - while (BitConverter.ToUInt32(data, pos) != 0x63726164) - { - pos += 4; - if (pos >= data.Length) - throw new Exception("Invalid DARC?\n\n" + usedFiles[i]); - } - var darcData = data.Skip(pos).ToArray(); - darcs[i] = new DARC(darcData); - } - - CB_DARC.SelectedIndex = CB_DARC.Items.Count - 1; // last (english game2) - } - private readonly string[] files = Directory.GetFiles("titlescreen"); - private readonly DARC[] darcs = new DARC[2 * (Main.Config.ORAS ? 8 : 7)]; - private readonly string[] usedFiles = new string[2 * (Main.Config.ORAS ? 8 : 7)]; - - private readonly int[] darcFiles = Main.Config.ORAS - ? new[] - { - 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, - 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, - }: new[] - { - 467, 468, 469, 470, 471, 472, 473, - 474, 475, 476, 477, 478, 479, 480, - }; - - private void changeDARC(object sender, EventArgs e) - { - // When the darc is changed, we need to re-load the files - CB_File.Items.Clear(); - var darc = darcs[CB_DARC.SelectedIndex]; - for (int i = 0; i < darc.Entries.Length; i++) - if (darc.FileNameTable[i].FileName.Contains(".bclim")) - CB_File.Items.Add(darc.FileNameTable[i].FileName); - - CB_File.SelectedIndex = CB_File.Items.Count - 1; // Load last (version) - } - - private void changeFile(object sender, EventArgs e) - { - // When the file is changed, we need to display the new file. - string filename = CB_File.Text; - int entry = -1; - // Find entry in darc - var darc = darcs[CB_DARC.SelectedIndex]; - for (int i = 0; i < darc.Entries.Length; i++) - if (darc.FileNameTable[i].FileName == filename) - { - entry = i; - break; - } - if (entry < 0) throw new Exception("File not found!?"); - - // Load file - byte[] data = darc.Data.Skip((int)(darc.Entries[entry].DataOffset - darc.Header.FileDataOffset)).Take((int)darc.Entries[entry].DataLength).ToArray(); - BCLIM.CLIM bclim = BCLIM.analyze(data, filename); - Image img = BCLIM.getIMG(bclim); - - Rectangle cropRect = new Rectangle(0, 0, bclim.Width, bclim.Height); - Bitmap CropBMP = new Bitmap(cropRect.Width, cropRect.Height); - using (Graphics g = Graphics.FromImage(CropBMP)) - { - g.DrawImage(img, - new Rectangle(0, 0, CropBMP.Width, CropBMP.Height), - cropRect, - GraphicsUnit.Pixel); - } - - PB_Image.Image = CropBMP; - // store image locally for saving if need be - currentBytes = data; - - L_Dimensions.Text = $"Dimensions: {PB_Image.Width}w && {PB_Image.Height}h"; - } - private byte[] currentBytes; - private void insertFile(string path) - { - if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Overwrite image?")) - return; - byte[] data = File.ReadAllBytes(path); - byte[] bclim; - - if (Path.GetExtension(path) == ".bclim") // bclim opened - { - var img = BCLIM.analyze(data, path); - if (img.Width != PB_Image.Width || img.Height != PB_Image.Height) - { - WinFormsUtil.Alert("Image sizes do not match.", - $"Width: {img.Width} - {PB_Image.Width}\nHeight: {img.Height} - {PB_Image.Height}"); - return; - } - bclim = data; - } - else // image - { - using (Stream BitmapStream = new MemoryStream(data)) - { - Image img = Image.FromStream(BitmapStream); - if (img.Width != PB_Image.Width || img.Height != PB_Image.Height) - { - WinFormsUtil.Alert("Image sizes do not match.", - $"Width: {img.Width} - {PB_Image.Width}\nHeight: {img.Height} - {PB_Image.Height}"); - return; - } - bclim = BCLIM.IMGToBCLIM(img, '9'); - } - } - - string filename = CB_File.Text; - int entry = -1; - // Find entry in darc - var darc = darcs[CB_DARC.SelectedIndex]; - for (int i = 0; i < darc.Entries.Length; i++) - if (darc.FileNameTable[i].FileName == filename) - { - entry = i; - break; - } - if (entry < 0) throw new Exception("File not found!?"); - - DARC.insertFile(ref darc, entry, bclim); - darcs[CB_DARC.SelectedIndex] = darc; - - // Trigger reloading of the image - changeFile(null, null); - } - - // Dropping file in - private void tabMain_DragEnter(object sender, DragEventArgs e) - { - if (e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = DragDropEffects.Copy; - } - private void tabMain_DragDrop(object sender, DragEventArgs e) - { - string path = ((string[])e.Data.GetData(DataFormats.FileDrop))[0]; // open first D&D - insertFile(path); - } - - private void formClosing(object sender, FormClosingEventArgs e) - { - if (compressed) - WinFormsUtil.Alert("Recompressing may take some time...", "Don't panic if the Progress Bar doesn't move!"); - // Write darcs - for (int i = 0; i < darcs.Length; i++) - { - var data = File.ReadAllBytes(usedFiles[i]); - int pos = 0; - while (BitConverter.ToUInt32(data, pos) != 0x63726164) - { - pos += 4; - if (pos >= data.Length) return; - } - byte[] preData = data.Take(pos).ToArray(); - byte[] darcData = DARC.setDARC(darcs[i]); - byte[] newData = preData.Concat(darcData).ToArray(); - - byte[] oldDarc = File.ReadAllBytes(usedFiles[i]); - if (newData.SequenceEqual(oldDarc)) // if same, just continue. - { - if (compressed) - File.Delete(usedFiles[i]); // Use old compressed file (speedup) - } - else // File is different, replace and allow repacking to compress. - { - if (compressed) - File.Delete(files[darcFiles[i]]); // delete the old compressed file - File.WriteAllBytes(usedFiles[i], newData); // write the new edited (uncompressed) file - } - } - } - - private void clickSave(object sender, EventArgs e) - { - var sfd = new SaveFileDialog - { - FileName = Path.GetFileNameWithoutExtension(CB_File.Text), - Filter = "PNG Image|*.png|BCLIM Image|*.bclim" - }; - if (sfd.ShowDialog() != DialogResult.OK) return; - if (sfd.FilterIndex == 2) // BCLIM - { - byte[] data = currentBytes; - File.WriteAllBytes(sfd.FileName, data); - } - else // PNG - { - Image img = PB_Image.Image; - using (MemoryStream ms = new MemoryStream()) - { - //error will throw from here - img.Save(ms, ImageFormat.Png); - byte[] data = ms.ToArray(); - File.WriteAllBytes(sfd.FileName, data); - } - } - } - private void clickOpen(object sender, EventArgs e) - { - var ofd = new OpenFileDialog - { - FileName = Path.GetFileNameWithoutExtension(CB_File.Text), - Filter = "PNG Image|*.png|BCLIM Image|*.bclim" - }; - if (ofd.ShowDialog() != DialogResult.OK) return; - - insertFile(ofd.FileName); - } - - private void PB_Image_Click(object sender, EventArgs e) - { - if (ModifierKeys == Keys.Control && WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Copy image to clipboard?") == DialogResult.Yes) - Clipboard.SetImage(PB_Image.BackgroundImage); - else if (PB_Image.BackColor == Color.Transparent) - PB_Image.BackColor = Color.GreenYellow; - else PB_Image.BackColor = Color.Transparent; - } - } - #region Documentation - /* Files: - * X - * 467 - X (DE) - * 468 - X (ES) - * 469 - X (FR) - * 470 - X (IT) - * 471 - X (JP) - * 472 - X (KO) - * 473 - X (EN) - * Y - * 474 - Y (DE) - * 475 - Y (ES) - * 476 - Y (FR) - * 477 - Y (IT) - * 478 - Y (JP) - * 479 - Y (KO) - * 480 - Y (EN) - * - * Ruby - * 1120 - オメガルビー (JP) [Single File] - * 1121 - Omega Rubin (DE) - * 1122 - Rubí Omega (ES) - * 1123 - Rubis Oméga (FR) - * 1124 - Rubino Omega (IT) - * 1125 - オメガルビー (JP) - * 1126 - 오메가루비 (KO) - * 1127 - Omega Ruby (EN) - * Sapphire - * 1128 - アルファサファイア (JP) [Single File] - * 1129 - Alpha Saphir (DE) - * 1130 - Zafiro Alfa (ES) - * 1131 - Saphir Alpha (FR) - * 1132 - Zaffiro Alpha (IT) - * 1133 - アルファサファイア (JP) - * 1134 - 알파사파이어 (KO) - * 1135 - Alpha Sapphire (EN) - */ - /* X/Y Title Logos - * \timg\logo_*00.bclim - White Blurred GameVersion & Colored VersionXY - * \timg\logo_*01.bclim - Blurred GameVersion - * \timg\logo_*02.bclim - Blurred GameVersion & Blurred Colored VersionXY - * \timg\logo_*03.bclim - Version - */ - /* OR/AS Title Logos [Single File] - * \timg\title_logo_sapphire.bclim - */ - /* OR/AS Title Logos (Separate) - * \timg\titlelogo_*02.bclim - Blurred Logo - * \timg\titlelogo_*04.bclim - Pokémon whiteback - * \timg\titlelogo_*05.bclim - GameVersion Blurred 1 - * \timg\titlelogo_*06.bclim - GameVersion Blurred 2 - * \timg\title_logo_*01.bclim - Top half of logo (Pokémon) - * \timg\title_logo_*02.bclim - Bottom half of logo (VERSION) - * - * Note: JP/KO are appended with _j or _jp (_ko etc) - */ - #endregion -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/TrainerRand.Designer.cs b/pk3DS/Subforms/Gen6/TrainerRand.Designer.cs deleted file mode 100644 index c4819b781f..0000000000 --- a/pk3DS/Subforms/Gen6/TrainerRand.Designer.cs +++ /dev/null @@ -1,672 +0,0 @@ -namespace pk3DS -{ - partial class TrainerRand - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.CHK_RandomPKM = new System.Windows.Forms.CheckBox(); - this.CHK_RandomItems = new System.Windows.Forms.CheckBox(); - this.CHK_RandomAbilities = new System.Windows.Forms.CheckBox(); - this.CHK_RandomGift = new System.Windows.Forms.CheckBox(); - this.CHK_RandomClass = new System.Windows.Forms.CheckBox(); - this.CHK_MaxDiffAI = new System.Windows.Forms.CheckBox(); - this.CHK_MaxDiffPKM = new System.Windows.Forms.CheckBox(); - this.B_OK = new System.Windows.Forms.Button(); - this.B_Cancel = new System.Windows.Forms.Button(); - this.NUD_GiftPercent = new System.Windows.Forms.NumericUpDown(); - this.label1 = new System.Windows.Forms.Label(); - this.NUD_Level = new System.Windows.Forms.NumericUpDown(); - this.CHK_Level = new System.Windows.Forms.CheckBox(); - this.GB_Tweak = new System.Windows.Forms.GroupBox(); - this.CHK_GymE4Only = new System.Windows.Forms.CheckBox(); - this.CHK_RandomMegaForm = new System.Windows.Forms.CheckBox(); - this.CHK_6PKM = new System.Windows.Forms.CheckBox(); - this.CHK_GymTrainers = new System.Windows.Forms.CheckBox(); - this.CHK_StoryMEvos = new System.Windows.Forms.CheckBox(); - this.CHK_TypeTheme = new System.Windows.Forms.CheckBox(); - this.CHK_BST = new System.Windows.Forms.CheckBox(); - this.CHK_E = new System.Windows.Forms.CheckBox(); - this.CHK_L = new System.Windows.Forms.CheckBox(); - this.CHK_G6 = new System.Windows.Forms.CheckBox(); - this.CHK_G5 = new System.Windows.Forms.CheckBox(); - this.CHK_G4 = new System.Windows.Forms.CheckBox(); - this.CHK_G3 = new System.Windows.Forms.CheckBox(); - this.CHK_G2 = new System.Windows.Forms.CheckBox(); - this.CHK_G1 = new System.Windows.Forms.CheckBox(); - this.CHK_IgnoreSpecialClass = new System.Windows.Forms.CheckBox(); - this.CHK_OnlySingles = new System.Windows.Forms.CheckBox(); - this.NUD_Damage = new System.Windows.Forms.NumericUpDown(); - this.CHK_Damage = new System.Windows.Forms.CheckBox(); - this.CHK_STAB = new System.Windows.Forms.CheckBox(); - this.NUD_STAB = new System.Windows.Forms.NumericUpDown(); - this.CB_Moves = new System.Windows.Forms.ComboBox(); - this.L_Moves = new System.Windows.Forms.Label(); - this.CHK_NoFixedDamage = new System.Windows.Forms.CheckBox(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_GiftPercent)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Level)).BeginInit(); - this.GB_Tweak.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Damage)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_STAB)).BeginInit(); - this.SuspendLayout(); - // - // CHK_RandomPKM - // - this.CHK_RandomPKM.AutoSize = true; - this.CHK_RandomPKM.Checked = true; - this.CHK_RandomPKM.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_RandomPKM.Location = new System.Drawing.Point(12, 31); - this.CHK_RandomPKM.Name = "CHK_RandomPKM"; - this.CHK_RandomPKM.Size = new System.Drawing.Size(114, 17); - this.CHK_RandomPKM.TabIndex = 0; - this.CHK_RandomPKM.Text = "Random Pokémon"; - this.CHK_RandomPKM.UseVisualStyleBackColor = true; - this.CHK_RandomPKM.CheckedChanged += new System.EventHandler(this.CHK_RandomPKM_CheckedChanged); - // - // CHK_RandomItems - // - this.CHK_RandomItems.Anchor = System.Windows.Forms.AnchorStyles.Bottom; - this.CHK_RandomItems.AutoSize = true; - this.CHK_RandomItems.Checked = true; - this.CHK_RandomItems.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_RandomItems.Location = new System.Drawing.Point(21, 295); - this.CHK_RandomItems.Name = "CHK_RandomItems"; - this.CHK_RandomItems.Size = new System.Drawing.Size(119, 17); - this.CHK_RandomItems.TabIndex = 6; - this.CHK_RandomItems.Text = "Random Held Items"; - this.CHK_RandomItems.UseVisualStyleBackColor = true; - // - // CHK_RandomAbilities - // - this.CHK_RandomAbilities.Anchor = System.Windows.Forms.AnchorStyles.Bottom; - this.CHK_RandomAbilities.AutoSize = true; - this.CHK_RandomAbilities.Checked = true; - this.CHK_RandomAbilities.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_RandomAbilities.Location = new System.Drawing.Point(21, 310); - this.CHK_RandomAbilities.Name = "CHK_RandomAbilities"; - this.CHK_RandomAbilities.Size = new System.Drawing.Size(193, 17); - this.CHK_RandomAbilities.TabIndex = 7; - this.CHK_RandomAbilities.Text = "Random Abilities (Including Hidden)"; - this.CHK_RandomAbilities.UseVisualStyleBackColor = true; - // - // CHK_RandomGift - // - this.CHK_RandomGift.Anchor = System.Windows.Forms.AnchorStyles.Bottom; - this.CHK_RandomGift.AutoSize = true; - this.CHK_RandomGift.Checked = true; - this.CHK_RandomGift.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_RandomGift.Location = new System.Drawing.Point(21, 389); - this.CHK_RandomGift.Name = "CHK_RandomGift"; - this.CHK_RandomGift.Size = new System.Drawing.Size(145, 17); - this.CHK_RandomGift.TabIndex = 10; - this.CHK_RandomGift.Text = "Random After-Battle Gifts"; - this.CHK_RandomGift.UseVisualStyleBackColor = true; - this.CHK_RandomGift.CheckedChanged += new System.EventHandler(this.CHK_RandomGift_CheckedChanged); - // - // CHK_RandomClass - // - this.CHK_RandomClass.Anchor = System.Windows.Forms.AnchorStyles.Bottom; - this.CHK_RandomClass.AutoSize = true; - this.CHK_RandomClass.Checked = true; - this.CHK_RandomClass.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_RandomClass.Location = new System.Drawing.Point(21, 342); - this.CHK_RandomClass.Name = "CHK_RandomClass"; - this.CHK_RandomClass.Size = new System.Drawing.Size(141, 17); - this.CHK_RandomClass.TabIndex = 9; - this.CHK_RandomClass.Text = "Random Trainer Classes"; - this.CHK_RandomClass.UseVisualStyleBackColor = true; - this.CHK_RandomClass.CheckedChanged += new System.EventHandler(this.CHK_RandomClass_CheckedChanged); - // - // CHK_MaxDiffAI - // - this.CHK_MaxDiffAI.Anchor = System.Windows.Forms.AnchorStyles.Bottom; - this.CHK_MaxDiffAI.AutoSize = true; - this.CHK_MaxDiffAI.Checked = true; - this.CHK_MaxDiffAI.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_MaxDiffAI.Location = new System.Drawing.Point(21, 404); - this.CHK_MaxDiffAI.Name = "CHK_MaxDiffAI"; - this.CHK_MaxDiffAI.Size = new System.Drawing.Size(95, 17); - this.CHK_MaxDiffAI.TabIndex = 13; - this.CHK_MaxDiffAI.Text = "Max Trainer AI"; - this.CHK_MaxDiffAI.UseVisualStyleBackColor = true; - // - // CHK_MaxDiffPKM - // - this.CHK_MaxDiffPKM.Anchor = System.Windows.Forms.AnchorStyles.Bottom; - this.CHK_MaxDiffPKM.AutoSize = true; - this.CHK_MaxDiffPKM.Checked = true; - this.CHK_MaxDiffPKM.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_MaxDiffPKM.Location = new System.Drawing.Point(21, 325); - this.CHK_MaxDiffPKM.Name = "CHK_MaxDiffPKM"; - this.CHK_MaxDiffPKM.Size = new System.Drawing.Size(64, 17); - this.CHK_MaxDiffPKM.TabIndex = 8; - this.CHK_MaxDiffPKM.Text = "Max IVs"; - this.CHK_MaxDiffPKM.UseVisualStyleBackColor = true; - // - // B_OK - // - this.B_OK.Anchor = System.Windows.Forms.AnchorStyles.Bottom; - this.B_OK.Location = new System.Drawing.Point(250, 374); - this.B_OK.Name = "B_OK"; - this.B_OK.Size = new System.Drawing.Size(50, 23); - this.B_OK.TabIndex = 14; - this.B_OK.Text = "OK"; - this.B_OK.UseVisualStyleBackColor = true; - this.B_OK.Click += new System.EventHandler(this.B_Save_Click); - // - // B_Cancel - // - this.B_Cancel.Anchor = System.Windows.Forms.AnchorStyles.Bottom; - this.B_Cancel.Location = new System.Drawing.Point(250, 396); - this.B_Cancel.Name = "B_Cancel"; - this.B_Cancel.Size = new System.Drawing.Size(50, 23); - this.B_Cancel.TabIndex = 15; - this.B_Cancel.Text = "Cancel"; - this.B_Cancel.UseVisualStyleBackColor = true; - this.B_Cancel.Click += new System.EventHandler(this.B_Close_Click); - // - // NUD_GiftPercent - // - this.NUD_GiftPercent.Anchor = System.Windows.Forms.AnchorStyles.Bottom; - this.NUD_GiftPercent.Location = new System.Drawing.Point(166, 386); - this.NUD_GiftPercent.Name = "NUD_GiftPercent"; - this.NUD_GiftPercent.Size = new System.Drawing.Size(43, 20); - this.NUD_GiftPercent.TabIndex = 11; - this.NUD_GiftPercent.Value = new decimal(new int[] { - 15, - 0, - 0, - 0}); - this.NUD_GiftPercent.ValueChanged += new System.EventHandler(this.changeGiftPercent); - // - // label1 - // - this.label1.Anchor = System.Windows.Forms.AnchorStyles.Bottom; - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(211, 388); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(15, 13); - this.label1.TabIndex = 12; - this.label1.Text = "%"; - // - // NUD_Level - // - this.NUD_Level.DecimalPlaces = 2; - this.NUD_Level.Enabled = false; - this.NUD_Level.Increment = new decimal(new int[] { - 5, - 0, - 0, - 131072}); - this.NUD_Level.Location = new System.Drawing.Point(141, 11); - this.NUD_Level.Maximum = new decimal(new int[] { - 3, - 0, - 0, - 0}); - this.NUD_Level.Minimum = new decimal(new int[] { - 1, - 0, - 0, - 65536}); - this.NUD_Level.Name = "NUD_Level"; - this.NUD_Level.Size = new System.Drawing.Size(43, 20); - this.NUD_Level.TabIndex = 3; - this.NUD_Level.Value = new decimal(new int[] { - 10, - 0, - 0, - 65536}); - this.NUD_Level.ValueChanged += new System.EventHandler(this.changeLevelPercent); - // - // CHK_Level - // - this.CHK_Level.AutoSize = true; - this.CHK_Level.Location = new System.Drawing.Point(12, 12); - this.CHK_Level.Name = "CHK_Level"; - this.CHK_Level.Size = new System.Drawing.Size(130, 17); - this.CHK_Level.TabIndex = 2; - this.CHK_Level.Text = "Multiply PKM Level by"; - this.CHK_Level.UseVisualStyleBackColor = true; - this.CHK_Level.CheckedChanged += new System.EventHandler(this.CHK_Level_CheckedChanged); - // - // GB_Tweak - // - this.GB_Tweak.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left))); - this.GB_Tweak.Controls.Add(this.CHK_GymE4Only); - this.GB_Tweak.Controls.Add(this.CHK_RandomMegaForm); - this.GB_Tweak.Controls.Add(this.CHK_6PKM); - this.GB_Tweak.Controls.Add(this.CHK_GymTrainers); - this.GB_Tweak.Controls.Add(this.CHK_StoryMEvos); - this.GB_Tweak.Controls.Add(this.CHK_TypeTheme); - this.GB_Tweak.Controls.Add(this.CHK_BST); - this.GB_Tweak.Controls.Add(this.CHK_E); - this.GB_Tweak.Controls.Add(this.CHK_L); - this.GB_Tweak.Controls.Add(this.CHK_G6); - this.GB_Tweak.Controls.Add(this.CHK_G5); - this.GB_Tweak.Controls.Add(this.CHK_G4); - this.GB_Tweak.Controls.Add(this.CHK_G3); - this.GB_Tweak.Controls.Add(this.CHK_G2); - this.GB_Tweak.Controls.Add(this.CHK_G1); - this.GB_Tweak.Location = new System.Drawing.Point(12, 54); - this.GB_Tweak.Name = "GB_Tweak"; - this.GB_Tweak.Size = new System.Drawing.Size(270, 150); - this.GB_Tweak.TabIndex = 323; - this.GB_Tweak.TabStop = false; - this.GB_Tweak.Text = "Options"; - // - // CHK_GymE4Only - // - this.CHK_GymE4Only.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.CHK_GymE4Only.AutoSize = true; - this.CHK_GymE4Only.Enabled = false; - this.CHK_GymE4Only.Location = new System.Drawing.Point(141, 126); - this.CHK_GymE4Only.Name = "CHK_GymE4Only"; - this.CHK_GymE4Only.Size = new System.Drawing.Size(125, 17); - this.CHK_GymE4Only.TabIndex = 295; - this.CHK_GymE4Only.Text = "Theme Gym/E4 Only"; - this.CHK_GymE4Only.UseVisualStyleBackColor = true; - // - // CHK_RandomMegaForm - // - this.CHK_RandomMegaForm.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.CHK_RandomMegaForm.AutoSize = true; - this.CHK_RandomMegaForm.Location = new System.Drawing.Point(9, 79); - this.CHK_RandomMegaForm.Name = "CHK_RandomMegaForm"; - this.CHK_RandomMegaForm.Size = new System.Drawing.Size(127, 17); - this.CHK_RandomMegaForm.TabIndex = 294; - this.CHK_RandomMegaForm.Text = "Random Mega Forms"; - this.CHK_RandomMegaForm.UseVisualStyleBackColor = true; - // - // CHK_6PKM - // - this.CHK_6PKM.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.CHK_6PKM.AutoSize = true; - this.CHK_6PKM.Location = new System.Drawing.Point(141, 72); - this.CHK_6PKM.Name = "CHK_6PKM"; - this.CHK_6PKM.Size = new System.Drawing.Size(111, 30); - this.CHK_6PKM.TabIndex = 293; - this.CHK_6PKM.Text = "Have 6 PKM for \r\nImportant Trainers"; - this.CHK_6PKM.UseVisualStyleBackColor = true; - this.CHK_6PKM.CheckedChanged += new System.EventHandler(this.CHK_6PKM_CheckedChanged); - // - // CHK_GymTrainers - // - this.CHK_GymTrainers.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.CHK_GymTrainers.AutoSize = true; - this.CHK_GymTrainers.Enabled = false; - this.CHK_GymTrainers.Location = new System.Drawing.Point(9, 126); - this.CHK_GymTrainers.Name = "CHK_GymTrainers"; - this.CHK_GymTrainers.Size = new System.Drawing.Size(124, 17); - this.CHK_GymTrainers.TabIndex = 292; - this.CHK_GymTrainers.Text = "Theme Gym Trainers"; - this.CHK_GymTrainers.UseVisualStyleBackColor = true; - // - // CHK_StoryMEvos - // - this.CHK_StoryMEvos.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.CHK_StoryMEvos.AutoSize = true; - this.CHK_StoryMEvos.Checked = true; - this.CHK_StoryMEvos.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_StoryMEvos.Location = new System.Drawing.Point(141, 110); - this.CHK_StoryMEvos.Name = "CHK_StoryMEvos"; - this.CHK_StoryMEvos.Size = new System.Drawing.Size(122, 17); - this.CHK_StoryMEvos.TabIndex = 291; - this.CHK_StoryMEvos.Text = "Ensure Story MEvos"; - this.CHK_StoryMEvos.UseVisualStyleBackColor = true; - // - // CHK_TypeTheme - // - this.CHK_TypeTheme.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.CHK_TypeTheme.AutoSize = true; - this.CHK_TypeTheme.Location = new System.Drawing.Point(9, 110); - this.CHK_TypeTheme.Name = "CHK_TypeTheme"; - this.CHK_TypeTheme.Size = new System.Drawing.Size(127, 17); - this.CHK_TypeTheme.TabIndex = 289; - this.CHK_TypeTheme.Text = "Type Theme Trainers"; - this.CHK_TypeTheme.UseVisualStyleBackColor = true; - this.CHK_TypeTheme.CheckedChanged += new System.EventHandler(this.CHK_TypeTheme_CheckedChanged); - // - // CHK_BST - // - this.CHK_BST.AutoSize = true; - this.CHK_BST.Location = new System.Drawing.Point(141, 51); - this.CHK_BST.Name = "CHK_BST"; - this.CHK_BST.Size = new System.Drawing.Size(117, 17); - this.CHK_BST.TabIndex = 288; - this.CHK_BST.Text = "Randomize by BST"; - this.CHK_BST.UseVisualStyleBackColor = true; - // - // CHK_E - // - this.CHK_E.AutoSize = true; - this.CHK_E.Checked = true; - this.CHK_E.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_E.Location = new System.Drawing.Point(141, 36); - this.CHK_E.Name = "CHK_E"; - this.CHK_E.Size = new System.Drawing.Size(98, 17); - this.CHK_E.TabIndex = 287; - this.CHK_E.Text = "Event Legends"; - this.CHK_E.UseVisualStyleBackColor = true; - // - // CHK_L - // - this.CHK_L.AutoSize = true; - this.CHK_L.Checked = true; - this.CHK_L.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_L.Location = new System.Drawing.Point(141, 21); - this.CHK_L.Name = "CHK_L"; - this.CHK_L.Size = new System.Drawing.Size(98, 17); - this.CHK_L.TabIndex = 286; - this.CHK_L.Text = "Game Legends"; - this.CHK_L.UseVisualStyleBackColor = true; - // - // CHK_G6 - // - this.CHK_G6.AutoSize = true; - this.CHK_G6.Checked = true; - this.CHK_G6.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G6.Location = new System.Drawing.Point(75, 51); - this.CHK_G6.Name = "CHK_G6"; - this.CHK_G6.Size = new System.Drawing.Size(55, 17); - this.CHK_G6.TabIndex = 285; - this.CHK_G6.Text = "Gen 6"; - this.CHK_G6.UseVisualStyleBackColor = true; - // - // CHK_G5 - // - this.CHK_G5.AutoSize = true; - this.CHK_G5.Checked = true; - this.CHK_G5.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G5.Location = new System.Drawing.Point(75, 36); - this.CHK_G5.Name = "CHK_G5"; - this.CHK_G5.Size = new System.Drawing.Size(55, 17); - this.CHK_G5.TabIndex = 284; - this.CHK_G5.Text = "Gen 5"; - this.CHK_G5.UseVisualStyleBackColor = true; - // - // CHK_G4 - // - this.CHK_G4.AutoSize = true; - this.CHK_G4.Checked = true; - this.CHK_G4.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G4.Location = new System.Drawing.Point(75, 21); - this.CHK_G4.Name = "CHK_G4"; - this.CHK_G4.Size = new System.Drawing.Size(55, 17); - this.CHK_G4.TabIndex = 283; - this.CHK_G4.Text = "Gen 4"; - this.CHK_G4.UseVisualStyleBackColor = true; - // - // CHK_G3 - // - this.CHK_G3.AutoSize = true; - this.CHK_G3.Checked = true; - this.CHK_G3.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G3.Location = new System.Drawing.Point(9, 51); - this.CHK_G3.Name = "CHK_G3"; - this.CHK_G3.Size = new System.Drawing.Size(55, 17); - this.CHK_G3.TabIndex = 282; - this.CHK_G3.Text = "Gen 3"; - this.CHK_G3.UseVisualStyleBackColor = true; - // - // CHK_G2 - // - this.CHK_G2.AutoSize = true; - this.CHK_G2.Checked = true; - this.CHK_G2.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G2.Location = new System.Drawing.Point(9, 36); - this.CHK_G2.Name = "CHK_G2"; - this.CHK_G2.Size = new System.Drawing.Size(55, 17); - this.CHK_G2.TabIndex = 281; - this.CHK_G2.Text = "Gen 2"; - this.CHK_G2.UseVisualStyleBackColor = true; - // - // CHK_G1 - // - this.CHK_G1.AutoSize = true; - this.CHK_G1.Checked = true; - this.CHK_G1.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G1.Location = new System.Drawing.Point(9, 21); - this.CHK_G1.Name = "CHK_G1"; - this.CHK_G1.Size = new System.Drawing.Size(55, 17); - this.CHK_G1.TabIndex = 280; - this.CHK_G1.Text = "Gen 1"; - this.CHK_G1.UseVisualStyleBackColor = true; - // - // CHK_IgnoreSpecialClass - // - this.CHK_IgnoreSpecialClass.Anchor = System.Windows.Forms.AnchorStyles.Bottom; - this.CHK_IgnoreSpecialClass.AutoSize = true; - this.CHK_IgnoreSpecialClass.Checked = true; - this.CHK_IgnoreSpecialClass.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_IgnoreSpecialClass.Location = new System.Drawing.Point(40, 358); - this.CHK_IgnoreSpecialClass.Name = "CHK_IgnoreSpecialClass"; - this.CHK_IgnoreSpecialClass.Size = new System.Drawing.Size(133, 17); - this.CHK_IgnoreSpecialClass.TabIndex = 324; - this.CHK_IgnoreSpecialClass.Text = "Ignore Special Classes"; - this.CHK_IgnoreSpecialClass.UseVisualStyleBackColor = true; - // - // CHK_OnlySingles - // - this.CHK_OnlySingles.Anchor = System.Windows.Forms.AnchorStyles.Bottom; - this.CHK_OnlySingles.AutoSize = true; - this.CHK_OnlySingles.Checked = true; - this.CHK_OnlySingles.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_OnlySingles.Location = new System.Drawing.Point(40, 372); - this.CHK_OnlySingles.Name = "CHK_OnlySingles"; - this.CHK_OnlySingles.Size = new System.Drawing.Size(114, 17); - this.CHK_OnlySingles.TabIndex = 325; - this.CHK_OnlySingles.Text = "Only Single Battles"; - this.CHK_OnlySingles.UseVisualStyleBackColor = true; - // - // NUD_Damage - // - this.NUD_Damage.Anchor = System.Windows.Forms.AnchorStyles.Bottom; - this.NUD_Damage.Location = new System.Drawing.Point(213, 254); - this.NUD_Damage.Maximum = new decimal(new int[] { - 4, - 0, - 0, - 0}); - this.NUD_Damage.Name = "NUD_Damage"; - this.NUD_Damage.Size = new System.Drawing.Size(35, 20); - this.NUD_Damage.TabIndex = 326; - this.NUD_Damage.Value = new decimal(new int[] { - 2, - 0, - 0, - 0}); - // - // CHK_Damage - // - this.CHK_Damage.Anchor = System.Windows.Forms.AnchorStyles.Bottom; - this.CHK_Damage.AutoSize = true; - this.CHK_Damage.Checked = true; - this.CHK_Damage.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_Damage.Location = new System.Drawing.Point(21, 256); - this.CHK_Damage.Name = "CHK_Damage"; - this.CHK_Damage.Size = new System.Drawing.Size(192, 17); - this.CHK_Damage.TabIndex = 327; - this.CHK_Damage.Text = "Ensure at least # Damaging Moves"; - this.CHK_Damage.UseVisualStyleBackColor = true; - // - // CHK_STAB - // - this.CHK_STAB.Anchor = System.Windows.Forms.AnchorStyles.Bottom; - this.CHK_STAB.AutoSize = true; - this.CHK_STAB.Checked = true; - this.CHK_STAB.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_STAB.Location = new System.Drawing.Point(21, 275); - this.CHK_STAB.Name = "CHK_STAB"; - this.CHK_STAB.Size = new System.Drawing.Size(172, 17); - this.CHK_STAB.TabIndex = 328; - this.CHK_STAB.Text = "Ensure at least # STAB Moves"; - this.CHK_STAB.UseVisualStyleBackColor = true; - // - // NUD_STAB - // - this.NUD_STAB.Anchor = System.Windows.Forms.AnchorStyles.Bottom; - this.NUD_STAB.Location = new System.Drawing.Point(213, 275); - this.NUD_STAB.Maximum = new decimal(new int[] { - 4, - 0, - 0, - 0}); - this.NUD_STAB.Name = "NUD_STAB"; - this.NUD_STAB.Size = new System.Drawing.Size(35, 20); - this.NUD_STAB.TabIndex = 329; - this.NUD_STAB.Value = new decimal(new int[] { - 2, - 0, - 0, - 0}); - // - // CB_Moves - // - this.CB_Moves.Anchor = System.Windows.Forms.AnchorStyles.Bottom; - this.CB_Moves.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_Moves.FormattingEnabled = true; - this.CB_Moves.Items.AddRange(new object[] { - "Don\'t Modify", - "Randomize All", - "Use Levelup Only"}); - this.CB_Moves.Location = new System.Drawing.Point(67, 210); - this.CB_Moves.Name = "CB_Moves"; - this.CB_Moves.Size = new System.Drawing.Size(121, 21); - this.CB_Moves.TabIndex = 330; - this.CB_Moves.SelectedIndexChanged += new System.EventHandler(this.changeMoveRandomization); - // - // L_Moves - // - this.L_Moves.Anchor = System.Windows.Forms.AnchorStyles.Bottom; - this.L_Moves.AutoSize = true; - this.L_Moves.Location = new System.Drawing.Point(19, 213); - this.L_Moves.Name = "L_Moves"; - this.L_Moves.Size = new System.Drawing.Size(42, 13); - this.L_Moves.TabIndex = 331; - this.L_Moves.Text = "Moves:"; - // - // CHK_NoFixedDamage - // - this.CHK_NoFixedDamage.AutoSize = true; - this.CHK_NoFixedDamage.Checked = true; - this.CHK_NoFixedDamage.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_NoFixedDamage.Location = new System.Drawing.Point(21, 237); - this.CHK_NoFixedDamage.Name = "CHK_NoFixedDamage"; - this.CHK_NoFixedDamage.Size = new System.Drawing.Size(281, 17); - this.CHK_NoFixedDamage.TabIndex = 332; - this.CHK_NoFixedDamage.Text = "No Fixed Damage Moves (Dragon Rage/Sonic Boom)"; - this.CHK_NoFixedDamage.UseVisualStyleBackColor = true; - // - // TrainerRand - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(304, 431); - this.Controls.Add(this.CHK_NoFixedDamage); - this.Controls.Add(this.L_Moves); - this.Controls.Add(this.CB_Moves); - this.Controls.Add(this.CHK_OnlySingles); - this.Controls.Add(this.GB_Tweak); - this.Controls.Add(this.NUD_GiftPercent); - this.Controls.Add(this.CHK_MaxDiffAI); - this.Controls.Add(this.CHK_MaxDiffPKM); - this.Controls.Add(this.CHK_RandomAbilities); - this.Controls.Add(this.CHK_RandomItems); - this.Controls.Add(this.NUD_Level); - this.Controls.Add(this.CHK_Level); - this.Controls.Add(this.label1); - this.Controls.Add(this.B_Cancel); - this.Controls.Add(this.B_OK); - this.Controls.Add(this.CHK_RandomGift); - this.Controls.Add(this.CHK_RandomPKM); - this.Controls.Add(this.CHK_IgnoreSpecialClass); - this.Controls.Add(this.CHK_RandomClass); - this.Controls.Add(this.NUD_STAB); - this.Controls.Add(this.CHK_STAB); - this.Controls.Add(this.CHK_Damage); - this.Controls.Add(this.NUD_Damage); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; - this.MaximizeBox = false; - this.MaximumSize = new System.Drawing.Size(320, 840); - this.MinimumSize = new System.Drawing.Size(320, 240); - this.Name = "TrainerRand"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Trainer Battle Randomizer"; - ((System.ComponentModel.ISupportInitialize)(this.NUD_GiftPercent)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Level)).EndInit(); - this.GB_Tweak.ResumeLayout(false); - this.GB_Tweak.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Damage)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_STAB)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.CheckBox CHK_RandomPKM; - private System.Windows.Forms.CheckBox CHK_RandomItems; - private System.Windows.Forms.CheckBox CHK_RandomAbilities; - private System.Windows.Forms.CheckBox CHK_RandomGift; - private System.Windows.Forms.CheckBox CHK_RandomClass; - private System.Windows.Forms.CheckBox CHK_MaxDiffAI; - private System.Windows.Forms.CheckBox CHK_MaxDiffPKM; - private System.Windows.Forms.Button B_OK; - private System.Windows.Forms.Button B_Cancel; - private System.Windows.Forms.NumericUpDown NUD_GiftPercent; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.NumericUpDown NUD_Level; - private System.Windows.Forms.CheckBox CHK_Level; - private System.Windows.Forms.GroupBox GB_Tweak; - private System.Windows.Forms.CheckBox CHK_BST; - private System.Windows.Forms.CheckBox CHK_E; - private System.Windows.Forms.CheckBox CHK_L; - private System.Windows.Forms.CheckBox CHK_G6; - private System.Windows.Forms.CheckBox CHK_G5; - private System.Windows.Forms.CheckBox CHK_G4; - private System.Windows.Forms.CheckBox CHK_G3; - private System.Windows.Forms.CheckBox CHK_G2; - private System.Windows.Forms.CheckBox CHK_G1; - private System.Windows.Forms.CheckBox CHK_TypeTheme; - private System.Windows.Forms.CheckBox CHK_StoryMEvos; - private System.Windows.Forms.CheckBox CHK_GymTrainers; - private System.Windows.Forms.CheckBox CHK_IgnoreSpecialClass; - private System.Windows.Forms.CheckBox CHK_OnlySingles; - private System.Windows.Forms.NumericUpDown NUD_Damage; - private System.Windows.Forms.CheckBox CHK_Damage; - private System.Windows.Forms.CheckBox CHK_STAB; - private System.Windows.Forms.NumericUpDown NUD_STAB; - private System.Windows.Forms.ComboBox CB_Moves; - private System.Windows.Forms.Label L_Moves; - private System.Windows.Forms.CheckBox CHK_6PKM; - private System.Windows.Forms.CheckBox CHK_RandomMegaForm; - private System.Windows.Forms.CheckBox CHK_GymE4Only; - private System.Windows.Forms.CheckBox CHK_NoFixedDamage; - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/TrainerRand.cs b/pk3DS/Subforms/Gen6/TrainerRand.cs deleted file mode 100644 index 121101721c..0000000000 --- a/pk3DS/Subforms/Gen6/TrainerRand.cs +++ /dev/null @@ -1,166 +0,0 @@ -using pk3DS.Core; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Windows.Forms; -using pk3DS.Core.Randomizers; - -namespace pk3DS -{ - public partial class TrainerRand : Form - { - public TrainerRand() - { - InitializeComponent(); - CB_Moves.SelectedIndex = 1; - trClassnorep = new List(); - foreach (string tclass in trClass.Where(tclass => !trClassnorep.Contains(tclass) && !tclass.StartsWith("[~"))) - trClassnorep.Add(tclass); - trClassnorep.Sort(); - } - - private string[] trName = Main.Config.getText(TextName.TrainerNames); - private readonly string[] trClass = Main.Config.getText(TextName.TrainerClasses); - private readonly List trClassnorep; - - private void B_Close_Click(object sender, EventArgs e) - { - Close(); - } - private void B_Save_Click(object sender, EventArgs e) - { - if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomize all? Cannot undo.", "Double check Randomization settings before continuing.") != DialogResult.Yes) - return; - - RSTE.rPKM = CHK_RandomPKM.Checked; - RSTE.rSmart = CHK_BST.Checked; - RSTE.rLevel = CHK_Level.Checked; - RSTE.rLevelMultiplier = NUD_Level.Value; - RSTE.rNoFixedDamage = CHK_NoFixedDamage.Checked; - - RSTE.rMove = CB_Moves.SelectedIndex == 1; - RSTE.rNoMove = CB_Moves.SelectedIndex == 2; - if (RSTE.rMove) - { - RSTE.rDMG = CHK_Damage.Checked; - if (RSTE.rDMG) - RSTE.rDMGCount = (int)NUD_Damage.Value; - RSTE.rSTAB = CHK_STAB.Checked; - if (RSTE.rSTAB) - RSTE.rSTABCount = (int)NUD_STAB.Value; - } - RSTE.rItem = CHK_RandomItems.Checked; - RSTE.rAbility = CHK_RandomAbilities.Checked; - RSTE.rDiffIV = CHK_MaxDiffPKM.Checked; - - RSTE.rClass = CHK_RandomClass.Checked; - if (RSTE.rClass) - { - RSTE.rIgnoreClass = CHK_IgnoreSpecialClass.Checked - ? Main.Config.ORAS - ? Legal.SpecialClasses_ORAS - : Legal.SpecialClasses_XY - : new int[] {}; - RSTE.rOnlySingles = CHK_OnlySingles.Checked; - } - RSTE.rGift = CHK_RandomGift.Checked; - RSTE.rGiftPercent = NUD_GiftPercent.Value; - RSTE.rDiffAI = CHK_MaxDiffAI.Checked; - RSTE.rTypeTheme = CHK_TypeTheme.Checked; - RSTE.rTypeGymTrainers = CHK_GymTrainers.Checked; - RSTE.rGymE4Only = CHK_GymE4Only.Checked; - RSTE.r6PKM = CHK_6PKM.Checked; - RSTE.rRandomMegas = CHK_RandomMegaForm.Checked; - - if (CHK_StoryMEvos.Checked) - { - RSTE.rEnsureMEvo = Main.Config.ORAS - ? new [] { 178, 235, 557, 583, 687, 698, 699, 700, 701, 713, 906, 907, 908, 909, 910, 911, 912, 913, 942, 944, 946 } - : new [] { 188, 263, 276, 277, 519, 520, 521, 526, 599, 600, 601 }; - } - else - { - RSTE.rEnsureMEvo = new int[] { }; - } - - RSTE.rThemedClasses = new bool[trClass.Length]; - RSTE.rSpeciesRand = new SpeciesRandomizer(Main.Config) - { - G1 = CHK_G1.Checked, - G2 = CHK_G2.Checked, - G3 = CHK_G3.Checked, - G4 = CHK_G4.Checked, - G5 = CHK_G5.Checked, - G6 = CHK_G6.Checked, - - L = CHK_L.Checked, - E = CHK_E.Checked, - Shedinja = true, - - rBST = CHK_BST.Checked, - }; - RSTE.rSpeciesRand.Initialize(); - - RSTE.rDoRand = true; - Close(); - } - - private void CHK_RandomPKM_CheckedChanged(object sender, EventArgs e) - { - GB_Tweak.Enabled = - CHK_G1.Checked = CHK_G2.Checked = CHK_G3.Checked = - CHK_G4.Checked = CHK_G5.Checked = CHK_G6.Checked = - CHK_L.Checked = CHK_E.Checked = CHK_StoryMEvos.Checked = - CHK_RandomPKM.Checked; - - CHK_TypeTheme.Checked = CHK_GymTrainers.Checked = CHK_GymE4Only.Checked = - CHK_BST.Checked = CHK_6PKM.Checked = CHK_RandomMegaForm.Checked = false; // Off by default - } - - private void CHK_Level_CheckedChanged(object sender, EventArgs e) - { - NUD_Level.Enabled = CHK_Level.Checked; - } - private void changeLevelPercent(object sender, EventArgs e) - { - CHK_Level.Checked = NUD_Level.Value != 0; - } - private void CHK_RandomGift_CheckedChanged(object sender, EventArgs e) - { - NUD_GiftPercent.Enabled = CHK_RandomGift.Checked; - NUD_GiftPercent.Value = Convert.ToDecimal(CHK_RandomGift.Checked) * 15; - } - private void changeGiftPercent(object sender, EventArgs e) - { - CHK_RandomGift.Checked = NUD_GiftPercent.Value != 0; - } - - private void CHK_TypeTheme_CheckedChanged(object sender, EventArgs e) - { - CHK_GymTrainers.Enabled = CHK_GymTrainers.Checked = CHK_GymE4Only.Enabled = CHK_TypeTheme.Checked; - if (!CHK_TypeTheme.Checked) - CHK_GymTrainers.Checked = CHK_GymE4Only.Checked = false; - } - - private void CHK_RandomClass_CheckedChanged(object sender, EventArgs e) - { - CHK_IgnoreSpecialClass.Enabled = CHK_IgnoreSpecialClass.Checked = - CHK_OnlySingles.Enabled = CHK_OnlySingles.Checked = CHK_RandomClass.Checked; - } - - private void changeMoveRandomization(object sender, EventArgs e) - { - CHK_Damage.Checked = CHK_STAB.Checked = - CHK_Damage.Enabled = CHK_STAB.Enabled = - NUD_Damage.Enabled = NUD_STAB.Enabled = CB_Moves.SelectedIndex == 1; - - //if (CB_Moves.SelectedIndex == 0) - // CHK_6PKM.Checked = false; - } - private void CHK_6PKM_CheckedChanged(object sender, EventArgs e) - { - //if (CB_Moves.SelectedIndex == 0) - // CHK_6PKM.Checked = false; - } - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/TutorEditor6.Designer.cs b/pk3DS/Subforms/Gen6/TutorEditor6.Designer.cs deleted file mode 100644 index 310a2fbad6..0000000000 --- a/pk3DS/Subforms/Gen6/TutorEditor6.Designer.cs +++ /dev/null @@ -1,100 +0,0 @@ -namespace pk3DS -{ - partial class TutorEditor6 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.CB_Location = new System.Windows.Forms.ComboBox(); - this.dgv = new System.Windows.Forms.DataGridView(); - this.L_Mart = new System.Windows.Forms.Label(); - ((System.ComponentModel.ISupportInitialize)(this.dgv)).BeginInit(); - this.SuspendLayout(); - // - // CB_Location - // - this.CB_Location.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.CB_Location.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_Location.FormattingEnabled = true; - this.CB_Location.Location = new System.Drawing.Point(69, 6); - this.CB_Location.Name = "CB_Location"; - this.CB_Location.Size = new System.Drawing.Size(243, 21); - this.CB_Location.TabIndex = 0; - this.CB_Location.SelectedIndexChanged += new System.EventHandler(this.changeIndex); - // - // dgv - // - this.dgv.AllowUserToAddRows = false; - this.dgv.AllowUserToDeleteRows = false; - this.dgv.AllowUserToResizeColumns = false; - this.dgv.AllowUserToResizeRows = false; - this.dgv.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.dgv.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgv.Location = new System.Drawing.Point(12, 33); - this.dgv.Name = "dgv"; - this.dgv.Size = new System.Drawing.Size(300, 317); - this.dgv.TabIndex = 1; - // - // L_Mart - // - this.L_Mart.AutoSize = true; - this.L_Mart.Location = new System.Drawing.Point(12, 9); - this.L_Mart.Name = "L_Mart"; - this.L_Mart.Size = new System.Drawing.Size(51, 13); - this.L_Mart.TabIndex = 2; - this.L_Mart.Text = "Location:"; - // - // Tutors - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(324, 362); - this.Controls.Add(this.L_Mart); - this.Controls.Add(this.dgv); - this.Controls.Add(this.CB_Location); - this.MaximizeBox = false; - this.MaximumSize = new System.Drawing.Size(340, 600); - this.MinimumSize = new System.Drawing.Size(340, 400); - this.Name = "TutorEditor6"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Move Tutor Editor"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.formClosing); - ((System.ComponentModel.ISupportInitialize)(this.dgv)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.ComboBox CB_Location; - private System.Windows.Forms.DataGridView dgv; - private System.Windows.Forms.Label L_Mart; - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/TutorEditor6.cs b/pk3DS/Subforms/Gen6/TutorEditor6.cs deleted file mode 100644 index 4c1cd3fabc..0000000000 --- a/pk3DS/Subforms/Gen6/TutorEditor6.cs +++ /dev/null @@ -1,123 +0,0 @@ -using pk3DS.Core; -using System; -using System.IO; -using System.Windows.Forms; - -namespace pk3DS -{ - public partial class TutorEditor6 : Form - { - public TutorEditor6() - { - InitializeComponent(); - if (Main.ExeFSPath == null) { WinFormsUtil.Alert("No exeFS code to load."); Close(); } - string[] files = Directory.GetFiles(Main.ExeFSPath); - if (!File.Exists(files[0]) || !Path.GetFileNameWithoutExtension(files[0]).Contains("code")) { WinFormsUtil.Alert("No .code.bin detected."); Close(); } - data = File.ReadAllBytes(files[0]); - if (data.Length % 0x200 != 0) { WinFormsUtil.Alert(".code.bin not decompressed. Aborting."); Close(); } - offset = GetDataOffset(data); - codebin = files[0]; - movelist[0] = ""; - setupDGV(); - foreach (string s in locations) CB_Location.Items.Add(s); - CB_Location.SelectedIndex = 0; - WinFormsUtil.Alert("Changes made do not reflect ingame.", "Still needs more research."); - } - - private static int GetDataOffset(byte[] data) - { - byte[] vanilla = - { - 0x00, 0x46, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x00, 0x00, 0x45, 0x64, 0x67, - 0x65, 0x49, 0x44, 0x00, 0xFF - }; - int offset = Util.IndexOfBytes(data, vanilla, 0x400000, 0); - if (offset >= 0) - return offset + vanilla.Length; - - byte[] patched = - { - 0x00, 0x46, 0x6F, 0x72, 0x6D, 0x61, 0x74, 0x54, 0x79, 0x70, 0x65, 0x00, 0x00, 0x45, 0x64, 0x67, - 0x65, 0x49, 0x44, 0x00, 0x00, 0x63, 0x3A, 0x5C, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6F, 0x6E, - 0x31, 0x5F, 0x73, 0x61, 0x6E, 0x67, 0x6F, 0x5C, 0x73, 0x61, 0x6E, 0x67, 0x6F, 0x5F, 0x70, 0x72, - 0x6F, 0x6A, 0x65, 0x63, 0x74, 0x5C, 0x70, 0x72, 0x6F, 0x67, 0x5C, 0x73, 0x72, 0x63, 0x2F, 0x73, - 0x79, 0x73, 0x74, 0x65, 0x6D, 0x2F, 0x6D, 0x6F, 0x74, 0x69, 0x6F, 0x6E, 0x2F, 0x4D, 0x6F, 0x74, - 0x69, 0x6F, 0x6E, 0x2E, 0x63, 0x70, 0x70, 0x00, 0x00 - }; - offset = Util.IndexOfBytes(data, patched, 0x400000, 0); - - if (offset >= 0) - return offset + patched.Length; - - return -1; - } - - private readonly string codebin; - private readonly string[] movelist = Main.Config.getText(TextName.MoveNames); - private readonly byte[] data; - private readonly byte[] entries = { 0xF, 0x11, 0x10, 0xF }; // Entries per Tutor - private readonly int offset; - private int dataoffset; - readonly string[] locations = { "1", "2", "3", "4" }; - private void getDataOffset(int index) - { - dataoffset = offset; // reset - for (int i = 0; i < index; i++) - dataoffset += 2 * entries[i] + 2; // There's a EndCap - } - private void setupDGV() - { - DataGridViewColumn dgvIndex = new DataGridViewTextBoxColumn(); - { - dgvIndex.HeaderText = "Index"; - dgvIndex.DisplayIndex = 0; - dgvIndex.Width = 45; - dgvIndex.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; - } - DataGridViewComboBoxColumn dgvMove = new DataGridViewComboBoxColumn(); - { - dgvMove.HeaderText = "Move"; - dgvMove.DisplayIndex = 1; - foreach (string t in movelist) - dgvMove.Items.Add(t); // add only the Names - - dgvMove.Width = 135; - dgvMove.FlatStyle = FlatStyle.Flat; - } - dgv.Columns.Add(dgvIndex); - dgv.Columns.Add(dgvMove); - } - - private int entry = -1; - private void changeIndex(object sender, EventArgs e) - { - if (entry > -1) setList(); - entry = CB_Location.SelectedIndex; - getList(); - } - private void getList() - { - dgv.Rows.Clear(); - int count = entries[entry]; - dgv.Rows.Add(count); - getDataOffset(entry); - for (int i = 0; i < count; i++) - { - dgv.Rows[i].Cells[0].Value = i.ToString(); - dgv.Rows[i].Cells[1].Value = movelist[BitConverter.ToUInt16(data, dataoffset + 2 * i)]; - } - } - private void setList() - { - int count = dgv.Rows.Count; - for (int i = 0; i < count; i++) - Array.Copy(BitConverter.GetBytes((ushort)Array.IndexOf(movelist, dgv.Rows[i].Cells[1].Value)), 0, data, dataoffset + 2 * i, 2); - } - - private void formClosing(object sender, FormClosingEventArgs e) - { - if (entry > -1) setList(); - File.WriteAllBytes(codebin, data); - } - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/TypeChart6.Designer.cs b/pk3DS/Subforms/Gen6/TypeChart6.Designer.cs deleted file mode 100644 index eed8d8db34..0000000000 --- a/pk3DS/Subforms/Gen6/TypeChart6.Designer.cs +++ /dev/null @@ -1,109 +0,0 @@ -namespace pk3DS -{ - partial class TypeChart6 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.PB_Chart = new System.Windows.Forms.PictureBox(); - this.B_Cancel = new System.Windows.Forms.Button(); - this.B_Save = new System.Windows.Forms.Button(); - this.L_Hover = new System.Windows.Forms.Label(); - ((System.ComponentModel.ISupportInitialize)(this.PB_Chart)).BeginInit(); - this.SuspendLayout(); - // - // PB_Chart - // - this.PB_Chart.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.PB_Chart.Location = new System.Drawing.Point(12, 12); - this.PB_Chart.Name = "PB_Chart"; - this.PB_Chart.Size = new System.Drawing.Size(579, 579); - this.PB_Chart.TabIndex = 0; - this.PB_Chart.TabStop = false; - this.PB_Chart.MouseClick += new System.Windows.Forms.MouseEventHandler(this.clickMouse); - this.PB_Chart.MouseMove += new System.Windows.Forms.MouseEventHandler(this.moveMouse); - // - // B_Cancel - // - this.B_Cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.B_Cancel.Location = new System.Drawing.Point(436, 602); - this.B_Cancel.Name = "B_Cancel"; - this.B_Cancel.Size = new System.Drawing.Size(75, 23); - this.B_Cancel.TabIndex = 467; - this.B_Cancel.Text = "Cancel"; - this.B_Cancel.UseVisualStyleBackColor = true; - this.B_Cancel.Click += new System.EventHandler(this.B_Cancel_Click); - // - // B_Save - // - this.B_Save.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.B_Save.Location = new System.Drawing.Point(517, 602); - this.B_Save.Name = "B_Save"; - this.B_Save.Size = new System.Drawing.Size(75, 23); - this.B_Save.TabIndex = 466; - this.B_Save.Text = "Save"; - this.B_Save.UseVisualStyleBackColor = true; - this.B_Save.Click += new System.EventHandler(this.B_Save_Click); - // - // L_Hover - // - this.L_Hover.AutoSize = true; - this.L_Hover.Location = new System.Drawing.Point(12, 607); - this.L_Hover.Name = "L_Hover"; - this.L_Hover.Size = new System.Drawing.Size(117, 13); - this.L_Hover.TabIndex = 468; - this.L_Hover.Text = "Effectiveness Summary"; - // - // TypeChart6 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(604, 637); - this.Controls.Add(this.L_Hover); - this.Controls.Add(this.B_Cancel); - this.Controls.Add(this.B_Save); - this.Controls.Add(this.PB_Chart); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; - this.MaximizeBox = false; - this.MinimumSize = new System.Drawing.Size(355, 220); - this.Name = "TypeChart6"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Type Chart Editor"; - ((System.ComponentModel.ISupportInitialize)(this.PB_Chart)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.PictureBox PB_Chart; - private System.Windows.Forms.Button B_Cancel; - private System.Windows.Forms.Button B_Save; - private System.Windows.Forms.Label L_Hover; - - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/TypeChart6.cs b/pk3DS/Subforms/Gen6/TypeChart6.cs deleted file mode 100644 index 88dbb6fd5e..0000000000 --- a/pk3DS/Subforms/Gen6/TypeChart6.cs +++ /dev/null @@ -1,99 +0,0 @@ -using pk3DS.Core; -using pk3DS.Core.Structures; -using System; -using System.IO; -using System.Windows.Forms; - -namespace pk3DS -{ - public partial class TypeChart6 : Form - { - private readonly string CROPath = Path.Combine(Main.RomFSPath, "DllBattle.cro"); - private readonly string[] types = Main.Config.getText(TextName.Types); - private readonly int offset = Main.Config.ORAS ? 0x000DB428 : 0x000D12A8; - private readonly byte[] chart = new byte[TypeCount * TypeCount]; - private readonly byte[] CROData; - private const int TypeCount = 18; - private const int TypeWidth = 32; - - public TypeChart6() - { - if (!File.Exists(CROPath)) - { WinFormsUtil.Error("CRO does not exist! Closing.", CROPath); Close(); } - - InitializeComponent(); - - CROData = File.ReadAllBytes(CROPath); - Array.Copy(CROData, offset, chart, 0, chart.Length); - - populateChart(); - } - - private void populateChart() - { - PB_Chart.Image = TypeChart.getGrid(TypeWidth, TypeCount, chart); - } - private void B_Save_Click(object sender, EventArgs e) - { - Array.Copy(chart, 0, CROData, offset, chart.Length); - File.WriteAllBytes(CROPath, CROData); - Close(); - } - private void B_Cancel_Click(object sender, EventArgs e) - { - Close(); - } - - private void moveMouse(object sender, MouseEventArgs e) - { - GetCoordinate((PictureBox)sender, e, out int X, out int Y); - int index = Y * TypeCount + X; - - updateLabel(X, Y, chart[index]); - } - private void clickMouse(object sender, MouseEventArgs e) - { - GetCoordinate((PictureBox)sender, e, out int X, out int Y); - int index = Y * TypeCount + X; - chart[index] = ToggleEffectiveness(chart[index], e.Button == MouseButtons.Left); - - updateLabel(X, Y, chart[index]); - populateChart(); - } - private void updateLabel(int X, int Y, int value) - { - L_Hover.Text = $"[{X:00}x{Y:00}: {value:00}] {types[Y]} attacking {types[X]} {effects[value]}"; - } - private readonly string[] effects = - { - "has no effect!", - "", - "is not very effective.", - "", - "does regular damage.", - "", "", "", - "is super effective!" - }; - - public static void GetCoordinate(Control sender, MouseEventArgs e, out int X, out int Y) - { - X = e.X / TypeWidth; - Y = e.Y / TypeWidth; - if (e.X == sender.Width - 1 - 2) // tweak because the furthest pixel is unused for transparent effect, and 2 px are used for border - X -= 1; - if (e.Y == sender.Height - 1 - 2) - Y -= 1; - } - public static byte ToggleEffectiveness(byte currentValue, bool increase) - { - byte[] vals = { 0, 2, 4, 8 }; - int curIndex = Array.IndexOf(vals, currentValue); - if (curIndex < 0) - return currentValue; - - uint shift = (uint) (curIndex + (increase ? 1 : -1)); - var newIndex = shift % vals.Length; - return vals[newIndex]; - } - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen6/XYWE.cs b/pk3DS/Subforms/Gen6/XYWE.cs deleted file mode 100644 index 8ab384a959..0000000000 --- a/pk3DS/Subforms/Gen6/XYWE.cs +++ /dev/null @@ -1,667 +0,0 @@ -using pk3DS.Core; -using System; -using System.IO; -using System.Linq; -using System.Windows.Forms; -using pk3DS.Core.Randomizers; - -namespace pk3DS -{ - public partial class XYWE : Form - { - public XYWE() - { - InitializeComponent(); - spec = new[] - { - CB_Grass1, CB_Grass2, CB_Grass3, CB_Grass4, CB_Grass5, CB_Grass6, CB_Grass7, CB_Grass8, CB_Grass9, CB_Grass10, CB_Grass11, CB_Grass12, - CB_Yellow1, CB_Yellow2, CB_Yellow3, CB_Yellow4, CB_Yellow5, CB_Yellow6, CB_Yellow7, CB_Yellow8, CB_Yellow9, CB_Yellow10, CB_Yellow11, CB_Yellow12, - CB_Purple1, CB_Purple2, CB_Purple3, CB_Purple4, CB_Purple5, CB_Purple6, CB_Purple7, CB_Purple8, CB_Purple9, CB_Purple10, CB_Purple11, CB_Purple12, - CB_Red1, CB_Red2, CB_Red3, CB_Red4, CB_Red5, CB_Red6, CB_Red7, CB_Red8, CB_Red9, CB_Red10, CB_Red11, CB_Red12, - CB_RT1, CB_RT2, CB_RT3, CB_RT4, CB_RT5, CB_RT6, CB_RT7, CB_RT8, CB_RT9, CB_RT10, CB_RT11, CB_RT12, - CB_Surf1, CB_Surf2, CB_Surf3, CB_Surf4, CB_Surf5, - CB_RockSmash1, CB_RockSmash2, CB_RockSmash3, CB_RockSmash4, CB_RockSmash5, - CB_Old1, CB_Old2, CB_Old3, - CB_Good1, CB_Good2, CB_Good3, - CB_Super1, CB_Super2, CB_Super3, - CB_HordeA1, CB_HordeA2, CB_HordeA3, CB_HordeA4, CB_HordeA5, - CB_HordeB1, CB_HordeB2, CB_HordeB3, CB_HordeB4, CB_HordeB5, - CB_HordeC1, CB_HordeC2, CB_HordeC3, CB_HordeC4, CB_HordeC5, - }; - min = new[] - { - NUP_GrassMin1, NUP_GrassMin2, NUP_GrassMin3, NUP_GrassMin4, NUP_GrassMin5, NUP_GrassMin6, NUP_GrassMin7, NUP_GrassMin8, NUP_GrassMin9, NUP_GrassMin10, NUP_GrassMin11, NUP_GrassMin12, - NUP_YellowMin1, NUP_YellowMin2, NUP_YellowMin3, NUP_YellowMin4, NUP_YellowMin5, NUP_YellowMin6, NUP_YellowMin7, NUP_YellowMin8, NUP_YellowMin9, NUP_YellowMin10, NUP_YellowMin11, NUP_YellowMin12, - NUP_PurpleMin1, NUP_PurpleMin2, NUP_PurpleMin3, NUP_PurpleMin4, NUP_PurpleMin5, NUP_PurpleMin6, NUP_PurpleMin7, NUP_PurpleMin8, NUP_PurpleMin9, NUP_PurpleMin10, NUP_PurpleMin11, NUP_PurpleMin12, - NUP_RedMin1, NUP_RedMin2, NUP_RedMin3, NUP_RedMin4, NUP_RedMin5, NUP_RedMin6, NUP_RedMin7, NUP_RedMin8, NUP_RedMin9, NUP_RedMin10, NUP_RedMin11, NUP_RedMin12, - NUP_RTMin1, NUP_RTMin2, NUP_RTMin3, NUP_RTMin4, NUP_RTMin5, NUP_RTMin6, NUP_RTMin7, NUP_RTMin8, NUP_RTMin9, NUP_RTMin10, NUP_RTMin11, NUP_RTMin12, - NUP_SurfMin1, NUP_SurfMin2, NUP_SurfMin3, NUP_SurfMin4, NUP_SurfMin5, - NUP_RockSmashMin1, NUP_RockSmashMin2, NUP_RockSmashMin3, NUP_RockSmashMin4, NUP_RockSmashMin5, - NUP_OldMin1, NUP_OldMin2, NUP_OldMin3, - NUP_GoodMin1, NUP_GoodMin2, NUP_GoodMin3, - NUP_SuperMin1, NUP_SuperMin2, NUP_SuperMin3, - NUP_HordeAMin1, NUP_HordeAMin2, NUP_HordeAMin3, NUP_HordeAMin4, NUP_HordeAMin5, - NUP_HordeBMin1, NUP_HordeBMin2, NUP_HordeBMin3, NUP_HordeBMin4, NUP_HordeBMin5, - NUP_HordeCMin1, NUP_HordeCMin2, NUP_HordeCMin3, NUP_HordeCMin4, NUP_HordeCMin5, - }; - max = new[] - { - NUP_GrassMax1, NUP_GrassMax2, NUP_GrassMax3, NUP_GrassMax4, NUP_GrassMax5, NUP_GrassMax6, NUP_GrassMax7, NUP_GrassMax8, NUP_GrassMax9, NUP_GrassMax10, NUP_GrassMax11, NUP_GrassMax12, - NUP_YellowMax1, NUP_YellowMax2, NUP_YellowMax3, NUP_YellowMax4, NUP_YellowMax5, NUP_YellowMax6, NUP_YellowMax7, NUP_YellowMax8, NUP_YellowMax9, NUP_YellowMax10, NUP_YellowMax11, NUP_YellowMax12, - NUP_PurpleMax1, NUP_PurpleMax2, NUP_PurpleMax3, NUP_PurpleMax4, NUP_PurpleMax5, NUP_PurpleMax6, NUP_PurpleMax7, NUP_PurpleMax8, NUP_PurpleMax9, NUP_PurpleMax10, NUP_PurpleMax11, NUP_PurpleMax12, - NUP_RedMax1, NUP_RedMax2, NUP_RedMax3, NUP_RedMax4, NUP_RedMax5, NUP_RedMax6, NUP_RedMax7, NUP_RedMax8, NUP_RedMax9, NUP_RedMax10, NUP_RedMax11, NUP_RedMax12, - NUP_RTMax1, NUP_RTMax2, NUP_RTMax3, NUP_RTMax4, NUP_RTMax5, NUP_RTMax6, NUP_RTMax7, NUP_RTMax8, NUP_RTMax9, NUP_RTMax10, NUP_RTMax11, NUP_RTMax12, - NUP_SurfMax1, NUP_SurfMax2, NUP_SurfMax3, NUP_SurfMax4, NUP_SurfMax5, - NUP_RockSmashMax1, NUP_RockSmashMax2, NUP_RockSmashMax3, NUP_RockSmashMax4, NUP_RockSmashMax5, - NUP_OldMax1, NUP_OldMax2, NUP_OldMax3, - NUP_GoodMax1, NUP_GoodMax2, NUP_GoodMax3, - NUP_SuperMax1, NUP_SuperMax2, NUP_SuperMax3, - NUP_HordeAMax1, NUP_HordeAMax2, NUP_HordeAMax3, NUP_HordeAMax4, NUP_HordeAMax5, - NUP_HordeBMax1, NUP_HordeBMax2, NUP_HordeBMax3, NUP_HordeBMax4, NUP_HordeBMax5, - NUP_HordeCMax1, NUP_HordeCMax2, NUP_HordeCMax3, NUP_HordeCMax4, NUP_HordeCMax5, - }; - form = new[] - { - NUP_GrassForme1, NUP_GrassForme2, NUP_GrassForme3, NUP_GrassForme4, NUP_GrassForme5, NUP_GrassForme6, NUP_GrassForme7, NUP_GrassForme8, NUP_GrassForme9, NUP_GrassForme10, NUP_GrassForme11, NUP_GrassForme12, - NUP_YellowForme1, NUP_YellowForme2, NUP_YellowForme3, NUP_YellowForme4, NUP_YellowForme5, NUP_YellowForme6, NUP_YellowForme7, NUP_YellowForme8, NUP_YellowForme9, NUP_YellowForme10, NUP_YellowForme11, NUP_YellowForme12, - NUP_PurpleForme1, NUP_PurpleForme2, NUP_PurpleForme3, NUP_PurpleForme4, NUP_PurpleForme5, NUP_PurpleForme6, NUP_PurpleForme7, NUP_PurpleForme8, NUP_PurpleForme9, NUP_PurpleForme10, NUP_PurpleForme11, NUP_PurpleForme12, - NUP_RedForme1, NUP_RedForme2, NUP_RedForme3, NUP_RedForme4, NUP_RedForme5, NUP_RedForme6, NUP_RedForme7, NUP_RedForme8, NUP_RedForme9, NUP_RedForme10, NUP_RedForme11, NUP_RedForme12, - NUP_RTForme1, NUP_RTForme2, NUP_RTForme3, NUP_RTForme4, NUP_RTForme5, NUP_RTForme6, NUP_RTForme7, NUP_RTForme8, NUP_RTForme9, NUP_RTForme10, NUP_RTForme11, NUP_RTForme12, - NUP_SurfForme1, NUP_SurfForme2, NUP_SurfForme3, NUP_SurfForme4, NUP_SurfForme5, - NUP_RockSmashForme1, NUP_RockSmashForme2, NUP_RockSmashForme3, NUP_RockSmashForme4, NUP_RockSmashForme5, - NUP_OldForme1, NUP_OldForme2, NUP_OldForme3, - NUP_GoodForme1, NUP_GoodForme2, NUP_GoodForme3, - NUP_SuperForme1, NUP_SuperForme2, NUP_SuperForme3, - NUP_HordeAForme1, NUP_HordeAForme2, NUP_HordeAForme3, NUP_HordeAForme4, NUP_HordeAForme5, - NUP_HordeBForme1, NUP_HordeBForme2, NUP_HordeBForme3, NUP_HordeBForme4, NUP_HordeBForme5, - NUP_HordeCForme1, NUP_HordeCForme2, NUP_HordeCForme3, NUP_HordeCForme4, NUP_HordeCForme5, - }; - formlist = new[] { "Unown-A - 0", - "Unown-B - 1", - "Unown-C - 2", - "Unown-D - 3", - "Unown-E - 4", - "Unown-F - 5", - "Unown-G - 6", - "Unown-H - 7", - "Unown-I - 8", - "Unown-J - 9", - "Unown-K - 10", - "Unown-L - 11", - "Unown-M - 12", - "Unown-N - 13", - "Unown-O - 14", - "Unown-P - 15", - "Unown-Q - 16", - "Unown-R - 17", - "Unown-S - 18", - "Unown-T - 19", - "Unown-U - 20", - "Unown-V - 21", - "Unown-W - 22", - "Unown-X - 23", - "Unown-Y - 24", - "Unown-Z - 25", - "Unown-! - 26", - "Unown-? - 27", - "", - "Castform-Normal - 0", - "Castform-Sunny - 1", - "Castform-Rainy - 2", - "Castform-Snowy - 3", - "", - "Deoxys-Normal - 0", - "Deoxys-Attack - 1", - "Deoxys-Defense - 2", - "Deoxys-Speed - 3", - "", - "Burmy-Plant Cloak - 0", - "Burmy-Sandy Cloak - 1", - "Burmy-Trash Cloak - 2", - "", - "Wormadam-Plant Cloak - 0", - "Wormadam-Sandy Cloak - 1", - "Wormadam-Trash Cloak - 2", - "", - "Cherrim-Overcast - 0", - "Cherrim-Sunshine - 1", - "", - "Shellos-West Sea - 0", - "Shellos-East Sea - 1", - "", - "Gastrodon-West Sea - 0", - "Gastrodon-East Sea - 1", - "", - "Rotom-Normal - 0", - "Rotom-Heat - 1", - "Rotom-Wash - 2", - "Rotom-Frost - 3", - "Rotom-Fan - 4", - "Rotom-Mow - 5", - "", - "Giratina-Altered - 0", - "Giratina-Origin - 1", - "", - "Shaymin-Land - 0", - "Shaymin-Sky - 1", - "", - "Arceus-Normal - 0", - "Arceus-Fighting - 1", - "Arceus-Flying - 2", - "Arceus-Poison - 3", - "Arceus-Ground - 4", - "Arceus-Rock - 5", - "Arceus-Bug - 6", - "Arceus-Ghost - 7", - "Arceus-Steel - 8", - "Arceus-Fire - 9", - "Arceus-Water - 10", - "Arceus-Grass - 11", - "Arceus-Electric - 12", - "Arceus-Psychic - 13", - "Arceus-Ice - 14", - "Arceus-Dragon - 15", - "Arceus-Dark - 16", - "Arceus-Fairy - 17", - "", - "Basculin-Red-Striped - 0", - "Basculin-Blue-Striped - 1", - "", - "Darmanitan-Standard Mode - 0", - "Darmanitan-Zen Mode - 1", - "", - "Deerling-Spring - 0", - "Deerling-Summer - 1", - "Deerling-Autumn - 2", - "Deerling-Winter - 3", - "", - "Sawsbuck-Spring - 0", - "Sawsbuck-Summer - 1", - "Sawsbuck-Autumn - 2", - "Sawsbuck-Winter - 3", - "", - "Tornadus-Incarnate - 0", - "Tornadus-Therian - 1", - "", - "Thundurus-Incarnate - 0", - "Thundurus-Therian - 1", - "", - "Landorus-Incarnate - 0", - "Landorus-Therian - 1", - "", - "Kyurem-Normal - 0", - "Kyurem-White - 1", - "Kyurem-Black - 2", - "", - "Keldeo-Ordinary - 0", - "Keldeo-Resolute - 1", - "", - "Meloetta-Aria - 0", - "Meloetta-Pirouette - 1", - "", - "Genesect-Normal - 0", - "Genesect-Water - 1", - "Genesect-Electric - 2", - "Genesect-Fire - 3", - "Genesect-Ice - 4", - "", - "Flabebe-Red - 0", - "Flabebe-Yellow - 1", - "Flabebe-Orange - 2", - "Flabebe-Blue - 3", - "Flabebe-White - 4", - "", - "Floette-Red - 0", - "Floette-Yellow - 1", - "Floette-Orange - 2", - "Floette-Blue - 3", - "Floette-White - 4", - "Floette-Eternal - 5", - "", - "Florges-Red - 0", - "Florges-Yellow - 1", - "Florges-Orange - 2", - "Florges-Blue - 3", - "Florges-White - 4", - "", - "Furfrou-Natural - 0", - "Furfrou-Heart - 1", - "Furfrou-Star - 2", - "Furfrou-Diamond - 3", - "Furfrou-Deputante - 4", - "Furfrou-Matron - 5", - "Furfrou-Dandy - 6", - "Furfrou-La Reine- 7", - "Furfrou-Kabuki - 8", - "Furfrou-Pharaoh - 9", - "", - "Aegislash-Shield - 0", - "Aegislash-Blade - 0", - "", - "Vivillon-Icy Snow - 0", - "Vivillon-Polar - 1", - "Vivillon-Tundra - 2", - "Vivillon-Continental - 3", - "Vivillon-Garden - 4", - "Vivillon-Elegant - 5", - "Vivillon-Meadow - 6", - "Vivillon-Modern - 7", - "Vivillon-Marine - 8", - "Vivillon-Archipelago - 9", - "Vivillon-High-Plains - 10", - "Vivillon-Sandstorm - 11", - "Vivillon-River - 12", - "Vivillon-Monsoon - 13", - "Vivillon-Savannah - 14", - "Vivillon-Sun - 15", - "Vivillon-Ocean - 16", - "Vivillon-Jungle - 17", - "Vivillon-Fancy - 18", - "Vivillon-Poké Ball - 19", - "", - "Pumpkaboo-Small - 0", - "Pumpkaboo-Average - 1", - "Pumpkaboo-Large - 2", - "Pumpkaboo-Super - 3", - "", - "Gourgeist-Small - 0", - "Gourgeist-Average - 1", - "Gourgeist-Large - 2", - "Gourgeist-Super - 3", - "", - "Megas-Normal - 0", - "Megas-Mega (X) - 1", - "Megas-Mega (Y) - 2", - }; - Load_XYWE(); - openQuick(Directory.GetFiles("encdata")); - } - private readonly ComboBox[] spec; - private readonly NumericUpDown[] min; - private readonly NumericUpDown[] max; - private readonly NumericUpDown[] form; - string[] specieslist = { }; - readonly string[] formlist = { }; - string[] metXY_00000 = { }; - byte[] zonedata = { }; - string[] LocationNames = { }; - private string[] encdatapaths; - private string[] filepaths; - - private void Load_XYWE() - { - specieslist = Main.Config.getText(TextName.SpeciesNames); - specieslist[0] = "---"; - - CB_FormeList.Items.AddRange(formlist); - - // Clear & Reset Data - for (int i = 0; i < max.Length; i++) - { - spec[i].Items.Clear(); - foreach (string s in specieslist) - spec[i].Items.Add(s); - spec[i].SelectedIndex = 0; - } - } - - private void openQuick(string[] encdata) - { - encdatapaths = encdata; - Array.Sort(encdatapaths); - filepaths = new string[encdatapaths.Length - 1]; - Array.Copy(encdatapaths, 1, filepaths, 0, filepaths.Length); - metXY_00000 = Main.Config.getText(TextName.metlist_000000); - zonedata = File.ReadAllBytes(encdatapaths[0]); - LocationNames = new string[filepaths.Length]; - for (int f = 0; f < filepaths.Length; f++) - { - string name = Path.GetFileNameWithoutExtension(filepaths[f]); - - int LocationNum = Convert.ToInt16(name.Substring(4, name.Length - 4)); - int indNum = LocationNum * 56 + 0x1C; - string LocationName = metXY_00000[zonedata[indNum] + 0x100 * (zonedata[indNum + 1] & 1)]; - LocationNames[f] = LocationNum.ToString("000") + " - " + LocationName; - } - CB_LocationID.DataSource = LocationNames; - B_Save.Enabled = B_Dump.Enabled = B_Randomize.Enabled = true; - CB_LocationID.Enabled = true; - CB_LocationID_SelectedIndexChanged(null, null); - } - - private bool hasData() - { - for (int i = 0; i < max.Length; i++) - { - if (spec[i].SelectedIndex > 0) { return true; } - if (form[i].Value > 0) { return true; } - if (min[i].Value > 0) { return true; } - if (max[i].Value > 0) { return true; } - } - return false; - } - private void parse(byte[] ed) - { - // 12,12,12,12,12 - // 5,5 - // 3,3,3 - // 5,5,5, - byte[] slot = new Byte[4]; - const int offset = 0x0; - - // read data into form - for (int i = 0; i < max.Length; i++) - { - // Fetch Data - Array.Copy(ed, offset + i * 4, slot, 0, 4); - int[] data = pslot(slot); - - // Load Data - spec[i].SelectedIndex = data[0]; - form[i].Value = data[1]; - min[i].Value = data[2]; - max[i].Value = data[3]; - } - - #if DUMPER - int r = CB_LocationID.SelectedIndex * 56 + 0x1C; - int loc = zonedata[r] + 0x100 * (zonedata[r + 1] & 1); - byte[] edata = BitConverter.GetBytes((ushort)loc).Concat(ed).ToArray(); - - if (!Directory.Exists("encounter_xy")) - Directory.CreateDirectory("encounter_xy"); - File.WriteAllBytes(Path.Combine("encounter_xy", loc.ToString("000") + CB_LocationID.SelectedIndex.ToString("000") + ".bin"), edata); - #endif - } - private int[] pslot(byte[] slot) - { - int index = BitConverter.ToUInt16(slot, 0) & 0x7FF; - int form = BitConverter.ToUInt16(slot, 0) >> 11; - int min = slot[2]; - int max = slot[3]; - int[] data = new int[4]; - data[0] = index; - data[1] = form; - data[2] = min; - data[3] = max; - return data; - } - private string parseslot(byte[] slot) - { - int index = BitConverter.ToUInt16(slot, 0) & 0x7FF; - if (index == 0) return ""; - int form = BitConverter.ToUInt16(slot, 0) >> 11; - int min = slot[2]; - int max = slot[3]; - string species = specieslist[index]; - if (form > 0) species += "-" + form; - return species + ',' + min + ',' + max + ','; - } - - private void CB_LocationID_SelectedIndexChanged(object sender, EventArgs e) - { - int f = CB_LocationID.SelectedIndex; - FileStream InStream = File.OpenRead(filepaths[f]); - BinaryReader br = new BinaryReader(InStream); - br.BaseStream.Seek(0x10, SeekOrigin.Begin); - int offset = br.ReadInt32() + 0x10; - int length = (int)br.BaseStream.Length - offset; - if (length < 0x178) //no encounters in this map - { - ClearData(); - return; - } - br.Close(); - - byte[] filedata = File.ReadAllBytes(filepaths[f]); - - byte[] encounterdata = new Byte[0x178]; - Array.Copy(filedata, offset, encounterdata, 0, 0x178); - parse(encounterdata); - } - private void ClearData() - { - for (int i = 0; i < max.Length; i++) - { - // Load Data - spec[i].SelectedIndex = 0; - form[i].Value = 0; - min[i].Value = 0; - max[i].Value = 0; - } - } - private byte[] MakeSlotData(int species, int f, int lo, int hi) - { - byte[] data = new byte[4]; - Array.Copy(BitConverter.GetBytes(Convert.ToUInt16((Convert.ToUInt16(f) << 11) + Convert.ToUInt16(species))), 0, data, 0, 2); - data[2] = (byte)lo; - data[3] = (byte)hi; - return data; - } - private byte[] MakeEncounterData() - { - byte[] ed = new byte[0x178]; - const int offset = 0x0; - for (int i = 0; i < max.Length; i++) - { - byte[] data = MakeSlotData(spec[i].SelectedIndex, (int)form[i].Value, (int)min[i].Value, (int)max[i].Value); - Array.Copy(data, 0, ed, offset + i * 4, 4); - } - return ed; - } - private byte[] ConcatArrays(byte[] b1, byte[] b2) - { - byte[] concat = new byte[b1.Length + b2.Length]; - Array.Copy(b1, 0, concat, 0, b1.Length); - Array.Copy(b2, 0, concat, b1.Length, b2.Length); - return concat; - } - - private void B_Save_Click(object sender, EventArgs e) - { - int f = CB_LocationID.SelectedIndex; - string filepath = filepaths[f]; - FileStream InStream = File.OpenRead(filepaths[f]); - BinaryReader br = new BinaryReader(InStream); - br.BaseStream.Seek(0x10, SeekOrigin.Begin); - int offset = br.ReadInt32() + 0x10; - br.Close(); - byte[] filedata = File.ReadAllBytes(filepaths[f]); - byte[] preoffset; - if (offset < filedata.Length) - { - preoffset = new byte[offset]; - Array.Copy(filedata, preoffset, offset); - } - else - { - preoffset = new byte[filedata.Length]; - Array.Copy(filedata, preoffset, filedata.Length); - //overwrite offset so the game actually looks at the data - Array.Copy(BitConverter.GetBytes(Convert.ToUInt32(filedata.Length)), 0, preoffset, 0x10, 4); - } - byte[] encdata = { }; - if (hasData()) { encdata = MakeEncounterData(); } - byte[] newdata = ConcatArrays(preoffset, encdata); - File.WriteAllBytes(filepath, newdata); - } - - private void PreloadTabs(object sender, EventArgs e) - { - for (int i = 0; i < TabControl_EncounterData.TabPages.Count; i++) - { - TabControl_EncounterData.TabPages[i].Show(); - Console.WriteLine("Loading Tab " + (i + 1).ToString("0") + "."); - } - TabControl_EncounterData.TabPages[0].Show(); - } - internal static Random rand = new Random(); - internal static uint rnd32() - { - return (uint)rand.Next(1 << 30) << 2 | (uint)rand.Next(1 << 2); - } - - private void B_Randomize_Click(object sender, EventArgs e) - { - if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomize all? Cannot undo.", "Double check Randomization settings in the Horde tab.") != DialogResult.Yes) return; - - Enabled = false; - - // Calculate % diff we will apply to each level - decimal leveldiff = (100 + NUD_LevelAmp.Value) / 100; - - var rand = new SpeciesRandomizer(Main.Config) - { - G1 = CHK_G1.Checked, - G2 = CHK_G2.Checked, - G3 = CHK_G3.Checked, - G4 = CHK_G4.Checked, - G5 = CHK_G5.Checked, - G6 = CHK_G6.Checked, - - L = CHK_L.Checked, - E = CHK_E.Checked, - Shedinja = false, - - rBST = CHK_BST.Checked, - }; - rand.Initialize(); - - for (int i = 0; i < CB_LocationID.Items.Count; i++) // for every location - { - CB_LocationID.SelectedIndex = i; - if (!hasData()) continue; // Don't randomize if doesn't have data. - - // Assign Levels - if (CHK_Level.Checked) - for (int l = 0; l < max.Length; l++) - min[l].Value = max[l].Value = max[l].Value <= 1 ? max[l].Value : Math.Max(1, Math.Min(100, (int)(leveldiff * max[l].Value))); - - - // If Distinct Hordes are selected, homogenize - int hordeslot = 0; - for (int slot = 0; slot < max.Length; slot++) - { - if (spec[slot].SelectedIndex == 0) continue; - if (CHK_HomogeneousHordes.Checked && slot >= max.Length - 15) - { - int shift = hordeslot % 5; - hordeslot++; - if (shift != 0) - { - spec[slot].SelectedIndex = spec[slot - shift].SelectedIndex; - form[slot].Value = form[slot - shift].Value; - continue; - } - } - - int species = rand.GetRandomSpecies(spec[slot].SelectedIndex); - spec[slot].SelectedIndex = species; - setRandomForm(slot, species); - } - B_Save_Click(sender, e); - } - Enabled = true; - WinFormsUtil.Alert("Randomized all Wild Encounters according to specification!", "Press the Dump Tables button to view the new Wild Encounter information!"); - } - private void setRandomForm(int slot, int species) - { - if (CHK_MegaForm.Checked && Main.SpeciesStat[species].FormeCount > 1 && Legal.Mega_XY.Contains((ushort)species)) - form[slot].Value = rnd32() % Main.SpeciesStat[species].FormeCount; // Slot-Random - else if (species == 666 || species == 665 || species == 664) // Vivillon - form[slot].Value = rnd32() % 20; - else if (species == 386) // Deoxys - form[slot].Value = rnd32() % 4; - else if (species == 201) // Unown - form[slot].Value = 31; - else if (species == 550) // Basculin - form[slot].Value = rnd32() % 2; - else if (species == 412 || species == 413) // Wormadam - form[slot].Value = rnd32() % 3; - else if (species == 422 || species == 423) // Gastrodon - form[slot].Value = rnd32() % 2; - else if (species == 585 || species == 586) // Sawsbuck - form[slot].Value = rnd32() % 4; - else if (species == 669 || species == 671) // Flabebe/Florges - form[slot].Value = rnd32() % 5; - else if (species == 670) // Floette - form[slot].Value = rnd32() % 6; - else if (species == 710 || species == 711) // Pumpkaboo - form[slot].Value = rnd32() % 4; - else - form[slot].Value = 0; - } - - private void B_Dump_Click(object sender, EventArgs e) - { - string toret = ""; - for (int i = 0; i < 360; i++) //hardcoded map count. Yes, it's bad. No, I don't really care. - { - CB_LocationID.SelectedIndex = i; - string tdata = GetEncDataString(); - toret += tdata; - } - SaveFileDialog savetxt = new SaveFileDialog {FileName = "Encounter Slots", Filter = "Text File|*.txt"}; - if (savetxt.ShowDialog() != DialogResult.OK) return; - - string path = savetxt.FileName; - File.WriteAllText(path, toret); - } - - private string GetEncDataString() - { - string toret = "======" + Environment.NewLine; - toret += "Map " + CB_LocationID.Text + "" + Environment.NewLine; - toret += "======" + Environment.NewLine; - if (hasData()) - { - toret += $"Grass: {label31.Text} - {CB_Grass1.Text} (Level {NUP_GrassMin1.Text}, Forme: {NUP_GrassForme1.Text}), {label32.Text} - {CB_Grass2.Text} (Level {NUP_GrassMin2.Text}, Forme: {NUP_GrassForme2.Text}), {label33.Text} - {CB_Grass3.Text} (Level {NUP_GrassMin3.Text}, Forme: {NUP_GrassForme3.Text}), {label34.Text} - {CB_Grass4.Text} (Level {NUP_GrassMin4.Text}, Forme: {NUP_GrassForme4.Text}), {label35.Text} - {CB_Grass5.Text} (Level {NUP_GrassMin5.Text}, Forme: {NUP_GrassForme5.Text}), {label36.Text} - {CB_Grass6.Text} (Level {NUP_GrassMin6.Text}, Forme: {NUP_GrassForme6.Text}), {label37.Text} - {CB_Grass7.Text} (Level {NUP_GrassMin7.Text}, Forme: {NUP_GrassForme7.Text}), {label38.Text} - {CB_Grass8.Text} (Level {NUP_GrassMin8.Text}, Forme: {NUP_GrassForme8.Text}), {label39.Text} - {CB_Grass9.Text} (Level {NUP_GrassMin9.Text}, Forme: {NUP_GrassForme9.Text}), {label40.Text} - {CB_Grass10.Text} (Level {NUP_GrassMin10.Text}, Forme: {NUP_GrassForme10.Text}), {label42.Text} - {CB_Grass11.Text} (Level {NUP_GrassMin11.Text}, Forme: {NUP_GrassForme11.Text}), {label41.Text} - {CB_Grass12.Text} (Level {NUP_GrassMin12.Text}, Forme: {NUP_GrassForme12.Text}){Environment.NewLine}"; - toret += $"Rough Terrain: {label10.Text} - {CB_RT1.Text} (Level {NUP_RTMin1.Text}, Forme: {NUP_RTForme1.Text}), {label21.Text} - {CB_RT2.Text} (Level {NUP_RTMin2.Text}, Forme: {NUP_RTForme2.Text}), {label20.Text} - {CB_RT3.Text} (Level {NUP_RTMin3.Text}, Forme: {NUP_RTForme3.Text}), {label19.Text} - {CB_RT4.Text} (Level {NUP_RTMin4.Text}, Forme: {NUP_RTForme4.Text}), {label18.Text} - {CB_RT5.Text} (Level {NUP_RTMin5.Text}, Forme: {NUP_RTForme5.Text}), {label17.Text} - {CB_RT6.Text} (Level {NUP_RTMin6.Text}, Forme: {NUP_RTForme6.Text}), {label16.Text} - {CB_RT7.Text} (Level {NUP_RTMin7.Text}, Forme: {NUP_RTForme7.Text}), {label15.Text} - {CB_RT8.Text} (Level {NUP_RTMin8.Text}, Forme: {NUP_RTForme8.Text}), {label14.Text} - {CB_RT9.Text} (Level {NUP_RTMin9.Text}, Forme: {NUP_RTForme9.Text}), {label13.Text} - {CB_RT10.Text} (Level {NUP_RTMin10.Text}, Forme: {NUP_RTForme10.Text}), {label12.Text} - {CB_RT11.Text} (Level {NUP_RTMin11.Text}, Forme: {NUP_RTForme11.Text}), {label11.Text} - {CB_RT12.Text} (Level {NUP_RTMin12.Text}, Forme: {NUP_RTForme12.Text}){Environment.NewLine}"; - toret += $"Rock Smash: {label111.Text} - {CB_RockSmash1.Text} (Level {NUP_RockSmashMin1.Text}, Forme: {NUP_RockSmashForme1.Text}), {label110.Text} - {CB_RockSmash2.Text} (Level {NUP_RockSmashMin2.Text}, Forme: {NUP_RockSmashForme2.Text}), {label109.Text} - {CB_RockSmash3.Text} (Level {NUP_RockSmashMin3.Text}, Forme: {NUP_RockSmashForme3.Text}), {label108.Text} - {CB_RockSmash4.Text} (Level {NUP_RockSmashMin4.Text}, Forme: {NUP_RockSmashForme4.Text}), {label107.Text} - {CB_RockSmash5.Text} (Level {NUP_RockSmashMin5.Text}, Forme: {NUP_RockSmashForme5.Text}){Environment.NewLine}"; - toret += $"Yellow Flowers: {label54.Text} - {CB_Yellow1.Text} (Level {NUP_YellowMin1.Text}, Forme: {NUP_YellowForme1.Text}), {label65.Text} - {CB_Yellow2.Text} (Level {NUP_YellowMin2.Text}, Forme: {NUP_YellowForme2.Text}), {label64.Text} - {CB_Yellow3.Text} (Level {NUP_YellowMin3.Text}, Forme: {NUP_YellowForme3.Text}), {label63.Text} - {CB_Yellow4.Text} (Level {NUP_YellowMin4.Text}, Forme: {NUP_YellowForme4.Text}), {label62.Text} - {CB_Yellow5.Text} (Level {NUP_YellowMin5.Text}, Forme: {NUP_YellowForme5.Text}), {label61.Text} - {CB_Yellow6.Text} (Level {NUP_YellowMin6.Text}, Forme: {NUP_YellowForme6.Text}), {label60.Text} - {CB_Yellow7.Text} (Level {NUP_YellowMin7.Text}, Forme: {NUP_YellowForme7.Text}), {label59.Text} - {CB_Yellow8.Text} (Level {NUP_YellowMin8.Text}, Forme: {NUP_YellowForme8.Text}), {label58.Text} - {CB_Yellow9.Text} (Level {NUP_YellowMin9.Text}, Forme: {NUP_YellowForme9.Text}), {label57.Text} - {CB_Yellow10.Text} (Level {NUP_YellowMin10.Text}, Forme: {NUP_YellowForme10.Text}), {label56.Text} - {CB_Yellow11.Text} (Level {NUP_YellowMin11.Text}, Forme: {NUP_YellowForme11.Text}), {label55.Text} - {CB_Yellow12.Text} (Level {NUP_YellowMin12.Text}, Forme: {NUP_YellowForme12.Text}){Environment.NewLine}"; - toret += $"Purple Flowers: {label70.Text} - {CB_Purple1.Text} (Level {NUP_PurpleMin1.Text}, Forme: {NUP_PurpleForme1.Text}), {label81.Text} - {CB_Purple2.Text} (Level {NUP_PurpleMin2.Text}, Forme: {NUP_PurpleForme2.Text}), {label80.Text} - {CB_Purple3.Text} (Level {NUP_PurpleMin3.Text}, Forme: {NUP_PurpleForme3.Text}), {label79.Text} - {CB_Purple4.Text} (Level {NUP_PurpleMin4.Text}, Forme: {NUP_PurpleForme4.Text}), {label78.Text} - {CB_Purple5.Text} (Level {NUP_PurpleMin5.Text}, Forme: {NUP_PurpleForme5.Text}), {label77.Text} - {CB_Purple6.Text} (Level {NUP_PurpleMin6.Text}, Forme: {NUP_PurpleForme6.Text}), {label76.Text} - {CB_Purple7.Text} (Level {NUP_PurpleMin7.Text}, Forme: {NUP_PurpleForme7.Text}), {label75.Text} - {CB_Purple8.Text} (Level {NUP_PurpleMin8.Text}, Forme: {NUP_PurpleForme8.Text}), {label74.Text} - {CB_Purple9.Text} (Level {NUP_PurpleMin9.Text}, Forme: {NUP_PurpleForme9.Text}), {label73.Text} - {CB_Purple10.Text} (Level {NUP_PurpleMin10.Text}, Forme: {NUP_PurpleForme10.Text}), {label72.Text} - {CB_Purple11.Text} (Level {NUP_PurpleMin11.Text}, Forme: {NUP_PurpleForme11.Text}), {label71.Text} - {CB_Purple12.Text} (Level {NUP_PurpleMin12.Text}, Forme: {NUP_PurpleForme12.Text}){Environment.NewLine}"; - toret += $"Red Flowers: {label86.Text} - {CB_Red1.Text} (Level {NUP_RedMin1.Text}, Forme: {NUP_RedForme1.Text}), {label97.Text} - {CB_Red2.Text} (Level {NUP_RedMin2.Text}, Forme: {NUP_RedForme2.Text}), {label96.Text} - {CB_Red3.Text} (Level {NUP_RedMin3.Text}, Forme: {NUP_RedForme3.Text}), {label95.Text} - {CB_Red4.Text} (Level {NUP_RedMin4.Text}, Forme: {NUP_RedForme4.Text}), {label94.Text} - {CB_Red5.Text} (Level {NUP_RedMin5.Text}, Forme: {NUP_RedForme5.Text}), {label93.Text} - {CB_Red6.Text} (Level {NUP_RedMin6.Text}, Forme: {NUP_RedForme6.Text}), {label92.Text} - {CB_Red7.Text} (Level {NUP_RedMin7.Text}, Forme: {NUP_RedForme7.Text}), {label91.Text} - {CB_Red8.Text} (Level {NUP_RedMin8.Text}, Forme: {NUP_RedForme8.Text}), {label90.Text} - {CB_Red9.Text} (Level {NUP_RedMin9.Text}, Forme: {NUP_RedForme9.Text}), {label89.Text} - {CB_Red10.Text} (Level {NUP_RedMin10.Text}, Forme: {NUP_RedForme10.Text}), {label88.Text} - {CB_Red11.Text} (Level {NUP_RedMin11.Text}, Forme: {NUP_RedForme11.Text}), {label87.Text} - {CB_Red12.Text} (Level {NUP_RedMin12.Text}, Forme: {NUP_RedForme12.Text}){Environment.NewLine}"; - toret += $"Old Rod: {label43.Text} - {CB_Old1.Text} (Level {NUP_OldMin1.Text}, Forme: {NUP_OldForme1.Text}), {label44.Text} - {CB_Old2.Text} (Level {NUP_OldMin2.Text}, Forme: {NUP_OldForme2.Text}), {label45.Text} - {CB_Old3.Text} (Level {NUP_OldMin3.Text}, Forme: {NUP_OldForme3.Text}){Environment.NewLine}"; - toret += $"Good Rod: {label29.Text} - {CB_Good1.Text} (Level {NUP_GoodMin1.Text}, Forme: {NUP_GoodForme1.Text}), {label28.Text} - {CB_Good2.Text} (Level {NUP_GoodMin2.Text}, Forme: {NUP_GoodForme2.Text}), {label27.Text} - {CB_Good3.Text} (Level {NUP_GoodMin3.Text}, Forme: {NUP_GoodForme3.Text}){Environment.NewLine}"; - toret += $"Super Rod: {label99.Text} - {CB_Super1.Text} (Level {NUP_SuperMin1.Text}, Forme: {NUP_SuperForme1.Text}), {label98.Text} - {CB_Super2.Text} (Level {NUP_SuperMin2.Text}, Forme: {NUP_SuperForme2.Text}), {label49.Text} - {CB_Super3.Text} (Level {NUP_SuperMin3.Text}, Forme: {NUP_SuperForme3.Text}){Environment.NewLine}"; - toret += $"Surf: {label120.Text} - {CB_Surf1.Text} (Level {NUP_SurfMin1.Text}, Forme: {NUP_SurfForme1.Text}), {label119.Text} - {CB_Surf2.Text} (Level {NUP_SurfMin2.Text}, Forme: {NUP_SurfForme2.Text}), {label118.Text} - {CB_Surf3.Text} (Level {NUP_SurfMin3.Text}, Forme: {NUP_SurfForme3.Text}), {label117.Text} - {CB_Surf4.Text} (Level {NUP_SurfMin4.Text}, Forme: {NUP_SurfForme4.Text}), {label116.Text} - {CB_Surf5.Text} (Level {NUP_SurfMin5.Text}, Forme: {NUP_SurfForme5.Text}){Environment.NewLine}"; - toret += $"Horde A (60%): {CB_HordeA1.Text} (Level {NUP_HordeAMin1.Text}, Forme: {NUP_HordeAForme1.Text}), {CB_HordeA2.Text} (Level {NUP_HordeAMin2.Text}, Forme: {NUP_HordeAForme2.Text}), {CB_HordeA3.Text} (Level {NUP_HordeAMin3.Text}, Forme: {NUP_HordeAForme3.Text}), {CB_HordeA4.Text} (Level {NUP_HordeAMin4.Text}, Forme: {NUP_HordeAForme4.Text}), {CB_HordeA5.Text} (Level {NUP_HordeAMin5.Text}, Forme: {NUP_HordeAForme5.Text}){Environment.NewLine}"; - toret += $"Horde B (35%): {CB_HordeB1.Text} (Level {NUP_HordeBMin1.Text}, Forme: {NUP_HordeBForme1.Text}), {CB_HordeB2.Text} (Level {NUP_HordeBMin2.Text}, Forme: {NUP_HordeBForme2.Text}), {CB_HordeB3.Text} (Level {NUP_HordeBMin3.Text}, Forme: {NUP_HordeBForme3.Text}), {CB_HordeB4.Text} (Level {NUP_HordeBMin4.Text}, Forme: {NUP_HordeBForme4.Text}), {CB_HordeB5.Text} (Level {NUP_HordeBMin5.Text}, Forme: {NUP_HordeBForme5.Text}){Environment.NewLine}"; - toret += $"Horde C (5%): {CB_HordeC1.Text} (Level {NUP_HordeCMin1.Text}, Forme: {NUP_HordeCForme1.Text}), {CB_HordeC2.Text} (Level {NUP_HordeCMin2.Text}, Forme: {NUP_HordeCForme2.Text}), {CB_HordeC3.Text} (Level {NUP_HordeCMin3.Text}, Forme: {NUP_HordeCForme3.Text}), {CB_HordeC4.Text} (Level {NUP_HordeCMin4.Text}, Forme: {NUP_HordeCForme4.Text}), {CB_HordeC5.Text} (Level {NUP_HordeCMin5.Text}, Forme: {NUP_HordeCForme5.Text}){Environment.NewLine}{Environment.NewLine}"; - toret = toret.Replace("--- (No Level)", "None"); - } - else - toret += "No encounters found." + Environment.NewLine + Environment.NewLine; - return toret; - } - - private void modifyLevels(object sender, EventArgs e) - { - if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Modify all current Level ranges?", "Cannot undo.") != DialogResult.Yes) return; - - // Disable Interface while modifying - Enabled = false; - - // Calculate % diff we will apply to each level - decimal leveldiff = NUD_LevelAmp.Value; - - // Cycle through each location to modify levels - for (int i = 0; i < CB_LocationID.Items.Count; i++) // for every location - { - // Load location - CB_LocationID.SelectedIndex = i; - - // Amp Levels - for (int l = 0; l < max.Length; l++) - if (min[l].Value > 1) - min[l].Value = max[l].Value = Randomizer.getModifiedLevel((int)max[l].Value, leveldiff); - - // Save Changes - B_Save_Click(sender, e); - } - // Enable Interface... modification complete. - Enabled = true; - WinFormsUtil.Alert("Modified all Level ranges according to specification!", "Press the Dump Tables button to view the new Level ranges!"); - } - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/EggMoveEditor7.Designer.cs b/pk3DS/Subforms/Gen7/EggMoveEditor7.Designer.cs deleted file mode 100644 index 6f6dda61ca..0000000000 --- a/pk3DS/Subforms/Gen7/EggMoveEditor7.Designer.cs +++ /dev/null @@ -1,288 +0,0 @@ -namespace pk3DS -{ - partial class EggMoveEditor7 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.dgv = new System.Windows.Forms.DataGridView(); - this.CB_Species = new System.Windows.Forms.ComboBox(); - this.L_Species = new System.Windows.Forms.Label(); - this.B_RandAll = new System.Windows.Forms.Button(); - this.B_Dump = new System.Windows.Forms.Button(); - this.groupBox1 = new System.Windows.Forms.GroupBox(); - this.L_Moves = new System.Windows.Forms.Label(); - this.NUD_Moves = new System.Windows.Forms.NumericUpDown(); - this.CHK_Expand = new System.Windows.Forms.CheckBox(); - this.L_STAB = new System.Windows.Forms.Label(); - this.NUD_STAB = new System.Windows.Forms.NumericUpDown(); - this.CHK_STAB = new System.Windows.Forms.CheckBox(); - this.PB_MonSprite = new System.Windows.Forms.PictureBox(); - this.NUD_FormTable = new System.Windows.Forms.NumericUpDown(); - this.label1 = new System.Windows.Forms.Label(); - this.B_Goto = new System.Windows.Forms.Button(); - ((System.ComponentModel.ISupportInitialize)(this.dgv)).BeginInit(); - this.groupBox1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Moves)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_STAB)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_MonSprite)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_FormTable)).BeginInit(); - this.SuspendLayout(); - // - // dgv - // - this.dgv.AllowUserToResizeColumns = false; - this.dgv.AllowUserToResizeRows = false; - this.dgv.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.dgv.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgv.Location = new System.Drawing.Point(12, 41); - this.dgv.Name = "dgv"; - this.dgv.Size = new System.Drawing.Size(282, 359); - this.dgv.TabIndex = 0; - // - // CB_Species - // - this.CB_Species.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Species.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Species.FormattingEnabled = true; - this.CB_Species.Location = new System.Drawing.Point(66, 12); - this.CB_Species.Name = "CB_Species"; - this.CB_Species.Size = new System.Drawing.Size(121, 21); - this.CB_Species.TabIndex = 1; - this.CB_Species.SelectedIndexChanged += new System.EventHandler(this.changeEntry); - // - // L_Species - // - this.L_Species.AutoSize = true; - this.L_Species.Location = new System.Drawing.Point(12, 15); - this.L_Species.Name = "L_Species"; - this.L_Species.Size = new System.Drawing.Size(48, 13); - this.L_Species.TabIndex = 2; - this.L_Species.Text = "Species:"; - // - // B_RandAll - // - this.B_RandAll.Location = new System.Drawing.Point(300, 377); - this.B_RandAll.Name = "B_RandAll"; - this.B_RandAll.Size = new System.Drawing.Size(95, 23); - this.B_RandAll.TabIndex = 4; - this.B_RandAll.Text = "Randomize!"; - this.B_RandAll.UseVisualStyleBackColor = true; - this.B_RandAll.Click += new System.EventHandler(this.B_RandAll_Click); - // - // B_Dump - // - this.B_Dump.Location = new System.Drawing.Point(300, 155); - this.B_Dump.Name = "B_Dump"; - this.B_Dump.Size = new System.Drawing.Size(95, 23); - this.B_Dump.TabIndex = 5; - this.B_Dump.Text = "Dump All"; - this.B_Dump.UseVisualStyleBackColor = true; - this.B_Dump.Click += new System.EventHandler(this.B_Dump_Click); - // - // groupBox1 - // - this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Right))); - this.groupBox1.Controls.Add(this.L_Moves); - this.groupBox1.Controls.Add(this.NUD_Moves); - this.groupBox1.Controls.Add(this.CHK_Expand); - this.groupBox1.Controls.Add(this.L_STAB); - this.groupBox1.Controls.Add(this.NUD_STAB); - this.groupBox1.Controls.Add(this.CHK_STAB); - this.groupBox1.Location = new System.Drawing.Point(300, 184); - this.groupBox1.Name = "groupBox1"; - this.groupBox1.Size = new System.Drawing.Size(95, 187); - this.groupBox1.TabIndex = 7; - this.groupBox1.TabStop = false; - this.groupBox1.Text = "Options"; - // - // L_Moves - // - this.L_Moves.AutoSize = true; - this.L_Moves.Location = new System.Drawing.Point(10, 130); - this.L_Moves.Name = "L_Moves"; - this.L_Moves.Size = new System.Drawing.Size(42, 13); - this.L_Moves.TabIndex = 10; - this.L_Moves.Text = "Moves:"; - // - // NUD_Moves - // - this.NUD_Moves.Location = new System.Drawing.Point(53, 128); - this.NUD_Moves.Maximum = new decimal(new int[] { - 30, - 0, - 0, - 0}); - this.NUD_Moves.Minimum = new decimal(new int[] { - 18, - 0, - 0, - 0}); - this.NUD_Moves.Name = "NUD_Moves"; - this.NUD_Moves.Size = new System.Drawing.Size(36, 20); - this.NUD_Moves.TabIndex = 9; - this.NUD_Moves.Value = new decimal(new int[] { - 18, - 0, - 0, - 0}); - // - // CHK_Expand - // - this.CHK_Expand.AutoSize = true; - this.CHK_Expand.Location = new System.Drawing.Point(5, 110); - this.CHK_Expand.Name = "CHK_Expand"; - this.CHK_Expand.Size = new System.Drawing.Size(86, 17); - this.CHK_Expand.TabIndex = 8; - this.CHK_Expand.Text = "Expand Pool"; - this.CHK_Expand.UseVisualStyleBackColor = true; - // - // L_STAB - // - this.L_STAB.AutoSize = true; - this.L_STAB.Location = new System.Drawing.Point(6, 74); - this.L_STAB.Name = "L_STAB"; - this.L_STAB.Size = new System.Drawing.Size(46, 13); - this.L_STAB.TabIndex = 3; - this.L_STAB.Text = "% STAB"; - // - // NUD_STAB - // - this.NUD_STAB.Location = new System.Drawing.Point(53, 72); - this.NUD_STAB.Minimum = new decimal(new int[] { - 5, - 0, - 0, - 0}); - this.NUD_STAB.Name = "NUD_STAB"; - this.NUD_STAB.Size = new System.Drawing.Size(36, 20); - this.NUD_STAB.TabIndex = 2; - this.NUD_STAB.Value = new decimal(new int[] { - 32, - 0, - 0, - 0}); - // - // CHK_STAB - // - this.CHK_STAB.AutoSize = true; - this.CHK_STAB.Location = new System.Drawing.Point(5, 54); - this.CHK_STAB.Name = "CHK_STAB"; - this.CHK_STAB.Size = new System.Drawing.Size(87, 17); - this.CHK_STAB.TabIndex = 1; - this.CHK_STAB.Text = "Bias by Type"; - this.CHK_STAB.UseVisualStyleBackColor = true; - // - // PB_MonSprite - // - this.PB_MonSprite.Location = new System.Drawing.Point(193, 5); - this.PB_MonSprite.Name = "PB_MonSprite"; - this.PB_MonSprite.Size = new System.Drawing.Size(40, 30); - this.PB_MonSprite.TabIndex = 91; - this.PB_MonSprite.TabStop = false; - // - // NUD_FormTable - // - this.NUD_FormTable.Location = new System.Drawing.Point(305, 41); - this.NUD_FormTable.Name = "NUD_FormTable"; - this.NUD_FormTable.Size = new System.Drawing.Size(47, 20); - this.NUD_FormTable.TabIndex = 92; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(272, 20); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(107, 13); - this.label1.TabIndex = 93; - this.label1.Text = "FormTableReference"; - // - // B_Goto - // - this.B_Goto.Location = new System.Drawing.Point(356, 41); - this.B_Goto.Name = "B_Goto"; - this.B_Goto.Size = new System.Drawing.Size(39, 24); - this.B_Goto.TabIndex = 94; - this.B_Goto.Text = "goto"; - this.B_Goto.UseVisualStyleBackColor = true; - this.B_Goto.Click += new System.EventHandler(this.B_Goto_Click); - // - // EggMoveEditor7 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(404, 412); - this.Controls.Add(this.B_Goto); - this.Controls.Add(this.label1); - this.Controls.Add(this.NUD_FormTable); - this.Controls.Add(this.PB_MonSprite); - this.Controls.Add(this.groupBox1); - this.Controls.Add(this.B_Dump); - this.Controls.Add(this.B_RandAll); - this.Controls.Add(this.L_Species); - this.Controls.Add(this.CB_Species); - this.Controls.Add(this.dgv); - this.MaximizeBox = false; - this.MinimumSize = new System.Drawing.Size(322, 450); - this.Name = "EggMoveEditor7"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Egg Move Editor"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.formClosing); - ((System.ComponentModel.ISupportInitialize)(this.dgv)).EndInit(); - this.groupBox1.ResumeLayout(false); - this.groupBox1.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Moves)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_STAB)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_MonSprite)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_FormTable)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.DataGridView dgv; - private System.Windows.Forms.ComboBox CB_Species; - private System.Windows.Forms.Label L_Species; - private System.Windows.Forms.Button B_RandAll; - private System.Windows.Forms.Button B_Dump; - private System.Windows.Forms.GroupBox groupBox1; - private System.Windows.Forms.Label L_Moves; - private System.Windows.Forms.NumericUpDown NUD_Moves; - private System.Windows.Forms.CheckBox CHK_Expand; - private System.Windows.Forms.Label L_STAB; - private System.Windows.Forms.NumericUpDown NUD_STAB; - private System.Windows.Forms.CheckBox CHK_STAB; - private System.Windows.Forms.PictureBox PB_MonSprite; - private System.Windows.Forms.NumericUpDown NUD_FormTable; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Button B_Goto; - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/EggMoveEditor7.cs b/pk3DS/Subforms/Gen7/EggMoveEditor7.cs deleted file mode 100644 index 7056d9d2a8..0000000000 --- a/pk3DS/Subforms/Gen7/EggMoveEditor7.cs +++ /dev/null @@ -1,205 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Drawing; -using System.IO; -using System.Linq; -using System.Media; -using System.Text; -using System.Windows.Forms; -using pk3DS.Properties; -using pk3DS.Core.Structures; -using pk3DS.Core; -using pk3DS.Core.Randomizers; - -namespace pk3DS -{ - public partial class EggMoveEditor7 : Form - { - public EggMoveEditor7(byte[][] infiles) - { - InitializeComponent(); - files = infiles; - string[] species = Main.Config.getText(TextName.SpeciesNames); - string[][] AltForms = Main.Config.Personal.getFormList(species, Main.Config.MaxSpeciesID); - string[] specieslist = Main.Config.Personal.getPersonalEntryList(AltForms, species, Main.Config.MaxSpeciesID, out baseForms, out formVal); - specieslist[0] = movelist[0] = ""; - - setupDGV(); - entries = infiles.Select(z => new EggMoves7(z)).ToArray(); - string[] names = new string[entries.Length]; - - for (int i = 0; i < species.Length; i++) // add all species & forms - { - names[i] = species[i]; - int formoff = entries[i].FormTableIndex; - int count = Main.Config.Personal[i].FormeCount; - for (int j = 1; j < count; j++) - { - if (names[formoff + j - 1] == null) - names[formoff + j - 1] = $"{species[i]} [{AltForms[i][j].Replace(species[i] + " ", "")}]"; - } - } - - var newlist = names.Select((z, i) => new WinFormsUtil.cbItem{Text = (names[i] ?? "Extra") + $" ({i})", Value = i}); - newlist = newlist.GroupBy(z => z.Text.StartsWith("Extra")) - .Select(z => z.OrderBy(item => item.Text)) - .SelectMany(z => z).ToList(); - NUD_FormTable.Maximum = files.Length; - - CB_Species.DisplayMember = "Text"; - CB_Species.ValueMember = "Value"; - CB_Species.DataSource = newlist; - - CB_Species.SelectedIndex = 0; - } - - private readonly EggMoves7[] entries; - - private readonly byte[][] files; - private int entry = -1; - private readonly string[] movelist = Main.Config.getText(TextName.MoveNames); - private bool dumping; - private readonly int[] baseForms, formVal; - private void setupDGV() - { - string[] sortedmoves = (string[])movelist.Clone(); - Array.Sort(sortedmoves); - DataGridViewComboBoxColumn dgvMove = new DataGridViewComboBoxColumn(); - { - dgvMove.HeaderText = "Move"; - dgvMove.DisplayIndex = 0; - for (int i = 0; i < movelist.Length; i++) - dgvMove.Items.Add(sortedmoves[i]); // add only the Names - - dgvMove.Width = 135; - dgvMove.FlatStyle = FlatStyle.Flat; - } - dgv.Columns.Add(dgvMove); - } - - private EggMoves pkm = new EggMoves7(new byte[0]); - private void getList() - { - entry = WinFormsUtil.getIndex(CB_Species); - int s = 0, f = 0; - if (entry <= Main.Config.MaxSpeciesID) - { - s = entry; - } - int[] specForm = { s, f }; - string filename = "_" + specForm[0] + (entry > Main.Config.MaxSpeciesID ? "_" + (specForm[1] + 1) : ""); - PB_MonSprite.Image = (Bitmap)Resources.ResourceManager.GetObject(filename); - - dgv.Rows.Clear(); - pkm = entries[entry]; - NUD_FormTable.Value = pkm.FormTableIndex; - if (pkm.Count < 1) { files[entry] = new byte[0]; return; } - dgv.Rows.Add(pkm.Count); - - // Fill Entries - for (int i = 0; i < pkm.Count; i++) - dgv.Rows[i].Cells[0].Value = movelist[pkm.Moves[i]]; - - dgv.CancelEdit(); - } - private void setList() - { - if (entry < 1 || dumping) return; - List moves = new List(); - for (int i = 0; i < dgv.Rows.Count - 1; i++) - { - int move = Array.IndexOf(movelist, dgv.Rows[i].Cells[0].Value); - if (move > 0 && !moves.Contains((ushort)move)) moves.Add(move); - } - pkm.Moves = moves.ToArray(); - pkm.FormTableIndex = (int)NUD_FormTable.Value; - - entries[entry] = (EggMoves7)pkm; - } - - private void changeEntry(object sender, EventArgs e) - { - setList(); - getList(); - } - - private void B_RandAll_Click(object sender, EventArgs e) - { - var sets = entries; - var rand = new EggMoveRandomizer(Main.Config, sets) - { - Expand = CHK_Expand.Checked, - ExpandTo = (int)NUD_Moves.Value, - STAB = CHK_STAB.Checked, - rSTABPercent = NUD_STAB.Value, - BannedMoves = new[] { 165, 621, 464 }.Concat(Legal.Z_Moves).ToArray(), // Struggle, Hyperspace Fury, Dark Void - }; - rand.Execute(); - // sets.Select(z => z.Write()).ToArray().CopyTo(files, 0); - getList(); - WinFormsUtil.Alert("All Pokémon's Egg Moves have been randomized!"); - } - private void B_Dump_Click(object sender, EventArgs e) - { - if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Dump all Egg Moves to Text File?")) - return; - - dumping = true; - string result = ""; - for (int i = 0; i < CB_Species.Items.Count; i++) - { - CB_Species.SelectedIndex = i; // Get new Species - result += "======" + Environment.NewLine + entry + " " + CB_Species.Text + Environment.NewLine + "======" + Environment.NewLine; - for (int j = 0; j < dgv.Rows.Count - 1; j++) - result += dgv.Rows[j].Cells[0].Value + Environment.NewLine; - - result += Environment.NewLine; - } - SaveFileDialog sfd = new SaveFileDialog {FileName = "Egg Moves.txt", Filter = "Text File|*.txt"}; - - SystemSounds.Asterisk.Play(); - if (sfd.ShowDialog() == DialogResult.OK) - { - string path = sfd.FileName; - File.WriteAllText(path, result, Encoding.Unicode); - } - dumping = false; - } - - private void formClosing(object sender, FormClosingEventArgs e) - { - setList(); - entries.Select(z => z.Write()).ToArray().CopyTo(files, 0); - } - - private void B_Goto_Click(object sender, EventArgs e) - { - CB_Species.SelectedValue = (int)NUD_FormTable.Value; - } - - private void calcStats() - { - Move[] MoveData = Main.Config.Moves; - int movectr = 0; - int max = 0; - int spec = 0; - int stab = 0; - for (int i = 0; i < Main.Config.MaxSpeciesID; i++) - { - byte[] movedata = files[i]; - int movecount = BitConverter.ToUInt16(movedata, 2); - if (movecount == 65535) - continue; - movectr += movecount; // Average Moves - if (max < movecount) { max = movecount; spec = i; } // Max Moves (and species) - for (int m = 0; m < movecount; m++) - { - int move = BitConverter.ToUInt16(movedata, m * 2 + 4); - if (Main.SpeciesStat[i].Types.Contains(MoveData[move].Type)) - stab++; - } - } - WinFormsUtil.Alert($"Egg Moves: {movectr}\r\nMost Moves: {max} @ {spec}\r\nSTAB Count: {stab}"); - } - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/EvolutionEditor7.Designer.cs b/pk3DS/Subforms/Gen7/EvolutionEditor7.Designer.cs deleted file mode 100644 index c8c82863d1..0000000000 --- a/pk3DS/Subforms/Gen7/EvolutionEditor7.Designer.cs +++ /dev/null @@ -1,1074 +0,0 @@ -namespace pk3DS -{ - partial class EvolutionEditor7 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.CB_Species = new System.Windows.Forms.ComboBox(); - this.L_Species = new System.Windows.Forms.Label(); - this.B_Dump = new System.Windows.Forms.Button(); - this.CB_M1 = new System.Windows.Forms.ComboBox(); - this.L_M1 = new System.Windows.Forms.Label(); - this.CB_I1 = new System.Windows.Forms.ComboBox(); - this.CB_P1 = new System.Windows.Forms.ComboBox(); - this.PB_1 = new System.Windows.Forms.PictureBox(); - this.B_RandAll = new System.Windows.Forms.Button(); - this.GB_Randomizer = new System.Windows.Forms.GroupBox(); - this.L_Protip = new System.Windows.Forms.Label(); - this.CHK_BST = new System.Windows.Forms.CheckBox(); - this.CHK_Type = new System.Windows.Forms.CheckBox(); - this.CHK_Exp = new System.Windows.Forms.CheckBox(); - this.NUD_F1 = new System.Windows.Forms.NumericUpDown(); - this.NUD_L1 = new System.Windows.Forms.NumericUpDown(); - this.NUD_L2 = new System.Windows.Forms.NumericUpDown(); - this.NUD_F2 = new System.Windows.Forms.NumericUpDown(); - this.PB_2 = new System.Windows.Forms.PictureBox(); - this.CB_P2 = new System.Windows.Forms.ComboBox(); - this.CB_I2 = new System.Windows.Forms.ComboBox(); - this.label1 = new System.Windows.Forms.Label(); - this.CB_M2 = new System.Windows.Forms.ComboBox(); - this.NUD_L3 = new System.Windows.Forms.NumericUpDown(); - this.NUD_F3 = new System.Windows.Forms.NumericUpDown(); - this.PB_3 = new System.Windows.Forms.PictureBox(); - this.CB_P3 = new System.Windows.Forms.ComboBox(); - this.CB_I3 = new System.Windows.Forms.ComboBox(); - this.label2 = new System.Windows.Forms.Label(); - this.CB_M3 = new System.Windows.Forms.ComboBox(); - this.NUD_L4 = new System.Windows.Forms.NumericUpDown(); - this.NUD_F4 = new System.Windows.Forms.NumericUpDown(); - this.PB_4 = new System.Windows.Forms.PictureBox(); - this.CB_P4 = new System.Windows.Forms.ComboBox(); - this.CB_I4 = new System.Windows.Forms.ComboBox(); - this.label3 = new System.Windows.Forms.Label(); - this.CB_M4 = new System.Windows.Forms.ComboBox(); - this.NUD_L5 = new System.Windows.Forms.NumericUpDown(); - this.NUD_F5 = new System.Windows.Forms.NumericUpDown(); - this.PB_5 = new System.Windows.Forms.PictureBox(); - this.CB_P5 = new System.Windows.Forms.ComboBox(); - this.CB_I5 = new System.Windows.Forms.ComboBox(); - this.label4 = new System.Windows.Forms.Label(); - this.CB_M5 = new System.Windows.Forms.ComboBox(); - this.NUD_L6 = new System.Windows.Forms.NumericUpDown(); - this.NUD_F6 = new System.Windows.Forms.NumericUpDown(); - this.PB_6 = new System.Windows.Forms.PictureBox(); - this.CB_P6 = new System.Windows.Forms.ComboBox(); - this.CB_I6 = new System.Windows.Forms.ComboBox(); - this.label5 = new System.Windows.Forms.Label(); - this.CB_M6 = new System.Windows.Forms.ComboBox(); - this.NUD_L7 = new System.Windows.Forms.NumericUpDown(); - this.NUD_F7 = new System.Windows.Forms.NumericUpDown(); - this.PB_7 = new System.Windows.Forms.PictureBox(); - this.CB_P7 = new System.Windows.Forms.ComboBox(); - this.CB_I7 = new System.Windows.Forms.ComboBox(); - this.label6 = new System.Windows.Forms.Label(); - this.CB_M7 = new System.Windows.Forms.ComboBox(); - this.NUD_L8 = new System.Windows.Forms.NumericUpDown(); - this.NUD_F8 = new System.Windows.Forms.NumericUpDown(); - this.PB_8 = new System.Windows.Forms.PictureBox(); - this.CB_P8 = new System.Windows.Forms.ComboBox(); - this.CB_I8 = new System.Windows.Forms.ComboBox(); - this.label7 = new System.Windows.Forms.Label(); - this.CB_M8 = new System.Windows.Forms.ComboBox(); - ((System.ComponentModel.ISupportInitialize)(this.PB_1)).BeginInit(); - this.GB_Randomizer.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_F1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_L1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_L2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_F2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_L3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_F3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_L4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_F4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_L5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_F5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_L6)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_F6)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_6)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_L7)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_F7)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_7)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_L8)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_F8)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_8)).BeginInit(); - this.SuspendLayout(); - // - // CB_Species - // - this.CB_Species.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Species.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Species.FormattingEnabled = true; - this.CB_Species.Location = new System.Drawing.Point(66, 12); - this.CB_Species.Name = "CB_Species"; - this.CB_Species.Size = new System.Drawing.Size(121, 21); - this.CB_Species.TabIndex = 1; - this.CB_Species.SelectedIndexChanged += new System.EventHandler(this.changeEntry); - // - // L_Species - // - this.L_Species.AutoSize = true; - this.L_Species.Location = new System.Drawing.Point(12, 15); - this.L_Species.Name = "L_Species"; - this.L_Species.Size = new System.Drawing.Size(48, 13); - this.L_Species.TabIndex = 2; - this.L_Species.Text = "Species:"; - // - // B_Dump - // - this.B_Dump.Location = new System.Drawing.Point(193, 11); - this.B_Dump.Name = "B_Dump"; - this.B_Dump.Size = new System.Drawing.Size(59, 23); - this.B_Dump.TabIndex = 5; - this.B_Dump.Text = "Dump"; - this.B_Dump.UseVisualStyleBackColor = true; - this.B_Dump.Click += new System.EventHandler(this.B_Dump_Click); - // - // CB_M1 - // - this.CB_M1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_M1.DropDownWidth = 200; - this.CB_M1.FormattingEnabled = true; - this.CB_M1.Location = new System.Drawing.Point(125, 46); - this.CB_M1.MaxDropDownItems = 10; - this.CB_M1.Name = "CB_M1"; - this.CB_M1.Size = new System.Drawing.Size(150, 21); - this.CB_M1.TabIndex = 6; - this.CB_M1.SelectedIndexChanged += new System.EventHandler(this.changeMethod); - // - // L_M1 - // - this.L_M1.Location = new System.Drawing.Point(13, 45); - this.L_M1.Name = "L_M1"; - this.L_M1.Size = new System.Drawing.Size(60, 20); - this.L_M1.TabIndex = 7; - this.L_M1.Text = "Method 1:"; - this.L_M1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // CB_I1 - // - this.CB_I1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_I1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_I1.FormattingEnabled = true; - this.CB_I1.Location = new System.Drawing.Point(281, 46); - this.CB_I1.Name = "CB_I1"; - this.CB_I1.Size = new System.Drawing.Size(101, 21); - this.CB_I1.TabIndex = 9; - this.CB_I1.SelectedIndexChanged += new System.EventHandler(this.changeInto); - // - // CB_P1 - // - this.CB_P1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_P1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_P1.FormattingEnabled = true; - this.CB_P1.Location = new System.Drawing.Point(388, 46); - this.CB_P1.Name = "CB_P1"; - this.CB_P1.Size = new System.Drawing.Size(121, 21); - this.CB_P1.TabIndex = 10; - // - // PB_1 - // - this.PB_1.Location = new System.Drawing.Point(79, 39); - this.PB_1.Name = "PB_1"; - this.PB_1.Size = new System.Drawing.Size(40, 30); - this.PB_1.TabIndex = 54; - this.PB_1.TabStop = false; - // - // B_RandAll - // - this.B_RandAll.Location = new System.Drawing.Point(251, 47); - this.B_RandAll.Name = "B_RandAll"; - this.B_RandAll.Size = new System.Drawing.Size(100, 23); - this.B_RandAll.TabIndex = 62; - this.B_RandAll.Text = "Randomize All"; - this.B_RandAll.UseVisualStyleBackColor = true; - this.B_RandAll.Click += new System.EventHandler(this.B_RandAll_Click); - // - // GB_Randomizer - // - this.GB_Randomizer.Controls.Add(this.L_Protip); - this.GB_Randomizer.Controls.Add(this.CHK_BST); - this.GB_Randomizer.Controls.Add(this.CHK_Type); - this.GB_Randomizer.Controls.Add(this.CHK_Exp); - this.GB_Randomizer.Controls.Add(this.B_RandAll); - this.GB_Randomizer.Location = new System.Drawing.Point(16, 292); - this.GB_Randomizer.Name = "GB_Randomizer"; - this.GB_Randomizer.Size = new System.Drawing.Size(357, 76); - this.GB_Randomizer.TabIndex = 63; - this.GB_Randomizer.TabStop = false; - this.GB_Randomizer.Text = "Randomizer Options"; - // - // L_Protip - // - this.L_Protip.AutoSize = true; - this.L_Protip.ForeColor = System.Drawing.Color.Red; - this.L_Protip.Location = new System.Drawing.Point(198, 11); - this.L_Protip.Name = "L_Protip"; - this.L_Protip.Size = new System.Drawing.Size(153, 13); - this.L_Protip.TabIndex = 66; - this.L_Protip.Text = "(Protip: Difficulty++ in Personal)"; - // - // CHK_BST - // - this.CHK_BST.AutoSize = true; - this.CHK_BST.Checked = true; - this.CHK_BST.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_BST.Location = new System.Drawing.Point(6, 53); - this.CHK_BST.Name = "CHK_BST"; - this.CHK_BST.Size = new System.Drawing.Size(179, 17); - this.CHK_BST.TabIndex = 65; - this.CHK_BST.Text = "Share a similar BST as Evolution"; - this.CHK_BST.UseVisualStyleBackColor = true; - // - // CHK_Type - // - this.CHK_Type.AutoSize = true; - this.CHK_Type.Checked = true; - this.CHK_Type.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_Type.Location = new System.Drawing.Point(6, 38); - this.CHK_Type.Name = "CHK_Type"; - this.CHK_Type.Size = new System.Drawing.Size(200, 17); - this.CHK_Type.TabIndex = 64; - this.CHK_Type.Text = "Share at least one Type as Evolution"; - this.CHK_Type.UseVisualStyleBackColor = true; - // - // CHK_Exp - // - this.CHK_Exp.AutoSize = true; - this.CHK_Exp.Checked = true; - this.CHK_Exp.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_Exp.Location = new System.Drawing.Point(6, 23); - this.CHK_Exp.Name = "CHK_Exp"; - this.CHK_Exp.Size = new System.Drawing.Size(219, 17); - this.CHK_Exp.TabIndex = 63; - this.CHK_Exp.Text = "Share the same Exp Growth as Evolution"; - this.CHK_Exp.UseVisualStyleBackColor = true; - // - // NUD_F1 - // - this.NUD_F1.Location = new System.Drawing.Point(515, 47); - this.NUD_F1.Maximum = new decimal(new int[] { - 127, - 0, - 0, - 0}); - this.NUD_F1.Minimum = new decimal(new int[] { - 127, - 0, - 0, - -2147483648}); - this.NUD_F1.Name = "NUD_F1"; - this.NUD_F1.Size = new System.Drawing.Size(45, 20); - this.NUD_F1.TabIndex = 64; - this.NUD_F1.ValueChanged += new System.EventHandler(this.changeInto); - // - // NUD_L1 - // - this.NUD_L1.Location = new System.Drawing.Point(566, 47); - this.NUD_L1.Maximum = new decimal(new int[] { - 127, - 0, - 0, - 0}); - this.NUD_L1.Minimum = new decimal(new int[] { - 127, - 0, - 0, - -2147483648}); - this.NUD_L1.Name = "NUD_L1"; - this.NUD_L1.Size = new System.Drawing.Size(45, 20); - this.NUD_L1.TabIndex = 65; - // - // NUD_L2 - // - this.NUD_L2.Location = new System.Drawing.Point(566, 78); - this.NUD_L2.Maximum = new decimal(new int[] { - 127, - 0, - 0, - 0}); - this.NUD_L2.Minimum = new decimal(new int[] { - 127, - 0, - 0, - -2147483648}); - this.NUD_L2.Name = "NUD_L2"; - this.NUD_L2.Size = new System.Drawing.Size(45, 20); - this.NUD_L2.TabIndex = 72; - // - // NUD_F2 - // - this.NUD_F2.Location = new System.Drawing.Point(515, 78); - this.NUD_F2.Maximum = new decimal(new int[] { - 127, - 0, - 0, - 0}); - this.NUD_F2.Minimum = new decimal(new int[] { - 127, - 0, - 0, - -2147483648}); - this.NUD_F2.Name = "NUD_F2"; - this.NUD_F2.Size = new System.Drawing.Size(45, 20); - this.NUD_F2.TabIndex = 71; - this.NUD_F2.ValueChanged += new System.EventHandler(this.changeInto); - // - // PB_2 - // - this.PB_2.Location = new System.Drawing.Point(79, 70); - this.PB_2.Name = "PB_2"; - this.PB_2.Size = new System.Drawing.Size(40, 30); - this.PB_2.TabIndex = 70; - this.PB_2.TabStop = false; - // - // CB_P2 - // - this.CB_P2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_P2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_P2.FormattingEnabled = true; - this.CB_P2.Location = new System.Drawing.Point(388, 77); - this.CB_P2.Name = "CB_P2"; - this.CB_P2.Size = new System.Drawing.Size(121, 21); - this.CB_P2.TabIndex = 69; - // - // CB_I2 - // - this.CB_I2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_I2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_I2.FormattingEnabled = true; - this.CB_I2.Location = new System.Drawing.Point(281, 77); - this.CB_I2.Name = "CB_I2"; - this.CB_I2.Size = new System.Drawing.Size(101, 21); - this.CB_I2.TabIndex = 68; - this.CB_I2.SelectedIndexChanged += new System.EventHandler(this.changeInto); - // - // label1 - // - this.label1.Location = new System.Drawing.Point(13, 76); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(60, 20); - this.label1.TabIndex = 67; - this.label1.Text = "Method 2:"; - this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // CB_M2 - // - this.CB_M2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_M2.DropDownWidth = 200; - this.CB_M2.FormattingEnabled = true; - this.CB_M2.Location = new System.Drawing.Point(125, 77); - this.CB_M2.MaxDropDownItems = 10; - this.CB_M2.Name = "CB_M2"; - this.CB_M2.Size = new System.Drawing.Size(150, 21); - this.CB_M2.TabIndex = 66; - this.CB_M2.SelectedIndexChanged += new System.EventHandler(this.changeMethod); - // - // NUD_L3 - // - this.NUD_L3.Location = new System.Drawing.Point(566, 109); - this.NUD_L3.Maximum = new decimal(new int[] { - 127, - 0, - 0, - 0}); - this.NUD_L3.Minimum = new decimal(new int[] { - 127, - 0, - 0, - -2147483648}); - this.NUD_L3.Name = "NUD_L3"; - this.NUD_L3.Size = new System.Drawing.Size(45, 20); - this.NUD_L3.TabIndex = 79; - // - // NUD_F3 - // - this.NUD_F3.Location = new System.Drawing.Point(515, 109); - this.NUD_F3.Maximum = new decimal(new int[] { - 127, - 0, - 0, - 0}); - this.NUD_F3.Minimum = new decimal(new int[] { - 127, - 0, - 0, - -2147483648}); - this.NUD_F3.Name = "NUD_F3"; - this.NUD_F3.Size = new System.Drawing.Size(45, 20); - this.NUD_F3.TabIndex = 78; - this.NUD_F3.ValueChanged += new System.EventHandler(this.changeInto); - // - // PB_3 - // - this.PB_3.Location = new System.Drawing.Point(79, 101); - this.PB_3.Name = "PB_3"; - this.PB_3.Size = new System.Drawing.Size(40, 30); - this.PB_3.TabIndex = 77; - this.PB_3.TabStop = false; - // - // CB_P3 - // - this.CB_P3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_P3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_P3.FormattingEnabled = true; - this.CB_P3.Location = new System.Drawing.Point(388, 108); - this.CB_P3.Name = "CB_P3"; - this.CB_P3.Size = new System.Drawing.Size(121, 21); - this.CB_P3.TabIndex = 76; - // - // CB_I3 - // - this.CB_I3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_I3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_I3.FormattingEnabled = true; - this.CB_I3.Location = new System.Drawing.Point(281, 108); - this.CB_I3.Name = "CB_I3"; - this.CB_I3.Size = new System.Drawing.Size(101, 21); - this.CB_I3.TabIndex = 75; - this.CB_I3.SelectedIndexChanged += new System.EventHandler(this.changeInto); - // - // label2 - // - this.label2.Location = new System.Drawing.Point(13, 107); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(60, 20); - this.label2.TabIndex = 74; - this.label2.Text = "Method 3:"; - this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // CB_M3 - // - this.CB_M3.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_M3.DropDownWidth = 200; - this.CB_M3.FormattingEnabled = true; - this.CB_M3.Location = new System.Drawing.Point(125, 108); - this.CB_M3.MaxDropDownItems = 10; - this.CB_M3.Name = "CB_M3"; - this.CB_M3.Size = new System.Drawing.Size(150, 21); - this.CB_M3.TabIndex = 73; - this.CB_M3.SelectedIndexChanged += new System.EventHandler(this.changeMethod); - // - // NUD_L4 - // - this.NUD_L4.Location = new System.Drawing.Point(566, 140); - this.NUD_L4.Maximum = new decimal(new int[] { - 127, - 0, - 0, - 0}); - this.NUD_L4.Minimum = new decimal(new int[] { - 127, - 0, - 0, - -2147483648}); - this.NUD_L4.Name = "NUD_L4"; - this.NUD_L4.Size = new System.Drawing.Size(45, 20); - this.NUD_L4.TabIndex = 86; - // - // NUD_F4 - // - this.NUD_F4.Location = new System.Drawing.Point(515, 140); - this.NUD_F4.Maximum = new decimal(new int[] { - 127, - 0, - 0, - 0}); - this.NUD_F4.Minimum = new decimal(new int[] { - 127, - 0, - 0, - -2147483648}); - this.NUD_F4.Name = "NUD_F4"; - this.NUD_F4.Size = new System.Drawing.Size(45, 20); - this.NUD_F4.TabIndex = 85; - this.NUD_F4.ValueChanged += new System.EventHandler(this.changeInto); - // - // PB_4 - // - this.PB_4.Location = new System.Drawing.Point(79, 132); - this.PB_4.Name = "PB_4"; - this.PB_4.Size = new System.Drawing.Size(40, 30); - this.PB_4.TabIndex = 84; - this.PB_4.TabStop = false; - // - // CB_P4 - // - this.CB_P4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_P4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_P4.FormattingEnabled = true; - this.CB_P4.Location = new System.Drawing.Point(388, 139); - this.CB_P4.Name = "CB_P4"; - this.CB_P4.Size = new System.Drawing.Size(121, 21); - this.CB_P4.TabIndex = 83; - // - // CB_I4 - // - this.CB_I4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_I4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_I4.FormattingEnabled = true; - this.CB_I4.Location = new System.Drawing.Point(281, 139); - this.CB_I4.Name = "CB_I4"; - this.CB_I4.Size = new System.Drawing.Size(101, 21); - this.CB_I4.TabIndex = 82; - this.CB_I4.SelectedIndexChanged += new System.EventHandler(this.changeInto); - // - // label3 - // - this.label3.Location = new System.Drawing.Point(13, 138); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(60, 20); - this.label3.TabIndex = 81; - this.label3.Text = "Method 4:"; - this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // CB_M4 - // - this.CB_M4.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_M4.DropDownWidth = 200; - this.CB_M4.FormattingEnabled = true; - this.CB_M4.Location = new System.Drawing.Point(125, 139); - this.CB_M4.MaxDropDownItems = 10; - this.CB_M4.Name = "CB_M4"; - this.CB_M4.Size = new System.Drawing.Size(150, 21); - this.CB_M4.TabIndex = 80; - this.CB_M4.SelectedIndexChanged += new System.EventHandler(this.changeMethod); - // - // NUD_L5 - // - this.NUD_L5.Location = new System.Drawing.Point(566, 171); - this.NUD_L5.Maximum = new decimal(new int[] { - 127, - 0, - 0, - 0}); - this.NUD_L5.Minimum = new decimal(new int[] { - 127, - 0, - 0, - -2147483648}); - this.NUD_L5.Name = "NUD_L5"; - this.NUD_L5.Size = new System.Drawing.Size(45, 20); - this.NUD_L5.TabIndex = 93; - // - // NUD_F5 - // - this.NUD_F5.Location = new System.Drawing.Point(515, 171); - this.NUD_F5.Maximum = new decimal(new int[] { - 127, - 0, - 0, - 0}); - this.NUD_F5.Minimum = new decimal(new int[] { - 127, - 0, - 0, - -2147483648}); - this.NUD_F5.Name = "NUD_F5"; - this.NUD_F5.Size = new System.Drawing.Size(45, 20); - this.NUD_F5.TabIndex = 92; - this.NUD_F5.ValueChanged += new System.EventHandler(this.changeInto); - // - // PB_5 - // - this.PB_5.Location = new System.Drawing.Point(79, 163); - this.PB_5.Name = "PB_5"; - this.PB_5.Size = new System.Drawing.Size(40, 30); - this.PB_5.TabIndex = 91; - this.PB_5.TabStop = false; - // - // CB_P5 - // - this.CB_P5.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_P5.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_P5.FormattingEnabled = true; - this.CB_P5.Location = new System.Drawing.Point(388, 170); - this.CB_P5.Name = "CB_P5"; - this.CB_P5.Size = new System.Drawing.Size(121, 21); - this.CB_P5.TabIndex = 90; - // - // CB_I5 - // - this.CB_I5.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_I5.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_I5.FormattingEnabled = true; - this.CB_I5.Location = new System.Drawing.Point(281, 170); - this.CB_I5.Name = "CB_I5"; - this.CB_I5.Size = new System.Drawing.Size(101, 21); - this.CB_I5.TabIndex = 89; - this.CB_I5.SelectedIndexChanged += new System.EventHandler(this.changeInto); - // - // label4 - // - this.label4.Location = new System.Drawing.Point(13, 169); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(60, 20); - this.label4.TabIndex = 88; - this.label4.Text = "Method 5:"; - this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // CB_M5 - // - this.CB_M5.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_M5.DropDownWidth = 200; - this.CB_M5.FormattingEnabled = true; - this.CB_M5.Location = new System.Drawing.Point(125, 170); - this.CB_M5.MaxDropDownItems = 10; - this.CB_M5.Name = "CB_M5"; - this.CB_M5.Size = new System.Drawing.Size(150, 21); - this.CB_M5.TabIndex = 87; - this.CB_M5.SelectedIndexChanged += new System.EventHandler(this.changeMethod); - // - // NUD_L6 - // - this.NUD_L6.Location = new System.Drawing.Point(566, 202); - this.NUD_L6.Maximum = new decimal(new int[] { - 127, - 0, - 0, - 0}); - this.NUD_L6.Minimum = new decimal(new int[] { - 127, - 0, - 0, - -2147483648}); - this.NUD_L6.Name = "NUD_L6"; - this.NUD_L6.Size = new System.Drawing.Size(45, 20); - this.NUD_L6.TabIndex = 100; - // - // NUD_F6 - // - this.NUD_F6.Location = new System.Drawing.Point(515, 202); - this.NUD_F6.Maximum = new decimal(new int[] { - 127, - 0, - 0, - 0}); - this.NUD_F6.Minimum = new decimal(new int[] { - 127, - 0, - 0, - -2147483648}); - this.NUD_F6.Name = "NUD_F6"; - this.NUD_F6.Size = new System.Drawing.Size(45, 20); - this.NUD_F6.TabIndex = 99; - this.NUD_F6.ValueChanged += new System.EventHandler(this.changeInto); - // - // PB_6 - // - this.PB_6.Location = new System.Drawing.Point(79, 194); - this.PB_6.Name = "PB_6"; - this.PB_6.Size = new System.Drawing.Size(40, 30); - this.PB_6.TabIndex = 98; - this.PB_6.TabStop = false; - // - // CB_P6 - // - this.CB_P6.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_P6.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_P6.FormattingEnabled = true; - this.CB_P6.Location = new System.Drawing.Point(388, 201); - this.CB_P6.Name = "CB_P6"; - this.CB_P6.Size = new System.Drawing.Size(121, 21); - this.CB_P6.TabIndex = 97; - // - // CB_I6 - // - this.CB_I6.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_I6.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_I6.FormattingEnabled = true; - this.CB_I6.Location = new System.Drawing.Point(281, 201); - this.CB_I6.Name = "CB_I6"; - this.CB_I6.Size = new System.Drawing.Size(101, 21); - this.CB_I6.TabIndex = 96; - this.CB_I6.SelectedIndexChanged += new System.EventHandler(this.changeInto); - // - // label5 - // - this.label5.Location = new System.Drawing.Point(13, 200); - this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(60, 20); - this.label5.TabIndex = 95; - this.label5.Text = "Method 6:"; - this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // CB_M6 - // - this.CB_M6.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_M6.DropDownWidth = 200; - this.CB_M6.FormattingEnabled = true; - this.CB_M6.Location = new System.Drawing.Point(125, 201); - this.CB_M6.MaxDropDownItems = 10; - this.CB_M6.Name = "CB_M6"; - this.CB_M6.Size = new System.Drawing.Size(150, 21); - this.CB_M6.TabIndex = 94; - this.CB_M6.SelectedIndexChanged += new System.EventHandler(this.changeMethod); - // - // NUD_L7 - // - this.NUD_L7.Location = new System.Drawing.Point(566, 233); - this.NUD_L7.Maximum = new decimal(new int[] { - 127, - 0, - 0, - 0}); - this.NUD_L7.Minimum = new decimal(new int[] { - 127, - 0, - 0, - -2147483648}); - this.NUD_L7.Name = "NUD_L7"; - this.NUD_L7.Size = new System.Drawing.Size(45, 20); - this.NUD_L7.TabIndex = 107; - // - // NUD_F7 - // - this.NUD_F7.Location = new System.Drawing.Point(515, 233); - this.NUD_F7.Maximum = new decimal(new int[] { - 127, - 0, - 0, - 0}); - this.NUD_F7.Minimum = new decimal(new int[] { - 127, - 0, - 0, - -2147483648}); - this.NUD_F7.Name = "NUD_F7"; - this.NUD_F7.Size = new System.Drawing.Size(45, 20); - this.NUD_F7.TabIndex = 106; - this.NUD_F7.ValueChanged += new System.EventHandler(this.changeInto); - // - // PB_7 - // - this.PB_7.Location = new System.Drawing.Point(79, 225); - this.PB_7.Name = "PB_7"; - this.PB_7.Size = new System.Drawing.Size(40, 30); - this.PB_7.TabIndex = 105; - this.PB_7.TabStop = false; - // - // CB_P7 - // - this.CB_P7.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_P7.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_P7.FormattingEnabled = true; - this.CB_P7.Location = new System.Drawing.Point(388, 232); - this.CB_P7.Name = "CB_P7"; - this.CB_P7.Size = new System.Drawing.Size(121, 21); - this.CB_P7.TabIndex = 104; - // - // CB_I7 - // - this.CB_I7.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_I7.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_I7.FormattingEnabled = true; - this.CB_I7.Location = new System.Drawing.Point(281, 232); - this.CB_I7.Name = "CB_I7"; - this.CB_I7.Size = new System.Drawing.Size(101, 21); - this.CB_I7.TabIndex = 103; - this.CB_I7.SelectedIndexChanged += new System.EventHandler(this.changeInto); - // - // label6 - // - this.label6.Location = new System.Drawing.Point(13, 231); - this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(60, 20); - this.label6.TabIndex = 102; - this.label6.Text = "Method 7:"; - this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // CB_M7 - // - this.CB_M7.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_M7.DropDownWidth = 200; - this.CB_M7.FormattingEnabled = true; - this.CB_M7.Location = new System.Drawing.Point(125, 232); - this.CB_M7.MaxDropDownItems = 10; - this.CB_M7.Name = "CB_M7"; - this.CB_M7.Size = new System.Drawing.Size(150, 21); - this.CB_M7.TabIndex = 101; - this.CB_M7.SelectedIndexChanged += new System.EventHandler(this.changeMethod); - // - // NUD_L8 - // - this.NUD_L8.Location = new System.Drawing.Point(566, 264); - this.NUD_L8.Maximum = new decimal(new int[] { - 127, - 0, - 0, - 0}); - this.NUD_L8.Minimum = new decimal(new int[] { - 127, - 0, - 0, - -2147483648}); - this.NUD_L8.Name = "NUD_L8"; - this.NUD_L8.Size = new System.Drawing.Size(45, 20); - this.NUD_L8.TabIndex = 114; - // - // NUD_F8 - // - this.NUD_F8.Location = new System.Drawing.Point(515, 264); - this.NUD_F8.Maximum = new decimal(new int[] { - 127, - 0, - 0, - 0}); - this.NUD_F8.Minimum = new decimal(new int[] { - 127, - 0, - 0, - -2147483648}); - this.NUD_F8.Name = "NUD_F8"; - this.NUD_F8.Size = new System.Drawing.Size(45, 20); - this.NUD_F8.TabIndex = 113; - this.NUD_F8.ValueChanged += new System.EventHandler(this.changeInto); - // - // PB_8 - // - this.PB_8.Location = new System.Drawing.Point(79, 256); - this.PB_8.Name = "PB_8"; - this.PB_8.Size = new System.Drawing.Size(40, 30); - this.PB_8.TabIndex = 112; - this.PB_8.TabStop = false; - // - // CB_P8 - // - this.CB_P8.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_P8.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_P8.FormattingEnabled = true; - this.CB_P8.Location = new System.Drawing.Point(388, 263); - this.CB_P8.Name = "CB_P8"; - this.CB_P8.Size = new System.Drawing.Size(121, 21); - this.CB_P8.TabIndex = 111; - // - // CB_I8 - // - this.CB_I8.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_I8.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_I8.FormattingEnabled = true; - this.CB_I8.Location = new System.Drawing.Point(281, 263); - this.CB_I8.Name = "CB_I8"; - this.CB_I8.Size = new System.Drawing.Size(101, 21); - this.CB_I8.TabIndex = 110; - this.CB_I8.SelectedIndexChanged += new System.EventHandler(this.changeInto); - // - // label7 - // - this.label7.Location = new System.Drawing.Point(13, 262); - this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(60, 20); - this.label7.TabIndex = 109; - this.label7.Text = "Method 8:"; - this.label7.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // CB_M8 - // - this.CB_M8.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_M8.DropDownWidth = 200; - this.CB_M8.FormattingEnabled = true; - this.CB_M8.Location = new System.Drawing.Point(125, 263); - this.CB_M8.MaxDropDownItems = 10; - this.CB_M8.Name = "CB_M8"; - this.CB_M8.Size = new System.Drawing.Size(150, 21); - this.CB_M8.TabIndex = 108; - this.CB_M8.SelectedIndexChanged += new System.EventHandler(this.changeMethod); - // - // EvolutionEditor7 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(624, 376); - this.Controls.Add(this.NUD_L8); - this.Controls.Add(this.NUD_F8); - this.Controls.Add(this.PB_8); - this.Controls.Add(this.CB_P8); - this.Controls.Add(this.CB_I8); - this.Controls.Add(this.label7); - this.Controls.Add(this.CB_M8); - this.Controls.Add(this.NUD_L7); - this.Controls.Add(this.NUD_F7); - this.Controls.Add(this.PB_7); - this.Controls.Add(this.CB_P7); - this.Controls.Add(this.CB_I7); - this.Controls.Add(this.label6); - this.Controls.Add(this.CB_M7); - this.Controls.Add(this.NUD_L6); - this.Controls.Add(this.NUD_F6); - this.Controls.Add(this.PB_6); - this.Controls.Add(this.CB_P6); - this.Controls.Add(this.CB_I6); - this.Controls.Add(this.label5); - this.Controls.Add(this.CB_M6); - this.Controls.Add(this.NUD_L5); - this.Controls.Add(this.NUD_F5); - this.Controls.Add(this.PB_5); - this.Controls.Add(this.CB_P5); - this.Controls.Add(this.CB_I5); - this.Controls.Add(this.label4); - this.Controls.Add(this.CB_M5); - this.Controls.Add(this.NUD_L4); - this.Controls.Add(this.NUD_F4); - this.Controls.Add(this.PB_4); - this.Controls.Add(this.CB_P4); - this.Controls.Add(this.CB_I4); - this.Controls.Add(this.label3); - this.Controls.Add(this.CB_M4); - this.Controls.Add(this.NUD_L3); - this.Controls.Add(this.NUD_F3); - this.Controls.Add(this.PB_3); - this.Controls.Add(this.CB_P3); - this.Controls.Add(this.CB_I3); - this.Controls.Add(this.label2); - this.Controls.Add(this.CB_M3); - this.Controls.Add(this.NUD_L2); - this.Controls.Add(this.NUD_F2); - this.Controls.Add(this.PB_2); - this.Controls.Add(this.CB_P2); - this.Controls.Add(this.CB_I2); - this.Controls.Add(this.label1); - this.Controls.Add(this.CB_M2); - this.Controls.Add(this.NUD_L1); - this.Controls.Add(this.NUD_F1); - this.Controls.Add(this.GB_Randomizer); - this.Controls.Add(this.PB_1); - this.Controls.Add(this.CB_P1); - this.Controls.Add(this.CB_I1); - this.Controls.Add(this.L_M1); - this.Controls.Add(this.CB_M1); - this.Controls.Add(this.B_Dump); - this.Controls.Add(this.L_Species); - this.Controls.Add(this.CB_Species); - this.MaximizeBox = false; - this.MaximumSize = new System.Drawing.Size(640, 415); - this.MinimumSize = new System.Drawing.Size(640, 415); - this.Name = "EvolutionEditor7"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Evolution Editor"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.formClosing); - ((System.ComponentModel.ISupportInitialize)(this.PB_1)).EndInit(); - this.GB_Randomizer.ResumeLayout(false); - this.GB_Randomizer.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_F1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_L1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_L2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_F2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_L3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_F3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_L4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_F4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_L5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_F5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_L6)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_F6)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_6)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_L7)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_F7)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_7)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_L8)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_F8)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_8)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.ComboBox CB_Species; - private System.Windows.Forms.Label L_Species; - private System.Windows.Forms.Button B_Dump; - private System.Windows.Forms.ComboBox CB_M1; - private System.Windows.Forms.Label L_M1; - private System.Windows.Forms.ComboBox CB_I1; - private System.Windows.Forms.ComboBox CB_P1; - private System.Windows.Forms.PictureBox PB_1; - private System.Windows.Forms.Button B_RandAll; - private System.Windows.Forms.GroupBox GB_Randomizer; - private System.Windows.Forms.CheckBox CHK_Exp; - private System.Windows.Forms.CheckBox CHK_Type; - private System.Windows.Forms.CheckBox CHK_BST; - private System.Windows.Forms.Label L_Protip; - private System.Windows.Forms.NumericUpDown NUD_F1; - private System.Windows.Forms.NumericUpDown NUD_L1; - private System.Windows.Forms.NumericUpDown NUD_L2; - private System.Windows.Forms.NumericUpDown NUD_F2; - private System.Windows.Forms.PictureBox PB_2; - private System.Windows.Forms.ComboBox CB_P2; - private System.Windows.Forms.ComboBox CB_I2; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.ComboBox CB_M2; - private System.Windows.Forms.NumericUpDown NUD_L3; - private System.Windows.Forms.NumericUpDown NUD_F3; - private System.Windows.Forms.PictureBox PB_3; - private System.Windows.Forms.ComboBox CB_P3; - private System.Windows.Forms.ComboBox CB_I3; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.ComboBox CB_M3; - private System.Windows.Forms.NumericUpDown NUD_L4; - private System.Windows.Forms.NumericUpDown NUD_F4; - private System.Windows.Forms.PictureBox PB_4; - private System.Windows.Forms.ComboBox CB_P4; - private System.Windows.Forms.ComboBox CB_I4; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.ComboBox CB_M4; - private System.Windows.Forms.NumericUpDown NUD_L5; - private System.Windows.Forms.NumericUpDown NUD_F5; - private System.Windows.Forms.PictureBox PB_5; - private System.Windows.Forms.ComboBox CB_P5; - private System.Windows.Forms.ComboBox CB_I5; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.ComboBox CB_M5; - private System.Windows.Forms.NumericUpDown NUD_L6; - private System.Windows.Forms.NumericUpDown NUD_F6; - private System.Windows.Forms.PictureBox PB_6; - private System.Windows.Forms.ComboBox CB_P6; - private System.Windows.Forms.ComboBox CB_I6; - private System.Windows.Forms.Label label5; - private System.Windows.Forms.ComboBox CB_M6; - private System.Windows.Forms.NumericUpDown NUD_L7; - private System.Windows.Forms.NumericUpDown NUD_F7; - private System.Windows.Forms.PictureBox PB_7; - private System.Windows.Forms.ComboBox CB_P7; - private System.Windows.Forms.ComboBox CB_I7; - private System.Windows.Forms.Label label6; - private System.Windows.Forms.ComboBox CB_M7; - private System.Windows.Forms.NumericUpDown NUD_L8; - private System.Windows.Forms.NumericUpDown NUD_F8; - private System.Windows.Forms.PictureBox PB_8; - private System.Windows.Forms.ComboBox CB_P8; - private System.Windows.Forms.ComboBox CB_I8; - private System.Windows.Forms.Label label7; - private System.Windows.Forms.ComboBox CB_M8; - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/EvolutionEditor7.cs b/pk3DS/Subforms/Gen7/EvolutionEditor7.cs deleted file mode 100644 index 5ab2bc421e..0000000000 --- a/pk3DS/Subforms/Gen7/EvolutionEditor7.cs +++ /dev/null @@ -1,286 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Media; -using System.Text; -using System.Windows.Forms; - -using pk3DS.Core; -using pk3DS.Core.Randomizers; -using pk3DS.Core.Structures; - -namespace pk3DS -{ - public partial class EvolutionEditor7 : Form - { - public EvolutionEditor7(byte[][] infiles) - { - files = infiles; - InitializeComponent(); - - specieslist[0] = movelist[0] = itemlist[0] = ""; - Array.Resize(ref specieslist, Main.Config.MaxSpeciesID + 1); - string[][] AltForms = Main.Config.Personal.getFormList(specieslist, Main.Config.MaxSpeciesID); - specieslist = Main.Config.Personal.getPersonalEntryList(AltForms, specieslist, Main.Config.MaxSpeciesID, out baseForms, out formVal); - - string[] evolutionMethods = - { - "", - "Level Up with Friendship", - "Level Up at Morning with Friendship", - "Level Up at Night with Friendship", - "Level Up", - "Trade", - "Trade with Held Item", - $"Trade for opposite {specieslist[588]}/{specieslist[616]}", // Shelmet&Karrablast - "Used Item", - "Level Up (Attack > Defense)", - "Level Up (Attack = Defense)", - "Level Up (Attack < Defense)", - "Level Up (Random < 5)", - "Level Up (Random > 5)", - $"Level Up ({specieslist[291]})", // Ninjask - $"Level Up ({specieslist[292]})", // Shedinja - "Level Up (Beauty)", - "Used Item (Male)", // Kirlia->Gallade - "Used Item (Female)", // Snorunt->Froslass - "Level Up with Held Item (Day)", - "Level Up with Held Item (Night)", - "Level Up with Move", - "Level Up with Party", - "Level Up Male", - "Level Up Female", - "Level Up at Electric", - "Level Up at Forest", - "Level Up at Cold", - "Level Up with 3DS Upside Down", - "Level Up with 50 Affection + MoveType", - $"{typelist[16]} Type in Party", - "Overworld Rain", - "Level Up (@) at Morning", - "Level Up (@) at Night", - "Level Up Female (SetForm 1)", - "UNUSED", - "Level Up Any Time on Version", - "Level Up Daytime on Version", - "Level Up Nighttime on Version", - "Level Up Summit", - }; - - var evos = new List(evolutionMethods); - if (Main.Config.USUM) - { - evos.AddRange(new[] { - "Level Up (@) Dusk", // 40 - "Level Up (Wormhole)", // 41 - "Used Item (Wormhole)" // 42 - }); - } - - mb = new[] { CB_M1, CB_M2, CB_M3, CB_M4, CB_M5, CB_M6, CB_M7, CB_M8 }; - pb = new[] { CB_P1, CB_P2, CB_P3, CB_P4, CB_P5, CB_P6, CB_P7, CB_P8 }; - rb = new[] { CB_I1, CB_I2, CB_I3, CB_I4, CB_I5, CB_I6, CB_I7, CB_I8 }; - fb = new[] { NUD_F1, NUD_F2, NUD_F3, NUD_F4, NUD_F5, NUD_F6, NUD_F7, NUD_F8 }; - lb = new[] { NUD_L1, NUD_L2, NUD_L3, NUD_L4, NUD_L5, NUD_L6, NUD_L7, NUD_L8 }; - pic = new[] { PB_1, PB_2, PB_3, PB_4, PB_5, PB_6, PB_7, PB_8 }; - - maxEvoMethod = evos.Count; - foreach (ComboBox cb in mb) { cb.Items.AddRange(evos.ToArray()); } - foreach (ComboBox cb in rb) { cb.Items.AddRange(specieslist.Take(Main.Config.MaxSpeciesID+1).ToArray()); } - - sortedspecies = (string[])specieslist.Clone(); - Array.Sort(sortedspecies); - - CB_Species.Items.Clear(); - foreach (string s in sortedspecies) CB_Species.Items.Add(s); - CB_Species.Items.RemoveAt(0); - - CB_Species.SelectedIndex = 0; - } - private readonly byte[][] files; - private readonly ComboBox[] pb, mb, rb; - private readonly NumericUpDown[] fb, lb; - private readonly PictureBox[] pic; - private int entry = -1; - private readonly string[] sortedspecies; - private readonly string[] specieslist = Main.Config.getText(TextName.SpeciesNames); - private readonly string[] movelist = Main.Config.getText(TextName.MoveNames); - private readonly string[] itemlist = Main.Config.getText(TextName.ItemNames); - private readonly string[] typelist = Main.Config.getText(TextName.Types); - private bool dumping, loading; - private readonly int[] baseForms, formVal; - private EvolutionSet evo = new EvolutionSet7(new byte[EvolutionSet7.SIZE]); - private readonly int maxEvoMethod; - private void getList() - { - entry = Array.IndexOf(specieslist, CB_Species.Text); - byte[] input = files[entry]; - if (input.Length != EvolutionSet7.SIZE) return; // error - evo = new EvolutionSet7(input); - - for (int i = 0; i < evo.PossibleEvolutions.Length; i++) - { - if (evo.PossibleEvolutions[i].Method > maxEvoMethod) - return; // Invalid! - - loading = true; - fb[i].Value = evo.PossibleEvolutions[i].Form; - lb[i].Value = evo.PossibleEvolutions[i].Level; - mb[i].SelectedIndex = evo.PossibleEvolutions[i].Method; // Which will trigger the params cb to reload the valid params list - pb[i].SelectedIndex = evo.PossibleEvolutions[i].Argument; - rb[i].SelectedIndex = evo.PossibleEvolutions[i].Species; // Triggers sprite to reload - loading = false; - changeInto(rb[i], null); // refresh sprite - } - } - private void setList() - { - if (entry < 1 || dumping) return; - - for (int i = 0; i < 8; i++) - { - evo.PossibleEvolutions[i].Species = rb[i].SelectedIndex; - evo.PossibleEvolutions[i].Method = mb[i].SelectedIndex; - evo.PossibleEvolutions[i].Argument = pb[i].SelectedIndex; - evo.PossibleEvolutions[i].Form = (sbyte)fb[i].Value; - evo.PossibleEvolutions[i].Level = (int)lb[i].Value; - } - files[entry] = evo.Write(); - } - - private void changeEntry(object sender, EventArgs e) - { - setList(); - getList(); - } - - private void B_RandAll_Click(object sender, EventArgs e) - { - if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomize all resulting species?", "Evolution methods and parameters will stay the same.")) - return; - - setList(); - // Set up advanced randomization options - var evos = files.Select(z => new EvolutionSet7(z)).ToArray(); - var evoRand = new EvolutionRandomizer(Main.Config, evos); - evoRand.Randomizer.rBST = CHK_BST.Checked; - evoRand.Randomizer.rEXP = CHK_Exp.Checked; - evoRand.Randomizer.rType = CHK_Type.Checked; - evoRand.Randomizer.Initialize(); - evoRand.Execute(); - evos.Select(z => z.Write()).ToArray().CopyTo(files, 0); - getList(); - - WinFormsUtil.Alert("All Pokémon's Evolutions have been randomized!"); - } - private void B_Dump_Click(object sender, EventArgs e) - { - if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Dump all Evolutions to Text File?")) - return; - - dumping = true; - string result = ""; - for (int i = 0; i < CB_Species.Items.Count; i++) - { - CB_Species.Text = specieslist[i]; // Get new Species - result += "======" + Environment.NewLine + entry + " " + CB_Species.Text + Environment.NewLine + "======" + Environment.NewLine; - for (int j = 0; j < 8; j++) - { - int methodval = mb[j].SelectedIndex; - // int param = pb[j].SelectedIndex; - int poke = rb[j].SelectedIndex; - if (poke > 0 && methodval > 0) - { - string species = rb[j].Text; - int bf = formVal[entry]; - string param = pb[j].Visible ? " [" + pb[j].Text + "]" : ""; - if (lb[j].Value > 0) - param += $"@ level {lb[j].Value}"; - string method = mb[j].Text; - int f = fb[j].Value == -1 ? bf : (int)fb[j].Value; - string form = f == 0 ? "" : "-" + f; - - result += $"{method} {param} into {species}{form}".Replace(" ", " ") + Environment.NewLine; - } - } - - result += Environment.NewLine; - } - SaveFileDialog sfd = new SaveFileDialog {FileName = "Evolutions.txt", Filter = "Text File|*.txt"}; - - SystemSounds.Asterisk.Play(); - if (sfd.ShowDialog() == DialogResult.OK) - { - string path = sfd.FileName; - File.WriteAllText(path, result, Encoding.Unicode); - } - dumping = false; - } - - private void formClosing(object sender, FormClosingEventArgs e) - { - setList(); - } - - private void changeMethod(object sender, EventArgs e) - { - int op = Array.IndexOf(mb, sender as ComboBox); - ushort[] methodCase = - { - 0,0,0,0,1,0,2,0,2,1,1,1,1,1,1,1,5,2,2,2,2,3,4,1,1,0,0,0, // 27, Past Methods - // New Methods - 1, // 28 - Dark Type Party - 6, // 29 - Affection + MoveType - 1, // 30 - UpsideDown 3DS - 1, // 31 - Overworld Rain - 1, // 32 - Level @ Day - 1, // 33 - Level @ Night - 1, // 34 - Gender Branch - 1, // 35 - UNUSED - 7, 7, 7, // Version Specific - 1, - 1, // 40 - Level Up with Condition (???) - 1, // 41 - Level Up with Condition (???) - 2, // 42 - Use Item with Condition (???) - }; - - pb[op].Visible = pic[op].Visible = rb[op].Visible = fb[op].Visible = lb[op].Visible = mb[op].SelectedIndex > 0; - - pb[op].Items.Clear(); - int cv = methodCase[mb[op].SelectedIndex]; - switch (cv) - { - case 0: // No Parameter Required - { pb[op].Visible = false; pb[op].Items.Add(""); break; } - case 1: // Level - { pb[op].Visible = false; pb[op].Items.Add(""); break; } - case 2: // Items - { foreach (string t in itemlist) pb[op].Items.Add(t); break; } - case 3: // Moves - { foreach (string t in movelist) pb[op].Items.Add(t); break; } - case 4: // Species - { for (int i = 0; i < sortedspecies.Length; i++) pb[op].Items.Add(specieslist[i]); break; } - case 5: // 0-255 (Beauty) - { for (int i = 0; i <= 255; i++) pb[op].Items.Add(i.ToString()); break; } - case 6: - { foreach (string t in typelist) pb[op].Items.Add(t); break; } - case 7: // Version - { for (int i = 0; i <= 255; i++) pb[op].Items.Add(i.ToString()); break; } - } - pb[op].SelectedIndex = 0; - } - private void changeInto(object sender, EventArgs e) - { - if (loading || dumping) - return; - int index = sender is ComboBox ? Array.IndexOf(rb, sender) : Array.IndexOf(fb, sender); - int species = Array.IndexOf(specieslist, rb[index].Text); - int form = (int)fb[index].Value; - if (form == -1) - form = baseForms[species]; - - pic[index].Image = WinFormsUtil.getSprite(species, form, 0, 0, Main.Config); - } - } -} diff --git a/pk3DS/Subforms/Gen7/Experimental/OWSE7.Designer.cs b/pk3DS/Subforms/Gen7/Experimental/OWSE7.Designer.cs deleted file mode 100644 index b8b132a191..0000000000 --- a/pk3DS/Subforms/Gen7/Experimental/OWSE7.Designer.cs +++ /dev/null @@ -1,287 +0,0 @@ -namespace pk3DS -{ - partial class OWSE7 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.L_Location = new System.Windows.Forms.Label(); - this.CB_LocationID = new System.Windows.Forms.ComboBox(); - this.tabControl1 = new System.Windows.Forms.TabControl(); - this.tab_7_ZS = new System.Windows.Forms.TabPage(); - this.RTB_7_Parse = new System.Windows.Forms.RichTextBox(); - this.NUD_7_Count = new System.Windows.Forms.NumericUpDown(); - this.L_7_Count = new System.Windows.Forms.Label(); - this.RTB_7_Script = new System.Windows.Forms.RichTextBox(); - this.RTB_7_Raw = new System.Windows.Forms.RichTextBox(); - this.tab_8_ZI = new System.Windows.Forms.TabPage(); - this.RTB_8_Parse = new System.Windows.Forms.RichTextBox(); - this.NUD_8_Count = new System.Windows.Forms.NumericUpDown(); - this.L_8_Count = new System.Windows.Forms.Label(); - this.RTB_8_Script = new System.Windows.Forms.RichTextBox(); - this.RTB_8_Raw = new System.Windows.Forms.RichTextBox(); - this.L_7_Info = new System.Windows.Forms.Label(); - this.L_8_Info = new System.Windows.Forms.Label(); - this.tabControl1.SuspendLayout(); - this.tab_7_ZS.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_7_Count)).BeginInit(); - this.tab_8_ZI.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_8_Count)).BeginInit(); - this.SuspendLayout(); - // - // L_Location - // - this.L_Location.AutoSize = true; - this.L_Location.Location = new System.Drawing.Point(12, 9); - this.L_Location.Name = "L_Location"; - this.L_Location.Size = new System.Drawing.Size(28, 13); - this.L_Location.TabIndex = 433; - this.L_Location.Text = "Loc:"; - // - // CB_LocationID - // - this.CB_LocationID.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_LocationID.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_LocationID.FormattingEnabled = true; - this.CB_LocationID.Location = new System.Drawing.Point(46, 6); - this.CB_LocationID.Name = "CB_LocationID"; - this.CB_LocationID.Size = new System.Drawing.Size(164, 21); - this.CB_LocationID.TabIndex = 432; - this.CB_LocationID.SelectedIndexChanged += new System.EventHandler(this.CB_LocationID_SelectedIndexChanged); - // - // tabControl1 - // - this.tabControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tabControl1.Controls.Add(this.tab_7_ZS); - this.tabControl1.Controls.Add(this.tab_8_ZI); - this.tabControl1.Location = new System.Drawing.Point(15, 33); - this.tabControl1.Name = "tabControl1"; - this.tabControl1.SelectedIndex = 0; - this.tabControl1.Size = new System.Drawing.Size(460, 466); - this.tabControl1.TabIndex = 434; - // - // tab_7_ZS - // - this.tab_7_ZS.Controls.Add(this.L_7_Info); - this.tab_7_ZS.Controls.Add(this.RTB_7_Parse); - this.tab_7_ZS.Controls.Add(this.NUD_7_Count); - this.tab_7_ZS.Controls.Add(this.L_7_Count); - this.tab_7_ZS.Controls.Add(this.RTB_7_Script); - this.tab_7_ZS.Controls.Add(this.RTB_7_Raw); - this.tab_7_ZS.Location = new System.Drawing.Point(4, 22); - this.tab_7_ZS.Name = "tab_7_ZS"; - this.tab_7_ZS.Padding = new System.Windows.Forms.Padding(3); - this.tab_7_ZS.Size = new System.Drawing.Size(452, 440); - this.tab_7_ZS.TabIndex = 0; - this.tab_7_ZS.Text = "7.ZS"; - this.tab_7_ZS.UseVisualStyleBackColor = true; - // - // RTB_7_Parse - // - this.RTB_7_Parse.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.RTB_7_Parse.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.RTB_7_Parse.Location = new System.Drawing.Point(208, 207); - this.RTB_7_Parse.Name = "RTB_7_Parse"; - this.RTB_7_Parse.ReadOnly = true; - this.RTB_7_Parse.Size = new System.Drawing.Size(238, 225); - this.RTB_7_Parse.TabIndex = 437; - this.RTB_7_Parse.Text = "Script CMDs"; - // - // NUD_7_Count - // - this.NUD_7_Count.Location = new System.Drawing.Point(140, 223); - this.NUD_7_Count.Name = "NUD_7_Count"; - this.NUD_7_Count.Size = new System.Drawing.Size(62, 20); - this.NUD_7_Count.TabIndex = 436; - this.NUD_7_Count.ValueChanged += new System.EventHandler(this.NUD_7_Count_ValueChanged); - // - // L_7_Count - // - this.L_7_Count.AutoSize = true; - this.L_7_Count.Location = new System.Drawing.Point(137, 207); - this.L_7_Count.Name = "L_7_Count"; - this.L_7_Count.Size = new System.Drawing.Size(41, 13); - this.L_7_Count.TabIndex = 435; - this.L_7_Count.Text = "Count7"; - // - // RTB_7_Script - // - this.RTB_7_Script.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left))); - this.RTB_7_Script.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.RTB_7_Script.Location = new System.Drawing.Point(6, 207); - this.RTB_7_Script.Name = "RTB_7_Script"; - this.RTB_7_Script.ReadOnly = true; - this.RTB_7_Script.Size = new System.Drawing.Size(125, 225); - this.RTB_7_Script.TabIndex = 431; - this.RTB_7_Script.Text = "Script CMDs"; - // - // RTB_7_Raw - // - this.RTB_7_Raw.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.RTB_7_Raw.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.RTB_7_Raw.Location = new System.Drawing.Point(6, 6); - this.RTB_7_Raw.Name = "RTB_7_Raw"; - this.RTB_7_Raw.ReadOnly = true; - this.RTB_7_Raw.Size = new System.Drawing.Size(440, 195); - this.RTB_7_Raw.TabIndex = 430; - this.RTB_7_Raw.Text = "Raw Data"; - // - // tab_8_ZI - // - this.tab_8_ZI.Controls.Add(this.L_8_Info); - this.tab_8_ZI.Controls.Add(this.RTB_8_Parse); - this.tab_8_ZI.Controls.Add(this.NUD_8_Count); - this.tab_8_ZI.Controls.Add(this.L_8_Count); - this.tab_8_ZI.Controls.Add(this.RTB_8_Script); - this.tab_8_ZI.Controls.Add(this.RTB_8_Raw); - this.tab_8_ZI.Location = new System.Drawing.Point(4, 22); - this.tab_8_ZI.Name = "tab_8_ZI"; - this.tab_8_ZI.Padding = new System.Windows.Forms.Padding(3); - this.tab_8_ZI.Size = new System.Drawing.Size(452, 440); - this.tab_8_ZI.TabIndex = 1; - this.tab_8_ZI.Text = "8.ZI"; - this.tab_8_ZI.UseVisualStyleBackColor = true; - // - // RTB_8_Parse - // - this.RTB_8_Parse.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.RTB_8_Parse.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.RTB_8_Parse.Location = new System.Drawing.Point(208, 207); - this.RTB_8_Parse.Name = "RTB_8_Parse"; - this.RTB_8_Parse.ReadOnly = true; - this.RTB_8_Parse.Size = new System.Drawing.Size(238, 225); - this.RTB_8_Parse.TabIndex = 438; - this.RTB_8_Parse.Text = "Script CMDs"; - // - // NUD_8_Count - // - this.NUD_8_Count.Location = new System.Drawing.Point(140, 223); - this.NUD_8_Count.Name = "NUD_8_Count"; - this.NUD_8_Count.Size = new System.Drawing.Size(62, 20); - this.NUD_8_Count.TabIndex = 435; - this.NUD_8_Count.ValueChanged += new System.EventHandler(this.NUD_8_Count_ValueChanged); - // - // L_8_Count - // - this.L_8_Count.AutoSize = true; - this.L_8_Count.Location = new System.Drawing.Point(137, 207); - this.L_8_Count.Name = "L_8_Count"; - this.L_8_Count.Size = new System.Drawing.Size(41, 13); - this.L_8_Count.TabIndex = 434; - this.L_8_Count.Text = "Count8"; - // - // RTB_8_Script - // - this.RTB_8_Script.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left))); - this.RTB_8_Script.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.RTB_8_Script.Location = new System.Drawing.Point(6, 207); - this.RTB_8_Script.Name = "RTB_8_Script"; - this.RTB_8_Script.ReadOnly = true; - this.RTB_8_Script.Size = new System.Drawing.Size(125, 225); - this.RTB_8_Script.TabIndex = 433; - this.RTB_8_Script.Text = "Script CMDs"; - // - // RTB_8_Raw - // - this.RTB_8_Raw.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.RTB_8_Raw.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.RTB_8_Raw.Location = new System.Drawing.Point(6, 6); - this.RTB_8_Raw.Name = "RTB_8_Raw"; - this.RTB_8_Raw.ReadOnly = true; - this.RTB_8_Raw.Size = new System.Drawing.Size(440, 195); - this.RTB_8_Raw.TabIndex = 432; - this.RTB_8_Raw.Text = "Raw Data"; - // - // L_7_Info - // - this.L_7_Info.AutoSize = true; - this.L_7_Info.Location = new System.Drawing.Point(137, 246); - this.L_7_Info.Name = "L_7_Info"; - this.L_7_Info.Size = new System.Drawing.Size(41, 13); - this.L_7_Info.TabIndex = 438; - this.L_7_Info.Text = "Count7"; - // - // L_8_Info - // - this.L_8_Info.AutoSize = true; - this.L_8_Info.Location = new System.Drawing.Point(137, 246); - this.L_8_Info.Name = "L_8_Info"; - this.L_8_Info.Size = new System.Drawing.Size(41, 13); - this.L_8_Info.TabIndex = 439; - this.L_8_Info.Text = "Count8"; - // - // OWSE7 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(484, 511); - this.Controls.Add(this.tabControl1); - this.Controls.Add(this.L_Location); - this.Controls.Add(this.CB_LocationID); - this.Name = "OWSE7"; - this.Text = "OWSE7"; - this.tabControl1.ResumeLayout(false); - this.tab_7_ZS.ResumeLayout(false); - this.tab_7_ZS.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_7_Count)).EndInit(); - this.tab_8_ZI.ResumeLayout(false); - this.tab_8_ZI.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_8_Count)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - private System.Windows.Forms.Label L_Location; - private System.Windows.Forms.ComboBox CB_LocationID; - private System.Windows.Forms.TabControl tabControl1; - private System.Windows.Forms.TabPage tab_7_ZS; - private System.Windows.Forms.TabPage tab_8_ZI; - private System.Windows.Forms.RichTextBox RTB_7_Script; - private System.Windows.Forms.RichTextBox RTB_7_Raw; - private System.Windows.Forms.RichTextBox RTB_8_Script; - private System.Windows.Forms.RichTextBox RTB_8_Raw; - private System.Windows.Forms.Label L_8_Count; - private System.Windows.Forms.Label L_7_Count; - private System.Windows.Forms.NumericUpDown NUD_8_Count; - private System.Windows.Forms.NumericUpDown NUD_7_Count; - private System.Windows.Forms.RichTextBox RTB_7_Parse; - private System.Windows.Forms.RichTextBox RTB_8_Parse; - private System.Windows.Forms.Label L_7_Info; - private System.Windows.Forms.Label L_8_Info; - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/Experimental/OWSE7.cs b/pk3DS/Subforms/Gen7/Experimental/OWSE7.cs deleted file mode 100644 index 697e6d66e2..0000000000 --- a/pk3DS/Subforms/Gen7/Experimental/OWSE7.cs +++ /dev/null @@ -1,171 +0,0 @@ -using System; -using System.Linq; -using System.Windows.Forms; - -using pk3DS.Core; -using pk3DS.Core.CTR; -using pk3DS.Core.Structures; - -namespace pk3DS -{ - public partial class OWSE7 : Form - { - private readonly lzGARCFile EncounterData; - private readonly lzGARCFile WorldData; - private readonly lzGARCFile ZoneData; - public OWSE7(lzGARCFile ed, lzGARCFile zd, lzGARCFile wd) - { - EncounterData = ed; - ZoneData = zd; - WorldData = wd; - - locationList = Main.Config.getText(TextName.metlist_000000); - locationList = SMWE.GetGoodLocationList(locationList); - - InitializeComponent(); - - var zdFiles = ZoneData.Files; - zoneData = zdFiles[0]; - worldData = zdFiles[1]; - loadData(); - } - - private readonly byte[] zoneData; - private byte[] worldData; - private readonly string[] locationList; - - private void loadData() - { - // get zonedata array - var zd = ZoneData7.GetArray(zoneData); - - string[] locations = zd.Select((z, i) => $"{i:000} - {locationList[z.ParentMap]}").ToArray(); - CB_LocationID.Items.AddRange(locations); - CB_LocationID.SelectedIndex = 0; - } - - private void CB_LocationID_SelectedIndexChanged(object sender, EventArgs e) - { - setEntry(); - entry = CB_LocationID.SelectedIndex; - getEntry(); - } - - private int entry = -1; - private void setEntry() - { - if (entry < 0) - return; - - // research only, no set - } - - private bool loading = false; - private World Map; - private void getEntry() - { - Console.WriteLine($"Loading {CB_LocationID.Text}"); - int index = entry*11; - // 00 - ED (???) - // 01 - BG (???) - // 02 - TR (???) - // 03 - AC (???) - // 04 - AS (???) - // 05 - ??? - // 06 - AE (Area Environment) - // 07 - ZS (Zone Script) - // 08 - ZI (Zone Info) - // 09 - EA (Encounter Area) - // 10 - BG (???) - - if (index > EncounterData.FileCount) - { - Console.WriteLine("Out of range."); - tabControl1.Visible = false; - return; - } - tabControl1.Visible = true; - - Map = new World(EncounterData, entry); - loading = true; - - NUD_7_Count.Maximum = Map.ZoneScripts.Length; - NUD_7_Count.Value = Math.Min(Map.ZoneScripts.Length, 1); - - NUD_8_Count.Maximum = Map.ZoneInfoScripts.Length; - NUD_8_Count.Value = Math.Min(Map.ZoneInfoScripts.Length, 1); - loading = false; - - NUD_7_Count_ValueChanged(NUD_7_Count, null); - NUD_8_Count_ValueChanged(NUD_8_Count, null); - } - - private class World - { - private byte[][] _7; - private byte[][] _8; - - private bool HasZS => _7 != null; - private bool HasZI => _8 != null; - public Script[] ZoneScripts; - public Script[] ZoneInfoScripts; - - public World(lzGARCFile garc, int worldID) - { - int index = worldID*11; - _7 = mini.unpackMini(garc[index + 7], "ZS"); - _8 = mini.unpackMini(garc[index + 8], "ZI"); - - ZoneScripts = HasZS ? _7.Select(arr => new Script(arr)).ToArray() : new Script[0]; - ZoneInfoScripts = HasZI ? _8.Select(arr => new Script(arr)).ToArray() : new Script[0]; - } - } - - private void NUD_7_Count_ValueChanged(object sender, EventArgs e) - { - if (loading) - return; - - bool vis = ((sender as NumericUpDown)?.Value ?? 0) != 0; - RTB_7_Raw.Visible = RTB_7_Script.Visible = L_7_Info.Visible = RTB_7_Parse.Visible = vis; - if (!vis) - return; - - var script = Map.ZoneScripts[(int)NUD_7_Count.Value - 1]; - L_7_Count.Text = $"Files: {Map.ZoneScripts.Length}"; - RTB_7_Raw.Lines = Scripts.getHexLines(script.Raw, 16); - RTB_7_Script.Lines = Scripts.getHexLines(script.DecompressedInstructions); - RTB_7_Parse.Lines = script.ParseScript; - - string[] lines = - { - "Commands:" + Environment.NewLine + RTB_7_Script.Lines.Length, - "CBytes:" + Environment.NewLine + script.CompressedBytes.Length, - }; - L_7_Info.Text = string.Join(Environment.NewLine, lines); - } - private void NUD_8_Count_ValueChanged(object sender, EventArgs e) - { - if (loading) - return; - - bool vis = ((sender as NumericUpDown)?.Value ?? 0) != 0; - RTB_8_Raw.Visible = RTB_8_Script.Visible = L_8_Info.Visible = RTB_8_Parse.Visible = vis; - if (!vis) - return; - - var script = Map.ZoneInfoScripts[(int)NUD_8_Count.Value - 1]; - L_8_Count.Text = $"Files: {Map.ZoneInfoScripts.Length}"; - RTB_8_Raw.Lines = Scripts.getHexLines(script.Raw, 16); - RTB_8_Script.Lines = Scripts.getHexLines(script.DecompressedInstructions); - RTB_8_Parse.Lines = script.ParseScript; - - string[] lines = - { - "Commands:" + Environment.NewLine + RTB_8_Script.Lines.Length, - "CBytes:" + Environment.NewLine + script.CompressedBytes.Length, - }; - L_8_Info.Text = string.Join(Environment.NewLine, lines); - } - } -} diff --git a/pk3DS/Subforms/Gen7/ItemEditor7.Designer.cs b/pk3DS/Subforms/Gen7/ItemEditor7.Designer.cs deleted file mode 100644 index 1055ce1429..0000000000 --- a/pk3DS/Subforms/Gen7/ItemEditor7.Designer.cs +++ /dev/null @@ -1,133 +0,0 @@ -namespace pk3DS -{ - partial class ItemEditor7 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.CB_Item = new System.Windows.Forms.ComboBox(); - this.L_Item = new System.Windows.Forms.Label(); - this.RTB = new System.Windows.Forms.RichTextBox(); - this.L_Index = new System.Windows.Forms.Label(); - this.Grid = new System.Windows.Forms.PropertyGrid(); - this.B_Table = new System.Windows.Forms.Button(); - this.SuspendLayout(); - // - // CB_Item - // - this.CB_Item.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; - this.CB_Item.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Item.DropDownWidth = 120; - this.CB_Item.FormattingEnabled = true; - this.CB_Item.Location = new System.Drawing.Point(71, 10); - this.CB_Item.Name = "CB_Item"; - this.CB_Item.Size = new System.Drawing.Size(144, 21); - this.CB_Item.TabIndex = 1; - this.CB_Item.SelectedIndexChanged += new System.EventHandler(this.changeEntry); - // - // L_Item - // - this.L_Item.Location = new System.Drawing.Point(12, 10); - this.L_Item.Name = "L_Item"; - this.L_Item.Size = new System.Drawing.Size(51, 21); - this.L_Item.TabIndex = 2; - this.L_Item.Text = "Item:"; - this.L_Item.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // RTB - // - this.RTB.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.RTB.Location = new System.Drawing.Point(11, 37); - this.RTB.Name = "RTB"; - this.RTB.ReadOnly = true; - this.RTB.Size = new System.Drawing.Size(316, 51); - this.RTB.TabIndex = 38; - this.RTB.Text = ""; - // - // L_Index - // - this.L_Index.AutoSize = true; - this.L_Index.Location = new System.Drawing.Point(221, 14); - this.L_Index.Name = "L_Index"; - this.L_Index.Size = new System.Drawing.Size(39, 13); - this.L_Index.TabIndex = 46; - this.L_Index.Text = "Index: "; - // - // Grid - // - this.Grid.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.Grid.LineColor = System.Drawing.SystemColors.ControlDark; - this.Grid.Location = new System.Drawing.Point(12, 94); - this.Grid.Name = "Grid"; - this.Grid.Size = new System.Drawing.Size(316, 280); - this.Grid.TabIndex = 47; - // - // B_Table - // - this.B_Table.Location = new System.Drawing.Point(253, 94); - this.B_Table.Name = "B_Table"; - this.B_Table.Size = new System.Drawing.Size(75, 23); - this.B_Table.TabIndex = 48; - this.B_Table.Text = "Export Table"; - this.B_Table.UseVisualStyleBackColor = true; - this.B_Table.Click += new System.EventHandler(this.B_Table_Click); - // - // ItemEditor7 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(339, 381); - this.Controls.Add(this.B_Table); - this.Controls.Add(this.Grid); - this.Controls.Add(this.L_Index); - this.Controls.Add(this.RTB); - this.Controls.Add(this.L_Item); - this.Controls.Add(this.CB_Item); - this.MaximizeBox = false; - this.MaximumSize = new System.Drawing.Size(355, 1000); - this.MinimumSize = new System.Drawing.Size(355, 420); - this.Name = "ItemEditor7"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Item Editor"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.formClosing); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.ComboBox CB_Item; - private System.Windows.Forms.Label L_Item; - private System.Windows.Forms.RichTextBox RTB; - private System.Windows.Forms.Label L_Index; - private System.Windows.Forms.PropertyGrid Grid; - private System.Windows.Forms.Button B_Table; - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/ItemEditor7.cs b/pk3DS/Subforms/Gen7/ItemEditor7.cs deleted file mode 100644 index 7436771fa3..0000000000 --- a/pk3DS/Subforms/Gen7/ItemEditor7.cs +++ /dev/null @@ -1,84 +0,0 @@ -using System; -using System.IO; -using System.Linq; -using System.Windows.Forms; - -using pk3DS.Core; -using pk3DS.Core.Structures; - -namespace pk3DS -{ - public partial class ItemEditor7 : Form - { - public ItemEditor7(byte[][] infiles) - { - files = infiles; - itemlist[0] = ""; - - InitializeComponent(); - Setup(); - } - - private readonly byte[][] files; - private readonly string[] itemlist = Main.Config.getText(TextName.ItemNames); - private readonly string[] itemflavor = Main.Config.getText(TextName.ItemFlavor); - - private void Setup() - { - foreach (string s in itemlist) CB_Item.Items.Add(s); - CB_Item.SelectedIndex = 1; - } - private int entry = -1; - private void changeEntry(object sender, EventArgs e) - { - setEntry(); - entry = CB_Item.SelectedIndex; - L_Index.Text = $"Index: {entry:000}"; - getEntry(); - } - private void getEntry() - { - if (entry < 1) return; - Grid.SelectedObject = new Item(files[entry]); - - RTB.Text = itemflavor[entry].Replace("\\n", Environment.NewLine); - } - private void setEntry() - { - if (entry < 1) return; - files[entry] = ((Item)Grid.SelectedObject).Write(); - } - private void formClosing(object sender, FormClosingEventArgs e) - { - setEntry(); - } - - private static readonly byte[] ItemIconTableSignature = - { - 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, - 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x01, 0x01, 0x00 - }; - - private static int getItemMapOffset() - { - if (Main.ExeFSPath == null) { WinFormsUtil.Alert("No exeFS code to load."); return -1; } - string[] exefsFiles = Directory.GetFiles(Main.ExeFSPath); - if (!File.Exists(exefsFiles[0]) || !Path.GetFileNameWithoutExtension(exefsFiles[0]).Contains("code")) { WinFormsUtil.Alert("No .code.bin detected."); return -1; } - byte[] data = File.ReadAllBytes(exefsFiles[0]); - - byte[] reference = ItemIconTableSignature; - - int ptr = Util.IndexOfBytes(data, reference, 0x400000, 0) - 2 + reference.Length; - return ptr; - } - - private void B_Table_Click(object sender, EventArgs e) - { - var items = files.Select(z => new Item(z)); - Clipboard.SetText(TableUtil.GetTable(items, itemlist)); - System.Media.SystemSounds.Asterisk.Play(); - } - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/LevelUpEditor7.Designer.cs b/pk3DS/Subforms/Gen7/LevelUpEditor7.Designer.cs deleted file mode 100644 index 9c876c547b..0000000000 --- a/pk3DS/Subforms/Gen7/LevelUpEditor7.Designer.cs +++ /dev/null @@ -1,354 +0,0 @@ -namespace pk3DS -{ - partial class LevelUpEditor7 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.dgv = new System.Windows.Forms.DataGridView(); - this.CB_Species = new System.Windows.Forms.ComboBox(); - this.L_Species = new System.Windows.Forms.Label(); - this.B_RandAll = new System.Windows.Forms.Button(); - this.B_Dump = new System.Windows.Forms.Button(); - this.groupBox1 = new System.Windows.Forms.GroupBox(); - this.CHK_NoFixedDamage = new System.Windows.Forms.CheckBox(); - this.CHK_4MovesLvl1 = new System.Windows.Forms.CheckBox(); - this.L_Moves = new System.Windows.Forms.Label(); - this.NUD_Moves = new System.Windows.Forms.NumericUpDown(); - this.CHK_Expand = new System.Windows.Forms.CheckBox(); - this.L_Scale2 = new System.Windows.Forms.Label(); - this.NUD_Level = new System.Windows.Forms.NumericUpDown(); - this.L_Scale1 = new System.Windows.Forms.Label(); - this.CHK_Spread = new System.Windows.Forms.CheckBox(); - this.L_STAB = new System.Windows.Forms.Label(); - this.NUD_STAB = new System.Windows.Forms.NumericUpDown(); - this.CHK_STAB = new System.Windows.Forms.CheckBox(); - this.CHK_HMs = new System.Windows.Forms.CheckBox(); - this.PB_MonSprite = new System.Windows.Forms.PictureBox(); - ((System.ComponentModel.ISupportInitialize)(this.dgv)).BeginInit(); - this.groupBox1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Moves)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Level)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_STAB)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_MonSprite)).BeginInit(); - this.SuspendLayout(); - // - // dgv - // - this.dgv.AllowUserToResizeColumns = false; - this.dgv.AllowUserToResizeRows = false; - this.dgv.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.dgv.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgv.Location = new System.Drawing.Point(12, 41); - this.dgv.Name = "dgv"; - this.dgv.Size = new System.Drawing.Size(282, 359); - this.dgv.TabIndex = 0; - // - // CB_Species - // - this.CB_Species.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Species.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Species.FormattingEnabled = true; - this.CB_Species.Location = new System.Drawing.Point(66, 12); - this.CB_Species.Name = "CB_Species"; - this.CB_Species.Size = new System.Drawing.Size(121, 21); - this.CB_Species.TabIndex = 1; - this.CB_Species.SelectedIndexChanged += new System.EventHandler(this.changeEntry); - // - // L_Species - // - this.L_Species.AutoSize = true; - this.L_Species.Location = new System.Drawing.Point(12, 15); - this.L_Species.Name = "L_Species"; - this.L_Species.Size = new System.Drawing.Size(48, 13); - this.L_Species.TabIndex = 2; - this.L_Species.Text = "Species:"; - // - // B_RandAll - // - this.B_RandAll.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.B_RandAll.Location = new System.Drawing.Point(300, 10); - this.B_RandAll.Name = "B_RandAll"; - this.B_RandAll.Size = new System.Drawing.Size(95, 23); - this.B_RandAll.TabIndex = 4; - this.B_RandAll.Text = "Randomize!"; - this.B_RandAll.UseVisualStyleBackColor = true; - this.B_RandAll.Click += new System.EventHandler(this.B_RandAll_Click); - // - // B_Dump - // - this.B_Dump.Location = new System.Drawing.Point(248, 10); - this.B_Dump.Name = "B_Dump"; - this.B_Dump.Size = new System.Drawing.Size(46, 23); - this.B_Dump.TabIndex = 5; - this.B_Dump.Text = "Dump"; - this.B_Dump.UseVisualStyleBackColor = true; - this.B_Dump.Click += new System.EventHandler(this.B_Dump_Click); - // - // groupBox1 - // - this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Right))); - this.groupBox1.Controls.Add(this.CHK_NoFixedDamage); - this.groupBox1.Controls.Add(this.CHK_4MovesLvl1); - this.groupBox1.Controls.Add(this.L_Moves); - this.groupBox1.Controls.Add(this.NUD_Moves); - this.groupBox1.Controls.Add(this.CHK_Expand); - this.groupBox1.Controls.Add(this.L_Scale2); - this.groupBox1.Controls.Add(this.NUD_Level); - this.groupBox1.Controls.Add(this.L_Scale1); - this.groupBox1.Controls.Add(this.CHK_Spread); - this.groupBox1.Controls.Add(this.L_STAB); - this.groupBox1.Controls.Add(this.NUD_STAB); - this.groupBox1.Controls.Add(this.CHK_STAB); - this.groupBox1.Controls.Add(this.CHK_HMs); - this.groupBox1.Location = new System.Drawing.Point(300, 39); - this.groupBox1.Name = "groupBox1"; - this.groupBox1.Size = new System.Drawing.Size(95, 362); - this.groupBox1.TabIndex = 6; - this.groupBox1.TabStop = false; - this.groupBox1.Text = "Options"; - // - // CHK_NoFixedDamage - // - this.CHK_NoFixedDamage.AutoSize = true; - this.CHK_NoFixedDamage.Checked = true; - this.CHK_NoFixedDamage.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_NoFixedDamage.Location = new System.Drawing.Point(5, 271); - this.CHK_NoFixedDamage.Name = "CHK_NoFixedDamage"; - this.CHK_NoFixedDamage.Size = new System.Drawing.Size(90, 56); - this.CHK_NoFixedDamage.TabIndex = 13; - this.CHK_NoFixedDamage.Text = "No Fixed\nDamage\nMoves\n(Dragon Rage\n+ Sonic Boom)"; - this.CHK_NoFixedDamage.UseVisualStyleBackColor = true; - // - // CHK_4MovesLvl1 - // - this.CHK_4MovesLvl1.AutoSize = true; - this.CHK_4MovesLvl1.Location = new System.Drawing.Point(5, 159); - this.CHK_4MovesLvl1.Name = "CHK_4MovesLvl1"; - this.CHK_4MovesLvl1.Size = new System.Drawing.Size(70, 30); - this.CHK_4MovesLvl1.TabIndex = 12; - this.CHK_4MovesLvl1.Text = "Start with\n4 Moves"; - this.CHK_4MovesLvl1.UseVisualStyleBackColor = true; - // - // L_Moves - // - this.L_Moves.AutoSize = true; - this.L_Moves.Location = new System.Drawing.Point(10, 130); - this.L_Moves.Name = "L_Moves"; - this.L_Moves.Size = new System.Drawing.Size(42, 13); - this.L_Moves.TabIndex = 10; - this.L_Moves.Text = "Moves:"; - // - // NUD_Moves - // - this.NUD_Moves.Enabled = false; - this.NUD_Moves.Location = new System.Drawing.Point(53, 128); - this.NUD_Moves.Maximum = new decimal(new int[] { - 75, - 0, - 0, - 0}); - this.NUD_Moves.Minimum = new decimal(new int[] { - 25, - 0, - 0, - 0}); - this.NUD_Moves.Name = "NUD_Moves"; - this.NUD_Moves.Size = new System.Drawing.Size(36, 20); - this.NUD_Moves.TabIndex = 9; - this.NUD_Moves.Value = new decimal(new int[] { - 25, - 0, - 0, - 0}); - // - // CHK_Expand - // - this.CHK_Expand.AutoSize = true; - this.CHK_Expand.Location = new System.Drawing.Point(5, 110); - this.CHK_Expand.Name = "CHK_Expand"; - this.CHK_Expand.Size = new System.Drawing.Size(86, 17); - this.CHK_Expand.TabIndex = 8; - this.CHK_Expand.Text = "Expand Pool"; - this.CHK_Expand.UseVisualStyleBackColor = true; - // - // L_Scale2 - // - this.L_Scale2.AutoSize = true; - this.L_Scale2.Location = new System.Drawing.Point(2, 242); - this.L_Scale2.Name = "L_Scale2"; - this.L_Scale2.Size = new System.Drawing.Size(50, 13); - this.L_Scale2.TabIndex = 7; - this.L_Scale2.Text = "@ Level:"; - // - // NUD_Level - // - this.NUD_Level.Location = new System.Drawing.Point(54, 240); - this.NUD_Level.Minimum = new decimal(new int[] { - 16, - 0, - 0, - 0}); - this.NUD_Level.Name = "NUD_Level"; - this.NUD_Level.Size = new System.Drawing.Size(36, 20); - this.NUD_Level.TabIndex = 6; - this.NUD_Level.Value = new decimal(new int[] { - 75, - 0, - 0, - 0}); - // - // L_Scale1 - // - this.L_Scale1.AutoSize = true; - this.L_Scale1.Location = new System.Drawing.Point(5, 224); - this.L_Scale1.Name = "L_Scale1"; - this.L_Scale1.Size = new System.Drawing.Size(73, 13); - this.L_Scale1.TabIndex = 5; - this.L_Scale1.Text = "Stop Learning"; - // - // CHK_Spread - // - this.CHK_Spread.AutoSize = true; - this.CHK_Spread.Location = new System.Drawing.Point(5, 204); - this.CHK_Spread.Name = "CHK_Spread"; - this.CHK_Spread.Size = new System.Drawing.Size(95, 17); - this.CHK_Spread.TabIndex = 4; - this.CHK_Spread.Text = "Spread Evenly"; - this.CHK_Spread.UseVisualStyleBackColor = true; - // - // L_STAB - // - this.L_STAB.AutoSize = true; - this.L_STAB.Location = new System.Drawing.Point(6, 74); - this.L_STAB.Name = "L_STAB"; - this.L_STAB.Size = new System.Drawing.Size(46, 13); - this.L_STAB.TabIndex = 3; - this.L_STAB.Text = "% STAB"; - // - // NUD_STAB - // - this.NUD_STAB.Location = new System.Drawing.Point(53, 72); - this.NUD_STAB.Minimum = new decimal(new int[] { - 5, - 0, - 0, - 0}); - this.NUD_STAB.Name = "NUD_STAB"; - this.NUD_STAB.Size = new System.Drawing.Size(36, 20); - this.NUD_STAB.TabIndex = 2; - this.NUD_STAB.Value = new decimal(new int[] { - 52, - 0, - 0, - 0}); - // - // CHK_STAB - // - this.CHK_STAB.AutoSize = true; - this.CHK_STAB.Location = new System.Drawing.Point(5, 54); - this.CHK_STAB.Name = "CHK_STAB"; - this.CHK_STAB.Size = new System.Drawing.Size(87, 17); - this.CHK_STAB.TabIndex = 1; - this.CHK_STAB.Text = "Bias by Type"; - this.CHK_STAB.UseVisualStyleBackColor = true; - this.CHK_STAB.CheckedChanged += new System.EventHandler(this.CHK_TypeBias_CheckedChanged); - // - // CHK_HMs - // - this.CHK_HMs.AutoSize = true; - this.CHK_HMs.Location = new System.Drawing.Point(5, 19); - this.CHK_HMs.Name = "CHK_HMs"; - this.CHK_HMs.Size = new System.Drawing.Size(76, 17); - this.CHK_HMs.TabIndex = 0; - this.CHK_HMs.Text = "Allow HMs"; - this.CHK_HMs.UseVisualStyleBackColor = true; - // - // PB_MonSprite - // - this.PB_MonSprite.Location = new System.Drawing.Point(193, 5); - this.PB_MonSprite.Name = "PB_MonSprite"; - this.PB_MonSprite.Size = new System.Drawing.Size(40, 30); - this.PB_MonSprite.TabIndex = 90; - this.PB_MonSprite.TabStop = false; - // - // LevelUpEditor7 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(404, 412); - this.Controls.Add(this.PB_MonSprite); - this.Controls.Add(this.groupBox1); - this.Controls.Add(this.B_Dump); - this.Controls.Add(this.B_RandAll); - this.Controls.Add(this.L_Species); - this.Controls.Add(this.CB_Species); - this.Controls.Add(this.dgv); - this.MaximizeBox = false; - this.MinimumSize = new System.Drawing.Size(322, 450); - this.Name = "LevelUpEditor7"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Level Up Move Editor"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.formClosing); - ((System.ComponentModel.ISupportInitialize)(this.dgv)).EndInit(); - this.groupBox1.ResumeLayout(false); - this.groupBox1.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Moves)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Level)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_STAB)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_MonSprite)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.DataGridView dgv; - private System.Windows.Forms.ComboBox CB_Species; - private System.Windows.Forms.Label L_Species; - private System.Windows.Forms.Button B_RandAll; - private System.Windows.Forms.Button B_Dump; - private System.Windows.Forms.GroupBox groupBox1; - private System.Windows.Forms.CheckBox CHK_STAB; - private System.Windows.Forms.CheckBox CHK_HMs; - private System.Windows.Forms.Label L_STAB; - private System.Windows.Forms.NumericUpDown NUD_STAB; - private System.Windows.Forms.Label L_Scale2; - private System.Windows.Forms.NumericUpDown NUD_Level; - private System.Windows.Forms.Label L_Scale1; - private System.Windows.Forms.CheckBox CHK_Spread; - private System.Windows.Forms.Label L_Moves; - private System.Windows.Forms.NumericUpDown NUD_Moves; - private System.Windows.Forms.CheckBox CHK_Expand; - private System.Windows.Forms.PictureBox PB_MonSprite; - private System.Windows.Forms.CheckBox CHK_4MovesLvl1; - private System.Windows.Forms.CheckBox CHK_NoFixedDamage; - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/LevelUpEditor7.cs b/pk3DS/Subforms/Gen7/LevelUpEditor7.cs deleted file mode 100644 index 96b8e25a13..0000000000 --- a/pk3DS/Subforms/Gen7/LevelUpEditor7.cs +++ /dev/null @@ -1,224 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Drawing; -using System.IO; -using System.Linq; -using System.Media; -using System.Text; -using System.Windows.Forms; - -using pk3DS.Properties; - -using pk3DS.Core.Structures; -using pk3DS.Core; -using pk3DS.Core.Randomizers; - -namespace pk3DS -{ - public partial class LevelUpEditor7 : Form - { - public LevelUpEditor7(byte[][] infiles) - { - InitializeComponent(); - files = infiles; - string[] species = Main.Config.getText(TextName.SpeciesNames); - string[][] AltForms = Main.Config.Personal.getFormList(species, Main.Config.MaxSpeciesID); - string[] specieslist = Main.Config.Personal.getPersonalEntryList(AltForms, species, Main.Config.MaxSpeciesID, out baseForms, out formVal); - specieslist[0] = movelist[0] = ""; - - string[] sortedspecies = (string[])specieslist.Clone(); - Array.Resize(ref sortedspecies, Main.Config.MaxSpeciesID + 1); Array.Sort(sortedspecies); - setupDGV(); - - var newlist = new List(); - for (int i = 1; i <= Main.Config.MaxSpeciesID; i++) // add all species - newlist.Add(new WinFormsUtil.cbItem { Text = sortedspecies[i], Value = Array.IndexOf(specieslist, sortedspecies[i]) }); - for (int i = Main.Config.MaxSpeciesID + 1; i < specieslist.Length; i++) // add all forms - newlist.Add(new WinFormsUtil.cbItem { Text = specieslist[i], Value = i }); - - CB_Species.DisplayMember = "Text"; - CB_Species.ValueMember = "Value"; - CB_Species.DataSource = newlist; - CB_Species.SelectedIndex = 0; - } - - private readonly byte[][] files; - private int entry = -1; - private readonly string[] movelist = Main.Config.getText(TextName.MoveNames); - private bool dumping; - private readonly int[] baseForms, formVal; - private void setupDGV() - { - string[] sortedmoves = (string[])movelist.Clone(); - Array.Sort(sortedmoves); - DataGridViewColumn dgvLevel = new DataGridViewTextBoxColumn(); - { - dgvLevel.HeaderText = "Level"; - dgvLevel.DisplayIndex = 0; - dgvLevel.Width = 45; - dgvLevel.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; - } - DataGridViewComboBoxColumn dgvMove = new DataGridViewComboBoxColumn(); - { - dgvMove.HeaderText = "Move"; - dgvMove.DisplayIndex = 1; - for (int i = 0; i < movelist.Length; i++) - dgvMove.Items.Add(sortedmoves[i]); // add only the Names - - dgvMove.Width = 135; - dgvMove.FlatStyle = FlatStyle.Flat; - } - dgv.Columns.Add(dgvLevel); - dgv.Columns.Add(dgvMove); - } - - private Learnset pkm; - private void getList() - { - entry = WinFormsUtil.getIndex(CB_Species); - int s = baseForms[entry]; - int f = formVal[entry]; - if (entry <= Main.Config.MaxSpeciesID) - s = entry; - int[] specForm = { s, f }; - string filename = "_" + specForm[0] + (entry > Main.Config.MaxSpeciesID ? "_" + (specForm[1] + 1) : ""); - PB_MonSprite.Image = (Bitmap)Resources.ResourceManager.GetObject(filename); - - dgv.Rows.Clear(); - byte[] input = files[entry]; - if (input.Length <= 4) { files[entry] = BitConverter.GetBytes(-1); return; } - pkm = new Learnset7(input); - - dgv.Rows.Add(pkm.Count); - - // Fill Entries - for (int i = 0; i < pkm.Count; i++) - { - dgv.Rows[i].Cells[0].Value = pkm.Levels[i]; - dgv.Rows[i].Cells[1].Value = movelist[pkm.Moves[i]]; - } - - dgv.CancelEdit(); - } - private void setList() - { - if (entry < 1 || dumping) return; - List moves = new List(); - List levels = new List(); - for (int i = 0; i < dgv.Rows.Count - 1; i++) - { - int move = Array.IndexOf(movelist, dgv.Rows[i].Cells[1].Value); - if (move < 1) continue; - - moves.Add((short)move); - string level = (dgv.Rows[i].Cells[0].Value ?? 0).ToString(); - short lv; - short.TryParse(level, out lv); - if (lv > 100) lv = 100; - levels.Add(lv); - } - pkm.Moves = moves.ToArray(); - pkm.Levels = levels.ToArray(); - files[entry] = pkm.Write(); - } - - private void changeEntry(object sender, EventArgs e) - { - setList(); - getList(); - } - - private void B_RandAll_Click(object sender, EventArgs e) - { - setList(); - var sets = files.Select(z => new Learnset7(z)).ToArray(); - var banned = new List(new[] {165, 621, 464}.Concat(Legal.Z_Moves)); // Struggle, Hyperspace Fury, Dark Void - if (CHK_NoFixedDamage.Checked) - banned.AddRange(MoveRandomizer.FixedDamageMoves); - - var rand = new LearnsetRandomizer(Main.Config, sets) - { - Expand = CHK_Expand.Checked, - ExpandTo = (int) NUD_Moves.Value, - Spread = CHK_Spread.Checked, - SpreadTo = (int) NUD_Level.Value, - STAB = CHK_STAB.Checked, - rSTABPercent = NUD_STAB.Value, - STABFirst = CHK_STAB.Checked, - BannedMoves = banned, - Learn4Level1 = CHK_4MovesLvl1.Checked, - }; - rand.Execute(); - sets.Select(z => z.Write()).ToArray().CopyTo(files, 0); - getList(); - WinFormsUtil.Alert("All Pokémon's Level Up Moves have been randomized!"); - } - private void B_Dump_Click(object sender, EventArgs e) - { - if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Dump all Level Up Moves to Text File?")) - return; - - dumping = true; - string result = ""; - for (int i = 0; i < CB_Species.Items.Count; i++) - { - CB_Species.SelectedIndex = i; // Get new Species - result += "======" + Environment.NewLine + entry + " " + CB_Species.Text + Environment.NewLine + "======" + Environment.NewLine; - for (int j = 0; j < dgv.Rows.Count - 1; j++) - result += $"{dgv.Rows[j].Cells[0].Value} - {dgv.Rows[j].Cells[1].Value + Environment.NewLine}"; - - result += Environment.NewLine; - } - SaveFileDialog sfd = new SaveFileDialog {FileName = "Level Up Moves.txt", Filter = "Text File|*.txt"}; - - SystemSounds.Asterisk.Play(); - if (sfd.ShowDialog() == DialogResult.OK) - { - string path = sfd.FileName; - File.WriteAllText(path, result, Encoding.Unicode); - } - dumping = false; - } - - private void formClosing(object sender, FormClosingEventArgs e) - { - setList(); - } - - private void CHK_TypeBias_CheckedChanged(object sender, EventArgs e) - { - NUD_STAB.Enabled = CHK_STAB.Checked; - NUD_STAB.Value = CHK_STAB.Checked ? 52 : NUD_STAB.Minimum; - } - - public void calcStats() // Debug Function - { - Move[] MoveData = Main.Config.Moves; - int movectr = 0; - int max = 0; - int spec = 0; - int stab = 0; - for (int i = 0; i < Main.Config.MaxSpeciesID; i++) - { - byte[] movedata = files[i]; - int movecount = (movedata.Length - 4) / 4; - if (movecount == 65535) - continue; - movectr += movecount; // Average Moves - if (max < movecount) { max = movecount; spec = i; } // Max Moves (and species) - for (int m = 0; m < movedata.Length / 4; m++) - { - int move = BitConverter.ToUInt16(movedata, m*4); - if (move == 65535) - { - movectr--; - continue; - } - if (Main.SpeciesStat[i].Types.Contains(MoveData[move].Type)) - stab++; - } - } - WinFormsUtil.Alert($"Moves Learned: {movectr}\r\nMost Learned: {max} @ {spec}\r\nSTAB Count: {stab}"); - } - } -} diff --git a/pk3DS/Subforms/Gen7/MaisonEditor7.Designer.cs b/pk3DS/Subforms/Gen7/MaisonEditor7.Designer.cs deleted file mode 100644 index 56c5d7d327..0000000000 --- a/pk3DS/Subforms/Gen7/MaisonEditor7.Designer.cs +++ /dev/null @@ -1,492 +0,0 @@ -namespace pk3DS -{ - partial class MaisonEditor7 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.CB_Trainer = new System.Windows.Forms.ComboBox(); - this.CB_Pokemon = new System.Windows.Forms.ComboBox(); - this.L_Trainer = new System.Windows.Forms.Label(); - this.L_Pokemon = new System.Windows.Forms.Label(); - this.GB_Trainer = new System.Windows.Forms.GroupBox(); - this.L_Class = new System.Windows.Forms.Label(); - this.B_Remove = new System.Windows.Forms.Button(); - this.B_Set = new System.Windows.Forms.Button(); - this.LB_Choices = new System.Windows.Forms.ListBox(); - this.CB_Class = new System.Windows.Forms.ComboBox(); - this.GB_Pokemon = new System.Windows.Forms.GroupBox(); - this.L_Form = new System.Windows.Forms.Label(); - this.NUD_Form = new System.Windows.Forms.NumericUpDown(); - this.PB_PKM = new System.Windows.Forms.PictureBox(); - this.CHK_Spe = new System.Windows.Forms.CheckBox(); - this.CHK_SpD = new System.Windows.Forms.CheckBox(); - this.CHK_SpA = new System.Windows.Forms.CheckBox(); - this.CHK_DEF = new System.Windows.Forms.CheckBox(); - this.CHK_ATK = new System.Windows.Forms.CheckBox(); - this.CHK_HP = new System.Windows.Forms.CheckBox(); - this.L_Species = new System.Windows.Forms.Label(); - this.L_Item = new System.Windows.Forms.Label(); - this.L_Nature = new System.Windows.Forms.Label(); - this.L_Moves = new System.Windows.Forms.Label(); - this.CB_Item = new System.Windows.Forms.ComboBox(); - this.CB_Nature = new System.Windows.Forms.ComboBox(); - this.CB_Move4 = new System.Windows.Forms.ComboBox(); - this.CB_Move2 = new System.Windows.Forms.ComboBox(); - this.CB_Move3 = new System.Windows.Forms.ComboBox(); - this.CB_Move1 = new System.Windows.Forms.ComboBox(); - this.CB_Species = new System.Windows.Forms.ComboBox(); - this.B_DumpPKs = new System.Windows.Forms.Button(); - this.DumpTRs = new System.Windows.Forms.Button(); - this.GB_Trainer.SuspendLayout(); - this.GB_Pokemon.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Form)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_PKM)).BeginInit(); - this.SuspendLayout(); - // - // CB_Trainer - // - this.CB_Trainer.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Trainer.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Trainer.FormattingEnabled = true; - this.CB_Trainer.Location = new System.Drawing.Point(67, 8); - this.CB_Trainer.Name = "CB_Trainer"; - this.CB_Trainer.Size = new System.Drawing.Size(121, 21); - this.CB_Trainer.TabIndex = 0; - this.CB_Trainer.SelectedIndexChanged += new System.EventHandler(this.changeTrainer); - // - // CB_Pokemon - // - this.CB_Pokemon.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Pokemon.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Pokemon.FormattingEnabled = true; - this.CB_Pokemon.Location = new System.Drawing.Point(361, 8); - this.CB_Pokemon.Name = "CB_Pokemon"; - this.CB_Pokemon.Size = new System.Drawing.Size(106, 21); - this.CB_Pokemon.TabIndex = 1; - this.CB_Pokemon.SelectedIndexChanged += new System.EventHandler(this.changePokemon); - // - // L_Trainer - // - this.L_Trainer.AutoSize = true; - this.L_Trainer.Location = new System.Drawing.Point(18, 11); - this.L_Trainer.Name = "L_Trainer"; - this.L_Trainer.Size = new System.Drawing.Size(43, 13); - this.L_Trainer.TabIndex = 2; - this.L_Trainer.Text = "Trainer:"; - // - // L_Pokemon - // - this.L_Pokemon.AutoSize = true; - this.L_Pokemon.Location = new System.Drawing.Point(300, 11); - this.L_Pokemon.Name = "L_Pokemon"; - this.L_Pokemon.Size = new System.Drawing.Size(55, 13); - this.L_Pokemon.TabIndex = 3; - this.L_Pokemon.Text = "Pokémon:"; - // - // GB_Trainer - // - this.GB_Trainer.Controls.Add(this.L_Class); - this.GB_Trainer.Controls.Add(this.B_Remove); - this.GB_Trainer.Controls.Add(this.B_Set); - this.GB_Trainer.Controls.Add(this.LB_Choices); - this.GB_Trainer.Controls.Add(this.CB_Class); - this.GB_Trainer.Location = new System.Drawing.Point(12, 33); - this.GB_Trainer.Name = "GB_Trainer"; - this.GB_Trainer.Size = new System.Drawing.Size(276, 187); - this.GB_Trainer.TabIndex = 4; - this.GB_Trainer.TabStop = false; - this.GB_Trainer.Text = "Trainer Summary"; - // - // L_Class - // - this.L_Class.AutoSize = true; - this.L_Class.Location = new System.Drawing.Point(14, 23); - this.L_Class.Name = "L_Class"; - this.L_Class.Size = new System.Drawing.Size(35, 13); - this.L_Class.TabIndex = 5; - this.L_Class.Text = "Class:"; - // - // B_Remove - // - this.B_Remove.Location = new System.Drawing.Point(182, 158); - this.B_Remove.Name = "B_Remove"; - this.B_Remove.Size = new System.Drawing.Size(62, 23); - this.B_Remove.TabIndex = 4; - this.B_Remove.Text = "[X] Delete"; - this.B_Remove.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.B_Remove.UseVisualStyleBackColor = true; - this.B_Remove.Click += new System.EventHandler(this.B_Remove_Click); - // - // B_Set - // - this.B_Set.Location = new System.Drawing.Point(182, 47); - this.B_Set.Name = "B_Set"; - this.B_Set.Size = new System.Drawing.Size(62, 23); - this.B_Set.TabIndex = 2; - this.B_Set.Text = "[<] Set"; - this.B_Set.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.B_Set.UseVisualStyleBackColor = true; - this.B_Set.Click += new System.EventHandler(this.B_Set_Click); - // - // LB_Choices - // - this.LB_Choices.FormattingEnabled = true; - this.LB_Choices.Location = new System.Drawing.Point(9, 47); - this.LB_Choices.Name = "LB_Choices"; - this.LB_Choices.Size = new System.Drawing.Size(167, 134); - this.LB_Choices.TabIndex = 1; - this.LB_Choices.SelectedIndexChanged += new System.EventHandler(this.B_View_Click); - // - // CB_Class - // - this.CB_Class.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Class.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Class.FormattingEnabled = true; - this.CB_Class.Location = new System.Drawing.Point(55, 20); - this.CB_Class.Name = "CB_Class"; - this.CB_Class.Size = new System.Drawing.Size(121, 21); - this.CB_Class.TabIndex = 0; - // - // GB_Pokemon - // - this.GB_Pokemon.Controls.Add(this.L_Form); - this.GB_Pokemon.Controls.Add(this.NUD_Form); - this.GB_Pokemon.Controls.Add(this.PB_PKM); - this.GB_Pokemon.Controls.Add(this.CHK_Spe); - this.GB_Pokemon.Controls.Add(this.CHK_SpD); - this.GB_Pokemon.Controls.Add(this.CHK_SpA); - this.GB_Pokemon.Controls.Add(this.CHK_DEF); - this.GB_Pokemon.Controls.Add(this.CHK_ATK); - this.GB_Pokemon.Controls.Add(this.CHK_HP); - this.GB_Pokemon.Controls.Add(this.L_Species); - this.GB_Pokemon.Controls.Add(this.L_Item); - this.GB_Pokemon.Controls.Add(this.L_Nature); - this.GB_Pokemon.Controls.Add(this.L_Moves); - this.GB_Pokemon.Controls.Add(this.CB_Item); - this.GB_Pokemon.Controls.Add(this.CB_Nature); - this.GB_Pokemon.Controls.Add(this.CB_Move4); - this.GB_Pokemon.Controls.Add(this.CB_Move2); - this.GB_Pokemon.Controls.Add(this.CB_Move3); - this.GB_Pokemon.Controls.Add(this.CB_Move1); - this.GB_Pokemon.Controls.Add(this.CB_Species); - this.GB_Pokemon.Location = new System.Drawing.Point(294, 33); - this.GB_Pokemon.Name = "GB_Pokemon"; - this.GB_Pokemon.Size = new System.Drawing.Size(275, 187); - this.GB_Pokemon.TabIndex = 5; - this.GB_Pokemon.TabStop = false; - this.GB_Pokemon.Text = "Pokémon Summary"; - // - // L_Form - // - this.L_Form.AutoSize = true; - this.L_Form.Location = new System.Drawing.Point(71, 163); - this.L_Form.Name = "L_Form"; - this.L_Form.Size = new System.Drawing.Size(33, 13); - this.L_Form.TabIndex = 27; - this.L_Form.Text = "Form:"; - // - // NUD_Form - // - this.NUD_Form.Location = new System.Drawing.Point(107, 161); - this.NUD_Form.Maximum = new decimal(new int[] { - 65535, - 0, - 0, - 0}); - this.NUD_Form.Name = "NUD_Form"; - this.NUD_Form.Size = new System.Drawing.Size(59, 20); - this.NUD_Form.TabIndex = 26; - this.NUD_Form.Value = new decimal(new int[] { - 65535, - 0, - 0, - 0}); - this.NUD_Form.ValueChanged += new System.EventHandler(this.changeSpecies); - // - // PB_PKM - // - this.PB_PKM.Location = new System.Drawing.Point(179, 15); - this.PB_PKM.Name = "PB_PKM"; - this.PB_PKM.Size = new System.Drawing.Size(40, 30); - this.PB_PKM.TabIndex = 25; - this.PB_PKM.TabStop = false; - // - // CHK_Spe - // - this.CHK_Spe.AutoSize = true; - this.CHK_Spe.Location = new System.Drawing.Point(219, 157); - this.CHK_Spe.Name = "CHK_Spe"; - this.CHK_Spe.Size = new System.Drawing.Size(45, 17); - this.CHK_Spe.TabIndex = 24; - this.CHK_Spe.Text = "Spe"; - this.CHK_Spe.UseVisualStyleBackColor = true; - // - // CHK_SpD - // - this.CHK_SpD.AutoSize = true; - this.CHK_SpD.Location = new System.Drawing.Point(219, 143); - this.CHK_SpD.Name = "CHK_SpD"; - this.CHK_SpD.Size = new System.Drawing.Size(47, 17); - this.CHK_SpD.TabIndex = 23; - this.CHK_SpD.Text = "SpD"; - this.CHK_SpD.UseVisualStyleBackColor = true; - // - // CHK_SpA - // - this.CHK_SpA.AutoSize = true; - this.CHK_SpA.Location = new System.Drawing.Point(219, 129); - this.CHK_SpA.Name = "CHK_SpA"; - this.CHK_SpA.Size = new System.Drawing.Size(46, 17); - this.CHK_SpA.TabIndex = 22; - this.CHK_SpA.Text = "SpA"; - this.CHK_SpA.UseVisualStyleBackColor = true; - // - // CHK_DEF - // - this.CHK_DEF.AutoSize = true; - this.CHK_DEF.Location = new System.Drawing.Point(172, 157); - this.CHK_DEF.Name = "CHK_DEF"; - this.CHK_DEF.Size = new System.Drawing.Size(43, 17); - this.CHK_DEF.TabIndex = 21; - this.CHK_DEF.Text = "Def"; - this.CHK_DEF.UseVisualStyleBackColor = true; - // - // CHK_ATK - // - this.CHK_ATK.AutoSize = true; - this.CHK_ATK.Location = new System.Drawing.Point(172, 143); - this.CHK_ATK.Name = "CHK_ATK"; - this.CHK_ATK.Size = new System.Drawing.Size(42, 17); - this.CHK_ATK.TabIndex = 20; - this.CHK_ATK.Text = "Atk"; - this.CHK_ATK.UseVisualStyleBackColor = true; - // - // CHK_HP - // - this.CHK_HP.AutoSize = true; - this.CHK_HP.Location = new System.Drawing.Point(172, 129); - this.CHK_HP.Name = "CHK_HP"; - this.CHK_HP.Size = new System.Drawing.Size(41, 17); - this.CHK_HP.TabIndex = 19; - this.CHK_HP.Text = "HP"; - this.CHK_HP.UseVisualStyleBackColor = true; - // - // L_Species - // - this.L_Species.AutoSize = true; - this.L_Species.Location = new System.Drawing.Point(13, 23); - this.L_Species.Name = "L_Species"; - this.L_Species.Size = new System.Drawing.Size(48, 13); - this.L_Species.TabIndex = 18; - this.L_Species.Text = "Species:"; - // - // L_Item - // - this.L_Item.AutoSize = true; - this.L_Item.Location = new System.Drawing.Point(29, 141); - this.L_Item.Name = "L_Item"; - this.L_Item.Size = new System.Drawing.Size(30, 13); - this.L_Item.TabIndex = 17; - this.L_Item.Text = "Item:"; - // - // L_Nature - // - this.L_Nature.AutoSize = true; - this.L_Nature.Location = new System.Drawing.Point(17, 119); - this.L_Nature.Name = "L_Nature"; - this.L_Nature.Size = new System.Drawing.Size(42, 13); - this.L_Nature.TabIndex = 16; - this.L_Nature.Text = "Nature:"; - // - // L_Moves - // - this.L_Moves.AutoSize = true; - this.L_Moves.Location = new System.Drawing.Point(13, 48); - this.L_Moves.Name = "L_Moves"; - this.L_Moves.Size = new System.Drawing.Size(42, 13); - this.L_Moves.TabIndex = 15; - this.L_Moves.Text = "Moves:"; - // - // CB_Item - // - this.CB_Item.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Item.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Item.FormattingEnabled = true; - this.CB_Item.Location = new System.Drawing.Point(65, 138); - this.CB_Item.Name = "CB_Item"; - this.CB_Item.Size = new System.Drawing.Size(101, 21); - this.CB_Item.TabIndex = 14; - // - // CB_Nature - // - this.CB_Nature.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Nature.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Nature.FormattingEnabled = true; - this.CB_Nature.Location = new System.Drawing.Point(65, 116); - this.CB_Nature.Name = "CB_Nature"; - this.CB_Nature.Size = new System.Drawing.Size(101, 21); - this.CB_Nature.TabIndex = 13; - // - // CB_Move4 - // - this.CB_Move4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Move4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Move4.FormattingEnabled = true; - this.CB_Move4.Location = new System.Drawing.Point(140, 91); - this.CB_Move4.Name = "CB_Move4"; - this.CB_Move4.Size = new System.Drawing.Size(121, 21); - this.CB_Move4.TabIndex = 12; - // - // CB_Move2 - // - this.CB_Move2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Move2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Move2.FormattingEnabled = true; - this.CB_Move2.Location = new System.Drawing.Point(140, 64); - this.CB_Move2.Name = "CB_Move2"; - this.CB_Move2.Size = new System.Drawing.Size(121, 21); - this.CB_Move2.TabIndex = 11; - // - // CB_Move3 - // - this.CB_Move3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Move3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Move3.FormattingEnabled = true; - this.CB_Move3.Location = new System.Drawing.Point(13, 91); - this.CB_Move3.Name = "CB_Move3"; - this.CB_Move3.Size = new System.Drawing.Size(121, 21); - this.CB_Move3.TabIndex = 10; - // - // CB_Move1 - // - this.CB_Move1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Move1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Move1.FormattingEnabled = true; - this.CB_Move1.Location = new System.Drawing.Point(13, 64); - this.CB_Move1.Name = "CB_Move1"; - this.CB_Move1.Size = new System.Drawing.Size(121, 21); - this.CB_Move1.TabIndex = 9; - // - // CB_Species - // - this.CB_Species.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Species.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Species.FormattingEnabled = true; - this.CB_Species.Location = new System.Drawing.Point(67, 20); - this.CB_Species.Name = "CB_Species"; - this.CB_Species.Size = new System.Drawing.Size(106, 21); - this.CB_Species.TabIndex = 8; - this.CB_Species.SelectedIndexChanged += new System.EventHandler(this.changeSpecies); - // - // B_DumpPKs - // - this.B_DumpPKs.Location = new System.Drawing.Point(494, 7); - this.B_DumpPKs.Name = "B_DumpPKs"; - this.B_DumpPKs.Size = new System.Drawing.Size(75, 23); - this.B_DumpPKs.TabIndex = 6; - this.B_DumpPKs.Text = "Dump PKMs"; - this.B_DumpPKs.UseVisualStyleBackColor = true; - this.B_DumpPKs.Click += new System.EventHandler(this.B_DumpPKs_Click); - // - // DumpTRs - // - this.DumpTRs.Location = new System.Drawing.Point(213, 6); - this.DumpTRs.Name = "DumpTRs"; - this.DumpTRs.Size = new System.Drawing.Size(75, 23); - this.DumpTRs.TabIndex = 7; - this.DumpTRs.Text = "Dump TRs"; - this.DumpTRs.UseVisualStyleBackColor = true; - this.DumpTRs.Click += new System.EventHandler(this.DumpTRs_Click); - // - // MaisonEditor7 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(579, 226); - this.Controls.Add(this.DumpTRs); - this.Controls.Add(this.B_DumpPKs); - this.Controls.Add(this.GB_Pokemon); - this.Controls.Add(this.GB_Trainer); - this.Controls.Add(this.L_Pokemon); - this.Controls.Add(this.L_Trainer); - this.Controls.Add(this.CB_Pokemon); - this.Controls.Add(this.CB_Trainer); - this.MaximizeBox = false; - this.MaximumSize = new System.Drawing.Size(595, 265); - this.MinimumSize = new System.Drawing.Size(595, 265); - this.Name = "MaisonEditor7"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Royal/Tree Editor"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.formClosing); - this.GB_Trainer.ResumeLayout(false); - this.GB_Trainer.PerformLayout(); - this.GB_Pokemon.ResumeLayout(false); - this.GB_Pokemon.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Form)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_PKM)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.ComboBox CB_Trainer; - private System.Windows.Forms.ComboBox CB_Pokemon; - private System.Windows.Forms.Label L_Trainer; - private System.Windows.Forms.Label L_Pokemon; - private System.Windows.Forms.GroupBox GB_Trainer; - private System.Windows.Forms.GroupBox GB_Pokemon; - private System.Windows.Forms.Button B_DumpPKs; - private System.Windows.Forms.Button DumpTRs; - private System.Windows.Forms.Label L_Item; - private System.Windows.Forms.Label L_Nature; - private System.Windows.Forms.Label L_Moves; - private System.Windows.Forms.ComboBox CB_Item; - private System.Windows.Forms.ComboBox CB_Nature; - private System.Windows.Forms.ComboBox CB_Move4; - private System.Windows.Forms.ComboBox CB_Move2; - private System.Windows.Forms.ComboBox CB_Move3; - private System.Windows.Forms.ComboBox CB_Move1; - private System.Windows.Forms.ComboBox CB_Species; - private System.Windows.Forms.Label L_Species; - private System.Windows.Forms.CheckBox CHK_Spe; - private System.Windows.Forms.CheckBox CHK_SpD; - private System.Windows.Forms.CheckBox CHK_SpA; - private System.Windows.Forms.CheckBox CHK_DEF; - private System.Windows.Forms.CheckBox CHK_ATK; - private System.Windows.Forms.CheckBox CHK_HP; - private System.Windows.Forms.PictureBox PB_PKM; - private System.Windows.Forms.Label L_Class; - private System.Windows.Forms.Button B_Remove; - private System.Windows.Forms.Button B_Set; - private System.Windows.Forms.ListBox LB_Choices; - private System.Windows.Forms.ComboBox CB_Class; - private System.Windows.Forms.Label L_Form; - private System.Windows.Forms.NumericUpDown NUD_Form; - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/MaisonEditor7.cs b/pk3DS/Subforms/Gen7/MaisonEditor7.cs deleted file mode 100644 index 5833d14271..0000000000 --- a/pk3DS/Subforms/Gen7/MaisonEditor7.cs +++ /dev/null @@ -1,262 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Media; -using System.Text; -using System.Windows.Forms; - -using pk3DS.Core; -using pk3DS.Core.Structures; - -namespace pk3DS -{ - public partial class MaisonEditor7 : Form - { - public MaisonEditor7(byte[][] trd, byte[][] trp, bool royal) - { - trFiles = trd; - pkFiles = trp; - Array.Resize(ref specieslist, Main.Config.MaxSpeciesID + 1); - movelist[0] = specieslist[0] = itemlist[0] = ""; - - trNames = Main.Config.getText(royal ? TextName.BattleRoyalNames : TextName.BattleTreeNames); Array.Resize(ref trNames, trFiles.Length); - - InitializeComponent(); - Setup(); - } - - private readonly byte[][] trFiles; - private readonly string[] trNames; - private readonly byte[][] pkFiles; - private readonly string[] natures = Main.Config.getText(TextName.Natures); - private readonly string[] movelist = Main.Config.getText(TextName.MoveNames); - private readonly string[] specieslist = Main.Config.getText(TextName.SpeciesNames); - private readonly string[] trClass = Main.Config.getText(TextName.TrainerClasses); - private readonly string[] itemlist = Main.Config.getText(TextName.ItemNames); - private int trEntry = -1; - private int pkEntry = -1; - private bool dumping; - private void Setup() - { - for (int i = 0; i < trClass.Length; i++) - CB_Class.Items.Add($"{trClass[i]} - {i:000}"); - foreach (string s in specieslist) CB_Species.Items.Add(s); - foreach (string s in movelist) CB_Move1.Items.Add(s); - foreach (string s in movelist) CB_Move2.Items.Add(s); - foreach (string s in movelist) CB_Move3.Items.Add(s); - foreach (string s in movelist) CB_Move4.Items.Add(s); - foreach (string s in natures) CB_Nature.Items.Add(s); - foreach (string s in itemlist) CB_Item.Items.Add(s); - for (int i = 0; i < trNames.Length; i++) - CB_Trainer.Items.Add($"{trNames[i] ?? "UNKNOWN"} - {i:000}"); - for (int i = 0; i < pkFiles.Length; i++) CB_Pokemon.Items.Add(i.ToString()); - - CB_Trainer.SelectedIndex = 1; - } - private void changeTrainer(object sender, EventArgs e) - { - setTrainer(); - trEntry = CB_Trainer.SelectedIndex; - getTrainer(); - if (GB_Trainer.Enabled) - LB_Choices.SelectedIndex = 0; - } - private void changePokemon(object sender, EventArgs e) - { - setPokemon(); - pkEntry = CB_Pokemon.SelectedIndex; - getPokemon(); - } - private void getTrainer() - { - if (trEntry < 0) return; - - // Get - LB_Choices.Items.Clear(); - Maison7.Trainer tr = new Maison7.Trainer(trFiles[trEntry]); - - CB_Class.SelectedIndex = tr.Class; - GB_Trainer.Enabled = tr.Count > 0; - - foreach (ushort Entry in tr.Choices) - LB_Choices.Items.Add(Entry.ToString()); - } - private void setTrainer() - { - if (trEntry < 0 || !GB_Trainer.Enabled || dumping) return; - // Gather - Maison7.Trainer tr = new Maison7.Trainer - { - Class = (ushort) CB_Class.SelectedIndex, - Count = (ushort) LB_Choices.Items.Count - }; - tr.Choices = new ushort[tr.Count]; - for (int i = 0; i < tr.Count; i++) - tr.Choices[i] = Convert.ToUInt16(LB_Choices.Items[i].ToString()); - Array.Sort(tr.Choices); - trFiles[trEntry] = tr.Write(); - } - private void getPokemon() - { - if (pkEntry < 0 || dumping) return; - Maison7.Pokemon pkm = new Maison7.Pokemon(pkFiles[pkEntry]); - - // Get - CB_Move1.SelectedIndex = pkm.Moves[0]; - CB_Move2.SelectedIndex = pkm.Moves[1]; - CB_Move3.SelectedIndex = pkm.Moves[2]; - CB_Move4.SelectedIndex = pkm.Moves[3]; - CHK_HP.Checked = pkm.HP; - CHK_ATK.Checked = pkm.ATK; - CHK_DEF.Checked = pkm.DEF; - CHK_Spe.Checked = pkm.SPE; - CHK_SpA.Checked = pkm.SPA; - CHK_SpD.Checked = pkm.SPD; - CB_Nature.SelectedIndex = pkm.Nature; - CB_Item.SelectedIndex = pkm.Item; - NUD_Form.Value = pkm.Form; - - CB_Species.SelectedIndex = pkm.Species; // Loaded last in order to refresh the sprite with all info. - // Last 2 Bytes are unused. - } - private void setPokemon() - { - if (pkEntry < 0 || dumping) return; - - // Each File is 16 Bytes. - Maison7.Pokemon pkm = new Maison7.Pokemon(pkFiles[pkEntry]) - { - Species = (ushort) CB_Species.SelectedIndex, - HP = CHK_HP.Checked, - ATK = CHK_ATK.Checked, - DEF = CHK_DEF.Checked, - SPE = CHK_Spe.Checked, - SPA = CHK_SpA.Checked, - SPD = CHK_SpD.Checked, - Nature = (byte) CB_Nature.SelectedIndex, - Item = (ushort) CB_Item.SelectedIndex, - Move1 = CB_Move1.SelectedIndex, - Move2 = CB_Move2.SelectedIndex, - Move3 = CB_Move3.SelectedIndex, - Move4 = CB_Move4.SelectedIndex, - Form = (ushort)NUD_Form.Value, - }; - - byte[] data = pkm.Write(); - pkFiles[pkEntry] = data; - } - - private void changeSpecies(object sender, EventArgs e) - { - PB_PKM.Image = WinFormsUtil.getSprite(CB_Species.SelectedIndex, (int)NUD_Form.Value, 0, CB_Item.SelectedIndex, Main.Config); - } - - private void B_Remove_Click(object sender, EventArgs e) - { - if (LB_Choices.SelectedIndex > -1 && GB_Trainer.Enabled) - LB_Choices.Items.RemoveAt(LB_Choices.SelectedIndex); - } - private void B_Set_Click(object sender, EventArgs e) - { - if (LB_Choices.SelectedIndex <= -1 || !GB_Trainer.Enabled) return; - - int toAdd = CB_Pokemon.SelectedIndex; - int count = LB_Choices.Items.Count; - List choices = new List(); - for (int i = 0; i < count; i++) - choices.Add(Convert.ToUInt16(LB_Choices.Items[i].ToString())); - - if (Array.IndexOf(choices.ToArray(), toAdd) > 0) return; // Abort if already in the list - choices.Add((ushort)toAdd); // Add it to the list. - - // Get new list, and sort it. - ushort[] choiceList = choices.ToArray(); Array.Sort(choiceList); - - // Set new list. - LB_Choices.Items.Clear(); - foreach (ushort t in choiceList) - LB_Choices.Items.Add(t.ToString()); - - // Set current index to the one just added. - LB_Choices.SelectedIndex = Array.IndexOf(choiceList, toAdd); - } - private void B_View_Click(object sender, EventArgs e) - { - if (LB_Choices.SelectedIndex > -1 && GB_Trainer.Enabled) - CB_Pokemon.SelectedIndex = Convert.ToUInt16(LB_Choices.Items[LB_Choices.SelectedIndex].ToString()); - } - - private void formClosing(object sender, FormClosingEventArgs e) - { - setTrainer(); - setPokemon(); - } - - private void DumpTRs_Click(object sender, EventArgs e) - { - dumping = true; - string result = ""; - for (int i = 0; i < CB_Trainer.Items.Count; i++) - { - CB_Trainer.SelectedIndex = i; - int count = LB_Choices.Items.Count - 1; - if (count > 0) - { - result += "======" + Environment.NewLine + i + " - (" + CB_Class.Text + ") " + CB_Trainer.Text + Environment.NewLine + "======" + Environment.NewLine; - result += "Choices: "; - for (int c = 0; c < count; c++) - result += LB_Choices.Items[c] + ", "; - - result += Environment.NewLine; result += Environment.NewLine; - } - } - SaveFileDialog sfd = new SaveFileDialog {FileName = "Maison Trainers.txt", Filter = "Text File|*.txt"}; - - SystemSounds.Asterisk.Play(); - if (sfd.ShowDialog() == DialogResult.OK) - { - string path = sfd.FileName; - File.WriteAllText(path, result, Encoding.Unicode); - } - dumping = false; - CB_Trainer.SelectedIndex = 0; - } - private void B_DumpPKs_Click(object sender, EventArgs e) - { - //File.WriteAllBytes("maiz", pkFiles.SelectMany(t => t).ToArray()); - string[] stats = {"HP", "ATK", "DEF", "Spe", "SpA", "SpD"}; - string result = ""; - for (int i = 0; i < pkFiles.Length; i++) - { - var pk = new Maison7.Pokemon(pkFiles[i]); - if (pk.Species == 0) - continue; - - result += "======" + Environment.NewLine; - result += $"{i} - {specieslist[pk.Species]}" + Environment.NewLine; - result += "======" + Environment.NewLine; - result += $"Held Item: {itemlist[pk.Item]}" + Environment.NewLine; - result += $"Nature: {natures[pk.Nature]}" + Environment.NewLine; - result += $"Move 1: {movelist[pk.Move1]}" + Environment.NewLine; - result += $"Move 2: {movelist[pk.Move2]}" + Environment.NewLine; - result += $"Move 3: {movelist[pk.Move3]}" + Environment.NewLine; - result += $"Move 4: {movelist[pk.Move4]}" + Environment.NewLine; - - var EVstr = string.Join(",", pk.EVs.Select((iv, x) => iv ? stats[x] : string.Empty).Where(x => !string.IsNullOrWhiteSpace(x))); - result += $"EV'd in: {(pk.EVs.Any() ? EVstr : "None")}" + Environment.NewLine; - - if (pk.Form > 0) - result += $"Form: {pk.Form}" + Environment.NewLine; - - result += Environment.NewLine; - } - SaveFileDialog sfd = new SaveFileDialog {FileName = "Maison Pokemon.txt", Filter = "Text File|*.txt"}; - - if (sfd.ShowDialog() != DialogResult.OK) - return; - - File.WriteAllText(sfd.FileName, result, Encoding.Unicode); - } - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/MartEditor7.Designer.cs b/pk3DS/Subforms/Gen7/MartEditor7.Designer.cs deleted file mode 100644 index eaf5691dc7..0000000000 --- a/pk3DS/Subforms/Gen7/MartEditor7.Designer.cs +++ /dev/null @@ -1,246 +0,0 @@ -namespace pk3DS -{ - partial class MartEditor7 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle(); - this.CB_Location = new System.Windows.Forms.ComboBox(); - this.dgv = new System.Windows.Forms.DataGridView(); - this.dgvIndex = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.dgvItem = new System.Windows.Forms.DataGridViewComboBoxColumn(); - this.L_Mart = new System.Windows.Forms.Label(); - this.B_Randomize = new System.Windows.Forms.Button(); - this.B_Save = new System.Windows.Forms.Button(); - this.B_Cancel = new System.Windows.Forms.Button(); - this.label1 = new System.Windows.Forms.Label(); - this.CB_LocationBP = new System.Windows.Forms.ComboBox(); - this.B_RandomizeBP = new System.Windows.Forms.Button(); - this.dgvbp = new System.Windows.Forms.DataGridView(); - this.dgvIndexBP = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.dgvItemBP = new System.Windows.Forms.DataGridViewComboBoxColumn(); - this.dgvPriceBP = new System.Windows.Forms.DataGridViewTextBoxColumn(); - ((System.ComponentModel.ISupportInitialize)(this.dgv)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.dgvbp)).BeginInit(); - this.SuspendLayout(); - // - // CB_Location - // - this.CB_Location.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_Location.FormattingEnabled = true; - this.CB_Location.Location = new System.Drawing.Point(69, 6); - this.CB_Location.Name = "CB_Location"; - this.CB_Location.Size = new System.Drawing.Size(243, 21); - this.CB_Location.TabIndex = 0; - this.CB_Location.SelectedIndexChanged += new System.EventHandler(this.changeIndex); - // - // dgv - // - this.dgv.AllowUserToAddRows = false; - this.dgv.AllowUserToDeleteRows = false; - this.dgv.AllowUserToResizeColumns = false; - this.dgv.AllowUserToResizeRows = false; - this.dgv.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgv.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.dgvIndex, - this.dgvItem}); - this.dgv.Location = new System.Drawing.Point(12, 33); - this.dgv.Name = "dgv"; - this.dgv.Size = new System.Drawing.Size(300, 284); - this.dgv.TabIndex = 1; - // - // dgvIndex - // - dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; - this.dgvIndex.DefaultCellStyle = dataGridViewCellStyle3; - this.dgvIndex.HeaderText = "Index"; - this.dgvIndex.Name = "dgvIndex"; - this.dgvIndex.ReadOnly = true; - this.dgvIndex.Width = 45; - // - // dgvItem - // - this.dgvItem.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.dgvItem.HeaderText = "Item"; - this.dgvItem.Name = "dgvItem"; - this.dgvItem.Width = 135; - // - // L_Mart - // - this.L_Mart.AutoSize = true; - this.L_Mart.Location = new System.Drawing.Point(12, 9); - this.L_Mart.Name = "L_Mart"; - this.L_Mart.Size = new System.Drawing.Size(51, 13); - this.L_Mart.TabIndex = 2; - this.L_Mart.Text = "Location:"; - // - // B_Randomize - // - this.B_Randomize.Location = new System.Drawing.Point(12, 326); - this.B_Randomize.Name = "B_Randomize"; - this.B_Randomize.Size = new System.Drawing.Size(87, 23); - this.B_Randomize.TabIndex = 3; - this.B_Randomize.Text = "Randomize"; - this.B_Randomize.UseVisualStyleBackColor = true; - this.B_Randomize.Click += new System.EventHandler(this.B_Randomize_Click); - // - // B_Save - // - this.B_Save.Location = new System.Drawing.Point(559, 326); - this.B_Save.Name = "B_Save"; - this.B_Save.Size = new System.Drawing.Size(68, 23); - this.B_Save.TabIndex = 4; - this.B_Save.Text = "Save"; - this.B_Save.UseVisualStyleBackColor = true; - this.B_Save.Click += new System.EventHandler(this.B_Save_Click); - // - // B_Cancel - // - this.B_Cancel.Location = new System.Drawing.Point(485, 326); - this.B_Cancel.Name = "B_Cancel"; - this.B_Cancel.Size = new System.Drawing.Size(68, 23); - this.B_Cancel.TabIndex = 5; - this.B_Cancel.Text = "Cancel"; - this.B_Cancel.UseVisualStyleBackColor = true; - this.B_Cancel.Click += new System.EventHandler(this.B_Cancel_Click); - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(327, 9); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(51, 13); - this.label1.TabIndex = 8; - this.label1.Text = "Location:"; - // - // CB_LocationBP - // - this.CB_LocationBP.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_LocationBP.FormattingEnabled = true; - this.CB_LocationBP.Location = new System.Drawing.Point(384, 6); - this.CB_LocationBP.Name = "CB_LocationBP"; - this.CB_LocationBP.Size = new System.Drawing.Size(243, 21); - this.CB_LocationBP.TabIndex = 6; - this.CB_LocationBP.SelectedIndexChanged += new System.EventHandler(this.changeIndexBP); - // - // B_RandomizeBP - // - this.B_RandomizeBP.Location = new System.Drawing.Point(327, 326); - this.B_RandomizeBP.Name = "B_RandomizeBP"; - this.B_RandomizeBP.Size = new System.Drawing.Size(87, 23); - this.B_RandomizeBP.TabIndex = 9; - this.B_RandomizeBP.Text = "Randomize"; - this.B_RandomizeBP.UseVisualStyleBackColor = true; - this.B_RandomizeBP.Click += new System.EventHandler(this.B_RandomizeBP_Click); - // - // dgvbp - // - this.dgvbp.AllowUserToAddRows = false; - this.dgvbp.AllowUserToDeleteRows = false; - this.dgvbp.AllowUserToResizeColumns = false; - this.dgvbp.AllowUserToResizeRows = false; - this.dgvbp.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgvbp.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.dgvIndexBP, - this.dgvItemBP, - this.dgvPriceBP}); - this.dgvbp.Location = new System.Drawing.Point(327, 33); - this.dgvbp.Name = "dgvbp"; - this.dgvbp.Size = new System.Drawing.Size(300, 284); - this.dgvbp.TabIndex = 10; - // - // dgvIndexBP - // - dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; - this.dgvIndexBP.DefaultCellStyle = dataGridViewCellStyle4; - this.dgvIndexBP.HeaderText = "Index"; - this.dgvIndexBP.MaxInputLength = 3; - this.dgvIndexBP.Name = "dgvIndexBP"; - this.dgvIndexBP.ReadOnly = true; - this.dgvIndexBP.Width = 45; - // - // dgvItemBP - // - this.dgvItemBP.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.dgvItemBP.HeaderText = "Item"; - this.dgvItemBP.Name = "dgvItemBP"; - this.dgvItemBP.Width = 135; - // - // dgvPriceBP - // - this.dgvPriceBP.HeaderText = "Price"; - this.dgvPriceBP.MaxInputLength = 3; - this.dgvPriceBP.Name = "dgvPriceBP"; - this.dgvPriceBP.Width = 65; - // - // MartEditor7 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(639, 361); - this.Controls.Add(this.dgvbp); - this.Controls.Add(this.B_RandomizeBP); - this.Controls.Add(this.label1); - this.Controls.Add(this.CB_LocationBP); - this.Controls.Add(this.B_Cancel); - this.Controls.Add(this.B_Save); - this.Controls.Add(this.B_Randomize); - this.Controls.Add(this.L_Mart); - this.Controls.Add(this.dgv); - this.Controls.Add(this.CB_Location); - this.MaximizeBox = false; - this.MinimumSize = new System.Drawing.Size(340, 400); - this.Name = "MartEditor7"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Mart Editor"; - ((System.ComponentModel.ISupportInitialize)(this.dgv)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.dgvbp)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.ComboBox CB_Location; - private System.Windows.Forms.DataGridView dgv; - private System.Windows.Forms.Label L_Mart; - private System.Windows.Forms.Button B_Randomize; - private System.Windows.Forms.Button B_Save; - private System.Windows.Forms.Button B_Cancel; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.ComboBox CB_LocationBP; - private System.Windows.Forms.Button B_RandomizeBP; - private System.Windows.Forms.DataGridViewComboBoxColumn dgvItem; - private System.Windows.Forms.DataGridViewTextBoxColumn dgvIndex; - private System.Windows.Forms.DataGridView dgvbp; - private System.Windows.Forms.DataGridViewTextBoxColumn dgvIndexBP; - private System.Windows.Forms.DataGridViewComboBoxColumn dgvItemBP; - private System.Windows.Forms.DataGridViewTextBoxColumn dgvPriceBP; - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/MartEditor7.cs b/pk3DS/Subforms/Gen7/MartEditor7.cs deleted file mode 100644 index 5573dabefd..0000000000 --- a/pk3DS/Subforms/Gen7/MartEditor7.cs +++ /dev/null @@ -1,267 +0,0 @@ -using pk3DS.Core; -using System; -using System.Collections.Generic; -using System.IO; -using System.Windows.Forms; - -namespace pk3DS -{ - public partial class MartEditor7 : Form - { - private readonly string CROPath = Path.Combine(Main.RomFSPath, "Shop.cro"); - public MartEditor7() - { - if (!File.Exists(CROPath)) - { - WinFormsUtil.Error("CRO does not exist! Closing.", CROPath); - Close(); - } - InitializeComponent(); - - data = File.ReadAllBytes(CROPath); - offset = Util.IndexOfBytes(data, Signature, 0x5000, 0) + Signature.Length; - offsetBP = Util.IndexOfBytes(data, BPSignature, 0x5000, 0) + BPSignature.Length; - - itemlist[0] = ""; - setupDGV(); - foreach (string s in locations) CB_Location.Items.Add(s); - foreach (string s in locationsBP) CB_LocationBP.Items.Add(s); - CB_Location.SelectedIndex = 0; - CB_LocationBP.SelectedIndex = 0; - } - - private readonly string[] itemlist = Main.Config.getText(TextName.ItemNames); - private readonly byte[] data; - - #region Tables - private readonly byte[] Signature = // Leadup to the Shop Data, the shop arrays are the 3rd data array in the rodata section. - { - 0x2D, 0x00, 0x00, 0x00, 0x3B, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x00, 0x3D, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, - 0x10, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, - }; - private readonly byte[] BPSignature = // 2 arrays after the regular shops, the BP shops start. Skip over the second one to get BP offset. - { - 0x09, 0x0B, 0x0D, 0x0F, 0x11, 0x13, 0x14, 0x15, 0x09, 0x04, 0x08, 0x0C, 0x05, 0x04, 0x0B, 0x03, - 0x0A, 0x06, 0x0A, 0x06, 0x04, 0x05, 0x07, 0x01 - }; - private readonly byte[] entries = - { - 9, 11, 13, 15, 17, 19, 20, 21, // Regular Mart - 9, // KoniKoni Incense - 4, // KoniKoni Herb - 8, // Hau'oli Battle - 12, // Route 2 - 5, // Heahea - 4, // Royal Avenue - 11, // Route 8 - 3, // Paniola - 10, // Malie TMs - 6, // Mount Hokulani - 10, // Seafolk TM - 6, // KoniKoni TM - 4, // KoniKoni Jewelry - 5, // Thrifty 1 - 7, // Thrifty 2 - 1, // Thrifty 3 (Souvenir) - }; - private readonly string[] locations = - { - "No Trials", "1 Trial", "2 Trials", "3 Trials", "4 Trials", "5 Trials", "6 Trials", "7 Trials", - "Konikoni City [Incenses]", - "Konikoni City [Herbs]", - "Hau'oli City [X Items]", - "Route 2 [Misc]", - "Heahea City [TMs]", - "Royal Avenue [TMs]", - "Route 8 [Misc]", - "Paniola Town [Poké Balls]", - "Malie City [TMs]", - "Mount Hokulani [Vitamins]", - "Seafolk Village [TMs]", - "Konikoni City [TMs]", - "Konikoni City [Stones]", - "Thrifty Megamart 1 [Poké Balls]", - "Thrifty Megamart 2 [Misc]", - "Thrifty Megamart 3 [Strange Souvenir]" - }; - - private readonly int[] entriesBP = - { - 8, // Royal 1 (Abil Capsule) - 7, // Royal 2 - 18, // Royal 3 - 12, // Tree 1 - 21, // Tree 2 - 16, // Tree 3 - }; - private readonly string[] locationsBP = - { - "Battle Royal Dome [Medicine]", - "Battle Royal Dome [EV Training]", - "Battle Royal Dome [Held Items]", - "Battle Tree [Trade Evolution Items]", - "Battle Tree [Held Items]", - "Battle Tree [Mega Stones]", - }; - #endregion - - private void B_Save_Click(object sender, EventArgs e) - { - if (entry > -1) setList(); - if (entryBP > -1) setListBP(); - File.WriteAllBytes(CROPath, data); - Close(); - } - private void B_Cancel_Click(object sender, EventArgs e) - { - Close(); - } - - private readonly int offset; - private int dataoffset; - private void getDataOffset(int index) - { - dataoffset = offset; // reset - for (int i = 0; i < index; i++) - dataoffset += 2 * entries[i]; - } - - private void setupDGV() - { - foreach (string t in itemlist) - dgvItem.Items.Add(t); // add only the Names - foreach (string t in itemlist) - dgvItemBP.Items.Add(t); // add only the Names - } - - private int entry = -1; - private void changeIndex(object sender, EventArgs e) - { - if (entry > -1) setList(); - entry = CB_Location.SelectedIndex; - getList(); - } - private void getList() - { - dgv.Rows.Clear(); - int count = entries[entry]; - dgv.Rows.Add(count); - getDataOffset(entry); - for (int i = 0; i < count; i++) - { - dgv.Rows[i].Cells[0].Value = i.ToString(); - dgv.Rows[i].Cells[1].Value = itemlist[BitConverter.ToUInt16(data, dataoffset + 2 * i)]; - } - } - private void setList() - { - int count = dgv.Rows.Count; - for (int i = 0; i < count; i++) - Array.Copy(BitConverter.GetBytes((ushort)Array.IndexOf(itemlist, dgv.Rows[i].Cells[1].Value)), 0, data, dataoffset + 2 * i, 2); - } - - /// - /// Just TMs & HMs; don't want these to be changed; if changed, they are not available elsewhere ingame. - /// - internal static readonly HashSet BannedItems = new HashSet - { - 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 618, 619, 620, 690, 691, - 692, 693, 694, 701, 737 - }; - private void B_Randomize_Click(object sender, EventArgs e) - { - if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Randomize mart inventories?")) - return; - - int[] validItems = Randomizer.getRandomItemList(); - - int ctr = 0; - Util.Shuffle(validItems); - - bool specialOnly = DialogResult.Yes == WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomize only special marts?", "Will leave regular necessities intact."); - int start = specialOnly ? 8 : 0; - for (int i = start; i < CB_Location.Items.Count; i++) - { - CB_Location.SelectedIndex = i; - for (int r = 0; r < dgv.Rows.Count; r++) - { - int currentItem = Array.IndexOf(itemlist, dgv.Rows[r].Cells[1].Value); - if (BannedItems.Contains(currentItem)) - continue; - dgv.Rows[r].Cells[1].Value = itemlist[validItems[ctr++]]; - if (ctr <= validItems.Length) continue; - Util.Shuffle(validItems); ctr = 0; - } - } - WinFormsUtil.Alert("Randomized!"); - } - - private void getDataOffsetBP(int index) - { - dataoffsetBP = offsetBP; // reset - for (int i = 0; i < index; i++) - dataoffsetBP += 4 * entriesBP[i]; - } - private readonly int offsetBP; - private int dataoffsetBP; - private int entryBP = -1; - private void changeIndexBP(object sender, EventArgs e) - { - if (entryBP > -1) setListBP(); - entryBP = CB_LocationBP.SelectedIndex; - getListBP(); - } - private void getListBP() - { - dgvbp.Rows.Clear(); - int count = entriesBP[entryBP]; - dgvbp.Rows.Add(count); - getDataOffsetBP(entryBP); - for (int i = 0; i < count; i++) - { - dgvbp.Rows[i].Cells[0].Value = i.ToString(); - dgvbp.Rows[i].Cells[1].Value = itemlist[BitConverter.ToUInt16(data, dataoffsetBP + 4 * i)]; - dgvbp.Rows[i].Cells[2].Value = BitConverter.ToUInt16(data, dataoffsetBP + 4 * i + 2).ToString(); - } - } - private void setListBP() - { - int count = dgvbp.Rows.Count; - for (int i = 0; i < count; i++) - { - int item = Array.IndexOf(itemlist, dgvbp.Rows[i].Cells[1].Value); - Array.Copy(BitConverter.GetBytes((ushort)item), 0, data, dataoffsetBP + 4 * i, 2); - int price; string p = dgvbp.Rows[i].Cells[2].Value.ToString(); - if (int.TryParse(p, out price)) - Array.Copy(BitConverter.GetBytes((ushort)price), 0, data, dataoffsetBP + 4 * i + 2, 2); - } - } - private void B_RandomizeBP_Click(object sender, EventArgs e) - { - if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Randomize BP inventories?")) - return; - - int[] validItems = Randomizer.getRandomItemList(); - - int ctr = 0; - Util.Shuffle(validItems); - - for (int i = 0; i < CB_LocationBP.Items.Count; i++) - { - CB_LocationBP.SelectedIndex = i; - for (int r = 0; r < dgvbp.Rows.Count; r++) - { - dgvbp.Rows[r].Cells[1].Value = itemlist[validItems[ctr++]]; - if (ctr <= validItems.Length) continue; - Util.Shuffle(validItems); ctr = 0; - } - } - WinFormsUtil.Alert("Randomized!"); - } - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/MartEditor7UU.Designer.cs b/pk3DS/Subforms/Gen7/MartEditor7UU.Designer.cs deleted file mode 100644 index 924b0739de..0000000000 --- a/pk3DS/Subforms/Gen7/MartEditor7UU.Designer.cs +++ /dev/null @@ -1,391 +0,0 @@ -namespace pk3DS -{ - partial class MartEditor7UU - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); - this.CB_Location = new System.Windows.Forms.ComboBox(); - this.dgv = new System.Windows.Forms.DataGridView(); - this.dgvIndex = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.dgvItem = new System.Windows.Forms.DataGridViewComboBoxColumn(); - this.L_Mart = new System.Windows.Forms.Label(); - this.B_Randomize = new System.Windows.Forms.Button(); - this.B_Save = new System.Windows.Forms.Button(); - this.B_Cancel = new System.Windows.Forms.Button(); - this.label1 = new System.Windows.Forms.Label(); - this.CB_LocationBPItem = new System.Windows.Forms.ComboBox(); - this.dgvbp = new System.Windows.Forms.DataGridView(); - this.dgvIndexBP = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.dgvItemBP = new System.Windows.Forms.DataGridViewComboBoxColumn(); - this.dgvPriceBP = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.dgvmv = new System.Windows.Forms.DataGridView(); - this.dgvmvIndex = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.dgvmvMove = new System.Windows.Forms.DataGridViewComboBoxColumn(); - this.dgvmvBP = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.label2 = new System.Windows.Forms.Label(); - this.CB_LocationBPMove = new System.Windows.Forms.ComboBox(); - this.tabControl1 = new System.Windows.Forms.TabControl(); - this.tabPage1 = new System.Windows.Forms.TabPage(); - this.tabPage2 = new System.Windows.Forms.TabPage(); - this.tabPage3 = new System.Windows.Forms.TabPage(); - ((System.ComponentModel.ISupportInitialize)(this.dgv)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.dgvbp)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.dgvmv)).BeginInit(); - this.tabControl1.SuspendLayout(); - this.tabPage1.SuspendLayout(); - this.tabPage2.SuspendLayout(); - this.tabPage3.SuspendLayout(); - this.SuspendLayout(); - // - // CB_Location - // - this.CB_Location.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.CB_Location.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_Location.FormattingEnabled = true; - this.CB_Location.Location = new System.Drawing.Point(60, 3); - this.CB_Location.Name = "CB_Location"; - this.CB_Location.Size = new System.Drawing.Size(254, 21); - this.CB_Location.TabIndex = 0; - this.CB_Location.SelectedIndexChanged += new System.EventHandler(this.changeIndexItem); - // - // dgv - // - this.dgv.AllowUserToAddRows = false; - this.dgv.AllowUserToDeleteRows = false; - this.dgv.AllowUserToResizeColumns = false; - this.dgv.AllowUserToResizeRows = false; - this.dgv.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.dgv.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgv.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.dgvIndex, - this.dgvItem}); - this.dgv.Location = new System.Drawing.Point(0, 27); - this.dgv.Name = "dgv"; - this.dgv.Size = new System.Drawing.Size(317, 241); - this.dgv.TabIndex = 1; - // - // dgvIndex - // - dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; - this.dgvIndex.DefaultCellStyle = dataGridViewCellStyle1; - this.dgvIndex.HeaderText = "Index"; - this.dgvIndex.Name = "dgvIndex"; - this.dgvIndex.ReadOnly = true; - this.dgvIndex.Width = 45; - // - // dgvItem - // - this.dgvItem.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.dgvItem.HeaderText = "Item"; - this.dgvItem.Name = "dgvItem"; - this.dgvItem.Width = 135; - // - // L_Mart - // - this.L_Mart.AutoSize = true; - this.L_Mart.Location = new System.Drawing.Point(6, 6); - this.L_Mart.Name = "L_Mart"; - this.L_Mart.Size = new System.Drawing.Size(51, 13); - this.L_Mart.TabIndex = 2; - this.L_Mart.Text = "Location:"; - // - // B_Randomize - // - this.B_Randomize.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.B_Randomize.Location = new System.Drawing.Point(12, 315); - this.B_Randomize.Name = "B_Randomize"; - this.B_Randomize.Size = new System.Drawing.Size(87, 23); - this.B_Randomize.TabIndex = 3; - this.B_Randomize.Text = "Randomize"; - this.B_Randomize.UseVisualStyleBackColor = true; - this.B_Randomize.Click += new System.EventHandler(this.B_Randomize_Click); - // - // B_Save - // - this.B_Save.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.B_Save.Location = new System.Drawing.Point(265, 315); - this.B_Save.Name = "B_Save"; - this.B_Save.Size = new System.Drawing.Size(68, 23); - this.B_Save.TabIndex = 4; - this.B_Save.Text = "Save"; - this.B_Save.UseVisualStyleBackColor = true; - this.B_Save.Click += new System.EventHandler(this.B_Save_Click); - // - // B_Cancel - // - this.B_Cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.B_Cancel.Location = new System.Drawing.Point(191, 315); - this.B_Cancel.Name = "B_Cancel"; - this.B_Cancel.Size = new System.Drawing.Size(68, 23); - this.B_Cancel.TabIndex = 5; - this.B_Cancel.Text = "Cancel"; - this.B_Cancel.UseVisualStyleBackColor = true; - this.B_Cancel.Click += new System.EventHandler(this.B_Cancel_Click); - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(6, 6); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(51, 13); - this.label1.TabIndex = 8; - this.label1.Text = "Location:"; - // - // CB_LocationBPItem - // - this.CB_LocationBPItem.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.CB_LocationBPItem.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_LocationBPItem.FormattingEnabled = true; - this.CB_LocationBPItem.Location = new System.Drawing.Point(60, 3); - this.CB_LocationBPItem.Name = "CB_LocationBPItem"; - this.CB_LocationBPItem.Size = new System.Drawing.Size(254, 21); - this.CB_LocationBPItem.TabIndex = 6; - this.CB_LocationBPItem.SelectedIndexChanged += new System.EventHandler(this.changeIndexBPItem); - // - // dgvbp - // - this.dgvbp.AllowUserToAddRows = false; - this.dgvbp.AllowUserToDeleteRows = false; - this.dgvbp.AllowUserToResizeColumns = false; - this.dgvbp.AllowUserToResizeRows = false; - this.dgvbp.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.dgvbp.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgvbp.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.dgvIndexBP, - this.dgvItemBP, - this.dgvPriceBP}); - this.dgvbp.Location = new System.Drawing.Point(0, 27); - this.dgvbp.Name = "dgvbp"; - this.dgvbp.Size = new System.Drawing.Size(317, 241); - this.dgvbp.TabIndex = 10; - // - // dgvIndexBP - // - dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; - this.dgvIndexBP.DefaultCellStyle = dataGridViewCellStyle2; - this.dgvIndexBP.HeaderText = "Index"; - this.dgvIndexBP.MaxInputLength = 3; - this.dgvIndexBP.Name = "dgvIndexBP"; - this.dgvIndexBP.ReadOnly = true; - this.dgvIndexBP.Width = 45; - // - // dgvItemBP - // - this.dgvItemBP.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.dgvItemBP.HeaderText = "Item"; - this.dgvItemBP.Name = "dgvItemBP"; - this.dgvItemBP.Width = 135; - // - // dgvPriceBP - // - this.dgvPriceBP.HeaderText = "Price"; - this.dgvPriceBP.MaxInputLength = 3; - this.dgvPriceBP.Name = "dgvPriceBP"; - this.dgvPriceBP.Width = 65; - // - // dgvmv - // - this.dgvmv.AllowUserToAddRows = false; - this.dgvmv.AllowUserToDeleteRows = false; - this.dgvmv.AllowUserToResizeColumns = false; - this.dgvmv.AllowUserToResizeRows = false; - this.dgvmv.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.dgvmv.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgvmv.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.dgvmvIndex, - this.dgvmvMove, - this.dgvmvBP}); - this.dgvmv.Location = new System.Drawing.Point(0, 27); - this.dgvmv.Name = "dgvmv"; - this.dgvmv.Size = new System.Drawing.Size(317, 241); - this.dgvmv.TabIndex = 14; - // - // dgvmvIndex - // - dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; - this.dgvmvIndex.DefaultCellStyle = dataGridViewCellStyle3; - this.dgvmvIndex.HeaderText = "Index"; - this.dgvmvIndex.MaxInputLength = 3; - this.dgvmvIndex.Name = "dgvmvIndex"; - this.dgvmvIndex.ReadOnly = true; - this.dgvmvIndex.Width = 45; - // - // dgvmvMove - // - this.dgvmvMove.FlatStyle = System.Windows.Forms.FlatStyle.Flat; - this.dgvmvMove.HeaderText = "Move"; - this.dgvmvMove.Name = "dgvmvMove"; - this.dgvmvMove.Width = 135; - // - // dgvmvBP - // - this.dgvmvBP.HeaderText = "Price"; - this.dgvmvBP.MaxInputLength = 3; - this.dgvmvBP.Name = "dgvmvBP"; - this.dgvmvBP.Width = 65; - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(6, 6); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(51, 13); - this.label2.TabIndex = 12; - this.label2.Text = "Location:"; - // - // CB_LocationBPMove - // - this.CB_LocationBPMove.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.CB_LocationBPMove.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_LocationBPMove.FormattingEnabled = true; - this.CB_LocationBPMove.Location = new System.Drawing.Point(60, 3); - this.CB_LocationBPMove.Name = "CB_LocationBPMove"; - this.CB_LocationBPMove.Size = new System.Drawing.Size(254, 21); - this.CB_LocationBPMove.TabIndex = 11; - this.CB_LocationBPMove.SelectedIndexChanged += new System.EventHandler(this.changeIndexBPMove); - // - // tabControl1 - // - this.tabControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tabControl1.Controls.Add(this.tabPage1); - this.tabControl1.Controls.Add(this.tabPage2); - this.tabControl1.Controls.Add(this.tabPage3); - this.tabControl1.Location = new System.Drawing.Point(12, 12); - this.tabControl1.Name = "tabControl1"; - this.tabControl1.SelectedIndex = 0; - this.tabControl1.Size = new System.Drawing.Size(325, 294); - this.tabControl1.TabIndex = 15; - // - // tabPage1 - // - this.tabPage1.Controls.Add(this.L_Mart); - this.tabPage1.Controls.Add(this.CB_Location); - this.tabPage1.Controls.Add(this.dgv); - this.tabPage1.Location = new System.Drawing.Point(4, 22); - this.tabPage1.Name = "tabPage1"; - this.tabPage1.Padding = new System.Windows.Forms.Padding(3); - this.tabPage1.Size = new System.Drawing.Size(317, 268); - this.tabPage1.TabIndex = 0; - this.tabPage1.Text = "Mart"; - this.tabPage1.UseVisualStyleBackColor = true; - // - // tabPage2 - // - this.tabPage2.Controls.Add(this.CB_LocationBPItem); - this.tabPage2.Controls.Add(this.label1); - this.tabPage2.Controls.Add(this.dgvbp); - this.tabPage2.Location = new System.Drawing.Point(4, 22); - this.tabPage2.Name = "tabPage2"; - this.tabPage2.Padding = new System.Windows.Forms.Padding(3); - this.tabPage2.Size = new System.Drawing.Size(317, 268); - this.tabPage2.TabIndex = 1; - this.tabPage2.Text = "BP Items"; - this.tabPage2.UseVisualStyleBackColor = true; - // - // tabPage3 - // - this.tabPage3.Controls.Add(this.dgvmv); - this.tabPage3.Controls.Add(this.label2); - this.tabPage3.Controls.Add(this.CB_LocationBPMove); - this.tabPage3.Location = new System.Drawing.Point(4, 22); - this.tabPage3.Name = "tabPage3"; - this.tabPage3.Padding = new System.Windows.Forms.Padding(3); - this.tabPage3.Size = new System.Drawing.Size(317, 268); - this.tabPage3.TabIndex = 2; - this.tabPage3.Text = "Tutors"; - this.tabPage3.UseVisualStyleBackColor = true; - // - // MartEditor7UU - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(344, 350); - this.Controls.Add(this.tabControl1); - this.Controls.Add(this.B_Cancel); - this.Controls.Add(this.B_Save); - this.Controls.Add(this.B_Randomize); - this.MaximizeBox = false; - this.MinimumSize = new System.Drawing.Size(360, 300); - this.Name = "MartEditor7UU"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Mart Editor"; - ((System.ComponentModel.ISupportInitialize)(this.dgv)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.dgvbp)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.dgvmv)).EndInit(); - this.tabControl1.ResumeLayout(false); - this.tabPage1.ResumeLayout(false); - this.tabPage1.PerformLayout(); - this.tabPage2.ResumeLayout(false); - this.tabPage2.PerformLayout(); - this.tabPage3.ResumeLayout(false); - this.tabPage3.PerformLayout(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.ComboBox CB_Location; - private System.Windows.Forms.DataGridView dgv; - private System.Windows.Forms.Label L_Mart; - private System.Windows.Forms.Button B_Randomize; - private System.Windows.Forms.Button B_Save; - private System.Windows.Forms.Button B_Cancel; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.ComboBox CB_LocationBPItem; - private System.Windows.Forms.DataGridViewComboBoxColumn dgvItem; - private System.Windows.Forms.DataGridViewTextBoxColumn dgvIndex; - private System.Windows.Forms.DataGridView dgvbp; - private System.Windows.Forms.DataGridViewTextBoxColumn dgvIndexBP; - private System.Windows.Forms.DataGridViewComboBoxColumn dgvItemBP; - private System.Windows.Forms.DataGridViewTextBoxColumn dgvPriceBP; - private System.Windows.Forms.DataGridView dgvmv; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.ComboBox CB_LocationBPMove; - private System.Windows.Forms.TabControl tabControl1; - private System.Windows.Forms.TabPage tabPage1; - private System.Windows.Forms.TabPage tabPage2; - private System.Windows.Forms.TabPage tabPage3; - private System.Windows.Forms.DataGridViewTextBoxColumn dgvmvIndex; - private System.Windows.Forms.DataGridViewComboBoxColumn dgvmvMove; - private System.Windows.Forms.DataGridViewTextBoxColumn dgvmvBP; - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/MartEditor7UU.cs b/pk3DS/Subforms/Gen7/MartEditor7UU.cs deleted file mode 100644 index 6f249d8bd8..0000000000 --- a/pk3DS/Subforms/Gen7/MartEditor7UU.cs +++ /dev/null @@ -1,286 +0,0 @@ -using pk3DS.Core; -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Windows.Forms; - -namespace pk3DS -{ - public partial class MartEditor7UU : Form - { - private readonly string CROPath = Path.Combine(Main.RomFSPath, "Shop.cro"); - public MartEditor7UU() - { - if (!File.Exists(CROPath)) - { - WinFormsUtil.Error("CRO does not exist! Closing.", CROPath); - Close(); - } - InitializeComponent(); - - - data = File.ReadAllBytes(CROPath); - len_BPTutor = data.Skip(0x52D2).Take(4).ToArray(); - len_BPItem = data.Skip(0x52D2 + 4).Take(7).ToArray(); - len_Items = data.Skip(0x52D2 + 4 + 7).TakeWhile(z => (sbyte) z > 0).ToArray(); - - itemlist[0] = ""; - setupDGV(); - foreach (string s in locations) CB_Location.Items.Add(s); - foreach (string s in locationsBP) CB_LocationBPItem.Items.Add(s); - foreach (string s in locationsTutor) CB_LocationBPMove.Items.Add(s); - CB_Location.SelectedIndex = - CB_LocationBPItem.SelectedIndex = - CB_LocationBPMove.SelectedIndex = 0; - } - private const int ofs_Item = 0x50BC; - private const int ofs_BPItem = 0x52FA; - private const int ofs_BPTutor = 0x54DE; - private readonly byte[] len_Items; - private readonly byte[] len_BPItem; - private readonly byte[] len_BPTutor; - - private readonly string[] itemlist = Main.Config.getText(TextName.ItemNames); - private readonly string[] movelist = Main.Config.getText(TextName.MoveNames); - private readonly byte[] data; - - #region Tables - private readonly string[] locations = - { - "No Trials", "1 Trial", "2 Trials", "3 Trials", "4 Trials", "5 Trials", "6 Trials", "7 Trials", - "Konikoni City [Incenses]", - "Konikoni City [Herbs]", - "Hau'oli City [X Items]", - "Route 2 [Misc]", - "Heahea City [TMs]", - "Royal Avenue [TMs]", - "Route 8 [Misc]", - "Paniola Town [Poké Balls]", - "Malie City [TMs]", - "Mount Hokulani [Vitamins]", - "Seafolk Village [TMs]", - "Konikoni City [TMs]", - "Konikoni City [Stones]", - "Thrifty Megamart 1 [Poké Balls]", - "Thrifty Megamart 2 [Misc]", - "Thrifty Megamart 3 [Strange Souvenir]", - "Route 3 [X Items]", - "Konikoni City [X Items]", - "Tapu Village [X Items]", - "Mount Lanakila [X Items]", - }; - private readonly string[] locationsBP = - { - "Battle Royal Dome [Medicine]", - "Battle Royal Dome [EV Training]", - "Battle Royal Dome [Held Items]", - "Battle Tree [Trade Evolution Items]", - "Battle Tree [Held Items]", - "Battle Tree [Mega Stones]", - "Medicine" - }; - private readonly string[] locationsTutor = - { - "Big Wave Beach", - "Heahea Beach", - "Ula'ula Beach", - "Battle Tree", - }; - #endregion - - private void B_Save_Click(object sender, EventArgs e) - { - if (entryItem > -1) setListItem(); - if (entryBPItem > -1) setListBPItem(); - if (entryBPMove > -1) setListBPMove(); - File.WriteAllBytes(CROPath, data); - Close(); - } - private void B_Cancel_Click(object sender, EventArgs e) => Close(); - - private void setupDGV() - { - foreach (string t in itemlist) - dgvItem.Items.Add(t); // add only the Names - foreach (string t in itemlist) - dgvItemBP.Items.Add(t); // add only the Names - foreach (string t in movelist) - dgvmvMove.Items.Add(t); // add only the Names - } - - private int entryItem = -1; - private int entryBPItem = -1; - private int entryBPMove = -1; - - private void changeIndexItem(object sender, EventArgs e) - { - if (entryItem > -1) setListItem(); - entryItem = CB_Location.SelectedIndex; - getListItem(); - } - private void changeIndexBPItem(object sender, EventArgs e) - { - if (entryBPItem > -1) setListBPItem(); - entryBPItem = CB_LocationBPItem.SelectedIndex; - getListBPItem(); - } - private void changeIndexBPMove(object sender, EventArgs e) - { - if (entryBPMove > -1) setListBPMove(); - entryBPMove = CB_LocationBPMove.SelectedIndex; - getListBPMove(); - } - - private void getListItem() - { - dgv.Rows.Clear(); - int count = len_Items[entryItem]; - dgv.Rows.Add(count); - var ofs = ofs_Item + len_Items.Take(entryItem).Sum(z => z) * 2; - for (int i = 0; i < count; i++) - { - dgv.Rows[i].Cells[0].Value = i.ToString(); - dgv.Rows[i].Cells[1].Value = itemlist[BitConverter.ToUInt16(data, ofs + 2 * i)]; - } - } - private void getListBPItem() - { - dgvbp.Rows.Clear(); - int count = len_BPItem[entryBPItem]; - dgvbp.Rows.Add(count); - var ofs = ofs_BPItem + len_BPItem.Take(entryBPItem).Sum(z => z) * 4; - for (int i = 0; i < count; i++) - { - dgvbp.Rows[i].Cells[0].Value = i.ToString(); - dgvbp.Rows[i].Cells[1].Value = itemlist[BitConverter.ToUInt16(data, ofs + 4 * i)]; - dgvbp.Rows[i].Cells[2].Value = BitConverter.ToUInt16(data, ofs + 4 * i + 2).ToString(); - } - } - private void getListBPMove() - { - dgvmv.Rows.Clear(); - int count = len_BPTutor[entryBPMove]; - dgvmv.Rows.Add(count); - var ofs = ofs_BPTutor + len_BPTutor.Take(entryBPMove).Sum(z => z) * 4; - for (int i = 0; i < count; i++) - { - dgvmv.Rows[i].Cells[0].Value = i.ToString(); - dgvmv.Rows[i].Cells[1].Value = movelist[BitConverter.ToUInt16(data, ofs + 4 * i)]; - dgvmv.Rows[i].Cells[2].Value = BitConverter.ToUInt16(data, ofs + 4 * i + 2).ToString(); - } - } - - private void setListItem() - { - int count = dgv.Rows.Count; - var ofs = ofs_Item + len_Items.Take(entryItem).Sum(z => z) * 2; - for (int i = 0; i < count; i++) - Array.Copy(BitConverter.GetBytes((ushort)Array.IndexOf(itemlist, dgv.Rows[i].Cells[1].Value)), 0, data, ofs + 2 * i, 2); - } - private void setListBPItem() - { - int count = dgvbp.Rows.Count; - var ofs = ofs_BPItem + len_BPItem.Take(entryBPItem).Sum(z => z) * 4; - for (int i = 0; i < count; i++) - { - int item = Array.IndexOf(itemlist, dgvbp.Rows[i].Cells[1].Value); - Array.Copy(BitConverter.GetBytes((ushort)item), 0, data, ofs + 4 * i, 2); - int price; string p = dgvbp.Rows[i].Cells[2].Value.ToString(); - if (int.TryParse(p, out price)) - Array.Copy(BitConverter.GetBytes((ushort)price), 0, data, ofs + 4 * i + 2, 2); - } - } - private void setListBPMove() - { - int count = dgvmv.Rows.Count; - var ofs = ofs_BPTutor + len_BPTutor.Take(entryBPMove).Sum(z => z) * 4; - for (int i = 0; i < count; i++) - { - int item = Array.IndexOf(movelist, dgvmv.Rows[i].Cells[1].Value); - Array.Copy(BitConverter.GetBytes((ushort)item), 0, data, ofs + 4 * i, 2); - int price; string p = dgvmv.Rows[i].Cells[2].Value.ToString(); - if (int.TryParse(p, out price)) - Array.Copy(BitConverter.GetBytes((ushort)price), 0, data, ofs + 4 * i + 2, 2); - } - } - - private void B_Randomize_Click(object sender, EventArgs e) - { - switch (tabControl1.SelectedIndex) - { - case 0: - RandomizeItems(); - break; - case 1: - RandomizeBPItems(); - break; - default: - WinFormsUtil.Alert("Not implemented"); - break; - } - } - private void RandomizeItems() - { - if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Randomize mart inventories?")) - return; - - int[] validItems = Randomizer.getRandomItemList(); - - int ctr = 0; - Util.Shuffle(validItems); - - bool specialOnly = DialogResult.Yes == WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomize only special marts?", "Will leave regular necessities intact."); - int start = specialOnly ? 8 : 0; - for (int i = start; i < CB_Location.Items.Count; i++) - { - CB_Location.SelectedIndex = i; - for (int r = 0; r < dgv.Rows.Count; r++) - { - int currentItem = Array.IndexOf(itemlist, dgv.Rows[r].Cells[1].Value); - if (BannedItems.Contains(currentItem)) - continue; - dgv.Rows[r].Cells[1].Value = itemlist[validItems[ctr++]]; - if (ctr <= validItems.Length) continue; - Util.Shuffle(validItems); ctr = 0; - } - } - WinFormsUtil.Alert("Randomized!"); - } - private void RandomizeBPItems() - { - if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Randomize BP inventories?")) - return; - - int[] validItems = Randomizer.getRandomItemList(); - - int ctr = 0; - Util.Shuffle(validItems); - - for (int i = 0; i < CB_LocationBPItem.Items.Count; i++) - { - CB_LocationBPItem.SelectedIndex = i; - for (int r = 0; r < dgvbp.Rows.Count; r++) - { - dgvbp.Rows[r].Cells[1].Value = itemlist[validItems[ctr++]]; - if (ctr <= validItems.Length) continue; - Util.Shuffle(validItems); ctr = 0; - } - } - WinFormsUtil.Alert("Randomized!"); - } - - /// - /// Just TMs & HMs; don't want these to be changed; if changed, they are not available elsewhere ingame. - /// - internal static readonly HashSet BannedItems = new HashSet - { - 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, - 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, - 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 618, 619, 620, 690, 691, - 692, 693, 694, 701, 737 - }; - } -} diff --git a/pk3DS/Subforms/Gen7/MegaEvoEditor7.Designer.cs b/pk3DS/Subforms/Gen7/MegaEvoEditor7.Designer.cs deleted file mode 100644 index 87437c882e..0000000000 --- a/pk3DS/Subforms/Gen7/MegaEvoEditor7.Designer.cs +++ /dev/null @@ -1,342 +0,0 @@ -namespace pk3DS -{ - partial class MegaEvoEditor7 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.LBL_Item1 = new System.Windows.Forms.Label(); - this.LBL_Forme1 = new System.Windows.Forms.Label(); - this.GB_MEvo1 = new System.Windows.Forms.GroupBox(); - this.LBL_Into1 = new System.Windows.Forms.Label(); - this.PB_M1 = new System.Windows.Forms.PictureBox(); - this.PB_S1 = new System.Windows.Forms.PictureBox(); - this.CB_Forme1 = new System.Windows.Forms.ComboBox(); - this.CB_Item1 = new System.Windows.Forms.ComboBox(); - this.GB_MEvo2 = new System.Windows.Forms.GroupBox(); - this.LBL_Into2 = new System.Windows.Forms.Label(); - this.PB_M2 = new System.Windows.Forms.PictureBox(); - this.CB_Forme2 = new System.Windows.Forms.ComboBox(); - this.PB_S2 = new System.Windows.Forms.PictureBox(); - this.CB_Item2 = new System.Windows.Forms.ComboBox(); - this.LBL_Forme2 = new System.Windows.Forms.Label(); - this.LBL_Item2 = new System.Windows.Forms.Label(); - this.CHK_MEvo1 = new System.Windows.Forms.CheckBox(); - this.CHK_MEvo2 = new System.Windows.Forms.CheckBox(); - this.CB_Species = new System.Windows.Forms.ComboBox(); - this.bpkx = new System.Windows.Forms.PictureBox(); - this.B_Dump = new System.Windows.Forms.Button(); - this.GB_MEvo1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.PB_M1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_S1)).BeginInit(); - this.GB_MEvo2.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.PB_M2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_S2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.bpkx)).BeginInit(); - this.SuspendLayout(); - // - // LBL_Item1 - // - this.LBL_Item1.AutoSize = true; - this.LBL_Item1.Location = new System.Drawing.Point(6, 20); - this.LBL_Item1.Name = "LBL_Item1"; - this.LBL_Item1.Size = new System.Drawing.Size(27, 13); - this.LBL_Item1.TabIndex = 9; - this.LBL_Item1.Text = "Item"; - // - // LBL_Forme1 - // - this.LBL_Forme1.AutoSize = true; - this.LBL_Forme1.Location = new System.Drawing.Point(6, 65); - this.LBL_Forme1.Name = "LBL_Forme1"; - this.LBL_Forme1.Size = new System.Drawing.Size(85, 13); - this.LBL_Forme1.TabIndex = 10; - this.LBL_Forme1.Text = "Alt Forme (if any)"; - // - // GB_MEvo1 - // - this.GB_MEvo1.Controls.Add(this.LBL_Into1); - this.GB_MEvo1.Controls.Add(this.PB_M1); - this.GB_MEvo1.Controls.Add(this.PB_S1); - this.GB_MEvo1.Controls.Add(this.CB_Forme1); - this.GB_MEvo1.Controls.Add(this.CB_Item1); - this.GB_MEvo1.Controls.Add(this.LBL_Forme1); - this.GB_MEvo1.Controls.Add(this.LBL_Item1); - this.GB_MEvo1.Enabled = false; - this.GB_MEvo1.Location = new System.Drawing.Point(12, 62); - this.GB_MEvo1.Name = "GB_MEvo1"; - this.GB_MEvo1.Size = new System.Drawing.Size(126, 142); - this.GB_MEvo1.TabIndex = 11; - this.GB_MEvo1.TabStop = false; - this.GB_MEvo1.Text = "Evolution 1"; - // - // LBL_Into1 - // - this.LBL_Into1.AutoSize = true; - this.LBL_Into1.Location = new System.Drawing.Point(51, 117); - this.LBL_Into1.Name = "LBL_Into1"; - this.LBL_Into1.Size = new System.Drawing.Size(28, 13); - this.LBL_Into1.TabIndex = 34; - this.LBL_Into1.Text = "Into:"; - // - // PB_M1 - // - this.PB_M1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.PB_M1.Location = new System.Drawing.Point(81, 106); - this.PB_M1.Name = "PB_M1"; - this.PB_M1.Size = new System.Drawing.Size(42, 32); - this.PB_M1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; - this.PB_M1.TabIndex = 33; - this.PB_M1.TabStop = false; - // - // PB_S1 - // - this.PB_S1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.PB_S1.Location = new System.Drawing.Point(5, 106); - this.PB_S1.Name = "PB_S1"; - this.PB_S1.Size = new System.Drawing.Size(42, 32); - this.PB_S1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; - this.PB_S1.TabIndex = 32; - this.PB_S1.TabStop = false; - // - // CB_Forme1 - // - this.CB_Forme1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Forme1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Forme1.FormattingEnabled = true; - this.CB_Forme1.Location = new System.Drawing.Point(5, 82); - this.CB_Forme1.Name = "CB_Forme1"; - this.CB_Forme1.Size = new System.Drawing.Size(121, 21); - this.CB_Forme1.TabIndex = 18; - this.CB_Forme1.SelectedIndexChanged += new System.EventHandler(this.Update_PBs); - // - // CB_Item1 - // - this.CB_Item1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Item1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Item1.FormattingEnabled = true; - this.CB_Item1.Location = new System.Drawing.Point(2, 35); - this.CB_Item1.Name = "CB_Item1"; - this.CB_Item1.Size = new System.Drawing.Size(121, 21); - this.CB_Item1.TabIndex = 12; - this.CB_Item1.SelectedValueChanged += new System.EventHandler(this.Update_PBs); - // - // GB_MEvo2 - // - this.GB_MEvo2.Controls.Add(this.LBL_Into2); - this.GB_MEvo2.Controls.Add(this.PB_M2); - this.GB_MEvo2.Controls.Add(this.CB_Forme2); - this.GB_MEvo2.Controls.Add(this.PB_S2); - this.GB_MEvo2.Controls.Add(this.CB_Item2); - this.GB_MEvo2.Controls.Add(this.LBL_Forme2); - this.GB_MEvo2.Controls.Add(this.LBL_Item2); - this.GB_MEvo2.Enabled = false; - this.GB_MEvo2.Location = new System.Drawing.Point(144, 62); - this.GB_MEvo2.Name = "GB_MEvo2"; - this.GB_MEvo2.Size = new System.Drawing.Size(126, 142); - this.GB_MEvo2.TabIndex = 12; - this.GB_MEvo2.TabStop = false; - this.GB_MEvo2.Text = "Evolution 2"; - // - // LBL_Into2 - // - this.LBL_Into2.AutoSize = true; - this.LBL_Into2.Location = new System.Drawing.Point(52, 117); - this.LBL_Into2.Name = "LBL_Into2"; - this.LBL_Into2.Size = new System.Drawing.Size(28, 13); - this.LBL_Into2.TabIndex = 35; - this.LBL_Into2.Text = "Into:"; - // - // PB_M2 - // - this.PB_M2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.PB_M2.Location = new System.Drawing.Point(80, 106); - this.PB_M2.Name = "PB_M2"; - this.PB_M2.Size = new System.Drawing.Size(42, 32); - this.PB_M2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; - this.PB_M2.TabIndex = 35; - this.PB_M2.TabStop = false; - // - // CB_Forme2 - // - this.CB_Forme2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Forme2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Forme2.FormattingEnabled = true; - this.CB_Forme2.Location = new System.Drawing.Point(2, 82); - this.CB_Forme2.Name = "CB_Forme2"; - this.CB_Forme2.Size = new System.Drawing.Size(121, 21); - this.CB_Forme2.TabIndex = 19; - this.CB_Forme2.SelectedIndexChanged += new System.EventHandler(this.Update_PBs); - // - // PB_S2 - // - this.PB_S2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.PB_S2.Location = new System.Drawing.Point(4, 106); - this.PB_S2.Name = "PB_S2"; - this.PB_S2.Size = new System.Drawing.Size(42, 32); - this.PB_S2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; - this.PB_S2.TabIndex = 34; - this.PB_S2.TabStop = false; - // - // CB_Item2 - // - this.CB_Item2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Item2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Item2.FormattingEnabled = true; - this.CB_Item2.Location = new System.Drawing.Point(2, 36); - this.CB_Item2.Name = "CB_Item2"; - this.CB_Item2.Size = new System.Drawing.Size(121, 21); - this.CB_Item2.TabIndex = 13; - this.CB_Item2.SelectedValueChanged += new System.EventHandler(this.Update_PBs); - // - // LBL_Forme2 - // - this.LBL_Forme2.AutoSize = true; - this.LBL_Forme2.Location = new System.Drawing.Point(6, 65); - this.LBL_Forme2.Name = "LBL_Forme2"; - this.LBL_Forme2.Size = new System.Drawing.Size(85, 13); - this.LBL_Forme2.TabIndex = 10; - this.LBL_Forme2.Text = "Alt Forme (if any)"; - // - // LBL_Item2 - // - this.LBL_Item2.AutoSize = true; - this.LBL_Item2.Location = new System.Drawing.Point(6, 20); - this.LBL_Item2.Name = "LBL_Item2"; - this.LBL_Item2.Size = new System.Drawing.Size(27, 13); - this.LBL_Item2.TabIndex = 9; - this.LBL_Item2.Text = "Item"; - // - // CHK_MEvo1 - // - this.CHK_MEvo1.AutoSize = true; - this.CHK_MEvo1.Location = new System.Drawing.Point(12, 39); - this.CHK_MEvo1.Name = "CHK_MEvo1"; - this.CHK_MEvo1.Size = new System.Drawing.Size(65, 17); - this.CHK_MEvo1.TabIndex = 13; - this.CHK_MEvo1.Text = "Enabled"; - this.CHK_MEvo1.UseVisualStyleBackColor = true; - this.CHK_MEvo1.CheckedChanged += new System.EventHandler(this.CHK_Changed); - // - // CHK_MEvo2 - // - this.CHK_MEvo2.AutoSize = true; - this.CHK_MEvo2.Location = new System.Drawing.Point(144, 39); - this.CHK_MEvo2.Name = "CHK_MEvo2"; - this.CHK_MEvo2.Size = new System.Drawing.Size(65, 17); - this.CHK_MEvo2.TabIndex = 14; - this.CHK_MEvo2.Text = "Enabled"; - this.CHK_MEvo2.UseVisualStyleBackColor = true; - this.CHK_MEvo2.CheckedChanged += new System.EventHandler(this.CHK_Changed); - // - // CB_Species - // - this.CB_Species.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Species.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Species.FormattingEnabled = true; - this.CB_Species.Location = new System.Drawing.Point(12, 12); - this.CB_Species.Name = "CB_Species"; - this.CB_Species.Size = new System.Drawing.Size(181, 21); - this.CB_Species.TabIndex = 15; - this.CB_Species.SelectedIndexChanged += new System.EventHandler(this.changeIndex); - // - // bpkx - // - this.bpkx.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.bpkx.Location = new System.Drawing.Point(308, 99); - this.bpkx.Name = "bpkx"; - this.bpkx.Size = new System.Drawing.Size(42, 32); - this.bpkx.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage; - this.bpkx.TabIndex = 31; - this.bpkx.TabStop = false; - // - // B_Dump - // - this.B_Dump.Location = new System.Drawing.Point(199, 10); - this.B_Dump.Name = "B_Dump"; - this.B_Dump.Size = new System.Drawing.Size(75, 23); - this.B_Dump.TabIndex = 18; - this.B_Dump.Text = "Dump"; - this.B_Dump.UseVisualStyleBackColor = true; - this.B_Dump.Click += new System.EventHandler(this.B_Dump_Click); - // - // MegaEvoEditor7 - // - this.AllowDrop = true; - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(284, 211); - this.Controls.Add(this.B_Dump); - this.Controls.Add(this.CB_Species); - this.Controls.Add(this.CHK_MEvo2); - this.Controls.Add(this.CHK_MEvo1); - this.Controls.Add(this.GB_MEvo2); - this.Controls.Add(this.GB_MEvo1); - this.MaximizeBox = false; - this.MaximumSize = new System.Drawing.Size(300, 250); - this.MinimumSize = new System.Drawing.Size(300, 250); - this.Name = "MegaEvoEditor7"; - this.Text = "Mega Evo Editor"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.formClosing); - this.GB_MEvo1.ResumeLayout(false); - this.GB_MEvo1.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.PB_M1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_S1)).EndInit(); - this.GB_MEvo2.ResumeLayout(false); - this.GB_MEvo2.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.PB_M2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_S2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.bpkx)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Label LBL_Item1; - private System.Windows.Forms.Label LBL_Forme1; - private System.Windows.Forms.GroupBox GB_MEvo1; - private System.Windows.Forms.GroupBox GB_MEvo2; - private System.Windows.Forms.Label LBL_Forme2; - private System.Windows.Forms.Label LBL_Item2; - private System.Windows.Forms.CheckBox CHK_MEvo1; - private System.Windows.Forms.CheckBox CHK_MEvo2; - private System.Windows.Forms.ComboBox CB_Species; - private System.Windows.Forms.ComboBox CB_Item1; - private System.Windows.Forms.ComboBox CB_Item2; - private System.Windows.Forms.ComboBox CB_Forme1; - private System.Windows.Forms.ComboBox CB_Forme2; - private System.Windows.Forms.PictureBox PB_M1; - private System.Windows.Forms.PictureBox PB_S1; - private System.Windows.Forms.PictureBox PB_M2; - private System.Windows.Forms.PictureBox PB_S2; - private System.Windows.Forms.PictureBox bpkx; - private System.Windows.Forms.Label LBL_Into1; - private System.Windows.Forms.Label LBL_Into2; - private System.Windows.Forms.Button B_Dump; - } -} diff --git a/pk3DS/Subforms/Gen7/MegaEvoEditor7.cs b/pk3DS/Subforms/Gen7/MegaEvoEditor7.cs deleted file mode 100644 index 27bfd212c8..0000000000 --- a/pk3DS/Subforms/Gen7/MegaEvoEditor7.cs +++ /dev/null @@ -1,219 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Media; -using System.Text; -using System.Windows.Forms; - -using pk3DS.Core; -using pk3DS.Core.Structures; - -namespace pk3DS -{ - public partial class MegaEvoEditor7 : Form - { - private readonly byte[][] files; - private readonly string[] forms = Main.Config.getText(TextName.Forms); - private readonly string[] types = Main.Config.getText(TextName.Types); - private readonly string[] specieslist = Main.Config.getText(TextName.SpeciesNames); - private readonly string[] itemlist = Main.Config.getText(TextName.ItemNames); - private readonly GroupBox[] groupbox_spec; - private readonly ComboBox[] forme_spec; - private readonly ComboBox[] item_spec; - private readonly CheckBox[] checkbox_spec; - private readonly PictureBox[][] picturebox_spec; - private bool loaded; - private readonly string[][] AltForms; - private int entry = -1; - private bool dumping; - private MegaEvolutions me; - - public MegaEvoEditor7(byte[][] infiles) // All the initial settings - { - files = infiles; - InitializeComponent(); - CB_Species.DisplayMember = "Text"; - CB_Species.ValueMember = "Value"; - #region Intializations - - Array.Resize(ref specieslist, Main.Config.MaxSpeciesID + 1); - specieslist[0] = itemlist[0] = ""; - specieslist[32] += "♂"; specieslist[29] += "♀"; - AltForms = Main.Config.Personal.getFormList(specieslist, Main.Config.MaxSpeciesID); - - groupbox_spec = new[] { GB_MEvo1, GB_MEvo2 }; - item_spec = new[] { CB_Item1, CB_Item2 }; - forme_spec = new[] { CB_Forme1, CB_Forme2 }; - checkbox_spec = new[] { CHK_MEvo1, CHK_MEvo2 }; - picturebox_spec = new[] { new[] { PB_S1, PB_S2 }, new[] { PB_M1, PB_M2 } }; - #endregion - Setup(); - CB_Species.SelectedIndex = 0; - } - private void Setup() - { - List temp_list = new List(specieslist); - temp_list.Sort(); - - CB_Species.DataSource = temp_list.Select(mon => new WinFormsUtil.cbItem { Text = mon, Value = Array.IndexOf(specieslist, mon) }).ToList(); - - List items = new List(itemlist); - List sorted_items = new List(itemlist); - List[] item_lists = new List[item_spec.Length]; - for (int i = 0; i < item_lists.Length; i++) - item_lists[i] = new List(); - - sorted_items.Sort(); - for (int i = 0; i < items.Count; i++) - { - int index = items.IndexOf(sorted_items[i]); - { - var ncbi = new WinFormsUtil.cbItem(); - if (sorted_items[i] == "???") continue; // Don't allow stubbed items. - ncbi.Text = sorted_items[i] + " - " + index.ToString("000"); - ncbi.Value = index; - foreach (List l in item_lists) - l.Add(ncbi); - } - items[index] = ""; - } - for (int i = 0; i < item_spec.Length; i++) - { - item_spec[i].ValueMember = "Value"; - item_spec[i].DisplayMember = "Text"; - item_spec[i].DataSource = item_lists[i]; - item_spec[i].SelectedValue = 0; - } - - loaded = true; - } - private void CHK_Changed(object sender, EventArgs e) - { - for (int i = 0; i < groupbox_spec.Length; i++) - { - groupbox_spec[i].Enabled = checkbox_spec[i].Checked; - Update_PBs(i); - } - } - - private void changeIndex(object sender, EventArgs e) - { - setEntry(); - entry = (int)CB_Species.SelectedValue; - getEntry(); - } - private void getEntry() - { - if (!loaded) return; - if (Main.Config.ORAS && entry == 384 && !dumping) // Current Mon is Rayquaza - WinFormsUtil.Alert("Rayquaza is special and uses a different activator for its evolution. If it knows Dragon Ascent, it can Mega Evolve", "Don't edit its evolution table if you want to keep this functionality."); - - byte[] data = files[entry]; - - foreach (ComboBox CB in forme_spec) - FormUtil.setForms(entry, CB, AltForms); - - me = new MegaEvolutions(data); - for (int i = 0; i < 2; i++) - { - checkbox_spec[i].Checked = me.Method[i] == 1; - item_spec[i].SelectedValue = (int)me.Argument[i]; - forme_spec[i].SelectedIndex = me.Form[i]; - } - } - private void setEntry() - { - if (entry < 1 || entry == 384) return; // Don't edit invalid / Rayquaza. - for (int i = 0; i < 2; i++) - { - if (me.Method[i] > 1) - return; // Shouldn't hit this. - me.Method[i] = (ushort)(checkbox_spec[i].Checked ? 1 : 0); - me.Argument[i] = (ushort)WinFormsUtil.getIndex(item_spec[i]); - me.Form[i] = (ushort)forme_spec[i].SelectedIndex; - } - files[entry] = me.Write(); - } - - private void Update_PBs(object sender, EventArgs e) - { - if (!loaded) return; - for (int i = 0; i < checkbox_spec.Length; i++) - { - CheckBox CB = checkbox_spec[i]; - if (CB.Checked) - { - UpdateImage(picturebox_spec[0][i], entry, 0, WinFormsUtil.getIndex(item_spec[i]), 0); - UpdateImage(picturebox_spec[1][i], entry, forme_spec[i].SelectedIndex, WinFormsUtil.getIndex(item_spec[i]), 0); - } - else - { - UpdateImage(picturebox_spec[0][i], 0, 0, WinFormsUtil.getIndex(item_spec[i]), 0); - UpdateImage(picturebox_spec[1][i], 0, 0, WinFormsUtil.getIndex(item_spec[i]), 0); - } - } - } - - private void Update_PBs(int i) - { - if (!loaded) return; - CheckBox CB = checkbox_spec[i]; - if (CB.Checked) - { - UpdateImage(picturebox_spec[0][i], entry, 0, WinFormsUtil.getIndex(item_spec[i]), 0); - UpdateImage(picturebox_spec[1][i], entry, forme_spec[i].SelectedIndex, WinFormsUtil.getIndex(item_spec[i]), 0); - } - else - { - UpdateImage(picturebox_spec[0][i], 0, 0, WinFormsUtil.getIndex(item_spec[i]), 0); - UpdateImage(picturebox_spec[1][i], 0, 0, WinFormsUtil.getIndex(item_spec[i]), 0); - } - } - - private void UpdateImage(PictureBox pb, int species, int form, int item, int gender) - { - if (!pb.Enabled) - { - pb.Image = null; - return; - } - pb.Image = WinFormsUtil.getSprite(species, form, gender, item, Main.Config); - } - private void formClosing(object sender, FormClosingEventArgs e) - { - setEntry(); - } - - private void B_Dump_Click(object sender, EventArgs e) - { - if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Dump all Mega Evolutions to Text File?")) - return; - dumping = true; - string result = ""; - - for (int i = 0; i < Main.Config.MaxSpeciesID; i++) - { - CB_Species.SelectedValue = i; // Get new Species - string header = "======" + Environment.NewLine + entry + " " + CB_Species.Text + Environment.NewLine + "======" + Environment.NewLine; - bool headered = false; - for (int j = 0; j < 2; j++) - { - if (!checkbox_spec[j].Checked) continue; - if (!headered) { result += header; headered = true; } - result += string.Format("Can Mega Evolve into {1} if its held item is {0}." + Environment.NewLine, itemlist[(int)item_spec[j].SelectedValue], forme_spec[j].Text); - } - - if (headered) - result += Environment.NewLine; - } - SaveFileDialog sfd = new SaveFileDialog {FileName = "Mega Evolutions.txt", Filter = "Text File|*.txt"}; - - SystemSounds.Asterisk.Play(); - if (sfd.ShowDialog() == DialogResult.OK) - File.WriteAllText(sfd.FileName, result, Encoding.Unicode); - - dumping = false; - } - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/MoveEditor7.Designer.cs b/pk3DS/Subforms/Gen7/MoveEditor7.Designer.cs deleted file mode 100644 index 86bce823df..0000000000 --- a/pk3DS/Subforms/Gen7/MoveEditor7.Designer.cs +++ /dev/null @@ -1,995 +0,0 @@ -namespace pk3DS -{ - partial class MoveEditor7 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.L_Type = new System.Windows.Forms.Label(); - this.CB_Move = new System.Windows.Forms.ComboBox(); - this.L_Move = new System.Windows.Forms.Label(); - this.CB_Type = new System.Windows.Forms.ComboBox(); - this.CB_Category = new System.Windows.Forms.ComboBox(); - this.L_Category = new System.Windows.Forms.Label(); - this.L_BP = new System.Windows.Forms.Label(); - this.L_PP = new System.Windows.Forms.Label(); - this.L_Min = new System.Windows.Forms.Label(); - this.L_Max = new System.Windows.Forms.Label(); - this.L_Priority = new System.Windows.Forms.Label(); - this.NUD_HitMax = new System.Windows.Forms.NumericUpDown(); - this.NUD_HitMin = new System.Windows.Forms.NumericUpDown(); - this.NUD_Priority = new System.Windows.Forms.NumericUpDown(); - this.NUD_PP = new System.Windows.Forms.NumericUpDown(); - this.NUD_Power = new System.Windows.Forms.NumericUpDown(); - this.NUD_TurnMin = new System.Windows.Forms.NumericUpDown(); - this.L_TrapMin = new System.Windows.Forms.Label(); - this.NUD_TurnMax = new System.Windows.Forms.NumericUpDown(); - this.L_TrapMax = new System.Windows.Forms.Label(); - this.NUD_Recoil = new System.Windows.Forms.NumericUpDown(); - this.L_Recoil = new System.Windows.Forms.Label(); - this.NUD_Heal = new System.Windows.Forms.NumericUpDown(); - this.L_Heal = new System.Windows.Forms.Label(); - this.NUD_CritStage = new System.Windows.Forms.NumericUpDown(); - this.L_CritStage = new System.Windows.Forms.Label(); - this.NUD_Flinch = new System.Windows.Forms.NumericUpDown(); - this.L_Flinch = new System.Windows.Forms.Label(); - this.GB_Stat = new System.Windows.Forms.GroupBox(); - this.NUD_StatP3 = new System.Windows.Forms.NumericUpDown(); - this.NUD_StatP2 = new System.Windows.Forms.NumericUpDown(); - this.NUD_StatP1 = new System.Windows.Forms.NumericUpDown(); - this.NUD_Stat2 = new System.Windows.Forms.NumericUpDown(); - this.NUD_Stat3 = new System.Windows.Forms.NumericUpDown(); - this.NUD_Stat1 = new System.Windows.Forms.NumericUpDown(); - this.CB_Stat3 = new System.Windows.Forms.ComboBox(); - this.CB_Stat2 = new System.Windows.Forms.ComboBox(); - this.CB_Stat1 = new System.Windows.Forms.ComboBox(); - this.L_Stage3 = new System.Windows.Forms.Label(); - this.L_Stage2 = new System.Windows.Forms.Label(); - this.L_Stage1 = new System.Windows.Forms.Label(); - this.L_Targeting = new System.Windows.Forms.Label(); - this.L_Influcts = new System.Windows.Forms.Label(); - this.RTB = new System.Windows.Forms.RichTextBox(); - this.CB_Targeting = new System.Windows.Forms.ComboBox(); - this.CB_Inflict = new System.Windows.Forms.ComboBox(); - this.L_Inflict = new System.Windows.Forms.Label(); - this.NUD_Inflict = new System.Windows.Forms.NumericUpDown(); - this.NUD_Effect = new System.Windows.Forms.NumericUpDown(); - this.L_Effect = new System.Windows.Forms.Label(); - this.NUD_Accuracy = new System.Windows.Forms.NumericUpDown(); - this.L_Accuracy = new System.Windows.Forms.Label(); - this.CB_Quality = new System.Windows.Forms.ComboBox(); - this.L_Quality = new System.Windows.Forms.Label(); - this.L_0xB = new System.Windows.Forms.Label(); - this.NUD_0xB = new System.Windows.Forms.NumericUpDown(); - this.NUD_0x20 = new System.Windows.Forms.NumericUpDown(); - this.NUD_0x21 = new System.Windows.Forms.NumericUpDown(); - this.L_0x20 = new System.Windows.Forms.Label(); - this.L_0x21 = new System.Windows.Forms.Label(); - this.B_RandAll = new System.Windows.Forms.Button(); - this.groupBox1 = new System.Windows.Forms.GroupBox(); - this.CHK_Type = new System.Windows.Forms.CheckBox(); - this.CHK_Category = new System.Windows.Forms.CheckBox(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_HitMax)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_HitMin)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Priority)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_PP)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Power)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_TurnMin)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_TurnMax)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Recoil)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Heal)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_CritStage)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Flinch)).BeginInit(); - this.GB_Stat.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_StatP3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_StatP2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_StatP1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Stat2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Stat3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Stat1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Inflict)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Effect)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Accuracy)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_0xB)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_0x20)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_0x21)).BeginInit(); - this.groupBox1.SuspendLayout(); - this.SuspendLayout(); - // - // L_Type - // - this.L_Type.AutoSize = true; - this.L_Type.Location = new System.Drawing.Point(32, 38); - this.L_Type.Name = "L_Type"; - this.L_Type.Size = new System.Drawing.Size(34, 13); - this.L_Type.TabIndex = 0; - this.L_Type.Text = "Type:"; - this.L_Type.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // CB_Move - // - this.CB_Move.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Move.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Move.DropDownWidth = 120; - this.CB_Move.FormattingEnabled = true; - this.CB_Move.Location = new System.Drawing.Point(71, 10); - this.CB_Move.Name = "CB_Move"; - this.CB_Move.Size = new System.Drawing.Size(130, 21); - this.CB_Move.TabIndex = 1; - this.CB_Move.SelectedIndexChanged += new System.EventHandler(this.changeEntry); - // - // L_Move - // - this.L_Move.AutoSize = true; - this.L_Move.Location = new System.Drawing.Point(33, 13); - this.L_Move.Name = "L_Move"; - this.L_Move.Size = new System.Drawing.Size(37, 13); - this.L_Move.TabIndex = 2; - this.L_Move.Text = "Move:"; - this.L_Move.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // CB_Type - // - this.CB_Type.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_Type.FormattingEnabled = true; - this.CB_Type.Location = new System.Drawing.Point(71, 35); - this.CB_Type.Name = "CB_Type"; - this.CB_Type.Size = new System.Drawing.Size(99, 21); - this.CB_Type.TabIndex = 3; - // - // CB_Category - // - this.CB_Category.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_Category.FormattingEnabled = true; - this.CB_Category.Location = new System.Drawing.Point(71, 58); - this.CB_Category.Name = "CB_Category"; - this.CB_Category.Size = new System.Drawing.Size(99, 21); - this.CB_Category.TabIndex = 4; - // - // L_Category - // - this.L_Category.AutoSize = true; - this.L_Category.Location = new System.Drawing.Point(18, 61); - this.L_Category.Name = "L_Category"; - this.L_Category.Size = new System.Drawing.Size(52, 13); - this.L_Category.TabIndex = 5; - this.L_Category.Text = "Category:"; - this.L_Category.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_BP - // - this.L_BP.AutoSize = true; - this.L_BP.Location = new System.Drawing.Point(26, 132); - this.L_BP.Name = "L_BP"; - this.L_BP.Size = new System.Drawing.Size(40, 13); - this.L_BP.TabIndex = 7; - this.L_BP.Text = "Power:"; - this.L_BP.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_PP - // - this.L_PP.AutoSize = true; - this.L_PP.Location = new System.Drawing.Point(15, 174); - this.L_PP.Name = "L_PP"; - this.L_PP.Size = new System.Drawing.Size(51, 13); - this.L_PP.TabIndex = 8; - this.L_PP.Text = "Base PP:"; - this.L_PP.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_Min - // - this.L_Min.AutoSize = true; - this.L_Min.Location = new System.Drawing.Point(236, 132); - this.L_Min.Name = "L_Min"; - this.L_Min.Size = new System.Drawing.Size(48, 13); - this.L_Min.TabIndex = 10; - this.L_Min.Text = "Min Hits:"; - this.L_Min.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_Max - // - this.L_Max.AutoSize = true; - this.L_Max.Location = new System.Drawing.Point(233, 153); - this.L_Max.Name = "L_Max"; - this.L_Max.Size = new System.Drawing.Size(51, 13); - this.L_Max.TabIndex = 12; - this.L_Max.Text = "Max Hits:"; - this.L_Max.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_Priority - // - this.L_Priority.AutoSize = true; - this.L_Priority.Location = new System.Drawing.Point(25, 195); - this.L_Priority.Name = "L_Priority"; - this.L_Priority.Size = new System.Drawing.Size(41, 13); - this.L_Priority.TabIndex = 17; - this.L_Priority.Text = "Priority:"; - // - // NUD_HitMax - // - this.NUD_HitMax.Location = new System.Drawing.Point(290, 151); - this.NUD_HitMax.Maximum = new decimal(new int[] { - 6, - 0, - 0, - 0}); - this.NUD_HitMax.Name = "NUD_HitMax"; - this.NUD_HitMax.Size = new System.Drawing.Size(30, 20); - this.NUD_HitMax.TabIndex = 18; - // - // NUD_HitMin - // - this.NUD_HitMin.Location = new System.Drawing.Point(290, 130); - this.NUD_HitMin.Maximum = new decimal(new int[] { - 6, - 0, - 0, - 0}); - this.NUD_HitMin.Name = "NUD_HitMin"; - this.NUD_HitMin.Size = new System.Drawing.Size(30, 20); - this.NUD_HitMin.TabIndex = 19; - // - // NUD_Priority - // - this.NUD_Priority.Location = new System.Drawing.Point(72, 193); - this.NUD_Priority.Maximum = new decimal(new int[] { - 8, - 0, - 0, - 0}); - this.NUD_Priority.Minimum = new decimal(new int[] { - 8, - 0, - 0, - -2147483648}); - this.NUD_Priority.Name = "NUD_Priority"; - this.NUD_Priority.Size = new System.Drawing.Size(35, 20); - this.NUD_Priority.TabIndex = 20; - // - // NUD_PP - // - this.NUD_PP.Location = new System.Drawing.Point(72, 172); - this.NUD_PP.Maximum = new decimal(new int[] { - 40, - 0, - 0, - 0}); - this.NUD_PP.Name = "NUD_PP"; - this.NUD_PP.Size = new System.Drawing.Size(35, 20); - this.NUD_PP.TabIndex = 21; - // - // NUD_Power - // - this.NUD_Power.Location = new System.Drawing.Point(72, 130); - this.NUD_Power.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.NUD_Power.Name = "NUD_Power"; - this.NUD_Power.Size = new System.Drawing.Size(45, 20); - this.NUD_Power.TabIndex = 22; - // - // NUD_TurnMin - // - this.NUD_TurnMin.Location = new System.Drawing.Point(290, 172); - this.NUD_TurnMin.Maximum = new decimal(new int[] { - 15, - 0, - 0, - 0}); - this.NUD_TurnMin.Name = "NUD_TurnMin"; - this.NUD_TurnMin.Size = new System.Drawing.Size(30, 20); - this.NUD_TurnMin.TabIndex = 26; - // - // L_TrapMin - // - this.L_TrapMin.AutoSize = true; - this.L_TrapMin.Location = new System.Drawing.Point(227, 174); - this.L_TrapMin.Name = "L_TrapMin"; - this.L_TrapMin.Size = new System.Drawing.Size(57, 13); - this.L_TrapMin.TabIndex = 23; - this.L_TrapMin.Text = "Min Turns:"; - this.L_TrapMin.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_TurnMax - // - this.NUD_TurnMax.Location = new System.Drawing.Point(290, 193); - this.NUD_TurnMax.Maximum = new decimal(new int[] { - 15, - 0, - 0, - 0}); - this.NUD_TurnMax.Name = "NUD_TurnMax"; - this.NUD_TurnMax.Size = new System.Drawing.Size(30, 20); - this.NUD_TurnMax.TabIndex = 25; - // - // L_TrapMax - // - this.L_TrapMax.AutoSize = true; - this.L_TrapMax.Location = new System.Drawing.Point(224, 195); - this.L_TrapMax.Name = "L_TrapMax"; - this.L_TrapMax.Size = new System.Drawing.Size(60, 13); - this.L_TrapMax.TabIndex = 24; - this.L_TrapMax.Text = "Max Turns:"; - this.L_TrapMax.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_Recoil - // - this.NUD_Recoil.Location = new System.Drawing.Point(184, 172); - this.NUD_Recoil.Minimum = new decimal(new int[] { - 100, - 0, - 0, - -2147483648}); - this.NUD_Recoil.Name = "NUD_Recoil"; - this.NUD_Recoil.Size = new System.Drawing.Size(40, 20); - this.NUD_Recoil.TabIndex = 34; - // - // L_Recoil - // - this.L_Recoil.AutoSize = true; - this.L_Recoil.Location = new System.Drawing.Point(114, 174); - this.L_Recoil.Name = "L_Recoil"; - this.L_Recoil.Size = new System.Drawing.Size(64, 13); - this.L_Recoil.TabIndex = 31; - this.L_Recoil.Text = "Rec/Abs %:"; - this.L_Recoil.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_Heal - // - this.NUD_Heal.Location = new System.Drawing.Point(184, 151); - this.NUD_Heal.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.NUD_Heal.Name = "NUD_Heal"; - this.NUD_Heal.Size = new System.Drawing.Size(40, 20); - this.NUD_Heal.TabIndex = 33; - // - // L_Heal - // - this.L_Heal.AutoSize = true; - this.L_Heal.Location = new System.Drawing.Point(135, 153); - this.L_Heal.Name = "L_Heal"; - this.L_Heal.Size = new System.Drawing.Size(43, 13); - this.L_Heal.TabIndex = 32; - this.L_Heal.Text = "Heal %:"; - this.L_Heal.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_CritStage - // - this.NUD_CritStage.Location = new System.Drawing.Point(184, 193); - this.NUD_CritStage.Maximum = new decimal(new int[] { - 6, - 0, - 0, - 0}); - this.NUD_CritStage.Name = "NUD_CritStage"; - this.NUD_CritStage.Size = new System.Drawing.Size(30, 20); - this.NUD_CritStage.TabIndex = 30; - // - // L_CritStage - // - this.L_CritStage.AutoSize = true; - this.L_CritStage.Location = new System.Drawing.Point(122, 195); - this.L_CritStage.Name = "L_CritStage"; - this.L_CritStage.Size = new System.Drawing.Size(56, 13); - this.L_CritStage.TabIndex = 27; - this.L_CritStage.Text = "Crit Stage:"; - this.L_CritStage.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_Flinch - // - this.NUD_Flinch.Location = new System.Drawing.Point(184, 130); - this.NUD_Flinch.Maximum = new decimal(new int[] { - 101, - 0, - 0, - 0}); - this.NUD_Flinch.Name = "NUD_Flinch"; - this.NUD_Flinch.Size = new System.Drawing.Size(40, 20); - this.NUD_Flinch.TabIndex = 29; - // - // L_Flinch - // - this.L_Flinch.AutoSize = true; - this.L_Flinch.Location = new System.Drawing.Point(129, 132); - this.L_Flinch.Name = "L_Flinch"; - this.L_Flinch.Size = new System.Drawing.Size(49, 13); - this.L_Flinch.TabIndex = 28; - this.L_Flinch.Text = "Flinch %:"; - this.L_Flinch.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // GB_Stat - // - this.GB_Stat.Controls.Add(this.NUD_StatP3); - this.GB_Stat.Controls.Add(this.NUD_StatP2); - this.GB_Stat.Controls.Add(this.NUD_StatP1); - this.GB_Stat.Controls.Add(this.NUD_Stat2); - this.GB_Stat.Controls.Add(this.NUD_Stat3); - this.GB_Stat.Controls.Add(this.NUD_Stat1); - this.GB_Stat.Controls.Add(this.CB_Stat3); - this.GB_Stat.Controls.Add(this.CB_Stat2); - this.GB_Stat.Controls.Add(this.CB_Stat1); - this.GB_Stat.Controls.Add(this.L_Stage3); - this.GB_Stat.Controls.Add(this.L_Stage2); - this.GB_Stat.Controls.Add(this.L_Stage1); - this.GB_Stat.Location = new System.Drawing.Point(11, 216); - this.GB_Stat.Name = "GB_Stat"; - this.GB_Stat.Size = new System.Drawing.Size(212, 100); - this.GB_Stat.TabIndex = 35; - this.GB_Stat.TabStop = false; - this.GB_Stat.Text = "Stat Stage Changes"; - // - // NUD_StatP3 - // - this.NUD_StatP3.Location = new System.Drawing.Point(165, 68); - this.NUD_StatP3.Maximum = new decimal(new int[] { - 101, - 0, - 0, - 0}); - this.NUD_StatP3.Name = "NUD_StatP3"; - this.NUD_StatP3.Size = new System.Drawing.Size(40, 20); - this.NUD_StatP3.TabIndex = 44; - // - // NUD_StatP2 - // - this.NUD_StatP2.Location = new System.Drawing.Point(165, 46); - this.NUD_StatP2.Maximum = new decimal(new int[] { - 101, - 0, - 0, - 0}); - this.NUD_StatP2.Name = "NUD_StatP2"; - this.NUD_StatP2.Size = new System.Drawing.Size(40, 20); - this.NUD_StatP2.TabIndex = 43; - // - // NUD_StatP1 - // - this.NUD_StatP1.Location = new System.Drawing.Point(165, 24); - this.NUD_StatP1.Maximum = new decimal(new int[] { - 101, - 0, - 0, - 0}); - this.NUD_StatP1.Name = "NUD_StatP1"; - this.NUD_StatP1.Size = new System.Drawing.Size(40, 20); - this.NUD_StatP1.TabIndex = 42; - // - // NUD_Stat2 - // - this.NUD_Stat2.Location = new System.Drawing.Point(127, 46); - this.NUD_Stat2.Maximum = new decimal(new int[] { - 5, - 0, - 0, - 0}); - this.NUD_Stat2.Minimum = new decimal(new int[] { - 5, - 0, - 0, - -2147483648}); - this.NUD_Stat2.Name = "NUD_Stat2"; - this.NUD_Stat2.Size = new System.Drawing.Size(35, 20); - this.NUD_Stat2.TabIndex = 41; - // - // NUD_Stat3 - // - this.NUD_Stat3.Location = new System.Drawing.Point(127, 68); - this.NUD_Stat3.Maximum = new decimal(new int[] { - 5, - 0, - 0, - 0}); - this.NUD_Stat3.Minimum = new decimal(new int[] { - 5, - 0, - 0, - -2147483648}); - this.NUD_Stat3.Name = "NUD_Stat3"; - this.NUD_Stat3.Size = new System.Drawing.Size(35, 20); - this.NUD_Stat3.TabIndex = 40; - // - // NUD_Stat1 - // - this.NUD_Stat1.Location = new System.Drawing.Point(127, 24); - this.NUD_Stat1.Maximum = new decimal(new int[] { - 5, - 0, - 0, - 0}); - this.NUD_Stat1.Minimum = new decimal(new int[] { - 5, - 0, - 0, - -2147483648}); - this.NUD_Stat1.Name = "NUD_Stat1"; - this.NUD_Stat1.Size = new System.Drawing.Size(35, 20); - this.NUD_Stat1.TabIndex = 39; - // - // CB_Stat3 - // - this.CB_Stat3.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_Stat3.FormattingEnabled = true; - this.CB_Stat3.Location = new System.Drawing.Point(27, 67); - this.CB_Stat3.Name = "CB_Stat3"; - this.CB_Stat3.Size = new System.Drawing.Size(99, 21); - this.CB_Stat3.TabIndex = 38; - // - // CB_Stat2 - // - this.CB_Stat2.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_Stat2.FormattingEnabled = true; - this.CB_Stat2.Location = new System.Drawing.Point(27, 45); - this.CB_Stat2.Name = "CB_Stat2"; - this.CB_Stat2.Size = new System.Drawing.Size(99, 21); - this.CB_Stat2.TabIndex = 37; - // - // CB_Stat1 - // - this.CB_Stat1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_Stat1.FormattingEnabled = true; - this.CB_Stat1.Location = new System.Drawing.Point(27, 23); - this.CB_Stat1.Name = "CB_Stat1"; - this.CB_Stat1.Size = new System.Drawing.Size(99, 21); - this.CB_Stat1.TabIndex = 36; - // - // L_Stage3 - // - this.L_Stage3.AutoSize = true; - this.L_Stage3.Location = new System.Drawing.Point(5, 70); - this.L_Stage3.Name = "L_Stage3"; - this.L_Stage3.Size = new System.Drawing.Size(16, 13); - this.L_Stage3.TabIndex = 2; - this.L_Stage3.Text = "3:"; - // - // L_Stage2 - // - this.L_Stage2.AutoSize = true; - this.L_Stage2.Location = new System.Drawing.Point(5, 48); - this.L_Stage2.Name = "L_Stage2"; - this.L_Stage2.Size = new System.Drawing.Size(16, 13); - this.L_Stage2.TabIndex = 1; - this.L_Stage2.Text = "2:"; - // - // L_Stage1 - // - this.L_Stage1.AutoSize = true; - this.L_Stage1.Location = new System.Drawing.Point(5, 26); - this.L_Stage1.Name = "L_Stage1"; - this.L_Stage1.Size = new System.Drawing.Size(16, 13); - this.L_Stage1.TabIndex = 0; - this.L_Stage1.Text = "1:"; - // - // L_Targeting - // - this.L_Targeting.AutoSize = true; - this.L_Targeting.Location = new System.Drawing.Point(173, 38); - this.L_Targeting.Name = "L_Targeting"; - this.L_Targeting.Size = new System.Drawing.Size(55, 13); - this.L_Targeting.TabIndex = 36; - this.L_Targeting.Text = "Targeting:"; - this.L_Targeting.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_Influcts - // - this.L_Influcts.AutoSize = true; - this.L_Influcts.Location = new System.Drawing.Point(188, 60); - this.L_Influcts.Name = "L_Influcts"; - this.L_Influcts.Size = new System.Drawing.Size(40, 13); - this.L_Influcts.TabIndex = 37; - this.L_Influcts.Text = "Inflicts:"; - this.L_Influcts.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // RTB - // - this.RTB.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left))); - this.RTB.Location = new System.Drawing.Point(12, 324); - this.RTB.Name = "RTB"; - this.RTB.ReadOnly = true; - this.RTB.Size = new System.Drawing.Size(316, 51); - this.RTB.TabIndex = 38; - this.RTB.Text = ""; - // - // CB_Targeting - // - this.CB_Targeting.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_Targeting.DropDownWidth = 150; - this.CB_Targeting.FormattingEnabled = true; - this.CB_Targeting.Location = new System.Drawing.Point(228, 35); - this.CB_Targeting.Name = "CB_Targeting"; - this.CB_Targeting.Size = new System.Drawing.Size(99, 21); - this.CB_Targeting.TabIndex = 39; - // - // CB_Inflict - // - this.CB_Inflict.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_Inflict.DropDownWidth = 150; - this.CB_Inflict.FormattingEnabled = true; - this.CB_Inflict.Location = new System.Drawing.Point(228, 57); - this.CB_Inflict.Name = "CB_Inflict"; - this.CB_Inflict.Size = new System.Drawing.Size(99, 21); - this.CB_Inflict.TabIndex = 40; - // - // L_Inflict - // - this.L_Inflict.AutoSize = true; - this.L_Inflict.Location = new System.Drawing.Point(238, 81); - this.L_Inflict.Name = "L_Inflict"; - this.L_Inflict.Size = new System.Drawing.Size(46, 13); - this.L_Inflict.TabIndex = 41; - this.L_Inflict.Text = "Inflict %:"; - this.L_Inflict.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_Inflict - // - this.NUD_Inflict.Location = new System.Drawing.Point(287, 78); - this.NUD_Inflict.Maximum = new decimal(new int[] { - 101, - 0, - 0, - 0}); - this.NUD_Inflict.Name = "NUD_Inflict"; - this.NUD_Inflict.Size = new System.Drawing.Size(40, 20); - this.NUD_Inflict.TabIndex = 42; - // - // NUD_Effect - // - this.NUD_Effect.Location = new System.Drawing.Point(150, 103); - this.NUD_Effect.Maximum = new decimal(new int[] { - 65535, - 0, - 0, - 0}); - this.NUD_Effect.Name = "NUD_Effect"; - this.NUD_Effect.Size = new System.Drawing.Size(50, 20); - this.NUD_Effect.TabIndex = 44; - // - // L_Effect - // - this.L_Effect.AutoSize = true; - this.L_Effect.Location = new System.Drawing.Point(106, 106); - this.L_Effect.Name = "L_Effect"; - this.L_Effect.Size = new System.Drawing.Size(38, 13); - this.L_Effect.TabIndex = 45; - this.L_Effect.Text = "Effect:"; - this.L_Effect.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_Accuracy - // - this.NUD_Accuracy.Location = new System.Drawing.Point(72, 151); - this.NUD_Accuracy.Maximum = new decimal(new int[] { - 101, - 0, - 0, - 0}); - this.NUD_Accuracy.Name = "NUD_Accuracy"; - this.NUD_Accuracy.Size = new System.Drawing.Size(40, 20); - this.NUD_Accuracy.TabIndex = 47; - // - // L_Accuracy - // - this.L_Accuracy.AutoSize = true; - this.L_Accuracy.Location = new System.Drawing.Point(17, 153); - this.L_Accuracy.Name = "L_Accuracy"; - this.L_Accuracy.Size = new System.Drawing.Size(49, 13); - this.L_Accuracy.TabIndex = 46; - this.L_Accuracy.Text = "Accur %:"; - this.L_Accuracy.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // CB_Quality - // - this.CB_Quality.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_Quality.DropDownWidth = 170; - this.CB_Quality.FormattingEnabled = true; - this.CB_Quality.Location = new System.Drawing.Point(71, 81); - this.CB_Quality.Name = "CB_Quality"; - this.CB_Quality.Size = new System.Drawing.Size(129, 21); - this.CB_Quality.TabIndex = 48; - // - // L_Quality - // - this.L_Quality.AutoSize = true; - this.L_Quality.Location = new System.Drawing.Point(20, 84); - this.L_Quality.Name = "L_Quality"; - this.L_Quality.Size = new System.Drawing.Size(50, 13); - this.L_Quality.TabIndex = 49; - this.L_Quality.Text = "Qualities:"; - this.L_Quality.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_0xB - // - this.L_0xB.AutoSize = true; - this.L_0xB.Location = new System.Drawing.Point(256, 101); - this.L_0xB.Name = "L_0xB"; - this.L_0xB.Size = new System.Drawing.Size(28, 13); - this.L_0xB.TabIndex = 50; - this.L_0xB.Text = "0xB:"; - this.L_0xB.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_0xB - // - this.NUD_0xB.Location = new System.Drawing.Point(287, 99); - this.NUD_0xB.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.NUD_0xB.Name = "NUD_0xB"; - this.NUD_0xB.Size = new System.Drawing.Size(40, 20); - this.NUD_0xB.TabIndex = 51; - // - // NUD_0x20 - // - this.NUD_0x20.Location = new System.Drawing.Point(282, 239); - this.NUD_0x20.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.NUD_0x20.Name = "NUD_0x20"; - this.NUD_0x20.Size = new System.Drawing.Size(40, 20); - this.NUD_0x20.TabIndex = 52; - // - // NUD_0x21 - // - this.NUD_0x21.Location = new System.Drawing.Point(282, 261); - this.NUD_0x21.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.NUD_0x21.Name = "NUD_0x21"; - this.NUD_0x21.Size = new System.Drawing.Size(40, 20); - this.NUD_0x21.TabIndex = 53; - // - // L_0x20 - // - this.L_0x20.AutoSize = true; - this.L_0x20.Location = new System.Drawing.Point(232, 242); - this.L_0x20.Name = "L_0x20"; - this.L_0x20.Size = new System.Drawing.Size(44, 13); - this.L_0x20.TabIndex = 59; - this.L_0x20.Text = "Flags 1:"; - this.L_0x20.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_0x21 - // - this.L_0x21.AutoSize = true; - this.L_0x21.Location = new System.Drawing.Point(233, 264); - this.L_0x21.Name = "L_0x21"; - this.L_0x21.Size = new System.Drawing.Size(44, 13); - this.L_0x21.TabIndex = 62; - this.L_0x21.Text = "Flags 2:"; - this.L_0x21.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // B_RandAll - // - this.B_RandAll.Location = new System.Drawing.Point(333, 10); - this.B_RandAll.Name = "B_RandAll"; - this.B_RandAll.Size = new System.Drawing.Size(98, 23); - this.B_RandAll.TabIndex = 63; - this.B_RandAll.Text = "Randomize!"; - this.B_RandAll.UseVisualStyleBackColor = true; - this.B_RandAll.Click += new System.EventHandler(this.B_RandAll_Click); - // - // groupBox1 - // - this.groupBox1.Controls.Add(this.CHK_Category); - this.groupBox1.Controls.Add(this.CHK_Type); - this.groupBox1.Location = new System.Drawing.Point(333, 33); - this.groupBox1.Name = "groupBox1"; - this.groupBox1.Size = new System.Drawing.Size(98, 342); - this.groupBox1.TabIndex = 64; - this.groupBox1.TabStop = false; - this.groupBox1.Text = "Options"; - // - // CHK_Type - // - this.CHK_Type.AutoSize = true; - this.CHK_Type.Location = new System.Drawing.Point(6, 19); - this.CHK_Type.Name = "CHK_Type"; - this.CHK_Type.Size = new System.Drawing.Size(50, 17); - this.CHK_Type.TabIndex = 0; - this.CHK_Type.Text = "Type"; - this.CHK_Type.UseVisualStyleBackColor = true; - // - // CHK_Category - // - this.CHK_Category.AutoSize = true; - this.CHK_Category.Location = new System.Drawing.Point(6, 34); - this.CHK_Category.Name = "CHK_Category"; - this.CHK_Category.Size = new System.Drawing.Size(68, 17); - this.CHK_Category.TabIndex = 1; - this.CHK_Category.Text = "Category"; - this.CHK_Category.UseVisualStyleBackColor = true; - // - // Moves - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(439, 382); - this.Controls.Add(this.groupBox1); - this.Controls.Add(this.B_RandAll); - this.Controls.Add(this.L_0x21); - this.Controls.Add(this.L_0x20); - this.Controls.Add(this.NUD_0x21); - this.Controls.Add(this.NUD_0x20); - this.Controls.Add(this.NUD_0xB); - this.Controls.Add(this.L_0xB); - this.Controls.Add(this.CB_Quality); - this.Controls.Add(this.L_Quality); - this.Controls.Add(this.NUD_Accuracy); - this.Controls.Add(this.L_Accuracy); - this.Controls.Add(this.L_Effect); - this.Controls.Add(this.NUD_Effect); - this.Controls.Add(this.NUD_Inflict); - this.Controls.Add(this.L_Inflict); - this.Controls.Add(this.CB_Inflict); - this.Controls.Add(this.CB_Targeting); - this.Controls.Add(this.RTB); - this.Controls.Add(this.L_Targeting); - this.Controls.Add(this.L_Influcts); - this.Controls.Add(this.GB_Stat); - this.Controls.Add(this.NUD_Recoil); - this.Controls.Add(this.L_Recoil); - this.Controls.Add(this.NUD_Heal); - this.Controls.Add(this.L_Heal); - this.Controls.Add(this.NUD_CritStage); - this.Controls.Add(this.L_CritStage); - this.Controls.Add(this.NUD_Flinch); - this.Controls.Add(this.L_Flinch); - this.Controls.Add(this.NUD_TurnMin); - this.Controls.Add(this.L_TrapMin); - this.Controls.Add(this.NUD_TurnMax); - this.Controls.Add(this.L_TrapMax); - this.Controls.Add(this.L_Type); - this.Controls.Add(this.L_BP); - this.Controls.Add(this.CB_Type); - this.Controls.Add(this.NUD_Power); - this.Controls.Add(this.CB_Category); - this.Controls.Add(this.L_Category); - this.Controls.Add(this.NUD_PP); - this.Controls.Add(this.NUD_Priority); - this.Controls.Add(this.NUD_HitMin); - this.Controls.Add(this.L_PP); - this.Controls.Add(this.L_Min); - this.Controls.Add(this.L_Priority); - this.Controls.Add(this.NUD_HitMax); - this.Controls.Add(this.L_Max); - this.Controls.Add(this.L_Move); - this.Controls.Add(this.CB_Move); - this.MaximizeBox = false; - this.MaximumSize = new System.Drawing.Size(455, 420); - this.MinimumSize = new System.Drawing.Size(355, 420); - this.Name = "MoveEditor6"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Move Editor"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.formClosing); - ((System.ComponentModel.ISupportInitialize)(this.NUD_HitMax)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_HitMin)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Priority)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_PP)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Power)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_TurnMin)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_TurnMax)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Recoil)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Heal)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_CritStage)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Flinch)).EndInit(); - this.GB_Stat.ResumeLayout(false); - this.GB_Stat.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_StatP3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_StatP2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_StatP1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Stat2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Stat3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Stat1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Inflict)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Effect)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Accuracy)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_0xB)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_0x20)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_0x21)).EndInit(); - this.groupBox1.ResumeLayout(false); - this.groupBox1.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Label L_Type; - private System.Windows.Forms.ComboBox CB_Move; - private System.Windows.Forms.Label L_Move; - private System.Windows.Forms.ComboBox CB_Type; - private System.Windows.Forms.ComboBox CB_Category; - private System.Windows.Forms.Label L_Category; - private System.Windows.Forms.Label L_BP; - private System.Windows.Forms.Label L_PP; - private System.Windows.Forms.Label L_Min; - private System.Windows.Forms.Label L_Max; - private System.Windows.Forms.Label L_Priority; - private System.Windows.Forms.NumericUpDown NUD_HitMax; - private System.Windows.Forms.NumericUpDown NUD_HitMin; - private System.Windows.Forms.NumericUpDown NUD_Priority; - private System.Windows.Forms.NumericUpDown NUD_PP; - private System.Windows.Forms.NumericUpDown NUD_Power; - private System.Windows.Forms.NumericUpDown NUD_TurnMin; - private System.Windows.Forms.Label L_TrapMin; - private System.Windows.Forms.NumericUpDown NUD_TurnMax; - private System.Windows.Forms.Label L_TrapMax; - private System.Windows.Forms.NumericUpDown NUD_Recoil; - private System.Windows.Forms.Label L_Recoil; - private System.Windows.Forms.NumericUpDown NUD_Heal; - private System.Windows.Forms.Label L_Heal; - private System.Windows.Forms.NumericUpDown NUD_CritStage; - private System.Windows.Forms.Label L_CritStage; - private System.Windows.Forms.NumericUpDown NUD_Flinch; - private System.Windows.Forms.Label L_Flinch; - private System.Windows.Forms.GroupBox GB_Stat; - private System.Windows.Forms.NumericUpDown NUD_Stat2; - private System.Windows.Forms.NumericUpDown NUD_Stat3; - private System.Windows.Forms.NumericUpDown NUD_Stat1; - private System.Windows.Forms.ComboBox CB_Stat3; - private System.Windows.Forms.ComboBox CB_Stat2; - private System.Windows.Forms.ComboBox CB_Stat1; - private System.Windows.Forms.Label L_Stage3; - private System.Windows.Forms.Label L_Stage2; - private System.Windows.Forms.Label L_Stage1; - private System.Windows.Forms.Label L_Targeting; - private System.Windows.Forms.Label L_Influcts; - private System.Windows.Forms.RichTextBox RTB; - private System.Windows.Forms.ComboBox CB_Targeting; - private System.Windows.Forms.ComboBox CB_Inflict; - private System.Windows.Forms.Label L_Inflict; - private System.Windows.Forms.NumericUpDown NUD_Inflict; - private System.Windows.Forms.NumericUpDown NUD_Effect; - private System.Windows.Forms.Label L_Effect; - private System.Windows.Forms.NumericUpDown NUD_Accuracy; - private System.Windows.Forms.Label L_Accuracy; - private System.Windows.Forms.ComboBox CB_Quality; - private System.Windows.Forms.Label L_Quality; - private System.Windows.Forms.NumericUpDown NUD_StatP3; - private System.Windows.Forms.NumericUpDown NUD_StatP2; - private System.Windows.Forms.NumericUpDown NUD_StatP1; - private System.Windows.Forms.Label L_0xB; - private System.Windows.Forms.NumericUpDown NUD_0xB; - private System.Windows.Forms.NumericUpDown NUD_0x20; - private System.Windows.Forms.NumericUpDown NUD_0x21; - private System.Windows.Forms.Label L_0x20; - private System.Windows.Forms.Label L_0x21; - private System.Windows.Forms.Button B_RandAll; - private System.Windows.Forms.GroupBox groupBox1; - private System.Windows.Forms.CheckBox CHK_Category; - private System.Windows.Forms.CheckBox CHK_Type; - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/MoveEditor7.cs b/pk3DS/Subforms/Gen7/MoveEditor7.cs deleted file mode 100644 index 289f72cbb1..0000000000 --- a/pk3DS/Subforms/Gen7/MoveEditor7.cs +++ /dev/null @@ -1,195 +0,0 @@ -using pk3DS.Core; -using System; -using System.Windows.Forms; - -namespace pk3DS -{ - public partial class MoveEditor7 : Form - { - public MoveEditor7(byte[][] infiles) - { - files = infiles; - - movelist[0] = ""; - sortedmoves = (string[])movelist.Clone(); - Array.Sort(sortedmoves); - - InitializeComponent(); - Setup(); - } - private byte[][] files; - private readonly string[] types = Main.Config.getText(TextName.Types); - private readonly string[] moveflavor = Main.Config.getText(TextName.MoveFlavor); - private readonly string[] movelist = Main.Config.getText(TextName.MoveNames); - private readonly string[] sortedmoves; - private readonly string[] MoveCategories = { "Status", "Physical", "Special", }; - private readonly string[] StatCategories = { "None", "Attack", "Defense", "Special Attack", "Special Defense", "Speed", "Accuracy", "Evasion", "All", }; - - private readonly string[] TargetingTypes = - { "Single Adjacent Ally/Foe", - "Any Ally", "Any Adjacent Ally", "Single Adjacent Foe", "Everyone but User", "All Foes", - "All Allies", "Self", "All Pokémon on Field", "Single Adjacent Foe (2)", "Entire Field", - "Opponent's Field", "User's Field", "Self", - }; - - private readonly string[] InflictionTypes = - { "None", - "Paralyze", "Sleep", "Freeze", "Burn", "Poison", - "Confusion", "Attract", "Capture", "Nightmare", "Curse", - "Taunt", "Torment", "Disable", "Yawn", "Heal Block", - "?", "Detect", "Leech Seed", "Embargo", "Perish Song", - "Ingrain", "??? 0x16", "??? 0x17", "Mute" - }; - - private readonly string[] MoveQualities = - { "Only DMG", - "No DMG -> Inflict Status", "No DMG -> -Target/+User Stat", "No DMG | Heal User", "DMG | Inflict Status", "No DMG | STATUS | +Target Stat", - "DMG | -Target Stat", "DMG | +User Stat", "DMG | Absorbs DMG", "One-Hit KO", "Affects Whole Field", - "Affect One Side of the Field", "Forces Target to Switch", "Unique Effect", }; - private void Setup() - { - foreach (string s in sortedmoves) CB_Move.Items.Add(s); - foreach (string s in types) CB_Type.Items.Add(s); - foreach (string s in MoveCategories) CB_Category.Items.Add(s); - foreach (string s in StatCategories) CB_Stat1.Items.Add(s); - foreach (string s in StatCategories) CB_Stat2.Items.Add(s); - foreach (string s in StatCategories) CB_Stat3.Items.Add(s); - foreach (string s in TargetingTypes) CB_Targeting.Items.Add(s); - foreach (string s in MoveQualities) CB_Quality.Items.Add(s); - foreach (string s in InflictionTypes) CB_Inflict.Items.Add(s); - CB_Inflict.Items.Add("Special"); - - CB_Move.Items.RemoveAt(0); - CB_Move.SelectedIndex = 0; - } - private int entry = -1; - private void changeEntry(object sender, EventArgs e) - { - setEntry(); - entry = Array.IndexOf(movelist, CB_Move.Text); - getEntry(); - } - private void getEntry() - { - if (entry < 1) return; - byte[] data = files[entry]; - { - string flavor = moveflavor[entry].Replace("\\n", Environment.NewLine); - RTB.Text = flavor; - - CB_Type.SelectedIndex = data[0x00]; - CB_Quality.SelectedIndex = data[0x01]; - CB_Category.SelectedIndex = data[0x02]; - NUD_Power.Value = data[0x3]; - NUD_Accuracy.Value = data[0x4]; - NUD_PP.Value = data[0x05]; - NUD_Priority.Value = (sbyte)data[0x06]; - NUD_HitMin.Value = data[0x7] & 0xF; - NUD_HitMax.Value = data[0x7] >> 4; - short inflictVal = BitConverter.ToInt16(data, 0x08); - CB_Inflict.SelectedIndex = inflictVal < 0 ? CB_Inflict.Items.Count - 1 : inflictVal; - NUD_Inflict.Value = data[0xA]; - NUD_0xB.Value = data[0xB]; // 0xB ~ Something to deal with skipImmunity - NUD_TurnMin.Value = data[0xC]; - NUD_TurnMax.Value = data[0xD]; - NUD_CritStage.Value = data[0xE]; - NUD_Flinch.Value = data[0xF]; - NUD_Effect.Value = BitConverter.ToUInt16(data, 0x10); - NUD_Recoil.Value = (sbyte)data[0x12]; - NUD_Heal.Value = data[0x13]; - - CB_Targeting.SelectedIndex = data[0x14]; - CB_Stat1.SelectedIndex = data[0x15]; - CB_Stat2.SelectedIndex = data[0x16]; - CB_Stat3.SelectedIndex = data[0x17]; - NUD_Stat1.Value = (sbyte)data[0x18]; - NUD_Stat2.Value = (sbyte)data[0x19]; - NUD_Stat3.Value = (sbyte)data[0x1A]; - NUD_StatP1.Value = data[0x1B]; - NUD_StatP2.Value = data[0x1C]; - NUD_StatP3.Value = data[0x1D]; - - // Unknown (Bitflag Related for stuff like Contact and Extra Move Effects) - NUD_0x20.Value = data[0x20]; // 0x20 - NUD_0x21.Value = data[0x21]; // 0x21 - // end, the other bytes aren't used. - - //NUD_0x1E.Value = data[0x1E]; // 0x1E - //NUD_0x1F.Value = data[0x1F]; // 0x1F - //NUD_0x22.Value = data[0x22]; // 0x22 - //NUD_0x23.Value = data[0x23]; // 0x23 - } - } - private void setEntry() - { - if (entry < 1) return; - byte[] data = files[entry]; - { - data[0x00] = (byte)CB_Type.SelectedIndex; - data[0x01] = (byte)CB_Quality.SelectedIndex; - data[0x02] = (byte)CB_Category.SelectedIndex; - data[0x03] = (byte)NUD_Power.Value; - data[0x04] = (byte)NUD_Accuracy.Value; - data[0x05] = (byte)NUD_PP.Value; - data[0x06] = (byte)(int)NUD_Priority.Value; - data[0x07] = (byte)((byte)NUD_HitMin.Value | ((byte)NUD_HitMax.Value << 4)); - int inflictval = CB_Inflict.SelectedIndex; if (inflictval == CB_Inflict.Items.Count) inflictval = -1; - Array.Copy(BitConverter.GetBytes((short)inflictval), 0, data, 0x08, 2); - data[0x0A] = (byte)NUD_Inflict.Value; - data[0x0B] = (byte)NUD_0xB.Value; - data[0x0C] = (byte)NUD_TurnMin.Value; - data[0x0D] = (byte)NUD_TurnMax.Value; - data[0x0E] = (byte)NUD_CritStage.Value; - data[0x0F] = (byte)NUD_Flinch.Value; - Array.Copy(BitConverter.GetBytes((ushort)NUD_Effect.Value), 0, data, 0x10, 2); - data[0x12] = (byte)(int)NUD_Recoil.Value; - data[0x13] = (byte)NUD_Heal.Value; - data[0x14] = (byte)CB_Targeting.SelectedIndex; - data[0x15] = (byte)CB_Stat1.SelectedIndex; - data[0x16] = (byte)CB_Stat2.SelectedIndex; - data[0x17] = (byte)CB_Stat3.SelectedIndex; - data[0x18] = (byte)(int)NUD_Stat1.Value; - data[0x19] = (byte)(int)NUD_Stat2.Value; - data[0x1A] = (byte)(int)NUD_Stat3.Value; - data[0x1B] = (byte)NUD_StatP1.Value; - data[0x1C] = (byte)NUD_StatP2.Value; - data[0x1D] = (byte)NUD_StatP3.Value; - - data[0x20] = (byte)NUD_0x20.Value; - data[0x21] = (byte)NUD_0x21.Value; - // end, the other bytes aren't used. - } - files[entry] = data; - } - private void formClosing(object sender, FormClosingEventArgs e) - { - setEntry(); - } - - private void B_RandAll_Click(object sender, EventArgs e) - { - if (!CHK_Category.Checked && !CHK_Type.Checked) - { - WinFormsUtil.Alert("Cannot randomize Moves.", "Please check any of the options on the right to randomize Moves."); - return; - } - - if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomize Moves? Cannot undo.", "Double check options on the right before continuing.") != DialogResult.Yes) return; - Random rnd = new Random(); - for (int i = 0; i < CB_Move.Items.Count; i++) - { - CB_Move.SelectedIndex = i; // Get new Move - if (i == 165 || i == 174) continue; // Don't change Struggle or Curse - - // Change Damage Category if Not Status - if (CB_Category.SelectedIndex > 0 && CHK_Category.Checked) // Not Status - CB_Category.SelectedIndex = rnd.Next(1, 3); - - // Change Move Type - if (CHK_Type.Checked) - CB_Type.SelectedIndex = rnd.Next(0, 18); - } - WinFormsUtil.Alert("All Moves have been randomized!"); - } - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/PersonalEditor7.Designer.cs b/pk3DS/Subforms/Gen7/PersonalEditor7.Designer.cs deleted file mode 100644 index 0ceb5c4b1f..0000000000 --- a/pk3DS/Subforms/Gen7/PersonalEditor7.Designer.cs +++ /dev/null @@ -1,1791 +0,0 @@ -namespace pk3DS -{ - partial class PersonalEditor7 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.CB_Species = new System.Windows.Forms.ComboBox(); - this.L_Species_Precursor = new System.Windows.Forms.Label(); - this.TC_Pokemon = new System.Windows.Forms.TabControl(); - this.TP_General = new System.Windows.Forms.TabPage(); - this.TB_CallRate = new System.Windows.Forms.MaskedTextBox(); - this.L_CallRate = new System.Windows.Forms.Label(); - this.CHK_Variant = new System.Windows.Forms.CheckBox(); - this.TB_BST = new System.Windows.Forms.TextBox(); - this.L_BST = new System.Windows.Forms.Label(); - this.TB_RawColor = new System.Windows.Forms.TextBox(); - this.TB_CatchRate = new System.Windows.Forms.MaskedTextBox(); - this.TB_Stage = new System.Windows.Forms.TextBox(); - this.L_Stage = new System.Windows.Forms.Label(); - this.TB_FormeCount = new System.Windows.Forms.TextBox(); - this.L_FormesCount = new System.Windows.Forms.Label(); - this.TB_FormeSprite = new System.Windows.Forms.TextBox(); - this.L_FormeSprite = new System.Windows.Forms.Label(); - this.L_CatchRate = new System.Windows.Forms.Label(); - this.CB_Color = new System.Windows.Forms.ComboBox(); - this.CB_EXPGroup = new System.Windows.Forms.ComboBox(); - this.L_Color = new System.Windows.Forms.Label(); - this.L_EXPGrowth = new System.Windows.Forms.Label(); - this.CB_Ability3 = new System.Windows.Forms.ComboBox(); - this.CB_Ability2 = new System.Windows.Forms.ComboBox(); - this.CB_Ability1 = new System.Windows.Forms.ComboBox(); - this.CB_EggGroup2 = new System.Windows.Forms.ComboBox(); - this.CB_EggGroup1 = new System.Windows.Forms.ComboBox(); - this.L_EggGroup = new System.Windows.Forms.Label(); - this.L_Ability = new System.Windows.Forms.Label(); - this.TB_BaseExp = new System.Windows.Forms.MaskedTextBox(); - this.L_BaseEXP = new System.Windows.Forms.Label(); - this.TB_HatchCycles = new System.Windows.Forms.MaskedTextBox(); - this.L_HatchCycles = new System.Windows.Forms.Label(); - this.TB_Friendship = new System.Windows.Forms.MaskedTextBox(); - this.TB_Gender = new System.Windows.Forms.MaskedTextBox(); - this.L_Friendship = new System.Windows.Forms.Label(); - this.L_Gender = new System.Windows.Forms.Label(); - this.L_Item1 = new System.Windows.Forms.Label(); - this.L_Item5 = new System.Windows.Forms.Label(); - this.L_Item50 = new System.Windows.Forms.Label(); - this.CB_HeldItem3 = new System.Windows.Forms.ComboBox(); - this.CB_HeldItem2 = new System.Windows.Forms.ComboBox(); - this.CB_HeldItem1 = new System.Windows.Forms.ComboBox(); - this.L_HeldItem = new System.Windows.Forms.Label(); - this.CB_Type2 = new System.Windows.Forms.ComboBox(); - this.CB_Type1 = new System.Windows.Forms.ComboBox(); - this.L_Type = new System.Windows.Forms.Label(); - this.TB_SPEEVs = new System.Windows.Forms.MaskedTextBox(); - this.TB_SPDEVs = new System.Windows.Forms.MaskedTextBox(); - this.TB_SPAEVs = new System.Windows.Forms.MaskedTextBox(); - this.TB_DEFEVs = new System.Windows.Forms.MaskedTextBox(); - this.TB_ATKEVs = new System.Windows.Forms.MaskedTextBox(); - this.TB_HPEVs = new System.Windows.Forms.MaskedTextBox(); - this.TB_BaseSPE = new System.Windows.Forms.MaskedTextBox(); - this.TB_BaseSPD = new System.Windows.Forms.MaskedTextBox(); - this.TB_BaseSPA = new System.Windows.Forms.MaskedTextBox(); - this.TB_BaseDEF = new System.Windows.Forms.MaskedTextBox(); - this.TB_BaseATK = new System.Windows.Forms.MaskedTextBox(); - this.TB_BaseHP = new System.Windows.Forms.MaskedTextBox(); - this.Label_HP = new System.Windows.Forms.Label(); - this.Label_ATK = new System.Windows.Forms.Label(); - this.Label_DEF = new System.Windows.Forms.Label(); - this.Label_SPA = new System.Windows.Forms.Label(); - this.Label_SPD = new System.Windows.Forms.Label(); - this.Label_SPE = new System.Windows.Forms.Label(); - this.L_EVYield = new System.Windows.Forms.Label(); - this.L_BaseStats = new System.Windows.Forms.Label(); - this.TP_MoveTutors = new System.Windows.Forms.TabPage(); - this.L_Special = new System.Windows.Forms.Label(); - this.L_TM = new System.Windows.Forms.Label(); - this.CLB_MoveTutors = new System.Windows.Forms.CheckedListBox(); - this.CLB_TM = new System.Windows.Forms.CheckedListBox(); - this.TP_Randomizer = new System.Windows.Forms.TabPage(); - this.GB_Modifier = new System.Windows.Forms.GroupBox(); - this.CHK_CatchRateMod = new System.Windows.Forms.CheckBox(); - this.L_CatchRateMod = new System.Windows.Forms.Label(); - this.NUD_CatchRateMod = new System.Windows.Forms.NumericUpDown(); - this.CHK_CallRate = new System.Windows.Forms.CheckBox(); - this.L_CallRateVal = new System.Windows.Forms.Label(); - this.NUD_CallRate = new System.Windows.Forms.NumericUpDown(); - this.CHK_EXP = new System.Windows.Forms.CheckBox(); - this.CHK_Growth = new System.Windows.Forms.CheckBox(); - this.CHK_QuickHatch = new System.Windows.Forms.CheckBox(); - this.L_FinalXP = new System.Windows.Forms.Label(); - this.NUD_EXP = new System.Windows.Forms.NumericUpDown(); - this.CHK_NoEV = new System.Windows.Forms.CheckBox(); - this.B_ModAll = new System.Windows.Forms.Button(); - this.GB_Randomizer = new System.Windows.Forms.GroupBox(); - this.L_Same = new System.Windows.Forms.Label(); - this.NUD_Egg = new System.Windows.Forms.NumericUpDown(); - this.CHK_WGuard = new System.Windows.Forms.CheckBox(); - this.CHK_Ability = new System.Windows.Forms.CheckBox(); - this.CHK_Tutors = new System.Windows.Forms.CheckBox(); - this.CHK_rSPE = new System.Windows.Forms.CheckBox(); - this.CHK_Type = new System.Windows.Forms.CheckBox(); - this.CHK_rSPD = new System.Windows.Forms.CheckBox(); - this.CHK_rSPA = new System.Windows.Forms.CheckBox(); - this.L_SingleType = new System.Windows.Forms.Label(); - this.CHK_rDEF = new System.Windows.Forms.CheckBox(); - this.CHK_rATK = new System.Windows.Forms.CheckBox(); - this.NUD_TypePercent = new System.Windows.Forms.NumericUpDown(); - this.CHK_rHP = new System.Windows.Forms.CheckBox(); - this.CHK_HM = new System.Windows.Forms.CheckBox(); - this.L_StatDev = new System.Windows.Forms.Label(); - this.CHK_TM = new System.Windows.Forms.CheckBox(); - this.NUD_StatDev = new System.Windows.Forms.NumericUpDown(); - this.CHK_Stats = new System.Windows.Forms.CheckBox(); - this.CHK_EggGroup = new System.Windows.Forms.CheckBox(); - this.CHK_CatchRate = new System.Windows.Forms.CheckBox(); - this.CHK_Item = new System.Windows.Forms.CheckBox(); - this.B_Randomize = new System.Windows.Forms.Button(); - this.PB_MonSprite = new System.Windows.Forms.PictureBox(); - this.B_Dump = new System.Windows.Forms.Button(); - this.label1 = new System.Windows.Forms.Label(); - this.CB_ZMove = new System.Windows.Forms.ComboBox(); - this.L_BaseMove = new System.Windows.Forms.Label(); - this.L_ZItem = new System.Windows.Forms.Label(); - this.CB_ZBaseMove = new System.Windows.Forms.ComboBox(); - this.CB_ZItem = new System.Windows.Forms.ComboBox(); - this.L_WeightKG = new System.Windows.Forms.Label(); - this.L_HeightM = new System.Windows.Forms.Label(); - this.TB_Weight = new System.Windows.Forms.MaskedTextBox(); - this.TB_Height = new System.Windows.Forms.MaskedTextBox(); - this.L_Weight = new System.Windows.Forms.Label(); - this.L_Height = new System.Windows.Forms.Label(); - this.L_BeachTutors = new System.Windows.Forms.Label(); - this.CLB_BeachTutors = new System.Windows.Forms.CheckedListBox(); - this.CHK_BeachTutors = new System.Windows.Forms.CheckBox(); - this.TC_Pokemon.SuspendLayout(); - this.TP_General.SuspendLayout(); - this.TP_MoveTutors.SuspendLayout(); - this.TP_Randomizer.SuspendLayout(); - this.GB_Modifier.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_CatchRateMod)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_CallRate)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_EXP)).BeginInit(); - this.GB_Randomizer.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Egg)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_TypePercent)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_StatDev)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_MonSprite)).BeginInit(); - this.SuspendLayout(); - // - // CB_Species - // - this.CB_Species.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Species.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Species.FormattingEnabled = true; - this.CB_Species.Location = new System.Drawing.Point(107, 12); - this.CB_Species.Name = "CB_Species"; - this.CB_Species.Size = new System.Drawing.Size(160, 21); - this.CB_Species.TabIndex = 2; - this.CB_Species.SelectedIndexChanged += new System.EventHandler(this.CB_Species_SelectedIndexChanged); - // - // L_Species_Precursor - // - this.L_Species_Precursor.AutoSize = true; - this.L_Species_Precursor.Location = new System.Drawing.Point(13, 15); - this.L_Species_Precursor.Name = "L_Species_Precursor"; - this.L_Species_Precursor.Size = new System.Drawing.Size(88, 13); - this.L_Species_Precursor.TabIndex = 3; - this.L_Species_Precursor.Text = "Current Species: "; - // - // TC_Pokemon - // - this.TC_Pokemon.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left))); - this.TC_Pokemon.Controls.Add(this.TP_General); - this.TC_Pokemon.Controls.Add(this.TP_MoveTutors); - this.TC_Pokemon.Controls.Add(this.TP_Randomizer); - this.TC_Pokemon.Location = new System.Drawing.Point(12, 40); - this.TC_Pokemon.Name = "TC_Pokemon"; - this.TC_Pokemon.SelectedIndex = 0; - this.TC_Pokemon.Size = new System.Drawing.Size(445, 375); - this.TC_Pokemon.TabIndex = 416; - // - // TP_General - // - this.TP_General.Controls.Add(this.L_WeightKG); - this.TP_General.Controls.Add(this.L_HeightM); - this.TP_General.Controls.Add(this.TB_Weight); - this.TP_General.Controls.Add(this.TB_Height); - this.TP_General.Controls.Add(this.L_Weight); - this.TP_General.Controls.Add(this.L_Height); - this.TP_General.Controls.Add(this.CB_ZMove); - this.TP_General.Controls.Add(this.CB_ZBaseMove); - this.TP_General.Controls.Add(this.CB_ZItem); - this.TP_General.Controls.Add(this.TB_CallRate); - this.TP_General.Controls.Add(this.L_CallRate); - this.TP_General.Controls.Add(this.CHK_Variant); - this.TP_General.Controls.Add(this.TB_BST); - this.TP_General.Controls.Add(this.L_BST); - this.TP_General.Controls.Add(this.TB_RawColor); - this.TP_General.Controls.Add(this.TB_CatchRate); - this.TP_General.Controls.Add(this.TB_Stage); - this.TP_General.Controls.Add(this.L_Stage); - this.TP_General.Controls.Add(this.TB_FormeCount); - this.TP_General.Controls.Add(this.L_FormesCount); - this.TP_General.Controls.Add(this.TB_FormeSprite); - this.TP_General.Controls.Add(this.L_FormeSprite); - this.TP_General.Controls.Add(this.L_CatchRate); - this.TP_General.Controls.Add(this.CB_Color); - this.TP_General.Controls.Add(this.CB_EXPGroup); - this.TP_General.Controls.Add(this.L_Color); - this.TP_General.Controls.Add(this.L_EXPGrowth); - this.TP_General.Controls.Add(this.CB_Ability3); - this.TP_General.Controls.Add(this.CB_Ability2); - this.TP_General.Controls.Add(this.CB_Ability1); - this.TP_General.Controls.Add(this.CB_EggGroup2); - this.TP_General.Controls.Add(this.CB_EggGroup1); - this.TP_General.Controls.Add(this.L_EggGroup); - this.TP_General.Controls.Add(this.L_Ability); - this.TP_General.Controls.Add(this.TB_BaseExp); - this.TP_General.Controls.Add(this.L_BaseEXP); - this.TP_General.Controls.Add(this.TB_HatchCycles); - this.TP_General.Controls.Add(this.L_HatchCycles); - this.TP_General.Controls.Add(this.TB_Friendship); - this.TP_General.Controls.Add(this.TB_Gender); - this.TP_General.Controls.Add(this.L_Friendship); - this.TP_General.Controls.Add(this.L_Gender); - this.TP_General.Controls.Add(this.L_Item1); - this.TP_General.Controls.Add(this.L_Item5); - this.TP_General.Controls.Add(this.L_Item50); - this.TP_General.Controls.Add(this.CB_HeldItem3); - this.TP_General.Controls.Add(this.CB_HeldItem2); - this.TP_General.Controls.Add(this.CB_HeldItem1); - this.TP_General.Controls.Add(this.L_HeldItem); - this.TP_General.Controls.Add(this.CB_Type2); - this.TP_General.Controls.Add(this.CB_Type1); - this.TP_General.Controls.Add(this.L_Type); - this.TP_General.Controls.Add(this.TB_SPEEVs); - this.TP_General.Controls.Add(this.TB_SPDEVs); - this.TP_General.Controls.Add(this.TB_SPAEVs); - this.TP_General.Controls.Add(this.TB_DEFEVs); - this.TP_General.Controls.Add(this.TB_ATKEVs); - this.TP_General.Controls.Add(this.TB_HPEVs); - this.TP_General.Controls.Add(this.TB_BaseSPE); - this.TP_General.Controls.Add(this.TB_BaseSPD); - this.TP_General.Controls.Add(this.TB_BaseSPA); - this.TP_General.Controls.Add(this.TB_BaseDEF); - this.TP_General.Controls.Add(this.TB_BaseATK); - this.TP_General.Controls.Add(this.TB_BaseHP); - this.TP_General.Controls.Add(this.Label_HP); - this.TP_General.Controls.Add(this.Label_ATK); - this.TP_General.Controls.Add(this.Label_DEF); - this.TP_General.Controls.Add(this.Label_SPA); - this.TP_General.Controls.Add(this.Label_SPD); - this.TP_General.Controls.Add(this.Label_SPE); - this.TP_General.Controls.Add(this.L_EVYield); - this.TP_General.Controls.Add(this.L_BaseStats); - this.TP_General.Controls.Add(this.label1); - this.TP_General.Controls.Add(this.L_BaseMove); - this.TP_General.Controls.Add(this.L_ZItem); - this.TP_General.Location = new System.Drawing.Point(4, 22); - this.TP_General.Name = "TP_General"; - this.TP_General.Padding = new System.Windows.Forms.Padding(3); - this.TP_General.Size = new System.Drawing.Size(437, 349); - this.TP_General.TabIndex = 0; - this.TP_General.Text = "General Info"; - this.TP_General.UseVisualStyleBackColor = true; - // - // TB_CallRate - // - this.TB_CallRate.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_CallRate.Location = new System.Drawing.Point(77, 278); - this.TB_CallRate.Mask = "000"; - this.TB_CallRate.Name = "TB_CallRate"; - this.TB_CallRate.Size = new System.Drawing.Size(31, 20); - this.TB_CallRate.TabIndex = 93; - this.TB_CallRate.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_CallRate.TextChanged += new System.EventHandler(this.ByteLimiter); - // - // L_CallRate - // - this.L_CallRate.AutoSize = true; - this.L_CallRate.Location = new System.Drawing.Point(23, 282); - this.L_CallRate.Name = "L_CallRate"; - this.L_CallRate.Size = new System.Drawing.Size(53, 13); - this.L_CallRate.TabIndex = 92; - this.L_CallRate.Text = "Call Rate:"; - this.L_CallRate.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // CHK_Variant - // - this.CHK_Variant.AutoSize = true; - this.CHK_Variant.CheckAlign = System.Drawing.ContentAlignment.MiddleRight; - this.CHK_Variant.Location = new System.Drawing.Point(178, 261); - this.CHK_Variant.Name = "CHK_Variant"; - this.CHK_Variant.Size = new System.Drawing.Size(104, 17); - this.CHK_Variant.TabIndex = 91; - this.CHK_Variant.Text = "Regional Variant"; - this.CHK_Variant.UseVisualStyleBackColor = true; - // - // TB_BST - // - this.TB_BST.Location = new System.Drawing.Point(387, 27); - this.TB_BST.Name = "TB_BST"; - this.TB_BST.ReadOnly = true; - this.TB_BST.Size = new System.Drawing.Size(31, 20); - this.TB_BST.TabIndex = 90; - this.TB_BST.Text = "___"; - this.TB_BST.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - // - // L_BST - // - this.L_BST.AutoSize = true; - this.L_BST.Location = new System.Drawing.Point(355, 30); - this.L_BST.Name = "L_BST"; - this.L_BST.Size = new System.Drawing.Size(31, 13); - this.L_BST.TabIndex = 89; - this.L_BST.Text = "BST:"; - this.L_BST.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // TB_RawColor - // - this.TB_RawColor.Location = new System.Drawing.Point(382, 211); - this.TB_RawColor.Name = "TB_RawColor"; - this.TB_RawColor.ReadOnly = true; - this.TB_RawColor.Size = new System.Drawing.Size(30, 20); - this.TB_RawColor.TabIndex = 88; - this.TB_RawColor.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_RawColor.Visible = false; - // - // TB_CatchRate - // - this.TB_CatchRate.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_CatchRate.Location = new System.Drawing.Point(387, 51); - this.TB_CatchRate.Mask = "000"; - this.TB_CatchRate.Name = "TB_CatchRate"; - this.TB_CatchRate.Size = new System.Drawing.Size(31, 20); - this.TB_CatchRate.TabIndex = 87; - this.TB_CatchRate.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_CatchRate.TextChanged += new System.EventHandler(this.ByteLimiter); - // - // TB_Stage - // - this.TB_Stage.Location = new System.Drawing.Point(382, 238); - this.TB_Stage.Name = "TB_Stage"; - this.TB_Stage.ReadOnly = true; - this.TB_Stage.Size = new System.Drawing.Size(30, 20); - this.TB_Stage.TabIndex = 86; - this.TB_Stage.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - // - // L_Stage - // - this.L_Stage.AutoSize = true; - this.L_Stage.Location = new System.Drawing.Point(296, 241); - this.L_Stage.Name = "L_Stage"; - this.L_Stage.Size = new System.Drawing.Size(85, 13); - this.L_Stage.TabIndex = 85; - this.L_Stage.Text = "Evolution Stage:"; - this.L_Stage.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // TB_FormeCount - // - this.TB_FormeCount.Location = new System.Drawing.Point(382, 278); - this.TB_FormeCount.Name = "TB_FormeCount"; - this.TB_FormeCount.ReadOnly = true; - this.TB_FormeCount.Size = new System.Drawing.Size(30, 20); - this.TB_FormeCount.TabIndex = 82; - this.TB_FormeCount.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - // - // L_FormesCount - // - this.L_FormesCount.AutoSize = true; - this.L_FormesCount.Location = new System.Drawing.Point(306, 282); - this.L_FormesCount.Name = "L_FormesCount"; - this.L_FormesCount.Size = new System.Drawing.Size(75, 13); - this.L_FormesCount.TabIndex = 81; - this.L_FormesCount.Text = "Formes Count:"; - this.L_FormesCount.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // TB_FormeSprite - // - this.TB_FormeSprite.Location = new System.Drawing.Point(382, 258); - this.TB_FormeSprite.Name = "TB_FormeSprite"; - this.TB_FormeSprite.ReadOnly = true; - this.TB_FormeSprite.Size = new System.Drawing.Size(30, 20); - this.TB_FormeSprite.TabIndex = 80; - this.TB_FormeSprite.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - // - // L_FormeSprite - // - this.L_FormeSprite.AutoSize = true; - this.L_FormeSprite.Location = new System.Drawing.Point(312, 262); - this.L_FormeSprite.Name = "L_FormeSprite"; - this.L_FormeSprite.Size = new System.Drawing.Size(69, 13); - this.L_FormeSprite.TabIndex = 79; - this.L_FormeSprite.Text = "Forme Sprite:"; - this.L_FormeSprite.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_CatchRate - // - this.L_CatchRate.AutoSize = true; - this.L_CatchRate.Location = new System.Drawing.Point(322, 54); - this.L_CatchRate.Name = "L_CatchRate"; - this.L_CatchRate.Size = new System.Drawing.Size(64, 13); - this.L_CatchRate.TabIndex = 77; - this.L_CatchRate.Text = "Catch Rate:"; - // - // CB_Color - // - this.CB_Color.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Color.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Color.FormattingEnabled = true; - this.CB_Color.Location = new System.Drawing.Point(295, 211); - this.CB_Color.Name = "CB_Color"; - this.CB_Color.Size = new System.Drawing.Size(86, 21); - this.CB_Color.TabIndex = 76; - // - // CB_EXPGroup - // - this.CB_EXPGroup.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_EXPGroup.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_EXPGroup.FormattingEnabled = true; - this.CB_EXPGroup.Location = new System.Drawing.Point(80, 210); - this.CB_EXPGroup.Name = "CB_EXPGroup"; - this.CB_EXPGroup.Size = new System.Drawing.Size(112, 21); - this.CB_EXPGroup.TabIndex = 75; - // - // L_Color - // - this.L_Color.AutoSize = true; - this.L_Color.Location = new System.Drawing.Point(260, 214); - this.L_Color.Name = "L_Color"; - this.L_Color.Size = new System.Drawing.Size(34, 13); - this.L_Color.TabIndex = 74; - this.L_Color.Text = "Color:"; - // - // L_EXPGrowth - // - this.L_EXPGrowth.AutoSize = true; - this.L_EXPGrowth.Location = new System.Drawing.Point(16, 214); - this.L_EXPGrowth.Name = "L_EXPGrowth"; - this.L_EXPGrowth.Size = new System.Drawing.Size(63, 13); - this.L_EXPGrowth.TabIndex = 73; - this.L_EXPGrowth.Text = "EXP Group:"; - // - // CB_Ability3 - // - this.CB_Ability3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Ability3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Ability3.FormattingEnabled = true; - this.CB_Ability3.Location = new System.Drawing.Point(276, 131); - this.CB_Ability3.Name = "CB_Ability3"; - this.CB_Ability3.Size = new System.Drawing.Size(140, 21); - this.CB_Ability3.TabIndex = 68; - // - // CB_Ability2 - // - this.CB_Ability2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Ability2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Ability2.FormattingEnabled = true; - this.CB_Ability2.Location = new System.Drawing.Point(276, 105); - this.CB_Ability2.Name = "CB_Ability2"; - this.CB_Ability2.Size = new System.Drawing.Size(140, 21); - this.CB_Ability2.TabIndex = 67; - // - // CB_Ability1 - // - this.CB_Ability1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Ability1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Ability1.FormattingEnabled = true; - this.CB_Ability1.Location = new System.Drawing.Point(276, 79); - this.CB_Ability1.Name = "CB_Ability1"; - this.CB_Ability1.Size = new System.Drawing.Size(140, 21); - this.CB_Ability1.TabIndex = 66; - // - // CB_EggGroup2 - // - this.CB_EggGroup2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_EggGroup2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_EggGroup2.FormattingEnabled = true; - this.CB_EggGroup2.Location = new System.Drawing.Point(295, 184); - this.CB_EggGroup2.Name = "CB_EggGroup2"; - this.CB_EggGroup2.Size = new System.Drawing.Size(121, 21); - this.CB_EggGroup2.TabIndex = 65; - // - // CB_EggGroup1 - // - this.CB_EggGroup1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_EggGroup1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_EggGroup1.FormattingEnabled = true; - this.CB_EggGroup1.Location = new System.Drawing.Point(295, 158); - this.CB_EggGroup1.Name = "CB_EggGroup1"; - this.CB_EggGroup1.Size = new System.Drawing.Size(121, 21); - this.CB_EggGroup1.TabIndex = 64; - // - // L_EggGroup - // - this.L_EggGroup.AutoSize = true; - this.L_EggGroup.Location = new System.Drawing.Point(230, 161); - this.L_EggGroup.Name = "L_EggGroup"; - this.L_EggGroup.Size = new System.Drawing.Size(66, 13); - this.L_EggGroup.TabIndex = 63; - this.L_EggGroup.Text = "Egg Groups:"; - // - // L_Ability - // - this.L_Ability.AutoSize = true; - this.L_Ability.Location = new System.Drawing.Point(230, 83); - this.L_Ability.Name = "L_Ability"; - this.L_Ability.Size = new System.Drawing.Size(45, 13); - this.L_Ability.TabIndex = 62; - this.L_Ability.Text = "Abilities:"; - // - // TB_BaseExp - // - this.TB_BaseExp.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_BaseExp.Location = new System.Drawing.Point(77, 298); - this.TB_BaseExp.Mask = "000"; - this.TB_BaseExp.Name = "TB_BaseExp"; - this.TB_BaseExp.Size = new System.Drawing.Size(31, 20); - this.TB_BaseExp.TabIndex = 61; - this.TB_BaseExp.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_BaseExp.TextChanged += new System.EventHandler(this.ByteLimiter); - // - // L_BaseEXP - // - this.L_BaseEXP.AutoSize = true; - this.L_BaseEXP.Location = new System.Drawing.Point(18, 302); - this.L_BaseEXP.Name = "L_BaseEXP"; - this.L_BaseEXP.Size = new System.Drawing.Size(58, 13); - this.L_BaseEXP.TabIndex = 60; - this.L_BaseEXP.Text = "Base EXP:"; - this.L_BaseEXP.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // TB_HatchCycles - // - this.TB_HatchCycles.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_HatchCycles.Location = new System.Drawing.Point(77, 318); - this.TB_HatchCycles.Mask = "000"; - this.TB_HatchCycles.Name = "TB_HatchCycles"; - this.TB_HatchCycles.Size = new System.Drawing.Size(31, 20); - this.TB_HatchCycles.TabIndex = 58; - this.TB_HatchCycles.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_HatchCycles.TextChanged += new System.EventHandler(this.ByteLimiter); - // - // L_HatchCycles - // - this.L_HatchCycles.AutoSize = true; - this.L_HatchCycles.Location = new System.Drawing.Point(3, 321); - this.L_HatchCycles.Name = "L_HatchCycles"; - this.L_HatchCycles.Size = new System.Drawing.Size(73, 13); - this.L_HatchCycles.TabIndex = 57; - this.L_HatchCycles.Text = "Hatch Cycles:"; - this.L_HatchCycles.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // TB_Friendship - // - this.TB_Friendship.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_Friendship.Location = new System.Drawing.Point(77, 258); - this.TB_Friendship.Mask = "000"; - this.TB_Friendship.Name = "TB_Friendship"; - this.TB_Friendship.Size = new System.Drawing.Size(31, 20); - this.TB_Friendship.TabIndex = 56; - this.TB_Friendship.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_Friendship.TextChanged += new System.EventHandler(this.ByteLimiter); - // - // TB_Gender - // - this.TB_Gender.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_Gender.Location = new System.Drawing.Point(77, 238); - this.TB_Gender.Mask = "000"; - this.TB_Gender.Name = "TB_Gender"; - this.TB_Gender.Size = new System.Drawing.Size(31, 20); - this.TB_Gender.TabIndex = 55; - this.TB_Gender.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_Gender.TextChanged += new System.EventHandler(this.ByteLimiter); - // - // L_Friendship - // - this.L_Friendship.AutoSize = true; - this.L_Friendship.Location = new System.Drawing.Point(18, 262); - this.L_Friendship.Name = "L_Friendship"; - this.L_Friendship.Size = new System.Drawing.Size(58, 13); - this.L_Friendship.TabIndex = 54; - this.L_Friendship.Text = "Friendship:"; - this.L_Friendship.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_Gender - // - this.L_Gender.AutoSize = true; - this.L_Gender.Location = new System.Drawing.Point(31, 241); - this.L_Gender.Name = "L_Gender"; - this.L_Gender.Size = new System.Drawing.Size(45, 13); - this.L_Gender.TabIndex = 53; - this.L_Gender.Text = "Gender:"; - this.L_Gender.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_Item1 - // - this.L_Item1.AutoSize = true; - this.L_Item1.Location = new System.Drawing.Point(195, 134); - this.L_Item1.Name = "L_Item1"; - this.L_Item1.Size = new System.Drawing.Size(21, 13); - this.L_Item1.TabIndex = 52; - this.L_Item1.Text = "1%"; - // - // L_Item5 - // - this.L_Item5.AutoSize = true; - this.L_Item5.Location = new System.Drawing.Point(195, 107); - this.L_Item5.Name = "L_Item5"; - this.L_Item5.Size = new System.Drawing.Size(21, 13); - this.L_Item5.TabIndex = 51; - this.L_Item5.Text = "5%"; - // - // L_Item50 - // - this.L_Item50.AutoSize = true; - this.L_Item50.Location = new System.Drawing.Point(195, 83); - this.L_Item50.Name = "L_Item50"; - this.L_Item50.Size = new System.Drawing.Size(27, 13); - this.L_Item50.TabIndex = 50; - this.L_Item50.Text = "50%"; - // - // CB_HeldItem3 - // - this.CB_HeldItem3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_HeldItem3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_HeldItem3.FormattingEnabled = true; - this.CB_HeldItem3.Location = new System.Drawing.Point(52, 131); - this.CB_HeldItem3.Name = "CB_HeldItem3"; - this.CB_HeldItem3.Size = new System.Drawing.Size(140, 21); - this.CB_HeldItem3.TabIndex = 49; - // - // CB_HeldItem2 - // - this.CB_HeldItem2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_HeldItem2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_HeldItem2.FormattingEnabled = true; - this.CB_HeldItem2.Location = new System.Drawing.Point(52, 105); - this.CB_HeldItem2.Name = "CB_HeldItem2"; - this.CB_HeldItem2.Size = new System.Drawing.Size(140, 21); - this.CB_HeldItem2.TabIndex = 48; - // - // CB_HeldItem1 - // - this.CB_HeldItem1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_HeldItem1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_HeldItem1.FormattingEnabled = true; - this.CB_HeldItem1.Location = new System.Drawing.Point(52, 79); - this.CB_HeldItem1.Name = "CB_HeldItem1"; - this.CB_HeldItem1.Size = new System.Drawing.Size(140, 21); - this.CB_HeldItem1.TabIndex = 47; - // - // L_HeldItem - // - this.L_HeldItem.AutoSize = true; - this.L_HeldItem.Location = new System.Drawing.Point(16, 82); - this.L_HeldItem.Name = "L_HeldItem"; - this.L_HeldItem.Size = new System.Drawing.Size(35, 13); - this.L_HeldItem.TabIndex = 46; - this.L_HeldItem.Text = "Items:"; - // - // CB_Type2 - // - this.CB_Type2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Type2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Type2.FormattingEnabled = true; - this.CB_Type2.Location = new System.Drawing.Point(63, 184); - this.CB_Type2.Name = "CB_Type2"; - this.CB_Type2.Size = new System.Drawing.Size(129, 21); - this.CB_Type2.TabIndex = 45; - // - // CB_Type1 - // - this.CB_Type1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Type1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Type1.FormattingEnabled = true; - this.CB_Type1.Location = new System.Drawing.Point(63, 158); - this.CB_Type1.Name = "CB_Type1"; - this.CB_Type1.Size = new System.Drawing.Size(129, 21); - this.CB_Type1.TabIndex = 44; - // - // L_Type - // - this.L_Type.AutoSize = true; - this.L_Type.Location = new System.Drawing.Point(16, 161); - this.L_Type.Name = "L_Type"; - this.L_Type.Size = new System.Drawing.Size(47, 13); - this.L_Type.TabIndex = 43; - this.L_Type.Text = "Typings:"; - // - // TB_SPEEVs - // - this.TB_SPEEVs.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_SPEEVs.Location = new System.Drawing.Point(273, 51); - this.TB_SPEEVs.Mask = "0"; - this.TB_SPEEVs.Name = "TB_SPEEVs"; - this.TB_SPEEVs.Size = new System.Drawing.Size(31, 20); - this.TB_SPEEVs.TabIndex = 42; - this.TB_SPEEVs.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_SPEEVs.TextChanged += new System.EventHandler(this.ByteLimiter); - // - // TB_SPDEVs - // - this.TB_SPDEVs.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_SPDEVs.Location = new System.Drawing.Point(234, 51); - this.TB_SPDEVs.Mask = "0"; - this.TB_SPDEVs.Name = "TB_SPDEVs"; - this.TB_SPDEVs.Size = new System.Drawing.Size(31, 20); - this.TB_SPDEVs.TabIndex = 41; - this.TB_SPDEVs.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_SPDEVs.TextChanged += new System.EventHandler(this.ByteLimiter); - // - // TB_SPAEVs - // - this.TB_SPAEVs.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_SPAEVs.Location = new System.Drawing.Point(195, 51); - this.TB_SPAEVs.Mask = "0"; - this.TB_SPAEVs.Name = "TB_SPAEVs"; - this.TB_SPAEVs.Size = new System.Drawing.Size(31, 20); - this.TB_SPAEVs.TabIndex = 40; - this.TB_SPAEVs.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_SPAEVs.TextChanged += new System.EventHandler(this.ByteLimiter); - // - // TB_DEFEVs - // - this.TB_DEFEVs.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_DEFEVs.Location = new System.Drawing.Point(157, 51); - this.TB_DEFEVs.Mask = "0"; - this.TB_DEFEVs.Name = "TB_DEFEVs"; - this.TB_DEFEVs.Size = new System.Drawing.Size(31, 20); - this.TB_DEFEVs.TabIndex = 39; - this.TB_DEFEVs.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_DEFEVs.TextChanged += new System.EventHandler(this.ByteLimiter); - // - // TB_ATKEVs - // - this.TB_ATKEVs.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_ATKEVs.Location = new System.Drawing.Point(119, 51); - this.TB_ATKEVs.Mask = "0"; - this.TB_ATKEVs.Name = "TB_ATKEVs"; - this.TB_ATKEVs.Size = new System.Drawing.Size(31, 20); - this.TB_ATKEVs.TabIndex = 38; - this.TB_ATKEVs.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_ATKEVs.TextChanged += new System.EventHandler(this.ByteLimiter); - // - // TB_HPEVs - // - this.TB_HPEVs.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_HPEVs.Location = new System.Drawing.Point(80, 51); - this.TB_HPEVs.Mask = "0"; - this.TB_HPEVs.Name = "TB_HPEVs"; - this.TB_HPEVs.Size = new System.Drawing.Size(31, 20); - this.TB_HPEVs.TabIndex = 37; - this.TB_HPEVs.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_HPEVs.TextChanged += new System.EventHandler(this.ByteLimiter); - // - // TB_BaseSPE - // - this.TB_BaseSPE.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_BaseSPE.Location = new System.Drawing.Point(273, 27); - this.TB_BaseSPE.Mask = "000"; - this.TB_BaseSPE.Name = "TB_BaseSPE"; - this.TB_BaseSPE.Size = new System.Drawing.Size(31, 20); - this.TB_BaseSPE.TabIndex = 36; - this.TB_BaseSPE.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_BaseSPE.TextChanged += new System.EventHandler(this.ByteLimiter); - // - // TB_BaseSPD - // - this.TB_BaseSPD.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_BaseSPD.Location = new System.Drawing.Point(234, 27); - this.TB_BaseSPD.Mask = "000"; - this.TB_BaseSPD.Name = "TB_BaseSPD"; - this.TB_BaseSPD.Size = new System.Drawing.Size(31, 20); - this.TB_BaseSPD.TabIndex = 35; - this.TB_BaseSPD.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_BaseSPD.TextChanged += new System.EventHandler(this.ByteLimiter); - // - // TB_BaseSPA - // - this.TB_BaseSPA.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_BaseSPA.Location = new System.Drawing.Point(195, 27); - this.TB_BaseSPA.Mask = "000"; - this.TB_BaseSPA.Name = "TB_BaseSPA"; - this.TB_BaseSPA.Size = new System.Drawing.Size(31, 20); - this.TB_BaseSPA.TabIndex = 34; - this.TB_BaseSPA.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_BaseSPA.TextChanged += new System.EventHandler(this.ByteLimiter); - // - // TB_BaseDEF - // - this.TB_BaseDEF.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_BaseDEF.Location = new System.Drawing.Point(157, 27); - this.TB_BaseDEF.Mask = "000"; - this.TB_BaseDEF.Name = "TB_BaseDEF"; - this.TB_BaseDEF.Size = new System.Drawing.Size(31, 20); - this.TB_BaseDEF.TabIndex = 33; - this.TB_BaseDEF.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_BaseDEF.TextChanged += new System.EventHandler(this.ByteLimiter); - // - // TB_BaseATK - // - this.TB_BaseATK.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_BaseATK.Location = new System.Drawing.Point(119, 27); - this.TB_BaseATK.Mask = "000"; - this.TB_BaseATK.Name = "TB_BaseATK"; - this.TB_BaseATK.Size = new System.Drawing.Size(31, 20); - this.TB_BaseATK.TabIndex = 32; - this.TB_BaseATK.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_BaseATK.TextChanged += new System.EventHandler(this.ByteLimiter); - // - // TB_BaseHP - // - this.TB_BaseHP.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_BaseHP.Location = new System.Drawing.Point(80, 27); - this.TB_BaseHP.Mask = "000"; - this.TB_BaseHP.Name = "TB_BaseHP"; - this.TB_BaseHP.Size = new System.Drawing.Size(31, 20); - this.TB_BaseHP.TabIndex = 31; - this.TB_BaseHP.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_BaseHP.TextChanged += new System.EventHandler(this.ByteLimiter); - // - // Label_HP - // - this.Label_HP.Location = new System.Drawing.Point(77, 11); - this.Label_HP.Name = "Label_HP"; - this.Label_HP.Size = new System.Drawing.Size(31, 13); - this.Label_HP.TabIndex = 25; - this.Label_HP.Text = "HP:"; - this.Label_HP.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // Label_ATK - // - this.Label_ATK.Location = new System.Drawing.Point(119, 11); - this.Label_ATK.Name = "Label_ATK"; - this.Label_ATK.Size = new System.Drawing.Size(31, 13); - this.Label_ATK.TabIndex = 26; - this.Label_ATK.Text = "Atk:"; - this.Label_ATK.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // Label_DEF - // - this.Label_DEF.Location = new System.Drawing.Point(157, 11); - this.Label_DEF.Name = "Label_DEF"; - this.Label_DEF.Size = new System.Drawing.Size(31, 13); - this.Label_DEF.TabIndex = 27; - this.Label_DEF.Text = "Def:"; - this.Label_DEF.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // Label_SPA - // - this.Label_SPA.Location = new System.Drawing.Point(195, 11); - this.Label_SPA.Name = "Label_SPA"; - this.Label_SPA.Size = new System.Drawing.Size(31, 13); - this.Label_SPA.TabIndex = 28; - this.Label_SPA.Text = "SpA:"; - this.Label_SPA.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // Label_SPD - // - this.Label_SPD.Location = new System.Drawing.Point(234, 11); - this.Label_SPD.Name = "Label_SPD"; - this.Label_SPD.Size = new System.Drawing.Size(31, 13); - this.Label_SPD.TabIndex = 29; - this.Label_SPD.Text = "SpD:"; - this.Label_SPD.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // Label_SPE - // - this.Label_SPE.Location = new System.Drawing.Point(271, 11); - this.Label_SPE.Name = "Label_SPE"; - this.Label_SPE.Size = new System.Drawing.Size(31, 13); - this.Label_SPE.TabIndex = 30; - this.Label_SPE.Text = "Spe:"; - this.Label_SPE.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_EVYield - // - this.L_EVYield.AutoSize = true; - this.L_EVYield.Location = new System.Drawing.Point(16, 54); - this.L_EVYield.Name = "L_EVYield"; - this.L_EVYield.Size = new System.Drawing.Size(50, 13); - this.L_EVYield.TabIndex = 2; - this.L_EVYield.Text = "EV Yield:"; - // - // L_BaseStats - // - this.L_BaseStats.AutoSize = true; - this.L_BaseStats.Location = new System.Drawing.Point(16, 30); - this.L_BaseStats.Name = "L_BaseStats"; - this.L_BaseStats.Size = new System.Drawing.Size(61, 13); - this.L_BaseStats.TabIndex = 1; - this.L_BaseStats.Text = "Base Stats:"; - // - // TP_MoveTutors - // - this.TP_MoveTutors.Controls.Add(this.L_BeachTutors); - this.TP_MoveTutors.Controls.Add(this.CLB_BeachTutors); - this.TP_MoveTutors.Controls.Add(this.L_Special); - this.TP_MoveTutors.Controls.Add(this.L_TM); - this.TP_MoveTutors.Controls.Add(this.CLB_MoveTutors); - this.TP_MoveTutors.Controls.Add(this.CLB_TM); - this.TP_MoveTutors.Location = new System.Drawing.Point(4, 22); - this.TP_MoveTutors.Name = "TP_MoveTutors"; - this.TP_MoveTutors.Padding = new System.Windows.Forms.Padding(3); - this.TP_MoveTutors.Size = new System.Drawing.Size(437, 349); - this.TP_MoveTutors.TabIndex = 1; - this.TP_MoveTutors.Text = "Move Tutors"; - this.TP_MoveTutors.UseVisualStyleBackColor = true; - // - // L_Special - // - this.L_Special.AutoSize = true; - this.L_Special.Location = new System.Drawing.Point(159, 3); - this.L_Special.Name = "L_Special"; - this.L_Special.Size = new System.Drawing.Size(78, 13); - this.L_Special.TabIndex = 6; - this.L_Special.Text = "Special Tutors:"; - // - // L_TM - // - this.L_TM.AutoSize = true; - this.L_TM.Location = new System.Drawing.Point(6, 3); - this.L_TM.Name = "L_TM"; - this.L_TM.Size = new System.Drawing.Size(26, 13); - this.L_TM.TabIndex = 5; - this.L_TM.Text = "TM:"; - // - // CLB_MoveTutors - // - this.CLB_MoveTutors.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left))); - this.CLB_MoveTutors.FormattingEnabled = true; - this.CLB_MoveTutors.Location = new System.Drawing.Point(162, 19); - this.CLB_MoveTutors.Name = "CLB_MoveTutors"; - this.CLB_MoveTutors.Size = new System.Drawing.Size(133, 319); - this.CLB_MoveTutors.TabIndex = 3; - // - // CLB_TM - // - this.CLB_TM.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left))); - this.CLB_TM.FormattingEnabled = true; - this.CLB_TM.Location = new System.Drawing.Point(9, 19); - this.CLB_TM.Name = "CLB_TM"; - this.CLB_TM.Size = new System.Drawing.Size(147, 319); - this.CLB_TM.TabIndex = 2; - // - // TP_Randomizer - // - this.TP_Randomizer.Controls.Add(this.GB_Modifier); - this.TP_Randomizer.Controls.Add(this.B_ModAll); - this.TP_Randomizer.Controls.Add(this.GB_Randomizer); - this.TP_Randomizer.Controls.Add(this.B_Randomize); - this.TP_Randomizer.Location = new System.Drawing.Point(4, 22); - this.TP_Randomizer.Name = "TP_Randomizer"; - this.TP_Randomizer.Size = new System.Drawing.Size(437, 349); - this.TP_Randomizer.TabIndex = 2; - this.TP_Randomizer.Text = "Enhancements"; - this.TP_Randomizer.UseVisualStyleBackColor = true; - // - // GB_Modifier - // - this.GB_Modifier.Controls.Add(this.CHK_CatchRateMod); - this.GB_Modifier.Controls.Add(this.L_CatchRateMod); - this.GB_Modifier.Controls.Add(this.NUD_CatchRateMod); - this.GB_Modifier.Controls.Add(this.CHK_CallRate); - this.GB_Modifier.Controls.Add(this.L_CallRateVal); - this.GB_Modifier.Controls.Add(this.NUD_CallRate); - this.GB_Modifier.Controls.Add(this.CHK_EXP); - this.GB_Modifier.Controls.Add(this.CHK_Growth); - this.GB_Modifier.Controls.Add(this.CHK_QuickHatch); - this.GB_Modifier.Controls.Add(this.L_FinalXP); - this.GB_Modifier.Controls.Add(this.NUD_EXP); - this.GB_Modifier.Controls.Add(this.CHK_NoEV); - this.GB_Modifier.Location = new System.Drawing.Point(4, 147); - this.GB_Modifier.Name = "GB_Modifier"; - this.GB_Modifier.Size = new System.Drawing.Size(345, 129); - this.GB_Modifier.TabIndex = 419; - this.GB_Modifier.TabStop = false; - this.GB_Modifier.Text = "Modifier Options"; - // - // CHK_CatchRateMod - // - this.CHK_CatchRateMod.AutoSize = true; - this.CHK_CatchRateMod.Location = new System.Drawing.Point(204, 81); - this.CHK_CatchRateMod.Name = "CHK_CatchRateMod"; - this.CHK_CatchRateMod.Size = new System.Drawing.Size(114, 17); - this.CHK_CatchRateMod.TabIndex = 16; - this.CHK_CatchRateMod.Text = "Modify Catch Rate"; - this.CHK_CatchRateMod.UseVisualStyleBackColor = true; - // - // L_CatchRateMod - // - this.L_CatchRateMod.AutoSize = true; - this.L_CatchRateMod.Location = new System.Drawing.Point(204, 101); - this.L_CatchRateMod.Name = "L_CatchRateMod"; - this.L_CatchRateMod.Size = new System.Drawing.Size(34, 13); - this.L_CatchRateMod.TabIndex = 15; - this.L_CatchRateMod.Text = "Value"; - // - // NUD_CatchRateMod - // - this.NUD_CatchRateMod.Location = new System.Drawing.Point(267, 99); - this.NUD_CatchRateMod.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.NUD_CatchRateMod.Minimum = new decimal(new int[] { - 3, - 0, - 0, - 0}); - this.NUD_CatchRateMod.Name = "NUD_CatchRateMod"; - this.NUD_CatchRateMod.Size = new System.Drawing.Size(46, 20); - this.NUD_CatchRateMod.TabIndex = 14; - this.NUD_CatchRateMod.Value = new decimal(new int[] { - 3, - 0, - 0, - 0}); - // - // CHK_CallRate - // - this.CHK_CallRate.AutoSize = true; - this.CHK_CallRate.Location = new System.Drawing.Point(204, 38); - this.CHK_CallRate.Name = "CHK_CallRate"; - this.CHK_CallRate.Size = new System.Drawing.Size(128, 17); - this.CHK_CallRate.TabIndex = 13; - this.CHK_CallRate.Text = "Modify SOS Call Rate"; - this.CHK_CallRate.UseVisualStyleBackColor = true; - // - // L_CallRateVal - // - this.L_CallRateVal.AutoSize = true; - this.L_CallRateVal.Location = new System.Drawing.Point(204, 58); - this.L_CallRateVal.Name = "L_CallRateVal"; - this.L_CallRateVal.Size = new System.Drawing.Size(34, 13); - this.L_CallRateVal.TabIndex = 12; - this.L_CallRateVal.Text = "Value"; - // - // NUD_CallRate - // - this.NUD_CallRate.Location = new System.Drawing.Point(267, 56); - this.NUD_CallRate.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.NUD_CallRate.Name = "NUD_CallRate"; - this.NUD_CallRate.Size = new System.Drawing.Size(46, 20); - this.NUD_CallRate.TabIndex = 11; - this.NUD_CallRate.Value = new decimal(new int[] { - 15, - 0, - 0, - 0}); - // - // CHK_EXP - // - this.CHK_EXP.AutoSize = true; - this.CHK_EXP.Location = new System.Drawing.Point(6, 51); - this.CHK_EXP.Name = "CHK_EXP"; - this.CHK_EXP.Size = new System.Drawing.Size(107, 17); - this.CHK_EXP.TabIndex = 7; - this.CHK_EXP.Text = "Modify EXP Yield"; - this.CHK_EXP.UseVisualStyleBackColor = true; - // - // CHK_Growth - // - this.CHK_Growth.AutoSize = true; - this.CHK_Growth.Location = new System.Drawing.Point(6, 36); - this.CHK_Growth.Name = "CHK_Growth"; - this.CHK_Growth.Size = new System.Drawing.Size(147, 17); - this.CHK_Growth.TabIndex = 8; - this.CHK_Growth.Text = "Lowest EXP Growth Rate"; - this.CHK_Growth.UseVisualStyleBackColor = true; - // - // CHK_QuickHatch - // - this.CHK_QuickHatch.AutoSize = true; - this.CHK_QuickHatch.Checked = true; - this.CHK_QuickHatch.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_QuickHatch.Location = new System.Drawing.Point(204, 21); - this.CHK_QuickHatch.Name = "CHK_QuickHatch"; - this.CHK_QuickHatch.Size = new System.Drawing.Size(113, 17); - this.CHK_QuickHatch.TabIndex = 10; - this.CHK_QuickHatch.Text = "Quick Hatch Eggs"; - this.CHK_QuickHatch.UseVisualStyleBackColor = true; - // - // L_FinalXP - // - this.L_FinalXP.AutoSize = true; - this.L_FinalXP.Location = new System.Drawing.Point(6, 71); - this.L_FinalXP.Name = "L_FinalXP"; - this.L_FinalXP.Size = new System.Drawing.Size(63, 13); - this.L_FinalXP.TabIndex = 6; - this.L_FinalXP.Text = "Final XP (%)"; - // - // NUD_EXP - // - this.NUD_EXP.Location = new System.Drawing.Point(69, 69); - this.NUD_EXP.Maximum = new decimal(new int[] { - 300, - 0, - 0, - 0}); - this.NUD_EXP.Name = "NUD_EXP"; - this.NUD_EXP.Size = new System.Drawing.Size(46, 20); - this.NUD_EXP.TabIndex = 5; - this.NUD_EXP.Value = new decimal(new int[] { - 28, - 0, - 0, - 0}); - // - // CHK_NoEV - // - this.CHK_NoEV.AutoSize = true; - this.CHK_NoEV.Location = new System.Drawing.Point(6, 21); - this.CHK_NoEV.Name = "CHK_NoEV"; - this.CHK_NoEV.Size = new System.Drawing.Size(114, 17); - this.CHK_NoEV.TabIndex = 0; - this.CHK_NoEV.Text = "Remove EV Yields"; - this.CHK_NoEV.UseVisualStyleBackColor = true; - // - // B_ModAll - // - this.B_ModAll.Location = new System.Drawing.Point(352, 162); - this.B_ModAll.Name = "B_ModAll"; - this.B_ModAll.Size = new System.Drawing.Size(82, 23); - this.B_ModAll.TabIndex = 421; - this.B_ModAll.Text = "Modify All"; - this.B_ModAll.UseVisualStyleBackColor = true; - this.B_ModAll.Click += new System.EventHandler(this.B_ModifyAll); - // - // GB_Randomizer - // - this.GB_Randomizer.Controls.Add(this.CHK_BeachTutors); - this.GB_Randomizer.Controls.Add(this.L_Same); - this.GB_Randomizer.Controls.Add(this.NUD_Egg); - this.GB_Randomizer.Controls.Add(this.CHK_WGuard); - this.GB_Randomizer.Controls.Add(this.CHK_Ability); - this.GB_Randomizer.Controls.Add(this.CHK_Tutors); - this.GB_Randomizer.Controls.Add(this.CHK_rSPE); - this.GB_Randomizer.Controls.Add(this.CHK_Type); - this.GB_Randomizer.Controls.Add(this.CHK_rSPD); - this.GB_Randomizer.Controls.Add(this.CHK_rSPA); - this.GB_Randomizer.Controls.Add(this.L_SingleType); - this.GB_Randomizer.Controls.Add(this.CHK_rDEF); - this.GB_Randomizer.Controls.Add(this.CHK_rATK); - this.GB_Randomizer.Controls.Add(this.NUD_TypePercent); - this.GB_Randomizer.Controls.Add(this.CHK_rHP); - this.GB_Randomizer.Controls.Add(this.CHK_HM); - this.GB_Randomizer.Controls.Add(this.L_StatDev); - this.GB_Randomizer.Controls.Add(this.CHK_TM); - this.GB_Randomizer.Controls.Add(this.NUD_StatDev); - this.GB_Randomizer.Controls.Add(this.CHK_Stats); - this.GB_Randomizer.Controls.Add(this.CHK_EggGroup); - this.GB_Randomizer.Controls.Add(this.CHK_CatchRate); - this.GB_Randomizer.Controls.Add(this.CHK_Item); - this.GB_Randomizer.Location = new System.Drawing.Point(4, 12); - this.GB_Randomizer.Name = "GB_Randomizer"; - this.GB_Randomizer.Size = new System.Drawing.Size(345, 129); - this.GB_Randomizer.TabIndex = 418; - this.GB_Randomizer.TabStop = false; - this.GB_Randomizer.Text = "Randomizer Options"; - // - // L_Same - // - this.L_Same.AutoSize = true; - this.L_Same.Location = new System.Drawing.Point(216, 86); - this.L_Same.Name = "L_Same"; - this.L_Same.Size = new System.Drawing.Size(48, 13); - this.L_Same.TabIndex = 23; - this.L_Same.Text = "Same(%)"; - // - // NUD_Egg - // - this.NUD_Egg.Location = new System.Drawing.Point(267, 84); - this.NUD_Egg.Name = "NUD_Egg"; - this.NUD_Egg.Size = new System.Drawing.Size(46, 20); - this.NUD_Egg.TabIndex = 22; - this.NUD_Egg.Value = new decimal(new int[] { - 50, - 0, - 0, - 0}); - // - // CHK_WGuard - // - this.CHK_WGuard.AutoSize = true; - this.CHK_WGuard.Location = new System.Drawing.Point(118, 49); - this.CHK_WGuard.Name = "CHK_WGuard"; - this.CHK_WGuard.Size = new System.Drawing.Size(96, 17); - this.CHK_WGuard.TabIndex = 10; - this.CHK_WGuard.Text = "Wonder Guard"; - this.CHK_WGuard.UseVisualStyleBackColor = true; - // - // CHK_Ability - // - this.CHK_Ability.AutoSize = true; - this.CHK_Ability.Checked = true; - this.CHK_Ability.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_Ability.Location = new System.Drawing.Point(118, 34); - this.CHK_Ability.Name = "CHK_Ability"; - this.CHK_Ability.Size = new System.Drawing.Size(61, 17); - this.CHK_Ability.TabIndex = 1; - this.CHK_Ability.Text = "Abilities"; - this.CHK_Ability.UseVisualStyleBackColor = true; - this.CHK_Ability.CheckedChanged += new System.EventHandler(this.CHK_Ability_CheckedChanged); - // - // CHK_Tutors - // - this.CHK_Tutors.AutoSize = true; - this.CHK_Tutors.Checked = true; - this.CHK_Tutors.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_Tutors.Location = new System.Drawing.Point(219, 34); - this.CHK_Tutors.Name = "CHK_Tutors"; - this.CHK_Tutors.Size = new System.Drawing.Size(94, 17); - this.CHK_Tutors.TabIndex = 8; - this.CHK_Tutors.Text = "Special Tutors"; - this.CHK_Tutors.UseVisualStyleBackColor = true; - // - // CHK_rSPE - // - this.CHK_rSPE.AutoSize = true; - this.CHK_rSPE.Checked = true; - this.CHK_rSPE.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_rSPE.Location = new System.Drawing.Point(51, 64); - this.CHK_rSPE.Name = "CHK_rSPE"; - this.CHK_rSPE.Size = new System.Drawing.Size(45, 17); - this.CHK_rSPE.TabIndex = 19; - this.CHK_rSPE.Text = "Spe"; - this.CHK_rSPE.UseVisualStyleBackColor = true; - // - // CHK_Type - // - this.CHK_Type.AutoSize = true; - this.CHK_Type.Checked = true; - this.CHK_Type.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_Type.Location = new System.Drawing.Point(118, 65); - this.CHK_Type.Name = "CHK_Type"; - this.CHK_Type.Size = new System.Drawing.Size(55, 17); - this.CHK_Type.TabIndex = 6; - this.CHK_Type.Text = "Types"; - this.CHK_Type.UseVisualStyleBackColor = true; - // - // CHK_rSPD - // - this.CHK_rSPD.AutoSize = true; - this.CHK_rSPD.Checked = true; - this.CHK_rSPD.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_rSPD.Location = new System.Drawing.Point(6, 64); - this.CHK_rSPD.Name = "CHK_rSPD"; - this.CHK_rSPD.Size = new System.Drawing.Size(47, 17); - this.CHK_rSPD.TabIndex = 18; - this.CHK_rSPD.Text = "SpD"; - this.CHK_rSPD.UseVisualStyleBackColor = true; - // - // CHK_rSPA - // - this.CHK_rSPA.AutoSize = true; - this.CHK_rSPA.Checked = true; - this.CHK_rSPA.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_rSPA.Location = new System.Drawing.Point(51, 49); - this.CHK_rSPA.Name = "CHK_rSPA"; - this.CHK_rSPA.Size = new System.Drawing.Size(46, 17); - this.CHK_rSPA.TabIndex = 17; - this.CHK_rSPA.Text = "SpA"; - this.CHK_rSPA.UseVisualStyleBackColor = true; - // - // L_SingleType - // - this.L_SingleType.AutoSize = true; - this.L_SingleType.Location = new System.Drawing.Point(115, 82); - this.L_SingleType.Name = "L_SingleType"; - this.L_SingleType.Size = new System.Drawing.Size(77, 13); - this.L_SingleType.TabIndex = 21; - this.L_SingleType.Text = "Single Type(%)"; - // - // CHK_rDEF - // - this.CHK_rDEF.AutoSize = true; - this.CHK_rDEF.Checked = true; - this.CHK_rDEF.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_rDEF.Location = new System.Drawing.Point(6, 49); - this.CHK_rDEF.Name = "CHK_rDEF"; - this.CHK_rDEF.Size = new System.Drawing.Size(43, 17); - this.CHK_rDEF.TabIndex = 16; - this.CHK_rDEF.Text = "Def"; - this.CHK_rDEF.UseVisualStyleBackColor = true; - // - // CHK_rATK - // - this.CHK_rATK.AutoSize = true; - this.CHK_rATK.Checked = true; - this.CHK_rATK.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_rATK.Location = new System.Drawing.Point(51, 34); - this.CHK_rATK.Name = "CHK_rATK"; - this.CHK_rATK.Size = new System.Drawing.Size(42, 17); - this.CHK_rATK.TabIndex = 15; - this.CHK_rATK.Text = "Atk"; - this.CHK_rATK.UseVisualStyleBackColor = true; - // - // NUD_TypePercent - // - this.NUD_TypePercent.Location = new System.Drawing.Point(134, 98); - this.NUD_TypePercent.Name = "NUD_TypePercent"; - this.NUD_TypePercent.Size = new System.Drawing.Size(46, 20); - this.NUD_TypePercent.TabIndex = 20; - this.NUD_TypePercent.Value = new decimal(new int[] { - 50, - 0, - 0, - 0}); - // - // CHK_rHP - // - this.CHK_rHP.AutoSize = true; - this.CHK_rHP.Checked = true; - this.CHK_rHP.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_rHP.Location = new System.Drawing.Point(6, 34); - this.CHK_rHP.Name = "CHK_rHP"; - this.CHK_rHP.Size = new System.Drawing.Size(41, 17); - this.CHK_rHP.TabIndex = 14; - this.CHK_rHP.Text = "HP"; - this.CHK_rHP.UseVisualStyleBackColor = true; - // - // CHK_HM - // - this.CHK_HM.AutoSize = true; - this.CHK_HM.Checked = true; - this.CHK_HM.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_HM.Location = new System.Drawing.Point(267, 19); - this.CHK_HM.Name = "CHK_HM"; - this.CHK_HM.Size = new System.Drawing.Size(43, 17); - this.CHK_HM.TabIndex = 7; - this.CHK_HM.Text = "HM"; - this.CHK_HM.UseVisualStyleBackColor = true; - // - // L_StatDev - // - this.L_StatDev.AutoSize = true; - this.L_StatDev.Location = new System.Drawing.Point(6, 82); - this.L_StatDev.Name = "L_StatDev"; - this.L_StatDev.Size = new System.Drawing.Size(67, 13); - this.L_StatDev.TabIndex = 4; - this.L_StatDev.Text = "Deviance(%)"; - // - // CHK_TM - // - this.CHK_TM.AutoSize = true; - this.CHK_TM.Checked = true; - this.CHK_TM.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_TM.Location = new System.Drawing.Point(219, 19); - this.CHK_TM.Name = "CHK_TM"; - this.CHK_TM.Size = new System.Drawing.Size(42, 17); - this.CHK_TM.TabIndex = 0; - this.CHK_TM.Text = "TM"; - this.CHK_TM.UseVisualStyleBackColor = true; - // - // NUD_StatDev - // - this.NUD_StatDev.Location = new System.Drawing.Point(27, 98); - this.NUD_StatDev.Name = "NUD_StatDev"; - this.NUD_StatDev.Size = new System.Drawing.Size(46, 20); - this.NUD_StatDev.TabIndex = 3; - this.NUD_StatDev.Value = new decimal(new int[] { - 25, - 0, - 0, - 0}); - // - // CHK_Stats - // - this.CHK_Stats.AutoSize = true; - this.CHK_Stats.Checked = true; - this.CHK_Stats.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_Stats.Location = new System.Drawing.Point(6, 19); - this.CHK_Stats.Name = "CHK_Stats"; - this.CHK_Stats.Size = new System.Drawing.Size(106, 17); - this.CHK_Stats.TabIndex = 2; - this.CHK_Stats.Text = "Randomize Stats"; - this.CHK_Stats.UseVisualStyleBackColor = true; - this.CHK_Stats.CheckedChanged += new System.EventHandler(this.CHK_Stats_CheckedChanged); - // - // CHK_EggGroup - // - this.CHK_EggGroup.AutoSize = true; - this.CHK_EggGroup.Checked = true; - this.CHK_EggGroup.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_EggGroup.Location = new System.Drawing.Point(219, 66); - this.CHK_EggGroup.Name = "CHK_EggGroup"; - this.CHK_EggGroup.Size = new System.Drawing.Size(77, 17); - this.CHK_EggGroup.TabIndex = 13; - this.CHK_EggGroup.Text = "Egg Group"; - this.CHK_EggGroup.UseVisualStyleBackColor = true; - // - // CHK_CatchRate - // - this.CHK_CatchRate.AutoSize = true; - this.CHK_CatchRate.Checked = true; - this.CHK_CatchRate.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_CatchRate.Location = new System.Drawing.Point(219, 50); - this.CHK_CatchRate.Name = "CHK_CatchRate"; - this.CHK_CatchRate.Size = new System.Drawing.Size(80, 17); - this.CHK_CatchRate.TabIndex = 11; - this.CHK_CatchRate.Text = "Catch Rate"; - this.CHK_CatchRate.UseVisualStyleBackColor = true; - // - // CHK_Item - // - this.CHK_Item.AutoSize = true; - this.CHK_Item.Checked = true; - this.CHK_Item.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_Item.Location = new System.Drawing.Point(118, 19); - this.CHK_Item.Name = "CHK_Item"; - this.CHK_Item.Size = new System.Drawing.Size(76, 17); - this.CHK_Item.TabIndex = 5; - this.CHK_Item.Text = "Held Items"; - this.CHK_Item.UseVisualStyleBackColor = true; - // - // B_Randomize - // - this.B_Randomize.Location = new System.Drawing.Point(352, 25); - this.B_Randomize.Name = "B_Randomize"; - this.B_Randomize.Size = new System.Drawing.Size(82, 23); - this.B_Randomize.TabIndex = 417; - this.B_Randomize.Text = "Randomize"; - this.B_Randomize.UseVisualStyleBackColor = true; - this.B_Randomize.Click += new System.EventHandler(this.B_Randomize_Click); - // - // PB_MonSprite - // - this.PB_MonSprite.Location = new System.Drawing.Point(285, 0); - this.PB_MonSprite.Name = "PB_MonSprite"; - this.PB_MonSprite.Size = new System.Drawing.Size(80, 60); - this.PB_MonSprite.TabIndex = 89; - this.PB_MonSprite.TabStop = false; - // - // B_Dump - // - this.B_Dump.Location = new System.Drawing.Point(368, 10); - this.B_Dump.Name = "B_Dump"; - this.B_Dump.Size = new System.Drawing.Size(82, 23); - this.B_Dump.TabIndex = 418; - this.B_Dump.Text = "Dump All"; - this.B_Dump.UseVisualStyleBackColor = true; - this.B_Dump.Click += new System.EventHandler(this.B_Dump_Click); - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(134, 323); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(44, 13); - this.label1.TabIndex = 99; - this.label1.Text = "Z Move"; - // - // CB_ZMove - // - this.CB_ZMove.FormattingEnabled = true; - this.CB_ZMove.Location = new System.Drawing.Point(177, 320); - this.CB_ZMove.Name = "CB_ZMove"; - this.CB_ZMove.Size = new System.Drawing.Size(121, 21); - this.CB_ZMove.TabIndex = 98; - // - // L_BaseMove - // - this.L_BaseMove.AutoSize = true; - this.L_BaseMove.Location = new System.Drawing.Point(116, 302); - this.L_BaseMove.Name = "L_BaseMove"; - this.L_BaseMove.Size = new System.Drawing.Size(61, 13); - this.L_BaseMove.TabIndex = 97; - this.L_BaseMove.Text = "Base Move"; - // - // L_ZItem - // - this.L_ZItem.AutoSize = true; - this.L_ZItem.Location = new System.Drawing.Point(140, 281); - this.L_ZItem.Name = "L_ZItem"; - this.L_ZItem.Size = new System.Drawing.Size(37, 13); - this.L_ZItem.TabIndex = 96; - this.L_ZItem.Text = "Z Item"; - // - // CB_ZBaseMove - // - this.CB_ZBaseMove.FormattingEnabled = true; - this.CB_ZBaseMove.Location = new System.Drawing.Point(177, 299); - this.CB_ZBaseMove.Name = "CB_ZBaseMove"; - this.CB_ZBaseMove.Size = new System.Drawing.Size(121, 21); - this.CB_ZBaseMove.TabIndex = 95; - // - // CB_ZItem - // - this.CB_ZItem.FormattingEnabled = true; - this.CB_ZItem.Location = new System.Drawing.Point(177, 278); - this.CB_ZItem.Name = "CB_ZItem"; - this.CB_ZItem.Size = new System.Drawing.Size(121, 21); - this.CB_ZItem.TabIndex = 94; - // - // L_WeightKG - // - this.L_WeightKG.AutoSize = true; - this.L_WeightKG.Location = new System.Drawing.Point(415, 322); - this.L_WeightKG.Name = "L_WeightKG"; - this.L_WeightKG.Size = new System.Drawing.Size(19, 13); - this.L_WeightKG.TabIndex = 105; - this.L_WeightKG.Text = "kg"; - // - // L_HeightM - // - this.L_HeightM.AutoSize = true; - this.L_HeightM.Location = new System.Drawing.Point(415, 302); - this.L_HeightM.Name = "L_HeightM"; - this.L_HeightM.Size = new System.Drawing.Size(15, 13); - this.L_HeightM.TabIndex = 104; - this.L_HeightM.Text = "m"; - // - // TB_Weight - // - this.TB_Weight.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_Weight.Location = new System.Drawing.Point(381, 318); - this.TB_Weight.Mask = "000.0"; - this.TB_Weight.Name = "TB_Weight"; - this.TB_Weight.Size = new System.Drawing.Size(31, 20); - this.TB_Weight.TabIndex = 103; - this.TB_Weight.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - // - // TB_Height - // - this.TB_Height.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_Height.Location = new System.Drawing.Point(381, 298); - this.TB_Height.Mask = "00.0"; - this.TB_Height.Name = "TB_Height"; - this.TB_Height.Size = new System.Drawing.Size(31, 20); - this.TB_Height.TabIndex = 102; - this.TB_Height.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - // - // L_Weight - // - this.L_Weight.AutoSize = true; - this.L_Weight.Location = new System.Drawing.Point(336, 322); - this.L_Weight.Name = "L_Weight"; - this.L_Weight.Size = new System.Drawing.Size(44, 13); - this.L_Weight.TabIndex = 101; - this.L_Weight.Text = "Weight:"; - this.L_Weight.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_Height - // - this.L_Height.AutoSize = true; - this.L_Height.Location = new System.Drawing.Point(339, 302); - this.L_Height.Name = "L_Height"; - this.L_Height.Size = new System.Drawing.Size(41, 13); - this.L_Height.TabIndex = 100; - this.L_Height.Text = "Height:"; - this.L_Height.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_ORASTutors - // - this.L_BeachTutors.AutoSize = true; - this.L_BeachTutors.Location = new System.Drawing.Point(298, 3); - this.L_BeachTutors.Name = "L_BeachTutors"; - this.L_BeachTutors.Size = new System.Drawing.Size(40, 13); - this.L_BeachTutors.TabIndex = 9; - this.L_BeachTutors.Text = "Tutors:"; - this.L_BeachTutors.Visible = false; - // - // CLB_OrasTutors - // - this.CLB_BeachTutors.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left))); - this.CLB_BeachTutors.Enabled = false; - this.CLB_BeachTutors.FormattingEnabled = true; - this.CLB_BeachTutors.Location = new System.Drawing.Point(301, 19); - this.CLB_BeachTutors.Name = "CLB_BeachTutors"; - this.CLB_BeachTutors.Size = new System.Drawing.Size(133, 319); - this.CLB_BeachTutors.TabIndex = 8; - this.CLB_BeachTutors.Visible = false; - // - // CHK_ORASTutors - // - this.CHK_BeachTutors.AutoSize = true; - this.CHK_BeachTutors.Checked = true; - this.CHK_BeachTutors.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_BeachTutors.Location = new System.Drawing.Point(219, 106); - this.CHK_BeachTutors.Name = "CHK_BeachTutors"; - this.CHK_BeachTutors.Size = new System.Drawing.Size(90, 17); - this.CHK_BeachTutors.TabIndex = 24; - this.CHK_BeachTutors.Text = "Beach Tutors"; - this.CHK_BeachTutors.UseVisualStyleBackColor = true; - // - // PersonalEditor7 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(469, 426); - this.Controls.Add(this.B_Dump); - this.Controls.Add(this.PB_MonSprite); - this.Controls.Add(this.TC_Pokemon); - this.Controls.Add(this.L_Species_Precursor); - this.Controls.Add(this.CB_Species); - this.MaximizeBox = false; - this.MaximumSize = new System.Drawing.Size(485, 465); - this.MinimumSize = new System.Drawing.Size(485, 465); - this.Name = "PersonalEditor7"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Personal Stats Editor"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.formClosing); - this.TC_Pokemon.ResumeLayout(false); - this.TP_General.ResumeLayout(false); - this.TP_General.PerformLayout(); - this.TP_MoveTutors.ResumeLayout(false); - this.TP_MoveTutors.PerformLayout(); - this.TP_Randomizer.ResumeLayout(false); - this.GB_Modifier.ResumeLayout(false); - this.GB_Modifier.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_CatchRateMod)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_CallRate)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_EXP)).EndInit(); - this.GB_Randomizer.ResumeLayout(false); - this.GB_Randomizer.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Egg)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_TypePercent)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_StatDev)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_MonSprite)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.ComboBox CB_Species; - private System.Windows.Forms.Label L_Species_Precursor; - private System.Windows.Forms.TabControl TC_Pokemon; - private System.Windows.Forms.TabPage TP_General; - private System.Windows.Forms.TabPage TP_MoveTutors; - private System.Windows.Forms.MaskedTextBox TB_SPEEVs; - private System.Windows.Forms.MaskedTextBox TB_SPDEVs; - private System.Windows.Forms.MaskedTextBox TB_SPAEVs; - private System.Windows.Forms.MaskedTextBox TB_DEFEVs; - private System.Windows.Forms.MaskedTextBox TB_ATKEVs; - private System.Windows.Forms.MaskedTextBox TB_HPEVs; - private System.Windows.Forms.MaskedTextBox TB_BaseSPE; - private System.Windows.Forms.MaskedTextBox TB_BaseSPD; - private System.Windows.Forms.MaskedTextBox TB_BaseSPA; - private System.Windows.Forms.MaskedTextBox TB_BaseDEF; - private System.Windows.Forms.MaskedTextBox TB_BaseATK; - private System.Windows.Forms.MaskedTextBox TB_BaseHP; - private System.Windows.Forms.Label Label_HP; - private System.Windows.Forms.Label Label_ATK; - private System.Windows.Forms.Label Label_DEF; - private System.Windows.Forms.Label Label_SPA; - private System.Windows.Forms.Label Label_SPD; - private System.Windows.Forms.Label Label_SPE; - private System.Windows.Forms.Label L_EVYield; - private System.Windows.Forms.Label L_BaseStats; - private System.Windows.Forms.ComboBox CB_HeldItem1; - private System.Windows.Forms.Label L_HeldItem; - private System.Windows.Forms.ComboBox CB_Type2; - private System.Windows.Forms.ComboBox CB_Type1; - private System.Windows.Forms.Label L_Type; - private System.Windows.Forms.Label L_Item1; - private System.Windows.Forms.Label L_Item5; - private System.Windows.Forms.Label L_Item50; - private System.Windows.Forms.ComboBox CB_HeldItem3; - private System.Windows.Forms.ComboBox CB_HeldItem2; - private System.Windows.Forms.ComboBox CB_Ability3; - private System.Windows.Forms.ComboBox CB_Ability2; - private System.Windows.Forms.ComboBox CB_Ability1; - private System.Windows.Forms.ComboBox CB_EggGroup2; - private System.Windows.Forms.ComboBox CB_EggGroup1; - private System.Windows.Forms.Label L_EggGroup; - private System.Windows.Forms.Label L_Ability; - private System.Windows.Forms.MaskedTextBox TB_BaseExp; - private System.Windows.Forms.Label L_BaseEXP; - private System.Windows.Forms.MaskedTextBox TB_HatchCycles; - private System.Windows.Forms.Label L_HatchCycles; - private System.Windows.Forms.MaskedTextBox TB_Friendship; - private System.Windows.Forms.MaskedTextBox TB_Gender; - private System.Windows.Forms.Label L_Friendship; - private System.Windows.Forms.Label L_Gender; - private System.Windows.Forms.ComboBox CB_Color; - private System.Windows.Forms.ComboBox CB_EXPGroup; - private System.Windows.Forms.Label L_Color; - private System.Windows.Forms.Label L_EXPGrowth; - private System.Windows.Forms.Label L_CatchRate; - private System.Windows.Forms.TextBox TB_FormeCount; - private System.Windows.Forms.Label L_FormesCount; - private System.Windows.Forms.TextBox TB_FormeSprite; - private System.Windows.Forms.Label L_FormeSprite; - private System.Windows.Forms.TextBox TB_Stage; - private System.Windows.Forms.Label L_Stage; - private System.Windows.Forms.MaskedTextBox TB_CatchRate; - private System.Windows.Forms.TextBox TB_RawColor; - private System.Windows.Forms.Label L_BST; - private System.Windows.Forms.TextBox TB_BST; - private System.Windows.Forms.CheckedListBox CLB_TM; - private System.Windows.Forms.CheckedListBox CLB_MoveTutors; - private System.Windows.Forms.Label L_Special; - private System.Windows.Forms.Label L_TM; - private System.Windows.Forms.PictureBox PB_MonSprite; - private System.Windows.Forms.Button B_Randomize; - private System.Windows.Forms.Button B_Dump; - private System.Windows.Forms.CheckBox CHK_TM; - private System.Windows.Forms.CheckBox CHK_Ability; - private System.Windows.Forms.CheckBox CHK_Stats; - private System.Windows.Forms.NumericUpDown NUD_StatDev; - private System.Windows.Forms.Label L_StatDev; - private System.Windows.Forms.CheckBox CHK_Item; - private System.Windows.Forms.CheckBox CHK_Type; - private System.Windows.Forms.CheckBox CHK_HM; - private System.Windows.Forms.CheckBox CHK_Tutors; - private System.Windows.Forms.CheckBox CHK_WGuard; - private System.Windows.Forms.CheckBox CHK_CatchRate; - private System.Windows.Forms.CheckBox CHK_rSPE; - private System.Windows.Forms.CheckBox CHK_rSPD; - private System.Windows.Forms.CheckBox CHK_rSPA; - private System.Windows.Forms.CheckBox CHK_rDEF; - private System.Windows.Forms.CheckBox CHK_rATK; - private System.Windows.Forms.CheckBox CHK_rHP; - private System.Windows.Forms.CheckBox CHK_EggGroup; - private System.Windows.Forms.Button B_ModAll; - private System.Windows.Forms.CheckBox CHK_NoEV; - private System.Windows.Forms.TabPage TP_Randomizer; - private System.Windows.Forms.Label L_SingleType; - private System.Windows.Forms.NumericUpDown NUD_TypePercent; - private System.Windows.Forms.GroupBox GB_Randomizer; - private System.Windows.Forms.GroupBox GB_Modifier; - private System.Windows.Forms.CheckBox CHK_EXP; - private System.Windows.Forms.Label L_FinalXP; - private System.Windows.Forms.NumericUpDown NUD_EXP; - private System.Windows.Forms.CheckBox CHK_Growth; - private System.Windows.Forms.CheckBox CHK_QuickHatch; - private System.Windows.Forms.Label L_Same; - private System.Windows.Forms.NumericUpDown NUD_Egg; - private System.Windows.Forms.CheckBox CHK_Variant; - private System.Windows.Forms.Label L_CallRate; - private System.Windows.Forms.MaskedTextBox TB_CallRate; - private System.Windows.Forms.CheckBox CHK_CallRate; - private System.Windows.Forms.Label L_CallRateVal; - private System.Windows.Forms.NumericUpDown NUD_CallRate; - private System.Windows.Forms.CheckBox CHK_CatchRateMod; - private System.Windows.Forms.Label L_CatchRateMod; - private System.Windows.Forms.NumericUpDown NUD_CatchRateMod; - private System.Windows.Forms.Label L_WeightKG; - private System.Windows.Forms.Label L_HeightM; - private System.Windows.Forms.MaskedTextBox TB_Weight; - private System.Windows.Forms.MaskedTextBox TB_Height; - private System.Windows.Forms.Label L_Weight; - private System.Windows.Forms.Label L_Height; - private System.Windows.Forms.ComboBox CB_ZMove; - private System.Windows.Forms.ComboBox CB_ZBaseMove; - private System.Windows.Forms.ComboBox CB_ZItem; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Label L_BaseMove; - private System.Windows.Forms.Label L_ZItem; - private System.Windows.Forms.Label L_BeachTutors; - private System.Windows.Forms.CheckedListBox CLB_BeachTutors; - private System.Windows.Forms.CheckBox CHK_BeachTutors; - } -} diff --git a/pk3DS/Subforms/Gen7/PersonalEditor7.cs b/pk3DS/Subforms/Gen7/PersonalEditor7.cs deleted file mode 100644 index dbb8e0f749..0000000000 --- a/pk3DS/Subforms/Gen7/PersonalEditor7.cs +++ /dev/null @@ -1,436 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Drawing; -using System.IO; -using System.Linq; -using System.Media; -using System.Text; -using System.Windows.Forms; -using pk3DS.Core.Structures.PersonalInfo; -using pk3DS.Core; -using pk3DS.Core.Randomizers; - -namespace pk3DS -{ - public partial class PersonalEditor7 : Form - { - public PersonalEditor7(byte[][] infiles) - { - InitializeComponent(); - helditem_boxes = new[] { CB_HeldItem1, CB_HeldItem2, CB_HeldItem3 }; - ability_boxes = new[] { CB_Ability1, CB_Ability2, CB_Ability3 }; - typing_boxes = new[] { CB_Type1, CB_Type2 }; - eggGroup_boxes = new[] { CB_EggGroup1, CB_EggGroup2 }; - byte_boxes = new[] { TB_BaseHP, TB_BaseATK, TB_BaseDEF, TB_BaseSPA, TB_BaseSPD, TB_BaseSPE, TB_Gender, TB_HatchCycles, TB_Friendship, TB_CatchRate, TB_CallRate }; - ev_boxes = new[] { TB_HPEVs, TB_ATKEVs, TB_DEFEVs, TB_SPEEVs, TB_SPAEVs, TB_SPDEVs }; - rstat_boxes = new[] { CHK_rHP, CHK_rATK, CHK_rDEF, CHK_rSPA, CHK_rSPD, CHK_rSPE }; - files = infiles; - - species[0] = "---"; - abilities[0] = items[0] = moves[0] = ""; - var altForms = Main.Config.Personal.getFormList(species, Main.Config.MaxSpeciesID); - entryNames = Main.Config.Personal.getPersonalEntryList(altForms, species, Main.Config.MaxSpeciesID, out baseForms, out formVal); - - Setup(); - CB_Species.SelectedIndex = 1; - } - #region Global Variables - private readonly byte[][] files; - - private readonly string[] items = Main.Config.getText(TextName.ItemNames); - private readonly string[] moves = Main.Config.getText(TextName.MoveNames); - private readonly string[] species = Main.Config.getText(TextName.SpeciesNames); - private readonly string[] abilities = Main.Config.getText(TextName.AbilityNames); - private readonly string[] forms = Main.Config.getText(TextName.Forms); - private readonly string[] types = Main.Config.getText(TextName.Types); - - private readonly string[] entryNames; - - private readonly ComboBox[] helditem_boxes; - private readonly ComboBox[] ability_boxes; - private readonly ComboBox[] typing_boxes; - private readonly ComboBox[] eggGroup_boxes; - - private readonly MaskedTextBox[] byte_boxes; - private readonly MaskedTextBox[] ev_boxes; - private readonly CheckBox[] rstat_boxes; - - private readonly string[] eggGroups = { "---", "Monster", "Water 1", "Bug", "Flying", "Field", "Fairy", "Grass", "Human-Like", "Water 3", "Mineral", "Amorphous", "Water 2", "Ditto", "Dragon", "Undiscovered" }; - private readonly string[] EXPGroups = { "Medium-Fast", "Erratic", "Fluctuating", "Medium-Slow", "Fast", "Slow" }; - private readonly string[] colors = { "Red", "Blue", "Yellow", "Green", "Black", "Brown", "Purple", "Gray", "White", "Pink" }; - private readonly ushort[] tutormoves = { 520, 519, 518, 338, 307, 308, 434, 620 }; - - internal static readonly int[] Tutors_USUM = - { - 450, 343, 162, 530, 324, 442, 402, 529, 340, 067, 441, 253, 009, 007, 008, - 277, 335, 414, 492, 356, 393, 334, 387, 276, 527, 196, 401, 428, 406, 304, 231, - 020, 173, 282, 235, 257, 272, 215, 366, 143, 220, 202, 409, 264, 351, 352, - 380, 388, 180, 495, 270, 271, 478, 472, 283, 200, 278, 289, 446, 285, - - 477, 502, 432, 710, 707, 675, 673 - }; - - private readonly int[] baseForms, formVal; - int entry = -1; - #endregion - private void Setup() - { - ushort[] TMs = new ushort[0]; - TMEditor7.getTMHMList(ref TMs); - CLB_TM.Items.Clear(); - - if (TMs.Length == 0) // No ExeFS to grab TMs from. - { - for (int i = 1; i <= 100; i++) - CLB_TM.Items.Add($"TM{i:00}"); - } - else // Use TM moves. - { - for (int i = 1; i <= 100; i++) - CLB_TM.Items.Add($"TM{i:00} {moves[TMs[i - 1]]}"); - } - foreach (ushort m in tutormoves) - CLB_MoveTutors.Items.Add(moves[m]); - - for (int i = 0; i < entryNames.Length; i++) - CB_Species.Items.Add($"{entryNames[i]} - {i:000}"); - - foreach (ComboBox cb in helditem_boxes) - foreach (string it in items) - cb.Items.Add(it); - - foreach (string it in items) - CB_ZItem.Items.Add(it); - foreach (string m in moves) - CB_ZBaseMove.Items.Add(m); - foreach (string m in moves) - CB_ZMove.Items.Add(m); - - foreach (ComboBox cb in ability_boxes) - foreach (string ab in abilities) - cb.Items.Add(ab); - - foreach (ComboBox cb in typing_boxes) - foreach (string ty in types) - cb.Items.Add(ty); - - foreach (ComboBox cb in eggGroup_boxes) - foreach (string eg in eggGroups) - cb.Items.Add(eg); - - foreach (string co in colors) - CB_Color.Items.Add(co); - - foreach (string eg in EXPGroups) - CB_EXPGroup.Items.Add(eg); - - if (Main.Config.USUM) - foreach (var tutor in Tutors_USUM) - CLB_BeachTutors.Items.Add(moves[tutor]); - - // toggle usum content - CHK_BeachTutors.Checked = CHK_BeachTutors.Visible = - CLB_BeachTutors.Visible = CLB_BeachTutors.Enabled = L_BeachTutors.Visible = Main.Config.USUM; - } - - private void CB_Species_SelectedIndexChanged(object sender, EventArgs e) - { - if (entry > -1 && !dumping) saveEntry(); - entry = CB_Species.SelectedIndex; - readEntry(); - } - private void ByteLimiter(object sender, EventArgs e) - { - if (!(sender is MaskedTextBox mtb)) - return; - int.TryParse(mtb.Text, out int val); - if (Array.IndexOf(byte_boxes, mtb) > -1 && val > 255) - mtb.Text = "255"; - else if (Array.IndexOf(ev_boxes, mtb) > -1 && val > 3) - mtb.Text = "3"; - } - - private PersonalInfo pkm; - private void readInfo() - { - pkm = Main.SpeciesStat[entry]; - - TB_BaseHP.Text = pkm.HP.ToString("000"); - TB_BaseATK.Text = pkm.ATK.ToString("000"); - TB_BaseDEF.Text = pkm.DEF.ToString("000"); - TB_BaseSPE.Text = pkm.SPE.ToString("000"); - TB_BaseSPA.Text = pkm.SPA.ToString("000"); - TB_BaseSPD.Text = pkm.SPD.ToString("000"); - TB_HPEVs.Text = pkm.EV_HP.ToString("0"); - TB_ATKEVs.Text = pkm.EV_ATK.ToString("0"); - TB_DEFEVs.Text = pkm.EV_DEF.ToString("0"); - TB_SPEEVs.Text = pkm.EV_SPE.ToString("0"); - TB_SPAEVs.Text = pkm.EV_SPA.ToString("0"); - TB_SPDEVs.Text = pkm.EV_SPD.ToString("0"); - - CB_Type1.SelectedIndex = pkm.Types[0]; - CB_Type2.SelectedIndex = pkm.Types[1]; - - TB_CatchRate.Text = pkm.CatchRate.ToString("000"); - TB_Stage.Text = pkm.EvoStage.ToString("0"); - - CB_HeldItem1.SelectedIndex = pkm.Items[0]; - CB_HeldItem2.SelectedIndex = pkm.Items[1]; - CB_HeldItem3.SelectedIndex = pkm.Items[2]; - - TB_Gender.Text = pkm.Gender.ToString("000"); - TB_HatchCycles.Text = pkm.HatchCycles.ToString("000"); - TB_Friendship.Text = pkm.BaseFriendship.ToString("000"); - - CB_EXPGroup.SelectedIndex = pkm.EXPGrowth; - - CB_EggGroup1.SelectedIndex = pkm.EggGroups[0]; - CB_EggGroup2.SelectedIndex = pkm.EggGroups[1]; - - CB_Ability1.SelectedIndex = pkm.Abilities[0]; - CB_Ability2.SelectedIndex = pkm.Abilities[1]; - CB_Ability3.SelectedIndex = pkm.Abilities[2]; - - TB_FormeCount.Text = pkm.FormeCount.ToString("000"); - TB_FormeSprite.Text = pkm.FormeSprite.ToString("000"); - - TB_RawColor.Text = pkm.Color.ToString("000"); - CB_Color.SelectedIndex = pkm.Color & 0xF; - - TB_BaseExp.Text = pkm.BaseEXP.ToString("000"); - TB_BST.Text = pkm.BST.ToString("000"); - - TB_Height.Text = ((decimal)pkm.Height / 100).ToString("00.00"); - TB_Weight.Text = ((decimal)pkm.Weight / 10).ToString("000.0"); - - for (int i = 0; i < CLB_TM.Items.Count; i++) - CLB_TM.SetItemChecked(i, pkm.TMHM[i]); // Bitflags for TM - - for (int i = 0; i < CLB_MoveTutors.Items.Count; i++) - CLB_MoveTutors.SetItemChecked(i, pkm.TypeTutors[i]); // Bitflags for Tutors - - if (Main.Config.SM || Main.Config.USUM) - { - PersonalInfoSM sm = (PersonalInfoSM) pkm; - TB_CallRate.Text = sm.EscapeRate.ToString("000"); - CB_ZItem.SelectedIndex = sm.SpecialZ_Item; - CB_ZBaseMove.SelectedIndex = sm.SpecialZ_BaseMove; - CB_ZMove.SelectedIndex = sm.SpecialZ_ZMove; - CHK_Variant.Checked = sm.LocalVariant; - } - var special = pkm.SpecialTutors; - if (special.Length > 0) - { - for (int b = 0; b < CLB_BeachTutors.Items.Count; b++) - CLB_BeachTutors.SetItemChecked(b, special[0][b]); - } - } - private void readEntry() - { - readInfo(); - - if (dumping) return; - int s = baseForms[entry]; - int f = formVal[entry]; - if (entry <= Main.Config.MaxSpeciesID) - s = entry; - Bitmap rawImg = WinFormsUtil.getSprite(s, f, 0, 0, Main.Config); - Bitmap bigImg = new Bitmap(rawImg.Width * 2, rawImg.Height * 2); - for (int x = 0; x < rawImg.Width; x++) - { - for (int y = 0; y < rawImg.Height; y++) - { - Color c = rawImg.GetPixel(x, y); - bigImg.SetPixel(2 * x, 2 * y, c); - bigImg.SetPixel(2 * x + 1, 2 * y, c); - bigImg.SetPixel(2 * x, 2 * y + 1, c); - bigImg.SetPixel(2 * x + 1, 2 * y + 1, c); - } - } - PB_MonSprite.Image = bigImg; - } - private void savePersonal() - { - pkm.HP = Convert.ToByte(TB_BaseHP.Text); - pkm.ATK = Convert.ToByte(TB_BaseATK.Text); - pkm.DEF = Convert.ToByte(TB_BaseDEF.Text); - pkm.SPE = Convert.ToByte(TB_BaseSPE.Text); - pkm.SPA = Convert.ToByte(TB_BaseSPA.Text); - pkm.SPD = Convert.ToByte(TB_BaseSPD.Text); - - pkm.EV_HP = Convert.ToByte(TB_HPEVs.Text); - pkm.EV_ATK = Convert.ToByte(TB_ATKEVs.Text); - pkm.EV_DEF = Convert.ToByte(TB_DEFEVs.Text); - pkm.EV_SPE = Convert.ToByte(TB_SPEEVs.Text); - pkm.EV_SPA = Convert.ToByte(TB_SPAEVs.Text); - pkm.EV_SPD = Convert.ToByte(TB_SPDEVs.Text); - - pkm.CatchRate = Convert.ToByte(TB_CatchRate.Text); - pkm.EvoStage = Convert.ToByte(TB_Stage.Text); - - pkm.Types = new[] {CB_Type1.SelectedIndex, CB_Type2.SelectedIndex}; - pkm.Items = new[] {CB_HeldItem1.SelectedIndex, CB_HeldItem2.SelectedIndex, CB_HeldItem3.SelectedIndex}; - - pkm.Gender = Convert.ToByte(TB_Gender.Text); - pkm.HatchCycles = Convert.ToByte(TB_HatchCycles.Text); - pkm.BaseFriendship = Convert.ToByte(TB_Friendship.Text); - pkm.EXPGrowth = (byte) CB_EXPGroup.SelectedIndex; - pkm.EggGroups = new[] {CB_EggGroup1.SelectedIndex, CB_EggGroup2.SelectedIndex}; - pkm.Abilities = new[] {CB_Ability1.SelectedIndex, CB_Ability2.SelectedIndex, CB_Ability3.SelectedIndex}; - - pkm.FormeSprite = Convert.ToUInt16(TB_FormeSprite.Text); - pkm.FormeCount = Convert.ToByte(TB_FormeCount.Text); - pkm.Color = (byte) (Convert.ToByte(CB_Color.SelectedIndex) | (Convert.ToByte(TB_RawColor.Text) & 0xF0)); - pkm.BaseEXP = Convert.ToUInt16(TB_BaseExp.Text); - - decimal h; decimal.TryParse(TB_Height.Text, out h); - decimal w; decimal.TryParse(TB_Weight.Text, out w); - pkm.Height = (int)(h * 100); - pkm.Weight = (int)(w * 10); - - for (int i = 0; i < CLB_TM.Items.Count; i++) - pkm.TMHM[i] = CLB_TM.GetItemChecked(i); - - for (int t = 0; t < CLB_MoveTutors.Items.Count; t++) - pkm.TypeTutors[t] = CLB_MoveTutors.GetItemChecked(t); - - if (Main.Config.SM || Main.Config.USUM) - { - pkm.EscapeRate = Convert.ToByte(TB_CallRate.Text); - PersonalInfoSM sm = (PersonalInfoSM)pkm; - sm.SpecialZ_Item = CB_ZItem.SelectedIndex; - sm.SpecialZ_BaseMove = CB_ZBaseMove.SelectedIndex; - sm.SpecialZ_ZMove = CB_ZMove.SelectedIndex; - sm.LocalVariant = CHK_Variant.Checked; - } - var special = pkm.SpecialTutors; - if (special.Length > 0) - { - for (int b = 0; b < CLB_BeachTutors.Items.Count; b++) - special[0][b] = CLB_BeachTutors.GetItemChecked(b); - pkm.SpecialTutors = special; - } - } - private void saveEntry() - { - savePersonal(); - byte[] edits = pkm.Write(); - files[entry] = edits; - } - - private void B_Randomize_Click(object sender, EventArgs e) - { - saveEntry(); - - // input settings - var rnd = new PersonalRandomizer(Main.SpeciesStat, Main.Config) - { - TypeCount = CB_Type1.Items.Count, - ModifyCatchRate = CHK_CatchRate.Checked, - ModifyEggGroup = CHK_EggGroup.Checked, - ModifyStats = CHK_Stats.Checked, - StatsToRandomize = rstat_boxes.Select(g => g.Checked).ToArray(), - ModifyAbilities = CHK_Ability.Checked, - ModifyLearnsetTM = CHK_TM.Checked, - ModifyLearnsetHM = CHK_HM.Checked, - ModifyLearnsetTypeTutors = CHK_Tutors.Checked, - ModifyLearnsetMoveTutors = Main.Config.USUM && CHK_BeachTutors.Checked, - ModifyTypes = CHK_Type.Checked, - ModifyHeldItems = CHK_Item.Checked, - SameTypeChance = NUD_TypePercent.Value, - SameEggGroupChance = NUD_Egg.Value, - StatDeviation = NUD_StatDev.Value, - AllowWonderGuard = CHK_WGuard.Checked - }; - rnd.Execute(); - Main.SpeciesStat.Select(z => z.Write()).ToArray().CopyTo(files, 0); - - readEntry(); - WinFormsUtil.Alert("All relevant Pokémon Personal Entries have been randomized!"); - } - private void B_ModifyAll(object sender, EventArgs e) - { - for (int i = 1; i < CB_Species.Items.Count; i++) - { - CB_Species.SelectedIndex = i; // Get new Species - - if (CHK_NoEV.Checked) - for (int z = 0; z < 6; z++) - ev_boxes[z].Text = 0.ToString(); - if (CHK_Growth.Checked) - CB_EXPGroup.SelectedIndex = 5; - if (CHK_EXP.Checked) - TB_BaseExp.Text = ((float)NUD_EXP.Value*(Convert.ToUInt16(TB_BaseExp.Text)/100f)).ToString("000"); - - if (CHK_QuickHatch.Checked) - TB_HatchCycles.Text = 1.ToString(); - if (CHK_CallRate.Checked) - TB_CallRate.Text = ((int)NUD_CallRate.Value).ToString(); - if(CHK_CatchRateMod.Checked) - TB_CatchRate.Text = ((int)NUD_CatchRateMod.Value).ToString(); - } - CB_Species.SelectedIndex = 1; - WinFormsUtil.Alert("All species modified according to specification!"); - } - private bool dumping; - private void B_Dump_Click(object sender, EventArgs e) - { - if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Dump all Personal Entries to Text File?")) - return; - SaveFileDialog sfd = new SaveFileDialog { FileName = "Personal Entries.txt", Filter = "Text File|*.txt" }; - SystemSounds.Asterisk.Play(); - if (sfd.ShowDialog() != DialogResult.OK) - return; - - dumping = true; - List lines = new List(); - for (int i = 0; i < CB_Species.Items.Count; i++) - { - CB_Species.SelectedIndex = i; // Get new Species - lines.Add("======"); - lines.Add($"{entry} - {CB_Species.Text} (Stage: {TB_Stage.Text})"); - lines.Add("======"); - lines.Add($"Base Stats: {TB_BaseHP.Text}.{TB_BaseATK.Text}.{TB_BaseDEF.Text}.{TB_BaseSPA.Text}.{TB_BaseSPD.Text}.{TB_BaseSPE.Text} (BST: {pkm.BST})"); - lines.Add($"EV Yield: {TB_HPEVs.Text}.{TB_ATKEVs.Text}.{TB_DEFEVs.Text}.{TB_SPAEVs.Text}.{TB_SPDEVs.Text}.{TB_SPEEVs.Text}"); - lines.Add($"Abilities: {CB_Ability1.Text} (1) | {CB_Ability2.Text} (2) | {CB_Ability3.Text} (H)"); - lines.Add(string.Format(CB_Type1.SelectedIndex != CB_Type2.SelectedIndex - ? "Type: {0} / {1}" - : "Type: {0}", CB_Type1.Text, CB_Type2.Text)); - - lines.Add($"Item 1 (50%): {CB_HeldItem1.Text}"); - lines.Add($"Item 2 (5%): {CB_HeldItem2.Text}"); - lines.Add($"Item 3 (1%): {CB_HeldItem3.Text}"); - - lines.Add($"EXP Group: {CB_EXPGroup.Text}"); - lines.Add(string.Format(CB_EggGroup1.SelectedIndex != CB_EggGroup2.SelectedIndex - ? "Egg Group: {0} / {1}" - : "Egg Group: {0}", CB_EggGroup1.Text, CB_EggGroup2.Text)); - lines.Add($"Hatch Cycles: {TB_HatchCycles.Text}"); - lines.Add($"Height: {TB_Height.Text} m, Weight: {TB_Weight.Text} kg, Color: {CB_Color.Text}"); - - if (CB_ZBaseMove.SelectedIndex > 0) - lines.Add($"{CB_ZBaseMove.Text} + {CB_ZItem.Text} => {CB_ZMove.Text}"); - lines.Add(""); - } - string path = sfd.FileName; - File.WriteAllLines(path, lines, Encoding.Unicode); - dumping = false; - } - private void CHK_Stats_CheckedChanged(object sender, EventArgs e) - { - L_StatDev.Enabled = NUD_StatDev.Enabled = CHK_Stats.Checked; - CHK_rHP.Enabled = CHK_rATK.Enabled = CHK_rDEF.Enabled = CHK_rSPA.Enabled = CHK_rSPD.Enabled = CHK_rSPE.Enabled = CHK_Stats.Checked; - } - private void CHK_Ability_CheckedChanged(object sender, EventArgs e) - { - CHK_WGuard.Enabled = CHK_Ability.Checked; - if (!CHK_WGuard.Enabled) - CHK_WGuard.Checked = false; - } - - private void formClosing(object sender, FormClosingEventArgs e) - { - if (entry > -1) saveEntry(); - } - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/PickupEditor7.Designer.cs b/pk3DS/Subforms/Gen7/PickupEditor7.Designer.cs deleted file mode 100644 index 292116f118..0000000000 --- a/pk3DS/Subforms/Gen7/PickupEditor7.Designer.cs +++ /dev/null @@ -1,137 +0,0 @@ -namespace pk3DS -{ - partial class PickupEditor7 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.B_Save = new System.Windows.Forms.Button(); - this.B_Cancel = new System.Windows.Forms.Button(); - this.B_Randomize = new System.Windows.Forms.Button(); - this.dgvCommon = new System.Windows.Forms.DataGridView(); - this.B_AddRow = new System.Windows.Forms.Button(); - this.B_DeleteRow = new System.Windows.Forms.Button(); - ((System.ComponentModel.ISupportInitialize)(this.dgvCommon)).BeginInit(); - this.SuspendLayout(); - // - // B_Save - // - this.B_Save.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.B_Save.Location = new System.Drawing.Point(597, 331); - this.B_Save.Name = "B_Save"; - this.B_Save.Size = new System.Drawing.Size(75, 23); - this.B_Save.TabIndex = 7; - this.B_Save.Text = "Save"; - this.B_Save.UseVisualStyleBackColor = true; - this.B_Save.Click += new System.EventHandler(this.B_Save_Click); - // - // B_Cancel - // - this.B_Cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.B_Cancel.Location = new System.Drawing.Point(516, 331); - this.B_Cancel.Name = "B_Cancel"; - this.B_Cancel.Size = new System.Drawing.Size(75, 23); - this.B_Cancel.TabIndex = 8; - this.B_Cancel.Text = "Cancel"; - this.B_Cancel.UseVisualStyleBackColor = true; - this.B_Cancel.Click += new System.EventHandler(this.B_Cancel_Click); - // - // B_Randomize - // - this.B_Randomize.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.B_Randomize.Location = new System.Drawing.Point(9, 331); - this.B_Randomize.Name = "B_Randomize"; - this.B_Randomize.Size = new System.Drawing.Size(75, 23); - this.B_Randomize.TabIndex = 9; - this.B_Randomize.Text = "Randomize"; - this.B_Randomize.UseVisualStyleBackColor = true; - this.B_Randomize.Click += new System.EventHandler(this.B_Randomize_Click); - // - // dgvCommon - // - this.dgvCommon.AllowUserToResizeColumns = false; - this.dgvCommon.AllowUserToResizeRows = false; - this.dgvCommon.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.dgvCommon.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgvCommon.Location = new System.Drawing.Point(12, 12); - this.dgvCommon.Name = "dgvCommon"; - this.dgvCommon.Size = new System.Drawing.Size(656, 300); - this.dgvCommon.TabIndex = 10; - // - // B_AddRow - // - this.B_AddRow.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.B_AddRow.Location = new System.Drawing.Point(90, 331); - this.B_AddRow.Name = "B_AddRow"; - this.B_AddRow.Size = new System.Drawing.Size(75, 23); - this.B_AddRow.TabIndex = 11; - this.B_AddRow.Text = "Add Row"; - this.B_AddRow.UseVisualStyleBackColor = true; - this.B_AddRow.Click += new System.EventHandler(this.B_AddRow_Click); - // - // B_DeleteRow - // - this.B_DeleteRow.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.B_DeleteRow.Location = new System.Drawing.Point(171, 331); - this.B_DeleteRow.Name = "B_DeleteRow"; - this.B_DeleteRow.Size = new System.Drawing.Size(75, 23); - this.B_DeleteRow.TabIndex = 12; - this.B_DeleteRow.Text = "Delete Row"; - this.B_DeleteRow.UseVisualStyleBackColor = true; - this.B_DeleteRow.Click += new System.EventHandler(this.B_DeleteRow_Click); - // - // PickupEditor7 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(680, 361); - this.Controls.Add(this.B_DeleteRow); - this.Controls.Add(this.B_AddRow); - this.Controls.Add(this.dgvCommon); - this.Controls.Add(this.B_Randomize); - this.Controls.Add(this.B_Cancel); - this.Controls.Add(this.B_Save); - this.MaximizeBox = false; - this.MinimumSize = new System.Drawing.Size(600, 400); - this.Name = "PickupEditor7"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Pickup Editor"; - ((System.ComponentModel.ISupportInitialize)(this.dgvCommon)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - private System.Windows.Forms.Button B_Save; - private System.Windows.Forms.Button B_Cancel; - private System.Windows.Forms.Button B_Randomize; - private System.Windows.Forms.DataGridView dgvCommon; - private System.Windows.Forms.Button B_AddRow; - private System.Windows.Forms.Button B_DeleteRow; - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/PickupEditor7.cs b/pk3DS/Subforms/Gen7/PickupEditor7.cs deleted file mode 100644 index 700ee40fd1..0000000000 --- a/pk3DS/Subforms/Gen7/PickupEditor7.cs +++ /dev/null @@ -1,206 +0,0 @@ -using pk3DS.Core; -using System; -using System.IO; -using System.Linq; -using System.Windows.Forms; - -namespace pk3DS -{ - public partial class PickupEditor7 : Form - { - public PickupEditor7(lzGARCFile pickup) - { - InitializeComponent(); - g_pickup = pickup; - var itemlist = Main.Config.getText(TextName.ItemNames); - itemlist[0] = ""; - items = itemlist.Select((v, i) => $"{v} - {i:000}").ToArray(); - setupFLP(); - - byte[] data = pickup.Files[0]; - getList(data); - } - - private readonly lzGARCFile g_pickup; - private readonly string[] items; - - private const int Columns = 10; - private void setupFLP() - { - dgvCommon.Columns.Clear(); - // Add DataGrid - var dgv = dgvCommon; - { - dgv.AllowUserToAddRows = false; - dgv.AllowUserToDeleteRows = false; - dgv.AllowUserToResizeRows = false; - dgv.AllowUserToResizeColumns = false; - dgv.RowHeadersVisible = false; - //dgv.ColumnHeadersVisible = false, - dgv.MultiSelect = false; - dgv.ShowEditingIcon = false; - dgv.EditMode = DataGridViewEditMode.EditOnEnter; - dgv.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.Single; - dgv.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize; - dgv.SelectionMode = DataGridViewSelectionMode.CellSelect; - dgv.CellBorderStyle = DataGridViewCellBorderStyle.None; - } - - int c = 0; - DataGridViewComboBoxColumn dgvItemVal = new DataGridViewComboBoxColumn - { - HeaderText = "Item", - DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing, - DisplayIndex = c++, - Width = 135, - FlatStyle = FlatStyle.Flat - }; - dgv.Columns.Add(dgvItemVal); - - for (int i = 0; i < Columns; i++) - { - string rate = $"{i*10 + 1}-{(i + 1)*10}"; - DataGridViewColumn dgvIndex = new DataGridViewTextBoxColumn(); - { - dgvIndex.HeaderText = rate; - dgvIndex.DisplayIndex = c++; - dgvIndex.Width = 45; - dgvIndex.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; - ((DataGridViewTextBoxColumn)dgvIndex).MaxInputLength = 2; - } - dgv.Columns.Add(dgvIndex); - } - - var combo = dgv.Columns[0] as DataGridViewComboBoxColumn; - foreach (var i in items) - combo.Items.Add(i); // add only the Item Names - - // disable sorting - dgv.Columns.Cast().ToList().ForEach(f => f.SortMode = DataGridViewColumnSortMode.NotSortable); - dgv.CancelEdit(); - } - - private void getList(byte[] data) - { - // Fill Data - int rows = BitConverter.ToUInt16(data, 0) - 1; // nice editor gamefreak - dgvCommon.Rows.Add(rows); - for (int i = 0; i < rows; i++) - { - int offset = 4 + i * (Columns + 2); - int item = BitConverter.ToUInt16(data, offset); - - var r = dgvCommon.Rows[i]; - r.Cells[0].Value = items[item]; - for (int j = 0; j < Columns; j++) - { - int rate = data[offset + 2 + j]; - r.Cells[1 + j].Value = rate.ToString(); - } - } - } - private byte[] setList() - { - int rows = dgvCommon.RowCount; - int[][] rates = new int[rows][]; - for (int i = 0; i < rates.Length; i++) - rates[i] = new int[Columns]; - for (int i = 0; i < Columns; i++) - { - // get column sum - int sum = 0; - for (int r = 0; r < rows; r++) - { - var cell = dgvCommon.Rows[r].Cells[i+1]; - int val; - if (!int.TryParse(cell.Value.ToString(), out val)) - { - cell.Value = 0.ToString(); - continue; - } - if (val > 100 || val < 0) - { - val = 0; - cell.Value = 0.ToString(); - } - rates[r][i] = val; - sum += val; - } - if (sum == 100) // good - continue; - - WinFormsUtil.Alert($"Sum of Column {i+1} needs to equal 100.", $"Got {sum}."); - return null; - } - - using (var ms = new MemoryStream()) - using (var bw = new BinaryWriter(ms)) - { - bw.Write(rates.Length + 1); // nice editor gamefreak - for (int i = 0; i < rows; i++) - { - var r = dgvCommon.Rows[i]; - string item = r.Cells[0].Value.ToString(); - int itemindex = Array.IndexOf(items, item); - bw.Write((ushort)itemindex); - - foreach (var b in rates[i]) - bw.Write((byte)b); - } - return ms.ToArray(); - } - } - - private void B_Save_Click(object sender, EventArgs e) - { - byte[] result = setList(); - if (result == null) - return; - - g_pickup[0] = result; - g_pickup.Save(); - Close(); - } - private void B_Cancel_Click(object sender, EventArgs e) - { - Close(); - } - private void B_Randomize_Click(object sender, EventArgs e) - { - if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Randomize pickup lists?")) - return; - - int[] validItems = Randomizer.getRandomItemList(); - - int ctr = 0; - Util.Shuffle(validItems); - for (int r = 0; r < dgvCommon.RowCount; r++) - { - dgvCommon.Rows[r].Cells[0].Value = items[validItems[ctr++]]; - if (ctr <= validItems.Length) continue; - Util.Shuffle(validItems); ctr = 0; - } - WinFormsUtil.Alert("Randomized!"); - } - - private void B_AddRow_Click(object sender, EventArgs e) - { - if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Add a row at the bottom?")) - return; - - int row = dgvCommon.RowCount; - dgvCommon.Rows.Add(); - dgvCommon.Rows[row].Cells[0].Value = items[0]; - for (int i = 1; i < dgvCommon.ColumnCount; i++) - dgvCommon.Rows[row].Cells[i].Value = 0.ToString(); - } - - private void B_DeleteRow_Click(object sender, EventArgs e) - { - if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Delete the bottom row?")) - return; - - dgvCommon.Rows.RemoveAt(dgvCommon.RowCount - 1); - } - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/SMTE.Designer.cs b/pk3DS/Subforms/Gen7/SMTE.Designer.cs deleted file mode 100644 index 69bb7f204d..0000000000 --- a/pk3DS/Subforms/Gen7/SMTE.Designer.cs +++ /dev/null @@ -1,2355 +0,0 @@ -namespace pk3DS -{ - partial class SMTE - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.CB_TrainerID = new System.Windows.Forms.ComboBox(); - this.L_AI = new System.Windows.Forms.Label(); - this.L_Money = new System.Windows.Forms.Label(); - this.CB_Money = new System.Windows.Forms.ComboBox(); - this.L_Trainer_Class = new System.Windows.Forms.Label(); - this.CB_Trainer_Class = new System.Windows.Forms.ComboBox(); - this.L_Item_4 = new System.Windows.Forms.Label(); - this.CB_Item_4 = new System.Windows.Forms.ComboBox(); - this.L_Item_3 = new System.Windows.Forms.Label(); - this.CB_Item_3 = new System.Windows.Forms.ComboBox(); - this.L_Item_2 = new System.Windows.Forms.Label(); - this.CB_Item_2 = new System.Windows.Forms.ComboBox(); - this.L_Item_1 = new System.Windows.Forms.Label(); - this.CB_Item_1 = new System.Windows.Forms.ComboBox(); - this.L_numPokemon = new System.Windows.Forms.Label(); - this.L_Team = new System.Windows.Forms.Label(); - this.PB_Team1 = new System.Windows.Forms.PictureBox(); - this.mnuVSD = new System.Windows.Forms.ContextMenuStrip(this.components); - this.mnuView = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuSet = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuDelete = new System.Windows.Forms.ToolStripMenuItem(); - this.PB_Team2 = new System.Windows.Forms.PictureBox(); - this.PB_Team3 = new System.Windows.Forms.PictureBox(); - this.PB_Team4 = new System.Windows.Forms.PictureBox(); - this.PB_Team5 = new System.Windows.Forms.PictureBox(); - this.PB_Team6 = new System.Windows.Forms.PictureBox(); - this.B_Randomize = new System.Windows.Forms.Button(); - this.B_Dump = new System.Windows.Forms.Button(); - this.TC_trpoke = new System.Windows.Forms.TabControl(); - this.Tab_Main = new System.Windows.Forms.TabPage(); - this.flowLayoutPanel2 = new System.Windows.Forms.FlowLayoutPanel(); - this.FLP_Species = new System.Windows.Forms.FlowLayoutPanel(); - this.L_Species = new System.Windows.Forms.Label(); - this.CB_Species = new System.Windows.Forms.ComboBox(); - this.FLP_Form = new System.Windows.Forms.FlowLayoutPanel(); - this.L_Forme = new System.Windows.Forms.Label(); - this.CB_Forme = new System.Windows.Forms.ComboBox(); - this.flowLayoutPanel3 = new System.Windows.Forms.FlowLayoutPanel(); - this.L_Level = new System.Windows.Forms.Label(); - this.NUD_Level = new System.Windows.Forms.NumericUpDown(); - this.flowLayoutPanel4 = new System.Windows.Forms.FlowLayoutPanel(); - this.L_Ability = new System.Windows.Forms.Label(); - this.CB_Ability = new System.Windows.Forms.ComboBox(); - this.flowLayoutPanel1 = new System.Windows.Forms.FlowLayoutPanel(); - this.L_Item = new System.Windows.Forms.Label(); - this.CB_Item = new System.Windows.Forms.ComboBox(); - this.flowLayoutPanel5 = new System.Windows.Forms.FlowLayoutPanel(); - this.L_Nature = new System.Windows.Forms.Label(); - this.CB_Nature = new System.Windows.Forms.ComboBox(); - this.flowLayoutPanel6 = new System.Windows.Forms.FlowLayoutPanel(); - this.L_Misc = new System.Windows.Forms.Label(); - this.CHK_Shiny = new System.Windows.Forms.CheckBox(); - this.flowLayoutPanel7 = new System.Windows.Forms.FlowLayoutPanel(); - this.L_Gender = new System.Windows.Forms.Label(); - this.CB_Gender = new System.Windows.Forms.ComboBox(); - this.Tab_Stats = new System.Windows.Forms.TabPage(); - this.FLP_Stats = new System.Windows.Forms.FlowLayoutPanel(); - this.FLP_StatHeader = new System.Windows.Forms.FlowLayoutPanel(); - this.FLP_StatsHeaderRight = new System.Windows.Forms.FlowLayoutPanel(); - this.Label_IVs = new System.Windows.Forms.Label(); - this.Label_EVs = new System.Windows.Forms.Label(); - this.Label_Stats = new System.Windows.Forms.Label(); - this.FLP_HP = new System.Windows.Forms.FlowLayoutPanel(); - this.Label_HP = new System.Windows.Forms.Label(); - this.TB_HPIV = new System.Windows.Forms.MaskedTextBox(); - this.TB_HPEV = new System.Windows.Forms.MaskedTextBox(); - this.Stat_HP = new System.Windows.Forms.MaskedTextBox(); - this.FLP_Atk = new System.Windows.Forms.FlowLayoutPanel(); - this.Label_ATK = new System.Windows.Forms.Label(); - this.TB_ATKIV = new System.Windows.Forms.MaskedTextBox(); - this.TB_ATKEV = new System.Windows.Forms.MaskedTextBox(); - this.Stat_ATK = new System.Windows.Forms.MaskedTextBox(); - this.FLP_Def = new System.Windows.Forms.FlowLayoutPanel(); - this.Label_DEF = new System.Windows.Forms.Label(); - this.TB_DEFIV = new System.Windows.Forms.MaskedTextBox(); - this.TB_DEFEV = new System.Windows.Forms.MaskedTextBox(); - this.Stat_DEF = new System.Windows.Forms.MaskedTextBox(); - this.FLP_SpA = new System.Windows.Forms.FlowLayoutPanel(); - this.Label_SPA = new System.Windows.Forms.Label(); - this.TB_SPAIV = new System.Windows.Forms.MaskedTextBox(); - this.TB_SPAEV = new System.Windows.Forms.MaskedTextBox(); - this.Stat_SPA = new System.Windows.Forms.MaskedTextBox(); - this.FLP_SpD = new System.Windows.Forms.FlowLayoutPanel(); - this.Label_SPD = new System.Windows.Forms.Label(); - this.TB_SPDIV = new System.Windows.Forms.MaskedTextBox(); - this.TB_SPDEV = new System.Windows.Forms.MaskedTextBox(); - this.Stat_SPD = new System.Windows.Forms.MaskedTextBox(); - this.FLP_Spe = new System.Windows.Forms.FlowLayoutPanel(); - this.Label_SPE = new System.Windows.Forms.Label(); - this.TB_SPEIV = new System.Windows.Forms.MaskedTextBox(); - this.TB_SPEEV = new System.Windows.Forms.MaskedTextBox(); - this.Stat_SPE = new System.Windows.Forms.MaskedTextBox(); - this.FLP_StatsTotal = new System.Windows.Forms.FlowLayoutPanel(); - this.Label_Total = new System.Windows.Forms.Label(); - this.TB_IVTotal = new System.Windows.Forms.TextBox(); - this.TB_EVTotal = new System.Windows.Forms.TextBox(); - this.FLP_HPType = new System.Windows.Forms.FlowLayoutPanel(); - this.Label_HiddenPowerPrefix = new System.Windows.Forms.Label(); - this.CB_HPType = new System.Windows.Forms.ComboBox(); - this.Tab_Moves = new System.Windows.Forms.TabPage(); - this.B_Clear = new System.Windows.Forms.Button(); - this.B_CurrentAttack = new System.Windows.Forms.Button(); - this.B_HighAttack = new System.Windows.Forms.Button(); - this.GB_Moves = new System.Windows.Forms.GroupBox(); - this.CB_Move1 = new System.Windows.Forms.ComboBox(); - this.CB_Move4 = new System.Windows.Forms.ComboBox(); - this.CB_Move2 = new System.Windows.Forms.ComboBox(); - this.CB_Move3 = new System.Windows.Forms.ComboBox(); - this.textBox3 = new System.Windows.Forms.TextBox(); - this.textBox2 = new System.Windows.Forms.TextBox(); - this.textBox1 = new System.Windows.Forms.TextBox(); - this.NUD_AI = new System.Windows.Forms.NumericUpDown(); - this.L_TrainerName = new System.Windows.Forms.Label(); - this.TB_TrainerName = new System.Windows.Forms.TextBox(); - this.NUD_NumPoke = new System.Windows.Forms.NumericUpDown(); - this.TC_trdata = new System.Windows.Forms.TabControl(); - this.Tab_Trainer = new System.Windows.Forms.TabPage(); - this.CHK_Flag = new System.Windows.Forms.CheckBox(); - this.Tab_Advanced = new System.Windows.Forms.TabPage(); - this.Tab_Misc = new System.Windows.Forms.TabPage(); - this.TC_rand = new System.Windows.Forms.TabControl(); - this.Tab_PKM1 = new System.Windows.Forms.TabPage(); - this.L_ShinyPCT = new System.Windows.Forms.Label(); - this.NUD_Shiny = new System.Windows.Forms.NumericUpDown(); - this.CHK_RandomShiny = new System.Windows.Forms.CheckBox(); - this.CHK_E = new System.Windows.Forms.CheckBox(); - this.CHK_L = new System.Windows.Forms.CheckBox(); - this.CHK_G7 = new System.Windows.Forms.CheckBox(); - this.CHK_G6 = new System.Windows.Forms.CheckBox(); - this.CHK_G5 = new System.Windows.Forms.CheckBox(); - this.CHK_G4 = new System.Windows.Forms.CheckBox(); - this.CHK_G3 = new System.Windows.Forms.CheckBox(); - this.NUD_LevelBoost = new System.Windows.Forms.NumericUpDown(); - this.CHK_G2 = new System.Windows.Forms.CheckBox(); - this.CHK_Level = new System.Windows.Forms.CheckBox(); - this.CHK_G1 = new System.Windows.Forms.CheckBox(); - this.CHK_BST = new System.Windows.Forms.CheckBox(); - this.CHK_RandomPKM = new System.Windows.Forms.CheckBox(); - this.Tab_PKM2 = new System.Windows.Forms.TabPage(); - this.CHK_NoFixedDamage = new System.Windows.Forms.CheckBox(); - this.CHK_BeneficialEVs = new System.Windows.Forms.CheckBox(); - this.L_Moves = new System.Windows.Forms.Label(); - this.CB_Moves = new System.Windows.Forms.ComboBox(); - this.CHK_MaxDiffPKM = new System.Windows.Forms.CheckBox(); - this.NUD_Damage = new System.Windows.Forms.NumericUpDown(); - this.CHK_RandomAbilities = new System.Windows.Forms.CheckBox(); - this.NUD_STAB = new System.Windows.Forms.NumericUpDown(); - this.CHK_Damage = new System.Windows.Forms.CheckBox(); - this.CHK_RandomItems = new System.Windows.Forms.CheckBox(); - this.CHK_STAB = new System.Windows.Forms.CheckBox(); - this.Tab_Trainer1 = new System.Windows.Forms.TabPage(); - this.L_MinPKM = new System.Windows.Forms.Label(); - this.L_MaxPKM = new System.Windows.Forms.Label(); - this.NUD_RMin = new System.Windows.Forms.NumericUpDown(); - this.NUD_RMax = new System.Windows.Forms.NumericUpDown(); - this.CHK_RandomMegaForm = new System.Windows.Forms.CheckBox(); - this.CHK_TypeTheme = new System.Windows.Forms.CheckBox(); - this.CHK_IgnoreSpecialClass = new System.Windows.Forms.CheckBox(); - this.CHK_RandomClass = new System.Windows.Forms.CheckBox(); - ((System.ComponentModel.ISupportInitialize)(this.PB_Team1)).BeginInit(); - this.mnuVSD.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.PB_Team2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_Team3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_Team4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_Team5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_Team6)).BeginInit(); - this.TC_trpoke.SuspendLayout(); - this.Tab_Main.SuspendLayout(); - this.flowLayoutPanel2.SuspendLayout(); - this.FLP_Species.SuspendLayout(); - this.FLP_Form.SuspendLayout(); - this.flowLayoutPanel3.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Level)).BeginInit(); - this.flowLayoutPanel4.SuspendLayout(); - this.flowLayoutPanel1.SuspendLayout(); - this.flowLayoutPanel5.SuspendLayout(); - this.flowLayoutPanel6.SuspendLayout(); - this.flowLayoutPanel7.SuspendLayout(); - this.Tab_Stats.SuspendLayout(); - this.FLP_Stats.SuspendLayout(); - this.FLP_StatHeader.SuspendLayout(); - this.FLP_StatsHeaderRight.SuspendLayout(); - this.FLP_HP.SuspendLayout(); - this.FLP_Atk.SuspendLayout(); - this.FLP_Def.SuspendLayout(); - this.FLP_SpA.SuspendLayout(); - this.FLP_SpD.SuspendLayout(); - this.FLP_Spe.SuspendLayout(); - this.FLP_StatsTotal.SuspendLayout(); - this.FLP_HPType.SuspendLayout(); - this.Tab_Moves.SuspendLayout(); - this.GB_Moves.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_AI)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_NumPoke)).BeginInit(); - this.TC_trdata.SuspendLayout(); - this.Tab_Trainer.SuspendLayout(); - this.Tab_Advanced.SuspendLayout(); - this.Tab_Misc.SuspendLayout(); - this.TC_rand.SuspendLayout(); - this.Tab_PKM1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Shiny)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_LevelBoost)).BeginInit(); - this.Tab_PKM2.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Damage)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_STAB)).BeginInit(); - this.Tab_Trainer1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_RMin)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_RMax)).BeginInit(); - this.SuspendLayout(); - // - // CB_TrainerID - // - this.CB_TrainerID.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_TrainerID.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_TrainerID.DropDownWidth = 200; - this.CB_TrainerID.FormattingEnabled = true; - this.CB_TrainerID.Location = new System.Drawing.Point(429, 7); - this.CB_TrainerID.MaxDropDownItems = 12; - this.CB_TrainerID.Name = "CB_TrainerID"; - this.CB_TrainerID.Size = new System.Drawing.Size(140, 21); - this.CB_TrainerID.TabIndex = 64; - this.CB_TrainerID.SelectedIndexChanged += new System.EventHandler(this.ChangeTrainerIndex); - // - // L_AI - // - this.L_AI.AutoSize = true; - this.L_AI.Location = new System.Drawing.Point(217, 54); - this.L_AI.Name = "L_AI"; - this.L_AI.Size = new System.Drawing.Size(38, 13); - this.L_AI.TabIndex = 55; - this.L_AI.Text = "AI Val:"; - // - // L_Money - // - this.L_Money.AutoSize = true; - this.L_Money.Location = new System.Drawing.Point(40, 54); - this.L_Money.Name = "L_Money"; - this.L_Money.Size = new System.Drawing.Size(42, 13); - this.L_Money.TabIndex = 53; - this.L_Money.Text = "Money:"; - // - // CB_Money - // - this.CB_Money.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Money.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Money.FormattingEnabled = true; - this.CB_Money.Location = new System.Drawing.Point(90, 51); - this.CB_Money.Name = "CB_Money"; - this.CB_Money.Size = new System.Drawing.Size(70, 21); - this.CB_Money.TabIndex = 52; - // - // L_Trainer_Class - // - this.L_Trainer_Class.AutoSize = true; - this.L_Trainer_Class.Location = new System.Drawing.Point(13, 32); - this.L_Trainer_Class.Name = "L_Trainer_Class"; - this.L_Trainer_Class.Size = new System.Drawing.Size(71, 13); - this.L_Trainer_Class.TabIndex = 49; - this.L_Trainer_Class.Text = "Trainer Class:"; - // - // CB_Trainer_Class - // - this.CB_Trainer_Class.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Trainer_Class.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Trainer_Class.DropDownWidth = 165; - this.CB_Trainer_Class.FormattingEnabled = true; - this.CB_Trainer_Class.Location = new System.Drawing.Point(90, 29); - this.CB_Trainer_Class.Name = "CB_Trainer_Class"; - this.CB_Trainer_Class.Size = new System.Drawing.Size(161, 21); - this.CB_Trainer_Class.TabIndex = 48; - // - // L_Item_4 - // - this.L_Item_4.AutoSize = true; - this.L_Item_4.Location = new System.Drawing.Point(16, 160); - this.L_Item_4.Name = "L_Item_4"; - this.L_Item_4.Size = new System.Drawing.Size(39, 13); - this.L_Item_4.TabIndex = 34; - this.L_Item_4.Text = "Item 4:"; - // - // CB_Item_4 - // - this.CB_Item_4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; - this.CB_Item_4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Item_4.FormattingEnabled = true; - this.CB_Item_4.Location = new System.Drawing.Point(61, 157); - this.CB_Item_4.Name = "CB_Item_4"; - this.CB_Item_4.Size = new System.Drawing.Size(99, 21); - this.CB_Item_4.TabIndex = 33; - // - // L_Item_3 - // - this.L_Item_3.AutoSize = true; - this.L_Item_3.Location = new System.Drawing.Point(16, 138); - this.L_Item_3.Name = "L_Item_3"; - this.L_Item_3.Size = new System.Drawing.Size(39, 13); - this.L_Item_3.TabIndex = 32; - this.L_Item_3.Text = "Item 3:"; - // - // CB_Item_3 - // - this.CB_Item_3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; - this.CB_Item_3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Item_3.FormattingEnabled = true; - this.CB_Item_3.Location = new System.Drawing.Point(61, 135); - this.CB_Item_3.Name = "CB_Item_3"; - this.CB_Item_3.Size = new System.Drawing.Size(99, 21); - this.CB_Item_3.TabIndex = 31; - // - // L_Item_2 - // - this.L_Item_2.AutoSize = true; - this.L_Item_2.Location = new System.Drawing.Point(16, 116); - this.L_Item_2.Name = "L_Item_2"; - this.L_Item_2.Size = new System.Drawing.Size(39, 13); - this.L_Item_2.TabIndex = 30; - this.L_Item_2.Text = "Item 2:"; - // - // CB_Item_2 - // - this.CB_Item_2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; - this.CB_Item_2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Item_2.FormattingEnabled = true; - this.CB_Item_2.Location = new System.Drawing.Point(61, 113); - this.CB_Item_2.Name = "CB_Item_2"; - this.CB_Item_2.Size = new System.Drawing.Size(99, 21); - this.CB_Item_2.TabIndex = 29; - // - // L_Item_1 - // - this.L_Item_1.AutoSize = true; - this.L_Item_1.Location = new System.Drawing.Point(16, 94); - this.L_Item_1.Name = "L_Item_1"; - this.L_Item_1.Size = new System.Drawing.Size(39, 13); - this.L_Item_1.TabIndex = 28; - this.L_Item_1.Text = "Item 1:"; - // - // CB_Item_1 - // - this.CB_Item_1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; - this.CB_Item_1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Item_1.FormattingEnabled = true; - this.CB_Item_1.Location = new System.Drawing.Point(61, 91); - this.CB_Item_1.Name = "CB_Item_1"; - this.CB_Item_1.Size = new System.Drawing.Size(99, 21); - this.CB_Item_1.TabIndex = 27; - // - // L_numPokemon - // - this.L_numPokemon.AutoSize = true; - this.L_numPokemon.Location = new System.Drawing.Point(215, 11); - this.L_numPokemon.Name = "L_numPokemon"; - this.L_numPokemon.Size = new System.Drawing.Size(40, 13); - this.L_numPokemon.TabIndex = 22; - this.L_numPokemon.Text = "#PKM:"; - this.L_numPokemon.Visible = false; - // - // L_Team - // - this.L_Team.Location = new System.Drawing.Point(-19, 267); - this.L_Team.Name = "L_Team"; - this.L_Team.Size = new System.Drawing.Size(66, 15); - this.L_Team.TabIndex = 445; - this.L_Team.Text = "Team:"; - this.L_Team.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // PB_Team1 - // - this.PB_Team1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.PB_Team1.ContextMenuStrip = this.mnuVSD; - this.PB_Team1.Location = new System.Drawing.Point(53, 244); - this.PB_Team1.Name = "PB_Team1"; - this.PB_Team1.Size = new System.Drawing.Size(82, 62); - this.PB_Team1.TabIndex = 444; - this.PB_Team1.TabStop = false; - // - // mnuVSD - // - this.mnuVSD.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.mnuView, - this.mnuSet, - this.mnuDelete}); - this.mnuVSD.Name = "mnuVSD"; - this.mnuVSD.Size = new System.Drawing.Size(108, 70); - // - // mnuView - // - this.mnuView.Name = "mnuView"; - this.mnuView.Size = new System.Drawing.Size(107, 22); - this.mnuView.Text = "View"; - // - // mnuSet - // - this.mnuSet.Name = "mnuSet"; - this.mnuSet.Size = new System.Drawing.Size(107, 22); - this.mnuSet.Text = "Set"; - // - // mnuDelete - // - this.mnuDelete.Name = "mnuDelete"; - this.mnuDelete.Size = new System.Drawing.Size(107, 22); - this.mnuDelete.Text = "Delete"; - // - // PB_Team2 - // - this.PB_Team2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.PB_Team2.ContextMenuStrip = this.mnuVSD; - this.PB_Team2.Location = new System.Drawing.Point(139, 244); - this.PB_Team2.Name = "PB_Team2"; - this.PB_Team2.Size = new System.Drawing.Size(82, 62); - this.PB_Team2.TabIndex = 443; - this.PB_Team2.TabStop = false; - // - // PB_Team3 - // - this.PB_Team3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.PB_Team3.ContextMenuStrip = this.mnuVSD; - this.PB_Team3.Location = new System.Drawing.Point(225, 244); - this.PB_Team3.Name = "PB_Team3"; - this.PB_Team3.Size = new System.Drawing.Size(82, 62); - this.PB_Team3.TabIndex = 442; - this.PB_Team3.TabStop = false; - // - // PB_Team4 - // - this.PB_Team4.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.PB_Team4.ContextMenuStrip = this.mnuVSD; - this.PB_Team4.Location = new System.Drawing.Point(311, 244); - this.PB_Team4.Name = "PB_Team4"; - this.PB_Team4.Size = new System.Drawing.Size(82, 62); - this.PB_Team4.TabIndex = 441; - this.PB_Team4.TabStop = false; - // - // PB_Team5 - // - this.PB_Team5.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.PB_Team5.ContextMenuStrip = this.mnuVSD; - this.PB_Team5.Location = new System.Drawing.Point(397, 244); - this.PB_Team5.Name = "PB_Team5"; - this.PB_Team5.Size = new System.Drawing.Size(82, 62); - this.PB_Team5.TabIndex = 440; - this.PB_Team5.TabStop = false; - // - // PB_Team6 - // - this.PB_Team6.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.PB_Team6.ContextMenuStrip = this.mnuVSD; - this.PB_Team6.Location = new System.Drawing.Point(483, 244); - this.PB_Team6.Name = "PB_Team6"; - this.PB_Team6.Size = new System.Drawing.Size(82, 62); - this.PB_Team6.TabIndex = 439; - this.PB_Team6.TabStop = false; - // - // B_Randomize - // - this.B_Randomize.Location = new System.Drawing.Point(61, 3); - this.B_Randomize.Name = "B_Randomize"; - this.B_Randomize.Size = new System.Drawing.Size(93, 23); - this.B_Randomize.TabIndex = 447; - this.B_Randomize.Text = "Randomize All"; - this.B_Randomize.UseVisualStyleBackColor = true; - this.B_Randomize.Click += new System.EventHandler(this.B_Randomize_Click); - // - // B_Dump - // - this.B_Dump.Location = new System.Drawing.Point(160, 3); - this.B_Dump.Name = "B_Dump"; - this.B_Dump.Size = new System.Drawing.Size(93, 23); - this.B_Dump.TabIndex = 446; - this.B_Dump.Text = "Dump to .TXT"; - this.B_Dump.UseVisualStyleBackColor = true; - this.B_Dump.Click += new System.EventHandler(this.DumpTxt); - // - // TC_trpoke - // - this.TC_trpoke.Controls.Add(this.Tab_Main); - this.TC_trpoke.Controls.Add(this.Tab_Stats); - this.TC_trpoke.Controls.Add(this.Tab_Moves); - this.TC_trpoke.Location = new System.Drawing.Point(12, 12); - this.TC_trpoke.Name = "TC_trpoke"; - this.TC_trpoke.SelectedIndex = 0; - this.TC_trpoke.Size = new System.Drawing.Size(232, 225); - this.TC_trpoke.TabIndex = 448; - // - // Tab_Main - // - this.Tab_Main.Controls.Add(this.flowLayoutPanel2); - this.Tab_Main.Location = new System.Drawing.Point(4, 22); - this.Tab_Main.Name = "Tab_Main"; - this.Tab_Main.Padding = new System.Windows.Forms.Padding(3); - this.Tab_Main.Size = new System.Drawing.Size(224, 199); - this.Tab_Main.TabIndex = 0; - this.Tab_Main.Text = "Main"; - this.Tab_Main.UseVisualStyleBackColor = true; - // - // flowLayoutPanel2 - // - this.flowLayoutPanel2.Controls.Add(this.FLP_Species); - this.flowLayoutPanel2.Controls.Add(this.FLP_Form); - this.flowLayoutPanel2.Controls.Add(this.flowLayoutPanel3); - this.flowLayoutPanel2.Controls.Add(this.flowLayoutPanel4); - this.flowLayoutPanel2.Controls.Add(this.flowLayoutPanel1); - this.flowLayoutPanel2.Controls.Add(this.flowLayoutPanel5); - this.flowLayoutPanel2.Controls.Add(this.flowLayoutPanel6); - this.flowLayoutPanel2.Controls.Add(this.flowLayoutPanel7); - this.flowLayoutPanel2.Dock = System.Windows.Forms.DockStyle.Fill; - this.flowLayoutPanel2.Location = new System.Drawing.Point(3, 3); - this.flowLayoutPanel2.Name = "flowLayoutPanel2"; - this.flowLayoutPanel2.Size = new System.Drawing.Size(218, 193); - this.flowLayoutPanel2.TabIndex = 2; - // - // FLP_Species - // - this.FLP_Species.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.FLP_Species.Controls.Add(this.L_Species); - this.FLP_Species.Controls.Add(this.CB_Species); - this.FLP_Species.Location = new System.Drawing.Point(0, 10); - this.FLP_Species.Margin = new System.Windows.Forms.Padding(0, 10, 0, 0); - this.FLP_Species.Name = "FLP_Species"; - this.FLP_Species.Size = new System.Drawing.Size(215, 21); - this.FLP_Species.TabIndex = 1; - // - // L_Species - // - this.L_Species.Location = new System.Drawing.Point(3, 0); - this.L_Species.Name = "L_Species"; - this.L_Species.Size = new System.Drawing.Size(70, 21); - this.L_Species.TabIndex = 0; - this.L_Species.Text = "Species:"; - this.L_Species.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // CB_Species - // - this.CB_Species.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; - this.CB_Species.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Species.FormattingEnabled = true; - this.CB_Species.Location = new System.Drawing.Point(76, 0); - this.CB_Species.Margin = new System.Windows.Forms.Padding(0); - this.CB_Species.Name = "CB_Species"; - this.CB_Species.Size = new System.Drawing.Size(121, 21); - this.CB_Species.TabIndex = 1; - this.CB_Species.SelectedIndexChanged += new System.EventHandler(this.RefreshSpeciesAbility); - // - // FLP_Form - // - this.FLP_Form.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.FLP_Form.Controls.Add(this.L_Forme); - this.FLP_Form.Controls.Add(this.CB_Forme); - this.FLP_Form.Location = new System.Drawing.Point(0, 31); - this.FLP_Form.Margin = new System.Windows.Forms.Padding(0); - this.FLP_Form.Name = "FLP_Form"; - this.FLP_Form.Size = new System.Drawing.Size(215, 21); - this.FLP_Form.TabIndex = 2; - // - // L_Forme - // - this.L_Forme.Location = new System.Drawing.Point(3, 0); - this.L_Forme.Name = "L_Forme"; - this.L_Forme.Size = new System.Drawing.Size(70, 21); - this.L_Forme.TabIndex = 0; - this.L_Forme.Text = "Form:"; - this.L_Forme.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // CB_Forme - // - this.CB_Forme.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; - this.CB_Forme.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Forme.FormattingEnabled = true; - this.CB_Forme.Location = new System.Drawing.Point(76, 0); - this.CB_Forme.Margin = new System.Windows.Forms.Padding(0); - this.CB_Forme.Name = "CB_Forme"; - this.CB_Forme.Size = new System.Drawing.Size(121, 21); - this.CB_Forme.TabIndex = 1; - this.CB_Forme.SelectedIndexChanged += new System.EventHandler(this.RefreshFormAbility); - // - // flowLayoutPanel3 - // - this.flowLayoutPanel3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.flowLayoutPanel3.Controls.Add(this.L_Level); - this.flowLayoutPanel3.Controls.Add(this.NUD_Level); - this.flowLayoutPanel3.Location = new System.Drawing.Point(0, 52); - this.flowLayoutPanel3.Margin = new System.Windows.Forms.Padding(0); - this.flowLayoutPanel3.Name = "flowLayoutPanel3"; - this.flowLayoutPanel3.Size = new System.Drawing.Size(215, 21); - this.flowLayoutPanel3.TabIndex = 3; - // - // L_Level - // - this.L_Level.Location = new System.Drawing.Point(3, 0); - this.L_Level.Name = "L_Level"; - this.L_Level.Size = new System.Drawing.Size(70, 21); - this.L_Level.TabIndex = 0; - this.L_Level.Text = "Level:"; - this.L_Level.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_Level - // - this.NUD_Level.Location = new System.Drawing.Point(76, 0); - this.NUD_Level.Margin = new System.Windows.Forms.Padding(0); - this.NUD_Level.Name = "NUD_Level"; - this.NUD_Level.Size = new System.Drawing.Size(56, 20); - this.NUD_Level.TabIndex = 1; - this.NUD_Level.ValueChanged += new System.EventHandler(this.UpdateStats); - // - // flowLayoutPanel4 - // - this.flowLayoutPanel4.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.flowLayoutPanel4.Controls.Add(this.L_Ability); - this.flowLayoutPanel4.Controls.Add(this.CB_Ability); - this.flowLayoutPanel4.Location = new System.Drawing.Point(0, 73); - this.flowLayoutPanel4.Margin = new System.Windows.Forms.Padding(0); - this.flowLayoutPanel4.Name = "flowLayoutPanel4"; - this.flowLayoutPanel4.Size = new System.Drawing.Size(215, 21); - this.flowLayoutPanel4.TabIndex = 4; - // - // L_Ability - // - this.L_Ability.Location = new System.Drawing.Point(3, 0); - this.L_Ability.Name = "L_Ability"; - this.L_Ability.Size = new System.Drawing.Size(70, 21); - this.L_Ability.TabIndex = 0; - this.L_Ability.Text = "Ability:"; - this.L_Ability.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // CB_Ability - // - this.CB_Ability.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; - this.CB_Ability.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Ability.FormattingEnabled = true; - this.CB_Ability.Location = new System.Drawing.Point(76, 0); - this.CB_Ability.Margin = new System.Windows.Forms.Padding(0); - this.CB_Ability.Name = "CB_Ability"; - this.CB_Ability.Size = new System.Drawing.Size(121, 21); - this.CB_Ability.TabIndex = 2; - // - // flowLayoutPanel1 - // - this.flowLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.flowLayoutPanel1.Controls.Add(this.L_Item); - this.flowLayoutPanel1.Controls.Add(this.CB_Item); - this.flowLayoutPanel1.Location = new System.Drawing.Point(0, 94); - this.flowLayoutPanel1.Margin = new System.Windows.Forms.Padding(0); - this.flowLayoutPanel1.Name = "flowLayoutPanel1"; - this.flowLayoutPanel1.Size = new System.Drawing.Size(215, 21); - this.flowLayoutPanel1.TabIndex = 5; - // - // L_Item - // - this.L_Item.Location = new System.Drawing.Point(3, 0); - this.L_Item.Name = "L_Item"; - this.L_Item.Size = new System.Drawing.Size(70, 21); - this.L_Item.TabIndex = 0; - this.L_Item.Text = "Held Item:"; - this.L_Item.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // CB_Item - // - this.CB_Item.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; - this.CB_Item.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Item.FormattingEnabled = true; - this.CB_Item.Location = new System.Drawing.Point(76, 0); - this.CB_Item.Margin = new System.Windows.Forms.Padding(0); - this.CB_Item.Name = "CB_Item"; - this.CB_Item.Size = new System.Drawing.Size(121, 21); - this.CB_Item.TabIndex = 2; - // - // flowLayoutPanel5 - // - this.flowLayoutPanel5.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.flowLayoutPanel5.Controls.Add(this.L_Nature); - this.flowLayoutPanel5.Controls.Add(this.CB_Nature); - this.flowLayoutPanel5.Location = new System.Drawing.Point(0, 115); - this.flowLayoutPanel5.Margin = new System.Windows.Forms.Padding(0); - this.flowLayoutPanel5.Name = "flowLayoutPanel5"; - this.flowLayoutPanel5.Size = new System.Drawing.Size(215, 21); - this.flowLayoutPanel5.TabIndex = 6; - // - // L_Nature - // - this.L_Nature.Location = new System.Drawing.Point(3, 0); - this.L_Nature.Name = "L_Nature"; - this.L_Nature.Size = new System.Drawing.Size(70, 21); - this.L_Nature.TabIndex = 0; - this.L_Nature.Text = "Nature:"; - this.L_Nature.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // CB_Nature - // - this.CB_Nature.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; - this.CB_Nature.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Nature.FormattingEnabled = true; - this.CB_Nature.Location = new System.Drawing.Point(76, 0); - this.CB_Nature.Margin = new System.Windows.Forms.Padding(0); - this.CB_Nature.Name = "CB_Nature"; - this.CB_Nature.Size = new System.Drawing.Size(121, 21); - this.CB_Nature.TabIndex = 2; - this.CB_Nature.SelectedIndexChanged += new System.EventHandler(this.UpdateStats); - // - // flowLayoutPanel6 - // - this.flowLayoutPanel6.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.flowLayoutPanel6.Controls.Add(this.L_Misc); - this.flowLayoutPanel6.Controls.Add(this.CHK_Shiny); - this.flowLayoutPanel6.Location = new System.Drawing.Point(0, 136); - this.flowLayoutPanel6.Margin = new System.Windows.Forms.Padding(0); - this.flowLayoutPanel6.Name = "flowLayoutPanel6"; - this.flowLayoutPanel6.Size = new System.Drawing.Size(215, 21); - this.flowLayoutPanel6.TabIndex = 7; - // - // L_Misc - // - this.L_Misc.Location = new System.Drawing.Point(3, 0); - this.L_Misc.Name = "L_Misc"; - this.L_Misc.Size = new System.Drawing.Size(70, 21); - this.L_Misc.TabIndex = 0; - this.L_Misc.Text = "Misc:"; - this.L_Misc.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // CHK_Shiny - // - this.CHK_Shiny.AutoSize = true; - this.CHK_Shiny.Location = new System.Drawing.Point(79, 3); - this.CHK_Shiny.Name = "CHK_Shiny"; - this.CHK_Shiny.Size = new System.Drawing.Size(52, 17); - this.CHK_Shiny.TabIndex = 1; - this.CHK_Shiny.Text = "Shiny"; - this.CHK_Shiny.UseVisualStyleBackColor = true; - // - // flowLayoutPanel7 - // - this.flowLayoutPanel7.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.flowLayoutPanel7.Controls.Add(this.L_Gender); - this.flowLayoutPanel7.Controls.Add(this.CB_Gender); - this.flowLayoutPanel7.Location = new System.Drawing.Point(0, 157); - this.flowLayoutPanel7.Margin = new System.Windows.Forms.Padding(0); - this.flowLayoutPanel7.Name = "flowLayoutPanel7"; - this.flowLayoutPanel7.Size = new System.Drawing.Size(215, 21); - this.flowLayoutPanel7.TabIndex = 8; - // - // L_Gender - // - this.L_Gender.Location = new System.Drawing.Point(3, 0); - this.L_Gender.Name = "L_Gender"; - this.L_Gender.Size = new System.Drawing.Size(70, 21); - this.L_Gender.TabIndex = 0; - this.L_Gender.Text = "Gender:"; - this.L_Gender.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // CB_Gender - // - this.CB_Gender.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; - this.CB_Gender.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Gender.FormattingEnabled = true; - this.CB_Gender.Location = new System.Drawing.Point(76, 0); - this.CB_Gender.Margin = new System.Windows.Forms.Padding(0); - this.CB_Gender.Name = "CB_Gender"; - this.CB_Gender.Size = new System.Drawing.Size(121, 21); - this.CB_Gender.TabIndex = 3; - // - // Tab_Stats - // - this.Tab_Stats.Controls.Add(this.FLP_Stats); - this.Tab_Stats.Location = new System.Drawing.Point(4, 22); - this.Tab_Stats.Name = "Tab_Stats"; - this.Tab_Stats.Padding = new System.Windows.Forms.Padding(3); - this.Tab_Stats.Size = new System.Drawing.Size(224, 199); - this.Tab_Stats.TabIndex = 2; - this.Tab_Stats.Text = "Stats"; - this.Tab_Stats.UseVisualStyleBackColor = true; - // - // FLP_Stats - // - this.FLP_Stats.Controls.Add(this.FLP_StatHeader); - this.FLP_Stats.Controls.Add(this.FLP_HP); - this.FLP_Stats.Controls.Add(this.FLP_Atk); - this.FLP_Stats.Controls.Add(this.FLP_Def); - this.FLP_Stats.Controls.Add(this.FLP_SpA); - this.FLP_Stats.Controls.Add(this.FLP_SpD); - this.FLP_Stats.Controls.Add(this.FLP_Spe); - this.FLP_Stats.Controls.Add(this.FLP_StatsTotal); - this.FLP_Stats.Controls.Add(this.FLP_HPType); - this.FLP_Stats.Location = new System.Drawing.Point(15, 3); - this.FLP_Stats.Name = "FLP_Stats"; - this.FLP_Stats.Size = new System.Drawing.Size(178, 193); - this.FLP_Stats.TabIndex = 450; - // - // FLP_StatHeader - // - this.FLP_StatHeader.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); - this.FLP_StatHeader.Controls.Add(this.FLP_StatsHeaderRight); - this.FLP_StatHeader.Location = new System.Drawing.Point(0, 0); - this.FLP_StatHeader.Margin = new System.Windows.Forms.Padding(0); - this.FLP_StatHeader.Name = "FLP_StatHeader"; - this.FLP_StatHeader.Size = new System.Drawing.Size(172, 22); - this.FLP_StatHeader.TabIndex = 122; - // - // FLP_StatsHeaderRight - // - this.FLP_StatsHeaderRight.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); - this.FLP_StatsHeaderRight.Controls.Add(this.Label_IVs); - this.FLP_StatsHeaderRight.Controls.Add(this.Label_EVs); - this.FLP_StatsHeaderRight.Controls.Add(this.Label_Stats); - this.FLP_StatsHeaderRight.Location = new System.Drawing.Point(62, 0); - this.FLP_StatsHeaderRight.Margin = new System.Windows.Forms.Padding(62, 0, 0, 0); - this.FLP_StatsHeaderRight.Name = "FLP_StatsHeaderRight"; - this.FLP_StatsHeaderRight.Size = new System.Drawing.Size(112, 21); - this.FLP_StatsHeaderRight.TabIndex = 123; - // - // Label_IVs - // - this.Label_IVs.Location = new System.Drawing.Point(0, 0); - this.Label_IVs.Margin = new System.Windows.Forms.Padding(0); - this.Label_IVs.Name = "Label_IVs"; - this.Label_IVs.Size = new System.Drawing.Size(30, 21); - this.Label_IVs.TabIndex = 29; - this.Label_IVs.Text = "IVs"; - this.Label_IVs.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // Label_EVs - // - this.Label_EVs.Location = new System.Drawing.Point(30, 0); - this.Label_EVs.Margin = new System.Windows.Forms.Padding(0); - this.Label_EVs.Name = "Label_EVs"; - this.Label_EVs.Size = new System.Drawing.Size(35, 21); - this.Label_EVs.TabIndex = 27; - this.Label_EVs.Text = "EVs"; - this.Label_EVs.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // Label_Stats - // - this.Label_Stats.Location = new System.Drawing.Point(65, 0); - this.Label_Stats.Margin = new System.Windows.Forms.Padding(0); - this.Label_Stats.Name = "Label_Stats"; - this.Label_Stats.Size = new System.Drawing.Size(35, 21); - this.Label_Stats.TabIndex = 28; - this.Label_Stats.Text = "Stats"; - this.Label_Stats.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // FLP_HP - // - this.FLP_HP.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); - this.FLP_HP.Controls.Add(this.Label_HP); - this.FLP_HP.Controls.Add(this.TB_HPIV); - this.FLP_HP.Controls.Add(this.TB_HPEV); - this.FLP_HP.Controls.Add(this.Stat_HP); - this.FLP_HP.Location = new System.Drawing.Point(0, 22); - this.FLP_HP.Margin = new System.Windows.Forms.Padding(0); - this.FLP_HP.Name = "FLP_HP"; - this.FLP_HP.Size = new System.Drawing.Size(172, 21); - this.FLP_HP.TabIndex = 123; - // - // Label_HP - // - this.Label_HP.Location = new System.Drawing.Point(0, 0); - this.Label_HP.Margin = new System.Windows.Forms.Padding(0); - this.Label_HP.Name = "Label_HP"; - this.Label_HP.Size = new System.Drawing.Size(65, 21); - this.Label_HP.TabIndex = 19; - this.Label_HP.Text = "HP:"; - this.Label_HP.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // TB_HPIV - // - this.TB_HPIV.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_HPIV.Location = new System.Drawing.Point(65, 0); - this.TB_HPIV.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0); - this.TB_HPIV.Mask = "00"; - this.TB_HPIV.Name = "TB_HPIV"; - this.TB_HPIV.Size = new System.Drawing.Size(22, 20); - this.TB_HPIV.TabIndex = 46; - this.TB_HPIV.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_HPIV.TextChanged += new System.EventHandler(this.UpdateStats); - // - // TB_HPEV - // - this.TB_HPEV.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_HPEV.Location = new System.Drawing.Point(93, 0); - this.TB_HPEV.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); - this.TB_HPEV.Mask = "000"; - this.TB_HPEV.Name = "TB_HPEV"; - this.TB_HPEV.Size = new System.Drawing.Size(28, 20); - this.TB_HPEV.TabIndex = 47; - this.TB_HPEV.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_HPEV.TextChanged += new System.EventHandler(this.UpdateStats); - // - // Stat_HP - // - this.Stat_HP.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.Stat_HP.Enabled = false; - this.Stat_HP.Location = new System.Drawing.Point(127, 0); - this.Stat_HP.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); - this.Stat_HP.Mask = "00000"; - this.Stat_HP.Name = "Stat_HP"; - this.Stat_HP.PromptChar = ' '; - this.Stat_HP.Size = new System.Drawing.Size(37, 20); - this.Stat_HP.TabIndex = 48; - this.Stat_HP.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - // - // FLP_Atk - // - this.FLP_Atk.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); - this.FLP_Atk.Controls.Add(this.Label_ATK); - this.FLP_Atk.Controls.Add(this.TB_ATKIV); - this.FLP_Atk.Controls.Add(this.TB_ATKEV); - this.FLP_Atk.Controls.Add(this.Stat_ATK); - this.FLP_Atk.Location = new System.Drawing.Point(0, 43); - this.FLP_Atk.Margin = new System.Windows.Forms.Padding(0); - this.FLP_Atk.Name = "FLP_Atk"; - this.FLP_Atk.Size = new System.Drawing.Size(172, 21); - this.FLP_Atk.TabIndex = 124; - // - // Label_ATK - // - this.Label_ATK.Location = new System.Drawing.Point(0, 0); - this.Label_ATK.Margin = new System.Windows.Forms.Padding(0); - this.Label_ATK.Name = "Label_ATK"; - this.Label_ATK.Size = new System.Drawing.Size(65, 21); - this.Label_ATK.TabIndex = 20; - this.Label_ATK.Text = "Atk:"; - this.Label_ATK.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // TB_ATKIV - // - this.TB_ATKIV.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_ATKIV.Location = new System.Drawing.Point(65, 0); - this.TB_ATKIV.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0); - this.TB_ATKIV.Mask = "00"; - this.TB_ATKIV.Name = "TB_ATKIV"; - this.TB_ATKIV.Size = new System.Drawing.Size(22, 20); - this.TB_ATKIV.TabIndex = 47; - this.TB_ATKIV.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_ATKIV.TextChanged += new System.EventHandler(this.UpdateStats); - // - // TB_ATKEV - // - this.TB_ATKEV.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_ATKEV.Location = new System.Drawing.Point(93, 0); - this.TB_ATKEV.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); - this.TB_ATKEV.Mask = "000"; - this.TB_ATKEV.Name = "TB_ATKEV"; - this.TB_ATKEV.Size = new System.Drawing.Size(28, 20); - this.TB_ATKEV.TabIndex = 48; - this.TB_ATKEV.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_ATKEV.TextChanged += new System.EventHandler(this.UpdateStats); - // - // Stat_ATK - // - this.Stat_ATK.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.Stat_ATK.Enabled = false; - this.Stat_ATK.Location = new System.Drawing.Point(127, 0); - this.Stat_ATK.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); - this.Stat_ATK.Mask = "00000"; - this.Stat_ATK.Name = "Stat_ATK"; - this.Stat_ATK.PromptChar = ' '; - this.Stat_ATK.Size = new System.Drawing.Size(37, 20); - this.Stat_ATK.TabIndex = 49; - this.Stat_ATK.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - // - // FLP_Def - // - this.FLP_Def.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); - this.FLP_Def.Controls.Add(this.Label_DEF); - this.FLP_Def.Controls.Add(this.TB_DEFIV); - this.FLP_Def.Controls.Add(this.TB_DEFEV); - this.FLP_Def.Controls.Add(this.Stat_DEF); - this.FLP_Def.Location = new System.Drawing.Point(0, 64); - this.FLP_Def.Margin = new System.Windows.Forms.Padding(0); - this.FLP_Def.Name = "FLP_Def"; - this.FLP_Def.Size = new System.Drawing.Size(172, 21); - this.FLP_Def.TabIndex = 125; - // - // Label_DEF - // - this.Label_DEF.Location = new System.Drawing.Point(0, 0); - this.Label_DEF.Margin = new System.Windows.Forms.Padding(0); - this.Label_DEF.Name = "Label_DEF"; - this.Label_DEF.Size = new System.Drawing.Size(65, 21); - this.Label_DEF.TabIndex = 21; - this.Label_DEF.Text = "Def:"; - this.Label_DEF.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // TB_DEFIV - // - this.TB_DEFIV.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_DEFIV.Location = new System.Drawing.Point(65, 0); - this.TB_DEFIV.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0); - this.TB_DEFIV.Mask = "00"; - this.TB_DEFIV.Name = "TB_DEFIV"; - this.TB_DEFIV.Size = new System.Drawing.Size(22, 20); - this.TB_DEFIV.TabIndex = 48; - this.TB_DEFIV.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_DEFIV.TextChanged += new System.EventHandler(this.UpdateStats); - // - // TB_DEFEV - // - this.TB_DEFEV.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_DEFEV.Location = new System.Drawing.Point(93, 0); - this.TB_DEFEV.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); - this.TB_DEFEV.Mask = "000"; - this.TB_DEFEV.Name = "TB_DEFEV"; - this.TB_DEFEV.Size = new System.Drawing.Size(28, 20); - this.TB_DEFEV.TabIndex = 49; - this.TB_DEFEV.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_DEFEV.TextChanged += new System.EventHandler(this.UpdateStats); - // - // Stat_DEF - // - this.Stat_DEF.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.Stat_DEF.Enabled = false; - this.Stat_DEF.Location = new System.Drawing.Point(127, 0); - this.Stat_DEF.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); - this.Stat_DEF.Mask = "00000"; - this.Stat_DEF.Name = "Stat_DEF"; - this.Stat_DEF.PromptChar = ' '; - this.Stat_DEF.Size = new System.Drawing.Size(37, 20); - this.Stat_DEF.TabIndex = 50; - this.Stat_DEF.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - // - // FLP_SpA - // - this.FLP_SpA.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); - this.FLP_SpA.Controls.Add(this.Label_SPA); - this.FLP_SpA.Controls.Add(this.TB_SPAIV); - this.FLP_SpA.Controls.Add(this.TB_SPAEV); - this.FLP_SpA.Controls.Add(this.Stat_SPA); - this.FLP_SpA.Location = new System.Drawing.Point(0, 85); - this.FLP_SpA.Margin = new System.Windows.Forms.Padding(0); - this.FLP_SpA.Name = "FLP_SpA"; - this.FLP_SpA.Size = new System.Drawing.Size(172, 21); - this.FLP_SpA.TabIndex = 126; - // - // Label_SPA - // - this.Label_SPA.Location = new System.Drawing.Point(0, 0); - this.Label_SPA.Margin = new System.Windows.Forms.Padding(0); - this.Label_SPA.Name = "Label_SPA"; - this.Label_SPA.Size = new System.Drawing.Size(65, 21); - this.Label_SPA.TabIndex = 51; - this.Label_SPA.Text = "SpA:"; - this.Label_SPA.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // TB_SPAIV - // - this.TB_SPAIV.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_SPAIV.Location = new System.Drawing.Point(65, 0); - this.TB_SPAIV.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0); - this.TB_SPAIV.Mask = "00"; - this.TB_SPAIV.Name = "TB_SPAIV"; - this.TB_SPAIV.Size = new System.Drawing.Size(22, 20); - this.TB_SPAIV.TabIndex = 49; - this.TB_SPAIV.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_SPAIV.TextChanged += new System.EventHandler(this.UpdateStats); - // - // TB_SPAEV - // - this.TB_SPAEV.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_SPAEV.Location = new System.Drawing.Point(93, 0); - this.TB_SPAEV.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); - this.TB_SPAEV.Mask = "000"; - this.TB_SPAEV.Name = "TB_SPAEV"; - this.TB_SPAEV.Size = new System.Drawing.Size(28, 20); - this.TB_SPAEV.TabIndex = 50; - this.TB_SPAEV.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_SPAEV.TextChanged += new System.EventHandler(this.UpdateStats); - // - // Stat_SPA - // - this.Stat_SPA.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.Stat_SPA.Enabled = false; - this.Stat_SPA.Location = new System.Drawing.Point(127, 0); - this.Stat_SPA.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); - this.Stat_SPA.Mask = "00000"; - this.Stat_SPA.Name = "Stat_SPA"; - this.Stat_SPA.PromptChar = ' '; - this.Stat_SPA.Size = new System.Drawing.Size(37, 20); - this.Stat_SPA.TabIndex = 52; - this.Stat_SPA.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - // - // FLP_SpD - // - this.FLP_SpD.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); - this.FLP_SpD.Controls.Add(this.Label_SPD); - this.FLP_SpD.Controls.Add(this.TB_SPDIV); - this.FLP_SpD.Controls.Add(this.TB_SPDEV); - this.FLP_SpD.Controls.Add(this.Stat_SPD); - this.FLP_SpD.Location = new System.Drawing.Point(0, 106); - this.FLP_SpD.Margin = new System.Windows.Forms.Padding(0); - this.FLP_SpD.Name = "FLP_SpD"; - this.FLP_SpD.Size = new System.Drawing.Size(172, 21); - this.FLP_SpD.TabIndex = 127; - // - // Label_SPD - // - this.Label_SPD.Location = new System.Drawing.Point(0, 0); - this.Label_SPD.Margin = new System.Windows.Forms.Padding(0); - this.Label_SPD.Name = "Label_SPD"; - this.Label_SPD.Size = new System.Drawing.Size(65, 21); - this.Label_SPD.TabIndex = 23; - this.Label_SPD.Text = "SpD:"; - this.Label_SPD.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // TB_SPDIV - // - this.TB_SPDIV.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_SPDIV.Location = new System.Drawing.Point(65, 0); - this.TB_SPDIV.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0); - this.TB_SPDIV.Mask = "00"; - this.TB_SPDIV.Name = "TB_SPDIV"; - this.TB_SPDIV.Size = new System.Drawing.Size(22, 20); - this.TB_SPDIV.TabIndex = 5; - this.TB_SPDIV.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_SPDIV.TextChanged += new System.EventHandler(this.UpdateStats); - // - // TB_SPDEV - // - this.TB_SPDEV.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_SPDEV.Location = new System.Drawing.Point(93, 0); - this.TB_SPDEV.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); - this.TB_SPDEV.Mask = "000"; - this.TB_SPDEV.Name = "TB_SPDEV"; - this.TB_SPDEV.Size = new System.Drawing.Size(28, 20); - this.TB_SPDEV.TabIndex = 11; - this.TB_SPDEV.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_SPDEV.TextChanged += new System.EventHandler(this.UpdateStats); - // - // Stat_SPD - // - this.Stat_SPD.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.Stat_SPD.Enabled = false; - this.Stat_SPD.Location = new System.Drawing.Point(127, 0); - this.Stat_SPD.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); - this.Stat_SPD.Mask = "00000"; - this.Stat_SPD.Name = "Stat_SPD"; - this.Stat_SPD.PromptChar = ' '; - this.Stat_SPD.Size = new System.Drawing.Size(37, 20); - this.Stat_SPD.TabIndex = 49; - this.Stat_SPD.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - // - // FLP_Spe - // - this.FLP_Spe.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); - this.FLP_Spe.Controls.Add(this.Label_SPE); - this.FLP_Spe.Controls.Add(this.TB_SPEIV); - this.FLP_Spe.Controls.Add(this.TB_SPEEV); - this.FLP_Spe.Controls.Add(this.Stat_SPE); - this.FLP_Spe.Location = new System.Drawing.Point(0, 127); - this.FLP_Spe.Margin = new System.Windows.Forms.Padding(0); - this.FLP_Spe.Name = "FLP_Spe"; - this.FLP_Spe.Size = new System.Drawing.Size(172, 21); - this.FLP_Spe.TabIndex = 128; - // - // Label_SPE - // - this.Label_SPE.Location = new System.Drawing.Point(0, 0); - this.Label_SPE.Margin = new System.Windows.Forms.Padding(0); - this.Label_SPE.Name = "Label_SPE"; - this.Label_SPE.Size = new System.Drawing.Size(65, 21); - this.Label_SPE.TabIndex = 24; - this.Label_SPE.Text = "Spe:"; - this.Label_SPE.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // TB_SPEIV - // - this.TB_SPEIV.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_SPEIV.Location = new System.Drawing.Point(65, 0); - this.TB_SPEIV.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0); - this.TB_SPEIV.Mask = "00"; - this.TB_SPEIV.Name = "TB_SPEIV"; - this.TB_SPEIV.Size = new System.Drawing.Size(22, 20); - this.TB_SPEIV.TabIndex = 51; - this.TB_SPEIV.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_SPEIV.TextChanged += new System.EventHandler(this.UpdateStats); - // - // TB_SPEEV - // - this.TB_SPEEV.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_SPEEV.Location = new System.Drawing.Point(93, 0); - this.TB_SPEEV.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); - this.TB_SPEEV.Mask = "000"; - this.TB_SPEEV.Name = "TB_SPEEV"; - this.TB_SPEEV.Size = new System.Drawing.Size(28, 20); - this.TB_SPEEV.TabIndex = 52; - this.TB_SPEEV.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - this.TB_SPEEV.TextChanged += new System.EventHandler(this.UpdateStats); - // - // Stat_SPE - // - this.Stat_SPE.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.Stat_SPE.Enabled = false; - this.Stat_SPE.Location = new System.Drawing.Point(127, 0); - this.Stat_SPE.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); - this.Stat_SPE.Mask = "00000"; - this.Stat_SPE.Name = "Stat_SPE"; - this.Stat_SPE.PromptChar = ' '; - this.Stat_SPE.Size = new System.Drawing.Size(37, 20); - this.Stat_SPE.TabIndex = 53; - this.Stat_SPE.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - // - // FLP_StatsTotal - // - this.FLP_StatsTotal.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); - this.FLP_StatsTotal.Controls.Add(this.Label_Total); - this.FLP_StatsTotal.Controls.Add(this.TB_IVTotal); - this.FLP_StatsTotal.Controls.Add(this.TB_EVTotal); - this.FLP_StatsTotal.Location = new System.Drawing.Point(0, 148); - this.FLP_StatsTotal.Margin = new System.Windows.Forms.Padding(0); - this.FLP_StatsTotal.Name = "FLP_StatsTotal"; - this.FLP_StatsTotal.Size = new System.Drawing.Size(172, 21); - this.FLP_StatsTotal.TabIndex = 129; - // - // Label_Total - // - this.Label_Total.Location = new System.Drawing.Point(0, 0); - this.Label_Total.Margin = new System.Windows.Forms.Padding(0); - this.Label_Total.Name = "Label_Total"; - this.Label_Total.Size = new System.Drawing.Size(65, 21); - this.Label_Total.TabIndex = 25; - this.Label_Total.Text = "Total:"; - this.Label_Total.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // TB_IVTotal - // - this.TB_IVTotal.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_IVTotal.Enabled = false; - this.TB_IVTotal.Location = new System.Drawing.Point(65, 0); - this.TB_IVTotal.Margin = new System.Windows.Forms.Padding(0, 0, 3, 0); - this.TB_IVTotal.MaxLength = 3; - this.TB_IVTotal.Name = "TB_IVTotal"; - this.TB_IVTotal.Size = new System.Drawing.Size(22, 20); - this.TB_IVTotal.TabIndex = 44; - this.TB_IVTotal.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - // - // TB_EVTotal - // - this.TB_EVTotal.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.TB_EVTotal.Enabled = false; - this.TB_EVTotal.Location = new System.Drawing.Point(93, 0); - this.TB_EVTotal.Margin = new System.Windows.Forms.Padding(3, 0, 3, 0); - this.TB_EVTotal.MaxLength = 3; - this.TB_EVTotal.Name = "TB_EVTotal"; - this.TB_EVTotal.Size = new System.Drawing.Size(28, 20); - this.TB_EVTotal.TabIndex = 43; - this.TB_EVTotal.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; - // - // FLP_HPType - // - this.FLP_HPType.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); - this.FLP_HPType.Controls.Add(this.Label_HiddenPowerPrefix); - this.FLP_HPType.Controls.Add(this.CB_HPType); - this.FLP_HPType.Location = new System.Drawing.Point(0, 169); - this.FLP_HPType.Margin = new System.Windows.Forms.Padding(0); - this.FLP_HPType.Name = "FLP_HPType"; - this.FLP_HPType.Size = new System.Drawing.Size(172, 21); - this.FLP_HPType.TabIndex = 130; - // - // Label_HiddenPowerPrefix - // - this.Label_HiddenPowerPrefix.Location = new System.Drawing.Point(0, 0); - this.Label_HiddenPowerPrefix.Margin = new System.Windows.Forms.Padding(0); - this.Label_HiddenPowerPrefix.Name = "Label_HiddenPowerPrefix"; - this.Label_HiddenPowerPrefix.Size = new System.Drawing.Size(102, 21); - this.Label_HiddenPowerPrefix.TabIndex = 29; - this.Label_HiddenPowerPrefix.Text = "Hidden Power:"; - this.Label_HiddenPowerPrefix.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // CB_HPType - // - this.CB_HPType.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; - this.CB_HPType.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_HPType.DropDownWidth = 80; - this.CB_HPType.FormattingEnabled = true; - this.CB_HPType.Location = new System.Drawing.Point(102, 0); - this.CB_HPType.Margin = new System.Windows.Forms.Padding(0); - this.CB_HPType.Name = "CB_HPType"; - this.CB_HPType.Size = new System.Drawing.Size(70, 21); - this.CB_HPType.TabIndex = 44; - this.CB_HPType.SelectedIndexChanged += new System.EventHandler(this.UpdateHPType); - // - // Tab_Moves - // - this.Tab_Moves.Controls.Add(this.B_Clear); - this.Tab_Moves.Controls.Add(this.B_CurrentAttack); - this.Tab_Moves.Controls.Add(this.B_HighAttack); - this.Tab_Moves.Controls.Add(this.GB_Moves); - this.Tab_Moves.Location = new System.Drawing.Point(4, 22); - this.Tab_Moves.Name = "Tab_Moves"; - this.Tab_Moves.Padding = new System.Windows.Forms.Padding(3); - this.Tab_Moves.Size = new System.Drawing.Size(224, 199); - this.Tab_Moves.TabIndex = 1; - this.Tab_Moves.Text = "Moves"; - this.Tab_Moves.UseVisualStyleBackColor = true; - // - // B_Clear - // - this.B_Clear.Location = new System.Drawing.Point(75, 3); - this.B_Clear.Name = "B_Clear"; - this.B_Clear.Size = new System.Drawing.Size(75, 23); - this.B_Clear.TabIndex = 450; - this.B_Clear.Text = "Clear"; - this.B_Clear.UseVisualStyleBackColor = true; - this.B_Clear.Click += new System.EventHandler(this.B_Clear_Click); - // - // B_CurrentAttack - // - this.B_CurrentAttack.Location = new System.Drawing.Point(16, 26); - this.B_CurrentAttack.Name = "B_CurrentAttack"; - this.B_CurrentAttack.Size = new System.Drawing.Size(93, 40); - this.B_CurrentAttack.TabIndex = 449; - this.B_CurrentAttack.Text = "Current Level Levelup Moves"; - this.B_CurrentAttack.UseVisualStyleBackColor = true; - this.B_CurrentAttack.Click += new System.EventHandler(this.B_CurrentAttack_Click); - // - // B_HighAttack - // - this.B_HighAttack.Location = new System.Drawing.Point(115, 26); - this.B_HighAttack.Name = "B_HighAttack"; - this.B_HighAttack.Size = new System.Drawing.Size(93, 40); - this.B_HighAttack.TabIndex = 448; - this.B_HighAttack.Text = "High Attacking Levelup Moves"; - this.B_HighAttack.UseVisualStyleBackColor = true; - this.B_HighAttack.Click += new System.EventHandler(this.B_HighAttack_Click); - // - // GB_Moves - // - this.GB_Moves.Controls.Add(this.CB_Move1); - this.GB_Moves.Controls.Add(this.CB_Move4); - this.GB_Moves.Controls.Add(this.CB_Move2); - this.GB_Moves.Controls.Add(this.CB_Move3); - this.GB_Moves.Location = new System.Drawing.Point(22, 72); - this.GB_Moves.Name = "GB_Moves"; - this.GB_Moves.Size = new System.Drawing.Size(181, 114); - this.GB_Moves.TabIndex = 0; - this.GB_Moves.TabStop = false; - this.GB_Moves.Text = "Moves"; - // - // CB_Move1 - // - this.CB_Move1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; - this.CB_Move1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Move1.FormattingEnabled = true; - this.CB_Move1.Location = new System.Drawing.Point(40, 16); - this.CB_Move1.Margin = new System.Windows.Forms.Padding(0); - this.CB_Move1.Name = "CB_Move1"; - this.CB_Move1.Size = new System.Drawing.Size(121, 21); - this.CB_Move1.TabIndex = 1; - // - // CB_Move4 - // - this.CB_Move4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; - this.CB_Move4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Move4.FormattingEnabled = true; - this.CB_Move4.Location = new System.Drawing.Point(40, 82); - this.CB_Move4.Margin = new System.Windows.Forms.Padding(0); - this.CB_Move4.Name = "CB_Move4"; - this.CB_Move4.Size = new System.Drawing.Size(121, 21); - this.CB_Move4.TabIndex = 2; - // - // CB_Move2 - // - this.CB_Move2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; - this.CB_Move2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Move2.FormattingEnabled = true; - this.CB_Move2.Location = new System.Drawing.Point(40, 38); - this.CB_Move2.Margin = new System.Windows.Forms.Padding(0); - this.CB_Move2.Name = "CB_Move2"; - this.CB_Move2.Size = new System.Drawing.Size(121, 21); - this.CB_Move2.TabIndex = 1; - // - // CB_Move3 - // - this.CB_Move3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend; - this.CB_Move3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Move3.FormattingEnabled = true; - this.CB_Move3.Location = new System.Drawing.Point(40, 60); - this.CB_Move3.Margin = new System.Windows.Forms.Padding(0); - this.CB_Move3.Name = "CB_Move3"; - this.CB_Move3.Size = new System.Drawing.Size(121, 21); - this.CB_Move3.TabIndex = 2; - // - // textBox3 - // - this.textBox3.Enabled = false; - this.textBox3.Location = new System.Drawing.Point(53, 66); - this.textBox3.Name = "textBox3"; - this.textBox3.Size = new System.Drawing.Size(255, 20); - this.textBox3.TabIndex = 453; - // - // textBox2 - // - this.textBox2.Enabled = false; - this.textBox2.Location = new System.Drawing.Point(53, 46); - this.textBox2.Name = "textBox2"; - this.textBox2.Size = new System.Drawing.Size(255, 20); - this.textBox2.TabIndex = 452; - // - // textBox1 - // - this.textBox1.Enabled = false; - this.textBox1.Location = new System.Drawing.Point(53, 26); - this.textBox1.Name = "textBox1"; - this.textBox1.Size = new System.Drawing.Size(255, 20); - this.textBox1.TabIndex = 451; - // - // NUD_AI - // - this.NUD_AI.Hexadecimal = true; - this.NUD_AI.Location = new System.Drawing.Point(261, 52); - this.NUD_AI.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.NUD_AI.Name = "NUD_AI"; - this.NUD_AI.Size = new System.Drawing.Size(47, 20); - this.NUD_AI.TabIndex = 58; - // - // L_TrainerName - // - this.L_TrainerName.AutoSize = true; - this.L_TrainerName.Location = new System.Drawing.Point(10, 11); - this.L_TrainerName.Name = "L_TrainerName"; - this.L_TrainerName.Size = new System.Drawing.Size(74, 13); - this.L_TrainerName.TabIndex = 450; - this.L_TrainerName.Text = "Trainer Name:"; - // - // TB_TrainerName - // - this.TB_TrainerName.Location = new System.Drawing.Point(90, 8); - this.TB_TrainerName.MaxLength = 50; - this.TB_TrainerName.Name = "TB_TrainerName"; - this.TB_TrainerName.Size = new System.Drawing.Size(116, 20); - this.TB_TrainerName.TabIndex = 35; - this.TB_TrainerName.TextChanged += new System.EventHandler(this.UpdateTrainerName); - // - // NUD_NumPoke - // - this.NUD_NumPoke.Location = new System.Drawing.Point(261, 9); - this.NUD_NumPoke.Maximum = new decimal(new int[] { - 6, - 0, - 0, - 0}); - this.NUD_NumPoke.Name = "NUD_NumPoke"; - this.NUD_NumPoke.Size = new System.Drawing.Size(47, 20); - this.NUD_NumPoke.TabIndex = 0; - this.NUD_NumPoke.Visible = false; - this.NUD_NumPoke.ValueChanged += new System.EventHandler(this.UpdateNumPokemon); - // - // TC_trdata - // - this.TC_trdata.Controls.Add(this.Tab_Trainer); - this.TC_trdata.Controls.Add(this.Tab_Advanced); - this.TC_trdata.Controls.Add(this.Tab_Misc); - this.TC_trdata.Location = new System.Drawing.Point(250, 13); - this.TC_trdata.Name = "TC_trdata"; - this.TC_trdata.SelectedIndex = 0; - this.TC_trdata.Size = new System.Drawing.Size(322, 225); - this.TC_trdata.TabIndex = 450; - // - // Tab_Trainer - // - this.Tab_Trainer.Controls.Add(this.CHK_Flag); - this.Tab_Trainer.Controls.Add(this.NUD_AI); - this.Tab_Trainer.Controls.Add(this.L_AI); - this.Tab_Trainer.Controls.Add(this.TB_TrainerName); - this.Tab_Trainer.Controls.Add(this.L_Trainer_Class); - this.Tab_Trainer.Controls.Add(this.CB_Item_1); - this.Tab_Trainer.Controls.Add(this.CB_Trainer_Class); - this.Tab_Trainer.Controls.Add(this.L_Money); - this.Tab_Trainer.Controls.Add(this.L_TrainerName); - this.Tab_Trainer.Controls.Add(this.CB_Money); - this.Tab_Trainer.Controls.Add(this.L_Item_2); - this.Tab_Trainer.Controls.Add(this.L_Item_4); - this.Tab_Trainer.Controls.Add(this.NUD_NumPoke); - this.Tab_Trainer.Controls.Add(this.L_numPokemon); - this.Tab_Trainer.Controls.Add(this.L_Item_1); - this.Tab_Trainer.Controls.Add(this.CB_Item_2); - this.Tab_Trainer.Controls.Add(this.CB_Item_3); - this.Tab_Trainer.Controls.Add(this.CB_Item_4); - this.Tab_Trainer.Controls.Add(this.L_Item_3); - this.Tab_Trainer.Location = new System.Drawing.Point(4, 22); - this.Tab_Trainer.Name = "Tab_Trainer"; - this.Tab_Trainer.Padding = new System.Windows.Forms.Padding(3); - this.Tab_Trainer.Size = new System.Drawing.Size(314, 199); - this.Tab_Trainer.TabIndex = 0; - this.Tab_Trainer.Text = "Trainer"; - this.Tab_Trainer.UseVisualStyleBackColor = true; - // - // CHK_Flag - // - this.CHK_Flag.AutoSize = true; - this.CHK_Flag.Location = new System.Drawing.Point(166, 53); - this.CHK_Flag.Name = "CHK_Flag"; - this.CHK_Flag.Size = new System.Drawing.Size(46, 17); - this.CHK_Flag.TabIndex = 451; - this.CHK_Flag.Text = "Flag"; - this.CHK_Flag.UseVisualStyleBackColor = true; - // - // Tab_Advanced - // - this.Tab_Advanced.Controls.Add(this.textBox3); - this.Tab_Advanced.Controls.Add(this.textBox1); - this.Tab_Advanced.Controls.Add(this.textBox2); - this.Tab_Advanced.Location = new System.Drawing.Point(4, 22); - this.Tab_Advanced.Name = "Tab_Advanced"; - this.Tab_Advanced.Padding = new System.Windows.Forms.Padding(3); - this.Tab_Advanced.Size = new System.Drawing.Size(314, 199); - this.Tab_Advanced.TabIndex = 1; - this.Tab_Advanced.Text = "Advanced"; - this.Tab_Advanced.UseVisualStyleBackColor = true; - // - // Tab_Misc - // - this.Tab_Misc.Controls.Add(this.TC_rand); - this.Tab_Misc.Controls.Add(this.B_Randomize); - this.Tab_Misc.Controls.Add(this.B_Dump); - this.Tab_Misc.Location = new System.Drawing.Point(4, 22); - this.Tab_Misc.Name = "Tab_Misc"; - this.Tab_Misc.Size = new System.Drawing.Size(314, 199); - this.Tab_Misc.TabIndex = 2; - this.Tab_Misc.Text = "Misc/Rand"; - this.Tab_Misc.UseVisualStyleBackColor = true; - // - // TC_rand - // - this.TC_rand.Controls.Add(this.Tab_PKM1); - this.TC_rand.Controls.Add(this.Tab_PKM2); - this.TC_rand.Controls.Add(this.Tab_Trainer1); - this.TC_rand.Location = new System.Drawing.Point(3, 33); - this.TC_rand.Name = "TC_rand"; - this.TC_rand.SelectedIndex = 0; - this.TC_rand.Size = new System.Drawing.Size(308, 163); - this.TC_rand.TabIndex = 448; - // - // Tab_PKM1 - // - this.Tab_PKM1.Controls.Add(this.L_ShinyPCT); - this.Tab_PKM1.Controls.Add(this.NUD_Shiny); - this.Tab_PKM1.Controls.Add(this.CHK_RandomShiny); - this.Tab_PKM1.Controls.Add(this.CHK_E); - this.Tab_PKM1.Controls.Add(this.CHK_L); - this.Tab_PKM1.Controls.Add(this.CHK_G7); - this.Tab_PKM1.Controls.Add(this.CHK_G6); - this.Tab_PKM1.Controls.Add(this.CHK_G5); - this.Tab_PKM1.Controls.Add(this.CHK_G4); - this.Tab_PKM1.Controls.Add(this.CHK_G3); - this.Tab_PKM1.Controls.Add(this.NUD_LevelBoost); - this.Tab_PKM1.Controls.Add(this.CHK_G2); - this.Tab_PKM1.Controls.Add(this.CHK_Level); - this.Tab_PKM1.Controls.Add(this.CHK_G1); - this.Tab_PKM1.Controls.Add(this.CHK_BST); - this.Tab_PKM1.Controls.Add(this.CHK_RandomPKM); - this.Tab_PKM1.Location = new System.Drawing.Point(4, 22); - this.Tab_PKM1.Name = "Tab_PKM1"; - this.Tab_PKM1.Padding = new System.Windows.Forms.Padding(3); - this.Tab_PKM1.Size = new System.Drawing.Size(300, 137); - this.Tab_PKM1.TabIndex = 0; - this.Tab_PKM1.Text = "Main"; - this.Tab_PKM1.UseVisualStyleBackColor = true; - // - // L_ShinyPCT - // - this.L_ShinyPCT.AutoSize = true; - this.L_ShinyPCT.Location = new System.Drawing.Point(276, 57); - this.L_ShinyPCT.Name = "L_ShinyPCT"; - this.L_ShinyPCT.Size = new System.Drawing.Size(15, 13); - this.L_ShinyPCT.TabIndex = 305; - this.L_ShinyPCT.Text = "%"; - // - // NUD_Shiny - // - this.NUD_Shiny.Location = new System.Drawing.Point(232, 53); - this.NUD_Shiny.Name = "NUD_Shiny"; - this.NUD_Shiny.Size = new System.Drawing.Size(43, 20); - this.NUD_Shiny.TabIndex = 304; - this.NUD_Shiny.Value = new decimal(new int[] { - 3, - 0, - 0, - 0}); - // - // CHK_RandomShiny - // - this.CHK_RandomShiny.AutoSize = true; - this.CHK_RandomShiny.Checked = true; - this.CHK_RandomShiny.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_RandomShiny.Location = new System.Drawing.Point(100, 54); - this.CHK_RandomShiny.Name = "CHK_RandomShiny"; - this.CHK_RandomShiny.Size = new System.Drawing.Size(103, 17); - this.CHK_RandomShiny.TabIndex = 303; - this.CHK_RandomShiny.Text = "Random Shinies"; - this.CHK_RandomShiny.UseVisualStyleBackColor = true; - this.CHK_RandomShiny.CheckedChanged += new System.EventHandler(this.CHK_RandomShiny_CheckedChanged); - // - // CHK_E - // - this.CHK_E.AutoSize = true; - this.CHK_E.Checked = true; - this.CHK_E.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_E.Location = new System.Drawing.Point(6, 117); - this.CHK_E.Name = "CHK_E"; - this.CHK_E.Size = new System.Drawing.Size(98, 17); - this.CHK_E.TabIndex = 296; - this.CHK_E.Text = "Event Legends"; - this.CHK_E.UseVisualStyleBackColor = true; - // - // CHK_L - // - this.CHK_L.AutoSize = true; - this.CHK_L.Checked = true; - this.CHK_L.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_L.Location = new System.Drawing.Point(6, 103); - this.CHK_L.Name = "CHK_L"; - this.CHK_L.Size = new System.Drawing.Size(98, 17); - this.CHK_L.TabIndex = 295; - this.CHK_L.Text = "Game Legends"; - this.CHK_L.UseVisualStyleBackColor = true; - // - // CHK_G7 - // - this.CHK_G7.AutoSize = true; - this.CHK_G7.Checked = true; - this.CHK_G7.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G7.Location = new System.Drawing.Point(6, 89); - this.CHK_G7.Name = "CHK_G7"; - this.CHK_G7.Size = new System.Drawing.Size(55, 17); - this.CHK_G7.TabIndex = 298; - this.CHK_G7.Text = "Gen 7"; - this.CHK_G7.UseVisualStyleBackColor = true; - // - // CHK_G6 - // - this.CHK_G6.AutoSize = true; - this.CHK_G6.Checked = true; - this.CHK_G6.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G6.Location = new System.Drawing.Point(6, 75); - this.CHK_G6.Name = "CHK_G6"; - this.CHK_G6.Size = new System.Drawing.Size(55, 17); - this.CHK_G6.TabIndex = 294; - this.CHK_G6.Text = "Gen 6"; - this.CHK_G6.UseVisualStyleBackColor = true; - // - // CHK_G5 - // - this.CHK_G5.AutoSize = true; - this.CHK_G5.Checked = true; - this.CHK_G5.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G5.Location = new System.Drawing.Point(6, 61); - this.CHK_G5.Name = "CHK_G5"; - this.CHK_G5.Size = new System.Drawing.Size(55, 17); - this.CHK_G5.TabIndex = 293; - this.CHK_G5.Text = "Gen 5"; - this.CHK_G5.UseVisualStyleBackColor = true; - // - // CHK_G4 - // - this.CHK_G4.AutoSize = true; - this.CHK_G4.Checked = true; - this.CHK_G4.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G4.Location = new System.Drawing.Point(6, 47); - this.CHK_G4.Name = "CHK_G4"; - this.CHK_G4.Size = new System.Drawing.Size(55, 17); - this.CHK_G4.TabIndex = 292; - this.CHK_G4.Text = "Gen 4"; - this.CHK_G4.UseVisualStyleBackColor = true; - // - // CHK_G3 - // - this.CHK_G3.AutoSize = true; - this.CHK_G3.Checked = true; - this.CHK_G3.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G3.Location = new System.Drawing.Point(6, 33); - this.CHK_G3.Name = "CHK_G3"; - this.CHK_G3.Size = new System.Drawing.Size(55, 17); - this.CHK_G3.TabIndex = 291; - this.CHK_G3.Text = "Gen 3"; - this.CHK_G3.UseVisualStyleBackColor = true; - // - // NUD_LevelBoost - // - this.NUD_LevelBoost.DecimalPlaces = 2; - this.NUD_LevelBoost.Enabled = false; - this.NUD_LevelBoost.Increment = new decimal(new int[] { - 5, - 0, - 0, - 131072}); - this.NUD_LevelBoost.Location = new System.Drawing.Point(232, 77); - this.NUD_LevelBoost.Maximum = new decimal(new int[] { - 3, - 0, - 0, - 0}); - this.NUD_LevelBoost.Minimum = new decimal(new int[] { - 1, - 0, - 0, - 65536}); - this.NUD_LevelBoost.Name = "NUD_LevelBoost"; - this.NUD_LevelBoost.Size = new System.Drawing.Size(43, 20); - this.NUD_LevelBoost.TabIndex = 301; - this.NUD_LevelBoost.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // CHK_G2 - // - this.CHK_G2.AutoSize = true; - this.CHK_G2.Checked = true; - this.CHK_G2.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G2.Location = new System.Drawing.Point(6, 19); - this.CHK_G2.Name = "CHK_G2"; - this.CHK_G2.Size = new System.Drawing.Size(55, 17); - this.CHK_G2.TabIndex = 290; - this.CHK_G2.Text = "Gen 2"; - this.CHK_G2.UseVisualStyleBackColor = true; - // - // CHK_Level - // - this.CHK_Level.AutoSize = true; - this.CHK_Level.Location = new System.Drawing.Point(100, 78); - this.CHK_Level.Name = "CHK_Level"; - this.CHK_Level.Size = new System.Drawing.Size(130, 17); - this.CHK_Level.TabIndex = 300; - this.CHK_Level.Text = "Multiply PKM Level by"; - this.CHK_Level.UseVisualStyleBackColor = true; - this.CHK_Level.CheckedChanged += new System.EventHandler(this.CHK_Level_CheckedChanged); - // - // CHK_G1 - // - this.CHK_G1.AutoSize = true; - this.CHK_G1.Checked = true; - this.CHK_G1.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G1.Location = new System.Drawing.Point(6, 5); - this.CHK_G1.Name = "CHK_G1"; - this.CHK_G1.Size = new System.Drawing.Size(55, 17); - this.CHK_G1.TabIndex = 289; - this.CHK_G1.Text = "Gen 1"; - this.CHK_G1.UseVisualStyleBackColor = true; - // - // CHK_BST - // - this.CHK_BST.AutoSize = true; - this.CHK_BST.Location = new System.Drawing.Point(100, 19); - this.CHK_BST.Name = "CHK_BST"; - this.CHK_BST.Size = new System.Drawing.Size(117, 17); - this.CHK_BST.TabIndex = 297; - this.CHK_BST.Text = "Randomize by BST"; - this.CHK_BST.UseVisualStyleBackColor = true; - // - // CHK_RandomPKM - // - this.CHK_RandomPKM.AutoSize = true; - this.CHK_RandomPKM.Checked = true; - this.CHK_RandomPKM.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_RandomPKM.Location = new System.Drawing.Point(100, 5); - this.CHK_RandomPKM.Name = "CHK_RandomPKM"; - this.CHK_RandomPKM.Size = new System.Drawing.Size(114, 17); - this.CHK_RandomPKM.TabIndex = 299; - this.CHK_RandomPKM.Text = "Random Pokémon"; - this.CHK_RandomPKM.UseVisualStyleBackColor = true; - this.CHK_RandomPKM.CheckedChanged += new System.EventHandler(this.CHK_RandomPKM_CheckedChanged); - // - // Tab_PKM2 - // - this.Tab_PKM2.Controls.Add(this.CHK_NoFixedDamage); - this.Tab_PKM2.Controls.Add(this.CHK_BeneficialEVs); - this.Tab_PKM2.Controls.Add(this.L_Moves); - this.Tab_PKM2.Controls.Add(this.CB_Moves); - this.Tab_PKM2.Controls.Add(this.CHK_MaxDiffPKM); - this.Tab_PKM2.Controls.Add(this.NUD_Damage); - this.Tab_PKM2.Controls.Add(this.CHK_RandomAbilities); - this.Tab_PKM2.Controls.Add(this.NUD_STAB); - this.Tab_PKM2.Controls.Add(this.CHK_Damage); - this.Tab_PKM2.Controls.Add(this.CHK_RandomItems); - this.Tab_PKM2.Controls.Add(this.CHK_STAB); - this.Tab_PKM2.Location = new System.Drawing.Point(4, 22); - this.Tab_PKM2.Name = "Tab_PKM2"; - this.Tab_PKM2.Padding = new System.Windows.Forms.Padding(3); - this.Tab_PKM2.Size = new System.Drawing.Size(300, 137); - this.Tab_PKM2.TabIndex = 1; - this.Tab_PKM2.Text = "Stats/Moves"; - this.Tab_PKM2.UseVisualStyleBackColor = true; - // - // CHK_NoFixedDamage - // - this.CHK_NoFixedDamage.AutoSize = true; - this.CHK_NoFixedDamage.Checked = true; - this.CHK_NoFixedDamage.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_NoFixedDamage.Location = new System.Drawing.Point(6, 31); - this.CHK_NoFixedDamage.Name = "CHK_NoFixedDamage"; - this.CHK_NoFixedDamage.Size = new System.Drawing.Size(281, 17); - this.CHK_NoFixedDamage.TabIndex = 340; - this.CHK_NoFixedDamage.Text = "No Fixed Damage Moves (Dragon Rage/Sonic Boom)"; - this.CHK_NoFixedDamage.UseVisualStyleBackColor = true; - // - // CHK_BeneficialEVs - // - this.CHK_BeneficialEVs.Anchor = System.Windows.Forms.AnchorStyles.Bottom; - this.CHK_BeneficialEVs.AutoSize = true; - this.CHK_BeneficialEVs.Checked = true; - this.CHK_BeneficialEVs.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_BeneficialEVs.Location = new System.Drawing.Point(201, 115); - this.CHK_BeneficialEVs.Name = "CHK_BeneficialEVs"; - this.CHK_BeneficialEVs.Size = new System.Drawing.Size(75, 17); - this.CHK_BeneficialEVs.TabIndex = 339; - this.CHK_BeneficialEVs.Text = "Smart EVs"; - this.CHK_BeneficialEVs.UseVisualStyleBackColor = true; - // - // L_Moves - // - this.L_Moves.Anchor = System.Windows.Forms.AnchorStyles.Bottom; - this.L_Moves.AutoSize = true; - this.L_Moves.Location = new System.Drawing.Point(6, 11); - this.L_Moves.Name = "L_Moves"; - this.L_Moves.Size = new System.Drawing.Size(42, 13); - this.L_Moves.TabIndex = 338; - this.L_Moves.Text = "Moves:"; - // - // CB_Moves - // - this.CB_Moves.Anchor = System.Windows.Forms.AnchorStyles.Bottom; - this.CB_Moves.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_Moves.FormattingEnabled = true; - this.CB_Moves.Items.AddRange(new object[] { - "Don\'t Modify", - "Randomize All", - "Use Levelup Only", - "High Powered Attacks"}); - this.CB_Moves.Location = new System.Drawing.Point(52, 8); - this.CB_Moves.Name = "CB_Moves"; - this.CB_Moves.Size = new System.Drawing.Size(121, 21); - this.CB_Moves.TabIndex = 337; - this.CB_Moves.SelectedIndexChanged += new System.EventHandler(this.CB_Moves_SelectedIndexChanged); - // - // CHK_MaxDiffPKM - // - this.CHK_MaxDiffPKM.Anchor = System.Windows.Forms.AnchorStyles.Bottom; - this.CHK_MaxDiffPKM.AutoSize = true; - this.CHK_MaxDiffPKM.Checked = true; - this.CHK_MaxDiffPKM.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_MaxDiffPKM.Location = new System.Drawing.Point(201, 99); - this.CHK_MaxDiffPKM.Name = "CHK_MaxDiffPKM"; - this.CHK_MaxDiffPKM.Size = new System.Drawing.Size(64, 17); - this.CHK_MaxDiffPKM.TabIndex = 332; - this.CHK_MaxDiffPKM.Text = "Max IVs"; - this.CHK_MaxDiffPKM.UseVisualStyleBackColor = true; - // - // NUD_Damage - // - this.NUD_Damage.Anchor = System.Windows.Forms.AnchorStyles.Bottom; - this.NUD_Damage.Location = new System.Drawing.Point(201, 49); - this.NUD_Damage.Maximum = new decimal(new int[] { - 4, - 0, - 0, - 0}); - this.NUD_Damage.Name = "NUD_Damage"; - this.NUD_Damage.Size = new System.Drawing.Size(35, 20); - this.NUD_Damage.TabIndex = 333; - this.NUD_Damage.Value = new decimal(new int[] { - 2, - 0, - 0, - 0}); - // - // CHK_RandomAbilities - // - this.CHK_RandomAbilities.Anchor = System.Windows.Forms.AnchorStyles.Bottom; - this.CHK_RandomAbilities.AutoSize = true; - this.CHK_RandomAbilities.Checked = true; - this.CHK_RandomAbilities.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_RandomAbilities.Location = new System.Drawing.Point(6, 115); - this.CHK_RandomAbilities.Name = "CHK_RandomAbilities"; - this.CHK_RandomAbilities.Size = new System.Drawing.Size(193, 17); - this.CHK_RandomAbilities.TabIndex = 331; - this.CHK_RandomAbilities.Text = "Random Abilities (Including Hidden)"; - this.CHK_RandomAbilities.UseVisualStyleBackColor = true; - // - // NUD_STAB - // - this.NUD_STAB.Anchor = System.Windows.Forms.AnchorStyles.Bottom; - this.NUD_STAB.Location = new System.Drawing.Point(201, 70); - this.NUD_STAB.Maximum = new decimal(new int[] { - 4, - 0, - 0, - 0}); - this.NUD_STAB.Name = "NUD_STAB"; - this.NUD_STAB.Size = new System.Drawing.Size(35, 20); - this.NUD_STAB.TabIndex = 336; - this.NUD_STAB.Value = new decimal(new int[] { - 2, - 0, - 0, - 0}); - // - // CHK_Damage - // - this.CHK_Damage.Anchor = System.Windows.Forms.AnchorStyles.Bottom; - this.CHK_Damage.AutoSize = true; - this.CHK_Damage.Checked = true; - this.CHK_Damage.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_Damage.Location = new System.Drawing.Point(6, 51); - this.CHK_Damage.Name = "CHK_Damage"; - this.CHK_Damage.Size = new System.Drawing.Size(192, 17); - this.CHK_Damage.TabIndex = 334; - this.CHK_Damage.Text = "Ensure at least # Damaging Moves"; - this.CHK_Damage.UseVisualStyleBackColor = true; - this.CHK_Damage.CheckedChanged += new System.EventHandler(this.CHK_Damage_CheckedChanged); - // - // CHK_RandomItems - // - this.CHK_RandomItems.Anchor = System.Windows.Forms.AnchorStyles.Bottom; - this.CHK_RandomItems.AutoSize = true; - this.CHK_RandomItems.Checked = true; - this.CHK_RandomItems.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_RandomItems.Location = new System.Drawing.Point(6, 99); - this.CHK_RandomItems.Name = "CHK_RandomItems"; - this.CHK_RandomItems.Size = new System.Drawing.Size(119, 17); - this.CHK_RandomItems.TabIndex = 330; - this.CHK_RandomItems.Text = "Random Held Items"; - this.CHK_RandomItems.UseVisualStyleBackColor = true; - // - // CHK_STAB - // - this.CHK_STAB.Anchor = System.Windows.Forms.AnchorStyles.Bottom; - this.CHK_STAB.AutoSize = true; - this.CHK_STAB.Checked = true; - this.CHK_STAB.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_STAB.Location = new System.Drawing.Point(6, 70); - this.CHK_STAB.Name = "CHK_STAB"; - this.CHK_STAB.Size = new System.Drawing.Size(172, 17); - this.CHK_STAB.TabIndex = 335; - this.CHK_STAB.Text = "Ensure at least # STAB Moves"; - this.CHK_STAB.UseVisualStyleBackColor = true; - this.CHK_STAB.CheckedChanged += new System.EventHandler(this.CHK_STAB_CheckedChanged); - // - // Tab_Trainer1 - // - this.Tab_Trainer1.Controls.Add(this.L_MinPKM); - this.Tab_Trainer1.Controls.Add(this.L_MaxPKM); - this.Tab_Trainer1.Controls.Add(this.NUD_RMin); - this.Tab_Trainer1.Controls.Add(this.NUD_RMax); - this.Tab_Trainer1.Controls.Add(this.CHK_RandomMegaForm); - this.Tab_Trainer1.Controls.Add(this.CHK_TypeTheme); - this.Tab_Trainer1.Controls.Add(this.CHK_IgnoreSpecialClass); - this.Tab_Trainer1.Controls.Add(this.CHK_RandomClass); - this.Tab_Trainer1.Location = new System.Drawing.Point(4, 22); - this.Tab_Trainer1.Name = "Tab_Trainer1"; - this.Tab_Trainer1.Size = new System.Drawing.Size(300, 137); - this.Tab_Trainer1.TabIndex = 2; - this.Tab_Trainer1.Text = "Trainer"; - this.Tab_Trainer1.UseVisualStyleBackColor = true; - // - // L_MinPKM - // - this.L_MinPKM.Location = new System.Drawing.Point(191, 6); - this.L_MinPKM.Name = "L_MinPKM"; - this.L_MinPKM.Size = new System.Drawing.Size(60, 20); - this.L_MinPKM.TabIndex = 338; - this.L_MinPKM.Text = "Min PKM:"; - this.L_MinPKM.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_MaxPKM - // - this.L_MaxPKM.Location = new System.Drawing.Point(191, 28); - this.L_MaxPKM.Name = "L_MaxPKM"; - this.L_MaxPKM.Size = new System.Drawing.Size(60, 20); - this.L_MaxPKM.TabIndex = 337; - this.L_MaxPKM.Text = "Max PKM:"; - this.L_MaxPKM.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_RMin - // - this.NUD_RMin.Location = new System.Drawing.Point(257, 8); - this.NUD_RMin.Maximum = new decimal(new int[] { - 6, - 0, - 0, - 0}); - this.NUD_RMin.Minimum = new decimal(new int[] { - 1, - 0, - 0, - 0}); - this.NUD_RMin.Name = "NUD_RMin"; - this.NUD_RMin.Size = new System.Drawing.Size(40, 20); - this.NUD_RMin.TabIndex = 336; - this.NUD_RMin.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // NUD_RMax - // - this.NUD_RMax.Location = new System.Drawing.Point(257, 30); - this.NUD_RMax.Maximum = new decimal(new int[] { - 6, - 0, - 0, - 0}); - this.NUD_RMax.Minimum = new decimal(new int[] { - 1, - 0, - 0, - 0}); - this.NUD_RMax.Name = "NUD_RMax"; - this.NUD_RMax.Size = new System.Drawing.Size(40, 20); - this.NUD_RMax.TabIndex = 335; - this.NUD_RMax.Value = new decimal(new int[] { - 6, - 0, - 0, - 0}); - // - // CHK_RandomMegaForm - // - this.CHK_RandomMegaForm.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.CHK_RandomMegaForm.AutoSize = true; - this.CHK_RandomMegaForm.Location = new System.Drawing.Point(6, 73); - this.CHK_RandomMegaForm.Name = "CHK_RandomMegaForm"; - this.CHK_RandomMegaForm.Size = new System.Drawing.Size(127, 17); - this.CHK_RandomMegaForm.TabIndex = 333; - this.CHK_RandomMegaForm.Text = "Random Mega Forms"; - this.CHK_RandomMegaForm.UseVisualStyleBackColor = true; - // - // CHK_TypeTheme - // - this.CHK_TypeTheme.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.CHK_TypeTheme.AutoSize = true; - this.CHK_TypeTheme.Checked = true; - this.CHK_TypeTheme.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_TypeTheme.Location = new System.Drawing.Point(6, 38); - this.CHK_TypeTheme.Name = "CHK_TypeTheme"; - this.CHK_TypeTheme.Size = new System.Drawing.Size(127, 17); - this.CHK_TypeTheme.TabIndex = 329; - this.CHK_TypeTheme.Text = "Type Theme Trainers"; - this.CHK_TypeTheme.UseVisualStyleBackColor = true; - // - // CHK_IgnoreSpecialClass - // - this.CHK_IgnoreSpecialClass.Anchor = System.Windows.Forms.AnchorStyles.Bottom; - this.CHK_IgnoreSpecialClass.AutoSize = true; - this.CHK_IgnoreSpecialClass.Checked = true; - this.CHK_IgnoreSpecialClass.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_IgnoreSpecialClass.Location = new System.Drawing.Point(6, 23); - this.CHK_IgnoreSpecialClass.Name = "CHK_IgnoreSpecialClass"; - this.CHK_IgnoreSpecialClass.Size = new System.Drawing.Size(133, 17); - this.CHK_IgnoreSpecialClass.TabIndex = 327; - this.CHK_IgnoreSpecialClass.Text = "Ignore Special Classes"; - this.CHK_IgnoreSpecialClass.UseVisualStyleBackColor = true; - // - // CHK_RandomClass - // - this.CHK_RandomClass.Anchor = System.Windows.Forms.AnchorStyles.Bottom; - this.CHK_RandomClass.AutoSize = true; - this.CHK_RandomClass.Checked = true; - this.CHK_RandomClass.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_RandomClass.Location = new System.Drawing.Point(6, 8); - this.CHK_RandomClass.Name = "CHK_RandomClass"; - this.CHK_RandomClass.Size = new System.Drawing.Size(141, 17); - this.CHK_RandomClass.TabIndex = 326; - this.CHK_RandomClass.Text = "Random Trainer Classes"; - this.CHK_RandomClass.UseVisualStyleBackColor = true; - this.CHK_RandomClass.CheckedChanged += new System.EventHandler(this.CHK_RandomClass_CheckedChanged); - // - // SMTE - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(580, 315); - this.Controls.Add(this.TC_trpoke); - this.Controls.Add(this.L_Team); - this.Controls.Add(this.PB_Team1); - this.Controls.Add(this.PB_Team2); - this.Controls.Add(this.PB_Team3); - this.Controls.Add(this.PB_Team4); - this.Controls.Add(this.PB_Team5); - this.Controls.Add(this.PB_Team6); - this.Controls.Add(this.CB_TrainerID); - this.Controls.Add(this.TC_trdata); - this.Name = "SMTE"; - this.Text = "Trainer Editor"; - ((System.ComponentModel.ISupportInitialize)(this.PB_Team1)).EndInit(); - this.mnuVSD.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.PB_Team2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_Team3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_Team4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_Team5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_Team6)).EndInit(); - this.TC_trpoke.ResumeLayout(false); - this.Tab_Main.ResumeLayout(false); - this.flowLayoutPanel2.ResumeLayout(false); - this.FLP_Species.ResumeLayout(false); - this.FLP_Form.ResumeLayout(false); - this.flowLayoutPanel3.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Level)).EndInit(); - this.flowLayoutPanel4.ResumeLayout(false); - this.flowLayoutPanel1.ResumeLayout(false); - this.flowLayoutPanel5.ResumeLayout(false); - this.flowLayoutPanel6.ResumeLayout(false); - this.flowLayoutPanel6.PerformLayout(); - this.flowLayoutPanel7.ResumeLayout(false); - this.Tab_Stats.ResumeLayout(false); - this.FLP_Stats.ResumeLayout(false); - this.FLP_StatHeader.ResumeLayout(false); - this.FLP_StatsHeaderRight.ResumeLayout(false); - this.FLP_HP.ResumeLayout(false); - this.FLP_HP.PerformLayout(); - this.FLP_Atk.ResumeLayout(false); - this.FLP_Atk.PerformLayout(); - this.FLP_Def.ResumeLayout(false); - this.FLP_Def.PerformLayout(); - this.FLP_SpA.ResumeLayout(false); - this.FLP_SpA.PerformLayout(); - this.FLP_SpD.ResumeLayout(false); - this.FLP_SpD.PerformLayout(); - this.FLP_Spe.ResumeLayout(false); - this.FLP_Spe.PerformLayout(); - this.FLP_StatsTotal.ResumeLayout(false); - this.FLP_StatsTotal.PerformLayout(); - this.FLP_HPType.ResumeLayout(false); - this.Tab_Moves.ResumeLayout(false); - this.GB_Moves.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.NUD_AI)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_NumPoke)).EndInit(); - this.TC_trdata.ResumeLayout(false); - this.Tab_Trainer.ResumeLayout(false); - this.Tab_Trainer.PerformLayout(); - this.Tab_Advanced.ResumeLayout(false); - this.Tab_Advanced.PerformLayout(); - this.Tab_Misc.ResumeLayout(false); - this.TC_rand.ResumeLayout(false); - this.Tab_PKM1.ResumeLayout(false); - this.Tab_PKM1.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Shiny)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_LevelBoost)).EndInit(); - this.Tab_PKM2.ResumeLayout(false); - this.Tab_PKM2.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Damage)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_STAB)).EndInit(); - this.Tab_Trainer1.ResumeLayout(false); - this.Tab_Trainer1.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_RMin)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_RMax)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - private System.Windows.Forms.ComboBox CB_TrainerID; - private System.Windows.Forms.Label L_AI; - private System.Windows.Forms.Label L_Money; - private System.Windows.Forms.ComboBox CB_Money; - private System.Windows.Forms.Label L_Trainer_Class; - private System.Windows.Forms.ComboBox CB_Trainer_Class; - private System.Windows.Forms.Label L_Item_4; - private System.Windows.Forms.ComboBox CB_Item_4; - private System.Windows.Forms.Label L_Item_3; - private System.Windows.Forms.ComboBox CB_Item_3; - private System.Windows.Forms.Label L_Item_2; - private System.Windows.Forms.ComboBox CB_Item_2; - private System.Windows.Forms.Label L_Item_1; - private System.Windows.Forms.ComboBox CB_Item_1; - private System.Windows.Forms.Label L_numPokemon; - private System.Windows.Forms.Label L_Team; - private System.Windows.Forms.PictureBox PB_Team1; - private System.Windows.Forms.PictureBox PB_Team2; - private System.Windows.Forms.PictureBox PB_Team3; - private System.Windows.Forms.PictureBox PB_Team4; - private System.Windows.Forms.PictureBox PB_Team5; - private System.Windows.Forms.PictureBox PB_Team6; - private System.Windows.Forms.Button B_Randomize; - private System.Windows.Forms.Button B_Dump; - private System.Windows.Forms.TabControl TC_trpoke; - private System.Windows.Forms.TabPage Tab_Main; - private System.Windows.Forms.TabPage Tab_Moves; - private System.Windows.Forms.Label L_Species; - private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel2; - private System.Windows.Forms.FlowLayoutPanel FLP_Species; - private System.Windows.Forms.ComboBox CB_Species; - private System.Windows.Forms.FlowLayoutPanel FLP_Form; - private System.Windows.Forms.Label L_Forme; - private System.Windows.Forms.ComboBox CB_Forme; - private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel3; - private System.Windows.Forms.Label L_Level; - private System.Windows.Forms.NumericUpDown NUD_Level; - private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel4; - private System.Windows.Forms.Label L_Ability; - private System.Windows.Forms.ComboBox CB_Ability; - private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel1; - private System.Windows.Forms.Label L_Item; - private System.Windows.Forms.ComboBox CB_Item; - private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel5; - private System.Windows.Forms.Label L_Nature; - private System.Windows.Forms.ComboBox CB_Nature; - private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel6; - private System.Windows.Forms.Label L_Misc; - private System.Windows.Forms.CheckBox CHK_Shiny; - private System.Windows.Forms.ComboBox CB_Move1; - private System.Windows.Forms.ComboBox CB_Move2; - private System.Windows.Forms.ComboBox CB_Move4; - private System.Windows.Forms.ComboBox CB_Move3; - private System.Windows.Forms.GroupBox GB_Moves; - private System.Windows.Forms.NumericUpDown NUD_NumPoke; - private System.Windows.Forms.NumericUpDown NUD_AI; - private System.Windows.Forms.TextBox TB_TrainerName; - private System.Windows.Forms.Label L_TrainerName; - private System.Windows.Forms.FlowLayoutPanel flowLayoutPanel7; - private System.Windows.Forms.Label L_Gender; - private System.Windows.Forms.ComboBox CB_Gender; - private System.Windows.Forms.TextBox textBox2; - private System.Windows.Forms.TextBox textBox1; - private System.Windows.Forms.TextBox textBox3; - private System.Windows.Forms.FlowLayoutPanel FLP_Stats; - private System.Windows.Forms.FlowLayoutPanel FLP_StatHeader; - private System.Windows.Forms.FlowLayoutPanel FLP_StatsHeaderRight; - private System.Windows.Forms.Label Label_IVs; - private System.Windows.Forms.Label Label_EVs; - private System.Windows.Forms.Label Label_Stats; - private System.Windows.Forms.FlowLayoutPanel FLP_HP; - private System.Windows.Forms.Label Label_HP; - private System.Windows.Forms.FlowLayoutPanel FLP_Atk; - private System.Windows.Forms.Label Label_ATK; - private System.Windows.Forms.FlowLayoutPanel FLP_Def; - private System.Windows.Forms.Label Label_DEF; - private System.Windows.Forms.FlowLayoutPanel FLP_SpA; - private System.Windows.Forms.FlowLayoutPanel FLP_SpD; - private System.Windows.Forms.Label Label_SPD; - private System.Windows.Forms.MaskedTextBox TB_SPDIV; - private System.Windows.Forms.MaskedTextBox TB_SPDEV; - private System.Windows.Forms.MaskedTextBox Stat_SPD; - private System.Windows.Forms.FlowLayoutPanel FLP_Spe; - private System.Windows.Forms.Label Label_SPE; - private System.Windows.Forms.FlowLayoutPanel FLP_StatsTotal; - private System.Windows.Forms.Label Label_Total; - private System.Windows.Forms.FlowLayoutPanel FLP_HPType; - private System.Windows.Forms.Label Label_HiddenPowerPrefix; - private System.Windows.Forms.ComboBox CB_HPType; - private System.Windows.Forms.TextBox TB_EVTotal; - private System.Windows.Forms.TextBox TB_IVTotal; - private System.Windows.Forms.MaskedTextBox Stat_SPE; - private System.Windows.Forms.MaskedTextBox TB_SPEEV; - private System.Windows.Forms.MaskedTextBox TB_SPEIV; - private System.Windows.Forms.MaskedTextBox Stat_DEF; - private System.Windows.Forms.MaskedTextBox TB_DEFEV; - private System.Windows.Forms.MaskedTextBox TB_DEFIV; - private System.Windows.Forms.MaskedTextBox Stat_ATK; - private System.Windows.Forms.MaskedTextBox TB_ATKEV; - private System.Windows.Forms.MaskedTextBox TB_ATKIV; - private System.Windows.Forms.MaskedTextBox Stat_HP; - private System.Windows.Forms.MaskedTextBox TB_HPEV; - private System.Windows.Forms.MaskedTextBox TB_HPIV; - private System.Windows.Forms.MaskedTextBox Stat_SPA; - private System.Windows.Forms.MaskedTextBox TB_SPAEV; - private System.Windows.Forms.MaskedTextBox TB_SPAIV; - private System.Windows.Forms.Label Label_SPA; - private System.Windows.Forms.TabPage Tab_Stats; - private System.Windows.Forms.Button B_HighAttack; - private System.Windows.Forms.Button B_CurrentAttack; - private System.Windows.Forms.ContextMenuStrip mnuVSD; - private System.Windows.Forms.ToolStripMenuItem mnuView; - private System.Windows.Forms.ToolStripMenuItem mnuSet; - private System.Windows.Forms.ToolStripMenuItem mnuDelete; - private System.Windows.Forms.Button B_Clear; - private System.Windows.Forms.TabControl TC_trdata; - private System.Windows.Forms.TabPage Tab_Trainer; - private System.Windows.Forms.TabPage Tab_Advanced; - private System.Windows.Forms.TabPage Tab_Misc; - private System.Windows.Forms.CheckBox CHK_RandomClass; - private System.Windows.Forms.CheckBox CHK_IgnoreSpecialClass; - private System.Windows.Forms.CheckBox CHK_TypeTheme; - private System.Windows.Forms.CheckBox CHK_RandomMegaForm; - private System.Windows.Forms.NumericUpDown NUD_RMax; - private System.Windows.Forms.NumericUpDown NUD_RMin; - private System.Windows.Forms.Label L_MaxPKM; - private System.Windows.Forms.Label L_MinPKM; - private System.Windows.Forms.TabPage Tab_Trainer1; - private System.Windows.Forms.CheckBox CHK_STAB; - private System.Windows.Forms.CheckBox CHK_RandomItems; - private System.Windows.Forms.NumericUpDown NUD_STAB; - private System.Windows.Forms.CheckBox CHK_RandomAbilities; - private System.Windows.Forms.CheckBox CHK_MaxDiffPKM; - private System.Windows.Forms.ComboBox CB_Moves; - private System.Windows.Forms.Label L_Moves; - private System.Windows.Forms.CheckBox CHK_BeneficialEVs; - private System.Windows.Forms.TabPage Tab_PKM2; - private System.Windows.Forms.CheckBox CHK_RandomPKM; - private System.Windows.Forms.CheckBox CHK_BST; - private System.Windows.Forms.CheckBox CHK_G1; - private System.Windows.Forms.CheckBox CHK_Level; - private System.Windows.Forms.CheckBox CHK_G2; - private System.Windows.Forms.NumericUpDown NUD_LevelBoost; - private System.Windows.Forms.CheckBox CHK_G3; - private System.Windows.Forms.CheckBox CHK_G4; - private System.Windows.Forms.CheckBox CHK_G5; - private System.Windows.Forms.CheckBox CHK_G6; - private System.Windows.Forms.CheckBox CHK_G7; - private System.Windows.Forms.CheckBox CHK_L; - private System.Windows.Forms.CheckBox CHK_E; - private System.Windows.Forms.CheckBox CHK_RandomShiny; - private System.Windows.Forms.NumericUpDown NUD_Shiny; - private System.Windows.Forms.Label L_ShinyPCT; - private System.Windows.Forms.TabPage Tab_PKM1; - private System.Windows.Forms.TabControl TC_rand; - private System.Windows.Forms.CheckBox CHK_Damage; - private System.Windows.Forms.NumericUpDown NUD_Damage; - private System.Windows.Forms.CheckBox CHK_Flag; - private System.Windows.Forms.CheckBox CHK_NoFixedDamage; - } -} - diff --git a/pk3DS/Subforms/Gen7/SMTE.cs b/pk3DS/Subforms/Gen7/SMTE.cs deleted file mode 100644 index 4f8871ff35..0000000000 --- a/pk3DS/Subforms/Gen7/SMTE.cs +++ /dev/null @@ -1,754 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Drawing; -using System.IO; -using System.Linq; -using System.Media; -using System.Text; -using System.Windows.Forms; - -using pk3DS.Core; -using pk3DS.Core.Randomizers; -using pk3DS.Core.Structures; - -namespace pk3DS -{ - public partial class SMTE : Form - { - private readonly LearnsetRandomizer learn = new LearnsetRandomizer(Main.Config, Main.Config.Learnsets); - private readonly trdata7[] Trainers; - private string[][] AltForms; - private int index = -1; - private PictureBox[] pba; - - private readonly byte[][] trclass, trdata, trpoke; - private readonly string[] abilitylist = Main.Config.getText(TextName.AbilityNames); - private readonly string[] movelist = Main.Config.getText(TextName.MoveNames); - private readonly string[] itemlist = Main.Config.getText(TextName.ItemNames); - private readonly string[] specieslist = Main.Config.getText(TextName.SpeciesNames); - private readonly string[] types = Main.Config.getText(TextName.Types); - private readonly string[] natures = Main.Config.getText(TextName.Natures); - private readonly string[] forms = Enumerable.Range(0, 1000).Select(i => i.ToString("000")).ToArray(); - private readonly string[] trName = Main.Config.getText(TextName.TrainerNames); - private readonly string[] trClass = Main.Config.getText(TextName.TrainerClasses); - private readonly TextData trText = Main.Config.getTextData(TextName.TrainerText); - private readonly TextData TrainerNames; - - public SMTE(byte[][] trc, byte[][] trd, byte[][] trp) - { - trclass = trc; - trdata = trd; - trpoke = trp; - TrainerNames = new TextData(trName); - InitializeComponent(); - - mnuView.Click += ClickView; - mnuSet.Click += ClickSet; - mnuDelete.Click += ClickDelete; - Trainers = new trdata7[trdata.Length]; - Setup(); - foreach (var pb in pba) - pb.Click += ClickSlot; - - CB_TrainerID.SelectedIndex = 0; - CB_Moves.SelectedIndex = 0; - } - - private int GetSlot(object sender) - { - var send = ((sender as ToolStripItem)?.Owner as ContextMenuStrip)?.SourceControl ?? sender as PictureBox; - return Array.IndexOf(pba, send); - } - private void ClickSlot(object sender, EventArgs e) - { - switch (ModifierKeys) - { - case Keys.Control: ClickView(sender, e); break; - case Keys.Shift: ClickSet(sender, e); break; - case Keys.Alt: ClickDelete(sender, e); break; - } - } - private void ClickView(object sender, EventArgs e) - { - int slot = GetSlot(sender); - if (pba[slot].Image == null) - { SystemSounds.Exclamation.Play(); return; } - - // Load the PKM - var pk = Trainers[index].Pokemon[slot]; - if (pk.Species != 0) - { - try { PopulateFieldsTP7(pk); } - catch { } - // Visual to display what slot is currently loaded. - GetSlotColor(slot, Properties.Resources.slotView); - } - else - SystemSounds.Exclamation.Play(); - } - private void ClickSet(object sender, EventArgs e) - { - int slot = GetSlot(sender); - if (CB_Species.SelectedIndex == 0) - { WinFormsUtil.Alert("Can't set empty slot."); return; } - - var pk = PrepareTP7(); - var tr = Trainers[index]; - if (slot < tr.NumPokemon) - tr.Pokemon[slot] = pk; - else - { - tr.Pokemon.Add(pk); - slot = tr.Pokemon.Count - 1; - Trainers[index].NumPokemon = (int)++NUD_NumPoke.Value; - } - - GetQuickFiller(pba[slot], pk); - GetSlotColor(slot, Properties.Resources.slotSet); - } - private void ClickDelete(object sender, EventArgs e) - { - int slot = GetSlot(sender); - - if (slot < Trainers[index].NumPokemon) - { - Trainers[index].Pokemon.RemoveAt(slot); - Trainers[index].NumPokemon = (int)--NUD_NumPoke.Value; - } - - PopulateTeam(Trainers[index]); - GetSlotColor(slot, Properties.Resources.slotDel); - } - - private void PopulateTeam(trdata7 tr) - { - for (int i = 0; i < tr.NumPokemon; i++) - GetQuickFiller(pba[i], tr.Pokemon[i]); - for (int i = tr.NumPokemon; i < 6; i++) - pba[i].Image = null; - } - - private void GetSlotColor(int slot, Image color) - { - foreach (PictureBox t in pba) - t.BackgroundImage = null; - - pba[slot].BackgroundImage = color; - } - private static void GetQuickFiller(PictureBox pb, trpoke7 pk) - { - Bitmap rawImg = WinFormsUtil.getSprite(pk.Species, pk.Form, pk.Gender, pk.Item, Main.Config, pk.Shiny); - pb.Image = WinFormsUtil.scaleImage(rawImg, 2); - } - - // Top Level Functions - private void RefreshFormAbility(object sender, EventArgs e) - { - if (index < 0) - return; - pkm.Form = CB_Forme.SelectedIndex; - RefreshPKMSlotAbility(); - } - private void RefreshSpeciesAbility(object sender, EventArgs e) - { - if (index < 0) - return; - pkm.Species = (ushort)CB_Species.SelectedIndex; - FormUtil.setForms(CB_Species.SelectedIndex, CB_Forme, AltForms); - RefreshPKMSlotAbility(); - } - private void RefreshPKMSlotAbility() - { - int previousAbility = CB_Ability.SelectedIndex; - - int species = CB_Species.SelectedIndex; - int formnum = CB_Forme.SelectedIndex; - species = Main.SpeciesStat[species].FormeIndex(species, formnum); - - CB_Ability.Items.Clear(); - CB_Ability.Items.Add("Any (1 or 2)"); - CB_Ability.Items.Add(abilitylist[Main.SpeciesStat[species].Abilities[0]] + " (1)"); - CB_Ability.Items.Add(abilitylist[Main.SpeciesStat[species].Abilities[1]] + " (2)"); - CB_Ability.Items.Add(abilitylist[Main.SpeciesStat[species].Abilities[2]] + " (H)"); - - CB_Ability.SelectedIndex = previousAbility; - } - - private static string GetEntryTitle(string str, int i) => $"{str} - {i:000}"; - private void Setup() - { - AltForms = forms.Select(f => Enumerable.Range(0, 100).Select(i => i.ToString()).ToArray()).ToArray(); - CB_TrainerID.Items.Clear(); - for (int i = 0; i < trdata.Length; i++) - CB_TrainerID.Items.Add(GetEntryTitle(trName[i] ?? "UNKNOWN", i)); - - CB_Trainer_Class.Items.Clear(); - for (int i = 0; i < trClass.Length; i++) - CB_Trainer_Class.Items.Add(GetEntryTitle(trClass[i], i)); - - Trainers[0] = new trdata7(); - - for (int i = 1; i < trdata.Length; i++) - { - Trainers[i] = new trdata7(trdata[i], trpoke[i]) - { - Name = trName[i], - ID = i - }; - } - - specieslist[0] = "---"; - abilitylist[0] = itemlist[0] = movelist[0] = "(None)"; - pba = new[] { PB_Team1, PB_Team2, PB_Team3, PB_Team4, PB_Team5, PB_Team6 }; - - CB_Species.Items.Clear(); - foreach (string s in specieslist) - CB_Species.Items.Add(s); - - CB_Move1.Items.Clear(); - CB_Move2.Items.Clear(); - CB_Move3.Items.Clear(); - CB_Move4.Items.Clear(); - foreach (string s in movelist) - { - CB_Move1.Items.Add(s); - CB_Move2.Items.Add(s); - CB_Move3.Items.Add(s); - CB_Move4.Items.Add(s); - } - - CB_HPType.DataSource = types.Skip(1).Take(16).ToArray(); - CB_HPType.SelectedIndex = 0; - - CB_Nature.Items.Clear(); - foreach (string s in natures) - CB_Nature.Items.Add(s); - - CB_Item.Items.Clear(); - foreach (string s in itemlist) - CB_Item.Items.Add(s); - - CB_Gender.Items.Clear(); - CB_Gender.Items.Add("- / G/Random"); - CB_Gender.Items.Add("♂ / M"); - CB_Gender.Items.Add("♀ / F"); - - CB_Forme.Items.Add(""); - - CB_Species.SelectedIndex = 0; - CB_Item_1.Items.Clear(); - CB_Item_2.Items.Clear(); - CB_Item_3.Items.Clear(); - CB_Item_4.Items.Clear(); - foreach (string s in itemlist) - { - CB_Item_1.Items.Add(s); - CB_Item_2.Items.Add(s); - CB_Item_3.Items.Add(s); - CB_Item_4.Items.Add(s); - } - - CB_Money.Items.Clear(); - for (int i = 0; i < 256; i++) - { CB_Money.Items.Add(i.ToString()); } - - CB_TrainerID.SelectedIndex = 0; - index = 0; - pkm = new trpoke7(); - PopulateFieldsTP7(pkm); - } - - private void ChangeTrainerIndex(object sender, EventArgs e) - { - SaveEntry(); - LoadEntry(); - if (TC_trdata.SelectedIndex == TC_trdata.TabCount - 1) // last - TC_trdata.SelectedIndex = 0; - } - private void SaveEntry() - { - if (index < 0) - return; - var tr = Trainers[index]; - PrepareTR7(tr); - SaveData(tr, index); - TrainerNames[index] = TB_TrainerName.Text; - } - private void SaveData(trdata7 tr, int i) - { - tr.Write(out byte[] trd, out byte[] trp); - trdata[i] = trd; - trpoke[i] = trp; - } - private void LoadEntry() - { - index = CB_TrainerID.SelectedIndex; - var tr = Trainers[index]; - - loading = true; - TB_TrainerName.Text = TrainerNames[index]; - - PopulateFieldsTD7(tr); - loading = false; - } - - private bool loading; - private trpoke7 pkm; - private void PopulateFieldsTP7(trpoke7 pk) - { - pkm = pk.Clone(); - - int spec = pkm.Species, form = pkm.Form; - - CB_Species.SelectedIndex = spec; - CB_Forme.SelectedIndex = form; - CB_Ability.SelectedIndex = pkm.Ability; - CB_Item.SelectedIndex = pkm.Item; - CHK_Shiny.Checked = pkm.Shiny; - CB_Gender.SelectedIndex = pkm.Gender; - - CB_Move1.SelectedIndex = pkm.Move1; - CB_Move2.SelectedIndex = pkm.Move2; - CB_Move3.SelectedIndex = pkm.Move3; - CB_Move4.SelectedIndex = pkm.Move4; - - updatingStats = true; - CB_Nature.SelectedIndex = pkm.Nature; - NUD_Level.Value = Math.Min(NUD_Level.Maximum, pkm.Level); - - TB_HPIV.Text = pkm.IV_HP.ToString(); - TB_ATKIV.Text = pkm.IV_ATK.ToString(); - TB_DEFIV.Text = pkm.IV_DEF.ToString(); - TB_SPAIV.Text = pkm.IV_SPA.ToString(); - TB_SPEIV.Text = pkm.IV_SPE.ToString(); - TB_SPDIV.Text = pkm.IV_SPD.ToString(); - - TB_HPEV.Text = pkm.EV_HP.ToString(); - TB_ATKEV.Text = pkm.EV_ATK.ToString(); - TB_DEFEV.Text = pkm.EV_DEF.ToString(); - TB_SPAEV.Text = pkm.EV_SPA.ToString(); - TB_SPEEV.Text = pkm.EV_SPE.ToString(); - TB_SPDEV.Text = pkm.EV_SPD.ToString(); - updatingStats = false; - UpdateStats(null, null); - } - private trpoke7 PrepareTP7() - { - var pk = pkm.Clone(); - pk.Species = CB_Species.SelectedIndex; - pk.Form = CB_Forme.SelectedIndex; - pk.Level = (byte)NUD_Level.Value; - pk.Ability = CB_Ability.SelectedIndex; - pk.Item = CB_Item.SelectedIndex; - pk.Shiny = CHK_Shiny.Checked; - pk.Nature = CB_Nature.SelectedIndex; - pk.Gender = CB_Gender.SelectedIndex; - - pk.Move1 = CB_Move1.SelectedIndex; - pk.Move2 = CB_Move2.SelectedIndex; - pk.Move3 = CB_Move3.SelectedIndex; - pk.Move4 = CB_Move4.SelectedIndex; - - pk.IV_HP = WinFormsUtil.ToInt32(TB_HPIV); - pk.IV_ATK = WinFormsUtil.ToInt32(TB_ATKIV); - pk.IV_DEF = WinFormsUtil.ToInt32(TB_DEFIV); - pk.IV_SPA = WinFormsUtil.ToInt32(TB_SPAIV); - pk.IV_SPE = WinFormsUtil.ToInt32(TB_SPEIV); - pk.IV_SPD = WinFormsUtil.ToInt32(TB_SPDIV); - - pk.EV_HP = WinFormsUtil.ToInt32(TB_HPEV); - pk.EV_ATK = WinFormsUtil.ToInt32(TB_ATKEV); - pk.EV_DEF = WinFormsUtil.ToInt32(TB_DEFEV); - pk.EV_SPA = WinFormsUtil.ToInt32(TB_SPAEV); - pk.EV_SPE = WinFormsUtil.ToInt32(TB_SPEEV); - pk.EV_SPD = WinFormsUtil.ToInt32(TB_SPDEV); - - return pk; - } - private void PopulateFieldsTD7(trdata7 tr) - { - // Load Trainer Data - CB_Trainer_Class.SelectedIndex = tr.TrainerClass; - NUD_NumPoke.Value = tr.NumPokemon; - CB_Item_1.SelectedIndex = tr.Item1; - CB_Item_2.SelectedIndex = tr.Item2; - CB_Item_3.SelectedIndex = tr.Item3; - CB_Item_4.SelectedIndex = tr.Item4; - CB_Money.SelectedIndex = tr.Money; - NUD_AI.Value = tr.AI; - CHK_Flag.Checked = tr.Flag; - PopulateTeam(tr); - } - private void PrepareTR7(trdata7 tr) - { - tr.TrainerClass = (byte)CB_Trainer_Class.SelectedIndex; - tr.NumPokemon = (byte)NUD_NumPoke.Value; - tr.Item1 = CB_Item_1.SelectedIndex; - tr.Item2 = CB_Item_2.SelectedIndex; - tr.Item3 = CB_Item_3.SelectedIndex; - tr.Item4 = CB_Item_4.SelectedIndex; - tr.Money = CB_Money.SelectedIndex; - tr.AI = (int)NUD_AI.Value; - tr.Flag = CHK_Flag.Checked; - } - - protected override void OnFormClosing(FormClosingEventArgs e) - { - SaveEntry(); - if (TrainerNames.Modified) - Main.Config.setText(TextName.TrainerNames, TrainerNames.Lines); - base.OnFormClosing(e); - } - - // Dumping - private void DumpTxt(object sender, EventArgs e) - { - using (var sfd = new SaveFileDialog()) - { - sfd.FileName = "Trainers.txt"; - if (sfd.ShowDialog() != DialogResult.OK) - return; - var sb = new StringBuilder(); - foreach (var Trainer in Trainers) - sb.Append(GetTrainerString(Trainer)); - File.WriteAllText(sfd.FileName, sb.ToString()); - } - } - private string GetTrainerString(trdata7 tr) - { - var sb = new StringBuilder(); - sb.AppendLine("======"); - sb.AppendLine($"{tr.ID} - {trClass[tr.TrainerClass]} {tr.Name}"); - sb.AppendLine("======"); - sb.AppendLine($"Pokemon: {tr.NumPokemon}"); - for (int i = 0; i < tr.NumPokemon; i++) - { - if (tr.Pokemon[i].Shiny) - sb.Append("Shiny "); - sb.Append(specieslist[tr.Pokemon[i].Species]); - sb.Append($" (Lv. {tr.Pokemon[i].Level}) "); - if (tr.Pokemon[i].Item > 0) - sb.Append($"@{itemlist[tr.Pokemon[i].Item]}"); - - if (tr.Pokemon[i].Nature != 0) - sb.Append($" (Nature: {natures[tr.Pokemon[i].Nature]})"); - - sb.Append($" (Moves: {string.Join("/", tr.Pokemon[i].Moves.Select(m => m == 0 ? "(None)" : movelist[m]))})"); - sb.Append($" IVs: {string.Join("/", tr.Pokemon[i].IVs)}"); - sb.Append($" EVs: {string.Join("/", tr.Pokemon[i].EVs)}"); - sb.AppendLine(); - } - return sb.ToString(); - } - - private void UpdateNumPokemon(object sender, EventArgs e) - { - if (index < 0) - return; - Trainers[index].NumPokemon = (int) NUD_NumPoke.Value; - } - private void UpdateTrainerName(object sender, EventArgs e) - { - if (loading) - return; - string str = TB_TrainerName.Text; - CB_TrainerID.Items[index] = GetEntryTitle(str, index); - } - - private static bool updatingStats; - - private void UpdateStats(object sender, EventArgs e) - { - if (updatingStats) - return; - var tb_iv = new[] { TB_HPIV, TB_ATKIV, TB_DEFIV, TB_SPEIV, TB_SPAIV, TB_SPDIV }; - var tb_ev = new[] { TB_HPEV, TB_ATKEV, TB_DEFEV, TB_SPEEV, TB_SPAEV, TB_SPDEV }; - for (int i = 0; i < 6; i++) - { - updatingStats = true; - if (WinFormsUtil.ToInt32(tb_iv[i]) > 31) - tb_iv[i].Text = "31"; - if (WinFormsUtil.ToInt32(tb_ev[i]) > 255) - tb_ev[i].Text = "255"; - updatingStats = false; - } - - int species = CB_Species.SelectedIndex; - species = Main.SpeciesStat[species].FormeIndex(species, CB_Forme.SelectedIndex); - var p = Main.SpeciesStat[species]; - int level = (int)NUD_Level.Value; - int Nature = CB_Nature.SelectedIndex; - - ushort[] Stats = new ushort[6]; - Stats[0] = (ushort)(p.HP == 1 ? 1 : (Util.ToInt32(TB_HPIV.Text) + 2 * p.HP + Util.ToInt32(TB_HPEV.Text) / 4 + 100) * level / 100 + 10); - Stats[1] = (ushort)((Util.ToInt32(TB_ATKIV.Text) + 2 * p.ATK + Util.ToInt32(TB_ATKEV.Text) / 4) * level / 100 + 5); - Stats[2] = (ushort)((Util.ToInt32(TB_DEFIV.Text) + 2 * p.DEF + Util.ToInt32(TB_DEFEV.Text) / 4) * level / 100 + 5); - Stats[4] = (ushort)((Util.ToInt32(TB_SPAIV.Text) + 2 * p.SPA + Util.ToInt32(TB_SPAEV.Text) / 4) * level / 100 + 5); - Stats[5] = (ushort)((Util.ToInt32(TB_SPDIV.Text) + 2 * p.SPD + Util.ToInt32(TB_SPDEV.Text) / 4) * level / 100 + 5); - Stats[3] = (ushort)((Util.ToInt32(TB_SPEIV.Text) + 2 * p.SPE + Util.ToInt32(TB_SPEEV.Text) / 4) * level / 100 + 5); - - // Account for nature - int incr = Nature / 5 + 1; - int decr = Nature % 5 + 1; - if (incr != decr) - { - Stats[incr] *= 11; - Stats[incr] /= 10; - Stats[decr] *= 9; - Stats[decr] /= 10; - } - - Stat_HP.Text = Stats[0].ToString(); - Stat_ATK.Text = Stats[1].ToString(); - Stat_DEF.Text = Stats[2].ToString(); - Stat_SPA.Text = Stats[4].ToString(); - Stat_SPD.Text = Stats[5].ToString(); - Stat_SPE.Text = Stats[3].ToString(); - - TB_IVTotal.Text = tb_iv.Select(WinFormsUtil.ToInt32).Sum().ToString(); - TB_EVTotal.Text = tb_ev.Select(WinFormsUtil.ToInt32).Sum().ToString(); - - // Recolor the Stat Labels based on boosted stats. - { - incr--; - decr--; - Label[] labarray = { Label_ATK, Label_DEF, Label_SPE, Label_SPA, Label_SPD }; - // Reset Label Colors - foreach (Label label in labarray) - label.ResetForeColor(); - - // Set Colored StatLabels only if Nature isn't Neutral - if (incr != decr) - { - labarray[incr].ForeColor = Color.Red; - labarray[decr].ForeColor = Color.Blue; - } - } - var ivs = tb_iv.Select(tb => WinFormsUtil.ToInt32(tb) & 1).ToArray(); - updatingStats = true; - CB_HPType.SelectedIndex = 15 * (ivs[0] + 2 * ivs[1] + 4 * ivs[2] + 8 * ivs[3] + 16 * ivs[4] + 32 * ivs[5]) / 63; - updatingStats = false; - } - - private void UpdateHPType(object sender, EventArgs e) - { - if (updatingStats) - return; - var tb_iv = new[] { TB_HPIV, TB_ATKIV, TB_DEFIV, TB_SPAIV, TB_SPDIV, TB_SPEIV }; - int[] newIVs = SetHPIVs(CB_HPType.SelectedIndex, tb_iv.Select(WinFormsUtil.ToInt32).ToArray()); - updatingStats = true; - TB_HPIV.Text = newIVs[0].ToString(); - TB_ATKIV.Text = newIVs[1].ToString(); - TB_DEFIV.Text = newIVs[2].ToString(); - TB_SPAIV.Text = newIVs[3].ToString(); - TB_SPDIV.Text = newIVs[4].ToString(); - TB_SPEIV.Text = newIVs[5].ToString(); - updatingStats = false; - } - public static int[] SetHPIVs(int type, int[] ivs) - { - for (int i = 0; i < 6; i++) - ivs[i] = (ivs[i] & 0x1E) + hpivs[type, i]; - return ivs; - } - - private static readonly int[,] hpivs = { - { 1, 1, 0, 0, 0, 0 }, // Fighting - { 0, 0, 0, 0, 0, 1 }, // Flying - { 1, 1, 0, 0, 0, 1 }, // Poison - { 1, 1, 1, 0, 0, 1 }, // Ground - { 1, 1, 0, 1, 0, 0 }, // Rock - { 1, 0, 0, 1, 0, 1 }, // Bug - { 1, 0, 1, 1, 0, 1 }, // Ghost - { 1, 1, 1, 1, 0, 1 }, // Steel - { 1, 0, 1, 0, 1, 0 }, // Fire - { 1, 0, 0, 0, 1, 1 }, // Water - { 1, 0, 1, 0, 1, 1 }, // Grass - { 1, 1, 1, 0, 1, 1 }, // Electric - { 1, 0, 1, 1, 1, 0 }, // Psychic - { 1, 0, 0, 1, 1, 1 }, // Ice - { 1, 0, 1, 1, 1, 1 }, // Dragon - { 1, 1, 1, 1, 1, 1 }, // Dark - }; - - private void B_Randomize_Click(object sender, EventArgs e) - { - if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomize all? Cannot undo.", "Double check Randomization settings in the Misc/Rand tab.") != DialogResult.Yes) return; - - CB_TrainerID.SelectedIndex = 0; - var rnd = new SpeciesRandomizer(Main.Config) - { - G1 = CHK_G1.Checked, - G2 = CHK_G2.Checked, - G3 = CHK_G3.Checked, - G4 = CHK_G4.Checked, - G5 = CHK_G5.Checked, - G6 = CHK_G6.Checked, - G7 = CHK_G7.Checked, - - E = CHK_E.Checked, - L = CHK_L.Checked, - rBST = CHK_BST.Checked, - }; - rnd.Initialize(); - - var banned = new List(new[] { 165, 621, 464 }.Concat(Legal.Z_Moves)); // Struggle, Hyperspace Fury, Dark Void - if (CHK_NoFixedDamage.Checked) - banned.AddRange(MoveRandomizer.FixedDamageMoves); - var move = new MoveRandomizer(Main.Config) - { - BannedMoves = banned, - rSTABCount = (int) NUD_STAB.Value, - rDMG = CHK_Damage.Checked, - rDMGCount = (int) NUD_Damage.Value, - rSTAB = CHK_STAB.Checked - }; - - var items = Randomizer.getRandomItemList(); - for (int i = 0; i < Trainers.Length; i++) - { - var tr = Trainers[i]; - if (tr.Pokemon.Count == 0) - continue; - // Trainer Properties - if (CHK_RandomClass.Checked) - { - int rv; - do - { - rv = (int) (Util.rnd32()%CB_Trainer_Class.Items.Count); - } while (/*trClass[rv].StartsWith("[~") || */Legal.SpecialClasses_SM.Contains(rv) && !CHK_IgnoreSpecialClass.Checked); - // don't allow disallowed classes - tr.TrainerClass = (byte) rv; - } - - if (tr.NumPokemon < NUD_RMin.Value) - { - var avgBST = (int)tr.Pokemon.Average(pk => Main.SpeciesStat[pk.Species].BST); - int avgLevel = (int)tr.Pokemon.Average(pk => pk.Level); - var pinfo = Main.SpeciesStat.OrderBy(pk => Math.Abs(avgBST - pk.BST)).First(); - int avgSpec = Array.IndexOf(Main.SpeciesStat, pinfo); - for (int p = tr.NumPokemon; p < NUD_RMin.Value; p++) - tr.Pokemon.Add(new trpoke7 - { - Species = rnd.GetRandomSpecies(avgSpec), - Level = avgLevel, - }); - tr.NumPokemon = (int)NUD_RMin.Value; - } - if (tr.NumPokemon > NUD_RMax.Value) - { - tr.Pokemon.RemoveRange((int)NUD_RMax.Value, (int)(tr.NumPokemon - NUD_RMax.Value)); - tr.NumPokemon = (int)NUD_RMax.Value; - } - - // PKM Properties - foreach (var pk in tr.Pokemon) - { - if (CHK_RandomPKM.Checked) - { - int Type = CHK_TypeTheme.Checked ? (int)Util.rnd32()%17 : -1; - pk.Species = rnd.GetRandomSpeciesType(pk.Species, Type); - pk.Form = Randomizer.GetRandomForme(pk.Species, CHK_RandomMegaForm.Checked, true, Main.SpeciesStat); - pk.Gender = 0; // Random Gender - } - if (CHK_Level.Checked) - pk.Level = Randomizer.getModifiedLevel(pk.Level, NUD_LevelBoost.Value); - if (CHK_RandomShiny.Checked) - pk.Shiny = Util.rand.Next(0, 100 + 1) < NUD_Shiny.Value; - if (CHK_RandomItems.Checked) - pk.Item = items[Util.rnd32()%items.Length]; - if (CHK_RandomAbilities.Checked) - pk.Ability = (int)Util.rnd32()%4; - if (CHK_MaxDiffPKM.Checked) - pk.IVs = new[] {31, 31, 31, 31, 31, 31}; - - switch (CB_Moves.SelectedIndex) - { - case 1: // Random - pk.Moves = move.GetRandomMoveset(pk.Species, 4); - break; - case 2: // Current LevelUp - pk.Moves = learn.GetCurrentMoves(pk.Species, pk.Form, pk.Level, 4); - break; - case 3: // High Attacks - pk.Moves = learn.GetHighPoweredMoves(pk.Species, pk.Form, 4); - break; - } - // sanitize moves - if (CB_Moves.SelectedIndex > 1) // learn source - { - var moves = pk.Moves; - if (move.SanitizeMovesetForBannedMoves(moves, pk.Species)) - pk.Moves = moves; - } - } - SaveData(tr, i); - } - WinFormsUtil.Alert("Randomized all Trainers according to specification!", "Press the Dump to .TXT button to view the new Trainer information!"); - } - private void B_HighAttack_Click(object sender, EventArgs e) - { - pkm.Species = CB_Species.SelectedIndex; - pkm.Level = (int)NUD_Level.Value; - pkm.Form = CB_Forme.SelectedIndex; - var moves = learn.GetHighPoweredMoves(pkm.Species, pkm.Form, 4); - SetMoves(moves); - } - private void B_CurrentAttack_Click(object sender, EventArgs e) - { - pkm.Species = CB_Species.SelectedIndex; - pkm.Level = (int)NUD_Level.Value; - pkm.Form = CB_Forme.SelectedIndex; - var moves = learn.GetCurrentMoves(pkm.Species, pkm.Form, 4); - SetMoves(moves); - } - private void B_Clear_Click(object sender, EventArgs e) => SetMoves(new int[4]); - - private void SetMoves(IList moves) - { - var mcb = new[] { CB_Move1, CB_Move2, CB_Move3, CB_Move4 }; - for (int i = 0; i < mcb.Length; i++) - mcb[i].SelectedIndex = moves[i]; - } - - // Randomization UI - private void CB_Moves_SelectedIndexChanged(object sender, EventArgs e) - { - CHK_Damage.Visible = CHK_STAB.Visible = NUD_Damage.Visible = NUD_STAB.Visible = CB_Moves.SelectedIndex == 1; // Randomized - } - private void CHK_Damage_CheckedChanged(object sender, EventArgs e) - { - NUD_Damage.Enabled = CHK_Damage.Checked; - } - private void CHK_STAB_CheckedChanged(object sender, EventArgs e) - { - NUD_STAB.Enabled = CHK_STAB.Checked; - } - private void CHK_RandomPKM_CheckedChanged(object sender, EventArgs e) - { - CHK_BST.Visible = CHK_RandomPKM.Checked; - if (CHK_RandomPKM.Checked) - return; - foreach (CheckBox c in new[] { CHK_G1, CHK_G2, CHK_G3, CHK_G4, CHK_G5, CHK_G6, CHK_G7, CHK_L, CHK_E }) - { - c.Visible = false; - c.Checked = true; - } - } - private void CHK_RandomClass_CheckedChanged(object sender, EventArgs e) - { - CHK_IgnoreSpecialClass.Enabled = CHK_RandomClass.Checked; - if (!CHK_RandomClass.Checked) - CHK_IgnoreSpecialClass.Checked = false; - } - private void CHK_RandomShiny_CheckedChanged(object sender, EventArgs e) - { - NUD_Shiny.Enabled = CHK_RandomShiny.Checked; - } - private void CHK_Level_CheckedChanged(object sender, EventArgs e) - { - NUD_LevelBoost.Enabled = CHK_Level.Checked; - } - } -} diff --git a/pk3DS/Subforms/Gen7/SMTE.resx b/pk3DS/Subforms/Gen7/SMTE.resx deleted file mode 100644 index 0161958b99..0000000000 --- a/pk3DS/Subforms/Gen7/SMTE.resx +++ /dev/null @@ -1,378 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - True - - - True - - - True - - - 17, 17 - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - - True - - \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/SMWE.Designer.cs b/pk3DS/Subforms/Gen7/SMWE.Designer.cs deleted file mode 100644 index ef83517242..0000000000 --- a/pk3DS/Subforms/Gen7/SMWE.Designer.cs +++ /dev/null @@ -1,3413 +0,0 @@ -namespace pk3DS -{ - partial class SMWE - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.B_Randomize = new System.Windows.Forms.Button(); - this.B_Dump = new System.Windows.Forms.Button(); - this.L_Location = new System.Windows.Forms.Label(); - this.B_Save = new System.Windows.Forms.Button(); - this.CB_LocationID = new System.Windows.Forms.ComboBox(); - this.NUP_Min = new System.Windows.Forms.NumericUpDown(); - this.NUP_Max = new System.Windows.Forms.NumericUpDown(); - this.L_Min = new System.Windows.Forms.Label(); - this.L_Max = new System.Windows.Forms.Label(); - this.L_Table = new System.Windows.Forms.Label(); - this.GB_Encounters = new System.Windows.Forms.GroupBox(); - this.GB_Tweak = new System.Windows.Forms.GroupBox(); - this.CB_SlotRand = new System.Windows.Forms.ComboBox(); - this.L_SOS = new System.Windows.Forms.Label(); - this.CHK_G7 = new System.Windows.Forms.CheckBox(); - this.CHK_MegaForm = new System.Windows.Forms.CheckBox(); - this.L_RandOpt = new System.Windows.Forms.Label(); - this.CHK_BST = new System.Windows.Forms.CheckBox(); - this.CHK_E = new System.Windows.Forms.CheckBox(); - this.CHK_L = new System.Windows.Forms.CheckBox(); - this.CHK_G6 = new System.Windows.Forms.CheckBox(); - this.CHK_G5 = new System.Windows.Forms.CheckBox(); - this.CHK_G4 = new System.Windows.Forms.CheckBox(); - this.CHK_G3 = new System.Windows.Forms.CheckBox(); - this.CHK_G2 = new System.Windows.Forms.CheckBox(); - this.CHK_G1 = new System.Windows.Forms.CheckBox(); - this.B_LevelPlus = new System.Windows.Forms.Button(); - this.NUD_LevelAmp = new System.Windows.Forms.NumericUpDown(); - this.CHK_Level = new System.Windows.Forms.CheckBox(); - this.PB_NightIcon = new System.Windows.Forms.PictureBox(); - this.PB_DayIcon = new System.Windows.Forms.PictureBox(); - this.NUP_WeatherForme6 = new System.Windows.Forms.NumericUpDown(); - this.NUP_WeatherForme3 = new System.Windows.Forms.NumericUpDown(); - this.CB_WeatherEnc6 = new System.Windows.Forms.ComboBox(); - this.NUP_WeatherForme5 = new System.Windows.Forms.NumericUpDown(); - this.CB_WeatherEnc5 = new System.Windows.Forms.ComboBox(); - this.NUP_WeatherForme4 = new System.Windows.Forms.NumericUpDown(); - this.CB_WeatherEnc4 = new System.Windows.Forms.ComboBox(); - this.CB_WeatherEnc3 = new System.Windows.Forms.ComboBox(); - this.NUP_WeatherForme2 = new System.Windows.Forms.NumericUpDown(); - this.CB_WeatherEnc2 = new System.Windows.Forms.ComboBox(); - this.NUP_WeatherForme1 = new System.Windows.Forms.NumericUpDown(); - this.CB_WeatherEnc1 = new System.Windows.Forms.ComboBox(); - this.L_AddSOS = new System.Windows.Forms.Label(); - this.PB_NightTable = new System.Windows.Forms.PictureBox(); - this.PB_DayTable = new System.Windows.Forms.PictureBox(); - this.NUP_Forme80 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc80 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme79 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc79 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme78 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc78 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme77 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc77 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme76 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc76 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme75 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc75 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme74 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc74 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme73 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc73 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme72 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc72 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme71 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc71 = new System.Windows.Forms.ComboBox(); - this.L_SOS7 = new System.Windows.Forms.Label(); - this.NUP_Forme70 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc70 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme69 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc69 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme68 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc68 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme67 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc67 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme66 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc66 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme65 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc65 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme64 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc64 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme63 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc63 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme62 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc62 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme61 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc61 = new System.Windows.Forms.ComboBox(); - this.L_SOS6 = new System.Windows.Forms.Label(); - this.NUP_Forme60 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc60 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme59 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc59 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme58 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc58 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme57 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc57 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme56 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc56 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme55 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc55 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme54 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc54 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme53 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc53 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme52 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc52 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme51 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc51 = new System.Windows.Forms.ComboBox(); - this.L_SOS5 = new System.Windows.Forms.Label(); - this.NUP_Forme50 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc50 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme49 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc49 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme48 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc48 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme47 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc47 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme46 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc46 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme45 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc45 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme44 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc44 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme43 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc43 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme42 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc42 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme41 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc41 = new System.Windows.Forms.ComboBox(); - this.L_SOS4 = new System.Windows.Forms.Label(); - this.NUP_Forme40 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc40 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme39 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc39 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme38 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc38 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme37 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc37 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme36 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc36 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme35 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc35 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme34 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc34 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme33 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc33 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme32 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc32 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme31 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc31 = new System.Windows.Forms.ComboBox(); - this.L_SOS3 = new System.Windows.Forms.Label(); - this.NUP_Forme30 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc30 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme29 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc29 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme28 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc28 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme27 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc27 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme26 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc26 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme25 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc25 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme24 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc24 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme23 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc23 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme22 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc22 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme21 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc21 = new System.Windows.Forms.ComboBox(); - this.L_SOS2 = new System.Windows.Forms.Label(); - this.NUP_Forme20 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc20 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme19 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc19 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme18 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc18 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme17 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc17 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme16 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc16 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme15 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc15 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme14 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc14 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme13 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc13 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme12 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc12 = new System.Windows.Forms.ComboBox(); - this.NUP_Forme11 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc11 = new System.Windows.Forms.ComboBox(); - this.L_SOS1 = new System.Windows.Forms.Label(); - this.label1 = new System.Windows.Forms.Label(); - this.NUP_Forme10 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc10 = new System.Windows.Forms.ComboBox(); - this.NUP_Rate10 = new System.Windows.Forms.NumericUpDown(); - this.NUP_Forme09 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc09 = new System.Windows.Forms.ComboBox(); - this.NUP_Rate9 = new System.Windows.Forms.NumericUpDown(); - this.NUP_Forme08 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc08 = new System.Windows.Forms.ComboBox(); - this.NUP_Rate8 = new System.Windows.Forms.NumericUpDown(); - this.NUP_Forme07 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc07 = new System.Windows.Forms.ComboBox(); - this.NUP_Rate7 = new System.Windows.Forms.NumericUpDown(); - this.NUP_Forme06 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc06 = new System.Windows.Forms.ComboBox(); - this.NUP_Rate6 = new System.Windows.Forms.NumericUpDown(); - this.NUP_Forme05 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc05 = new System.Windows.Forms.ComboBox(); - this.NUP_Rate5 = new System.Windows.Forms.NumericUpDown(); - this.NUP_Forme04 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc04 = new System.Windows.Forms.ComboBox(); - this.NUP_Rate4 = new System.Windows.Forms.NumericUpDown(); - this.NUP_Forme03 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc03 = new System.Windows.Forms.ComboBox(); - this.NUP_Rate3 = new System.Windows.Forms.NumericUpDown(); - this.NUP_Forme02 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc02 = new System.Windows.Forms.ComboBox(); - this.NUP_Rate2 = new System.Windows.Forms.NumericUpDown(); - this.L_Rate = new System.Windows.Forms.Label(); - this.NUP_Forme01 = new System.Windows.Forms.NumericUpDown(); - this.CB_Enc01 = new System.Windows.Forms.ComboBox(); - this.NUP_Rate1 = new System.Windows.Forms.NumericUpDown(); - this.CB_TableID = new System.Windows.Forms.ComboBox(); - this.B_Export = new System.Windows.Forms.Button(); - this.CopySOS = new System.Windows.Forms.Button(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Min)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Max)).BeginInit(); - this.GB_Encounters.SuspendLayout(); - this.GB_Tweak.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_LevelAmp)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_NightIcon)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_DayIcon)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_WeatherForme6)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_WeatherForme3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_WeatherForme5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_WeatherForme4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_WeatherForme2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_WeatherForme1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_NightTable)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_DayTable)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme80)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme79)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme78)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme77)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme76)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme75)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme74)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme73)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme72)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme71)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme70)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme69)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme68)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme67)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme66)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme65)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme64)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme63)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme62)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme61)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme60)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme59)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme58)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme57)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme56)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme55)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme54)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme53)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme52)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme51)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme50)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme49)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme48)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme47)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme46)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme45)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme44)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme43)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme42)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme41)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme40)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme39)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme38)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme37)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme36)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme35)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme34)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme33)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme32)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme31)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme30)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme29)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme28)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme27)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme26)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme25)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme24)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme23)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme22)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme21)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme20)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme19)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme18)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme17)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme16)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme15)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme14)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme13)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme12)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme11)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme10)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Rate10)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme09)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Rate9)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme08)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Rate8)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme07)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Rate7)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme06)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Rate6)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme05)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Rate5)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme04)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Rate4)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme03)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Rate3)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme02)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Rate2)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme01)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Rate1)).BeginInit(); - this.SuspendLayout(); - // - // B_Randomize - // - this.B_Randomize.Location = new System.Drawing.Point(812, 11); - this.B_Randomize.Name = "B_Randomize"; - this.B_Randomize.Size = new System.Drawing.Size(102, 23); - this.B_Randomize.TabIndex = 421; - this.B_Randomize.Text = "Randomize All"; - this.B_Randomize.UseVisualStyleBackColor = true; - this.B_Randomize.Click += new System.EventHandler(this.B_Randomize_Click); - // - // B_Dump - // - this.B_Dump.Location = new System.Drawing.Point(920, 11); - this.B_Dump.Name = "B_Dump"; - this.B_Dump.Size = new System.Drawing.Size(108, 23); - this.B_Dump.TabIndex = 420; - this.B_Dump.Text = "Dump Tables"; - this.B_Dump.UseVisualStyleBackColor = true; - this.B_Dump.Click += new System.EventHandler(this.DumpTables); - // - // L_Location - // - this.L_Location.AutoSize = true; - this.L_Location.Location = new System.Drawing.Point(38, 16); - this.L_Location.Name = "L_Location"; - this.L_Location.Size = new System.Drawing.Size(28, 13); - this.L_Location.TabIndex = 419; - this.L_Location.Text = "Loc:"; - // - // B_Save - // - this.B_Save.Location = new System.Drawing.Point(558, 11); - this.B_Save.Name = "B_Save"; - this.B_Save.Size = new System.Drawing.Size(135, 23); - this.B_Save.TabIndex = 418; - this.B_Save.Text = "Save Current Table"; - this.B_Save.UseVisualStyleBackColor = true; - this.B_Save.Click += new System.EventHandler(this.B_Save_Click); - // - // CB_LocationID - // - this.CB_LocationID.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_LocationID.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_LocationID.FormattingEnabled = true; - this.CB_LocationID.Location = new System.Drawing.Point(67, 12); - this.CB_LocationID.Name = "CB_LocationID"; - this.CB_LocationID.Size = new System.Drawing.Size(164, 21); - this.CB_LocationID.TabIndex = 417; - this.CB_LocationID.SelectedIndexChanged += new System.EventHandler(this.ChangeMap); - // - // NUP_Min - // - this.NUP_Min.Location = new System.Drawing.Point(434, 14); - this.NUP_Min.Minimum = new decimal(new int[] { - 1, - 0, - 0, - 0}); - this.NUP_Min.Name = "NUP_Min"; - this.NUP_Min.Size = new System.Drawing.Size(41, 20); - this.NUP_Min.TabIndex = 423; - this.NUP_Min.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - this.NUP_Min.ValueChanged += new System.EventHandler(this.UpdateMinMax); - // - // NUP_Max - // - this.NUP_Max.Location = new System.Drawing.Point(505, 14); - this.NUP_Max.Minimum = new decimal(new int[] { - 1, - 0, - 0, - 0}); - this.NUP_Max.Name = "NUP_Max"; - this.NUP_Max.Size = new System.Drawing.Size(41, 20); - this.NUP_Max.TabIndex = 424; - this.NUP_Max.Value = new decimal(new int[] { - 100, - 0, - 0, - 0}); - this.NUP_Max.ValueChanged += new System.EventHandler(this.UpdateMinMax); - // - // L_Min - // - this.L_Min.AutoSize = true; - this.L_Min.Location = new System.Drawing.Point(406, 16); - this.L_Min.Name = "L_Min"; - this.L_Min.Size = new System.Drawing.Size(24, 13); - this.L_Min.TabIndex = 425; - this.L_Min.Text = "Min"; - // - // L_Max - // - this.L_Max.AutoSize = true; - this.L_Max.Location = new System.Drawing.Point(478, 16); - this.L_Max.Name = "L_Max"; - this.L_Max.Size = new System.Drawing.Size(27, 13); - this.L_Max.TabIndex = 426; - this.L_Max.Text = "Max"; - // - // L_Table - // - this.L_Table.AutoSize = true; - this.L_Table.Location = new System.Drawing.Point(236, 16); - this.L_Table.Name = "L_Table"; - this.L_Table.Size = new System.Drawing.Size(34, 13); - this.L_Table.TabIndex = 428; - this.L_Table.Text = "Table"; - // - // GB_Encounters - // - this.GB_Encounters.Controls.Add(this.GB_Tweak); - this.GB_Encounters.Controls.Add(this.PB_NightIcon); - this.GB_Encounters.Controls.Add(this.PB_DayIcon); - this.GB_Encounters.Controls.Add(this.NUP_WeatherForme6); - this.GB_Encounters.Controls.Add(this.NUP_WeatherForme3); - this.GB_Encounters.Controls.Add(this.CB_WeatherEnc6); - this.GB_Encounters.Controls.Add(this.NUP_WeatherForme5); - this.GB_Encounters.Controls.Add(this.CB_WeatherEnc5); - this.GB_Encounters.Controls.Add(this.NUP_WeatherForme4); - this.GB_Encounters.Controls.Add(this.CB_WeatherEnc4); - this.GB_Encounters.Controls.Add(this.CB_WeatherEnc3); - this.GB_Encounters.Controls.Add(this.NUP_WeatherForme2); - this.GB_Encounters.Controls.Add(this.CB_WeatherEnc2); - this.GB_Encounters.Controls.Add(this.NUP_WeatherForme1); - this.GB_Encounters.Controls.Add(this.CB_WeatherEnc1); - this.GB_Encounters.Controls.Add(this.L_AddSOS); - this.GB_Encounters.Controls.Add(this.PB_NightTable); - this.GB_Encounters.Controls.Add(this.PB_DayTable); - this.GB_Encounters.Controls.Add(this.NUP_Forme80); - this.GB_Encounters.Controls.Add(this.CB_Enc80); - this.GB_Encounters.Controls.Add(this.NUP_Forme79); - this.GB_Encounters.Controls.Add(this.CB_Enc79); - this.GB_Encounters.Controls.Add(this.NUP_Forme78); - this.GB_Encounters.Controls.Add(this.CB_Enc78); - this.GB_Encounters.Controls.Add(this.NUP_Forme77); - this.GB_Encounters.Controls.Add(this.CB_Enc77); - this.GB_Encounters.Controls.Add(this.NUP_Forme76); - this.GB_Encounters.Controls.Add(this.CB_Enc76); - this.GB_Encounters.Controls.Add(this.NUP_Forme75); - this.GB_Encounters.Controls.Add(this.CB_Enc75); - this.GB_Encounters.Controls.Add(this.NUP_Forme74); - this.GB_Encounters.Controls.Add(this.CB_Enc74); - this.GB_Encounters.Controls.Add(this.NUP_Forme73); - this.GB_Encounters.Controls.Add(this.CB_Enc73); - this.GB_Encounters.Controls.Add(this.NUP_Forme72); - this.GB_Encounters.Controls.Add(this.CB_Enc72); - this.GB_Encounters.Controls.Add(this.NUP_Forme71); - this.GB_Encounters.Controls.Add(this.CB_Enc71); - this.GB_Encounters.Controls.Add(this.L_SOS7); - this.GB_Encounters.Controls.Add(this.NUP_Forme70); - this.GB_Encounters.Controls.Add(this.CB_Enc70); - this.GB_Encounters.Controls.Add(this.NUP_Forme69); - this.GB_Encounters.Controls.Add(this.CB_Enc69); - this.GB_Encounters.Controls.Add(this.NUP_Forme68); - this.GB_Encounters.Controls.Add(this.CB_Enc68); - this.GB_Encounters.Controls.Add(this.NUP_Forme67); - this.GB_Encounters.Controls.Add(this.CB_Enc67); - this.GB_Encounters.Controls.Add(this.NUP_Forme66); - this.GB_Encounters.Controls.Add(this.CB_Enc66); - this.GB_Encounters.Controls.Add(this.NUP_Forme65); - this.GB_Encounters.Controls.Add(this.CB_Enc65); - this.GB_Encounters.Controls.Add(this.NUP_Forme64); - this.GB_Encounters.Controls.Add(this.CB_Enc64); - this.GB_Encounters.Controls.Add(this.NUP_Forme63); - this.GB_Encounters.Controls.Add(this.CB_Enc63); - this.GB_Encounters.Controls.Add(this.NUP_Forme62); - this.GB_Encounters.Controls.Add(this.CB_Enc62); - this.GB_Encounters.Controls.Add(this.NUP_Forme61); - this.GB_Encounters.Controls.Add(this.CB_Enc61); - this.GB_Encounters.Controls.Add(this.L_SOS6); - this.GB_Encounters.Controls.Add(this.NUP_Forme60); - this.GB_Encounters.Controls.Add(this.CB_Enc60); - this.GB_Encounters.Controls.Add(this.NUP_Forme59); - this.GB_Encounters.Controls.Add(this.CB_Enc59); - this.GB_Encounters.Controls.Add(this.NUP_Forme58); - this.GB_Encounters.Controls.Add(this.CB_Enc58); - this.GB_Encounters.Controls.Add(this.NUP_Forme57); - this.GB_Encounters.Controls.Add(this.CB_Enc57); - this.GB_Encounters.Controls.Add(this.NUP_Forme56); - this.GB_Encounters.Controls.Add(this.CB_Enc56); - this.GB_Encounters.Controls.Add(this.NUP_Forme55); - this.GB_Encounters.Controls.Add(this.CB_Enc55); - this.GB_Encounters.Controls.Add(this.NUP_Forme54); - this.GB_Encounters.Controls.Add(this.CB_Enc54); - this.GB_Encounters.Controls.Add(this.NUP_Forme53); - this.GB_Encounters.Controls.Add(this.CB_Enc53); - this.GB_Encounters.Controls.Add(this.NUP_Forme52); - this.GB_Encounters.Controls.Add(this.CB_Enc52); - this.GB_Encounters.Controls.Add(this.NUP_Forme51); - this.GB_Encounters.Controls.Add(this.CB_Enc51); - this.GB_Encounters.Controls.Add(this.L_SOS5); - this.GB_Encounters.Controls.Add(this.NUP_Forme50); - this.GB_Encounters.Controls.Add(this.CB_Enc50); - this.GB_Encounters.Controls.Add(this.NUP_Forme49); - this.GB_Encounters.Controls.Add(this.CB_Enc49); - this.GB_Encounters.Controls.Add(this.NUP_Forme48); - this.GB_Encounters.Controls.Add(this.CB_Enc48); - this.GB_Encounters.Controls.Add(this.NUP_Forme47); - this.GB_Encounters.Controls.Add(this.CB_Enc47); - this.GB_Encounters.Controls.Add(this.NUP_Forme46); - this.GB_Encounters.Controls.Add(this.CB_Enc46); - this.GB_Encounters.Controls.Add(this.NUP_Forme45); - this.GB_Encounters.Controls.Add(this.CB_Enc45); - this.GB_Encounters.Controls.Add(this.NUP_Forme44); - this.GB_Encounters.Controls.Add(this.CB_Enc44); - this.GB_Encounters.Controls.Add(this.NUP_Forme43); - this.GB_Encounters.Controls.Add(this.CB_Enc43); - this.GB_Encounters.Controls.Add(this.NUP_Forme42); - this.GB_Encounters.Controls.Add(this.CB_Enc42); - this.GB_Encounters.Controls.Add(this.NUP_Forme41); - this.GB_Encounters.Controls.Add(this.CB_Enc41); - this.GB_Encounters.Controls.Add(this.L_SOS4); - this.GB_Encounters.Controls.Add(this.NUP_Forme40); - this.GB_Encounters.Controls.Add(this.CB_Enc40); - this.GB_Encounters.Controls.Add(this.NUP_Forme39); - this.GB_Encounters.Controls.Add(this.CB_Enc39); - this.GB_Encounters.Controls.Add(this.NUP_Forme38); - this.GB_Encounters.Controls.Add(this.CB_Enc38); - this.GB_Encounters.Controls.Add(this.NUP_Forme37); - this.GB_Encounters.Controls.Add(this.CB_Enc37); - this.GB_Encounters.Controls.Add(this.NUP_Forme36); - this.GB_Encounters.Controls.Add(this.CB_Enc36); - this.GB_Encounters.Controls.Add(this.NUP_Forme35); - this.GB_Encounters.Controls.Add(this.CB_Enc35); - this.GB_Encounters.Controls.Add(this.NUP_Forme34); - this.GB_Encounters.Controls.Add(this.CB_Enc34); - this.GB_Encounters.Controls.Add(this.NUP_Forme33); - this.GB_Encounters.Controls.Add(this.CB_Enc33); - this.GB_Encounters.Controls.Add(this.NUP_Forme32); - this.GB_Encounters.Controls.Add(this.CB_Enc32); - this.GB_Encounters.Controls.Add(this.NUP_Forme31); - this.GB_Encounters.Controls.Add(this.CB_Enc31); - this.GB_Encounters.Controls.Add(this.L_SOS3); - this.GB_Encounters.Controls.Add(this.NUP_Forme30); - this.GB_Encounters.Controls.Add(this.CB_Enc30); - this.GB_Encounters.Controls.Add(this.NUP_Forme29); - this.GB_Encounters.Controls.Add(this.CB_Enc29); - this.GB_Encounters.Controls.Add(this.NUP_Forme28); - this.GB_Encounters.Controls.Add(this.CB_Enc28); - this.GB_Encounters.Controls.Add(this.NUP_Forme27); - this.GB_Encounters.Controls.Add(this.CB_Enc27); - this.GB_Encounters.Controls.Add(this.NUP_Forme26); - this.GB_Encounters.Controls.Add(this.CB_Enc26); - this.GB_Encounters.Controls.Add(this.NUP_Forme25); - this.GB_Encounters.Controls.Add(this.CB_Enc25); - this.GB_Encounters.Controls.Add(this.NUP_Forme24); - this.GB_Encounters.Controls.Add(this.CB_Enc24); - this.GB_Encounters.Controls.Add(this.NUP_Forme23); - this.GB_Encounters.Controls.Add(this.CB_Enc23); - this.GB_Encounters.Controls.Add(this.NUP_Forme22); - this.GB_Encounters.Controls.Add(this.CB_Enc22); - this.GB_Encounters.Controls.Add(this.NUP_Forme21); - this.GB_Encounters.Controls.Add(this.CB_Enc21); - this.GB_Encounters.Controls.Add(this.L_SOS2); - this.GB_Encounters.Controls.Add(this.NUP_Forme20); - this.GB_Encounters.Controls.Add(this.CB_Enc20); - this.GB_Encounters.Controls.Add(this.NUP_Forme19); - this.GB_Encounters.Controls.Add(this.CB_Enc19); - this.GB_Encounters.Controls.Add(this.NUP_Forme18); - this.GB_Encounters.Controls.Add(this.CB_Enc18); - this.GB_Encounters.Controls.Add(this.NUP_Forme17); - this.GB_Encounters.Controls.Add(this.CB_Enc17); - this.GB_Encounters.Controls.Add(this.NUP_Forme16); - this.GB_Encounters.Controls.Add(this.CB_Enc16); - this.GB_Encounters.Controls.Add(this.NUP_Forme15); - this.GB_Encounters.Controls.Add(this.CB_Enc15); - this.GB_Encounters.Controls.Add(this.NUP_Forme14); - this.GB_Encounters.Controls.Add(this.CB_Enc14); - this.GB_Encounters.Controls.Add(this.NUP_Forme13); - this.GB_Encounters.Controls.Add(this.CB_Enc13); - this.GB_Encounters.Controls.Add(this.NUP_Forme12); - this.GB_Encounters.Controls.Add(this.CB_Enc12); - this.GB_Encounters.Controls.Add(this.NUP_Forme11); - this.GB_Encounters.Controls.Add(this.CB_Enc11); - this.GB_Encounters.Controls.Add(this.L_SOS1); - this.GB_Encounters.Controls.Add(this.label1); - this.GB_Encounters.Controls.Add(this.NUP_Forme10); - this.GB_Encounters.Controls.Add(this.CB_Enc10); - this.GB_Encounters.Controls.Add(this.NUP_Rate10); - this.GB_Encounters.Controls.Add(this.NUP_Forme09); - this.GB_Encounters.Controls.Add(this.CB_Enc09); - this.GB_Encounters.Controls.Add(this.NUP_Rate9); - this.GB_Encounters.Controls.Add(this.NUP_Forme08); - this.GB_Encounters.Controls.Add(this.CB_Enc08); - this.GB_Encounters.Controls.Add(this.NUP_Rate8); - this.GB_Encounters.Controls.Add(this.NUP_Forme07); - this.GB_Encounters.Controls.Add(this.CB_Enc07); - this.GB_Encounters.Controls.Add(this.NUP_Rate7); - this.GB_Encounters.Controls.Add(this.NUP_Forme06); - this.GB_Encounters.Controls.Add(this.CB_Enc06); - this.GB_Encounters.Controls.Add(this.NUP_Rate6); - this.GB_Encounters.Controls.Add(this.NUP_Forme05); - this.GB_Encounters.Controls.Add(this.CB_Enc05); - this.GB_Encounters.Controls.Add(this.NUP_Rate5); - this.GB_Encounters.Controls.Add(this.NUP_Forme04); - this.GB_Encounters.Controls.Add(this.CB_Enc04); - this.GB_Encounters.Controls.Add(this.NUP_Rate4); - this.GB_Encounters.Controls.Add(this.NUP_Forme03); - this.GB_Encounters.Controls.Add(this.CB_Enc03); - this.GB_Encounters.Controls.Add(this.NUP_Rate3); - this.GB_Encounters.Controls.Add(this.NUP_Forme02); - this.GB_Encounters.Controls.Add(this.CB_Enc02); - this.GB_Encounters.Controls.Add(this.NUP_Rate2); - this.GB_Encounters.Controls.Add(this.L_Rate); - this.GB_Encounters.Controls.Add(this.NUP_Forme01); - this.GB_Encounters.Controls.Add(this.CB_Enc01); - this.GB_Encounters.Controls.Add(this.NUP_Rate1); - this.GB_Encounters.Location = new System.Drawing.Point(14, 39); - this.GB_Encounters.Name = "GB_Encounters"; - this.GB_Encounters.Size = new System.Drawing.Size(1138, 561); - this.GB_Encounters.TabIndex = 430; - this.GB_Encounters.TabStop = false; - this.GB_Encounters.Text = "Encounters (100%)"; - // - // GB_Tweak - // - this.GB_Tweak.Controls.Add(this.CB_SlotRand); - this.GB_Tweak.Controls.Add(this.L_SOS); - this.GB_Tweak.Controls.Add(this.CHK_G7); - this.GB_Tweak.Controls.Add(this.CHK_MegaForm); - this.GB_Tweak.Controls.Add(this.L_RandOpt); - this.GB_Tweak.Controls.Add(this.CHK_BST); - this.GB_Tweak.Controls.Add(this.CHK_E); - this.GB_Tweak.Controls.Add(this.CHK_L); - this.GB_Tweak.Controls.Add(this.CHK_G6); - this.GB_Tweak.Controls.Add(this.CHK_G5); - this.GB_Tweak.Controls.Add(this.CHK_G4); - this.GB_Tweak.Controls.Add(this.CHK_G3); - this.GB_Tweak.Controls.Add(this.CHK_G2); - this.GB_Tweak.Controls.Add(this.CHK_G1); - this.GB_Tweak.Controls.Add(this.B_LevelPlus); - this.GB_Tweak.Controls.Add(this.NUD_LevelAmp); - this.GB_Tweak.Controls.Add(this.CHK_Level); - this.GB_Tweak.Location = new System.Drawing.Point(14, 388); - this.GB_Tweak.Name = "GB_Tweak"; - this.GB_Tweak.Size = new System.Drawing.Size(282, 159); - this.GB_Tweak.TabIndex = 507; - this.GB_Tweak.TabStop = false; - this.GB_Tweak.Text = "Extra Randomization Tweaks"; - // - // CB_SlotRand - // - this.CB_SlotRand.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_SlotRand.DropDownWidth = 200; - this.CB_SlotRand.FormattingEnabled = true; - this.CB_SlotRand.Items.AddRange(new object[] { - "Randomize All", - "Randomize Regular Only", - "Randomize SOS Only", - "Randomize Regular, Copy to SOS"}); - this.CB_SlotRand.Location = new System.Drawing.Point(124, 120); - this.CB_SlotRand.Name = "CB_SlotRand"; - this.CB_SlotRand.Size = new System.Drawing.Size(121, 21); - this.CB_SlotRand.TabIndex = 299; - // - // L_SOS - // - this.L_SOS.Location = new System.Drawing.Point(-9, 117); - this.L_SOS.Name = "L_SOS"; - this.L_SOS.Size = new System.Drawing.Size(130, 23); - this.L_SOS.TabIndex = 298; - this.L_SOS.Text = "Slot Randomization:"; - this.L_SOS.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // CHK_G7 - // - this.CHK_G7.AutoSize = true; - this.CHK_G7.Checked = true; - this.CHK_G7.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G7.Location = new System.Drawing.Point(19, 97); - this.CHK_G7.Name = "CHK_G7"; - this.CHK_G7.Size = new System.Drawing.Size(55, 17); - this.CHK_G7.TabIndex = 296; - this.CHK_G7.Text = "Gen 7"; - this.CHK_G7.UseVisualStyleBackColor = true; - // - // CHK_MegaForm - // - this.CHK_MegaForm.AutoSize = true; - this.CHK_MegaForm.Location = new System.Drawing.Point(138, 97); - this.CHK_MegaForm.Name = "CHK_MegaForm"; - this.CHK_MegaForm.Size = new System.Drawing.Size(127, 17); - this.CHK_MegaForm.TabIndex = 295; - this.CHK_MegaForm.Text = "Random Mega Forms"; - this.CHK_MegaForm.UseVisualStyleBackColor = true; - // - // L_RandOpt - // - this.L_RandOpt.AutoSize = true; - this.L_RandOpt.Location = new System.Drawing.Point(16, 34); - this.L_RandOpt.Name = "L_RandOpt"; - this.L_RandOpt.Size = new System.Drawing.Size(105, 13); - this.L_RandOpt.TabIndex = 294; - this.L_RandOpt.Text = "Randomizer Options:"; - // - // CHK_BST - // - this.CHK_BST.AutoSize = true; - this.CHK_BST.Location = new System.Drawing.Point(138, 82); - this.CHK_BST.Name = "CHK_BST"; - this.CHK_BST.Size = new System.Drawing.Size(117, 17); - this.CHK_BST.TabIndex = 288; - this.CHK_BST.Text = "Randomize by BST"; - this.CHK_BST.UseVisualStyleBackColor = true; - // - // CHK_E - // - this.CHK_E.AutoSize = true; - this.CHK_E.Checked = true; - this.CHK_E.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_E.Location = new System.Drawing.Point(138, 67); - this.CHK_E.Name = "CHK_E"; - this.CHK_E.Size = new System.Drawing.Size(98, 17); - this.CHK_E.TabIndex = 287; - this.CHK_E.Text = "Event Legends"; - this.CHK_E.UseVisualStyleBackColor = true; - // - // CHK_L - // - this.CHK_L.AutoSize = true; - this.CHK_L.Checked = true; - this.CHK_L.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_L.Location = new System.Drawing.Point(138, 52); - this.CHK_L.Name = "CHK_L"; - this.CHK_L.Size = new System.Drawing.Size(98, 17); - this.CHK_L.TabIndex = 286; - this.CHK_L.Text = "Game Legends"; - this.CHK_L.UseVisualStyleBackColor = true; - // - // CHK_G6 - // - this.CHK_G6.AutoSize = true; - this.CHK_G6.Checked = true; - this.CHK_G6.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G6.Location = new System.Drawing.Point(77, 82); - this.CHK_G6.Name = "CHK_G6"; - this.CHK_G6.Size = new System.Drawing.Size(55, 17); - this.CHK_G6.TabIndex = 285; - this.CHK_G6.Text = "Gen 6"; - this.CHK_G6.UseVisualStyleBackColor = true; - // - // CHK_G5 - // - this.CHK_G5.AutoSize = true; - this.CHK_G5.Checked = true; - this.CHK_G5.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G5.Location = new System.Drawing.Point(77, 67); - this.CHK_G5.Name = "CHK_G5"; - this.CHK_G5.Size = new System.Drawing.Size(55, 17); - this.CHK_G5.TabIndex = 284; - this.CHK_G5.Text = "Gen 5"; - this.CHK_G5.UseVisualStyleBackColor = true; - // - // CHK_G4 - // - this.CHK_G4.AutoSize = true; - this.CHK_G4.Checked = true; - this.CHK_G4.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G4.Location = new System.Drawing.Point(77, 52); - this.CHK_G4.Name = "CHK_G4"; - this.CHK_G4.Size = new System.Drawing.Size(55, 17); - this.CHK_G4.TabIndex = 283; - this.CHK_G4.Text = "Gen 4"; - this.CHK_G4.UseVisualStyleBackColor = true; - // - // CHK_G3 - // - this.CHK_G3.AutoSize = true; - this.CHK_G3.Checked = true; - this.CHK_G3.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G3.Location = new System.Drawing.Point(19, 82); - this.CHK_G3.Name = "CHK_G3"; - this.CHK_G3.Size = new System.Drawing.Size(55, 17); - this.CHK_G3.TabIndex = 282; - this.CHK_G3.Text = "Gen 3"; - this.CHK_G3.UseVisualStyleBackColor = true; - // - // CHK_G2 - // - this.CHK_G2.AutoSize = true; - this.CHK_G2.Checked = true; - this.CHK_G2.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G2.Location = new System.Drawing.Point(19, 67); - this.CHK_G2.Name = "CHK_G2"; - this.CHK_G2.Size = new System.Drawing.Size(55, 17); - this.CHK_G2.TabIndex = 281; - this.CHK_G2.Text = "Gen 2"; - this.CHK_G2.UseVisualStyleBackColor = true; - // - // CHK_G1 - // - this.CHK_G1.AutoSize = true; - this.CHK_G1.Checked = true; - this.CHK_G1.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G1.Location = new System.Drawing.Point(19, 52); - this.CHK_G1.Name = "CHK_G1"; - this.CHK_G1.Size = new System.Drawing.Size(55, 17); - this.CHK_G1.TabIndex = 280; - this.CHK_G1.Text = "Gen 1"; - this.CHK_G1.UseVisualStyleBackColor = true; - // - // B_LevelPlus - // - this.B_LevelPlus.Location = new System.Drawing.Point(203, 14); - this.B_LevelPlus.Name = "B_LevelPlus"; - this.B_LevelPlus.Size = new System.Drawing.Size(66, 23); - this.B_LevelPlus.TabIndex = 277; - this.B_LevelPlus.Text = "× Current"; - this.B_LevelPlus.UseVisualStyleBackColor = true; - this.B_LevelPlus.Click += new System.EventHandler(this.ModifyAllLevelRanges); - // - // NUD_LevelAmp - // - this.NUD_LevelAmp.DecimalPlaces = 2; - this.NUD_LevelAmp.Increment = new decimal(new int[] { - 5, - 0, - 0, - 131072}); - this.NUD_LevelAmp.Location = new System.Drawing.Point(152, 16); - this.NUD_LevelAmp.Maximum = new decimal(new int[] { - 3, - 0, - 0, - 0}); - this.NUD_LevelAmp.Minimum = new decimal(new int[] { - 1, - 0, - 0, - 65536}); - this.NUD_LevelAmp.Name = "NUD_LevelAmp"; - this.NUD_LevelAmp.Size = new System.Drawing.Size(48, 20); - this.NUD_LevelAmp.TabIndex = 276; - this.NUD_LevelAmp.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // CHK_Level - // - this.CHK_Level.AutoSize = true; - this.CHK_Level.Location = new System.Drawing.Point(19, 17); - this.CHK_Level.Name = "CHK_Level"; - this.CHK_Level.Size = new System.Drawing.Size(130, 17); - this.CHK_Level.TabIndex = 279; - this.CHK_Level.Text = "Multiply PKM Level by"; - this.CHK_Level.UseVisualStyleBackColor = true; - // - // PB_NightIcon - // - this.PB_NightIcon.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.PB_NightIcon.Location = new System.Drawing.Point(708, 256); - this.PB_NightIcon.Name = "PB_NightIcon"; - this.PB_NightIcon.Size = new System.Drawing.Size(20, 20); - this.PB_NightIcon.TabIndex = 506; - this.PB_NightIcon.TabStop = false; - // - // PB_DayIcon - // - this.PB_DayIcon.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.PB_DayIcon.Location = new System.Drawing.Point(278, 255); - this.PB_DayIcon.Name = "PB_DayIcon"; - this.PB_DayIcon.Size = new System.Drawing.Size(20, 20); - this.PB_DayIcon.TabIndex = 505; - this.PB_DayIcon.TabStop = false; - // - // NUP_WeatherForme6 - // - this.NUP_WeatherForme6.Location = new System.Drawing.Point(216, 346); - this.NUP_WeatherForme6.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_WeatherForme6.Name = "NUP_WeatherForme6"; - this.NUP_WeatherForme6.Size = new System.Drawing.Size(31, 20); - this.NUP_WeatherForme6.TabIndex = 504; - // - // NUP_WeatherForme3 - // - this.NUP_WeatherForme3.Location = new System.Drawing.Point(108, 320); - this.NUP_WeatherForme3.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_WeatherForme3.Name = "NUP_WeatherForme3"; - this.NUP_WeatherForme3.Size = new System.Drawing.Size(31, 20); - this.NUP_WeatherForme3.TabIndex = 503; - // - // CB_WeatherEnc6 - // - this.CB_WeatherEnc6.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_WeatherEnc6.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_WeatherEnc6.FormattingEnabled = true; - this.CB_WeatherEnc6.Location = new System.Drawing.Point(141, 345); - this.CB_WeatherEnc6.Name = "CB_WeatherEnc6"; - this.CB_WeatherEnc6.Size = new System.Drawing.Size(72, 21); - this.CB_WeatherEnc6.TabIndex = 502; - // - // NUP_WeatherForme5 - // - this.NUP_WeatherForme5.Location = new System.Drawing.Point(108, 346); - this.NUP_WeatherForme5.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_WeatherForme5.Name = "NUP_WeatherForme5"; - this.NUP_WeatherForme5.Size = new System.Drawing.Size(31, 20); - this.NUP_WeatherForme5.TabIndex = 501; - // - // CB_WeatherEnc5 - // - this.CB_WeatherEnc5.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_WeatherEnc5.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_WeatherEnc5.FormattingEnabled = true; - this.CB_WeatherEnc5.Location = new System.Drawing.Point(33, 345); - this.CB_WeatherEnc5.Name = "CB_WeatherEnc5"; - this.CB_WeatherEnc5.Size = new System.Drawing.Size(72, 21); - this.CB_WeatherEnc5.TabIndex = 500; - // - // NUP_WeatherForme4 - // - this.NUP_WeatherForme4.Location = new System.Drawing.Point(217, 320); - this.NUP_WeatherForme4.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_WeatherForme4.Name = "NUP_WeatherForme4"; - this.NUP_WeatherForme4.Size = new System.Drawing.Size(31, 20); - this.NUP_WeatherForme4.TabIndex = 499; - // - // CB_WeatherEnc4 - // - this.CB_WeatherEnc4.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_WeatherEnc4.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_WeatherEnc4.FormattingEnabled = true; - this.CB_WeatherEnc4.Location = new System.Drawing.Point(142, 319); - this.CB_WeatherEnc4.Name = "CB_WeatherEnc4"; - this.CB_WeatherEnc4.Size = new System.Drawing.Size(72, 21); - this.CB_WeatherEnc4.TabIndex = 498; - // - // CB_WeatherEnc3 - // - this.CB_WeatherEnc3.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_WeatherEnc3.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_WeatherEnc3.FormattingEnabled = true; - this.CB_WeatherEnc3.Location = new System.Drawing.Point(33, 319); - this.CB_WeatherEnc3.Name = "CB_WeatherEnc3"; - this.CB_WeatherEnc3.Size = new System.Drawing.Size(72, 21); - this.CB_WeatherEnc3.TabIndex = 497; - // - // NUP_WeatherForme2 - // - this.NUP_WeatherForme2.Location = new System.Drawing.Point(217, 293); - this.NUP_WeatherForme2.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_WeatherForme2.Name = "NUP_WeatherForme2"; - this.NUP_WeatherForme2.Size = new System.Drawing.Size(31, 20); - this.NUP_WeatherForme2.TabIndex = 496; - // - // CB_WeatherEnc2 - // - this.CB_WeatherEnc2.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_WeatherEnc2.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_WeatherEnc2.FormattingEnabled = true; - this.CB_WeatherEnc2.Location = new System.Drawing.Point(142, 292); - this.CB_WeatherEnc2.Name = "CB_WeatherEnc2"; - this.CB_WeatherEnc2.Size = new System.Drawing.Size(72, 21); - this.CB_WeatherEnc2.TabIndex = 495; - // - // NUP_WeatherForme1 - // - this.NUP_WeatherForme1.Location = new System.Drawing.Point(108, 293); - this.NUP_WeatherForme1.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_WeatherForme1.Name = "NUP_WeatherForme1"; - this.NUP_WeatherForme1.Size = new System.Drawing.Size(31, 20); - this.NUP_WeatherForme1.TabIndex = 494; - // - // CB_WeatherEnc1 - // - this.CB_WeatherEnc1.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_WeatherEnc1.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_WeatherEnc1.FormattingEnabled = true; - this.CB_WeatherEnc1.Location = new System.Drawing.Point(33, 292); - this.CB_WeatherEnc1.Name = "CB_WeatherEnc1"; - this.CB_WeatherEnc1.Size = new System.Drawing.Size(72, 21); - this.CB_WeatherEnc1.TabIndex = 493; - // - // L_AddSOS - // - this.L_AddSOS.AutoSize = true; - this.L_AddSOS.Location = new System.Drawing.Point(12, 269); - this.L_AddSOS.Name = "L_AddSOS"; - this.L_AddSOS.Size = new System.Drawing.Size(76, 13); - this.L_AddSOS.TabIndex = 492; - this.L_AddSOS.Text = "Weather SOS:"; - // - // PB_NightTable - // - this.PB_NightTable.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.PB_NightTable.Location = new System.Drawing.Point(732, 255); - this.PB_NightTable.Name = "PB_NightTable"; - this.PB_NightTable.Size = new System.Drawing.Size(400, 300); - this.PB_NightTable.TabIndex = 491; - this.PB_NightTable.TabStop = false; - // - // PB_DayTable - // - this.PB_DayTable.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.PB_DayTable.Location = new System.Drawing.Point(302, 255); - this.PB_DayTable.Name = "PB_DayTable"; - this.PB_DayTable.Size = new System.Drawing.Size(400, 300); - this.PB_DayTable.TabIndex = 490; - this.PB_DayTable.TabStop = false; - // - // NUP_Forme80 - // - this.NUP_Forme80.Location = new System.Drawing.Point(1101, 229); - this.NUP_Forme80.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme80.Name = "NUP_Forme80"; - this.NUP_Forme80.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme80.TabIndex = 489; - // - // CB_Enc80 - // - this.CB_Enc80.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc80.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc80.FormattingEnabled = true; - this.CB_Enc80.Location = new System.Drawing.Point(1026, 229); - this.CB_Enc80.Name = "CB_Enc80"; - this.CB_Enc80.Size = new System.Drawing.Size(72, 21); - this.CB_Enc80.TabIndex = 488; - // - // NUP_Forme79 - // - this.NUP_Forme79.Location = new System.Drawing.Point(993, 230); - this.NUP_Forme79.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme79.Name = "NUP_Forme79"; - this.NUP_Forme79.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme79.TabIndex = 487; - // - // CB_Enc79 - // - this.CB_Enc79.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc79.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc79.FormattingEnabled = true; - this.CB_Enc79.Location = new System.Drawing.Point(918, 229); - this.CB_Enc79.Name = "CB_Enc79"; - this.CB_Enc79.Size = new System.Drawing.Size(72, 21); - this.CB_Enc79.TabIndex = 486; - // - // NUP_Forme78 - // - this.NUP_Forme78.Location = new System.Drawing.Point(885, 230); - this.NUP_Forme78.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme78.Name = "NUP_Forme78"; - this.NUP_Forme78.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme78.TabIndex = 485; - // - // CB_Enc78 - // - this.CB_Enc78.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc78.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc78.FormattingEnabled = true; - this.CB_Enc78.Location = new System.Drawing.Point(810, 229); - this.CB_Enc78.Name = "CB_Enc78"; - this.CB_Enc78.Size = new System.Drawing.Size(72, 21); - this.CB_Enc78.TabIndex = 484; - // - // NUP_Forme77 - // - this.NUP_Forme77.Location = new System.Drawing.Point(777, 230); - this.NUP_Forme77.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme77.Name = "NUP_Forme77"; - this.NUP_Forme77.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme77.TabIndex = 483; - // - // CB_Enc77 - // - this.CB_Enc77.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc77.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc77.FormattingEnabled = true; - this.CB_Enc77.Location = new System.Drawing.Point(702, 229); - this.CB_Enc77.Name = "CB_Enc77"; - this.CB_Enc77.Size = new System.Drawing.Size(72, 21); - this.CB_Enc77.TabIndex = 482; - // - // NUP_Forme76 - // - this.NUP_Forme76.Location = new System.Drawing.Point(668, 230); - this.NUP_Forme76.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme76.Name = "NUP_Forme76"; - this.NUP_Forme76.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme76.TabIndex = 481; - // - // CB_Enc76 - // - this.CB_Enc76.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc76.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc76.FormattingEnabled = true; - this.CB_Enc76.Location = new System.Drawing.Point(593, 229); - this.CB_Enc76.Name = "CB_Enc76"; - this.CB_Enc76.Size = new System.Drawing.Size(72, 21); - this.CB_Enc76.TabIndex = 480; - // - // NUP_Forme75 - // - this.NUP_Forme75.Location = new System.Drawing.Point(560, 230); - this.NUP_Forme75.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme75.Name = "NUP_Forme75"; - this.NUP_Forme75.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme75.TabIndex = 479; - // - // CB_Enc75 - // - this.CB_Enc75.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc75.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc75.FormattingEnabled = true; - this.CB_Enc75.Location = new System.Drawing.Point(485, 229); - this.CB_Enc75.Name = "CB_Enc75"; - this.CB_Enc75.Size = new System.Drawing.Size(72, 21); - this.CB_Enc75.TabIndex = 478; - // - // NUP_Forme74 - // - this.NUP_Forme74.Location = new System.Drawing.Point(452, 230); - this.NUP_Forme74.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme74.Name = "NUP_Forme74"; - this.NUP_Forme74.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme74.TabIndex = 477; - // - // CB_Enc74 - // - this.CB_Enc74.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc74.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc74.FormattingEnabled = true; - this.CB_Enc74.Location = new System.Drawing.Point(378, 229); - this.CB_Enc74.Name = "CB_Enc74"; - this.CB_Enc74.Size = new System.Drawing.Size(72, 21); - this.CB_Enc74.TabIndex = 476; - // - // NUP_Forme73 - // - this.NUP_Forme73.Location = new System.Drawing.Point(345, 230); - this.NUP_Forme73.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme73.Name = "NUP_Forme73"; - this.NUP_Forme73.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme73.TabIndex = 475; - // - // CB_Enc73 - // - this.CB_Enc73.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc73.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc73.FormattingEnabled = true; - this.CB_Enc73.Location = new System.Drawing.Point(271, 229); - this.CB_Enc73.Name = "CB_Enc73"; - this.CB_Enc73.Size = new System.Drawing.Size(72, 21); - this.CB_Enc73.TabIndex = 474; - // - // NUP_Forme72 - // - this.NUP_Forme72.Location = new System.Drawing.Point(238, 230); - this.NUP_Forme72.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme72.Name = "NUP_Forme72"; - this.NUP_Forme72.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme72.TabIndex = 473; - // - // CB_Enc72 - // - this.CB_Enc72.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc72.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc72.FormattingEnabled = true; - this.CB_Enc72.Location = new System.Drawing.Point(163, 229); - this.CB_Enc72.Name = "CB_Enc72"; - this.CB_Enc72.Size = new System.Drawing.Size(72, 21); - this.CB_Enc72.TabIndex = 472; - // - // NUP_Forme71 - // - this.NUP_Forme71.Location = new System.Drawing.Point(129, 230); - this.NUP_Forme71.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme71.Name = "NUP_Forme71"; - this.NUP_Forme71.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme71.TabIndex = 471; - // - // CB_Enc71 - // - this.CB_Enc71.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc71.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc71.FormattingEnabled = true; - this.CB_Enc71.Location = new System.Drawing.Point(54, 229); - this.CB_Enc71.Name = "CB_Enc71"; - this.CB_Enc71.Size = new System.Drawing.Size(72, 21); - this.CB_Enc71.TabIndex = 470; - // - // L_SOS7 - // - this.L_SOS7.AutoSize = true; - this.L_SOS7.Location = new System.Drawing.Point(12, 233); - this.L_SOS7.Name = "L_SOS7"; - this.L_SOS7.Size = new System.Drawing.Size(41, 13); - this.L_SOS7.TabIndex = 469; - this.L_SOS7.Text = "SOS 7:"; - // - // NUP_Forme70 - // - this.NUP_Forme70.Location = new System.Drawing.Point(1101, 202); - this.NUP_Forme70.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme70.Name = "NUP_Forme70"; - this.NUP_Forme70.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme70.TabIndex = 468; - // - // CB_Enc70 - // - this.CB_Enc70.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc70.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc70.FormattingEnabled = true; - this.CB_Enc70.Location = new System.Drawing.Point(1026, 202); - this.CB_Enc70.Name = "CB_Enc70"; - this.CB_Enc70.Size = new System.Drawing.Size(72, 21); - this.CB_Enc70.TabIndex = 467; - // - // NUP_Forme69 - // - this.NUP_Forme69.Location = new System.Drawing.Point(993, 203); - this.NUP_Forme69.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme69.Name = "NUP_Forme69"; - this.NUP_Forme69.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme69.TabIndex = 466; - // - // CB_Enc69 - // - this.CB_Enc69.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc69.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc69.FormattingEnabled = true; - this.CB_Enc69.Location = new System.Drawing.Point(918, 202); - this.CB_Enc69.Name = "CB_Enc69"; - this.CB_Enc69.Size = new System.Drawing.Size(72, 21); - this.CB_Enc69.TabIndex = 465; - // - // NUP_Forme68 - // - this.NUP_Forme68.Location = new System.Drawing.Point(885, 203); - this.NUP_Forme68.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme68.Name = "NUP_Forme68"; - this.NUP_Forme68.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme68.TabIndex = 464; - // - // CB_Enc68 - // - this.CB_Enc68.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc68.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc68.FormattingEnabled = true; - this.CB_Enc68.Location = new System.Drawing.Point(810, 202); - this.CB_Enc68.Name = "CB_Enc68"; - this.CB_Enc68.Size = new System.Drawing.Size(72, 21); - this.CB_Enc68.TabIndex = 463; - // - // NUP_Forme67 - // - this.NUP_Forme67.Location = new System.Drawing.Point(777, 203); - this.NUP_Forme67.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme67.Name = "NUP_Forme67"; - this.NUP_Forme67.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme67.TabIndex = 462; - // - // CB_Enc67 - // - this.CB_Enc67.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc67.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc67.FormattingEnabled = true; - this.CB_Enc67.Location = new System.Drawing.Point(702, 202); - this.CB_Enc67.Name = "CB_Enc67"; - this.CB_Enc67.Size = new System.Drawing.Size(72, 21); - this.CB_Enc67.TabIndex = 461; - // - // NUP_Forme66 - // - this.NUP_Forme66.Location = new System.Drawing.Point(668, 203); - this.NUP_Forme66.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme66.Name = "NUP_Forme66"; - this.NUP_Forme66.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme66.TabIndex = 460; - // - // CB_Enc66 - // - this.CB_Enc66.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc66.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc66.FormattingEnabled = true; - this.CB_Enc66.Location = new System.Drawing.Point(593, 202); - this.CB_Enc66.Name = "CB_Enc66"; - this.CB_Enc66.Size = new System.Drawing.Size(72, 21); - this.CB_Enc66.TabIndex = 459; - // - // NUP_Forme65 - // - this.NUP_Forme65.Location = new System.Drawing.Point(560, 203); - this.NUP_Forme65.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme65.Name = "NUP_Forme65"; - this.NUP_Forme65.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme65.TabIndex = 458; - // - // CB_Enc65 - // - this.CB_Enc65.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc65.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc65.FormattingEnabled = true; - this.CB_Enc65.Location = new System.Drawing.Point(485, 202); - this.CB_Enc65.Name = "CB_Enc65"; - this.CB_Enc65.Size = new System.Drawing.Size(72, 21); - this.CB_Enc65.TabIndex = 457; - // - // NUP_Forme64 - // - this.NUP_Forme64.Location = new System.Drawing.Point(452, 203); - this.NUP_Forme64.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme64.Name = "NUP_Forme64"; - this.NUP_Forme64.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme64.TabIndex = 456; - // - // CB_Enc64 - // - this.CB_Enc64.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc64.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc64.FormattingEnabled = true; - this.CB_Enc64.Location = new System.Drawing.Point(378, 202); - this.CB_Enc64.Name = "CB_Enc64"; - this.CB_Enc64.Size = new System.Drawing.Size(72, 21); - this.CB_Enc64.TabIndex = 455; - // - // NUP_Forme63 - // - this.NUP_Forme63.Location = new System.Drawing.Point(345, 203); - this.NUP_Forme63.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme63.Name = "NUP_Forme63"; - this.NUP_Forme63.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme63.TabIndex = 454; - // - // CB_Enc63 - // - this.CB_Enc63.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc63.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc63.FormattingEnabled = true; - this.CB_Enc63.Location = new System.Drawing.Point(271, 202); - this.CB_Enc63.Name = "CB_Enc63"; - this.CB_Enc63.Size = new System.Drawing.Size(72, 21); - this.CB_Enc63.TabIndex = 453; - // - // NUP_Forme62 - // - this.NUP_Forme62.Location = new System.Drawing.Point(238, 203); - this.NUP_Forme62.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme62.Name = "NUP_Forme62"; - this.NUP_Forme62.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme62.TabIndex = 452; - // - // CB_Enc62 - // - this.CB_Enc62.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc62.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc62.FormattingEnabled = true; - this.CB_Enc62.Location = new System.Drawing.Point(163, 202); - this.CB_Enc62.Name = "CB_Enc62"; - this.CB_Enc62.Size = new System.Drawing.Size(72, 21); - this.CB_Enc62.TabIndex = 451; - // - // NUP_Forme61 - // - this.NUP_Forme61.Location = new System.Drawing.Point(129, 203); - this.NUP_Forme61.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme61.Name = "NUP_Forme61"; - this.NUP_Forme61.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme61.TabIndex = 450; - // - // CB_Enc61 - // - this.CB_Enc61.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc61.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc61.FormattingEnabled = true; - this.CB_Enc61.Location = new System.Drawing.Point(54, 202); - this.CB_Enc61.Name = "CB_Enc61"; - this.CB_Enc61.Size = new System.Drawing.Size(72, 21); - this.CB_Enc61.TabIndex = 449; - // - // L_SOS6 - // - this.L_SOS6.AutoSize = true; - this.L_SOS6.Location = new System.Drawing.Point(12, 206); - this.L_SOS6.Name = "L_SOS6"; - this.L_SOS6.Size = new System.Drawing.Size(41, 13); - this.L_SOS6.TabIndex = 448; - this.L_SOS6.Text = "SOS 6:"; - // - // NUP_Forme60 - // - this.NUP_Forme60.Location = new System.Drawing.Point(1101, 175); - this.NUP_Forme60.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme60.Name = "NUP_Forme60"; - this.NUP_Forme60.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme60.TabIndex = 447; - // - // CB_Enc60 - // - this.CB_Enc60.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc60.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc60.FormattingEnabled = true; - this.CB_Enc60.Location = new System.Drawing.Point(1026, 175); - this.CB_Enc60.Name = "CB_Enc60"; - this.CB_Enc60.Size = new System.Drawing.Size(72, 21); - this.CB_Enc60.TabIndex = 446; - // - // NUP_Forme59 - // - this.NUP_Forme59.Location = new System.Drawing.Point(993, 176); - this.NUP_Forme59.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme59.Name = "NUP_Forme59"; - this.NUP_Forme59.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme59.TabIndex = 445; - // - // CB_Enc59 - // - this.CB_Enc59.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc59.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc59.FormattingEnabled = true; - this.CB_Enc59.Location = new System.Drawing.Point(918, 175); - this.CB_Enc59.Name = "CB_Enc59"; - this.CB_Enc59.Size = new System.Drawing.Size(72, 21); - this.CB_Enc59.TabIndex = 444; - // - // NUP_Forme58 - // - this.NUP_Forme58.Location = new System.Drawing.Point(885, 176); - this.NUP_Forme58.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme58.Name = "NUP_Forme58"; - this.NUP_Forme58.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme58.TabIndex = 443; - // - // CB_Enc58 - // - this.CB_Enc58.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc58.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc58.FormattingEnabled = true; - this.CB_Enc58.Location = new System.Drawing.Point(810, 175); - this.CB_Enc58.Name = "CB_Enc58"; - this.CB_Enc58.Size = new System.Drawing.Size(72, 21); - this.CB_Enc58.TabIndex = 442; - // - // NUP_Forme57 - // - this.NUP_Forme57.Location = new System.Drawing.Point(777, 176); - this.NUP_Forme57.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme57.Name = "NUP_Forme57"; - this.NUP_Forme57.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme57.TabIndex = 441; - // - // CB_Enc57 - // - this.CB_Enc57.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc57.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc57.FormattingEnabled = true; - this.CB_Enc57.Location = new System.Drawing.Point(702, 175); - this.CB_Enc57.Name = "CB_Enc57"; - this.CB_Enc57.Size = new System.Drawing.Size(72, 21); - this.CB_Enc57.TabIndex = 440; - // - // NUP_Forme56 - // - this.NUP_Forme56.Location = new System.Drawing.Point(668, 176); - this.NUP_Forme56.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme56.Name = "NUP_Forme56"; - this.NUP_Forme56.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme56.TabIndex = 439; - // - // CB_Enc56 - // - this.CB_Enc56.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc56.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc56.FormattingEnabled = true; - this.CB_Enc56.Location = new System.Drawing.Point(593, 175); - this.CB_Enc56.Name = "CB_Enc56"; - this.CB_Enc56.Size = new System.Drawing.Size(72, 21); - this.CB_Enc56.TabIndex = 438; - // - // NUP_Forme55 - // - this.NUP_Forme55.Location = new System.Drawing.Point(560, 176); - this.NUP_Forme55.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme55.Name = "NUP_Forme55"; - this.NUP_Forme55.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme55.TabIndex = 437; - // - // CB_Enc55 - // - this.CB_Enc55.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc55.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc55.FormattingEnabled = true; - this.CB_Enc55.Location = new System.Drawing.Point(485, 175); - this.CB_Enc55.Name = "CB_Enc55"; - this.CB_Enc55.Size = new System.Drawing.Size(72, 21); - this.CB_Enc55.TabIndex = 436; - // - // NUP_Forme54 - // - this.NUP_Forme54.Location = new System.Drawing.Point(452, 176); - this.NUP_Forme54.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme54.Name = "NUP_Forme54"; - this.NUP_Forme54.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme54.TabIndex = 435; - // - // CB_Enc54 - // - this.CB_Enc54.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc54.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc54.FormattingEnabled = true; - this.CB_Enc54.Location = new System.Drawing.Point(378, 175); - this.CB_Enc54.Name = "CB_Enc54"; - this.CB_Enc54.Size = new System.Drawing.Size(72, 21); - this.CB_Enc54.TabIndex = 434; - // - // NUP_Forme53 - // - this.NUP_Forme53.Location = new System.Drawing.Point(345, 176); - this.NUP_Forme53.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme53.Name = "NUP_Forme53"; - this.NUP_Forme53.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme53.TabIndex = 433; - // - // CB_Enc53 - // - this.CB_Enc53.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc53.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc53.FormattingEnabled = true; - this.CB_Enc53.Location = new System.Drawing.Point(271, 175); - this.CB_Enc53.Name = "CB_Enc53"; - this.CB_Enc53.Size = new System.Drawing.Size(72, 21); - this.CB_Enc53.TabIndex = 432; - // - // NUP_Forme52 - // - this.NUP_Forme52.Location = new System.Drawing.Point(238, 176); - this.NUP_Forme52.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme52.Name = "NUP_Forme52"; - this.NUP_Forme52.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme52.TabIndex = 431; - // - // CB_Enc52 - // - this.CB_Enc52.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc52.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc52.FormattingEnabled = true; - this.CB_Enc52.Location = new System.Drawing.Point(163, 175); - this.CB_Enc52.Name = "CB_Enc52"; - this.CB_Enc52.Size = new System.Drawing.Size(72, 21); - this.CB_Enc52.TabIndex = 430; - // - // NUP_Forme51 - // - this.NUP_Forme51.Location = new System.Drawing.Point(129, 176); - this.NUP_Forme51.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme51.Name = "NUP_Forme51"; - this.NUP_Forme51.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme51.TabIndex = 429; - // - // CB_Enc51 - // - this.CB_Enc51.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc51.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc51.FormattingEnabled = true; - this.CB_Enc51.Location = new System.Drawing.Point(54, 175); - this.CB_Enc51.Name = "CB_Enc51"; - this.CB_Enc51.Size = new System.Drawing.Size(72, 21); - this.CB_Enc51.TabIndex = 428; - // - // L_SOS5 - // - this.L_SOS5.AutoSize = true; - this.L_SOS5.Location = new System.Drawing.Point(12, 179); - this.L_SOS5.Name = "L_SOS5"; - this.L_SOS5.Size = new System.Drawing.Size(41, 13); - this.L_SOS5.TabIndex = 427; - this.L_SOS5.Text = "SOS 5:"; - // - // NUP_Forme50 - // - this.NUP_Forme50.Location = new System.Drawing.Point(1101, 148); - this.NUP_Forme50.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme50.Name = "NUP_Forme50"; - this.NUP_Forme50.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme50.TabIndex = 426; - // - // CB_Enc50 - // - this.CB_Enc50.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc50.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc50.FormattingEnabled = true; - this.CB_Enc50.Location = new System.Drawing.Point(1026, 148); - this.CB_Enc50.Name = "CB_Enc50"; - this.CB_Enc50.Size = new System.Drawing.Size(72, 21); - this.CB_Enc50.TabIndex = 425; - // - // NUP_Forme49 - // - this.NUP_Forme49.Location = new System.Drawing.Point(993, 149); - this.NUP_Forme49.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme49.Name = "NUP_Forme49"; - this.NUP_Forme49.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme49.TabIndex = 424; - // - // CB_Enc49 - // - this.CB_Enc49.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc49.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc49.FormattingEnabled = true; - this.CB_Enc49.Location = new System.Drawing.Point(918, 148); - this.CB_Enc49.Name = "CB_Enc49"; - this.CB_Enc49.Size = new System.Drawing.Size(72, 21); - this.CB_Enc49.TabIndex = 423; - // - // NUP_Forme48 - // - this.NUP_Forme48.Location = new System.Drawing.Point(885, 149); - this.NUP_Forme48.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme48.Name = "NUP_Forme48"; - this.NUP_Forme48.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme48.TabIndex = 422; - // - // CB_Enc48 - // - this.CB_Enc48.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc48.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc48.FormattingEnabled = true; - this.CB_Enc48.Location = new System.Drawing.Point(810, 148); - this.CB_Enc48.Name = "CB_Enc48"; - this.CB_Enc48.Size = new System.Drawing.Size(72, 21); - this.CB_Enc48.TabIndex = 421; - // - // NUP_Forme47 - // - this.NUP_Forme47.Location = new System.Drawing.Point(777, 149); - this.NUP_Forme47.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme47.Name = "NUP_Forme47"; - this.NUP_Forme47.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme47.TabIndex = 420; - // - // CB_Enc47 - // - this.CB_Enc47.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc47.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc47.FormattingEnabled = true; - this.CB_Enc47.Location = new System.Drawing.Point(702, 148); - this.CB_Enc47.Name = "CB_Enc47"; - this.CB_Enc47.Size = new System.Drawing.Size(72, 21); - this.CB_Enc47.TabIndex = 419; - // - // NUP_Forme46 - // - this.NUP_Forme46.Location = new System.Drawing.Point(668, 149); - this.NUP_Forme46.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme46.Name = "NUP_Forme46"; - this.NUP_Forme46.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme46.TabIndex = 418; - // - // CB_Enc46 - // - this.CB_Enc46.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc46.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc46.FormattingEnabled = true; - this.CB_Enc46.Location = new System.Drawing.Point(593, 148); - this.CB_Enc46.Name = "CB_Enc46"; - this.CB_Enc46.Size = new System.Drawing.Size(72, 21); - this.CB_Enc46.TabIndex = 417; - // - // NUP_Forme45 - // - this.NUP_Forme45.Location = new System.Drawing.Point(560, 149); - this.NUP_Forme45.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme45.Name = "NUP_Forme45"; - this.NUP_Forme45.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme45.TabIndex = 416; - // - // CB_Enc45 - // - this.CB_Enc45.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc45.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc45.FormattingEnabled = true; - this.CB_Enc45.Location = new System.Drawing.Point(485, 148); - this.CB_Enc45.Name = "CB_Enc45"; - this.CB_Enc45.Size = new System.Drawing.Size(72, 21); - this.CB_Enc45.TabIndex = 415; - // - // NUP_Forme44 - // - this.NUP_Forme44.Location = new System.Drawing.Point(452, 149); - this.NUP_Forme44.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme44.Name = "NUP_Forme44"; - this.NUP_Forme44.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme44.TabIndex = 414; - // - // CB_Enc44 - // - this.CB_Enc44.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc44.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc44.FormattingEnabled = true; - this.CB_Enc44.Location = new System.Drawing.Point(378, 148); - this.CB_Enc44.Name = "CB_Enc44"; - this.CB_Enc44.Size = new System.Drawing.Size(72, 21); - this.CB_Enc44.TabIndex = 413; - // - // NUP_Forme43 - // - this.NUP_Forme43.Location = new System.Drawing.Point(345, 149); - this.NUP_Forme43.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme43.Name = "NUP_Forme43"; - this.NUP_Forme43.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme43.TabIndex = 412; - // - // CB_Enc43 - // - this.CB_Enc43.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc43.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc43.FormattingEnabled = true; - this.CB_Enc43.Location = new System.Drawing.Point(271, 148); - this.CB_Enc43.Name = "CB_Enc43"; - this.CB_Enc43.Size = new System.Drawing.Size(72, 21); - this.CB_Enc43.TabIndex = 411; - // - // NUP_Forme42 - // - this.NUP_Forme42.Location = new System.Drawing.Point(238, 149); - this.NUP_Forme42.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme42.Name = "NUP_Forme42"; - this.NUP_Forme42.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme42.TabIndex = 410; - // - // CB_Enc42 - // - this.CB_Enc42.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc42.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc42.FormattingEnabled = true; - this.CB_Enc42.Location = new System.Drawing.Point(163, 148); - this.CB_Enc42.Name = "CB_Enc42"; - this.CB_Enc42.Size = new System.Drawing.Size(72, 21); - this.CB_Enc42.TabIndex = 409; - // - // NUP_Forme41 - // - this.NUP_Forme41.Location = new System.Drawing.Point(129, 149); - this.NUP_Forme41.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme41.Name = "NUP_Forme41"; - this.NUP_Forme41.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme41.TabIndex = 408; - // - // CB_Enc41 - // - this.CB_Enc41.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc41.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc41.FormattingEnabled = true; - this.CB_Enc41.Location = new System.Drawing.Point(54, 148); - this.CB_Enc41.Name = "CB_Enc41"; - this.CB_Enc41.Size = new System.Drawing.Size(72, 21); - this.CB_Enc41.TabIndex = 407; - // - // L_SOS4 - // - this.L_SOS4.AutoSize = true; - this.L_SOS4.Location = new System.Drawing.Point(12, 152); - this.L_SOS4.Name = "L_SOS4"; - this.L_SOS4.Size = new System.Drawing.Size(41, 13); - this.L_SOS4.TabIndex = 406; - this.L_SOS4.Text = "SOS 4:"; - // - // NUP_Forme40 - // - this.NUP_Forme40.Location = new System.Drawing.Point(1101, 121); - this.NUP_Forme40.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme40.Name = "NUP_Forme40"; - this.NUP_Forme40.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme40.TabIndex = 405; - // - // CB_Enc40 - // - this.CB_Enc40.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc40.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc40.FormattingEnabled = true; - this.CB_Enc40.Location = new System.Drawing.Point(1026, 121); - this.CB_Enc40.Name = "CB_Enc40"; - this.CB_Enc40.Size = new System.Drawing.Size(72, 21); - this.CB_Enc40.TabIndex = 404; - // - // NUP_Forme39 - // - this.NUP_Forme39.Location = new System.Drawing.Point(993, 122); - this.NUP_Forme39.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme39.Name = "NUP_Forme39"; - this.NUP_Forme39.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme39.TabIndex = 403; - // - // CB_Enc39 - // - this.CB_Enc39.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc39.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc39.FormattingEnabled = true; - this.CB_Enc39.Location = new System.Drawing.Point(918, 121); - this.CB_Enc39.Name = "CB_Enc39"; - this.CB_Enc39.Size = new System.Drawing.Size(72, 21); - this.CB_Enc39.TabIndex = 402; - // - // NUP_Forme38 - // - this.NUP_Forme38.Location = new System.Drawing.Point(885, 122); - this.NUP_Forme38.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme38.Name = "NUP_Forme38"; - this.NUP_Forme38.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme38.TabIndex = 401; - // - // CB_Enc38 - // - this.CB_Enc38.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc38.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc38.FormattingEnabled = true; - this.CB_Enc38.Location = new System.Drawing.Point(810, 121); - this.CB_Enc38.Name = "CB_Enc38"; - this.CB_Enc38.Size = new System.Drawing.Size(72, 21); - this.CB_Enc38.TabIndex = 400; - // - // NUP_Forme37 - // - this.NUP_Forme37.Location = new System.Drawing.Point(777, 122); - this.NUP_Forme37.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme37.Name = "NUP_Forme37"; - this.NUP_Forme37.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme37.TabIndex = 399; - // - // CB_Enc37 - // - this.CB_Enc37.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc37.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc37.FormattingEnabled = true; - this.CB_Enc37.Location = new System.Drawing.Point(702, 121); - this.CB_Enc37.Name = "CB_Enc37"; - this.CB_Enc37.Size = new System.Drawing.Size(72, 21); - this.CB_Enc37.TabIndex = 398; - // - // NUP_Forme36 - // - this.NUP_Forme36.Location = new System.Drawing.Point(668, 122); - this.NUP_Forme36.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme36.Name = "NUP_Forme36"; - this.NUP_Forme36.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme36.TabIndex = 397; - // - // CB_Enc36 - // - this.CB_Enc36.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc36.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc36.FormattingEnabled = true; - this.CB_Enc36.Location = new System.Drawing.Point(593, 121); - this.CB_Enc36.Name = "CB_Enc36"; - this.CB_Enc36.Size = new System.Drawing.Size(72, 21); - this.CB_Enc36.TabIndex = 396; - // - // NUP_Forme35 - // - this.NUP_Forme35.Location = new System.Drawing.Point(560, 122); - this.NUP_Forme35.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme35.Name = "NUP_Forme35"; - this.NUP_Forme35.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme35.TabIndex = 395; - // - // CB_Enc35 - // - this.CB_Enc35.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc35.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc35.FormattingEnabled = true; - this.CB_Enc35.Location = new System.Drawing.Point(485, 121); - this.CB_Enc35.Name = "CB_Enc35"; - this.CB_Enc35.Size = new System.Drawing.Size(72, 21); - this.CB_Enc35.TabIndex = 394; - // - // NUP_Forme34 - // - this.NUP_Forme34.Location = new System.Drawing.Point(452, 122); - this.NUP_Forme34.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme34.Name = "NUP_Forme34"; - this.NUP_Forme34.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme34.TabIndex = 393; - // - // CB_Enc34 - // - this.CB_Enc34.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc34.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc34.FormattingEnabled = true; - this.CB_Enc34.Location = new System.Drawing.Point(378, 121); - this.CB_Enc34.Name = "CB_Enc34"; - this.CB_Enc34.Size = new System.Drawing.Size(72, 21); - this.CB_Enc34.TabIndex = 392; - // - // NUP_Forme33 - // - this.NUP_Forme33.Location = new System.Drawing.Point(345, 122); - this.NUP_Forme33.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme33.Name = "NUP_Forme33"; - this.NUP_Forme33.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme33.TabIndex = 391; - // - // CB_Enc33 - // - this.CB_Enc33.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc33.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc33.FormattingEnabled = true; - this.CB_Enc33.Location = new System.Drawing.Point(271, 121); - this.CB_Enc33.Name = "CB_Enc33"; - this.CB_Enc33.Size = new System.Drawing.Size(72, 21); - this.CB_Enc33.TabIndex = 390; - // - // NUP_Forme32 - // - this.NUP_Forme32.Location = new System.Drawing.Point(238, 122); - this.NUP_Forme32.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme32.Name = "NUP_Forme32"; - this.NUP_Forme32.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme32.TabIndex = 389; - // - // CB_Enc32 - // - this.CB_Enc32.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc32.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc32.FormattingEnabled = true; - this.CB_Enc32.Location = new System.Drawing.Point(163, 121); - this.CB_Enc32.Name = "CB_Enc32"; - this.CB_Enc32.Size = new System.Drawing.Size(72, 21); - this.CB_Enc32.TabIndex = 388; - // - // NUP_Forme31 - // - this.NUP_Forme31.Location = new System.Drawing.Point(129, 122); - this.NUP_Forme31.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme31.Name = "NUP_Forme31"; - this.NUP_Forme31.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme31.TabIndex = 387; - // - // CB_Enc31 - // - this.CB_Enc31.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc31.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc31.FormattingEnabled = true; - this.CB_Enc31.Location = new System.Drawing.Point(54, 121); - this.CB_Enc31.Name = "CB_Enc31"; - this.CB_Enc31.Size = new System.Drawing.Size(72, 21); - this.CB_Enc31.TabIndex = 386; - // - // L_SOS3 - // - this.L_SOS3.AutoSize = true; - this.L_SOS3.Location = new System.Drawing.Point(12, 125); - this.L_SOS3.Name = "L_SOS3"; - this.L_SOS3.Size = new System.Drawing.Size(41, 13); - this.L_SOS3.TabIndex = 385; - this.L_SOS3.Text = "SOS 3:"; - // - // NUP_Forme30 - // - this.NUP_Forme30.Location = new System.Drawing.Point(1101, 94); - this.NUP_Forme30.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme30.Name = "NUP_Forme30"; - this.NUP_Forme30.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme30.TabIndex = 384; - // - // CB_Enc30 - // - this.CB_Enc30.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc30.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc30.FormattingEnabled = true; - this.CB_Enc30.Location = new System.Drawing.Point(1026, 94); - this.CB_Enc30.Name = "CB_Enc30"; - this.CB_Enc30.Size = new System.Drawing.Size(72, 21); - this.CB_Enc30.TabIndex = 383; - // - // NUP_Forme29 - // - this.NUP_Forme29.Location = new System.Drawing.Point(993, 95); - this.NUP_Forme29.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme29.Name = "NUP_Forme29"; - this.NUP_Forme29.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme29.TabIndex = 382; - // - // CB_Enc29 - // - this.CB_Enc29.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc29.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc29.FormattingEnabled = true; - this.CB_Enc29.Location = new System.Drawing.Point(918, 94); - this.CB_Enc29.Name = "CB_Enc29"; - this.CB_Enc29.Size = new System.Drawing.Size(72, 21); - this.CB_Enc29.TabIndex = 381; - // - // NUP_Forme28 - // - this.NUP_Forme28.Location = new System.Drawing.Point(885, 95); - this.NUP_Forme28.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme28.Name = "NUP_Forme28"; - this.NUP_Forme28.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme28.TabIndex = 380; - // - // CB_Enc28 - // - this.CB_Enc28.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc28.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc28.FormattingEnabled = true; - this.CB_Enc28.Location = new System.Drawing.Point(810, 94); - this.CB_Enc28.Name = "CB_Enc28"; - this.CB_Enc28.Size = new System.Drawing.Size(72, 21); - this.CB_Enc28.TabIndex = 379; - // - // NUP_Forme27 - // - this.NUP_Forme27.Location = new System.Drawing.Point(777, 95); - this.NUP_Forme27.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme27.Name = "NUP_Forme27"; - this.NUP_Forme27.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme27.TabIndex = 378; - // - // CB_Enc27 - // - this.CB_Enc27.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc27.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc27.FormattingEnabled = true; - this.CB_Enc27.Location = new System.Drawing.Point(702, 94); - this.CB_Enc27.Name = "CB_Enc27"; - this.CB_Enc27.Size = new System.Drawing.Size(72, 21); - this.CB_Enc27.TabIndex = 377; - // - // NUP_Forme26 - // - this.NUP_Forme26.Location = new System.Drawing.Point(668, 95); - this.NUP_Forme26.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme26.Name = "NUP_Forme26"; - this.NUP_Forme26.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme26.TabIndex = 376; - // - // CB_Enc26 - // - this.CB_Enc26.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc26.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc26.FormattingEnabled = true; - this.CB_Enc26.Location = new System.Drawing.Point(593, 94); - this.CB_Enc26.Name = "CB_Enc26"; - this.CB_Enc26.Size = new System.Drawing.Size(72, 21); - this.CB_Enc26.TabIndex = 375; - // - // NUP_Forme25 - // - this.NUP_Forme25.Location = new System.Drawing.Point(560, 95); - this.NUP_Forme25.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme25.Name = "NUP_Forme25"; - this.NUP_Forme25.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme25.TabIndex = 374; - // - // CB_Enc25 - // - this.CB_Enc25.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc25.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc25.FormattingEnabled = true; - this.CB_Enc25.Location = new System.Drawing.Point(485, 94); - this.CB_Enc25.Name = "CB_Enc25"; - this.CB_Enc25.Size = new System.Drawing.Size(72, 21); - this.CB_Enc25.TabIndex = 373; - // - // NUP_Forme24 - // - this.NUP_Forme24.Location = new System.Drawing.Point(452, 95); - this.NUP_Forme24.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme24.Name = "NUP_Forme24"; - this.NUP_Forme24.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme24.TabIndex = 372; - // - // CB_Enc24 - // - this.CB_Enc24.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc24.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc24.FormattingEnabled = true; - this.CB_Enc24.Location = new System.Drawing.Point(378, 94); - this.CB_Enc24.Name = "CB_Enc24"; - this.CB_Enc24.Size = new System.Drawing.Size(72, 21); - this.CB_Enc24.TabIndex = 371; - // - // NUP_Forme23 - // - this.NUP_Forme23.Location = new System.Drawing.Point(345, 95); - this.NUP_Forme23.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme23.Name = "NUP_Forme23"; - this.NUP_Forme23.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme23.TabIndex = 370; - // - // CB_Enc23 - // - this.CB_Enc23.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc23.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc23.FormattingEnabled = true; - this.CB_Enc23.Location = new System.Drawing.Point(271, 94); - this.CB_Enc23.Name = "CB_Enc23"; - this.CB_Enc23.Size = new System.Drawing.Size(72, 21); - this.CB_Enc23.TabIndex = 369; - // - // NUP_Forme22 - // - this.NUP_Forme22.Location = new System.Drawing.Point(238, 95); - this.NUP_Forme22.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme22.Name = "NUP_Forme22"; - this.NUP_Forme22.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme22.TabIndex = 368; - // - // CB_Enc22 - // - this.CB_Enc22.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc22.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc22.FormattingEnabled = true; - this.CB_Enc22.Location = new System.Drawing.Point(163, 94); - this.CB_Enc22.Name = "CB_Enc22"; - this.CB_Enc22.Size = new System.Drawing.Size(72, 21); - this.CB_Enc22.TabIndex = 367; - // - // NUP_Forme21 - // - this.NUP_Forme21.Location = new System.Drawing.Point(129, 95); - this.NUP_Forme21.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme21.Name = "NUP_Forme21"; - this.NUP_Forme21.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme21.TabIndex = 366; - // - // CB_Enc21 - // - this.CB_Enc21.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc21.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc21.FormattingEnabled = true; - this.CB_Enc21.Location = new System.Drawing.Point(54, 94); - this.CB_Enc21.Name = "CB_Enc21"; - this.CB_Enc21.Size = new System.Drawing.Size(72, 21); - this.CB_Enc21.TabIndex = 365; - // - // L_SOS2 - // - this.L_SOS2.AutoSize = true; - this.L_SOS2.Location = new System.Drawing.Point(12, 98); - this.L_SOS2.Name = "L_SOS2"; - this.L_SOS2.Size = new System.Drawing.Size(41, 13); - this.L_SOS2.TabIndex = 364; - this.L_SOS2.Text = "SOS 2:"; - // - // NUP_Forme20 - // - this.NUP_Forme20.Location = new System.Drawing.Point(1101, 67); - this.NUP_Forme20.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme20.Name = "NUP_Forme20"; - this.NUP_Forme20.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme20.TabIndex = 363; - // - // CB_Enc20 - // - this.CB_Enc20.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc20.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc20.FormattingEnabled = true; - this.CB_Enc20.Location = new System.Drawing.Point(1026, 67); - this.CB_Enc20.Name = "CB_Enc20"; - this.CB_Enc20.Size = new System.Drawing.Size(72, 21); - this.CB_Enc20.TabIndex = 362; - // - // NUP_Forme19 - // - this.NUP_Forme19.Location = new System.Drawing.Point(993, 68); - this.NUP_Forme19.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme19.Name = "NUP_Forme19"; - this.NUP_Forme19.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme19.TabIndex = 361; - // - // CB_Enc19 - // - this.CB_Enc19.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc19.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc19.FormattingEnabled = true; - this.CB_Enc19.Location = new System.Drawing.Point(918, 67); - this.CB_Enc19.Name = "CB_Enc19"; - this.CB_Enc19.Size = new System.Drawing.Size(72, 21); - this.CB_Enc19.TabIndex = 360; - // - // NUP_Forme18 - // - this.NUP_Forme18.Location = new System.Drawing.Point(885, 68); - this.NUP_Forme18.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme18.Name = "NUP_Forme18"; - this.NUP_Forme18.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme18.TabIndex = 359; - // - // CB_Enc18 - // - this.CB_Enc18.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc18.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc18.FormattingEnabled = true; - this.CB_Enc18.Location = new System.Drawing.Point(810, 67); - this.CB_Enc18.Name = "CB_Enc18"; - this.CB_Enc18.Size = new System.Drawing.Size(72, 21); - this.CB_Enc18.TabIndex = 358; - // - // NUP_Forme17 - // - this.NUP_Forme17.Location = new System.Drawing.Point(777, 68); - this.NUP_Forme17.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme17.Name = "NUP_Forme17"; - this.NUP_Forme17.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme17.TabIndex = 357; - // - // CB_Enc17 - // - this.CB_Enc17.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc17.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc17.FormattingEnabled = true; - this.CB_Enc17.Location = new System.Drawing.Point(702, 67); - this.CB_Enc17.Name = "CB_Enc17"; - this.CB_Enc17.Size = new System.Drawing.Size(72, 21); - this.CB_Enc17.TabIndex = 356; - // - // NUP_Forme16 - // - this.NUP_Forme16.Location = new System.Drawing.Point(668, 68); - this.NUP_Forme16.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme16.Name = "NUP_Forme16"; - this.NUP_Forme16.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme16.TabIndex = 355; - // - // CB_Enc16 - // - this.CB_Enc16.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc16.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc16.FormattingEnabled = true; - this.CB_Enc16.Location = new System.Drawing.Point(593, 67); - this.CB_Enc16.Name = "CB_Enc16"; - this.CB_Enc16.Size = new System.Drawing.Size(72, 21); - this.CB_Enc16.TabIndex = 354; - // - // NUP_Forme15 - // - this.NUP_Forme15.Location = new System.Drawing.Point(560, 68); - this.NUP_Forme15.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme15.Name = "NUP_Forme15"; - this.NUP_Forme15.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme15.TabIndex = 353; - // - // CB_Enc15 - // - this.CB_Enc15.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc15.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc15.FormattingEnabled = true; - this.CB_Enc15.Location = new System.Drawing.Point(485, 67); - this.CB_Enc15.Name = "CB_Enc15"; - this.CB_Enc15.Size = new System.Drawing.Size(72, 21); - this.CB_Enc15.TabIndex = 352; - // - // NUP_Forme14 - // - this.NUP_Forme14.Location = new System.Drawing.Point(452, 68); - this.NUP_Forme14.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme14.Name = "NUP_Forme14"; - this.NUP_Forme14.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme14.TabIndex = 351; - // - // CB_Enc14 - // - this.CB_Enc14.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc14.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc14.FormattingEnabled = true; - this.CB_Enc14.Location = new System.Drawing.Point(378, 67); - this.CB_Enc14.Name = "CB_Enc14"; - this.CB_Enc14.Size = new System.Drawing.Size(72, 21); - this.CB_Enc14.TabIndex = 350; - // - // NUP_Forme13 - // - this.NUP_Forme13.Location = new System.Drawing.Point(345, 68); - this.NUP_Forme13.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme13.Name = "NUP_Forme13"; - this.NUP_Forme13.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme13.TabIndex = 349; - // - // CB_Enc13 - // - this.CB_Enc13.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc13.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc13.FormattingEnabled = true; - this.CB_Enc13.Location = new System.Drawing.Point(271, 67); - this.CB_Enc13.Name = "CB_Enc13"; - this.CB_Enc13.Size = new System.Drawing.Size(72, 21); - this.CB_Enc13.TabIndex = 348; - // - // NUP_Forme12 - // - this.NUP_Forme12.Location = new System.Drawing.Point(238, 68); - this.NUP_Forme12.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme12.Name = "NUP_Forme12"; - this.NUP_Forme12.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme12.TabIndex = 347; - // - // CB_Enc12 - // - this.CB_Enc12.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc12.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc12.FormattingEnabled = true; - this.CB_Enc12.Location = new System.Drawing.Point(163, 67); - this.CB_Enc12.Name = "CB_Enc12"; - this.CB_Enc12.Size = new System.Drawing.Size(72, 21); - this.CB_Enc12.TabIndex = 346; - // - // NUP_Forme11 - // - this.NUP_Forme11.Location = new System.Drawing.Point(129, 68); - this.NUP_Forme11.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme11.Name = "NUP_Forme11"; - this.NUP_Forme11.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme11.TabIndex = 345; - // - // CB_Enc11 - // - this.CB_Enc11.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc11.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc11.FormattingEnabled = true; - this.CB_Enc11.Location = new System.Drawing.Point(54, 67); - this.CB_Enc11.Name = "CB_Enc11"; - this.CB_Enc11.Size = new System.Drawing.Size(72, 21); - this.CB_Enc11.TabIndex = 344; - // - // L_SOS1 - // - this.L_SOS1.AutoSize = true; - this.L_SOS1.Location = new System.Drawing.Point(12, 71); - this.L_SOS1.Name = "L_SOS1"; - this.L_SOS1.Size = new System.Drawing.Size(41, 13); - this.L_SOS1.TabIndex = 343; - this.L_SOS1.Text = "SOS 1:"; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(15, 39); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(39, 13); - this.label1.TabIndex = 342; - this.label1.Text = "Initials:"; - // - // NUP_Forme10 - // - this.NUP_Forme10.Location = new System.Drawing.Point(1101, 37); - this.NUP_Forme10.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme10.Name = "NUP_Forme10"; - this.NUP_Forme10.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme10.TabIndex = 340; - // - // CB_Enc10 - // - this.CB_Enc10.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc10.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc10.FormattingEnabled = true; - this.CB_Enc10.Location = new System.Drawing.Point(1026, 37); - this.CB_Enc10.Name = "CB_Enc10"; - this.CB_Enc10.Size = new System.Drawing.Size(72, 21); - this.CB_Enc10.TabIndex = 339; - // - // NUP_Rate10 - // - this.NUP_Rate10.AutoSize = true; - this.NUP_Rate10.Location = new System.Drawing.Point(1052, 16); - this.NUP_Rate10.Name = "NUP_Rate10"; - this.NUP_Rate10.Size = new System.Drawing.Size(41, 20); - this.NUP_Rate10.TabIndex = 341; - // - // NUP_Forme09 - // - this.NUP_Forme09.Location = new System.Drawing.Point(993, 38); - this.NUP_Forme09.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme09.Name = "NUP_Forme09"; - this.NUP_Forme09.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme09.TabIndex = 337; - // - // CB_Enc09 - // - this.CB_Enc09.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc09.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc09.FormattingEnabled = true; - this.CB_Enc09.Location = new System.Drawing.Point(918, 37); - this.CB_Enc09.Name = "CB_Enc09"; - this.CB_Enc09.Size = new System.Drawing.Size(72, 21); - this.CB_Enc09.TabIndex = 336; - // - // NUP_Rate9 - // - this.NUP_Rate9.AutoSize = true; - this.NUP_Rate9.Location = new System.Drawing.Point(942, 16); - this.NUP_Rate9.Name = "NUP_Rate9"; - this.NUP_Rate9.Size = new System.Drawing.Size(41, 20); - this.NUP_Rate9.TabIndex = 338; - // - // NUP_Forme08 - // - this.NUP_Forme08.Location = new System.Drawing.Point(885, 38); - this.NUP_Forme08.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme08.Name = "NUP_Forme08"; - this.NUP_Forme08.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme08.TabIndex = 334; - // - // CB_Enc08 - // - this.CB_Enc08.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc08.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc08.FormattingEnabled = true; - this.CB_Enc08.Location = new System.Drawing.Point(810, 37); - this.CB_Enc08.Name = "CB_Enc08"; - this.CB_Enc08.Size = new System.Drawing.Size(72, 21); - this.CB_Enc08.TabIndex = 333; - // - // NUP_Rate8 - // - this.NUP_Rate8.AutoSize = true; - this.NUP_Rate8.Location = new System.Drawing.Point(836, 16); - this.NUP_Rate8.Name = "NUP_Rate8"; - this.NUP_Rate8.Size = new System.Drawing.Size(41, 20); - this.NUP_Rate8.TabIndex = 335; - // - // NUP_Forme07 - // - this.NUP_Forme07.Location = new System.Drawing.Point(777, 38); - this.NUP_Forme07.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme07.Name = "NUP_Forme07"; - this.NUP_Forme07.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme07.TabIndex = 331; - // - // CB_Enc07 - // - this.CB_Enc07.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc07.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc07.FormattingEnabled = true; - this.CB_Enc07.Location = new System.Drawing.Point(702, 37); - this.CB_Enc07.Name = "CB_Enc07"; - this.CB_Enc07.Size = new System.Drawing.Size(72, 21); - this.CB_Enc07.TabIndex = 330; - // - // NUP_Rate7 - // - this.NUP_Rate7.AutoSize = true; - this.NUP_Rate7.Location = new System.Drawing.Point(724, 16); - this.NUP_Rate7.Name = "NUP_Rate7"; - this.NUP_Rate7.Size = new System.Drawing.Size(41, 20); - this.NUP_Rate7.TabIndex = 332; - // - // NUP_Forme06 - // - this.NUP_Forme06.Location = new System.Drawing.Point(668, 38); - this.NUP_Forme06.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme06.Name = "NUP_Forme06"; - this.NUP_Forme06.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme06.TabIndex = 328; - // - // CB_Enc06 - // - this.CB_Enc06.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc06.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc06.FormattingEnabled = true; - this.CB_Enc06.Location = new System.Drawing.Point(593, 37); - this.CB_Enc06.Name = "CB_Enc06"; - this.CB_Enc06.Size = new System.Drawing.Size(72, 21); - this.CB_Enc06.TabIndex = 327; - // - // NUP_Rate6 - // - this.NUP_Rate6.AutoSize = true; - this.NUP_Rate6.Location = new System.Drawing.Point(616, 16); - this.NUP_Rate6.Name = "NUP_Rate6"; - this.NUP_Rate6.Size = new System.Drawing.Size(41, 20); - this.NUP_Rate6.TabIndex = 329; - // - // NUP_Forme05 - // - this.NUP_Forme05.Location = new System.Drawing.Point(560, 38); - this.NUP_Forme05.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme05.Name = "NUP_Forme05"; - this.NUP_Forme05.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme05.TabIndex = 325; - // - // CB_Enc05 - // - this.CB_Enc05.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc05.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc05.FormattingEnabled = true; - this.CB_Enc05.Location = new System.Drawing.Point(485, 37); - this.CB_Enc05.Name = "CB_Enc05"; - this.CB_Enc05.Size = new System.Drawing.Size(72, 21); - this.CB_Enc05.TabIndex = 324; - // - // NUP_Rate5 - // - this.NUP_Rate5.AutoSize = true; - this.NUP_Rate5.Location = new System.Drawing.Point(505, 16); - this.NUP_Rate5.Name = "NUP_Rate5"; - this.NUP_Rate5.Size = new System.Drawing.Size(41, 20); - this.NUP_Rate5.TabIndex = 326; - // - // NUP_Forme04 - // - this.NUP_Forme04.Location = new System.Drawing.Point(452, 38); - this.NUP_Forme04.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme04.Name = "NUP_Forme04"; - this.NUP_Forme04.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme04.TabIndex = 322; - // - // CB_Enc04 - // - this.CB_Enc04.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc04.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc04.FormattingEnabled = true; - this.CB_Enc04.Location = new System.Drawing.Point(378, 37); - this.CB_Enc04.Name = "CB_Enc04"; - this.CB_Enc04.Size = new System.Drawing.Size(72, 21); - this.CB_Enc04.TabIndex = 321; - // - // NUP_Rate4 - // - this.NUP_Rate4.AutoSize = true; - this.NUP_Rate4.Location = new System.Drawing.Point(400, 16); - this.NUP_Rate4.Name = "NUP_Rate4"; - this.NUP_Rate4.Size = new System.Drawing.Size(41, 20); - this.NUP_Rate4.TabIndex = 323; - // - // NUP_Forme03 - // - this.NUP_Forme03.Location = new System.Drawing.Point(345, 38); - this.NUP_Forme03.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme03.Name = "NUP_Forme03"; - this.NUP_Forme03.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme03.TabIndex = 319; - // - // CB_Enc03 - // - this.CB_Enc03.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc03.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc03.FormattingEnabled = true; - this.CB_Enc03.Location = new System.Drawing.Point(271, 37); - this.CB_Enc03.Name = "CB_Enc03"; - this.CB_Enc03.Size = new System.Drawing.Size(72, 21); - this.CB_Enc03.TabIndex = 318; - // - // NUP_Rate3 - // - this.NUP_Rate3.AutoSize = true; - this.NUP_Rate3.Location = new System.Drawing.Point(294, 16); - this.NUP_Rate3.Name = "NUP_Rate3"; - this.NUP_Rate3.Size = new System.Drawing.Size(41, 20); - this.NUP_Rate3.TabIndex = 320; - // - // NUP_Forme02 - // - this.NUP_Forme02.Location = new System.Drawing.Point(238, 38); - this.NUP_Forme02.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme02.Name = "NUP_Forme02"; - this.NUP_Forme02.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme02.TabIndex = 316; - // - // CB_Enc02 - // - this.CB_Enc02.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc02.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc02.FormattingEnabled = true; - this.CB_Enc02.Location = new System.Drawing.Point(163, 37); - this.CB_Enc02.Name = "CB_Enc02"; - this.CB_Enc02.Size = new System.Drawing.Size(72, 21); - this.CB_Enc02.TabIndex = 315; - // - // NUP_Rate2 - // - this.NUP_Rate2.AutoSize = true; - this.NUP_Rate2.Location = new System.Drawing.Point(187, 16); - this.NUP_Rate2.Name = "NUP_Rate2"; - this.NUP_Rate2.Size = new System.Drawing.Size(41, 20); - this.NUP_Rate2.TabIndex = 317; - // - // L_Rate - // - this.L_Rate.AutoSize = true; - this.L_Rate.Location = new System.Drawing.Point(15, 16); - this.L_Rate.Name = "L_Rate"; - this.L_Rate.Size = new System.Drawing.Size(38, 13); - this.L_Rate.TabIndex = 314; - this.L_Rate.Text = "Rates:"; - // - // NUP_Forme01 - // - this.NUP_Forme01.Location = new System.Drawing.Point(129, 38); - this.NUP_Forme01.Maximum = new decimal(new int[] { - 31, - 0, - 0, - 0}); - this.NUP_Forme01.Name = "NUP_Forme01"; - this.NUP_Forme01.Size = new System.Drawing.Size(31, 20); - this.NUP_Forme01.TabIndex = 289; - // - // CB_Enc01 - // - this.CB_Enc01.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_Enc01.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_Enc01.FormattingEnabled = true; - this.CB_Enc01.Location = new System.Drawing.Point(54, 37); - this.CB_Enc01.Name = "CB_Enc01"; - this.CB_Enc01.Size = new System.Drawing.Size(72, 21); - this.CB_Enc01.TabIndex = 288; - // - // NUP_Rate1 - // - this.NUP_Rate1.AutoSize = true; - this.NUP_Rate1.Location = new System.Drawing.Point(78, 16); - this.NUP_Rate1.Name = "NUP_Rate1"; - this.NUP_Rate1.Size = new System.Drawing.Size(41, 20); - this.NUP_Rate1.TabIndex = 290; - // - // CB_TableID - // - this.CB_TableID.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest; - this.CB_TableID.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems; - this.CB_TableID.FormattingEnabled = true; - this.CB_TableID.Location = new System.Drawing.Point(269, 12); - this.CB_TableID.Name = "CB_TableID"; - this.CB_TableID.Size = new System.Drawing.Size(90, 21); - this.CB_TableID.TabIndex = 431; - this.CB_TableID.SelectedIndexChanged += new System.EventHandler(this.UpdatePanel); - // - // B_Export - // - this.B_Export.Location = new System.Drawing.Point(1034, 11); - this.B_Export.Name = "B_Export"; - this.B_Export.Size = new System.Drawing.Size(112, 23); - this.B_Export.TabIndex = 432; - this.B_Export.Text = "Export Tables"; - this.B_Export.UseVisualStyleBackColor = true; - this.B_Export.Click += new System.EventHandler(this.B_Export_Click); - // - // CopySOS - // - this.CopySOS.Location = new System.Drawing.Point(698, 11); - this.CopySOS.Name = "CopySOS"; - this.CopySOS.Size = new System.Drawing.Size(109, 23); - this.CopySOS.TabIndex = 433; - this.CopySOS.Text = "Copy Initials to SOS"; - this.CopySOS.UseVisualStyleBackColor = true; - this.CopySOS.Click += new System.EventHandler(this.CopySOS_Click); - // - // SMWE - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(1161, 612); - this.Controls.Add(this.CopySOS); - this.Controls.Add(this.B_Export); - this.Controls.Add(this.CB_TableID); - this.Controls.Add(this.GB_Encounters); - this.Controls.Add(this.L_Table); - this.Controls.Add(this.NUP_Min); - this.Controls.Add(this.NUP_Max); - this.Controls.Add(this.L_Min); - this.Controls.Add(this.L_Max); - this.Controls.Add(this.B_Randomize); - this.Controls.Add(this.B_Dump); - this.Controls.Add(this.L_Location); - this.Controls.Add(this.B_Save); - this.Controls.Add(this.CB_LocationID); - this.Name = "SMWE"; - this.Text = "Sun/Moon Wild Editor"; - ((System.ComponentModel.ISupportInitialize)(this.NUP_Min)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Max)).EndInit(); - this.GB_Encounters.ResumeLayout(false); - this.GB_Encounters.PerformLayout(); - this.GB_Tweak.ResumeLayout(false); - this.GB_Tweak.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_LevelAmp)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_NightIcon)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_DayIcon)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_WeatherForme6)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_WeatherForme3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_WeatherForme5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_WeatherForme4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_WeatherForme2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_WeatherForme1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_NightTable)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_DayTable)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme80)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme79)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme78)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme77)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme76)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme75)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme74)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme73)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme72)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme71)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme70)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme69)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme68)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme67)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme66)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme65)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme64)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme63)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme62)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme61)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme60)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme59)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme58)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme57)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme56)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme55)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme54)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme53)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme52)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme51)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme50)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme49)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme48)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme47)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme46)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme45)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme44)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme43)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme42)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme41)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme40)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme39)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme38)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme37)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme36)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme35)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme34)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme33)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme32)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme31)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme30)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme29)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme28)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme27)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme26)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme25)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme24)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme23)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme22)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme21)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme20)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme19)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme18)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme17)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme16)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme15)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme14)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme13)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme12)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme11)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme10)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Rate10)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme09)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Rate9)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme08)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Rate8)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme07)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Rate7)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme06)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Rate6)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme05)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Rate5)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme04)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Rate4)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme03)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Rate3)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme02)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Rate2)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Forme01)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUP_Rate1)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Button B_Randomize; - private System.Windows.Forms.Button B_Dump; - private System.Windows.Forms.Label L_Location; - private System.Windows.Forms.Button B_Save; - private System.Windows.Forms.ComboBox CB_LocationID; - private System.Windows.Forms.NumericUpDown NUP_Min; - private System.Windows.Forms.NumericUpDown NUP_Max; - private System.Windows.Forms.Label L_Min; - private System.Windows.Forms.Label L_Max; - private System.Windows.Forms.Label L_Table; - private System.Windows.Forms.GroupBox GB_Encounters; - private System.Windows.Forms.NumericUpDown NUP_Forme08; - private System.Windows.Forms.ComboBox CB_Enc08; - private System.Windows.Forms.NumericUpDown NUP_Rate8; - private System.Windows.Forms.NumericUpDown NUP_Forme07; - private System.Windows.Forms.ComboBox CB_Enc07; - private System.Windows.Forms.NumericUpDown NUP_Rate7; - private System.Windows.Forms.NumericUpDown NUP_Forme06; - private System.Windows.Forms.ComboBox CB_Enc06; - private System.Windows.Forms.NumericUpDown NUP_Rate6; - private System.Windows.Forms.NumericUpDown NUP_Forme05; - private System.Windows.Forms.ComboBox CB_Enc05; - private System.Windows.Forms.NumericUpDown NUP_Rate5; - private System.Windows.Forms.NumericUpDown NUP_Forme04; - private System.Windows.Forms.ComboBox CB_Enc04; - private System.Windows.Forms.NumericUpDown NUP_Rate4; - private System.Windows.Forms.NumericUpDown NUP_Forme03; - private System.Windows.Forms.ComboBox CB_Enc03; - private System.Windows.Forms.NumericUpDown NUP_Rate3; - private System.Windows.Forms.NumericUpDown NUP_Forme02; - private System.Windows.Forms.ComboBox CB_Enc02; - private System.Windows.Forms.NumericUpDown NUP_Rate2; - private System.Windows.Forms.Label L_Rate; - private System.Windows.Forms.NumericUpDown NUP_Forme01; - private System.Windows.Forms.ComboBox CB_Enc01; - private System.Windows.Forms.NumericUpDown NUP_Rate1; - private System.Windows.Forms.NumericUpDown NUP_Forme10; - private System.Windows.Forms.ComboBox CB_Enc10; - private System.Windows.Forms.NumericUpDown NUP_Rate10; - private System.Windows.Forms.NumericUpDown NUP_Forme09; - private System.Windows.Forms.ComboBox CB_Enc09; - private System.Windows.Forms.NumericUpDown NUP_Rate9; - private System.Windows.Forms.ComboBox CB_TableID; - private System.Windows.Forms.Button B_Export; - private System.Windows.Forms.NumericUpDown NUP_Forme20; - private System.Windows.Forms.ComboBox CB_Enc20; - private System.Windows.Forms.NumericUpDown NUP_Forme19; - private System.Windows.Forms.ComboBox CB_Enc19; - private System.Windows.Forms.NumericUpDown NUP_Forme18; - private System.Windows.Forms.ComboBox CB_Enc18; - private System.Windows.Forms.NumericUpDown NUP_Forme17; - private System.Windows.Forms.ComboBox CB_Enc17; - private System.Windows.Forms.NumericUpDown NUP_Forme16; - private System.Windows.Forms.ComboBox CB_Enc16; - private System.Windows.Forms.NumericUpDown NUP_Forme15; - private System.Windows.Forms.ComboBox CB_Enc15; - private System.Windows.Forms.NumericUpDown NUP_Forme14; - private System.Windows.Forms.ComboBox CB_Enc14; - private System.Windows.Forms.NumericUpDown NUP_Forme13; - private System.Windows.Forms.ComboBox CB_Enc13; - private System.Windows.Forms.NumericUpDown NUP_Forme12; - private System.Windows.Forms.ComboBox CB_Enc12; - private System.Windows.Forms.NumericUpDown NUP_Forme11; - private System.Windows.Forms.ComboBox CB_Enc11; - private System.Windows.Forms.Label L_SOS1; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.NumericUpDown NUP_Forme80; - private System.Windows.Forms.ComboBox CB_Enc80; - private System.Windows.Forms.NumericUpDown NUP_Forme79; - private System.Windows.Forms.ComboBox CB_Enc79; - private System.Windows.Forms.NumericUpDown NUP_Forme78; - private System.Windows.Forms.ComboBox CB_Enc78; - private System.Windows.Forms.NumericUpDown NUP_Forme77; - private System.Windows.Forms.ComboBox CB_Enc77; - private System.Windows.Forms.NumericUpDown NUP_Forme76; - private System.Windows.Forms.ComboBox CB_Enc76; - private System.Windows.Forms.NumericUpDown NUP_Forme75; - private System.Windows.Forms.ComboBox CB_Enc75; - private System.Windows.Forms.NumericUpDown NUP_Forme74; - private System.Windows.Forms.ComboBox CB_Enc74; - private System.Windows.Forms.NumericUpDown NUP_Forme73; - private System.Windows.Forms.ComboBox CB_Enc73; - private System.Windows.Forms.NumericUpDown NUP_Forme72; - private System.Windows.Forms.ComboBox CB_Enc72; - private System.Windows.Forms.NumericUpDown NUP_Forme71; - private System.Windows.Forms.ComboBox CB_Enc71; - private System.Windows.Forms.Label L_SOS7; - private System.Windows.Forms.NumericUpDown NUP_Forme70; - private System.Windows.Forms.ComboBox CB_Enc70; - private System.Windows.Forms.NumericUpDown NUP_Forme69; - private System.Windows.Forms.ComboBox CB_Enc69; - private System.Windows.Forms.NumericUpDown NUP_Forme68; - private System.Windows.Forms.ComboBox CB_Enc68; - private System.Windows.Forms.NumericUpDown NUP_Forme67; - private System.Windows.Forms.ComboBox CB_Enc67; - private System.Windows.Forms.NumericUpDown NUP_Forme66; - private System.Windows.Forms.ComboBox CB_Enc66; - private System.Windows.Forms.NumericUpDown NUP_Forme65; - private System.Windows.Forms.ComboBox CB_Enc65; - private System.Windows.Forms.NumericUpDown NUP_Forme64; - private System.Windows.Forms.ComboBox CB_Enc64; - private System.Windows.Forms.NumericUpDown NUP_Forme63; - private System.Windows.Forms.ComboBox CB_Enc63; - private System.Windows.Forms.NumericUpDown NUP_Forme62; - private System.Windows.Forms.ComboBox CB_Enc62; - private System.Windows.Forms.NumericUpDown NUP_Forme61; - private System.Windows.Forms.ComboBox CB_Enc61; - private System.Windows.Forms.Label L_SOS6; - private System.Windows.Forms.NumericUpDown NUP_Forme60; - private System.Windows.Forms.ComboBox CB_Enc60; - private System.Windows.Forms.NumericUpDown NUP_Forme59; - private System.Windows.Forms.ComboBox CB_Enc59; - private System.Windows.Forms.NumericUpDown NUP_Forme58; - private System.Windows.Forms.ComboBox CB_Enc58; - private System.Windows.Forms.NumericUpDown NUP_Forme57; - private System.Windows.Forms.ComboBox CB_Enc57; - private System.Windows.Forms.NumericUpDown NUP_Forme56; - private System.Windows.Forms.ComboBox CB_Enc56; - private System.Windows.Forms.NumericUpDown NUP_Forme55; - private System.Windows.Forms.ComboBox CB_Enc55; - private System.Windows.Forms.NumericUpDown NUP_Forme54; - private System.Windows.Forms.ComboBox CB_Enc54; - private System.Windows.Forms.NumericUpDown NUP_Forme53; - private System.Windows.Forms.ComboBox CB_Enc53; - private System.Windows.Forms.NumericUpDown NUP_Forme52; - private System.Windows.Forms.ComboBox CB_Enc52; - private System.Windows.Forms.NumericUpDown NUP_Forme51; - private System.Windows.Forms.ComboBox CB_Enc51; - private System.Windows.Forms.Label L_SOS5; - private System.Windows.Forms.NumericUpDown NUP_Forme50; - private System.Windows.Forms.ComboBox CB_Enc50; - private System.Windows.Forms.NumericUpDown NUP_Forme49; - private System.Windows.Forms.ComboBox CB_Enc49; - private System.Windows.Forms.NumericUpDown NUP_Forme48; - private System.Windows.Forms.ComboBox CB_Enc48; - private System.Windows.Forms.NumericUpDown NUP_Forme47; - private System.Windows.Forms.ComboBox CB_Enc47; - private System.Windows.Forms.NumericUpDown NUP_Forme46; - private System.Windows.Forms.ComboBox CB_Enc46; - private System.Windows.Forms.NumericUpDown NUP_Forme45; - private System.Windows.Forms.ComboBox CB_Enc45; - private System.Windows.Forms.NumericUpDown NUP_Forme44; - private System.Windows.Forms.ComboBox CB_Enc44; - private System.Windows.Forms.NumericUpDown NUP_Forme43; - private System.Windows.Forms.ComboBox CB_Enc43; - private System.Windows.Forms.NumericUpDown NUP_Forme42; - private System.Windows.Forms.ComboBox CB_Enc42; - private System.Windows.Forms.NumericUpDown NUP_Forme41; - private System.Windows.Forms.ComboBox CB_Enc41; - private System.Windows.Forms.Label L_SOS4; - private System.Windows.Forms.NumericUpDown NUP_Forme40; - private System.Windows.Forms.ComboBox CB_Enc40; - private System.Windows.Forms.NumericUpDown NUP_Forme39; - private System.Windows.Forms.ComboBox CB_Enc39; - private System.Windows.Forms.NumericUpDown NUP_Forme38; - private System.Windows.Forms.ComboBox CB_Enc38; - private System.Windows.Forms.NumericUpDown NUP_Forme37; - private System.Windows.Forms.ComboBox CB_Enc37; - private System.Windows.Forms.NumericUpDown NUP_Forme36; - private System.Windows.Forms.ComboBox CB_Enc36; - private System.Windows.Forms.NumericUpDown NUP_Forme35; - private System.Windows.Forms.ComboBox CB_Enc35; - private System.Windows.Forms.NumericUpDown NUP_Forme34; - private System.Windows.Forms.ComboBox CB_Enc34; - private System.Windows.Forms.NumericUpDown NUP_Forme33; - private System.Windows.Forms.ComboBox CB_Enc33; - private System.Windows.Forms.NumericUpDown NUP_Forme32; - private System.Windows.Forms.ComboBox CB_Enc32; - private System.Windows.Forms.NumericUpDown NUP_Forme31; - private System.Windows.Forms.ComboBox CB_Enc31; - private System.Windows.Forms.Label L_SOS3; - private System.Windows.Forms.NumericUpDown NUP_Forme30; - private System.Windows.Forms.ComboBox CB_Enc30; - private System.Windows.Forms.NumericUpDown NUP_Forme29; - private System.Windows.Forms.ComboBox CB_Enc29; - private System.Windows.Forms.NumericUpDown NUP_Forme28; - private System.Windows.Forms.ComboBox CB_Enc28; - private System.Windows.Forms.NumericUpDown NUP_Forme27; - private System.Windows.Forms.ComboBox CB_Enc27; - private System.Windows.Forms.NumericUpDown NUP_Forme26; - private System.Windows.Forms.ComboBox CB_Enc26; - private System.Windows.Forms.NumericUpDown NUP_Forme25; - private System.Windows.Forms.ComboBox CB_Enc25; - private System.Windows.Forms.NumericUpDown NUP_Forme24; - private System.Windows.Forms.ComboBox CB_Enc24; - private System.Windows.Forms.NumericUpDown NUP_Forme23; - private System.Windows.Forms.ComboBox CB_Enc23; - private System.Windows.Forms.NumericUpDown NUP_Forme22; - private System.Windows.Forms.ComboBox CB_Enc22; - private System.Windows.Forms.NumericUpDown NUP_Forme21; - private System.Windows.Forms.ComboBox CB_Enc21; - private System.Windows.Forms.Label L_SOS2; - private System.Windows.Forms.PictureBox PB_DayTable; - private System.Windows.Forms.PictureBox PB_NightTable; - private System.Windows.Forms.NumericUpDown NUP_WeatherForme6; - private System.Windows.Forms.NumericUpDown NUP_WeatherForme3; - private System.Windows.Forms.ComboBox CB_WeatherEnc6; - private System.Windows.Forms.NumericUpDown NUP_WeatherForme5; - private System.Windows.Forms.ComboBox CB_WeatherEnc5; - private System.Windows.Forms.NumericUpDown NUP_WeatherForme4; - private System.Windows.Forms.ComboBox CB_WeatherEnc4; - private System.Windows.Forms.ComboBox CB_WeatherEnc3; - private System.Windows.Forms.NumericUpDown NUP_WeatherForme2; - private System.Windows.Forms.ComboBox CB_WeatherEnc2; - private System.Windows.Forms.NumericUpDown NUP_WeatherForme1; - private System.Windows.Forms.ComboBox CB_WeatherEnc1; - private System.Windows.Forms.Label L_AddSOS; - private System.Windows.Forms.PictureBox PB_NightIcon; - private System.Windows.Forms.PictureBox PB_DayIcon; - private System.Windows.Forms.GroupBox GB_Tweak; - private System.Windows.Forms.CheckBox CHK_G7; - private System.Windows.Forms.CheckBox CHK_MegaForm; - private System.Windows.Forms.Label L_RandOpt; - private System.Windows.Forms.CheckBox CHK_BST; - private System.Windows.Forms.CheckBox CHK_E; - private System.Windows.Forms.CheckBox CHK_L; - private System.Windows.Forms.CheckBox CHK_G6; - private System.Windows.Forms.CheckBox CHK_G5; - private System.Windows.Forms.CheckBox CHK_G4; - private System.Windows.Forms.CheckBox CHK_G3; - private System.Windows.Forms.CheckBox CHK_G2; - private System.Windows.Forms.CheckBox CHK_G1; - private System.Windows.Forms.Button B_LevelPlus; - private System.Windows.Forms.NumericUpDown NUD_LevelAmp; - private System.Windows.Forms.CheckBox CHK_Level; - private System.Windows.Forms.Button CopySOS; - private System.Windows.Forms.Label L_SOS; - private System.Windows.Forms.ComboBox CB_SlotRand; - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/SMWE.cs b/pk3DS/Subforms/Gen7/SMWE.cs deleted file mode 100644 index d270488457..0000000000 --- a/pk3DS/Subforms/Gen7/SMWE.cs +++ /dev/null @@ -1,514 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Drawing; -using System.Drawing.Drawing2D; -using System.IO; -using System.Linq; -using System.Text; -using System.Windows.Forms; - -using pk3DS.Core; -using pk3DS.Core.CTR; -using pk3DS.Core.Randomizers; - -namespace pk3DS -{ - public partial class SMWE : Form - { - public SMWE(lzGARCFile ed, lzGARCFile zd, lzGARCFile wd) - { - InitializeComponent(); - - PB_DayIcon.Image = Properties.Resources.sun; - PB_NightIcon.Image = Properties.Resources.moon; - PB_DayIcon.SizeMode = PictureBoxSizeMode.CenterImage; - PB_NightIcon.SizeMode = PictureBoxSizeMode.CenterImage; - - font = L_Location.Font; - - speciesList[0] = "(None)"; - var locationList = Main.Config.getText(TextName.metlist_000000); - locationList = GetGoodLocationList(locationList); - - nup_spec = LoadFormeNUD(); - cb_spec = LoadSpeciesComboBoxes(); - rate_spec = LoadRateNUD(); - - encdata = ed; - var areas = Area7.GetArray(ed, zd, wd, locationList); - Areas = areas.OrderBy(a => a.Zones[0].Name).ToArray(); - - LoadData(); - - // ExportEncounters("um", "uu"); - } - - - private NumericUpDown[] LoadRateNUD() - { - var list = new[] {NUP_Rate1, NUP_Rate2, NUP_Rate3, NUP_Rate4, NUP_Rate5, NUP_Rate6, NUP_Rate7, NUP_Rate8, NUP_Rate9, NUP_Rate10}; - foreach (var nup in list) - nup.ValueChanged += UpdateEncounterRate; - return list; - } - private ComboBox[][] LoadSpeciesComboBoxes() - { - var list = new[] { - new[] {CB_Enc01, CB_Enc02, CB_Enc03, CB_Enc04, CB_Enc05, CB_Enc06, CB_Enc07, CB_Enc08, CB_Enc09, CB_Enc10}, - new[] {CB_Enc11, CB_Enc12, CB_Enc13, CB_Enc14, CB_Enc15, CB_Enc16, CB_Enc17, CB_Enc18, CB_Enc19, CB_Enc20}, - new[] {CB_Enc21, CB_Enc22, CB_Enc23, CB_Enc24, CB_Enc25, CB_Enc26, CB_Enc27, CB_Enc28, CB_Enc29, CB_Enc30}, - new[] {CB_Enc31, CB_Enc32, CB_Enc33, CB_Enc34, CB_Enc35, CB_Enc36, CB_Enc37, CB_Enc38, CB_Enc39, CB_Enc40}, - new[] {CB_Enc41, CB_Enc42, CB_Enc43, CB_Enc44, CB_Enc45, CB_Enc46, CB_Enc47, CB_Enc48, CB_Enc49, CB_Enc50}, - new[] {CB_Enc51, CB_Enc52, CB_Enc53, CB_Enc54, CB_Enc55, CB_Enc56, CB_Enc57, CB_Enc58, CB_Enc59, CB_Enc60}, - new[] {CB_Enc61, CB_Enc62, CB_Enc63, CB_Enc64, CB_Enc65, CB_Enc66, CB_Enc67, CB_Enc68, CB_Enc69, CB_Enc70}, - new[] {CB_Enc71, CB_Enc72, CB_Enc73, CB_Enc74, CB_Enc75, CB_Enc76, CB_Enc77, CB_Enc78, CB_Enc79, CB_Enc80}, - new[] {CB_WeatherEnc1, CB_WeatherEnc2, CB_WeatherEnc3, CB_WeatherEnc4, CB_WeatherEnc5, CB_WeatherEnc6} - }; - foreach (var cb_l in list) - foreach (var cb in cb_l) - { - cb.Items.AddRange(speciesList); - cb.SelectedIndex = 0; - cb.SelectedIndexChanged += UpdateSpeciesForm; - } - return list; - } - private NumericUpDown[][] LoadFormeNUD() - { - var list = new[] { - new [] { NUP_Forme01, NUP_Forme02, NUP_Forme03, NUP_Forme04, NUP_Forme05, NUP_Forme06, NUP_Forme07, NUP_Forme08, NUP_Forme09, NUP_Forme10 }, - new [] { NUP_Forme11, NUP_Forme12, NUP_Forme13, NUP_Forme14, NUP_Forme15, NUP_Forme16, NUP_Forme17, NUP_Forme18, NUP_Forme19, NUP_Forme20 }, - new [] { NUP_Forme21, NUP_Forme22, NUP_Forme23, NUP_Forme24, NUP_Forme25, NUP_Forme26, NUP_Forme27, NUP_Forme28, NUP_Forme29, NUP_Forme30 }, - new [] { NUP_Forme31, NUP_Forme32, NUP_Forme33, NUP_Forme34, NUP_Forme35, NUP_Forme36, NUP_Forme37, NUP_Forme38, NUP_Forme39, NUP_Forme40 }, - new [] { NUP_Forme41, NUP_Forme42, NUP_Forme43, NUP_Forme44, NUP_Forme45, NUP_Forme46, NUP_Forme47, NUP_Forme48, NUP_Forme49, NUP_Forme50 }, - new [] { NUP_Forme51, NUP_Forme52, NUP_Forme53, NUP_Forme54, NUP_Forme55, NUP_Forme56, NUP_Forme57, NUP_Forme58, NUP_Forme59, NUP_Forme60 }, - new [] { NUP_Forme61, NUP_Forme62, NUP_Forme63, NUP_Forme64, NUP_Forme65, NUP_Forme66, NUP_Forme67, NUP_Forme68, NUP_Forme69, NUP_Forme70 }, - new [] { NUP_Forme71, NUP_Forme72, NUP_Forme73, NUP_Forme74, NUP_Forme75, NUP_Forme76, NUP_Forme77, NUP_Forme78, NUP_Forme79, NUP_Forme80 }, - new [] { NUP_WeatherForme1, NUP_WeatherForme2, NUP_WeatherForme3, NUP_WeatherForme4, NUP_WeatherForme5, NUP_WeatherForme6 } - }; - - foreach (var nup_l in list) - foreach (var nup in nup_l) - nup.ValueChanged += UpdateSpeciesForm; - - return list; - } - - private readonly Area7[] Areas; - private readonly lzGARCFile encdata; - private readonly string[] speciesList = Main.Config.getText(TextName.SpeciesNames); - private readonly Font font; - private readonly NumericUpDown[][] nup_spec; - private readonly ComboBox[][] cb_spec; - private readonly NumericUpDown[] rate_spec; - - private int TotalEncounterRate => rate_spec.Sum(nup => (int)nup.Value); - private bool loadingdata; - private EncounterTable CurrentTable; - - private void LoadData() - { - loadingdata = true; - - CB_LocationID.Items.Clear(); - CB_LocationID.Items.AddRange(Areas.Select(a => a.Name).ToArray()); - - CB_SlotRand.SelectedIndex = 0; - CB_LocationID.SelectedIndex = 0; - - loadingdata = false; - ChangeMap(null, null); - } - - private void ChangeMap(object sender, EventArgs e) - { - loadingdata = true; - CB_TableID.Items.Clear(); - if (Areas[CB_LocationID.SelectedIndex].HasTables) - { - for (int i = 0; i < Areas[CB_LocationID.SelectedIndex].Tables.Count; i += 2) - { - CB_TableID.Items.Add($"{i / 2 + 1} (Day)"); - CB_TableID.Items.Add($"{i / 2 + 1} (Night)"); - } - } - else - CB_TableID.Items.Add("(None)"); - CB_TableID.SelectedIndex = 0; - loadingdata = false; - UpdatePanel(sender, e); - } - private void UpdatePanel(object sender, EventArgs e) - { - if (loadingdata) - return; - loadingdata = true; - var Map = Areas[CB_LocationID.SelectedIndex]; - GB_Encounters.Enabled = Map.HasTables; - if (!Map.HasTables) - { - loadingdata = false; - return; - } - CurrentTable = new EncounterTable(Map.Tables[CB_TableID.SelectedIndex].Data); - NUP_Min.Value = CurrentTable.MinLevel; - NUP_Max.Minimum = CurrentTable.MinLevel; - NUP_Max.Value = CurrentTable.MaxLevel; - for (int slot = 0; slot < CurrentTable.Encounter7s.Length; slot++) - for (int i = 0; i < CurrentTable.Encounter7s[slot].Length; i++) - { - var sl = CurrentTable.Encounter7s[slot]; - if (slot == 8) - sl = CurrentTable.AdditionalSOS; - rate_spec[i].Value = CurrentTable.Rates[i]; - cb_spec[slot][i].SelectedIndex = (int)sl[i].Species; - nup_spec[slot][i].Value = (int)sl[i].Forme; - } - loadingdata = false; - - int base_id = CB_TableID.SelectedIndex/2; - base_id *= 2; - PB_DayTable.Image = Map.Tables[base_id].GetTableImg(font); - PB_NightTable.Image = Map.Tables[base_id + 1].GetTableImg(font); - } - private void UpdateMinMax(object sender, EventArgs e) - { - if (loadingdata) - return; - loadingdata = true; - int min = (int) NUP_Min.Value; - int max = (int) NUP_Max.Value; - if (max < min) - { - max = min; - NUP_Max.Value = max; - NUP_Max.Minimum = min; - } - CurrentTable.MinLevel = min; - CurrentTable.MaxLevel = max; - loadingdata = false; - } - private void UpdateSpeciesForm(object sender, EventArgs e) - { - if (loadingdata) - return; - - var cur_pb = CB_TableID.SelectedIndex%2 == 0 ? PB_DayTable : PB_NightTable; - var cur_img = cur_pb.Image; - - object[][] source = sender is NumericUpDown ? (object[][])nup_spec : cb_spec; - int table = Array.FindIndex(source, t => t.Contains(sender)); - int slot = Array.IndexOf(source[table], sender); - - var cb_l = cb_spec[table]; - var nup_l = nup_spec[table]; - if (table == 8) - { - CurrentTable.AdditionalSOS[slot].Species = (uint)cb_l[slot].SelectedIndex; - CurrentTable.AdditionalSOS[slot].Forme = (uint)nup_l[slot].Value; - } - CurrentTable.Encounter7s[table][slot].Species = (uint)cb_l[slot].SelectedIndex; - CurrentTable.Encounter7s[table][slot].Forme = (uint)nup_l[slot].Value; - - using (var g = Graphics.FromImage(cur_img)) - { - int x = 40*slot; - int y = 30*(table + 1); - if (table == 8) - { - x = 40*slot + 60; - y = 270; - } - var pnt = new Point(x, y); - g.SetClip(new Rectangle(pnt.X, pnt.Y, 40, 30), CombineMode.Replace); - g.Clear(Color.Transparent); - - var enc = CurrentTable.Encounter7s[table][slot]; - g.DrawImage(enc.Species == 0 ? Properties.Resources.empty : WinFormsUtil.getSprite((int)enc.Species, (int)enc.Forme, 0, 0, Main.Config), pnt); - } - - cur_pb.Image = cur_img; - } - private void UpdateEncounterRate(object sender, EventArgs e) - { - if (loadingdata) - return; - - var cur_pb = CB_TableID.SelectedIndex%2 == 0 ? PB_DayTable : PB_NightTable; - var cur_img = cur_pb.Image; - - int slot = Array.IndexOf(rate_spec, sender); - int rate = (int) ((NumericUpDown) sender).Value; - CurrentTable.Rates[slot] = rate; - - using (var g = Graphics.FromImage(cur_img)) - { - var pnt = new PointF(40 * slot + 10, 10); - g.SetClip(new Rectangle((int) pnt.X, (int) pnt.Y, 40, 14), CombineMode.Replace); - g.Clear(Color.Transparent); - g.DrawString($"{rate}%", font, Brushes.Black, pnt); - } - - cur_pb.Image = cur_img; - - var sum = TotalEncounterRate; - GB_Encounters.Text = $"Encounters ({sum}%)"; - } - - private void B_Save_Click(object sender, EventArgs e) - { - var sum = TotalEncounterRate; - if (sum != 100 && sum != 0) - { - WinFormsUtil.Error("Encounter rates must add up to either 0% or 100%."); - return; - } - - CurrentTable.Write(); - var area = Areas[CB_LocationID.SelectedIndex]; - area.Tables[CB_TableID.SelectedIndex] = CurrentTable; - - // Set data back to GARC - encdata[area.FileNumber] = Area7.GetDayNightTableBinary(area.Tables); - } - private void B_Export_Click(object sender, EventArgs e) - { - B_Save_Click(sender, e); - - Directory.CreateDirectory("encdata"); - foreach (var Map in Areas) - { - var packed = Area7.GetDayNightTableBinary(Map.Tables); - File.WriteAllBytes(Path.Combine("encdata", Map.FileNumber.ToString()), packed); - } - WinFormsUtil.Alert("Exported all tables!"); - } - private void DumpTables(object sender, EventArgs e) - { - using (var sfd = new SaveFileDialog()) - { - sfd.FileName = "EncounterTables.txt"; - if (sfd.ShowDialog() != DialogResult.OK) - return; - var sb = new StringBuilder(); - foreach (var Map in Areas) - sb.Append(Map.GetSummary(speciesList)); - File.WriteAllText(sfd.FileName, sb.ToString()); - } - } - - // Randomization & Bulk Modification - private void B_Randomize_Click(object sender, EventArgs e) - { - if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, - "Randomize all? Cannot undo.", "Double check Randomization settings at the bottom left.")) - return; - - Enabled = false; - ExecuteRandomization(); - UpdatePanel(null, null); - Enabled = true; - - WinFormsUtil.Alert("Randomized all Wild Encounters according to specification!", "Press the Dump Tables button to view the new Wild Encounter information!"); - } - private void ExecuteRandomization() - { - var rnd = new SpeciesRandomizer(Main.Config) - { - G1 = CHK_G1.Checked, - G2 = CHK_G2.Checked, - G3 = CHK_G3.Checked, - G4 = CHK_G4.Checked, - G5 = CHK_G5.Checked, - G6 = CHK_G6.Checked, - G7 = CHK_G7.Checked, - - E = CHK_E.Checked, - L = CHK_L.Checked, - rBST = CHK_BST.Checked, - }; - rnd.Initialize(); - var form = new FormRandomizer(Main.Config) - { - AllowMega = CHK_MegaForm.Checked, - AllowAlolanForm = true, - }; - var wild7 = new Wild7Randomizer - { - RandSpec = rnd, - RandForm = form, - TableRandomizationOption = CB_SlotRand.SelectedIndex, - LevelAmplifier = NUD_LevelAmp.Value, - ModifyLevel = CHK_Level.Checked, - }; - wild7.Execute(Areas, encdata); - } - private void CopySOS_Click(object sender, EventArgs e) - { - if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Copy initial species to SOS slots?", "Cannot undo.") != DialogResult.Yes) - return; - - // first table is copied to all other tables except weather (last) - for (int i = 1; i < nup_spec.Length - 1; i++) - { - for (int s = 0; s < nup_spec[i].Length; s++) // slot copy - { - nup_spec[i][s].Value = nup_spec[0][s].Value; - cb_spec[i][s].SelectedIndex = cb_spec[0][s].SelectedIndex; - } - } - WinFormsUtil.Alert("All initial species copied to SOS slots!"); - } - private void ModifyAllLevelRanges(object sender, EventArgs e) - { - if (DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, - "Modify all current Level ranges?", "Cannot undo.")) - return; - - // Disable Interface while modifying - Enabled = false; - - // Cycle through each location to modify levels - foreach (var Table in Areas.SelectMany(Map => Map.Tables)) - { - Table.MinLevel = Randomizer.getModifiedLevel(Table.MinLevel, NUD_LevelAmp.Value); - Table.MaxLevel = Randomizer.getModifiedLevel(Table.MaxLevel, NUD_LevelAmp.Value); - Table.Write(); - } - // Enable Interface... modification complete. - Enabled = true; - WinFormsUtil.Alert("Modified all Level ranges according to specification!", "Press the Dump Tables button to view the new Level ranges!"); - - UpdatePanel(sender, e); - } - - // Utility - /// - /// Moves the sub-location names into the location name string entry. - /// - /// Raw location list - /// Cleaned location list - public static string[] GetGoodLocationList(string[] list) - { - var bad = list; - var good = (string[])bad.Clone(); - for (int i = 0; i < bad.Length; i += 2) - { - var nextLoc = bad[i + 1]; - if (!string.IsNullOrWhiteSpace(nextLoc) && nextLoc[0] != '[') - good[i] += $" ({nextLoc})"; - if (i > 0 && !string.IsNullOrWhiteSpace(good[i]) && good.Take(i - 1).Contains(good[i])) - good[i] += $" ({good.Take(i - 1).Count(s => s == good[i]) + 1})"; - } - return good; - } - - private void ExportEncounters(string gameID, string ident) - { - var reg = dumpreg(); - var sos = dumpsos(); - - File.WriteAllBytes($"encounter_{gameID}.pkl", mini.packMini(reg, ident)); - File.WriteAllBytes($"encounter_{gameID}_sos.pkl", mini.packMini(sos, ident)); - } - private byte[][] dumpreg() - { - var dict = new Dictionary>(); - foreach (var area in Areas) - { - foreach (var z in area.Zones) - { - int loc = z.ParentMap; - if (!dict.ContainsKey(loc)) - dict.Add(loc, new List()); - - var table = dict[loc]; - table.AddRange(from t in area.Tables - from s in t.Encounter7s.Take(1) - from e in s - select e.RawValue | (uint)(t.MinLevel << 16) | (uint)(t.MaxLevel << 24)); - } - } - - return GetLocationDump(dict).ToArray(); - } - private byte[][] dumpsos() - { - var dict = new Dictionary>(); - foreach (var area in Areas) - { - foreach (var z in area.Zones) - { - int loc = z.ParentMap; - if (!dict.ContainsKey(loc)) - dict.Add(loc, new List()); - - var table = dict[loc]; - table.AddRange(from t in area.Tables from s in t.Encounter7s.Skip(1) - from e in s - select e.RawValue | (uint) (t.MinLevel << 16) | (uint) (t.MaxLevel << 24)); - - table.AddRange(from t in area.Tables - from e in t.AdditionalSOS - select e.RawValue | (uint) (t.MinLevel << 16) | (uint) (t.MaxLevel << 24)); - } - } - - return GetLocationDump(dict).ToArray(); - } - - private IEnumerable GetLocationDump(Dictionary> dict) - { - foreach (var z in dict.OrderBy(z => z.Key)) - { - using (var ms = new MemoryStream()) - using (var bw = new BinaryWriter(ms)) - { - bw.Write((ushort)z.Key); - foreach (var s in z.Value.Distinct()) - bw.Write(s); - yield return ms.ToArray(); - } - } - } - } - - public static partial class Extensions - { - public static Bitmap GetTableImg(this EncounterTable table, Font font) - { - var img = new Bitmap(10 * 40, 10 * 30); - using (var g = Graphics.FromImage(img)) - { - g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SingleBitPerPixelGridFit; - for (int i = 0; i < table.Rates.Length; i++) - g.DrawString($"{table.Rates[i]}%", font, Brushes.Black, new PointF(40 * i + 10, 10)); - g.DrawString("Weather: ", font, Brushes.Black, new PointF(10, 280)); - - // Draw Sprites - for (int i = 0; i < table.Encounter7s.Length - 1; i++) - for (int j = 0; j < table.Encounter7s[i].Length; j++) - { - var slot = table.Encounter7s[i][j]; - var sprite = GetSprite((int)slot.Species, (int)slot.Forme); - g.DrawImage(sprite, new Point(40 * j, 30 * (i + 1))); - } - for (int i = 0; i < table.AdditionalSOS.Length; i++) - { - var slot = table.AdditionalSOS[i]; - var sprite = GetSprite((int)slot.Species, (int)slot.Forme); - g.DrawImage(sprite, new Point(40 * i + 60, 270)); - } - } - - Bitmap GetSprite(int species, int form) - { - return species == 0 - ? Properties.Resources.empty - : WinFormsUtil.getSprite(species, form, 0, 0, Main.Config); - } - - return img; - } - } -} diff --git a/pk3DS/Subforms/Gen7/StaticEncounterEditor7.Designer.cs b/pk3DS/Subforms/Gen7/StaticEncounterEditor7.Designer.cs deleted file mode 100644 index 99718d3640..0000000000 --- a/pk3DS/Subforms/Gen7/StaticEncounterEditor7.Designer.cs +++ /dev/null @@ -1,960 +0,0 @@ -namespace pk3DS -{ - partial class StaticEncounterEditor7 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.TC_Tabs = new System.Windows.Forms.TabControl(); - this.Tab_Gifts = new System.Windows.Forms.TabPage(); - this.CB_GHeldItem = new System.Windows.Forms.ComboBox(); - this.L_GHeldItem = new System.Windows.Forms.Label(); - this.CB_GSpecies = new System.Windows.Forms.ComboBox(); - this.L_GForm = new System.Windows.Forms.Label(); - this.NUD_GForm = new System.Windows.Forms.NumericUpDown(); - this.L_GLevel = new System.Windows.Forms.Label(); - this.L_GSpecies = new System.Windows.Forms.Label(); - this.NUD_GLevel = new System.Windows.Forms.NumericUpDown(); - this.LB_Gift = new System.Windows.Forms.ListBox(); - this.Tab_Encounters = new System.Windows.Forms.TabPage(); - this.CHK_ShinyLock = new System.Windows.Forms.CheckBox(); - this.GB_EMoves = new System.Windows.Forms.GroupBox(); - this.CB_EMove3 = new System.Windows.Forms.ComboBox(); - this.CB_EMove2 = new System.Windows.Forms.ComboBox(); - this.CB_EMove1 = new System.Windows.Forms.ComboBox(); - this.CB_EMove0 = new System.Windows.Forms.ComboBox(); - this.CB_EHeldItem = new System.Windows.Forms.ComboBox(); - this.L_EHeldItem = new System.Windows.Forms.Label(); - this.CB_ESpecies = new System.Windows.Forms.ComboBox(); - this.L_EForm = new System.Windows.Forms.Label(); - this.NUD_EForm = new System.Windows.Forms.NumericUpDown(); - this.L_ELevel = new System.Windows.Forms.Label(); - this.L_ESpecies = new System.Windows.Forms.Label(); - this.NUD_ELevel = new System.Windows.Forms.NumericUpDown(); - this.LB_Encounter = new System.Windows.Forms.ListBox(); - this.Tab_Trades = new System.Windows.Forms.TabPage(); - this.CB_TRequest = new System.Windows.Forms.ComboBox(); - this.label1 = new System.Windows.Forms.Label(); - this.L_TTID = new System.Windows.Forms.Label(); - this.L_TID = new System.Windows.Forms.Label(); - this.NUD_TID = new System.Windows.Forms.NumericUpDown(); - this.CB_THeldItem = new System.Windows.Forms.ComboBox(); - this.L_THeldItem = new System.Windows.Forms.Label(); - this.CB_TSpecies = new System.Windows.Forms.ComboBox(); - this.L_TForm = new System.Windows.Forms.Label(); - this.NUD_TForm = new System.Windows.Forms.NumericUpDown(); - this.L_TLevel = new System.Windows.Forms.Label(); - this.L_TSpecies = new System.Windows.Forms.Label(); - this.NUD_TLevel = new System.Windows.Forms.NumericUpDown(); - this.LB_Trade = new System.Windows.Forms.ListBox(); - this.Tab_Randomizer = new System.Windows.Forms.TabPage(); - this.NUD_LevelBoost = new System.Windows.Forms.NumericUpDown(); - this.CHK_Level = new System.Windows.Forms.CheckBox(); - this.B_RandAll = new System.Windows.Forms.Button(); - this.GB_Tweak = new System.Windows.Forms.GroupBox(); - this.CHK_G7 = new System.Windows.Forms.CheckBox(); - this.L_RandOpt = new System.Windows.Forms.Label(); - this.CHK_BST = new System.Windows.Forms.CheckBox(); - this.CHK_E = new System.Windows.Forms.CheckBox(); - this.CHK_L = new System.Windows.Forms.CheckBox(); - this.CHK_G6 = new System.Windows.Forms.CheckBox(); - this.CHK_G5 = new System.Windows.Forms.CheckBox(); - this.CHK_G4 = new System.Windows.Forms.CheckBox(); - this.CHK_G3 = new System.Windows.Forms.CheckBox(); - this.CHK_G2 = new System.Windows.Forms.CheckBox(); - this.CHK_G1 = new System.Windows.Forms.CheckBox(); - this.B_Starters = new System.Windows.Forms.Button(); - this.B_Save = new System.Windows.Forms.Button(); - this.B_Cancel = new System.Windows.Forms.Button(); - this.CHK_G_Lock = new System.Windows.Forms.CheckBox(); - this.NUD_GGender = new System.Windows.Forms.NumericUpDown(); - this.TC_Tabs.SuspendLayout(); - this.Tab_Gifts.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_GForm)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_GLevel)).BeginInit(); - this.Tab_Encounters.SuspendLayout(); - this.GB_EMoves.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_EForm)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_ELevel)).BeginInit(); - this.Tab_Trades.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_TID)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_TForm)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_TLevel)).BeginInit(); - this.Tab_Randomizer.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_LevelBoost)).BeginInit(); - this.GB_Tweak.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_GGender)).BeginInit(); - this.SuspendLayout(); - // - // TC_Tabs - // - this.TC_Tabs.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.TC_Tabs.Controls.Add(this.Tab_Gifts); - this.TC_Tabs.Controls.Add(this.Tab_Encounters); - this.TC_Tabs.Controls.Add(this.Tab_Trades); - this.TC_Tabs.Controls.Add(this.Tab_Randomizer); - this.TC_Tabs.Location = new System.Drawing.Point(12, 12); - this.TC_Tabs.Name = "TC_Tabs"; - this.TC_Tabs.SelectedIndex = 0; - this.TC_Tabs.Size = new System.Drawing.Size(395, 347); - this.TC_Tabs.TabIndex = 0; - // - // Tab_Gifts - // - this.Tab_Gifts.Controls.Add(this.NUD_GGender); - this.Tab_Gifts.Controls.Add(this.CHK_G_Lock); - this.Tab_Gifts.Controls.Add(this.CB_GHeldItem); - this.Tab_Gifts.Controls.Add(this.L_GHeldItem); - this.Tab_Gifts.Controls.Add(this.CB_GSpecies); - this.Tab_Gifts.Controls.Add(this.L_GForm); - this.Tab_Gifts.Controls.Add(this.NUD_GForm); - this.Tab_Gifts.Controls.Add(this.L_GLevel); - this.Tab_Gifts.Controls.Add(this.L_GSpecies); - this.Tab_Gifts.Controls.Add(this.NUD_GLevel); - this.Tab_Gifts.Controls.Add(this.LB_Gift); - this.Tab_Gifts.Location = new System.Drawing.Point(4, 22); - this.Tab_Gifts.Name = "Tab_Gifts"; - this.Tab_Gifts.Size = new System.Drawing.Size(387, 321); - this.Tab_Gifts.TabIndex = 2; - this.Tab_Gifts.Text = "Gifts"; - this.Tab_Gifts.UseVisualStyleBackColor = true; - // - // CB_GHeldItem - // - this.CB_GHeldItem.FormattingEnabled = true; - this.CB_GHeldItem.Location = new System.Drawing.Point(230, 87); - this.CB_GHeldItem.Name = "CB_GHeldItem"; - this.CB_GHeldItem.Size = new System.Drawing.Size(121, 21); - this.CB_GHeldItem.TabIndex = 8; - // - // L_GHeldItem - // - this.L_GHeldItem.Location = new System.Drawing.Point(124, 85); - this.L_GHeldItem.Name = "L_GHeldItem"; - this.L_GHeldItem.Size = new System.Drawing.Size(100, 23); - this.L_GHeldItem.TabIndex = 7; - this.L_GHeldItem.Text = "Held Item:"; - this.L_GHeldItem.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // CB_GSpecies - // - this.CB_GSpecies.FormattingEnabled = true; - this.CB_GSpecies.Location = new System.Drawing.Point(230, 18); - this.CB_GSpecies.Name = "CB_GSpecies"; - this.CB_GSpecies.Size = new System.Drawing.Size(121, 21); - this.CB_GSpecies.TabIndex = 6; - this.CB_GSpecies.SelectedIndexChanged += new System.EventHandler(this.changeSpecies); - // - // L_GForm - // - this.L_GForm.Location = new System.Drawing.Point(124, 62); - this.L_GForm.Name = "L_GForm"; - this.L_GForm.Size = new System.Drawing.Size(100, 23); - this.L_GForm.TabIndex = 5; - this.L_GForm.Text = "Form:"; - this.L_GForm.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_GForm - // - this.NUD_GForm.Location = new System.Drawing.Point(230, 65); - this.NUD_GForm.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.NUD_GForm.Name = "NUD_GForm"; - this.NUD_GForm.Size = new System.Drawing.Size(48, 20); - this.NUD_GForm.TabIndex = 4; - this.NUD_GForm.Value = new decimal(new int[] { - 100, - 0, - 0, - 0}); - // - // L_GLevel - // - this.L_GLevel.Location = new System.Drawing.Point(124, 39); - this.L_GLevel.Name = "L_GLevel"; - this.L_GLevel.Size = new System.Drawing.Size(100, 23); - this.L_GLevel.TabIndex = 3; - this.L_GLevel.Text = "Level:"; - this.L_GLevel.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_GSpecies - // - this.L_GSpecies.Location = new System.Drawing.Point(124, 16); - this.L_GSpecies.Name = "L_GSpecies"; - this.L_GSpecies.Size = new System.Drawing.Size(100, 23); - this.L_GSpecies.TabIndex = 2; - this.L_GSpecies.Text = "Species:"; - this.L_GSpecies.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_GLevel - // - this.NUD_GLevel.Location = new System.Drawing.Point(230, 42); - this.NUD_GLevel.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.NUD_GLevel.Name = "NUD_GLevel"; - this.NUD_GLevel.Size = new System.Drawing.Size(48, 20); - this.NUD_GLevel.TabIndex = 1; - this.NUD_GLevel.Value = new decimal(new int[] { - 100, - 0, - 0, - 0}); - // - // LB_Gift - // - this.LB_Gift.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left))); - this.LB_Gift.FormattingEnabled = true; - this.LB_Gift.Location = new System.Drawing.Point(3, 3); - this.LB_Gift.Name = "LB_Gift"; - this.LB_Gift.Size = new System.Drawing.Size(115, 316); - this.LB_Gift.TabIndex = 0; - this.LB_Gift.SelectedIndexChanged += new System.EventHandler(this.LB_Gift_SelectedIndexChanged); - // - // Tab_Encounters - // - this.Tab_Encounters.Controls.Add(this.CHK_ShinyLock); - this.Tab_Encounters.Controls.Add(this.GB_EMoves); - this.Tab_Encounters.Controls.Add(this.CB_EHeldItem); - this.Tab_Encounters.Controls.Add(this.L_EHeldItem); - this.Tab_Encounters.Controls.Add(this.CB_ESpecies); - this.Tab_Encounters.Controls.Add(this.L_EForm); - this.Tab_Encounters.Controls.Add(this.NUD_EForm); - this.Tab_Encounters.Controls.Add(this.L_ELevel); - this.Tab_Encounters.Controls.Add(this.L_ESpecies); - this.Tab_Encounters.Controls.Add(this.NUD_ELevel); - this.Tab_Encounters.Controls.Add(this.LB_Encounter); - this.Tab_Encounters.Location = new System.Drawing.Point(4, 22); - this.Tab_Encounters.Name = "Tab_Encounters"; - this.Tab_Encounters.Padding = new System.Windows.Forms.Padding(3); - this.Tab_Encounters.Size = new System.Drawing.Size(387, 321); - this.Tab_Encounters.TabIndex = 0; - this.Tab_Encounters.Text = "Encounters"; - this.Tab_Encounters.UseVisualStyleBackColor = true; - // - // CHK_ShinyLock - // - this.CHK_ShinyLock.AutoSize = true; - this.CHK_ShinyLock.Location = new System.Drawing.Point(218, 232); - this.CHK_ShinyLock.Name = "CHK_ShinyLock"; - this.CHK_ShinyLock.Size = new System.Drawing.Size(79, 17); - this.CHK_ShinyLock.TabIndex = 18; - this.CHK_ShinyLock.Text = "Shiny Lock"; - this.CHK_ShinyLock.UseVisualStyleBackColor = true; - // - // GB_EMoves - // - this.GB_EMoves.Controls.Add(this.CB_EMove3); - this.GB_EMoves.Controls.Add(this.CB_EMove2); - this.GB_EMoves.Controls.Add(this.CB_EMove1); - this.GB_EMoves.Controls.Add(this.CB_EMove0); - this.GB_EMoves.Location = new System.Drawing.Point(218, 114); - this.GB_EMoves.Name = "GB_EMoves"; - this.GB_EMoves.Size = new System.Drawing.Size(133, 112); - this.GB_EMoves.TabIndex = 17; - this.GB_EMoves.TabStop = false; - this.GB_EMoves.Text = "Moves"; - // - // CB_EMove3 - // - this.CB_EMove3.FormattingEnabled = true; - this.CB_EMove3.Location = new System.Drawing.Point(6, 85); - this.CB_EMove3.Name = "CB_EMove3"; - this.CB_EMove3.Size = new System.Drawing.Size(121, 21); - this.CB_EMove3.TabIndex = 20; - // - // CB_EMove2 - // - this.CB_EMove2.FormattingEnabled = true; - this.CB_EMove2.Location = new System.Drawing.Point(6, 63); - this.CB_EMove2.Name = "CB_EMove2"; - this.CB_EMove2.Size = new System.Drawing.Size(121, 21); - this.CB_EMove2.TabIndex = 19; - // - // CB_EMove1 - // - this.CB_EMove1.FormattingEnabled = true; - this.CB_EMove1.Location = new System.Drawing.Point(6, 41); - this.CB_EMove1.Name = "CB_EMove1"; - this.CB_EMove1.Size = new System.Drawing.Size(121, 21); - this.CB_EMove1.TabIndex = 18; - // - // CB_EMove0 - // - this.CB_EMove0.FormattingEnabled = true; - this.CB_EMove0.Location = new System.Drawing.Point(6, 19); - this.CB_EMove0.Name = "CB_EMove0"; - this.CB_EMove0.Size = new System.Drawing.Size(121, 21); - this.CB_EMove0.TabIndex = 17; - // - // CB_EHeldItem - // - this.CB_EHeldItem.FormattingEnabled = true; - this.CB_EHeldItem.Location = new System.Drawing.Point(230, 87); - this.CB_EHeldItem.Name = "CB_EHeldItem"; - this.CB_EHeldItem.Size = new System.Drawing.Size(121, 21); - this.CB_EHeldItem.TabIndex = 16; - // - // L_EHeldItem - // - this.L_EHeldItem.Location = new System.Drawing.Point(124, 85); - this.L_EHeldItem.Name = "L_EHeldItem"; - this.L_EHeldItem.Size = new System.Drawing.Size(100, 23); - this.L_EHeldItem.TabIndex = 15; - this.L_EHeldItem.Text = "Held Item:"; - this.L_EHeldItem.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // CB_ESpecies - // - this.CB_ESpecies.FormattingEnabled = true; - this.CB_ESpecies.Location = new System.Drawing.Point(230, 18); - this.CB_ESpecies.Name = "CB_ESpecies"; - this.CB_ESpecies.Size = new System.Drawing.Size(121, 21); - this.CB_ESpecies.TabIndex = 14; - this.CB_ESpecies.SelectedIndexChanged += new System.EventHandler(this.changeSpecies); - // - // L_EForm - // - this.L_EForm.Location = new System.Drawing.Point(124, 62); - this.L_EForm.Name = "L_EForm"; - this.L_EForm.Size = new System.Drawing.Size(100, 23); - this.L_EForm.TabIndex = 13; - this.L_EForm.Text = "Form:"; - this.L_EForm.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_EForm - // - this.NUD_EForm.Location = new System.Drawing.Point(230, 65); - this.NUD_EForm.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.NUD_EForm.Name = "NUD_EForm"; - this.NUD_EForm.Size = new System.Drawing.Size(48, 20); - this.NUD_EForm.TabIndex = 12; - this.NUD_EForm.Value = new decimal(new int[] { - 100, - 0, - 0, - 0}); - // - // L_ELevel - // - this.L_ELevel.Location = new System.Drawing.Point(124, 39); - this.L_ELevel.Name = "L_ELevel"; - this.L_ELevel.Size = new System.Drawing.Size(100, 23); - this.L_ELevel.TabIndex = 11; - this.L_ELevel.Text = "Level:"; - this.L_ELevel.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_ESpecies - // - this.L_ESpecies.Location = new System.Drawing.Point(124, 16); - this.L_ESpecies.Name = "L_ESpecies"; - this.L_ESpecies.Size = new System.Drawing.Size(100, 23); - this.L_ESpecies.TabIndex = 10; - this.L_ESpecies.Text = "Species:"; - this.L_ESpecies.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_ELevel - // - this.NUD_ELevel.Location = new System.Drawing.Point(230, 42); - this.NUD_ELevel.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.NUD_ELevel.Name = "NUD_ELevel"; - this.NUD_ELevel.Size = new System.Drawing.Size(48, 20); - this.NUD_ELevel.TabIndex = 9; - this.NUD_ELevel.Value = new decimal(new int[] { - 100, - 0, - 0, - 0}); - // - // LB_Encounter - // - this.LB_Encounter.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left))); - this.LB_Encounter.FormattingEnabled = true; - this.LB_Encounter.Location = new System.Drawing.Point(3, 3); - this.LB_Encounter.Name = "LB_Encounter"; - this.LB_Encounter.Size = new System.Drawing.Size(115, 316); - this.LB_Encounter.TabIndex = 1; - this.LB_Encounter.SelectedIndexChanged += new System.EventHandler(this.LB_Encounter_SelectedIndexChanged); - // - // Tab_Trades - // - this.Tab_Trades.Controls.Add(this.CB_TRequest); - this.Tab_Trades.Controls.Add(this.label1); - this.Tab_Trades.Controls.Add(this.L_TTID); - this.Tab_Trades.Controls.Add(this.L_TID); - this.Tab_Trades.Controls.Add(this.NUD_TID); - this.Tab_Trades.Controls.Add(this.CB_THeldItem); - this.Tab_Trades.Controls.Add(this.L_THeldItem); - this.Tab_Trades.Controls.Add(this.CB_TSpecies); - this.Tab_Trades.Controls.Add(this.L_TForm); - this.Tab_Trades.Controls.Add(this.NUD_TForm); - this.Tab_Trades.Controls.Add(this.L_TLevel); - this.Tab_Trades.Controls.Add(this.L_TSpecies); - this.Tab_Trades.Controls.Add(this.NUD_TLevel); - this.Tab_Trades.Controls.Add(this.LB_Trade); - this.Tab_Trades.Location = new System.Drawing.Point(4, 22); - this.Tab_Trades.Name = "Tab_Trades"; - this.Tab_Trades.Padding = new System.Windows.Forms.Padding(3); - this.Tab_Trades.Size = new System.Drawing.Size(387, 321); - this.Tab_Trades.TabIndex = 1; - this.Tab_Trades.Text = "Trades"; - this.Tab_Trades.UseVisualStyleBackColor = true; - // - // CB_TRequest - // - this.CB_TRequest.FormattingEnabled = true; - this.CB_TRequest.Location = new System.Drawing.Point(230, 137); - this.CB_TRequest.Name = "CB_TRequest"; - this.CB_TRequest.Size = new System.Drawing.Size(121, 21); - this.CB_TRequest.TabIndex = 29; - // - // label1 - // - this.label1.Location = new System.Drawing.Point(121, 135); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(106, 23); - this.label1.TabIndex = 28; - this.label1.Text = "Requested Species:"; - this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_TTID - // - this.L_TTID.AutoSize = true; - this.L_TTID.Location = new System.Drawing.Point(268, 113); - this.L_TTID.Name = "L_TTID"; - this.L_TTID.Size = new System.Drawing.Size(28, 13); - this.L_TTID.TabIndex = 27; - this.L_TTID.Text = "TID:"; - this.L_TTID.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // L_TID - // - this.L_TID.Location = new System.Drawing.Point(124, 108); - this.L_TID.Name = "L_TID"; - this.L_TID.Size = new System.Drawing.Size(50, 23); - this.L_TID.TabIndex = 26; - this.L_TID.Text = "ID:"; - this.L_TID.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_TID - // - this.NUD_TID.Location = new System.Drawing.Point(180, 111); - this.NUD_TID.Maximum = new decimal(new int[] { - -1, - 0, - 0, - 0}); - this.NUD_TID.Name = "NUD_TID"; - this.NUD_TID.Size = new System.Drawing.Size(82, 20); - this.NUD_TID.TabIndex = 25; - this.NUD_TID.Value = new decimal(new int[] { - -1, - 0, - 0, - 0}); - this.NUD_TID.ValueChanged += new System.EventHandler(this.changeTID); - // - // CB_THeldItem - // - this.CB_THeldItem.FormattingEnabled = true; - this.CB_THeldItem.Location = new System.Drawing.Point(230, 87); - this.CB_THeldItem.Name = "CB_THeldItem"; - this.CB_THeldItem.Size = new System.Drawing.Size(121, 21); - this.CB_THeldItem.TabIndex = 24; - // - // L_THeldItem - // - this.L_THeldItem.Location = new System.Drawing.Point(124, 85); - this.L_THeldItem.Name = "L_THeldItem"; - this.L_THeldItem.Size = new System.Drawing.Size(100, 23); - this.L_THeldItem.TabIndex = 23; - this.L_THeldItem.Text = "Held Item:"; - this.L_THeldItem.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // CB_TSpecies - // - this.CB_TSpecies.FormattingEnabled = true; - this.CB_TSpecies.Location = new System.Drawing.Point(230, 18); - this.CB_TSpecies.Name = "CB_TSpecies"; - this.CB_TSpecies.Size = new System.Drawing.Size(121, 21); - this.CB_TSpecies.TabIndex = 22; - this.CB_TSpecies.SelectedIndexChanged += new System.EventHandler(this.changeSpecies); - // - // L_TForm - // - this.L_TForm.Location = new System.Drawing.Point(124, 62); - this.L_TForm.Name = "L_TForm"; - this.L_TForm.Size = new System.Drawing.Size(100, 23); - this.L_TForm.TabIndex = 21; - this.L_TForm.Text = "Form:"; - this.L_TForm.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_TForm - // - this.NUD_TForm.Location = new System.Drawing.Point(230, 65); - this.NUD_TForm.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.NUD_TForm.Name = "NUD_TForm"; - this.NUD_TForm.Size = new System.Drawing.Size(48, 20); - this.NUD_TForm.TabIndex = 20; - this.NUD_TForm.Value = new decimal(new int[] { - 100, - 0, - 0, - 0}); - // - // L_TLevel - // - this.L_TLevel.Location = new System.Drawing.Point(124, 39); - this.L_TLevel.Name = "L_TLevel"; - this.L_TLevel.Size = new System.Drawing.Size(100, 23); - this.L_TLevel.TabIndex = 19; - this.L_TLevel.Text = "Level:"; - this.L_TLevel.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_TSpecies - // - this.L_TSpecies.Location = new System.Drawing.Point(124, 16); - this.L_TSpecies.Name = "L_TSpecies"; - this.L_TSpecies.Size = new System.Drawing.Size(100, 23); - this.L_TSpecies.TabIndex = 18; - this.L_TSpecies.Text = "Species:"; - this.L_TSpecies.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // NUD_TLevel - // - this.NUD_TLevel.Location = new System.Drawing.Point(230, 42); - this.NUD_TLevel.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.NUD_TLevel.Name = "NUD_TLevel"; - this.NUD_TLevel.Size = new System.Drawing.Size(48, 20); - this.NUD_TLevel.TabIndex = 17; - this.NUD_TLevel.Value = new decimal(new int[] { - 100, - 0, - 0, - 0}); - // - // LB_Trade - // - this.LB_Trade.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left))); - this.LB_Trade.FormattingEnabled = true; - this.LB_Trade.Location = new System.Drawing.Point(3, 3); - this.LB_Trade.Name = "LB_Trade"; - this.LB_Trade.Size = new System.Drawing.Size(115, 316); - this.LB_Trade.TabIndex = 2; - this.LB_Trade.SelectedIndexChanged += new System.EventHandler(this.LB_Trade_SelectedIndexChanged); - // - // Tab_Randomizer - // - this.Tab_Randomizer.Controls.Add(this.NUD_LevelBoost); - this.Tab_Randomizer.Controls.Add(this.CHK_Level); - this.Tab_Randomizer.Controls.Add(this.B_RandAll); - this.Tab_Randomizer.Controls.Add(this.GB_Tweak); - this.Tab_Randomizer.Controls.Add(this.B_Starters); - this.Tab_Randomizer.Location = new System.Drawing.Point(4, 22); - this.Tab_Randomizer.Name = "Tab_Randomizer"; - this.Tab_Randomizer.Padding = new System.Windows.Forms.Padding(3); - this.Tab_Randomizer.Size = new System.Drawing.Size(387, 321); - this.Tab_Randomizer.TabIndex = 3; - this.Tab_Randomizer.Text = "Randomizer Options"; - this.Tab_Randomizer.UseVisualStyleBackColor = true; - // - // NUD_LevelBoost - // - this.NUD_LevelBoost.DecimalPlaces = 2; - this.NUD_LevelBoost.Increment = new decimal(new int[] { - 5, - 0, - 0, - 131072}); - this.NUD_LevelBoost.Location = new System.Drawing.Point(231, 74); - this.NUD_LevelBoost.Maximum = new decimal(new int[] { - 3, - 0, - 0, - 0}); - this.NUD_LevelBoost.Name = "NUD_LevelBoost"; - this.NUD_LevelBoost.Size = new System.Drawing.Size(43, 20); - this.NUD_LevelBoost.TabIndex = 511; - this.NUD_LevelBoost.Value = new decimal(new int[] { - 1, - 0, - 0, - 0}); - // - // CHK_Level - // - this.CHK_Level.AutoSize = true; - this.CHK_Level.Checked = true; - this.CHK_Level.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_Level.Location = new System.Drawing.Point(99, 75); - this.CHK_Level.Name = "CHK_Level"; - this.CHK_Level.Size = new System.Drawing.Size(130, 17); - this.CHK_Level.TabIndex = 510; - this.CHK_Level.Text = "Multiply PKM Level by"; - this.CHK_Level.UseVisualStyleBackColor = true; - // - // B_RandAll - // - this.B_RandAll.Location = new System.Drawing.Point(132, 243); - this.B_RandAll.Name = "B_RandAll"; - this.B_RandAll.Size = new System.Drawing.Size(122, 23); - this.B_RandAll.TabIndex = 509; - this.B_RandAll.Text = "Randomize All"; - this.B_RandAll.UseVisualStyleBackColor = true; - this.B_RandAll.Click += new System.EventHandler(this.B_RandAll_Click); - // - // GB_Tweak - // - this.GB_Tweak.Controls.Add(this.CHK_G7); - this.GB_Tweak.Controls.Add(this.L_RandOpt); - this.GB_Tweak.Controls.Add(this.CHK_BST); - this.GB_Tweak.Controls.Add(this.CHK_E); - this.GB_Tweak.Controls.Add(this.CHK_L); - this.GB_Tweak.Controls.Add(this.CHK_G6); - this.GB_Tweak.Controls.Add(this.CHK_G5); - this.GB_Tweak.Controls.Add(this.CHK_G4); - this.GB_Tweak.Controls.Add(this.CHK_G3); - this.GB_Tweak.Controls.Add(this.CHK_G2); - this.GB_Tweak.Controls.Add(this.CHK_G1); - this.GB_Tweak.Location = new System.Drawing.Point(52, 100); - this.GB_Tweak.Name = "GB_Tweak"; - this.GB_Tweak.Size = new System.Drawing.Size(258, 100); - this.GB_Tweak.TabIndex = 508; - this.GB_Tweak.TabStop = false; - this.GB_Tweak.Text = "Extra Randomization Tweaks"; - // - // CHK_G7 - // - this.CHK_G7.AutoSize = true; - this.CHK_G7.Checked = true; - this.CHK_G7.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G7.Location = new System.Drawing.Point(9, 79); - this.CHK_G7.Name = "CHK_G7"; - this.CHK_G7.Size = new System.Drawing.Size(55, 17); - this.CHK_G7.TabIndex = 296; - this.CHK_G7.Text = "Gen 7"; - this.CHK_G7.UseVisualStyleBackColor = true; - // - // L_RandOpt - // - this.L_RandOpt.AutoSize = true; - this.L_RandOpt.Location = new System.Drawing.Point(6, 16); - this.L_RandOpt.Name = "L_RandOpt"; - this.L_RandOpt.Size = new System.Drawing.Size(105, 13); - this.L_RandOpt.TabIndex = 294; - this.L_RandOpt.Text = "Randomizer Options:"; - // - // CHK_BST - // - this.CHK_BST.AutoSize = true; - this.CHK_BST.Location = new System.Drawing.Point(128, 64); - this.CHK_BST.Name = "CHK_BST"; - this.CHK_BST.Size = new System.Drawing.Size(117, 17); - this.CHK_BST.TabIndex = 288; - this.CHK_BST.Text = "Randomize by BST"; - this.CHK_BST.UseVisualStyleBackColor = true; - // - // CHK_E - // - this.CHK_E.AutoSize = true; - this.CHK_E.Checked = true; - this.CHK_E.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_E.Location = new System.Drawing.Point(128, 49); - this.CHK_E.Name = "CHK_E"; - this.CHK_E.Size = new System.Drawing.Size(98, 17); - this.CHK_E.TabIndex = 287; - this.CHK_E.Text = "Event Legends"; - this.CHK_E.UseVisualStyleBackColor = true; - // - // CHK_L - // - this.CHK_L.AutoSize = true; - this.CHK_L.Checked = true; - this.CHK_L.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_L.Location = new System.Drawing.Point(128, 34); - this.CHK_L.Name = "CHK_L"; - this.CHK_L.Size = new System.Drawing.Size(98, 17); - this.CHK_L.TabIndex = 286; - this.CHK_L.Text = "Game Legends"; - this.CHK_L.UseVisualStyleBackColor = true; - // - // CHK_G6 - // - this.CHK_G6.AutoSize = true; - this.CHK_G6.Checked = true; - this.CHK_G6.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G6.Location = new System.Drawing.Point(67, 64); - this.CHK_G6.Name = "CHK_G6"; - this.CHK_G6.Size = new System.Drawing.Size(55, 17); - this.CHK_G6.TabIndex = 285; - this.CHK_G6.Text = "Gen 6"; - this.CHK_G6.UseVisualStyleBackColor = true; - // - // CHK_G5 - // - this.CHK_G5.AutoSize = true; - this.CHK_G5.Checked = true; - this.CHK_G5.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G5.Location = new System.Drawing.Point(67, 49); - this.CHK_G5.Name = "CHK_G5"; - this.CHK_G5.Size = new System.Drawing.Size(55, 17); - this.CHK_G5.TabIndex = 284; - this.CHK_G5.Text = "Gen 5"; - this.CHK_G5.UseVisualStyleBackColor = true; - // - // CHK_G4 - // - this.CHK_G4.AutoSize = true; - this.CHK_G4.Checked = true; - this.CHK_G4.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G4.Location = new System.Drawing.Point(67, 34); - this.CHK_G4.Name = "CHK_G4"; - this.CHK_G4.Size = new System.Drawing.Size(55, 17); - this.CHK_G4.TabIndex = 283; - this.CHK_G4.Text = "Gen 4"; - this.CHK_G4.UseVisualStyleBackColor = true; - // - // CHK_G3 - // - this.CHK_G3.AutoSize = true; - this.CHK_G3.Checked = true; - this.CHK_G3.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G3.Location = new System.Drawing.Point(9, 64); - this.CHK_G3.Name = "CHK_G3"; - this.CHK_G3.Size = new System.Drawing.Size(55, 17); - this.CHK_G3.TabIndex = 282; - this.CHK_G3.Text = "Gen 3"; - this.CHK_G3.UseVisualStyleBackColor = true; - // - // CHK_G2 - // - this.CHK_G2.AutoSize = true; - this.CHK_G2.Checked = true; - this.CHK_G2.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G2.Location = new System.Drawing.Point(9, 49); - this.CHK_G2.Name = "CHK_G2"; - this.CHK_G2.Size = new System.Drawing.Size(55, 17); - this.CHK_G2.TabIndex = 281; - this.CHK_G2.Text = "Gen 2"; - this.CHK_G2.UseVisualStyleBackColor = true; - // - // CHK_G1 - // - this.CHK_G1.AutoSize = true; - this.CHK_G1.Checked = true; - this.CHK_G1.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_G1.Location = new System.Drawing.Point(9, 34); - this.CHK_G1.Name = "CHK_G1"; - this.CHK_G1.Size = new System.Drawing.Size(55, 17); - this.CHK_G1.TabIndex = 280; - this.CHK_G1.Text = "Gen 1"; - this.CHK_G1.UseVisualStyleBackColor = true; - // - // B_Starters - // - this.B_Starters.Location = new System.Drawing.Point(132, 272); - this.B_Starters.Name = "B_Starters"; - this.B_Starters.Size = new System.Drawing.Size(122, 23); - this.B_Starters.TabIndex = 9; - this.B_Starters.Text = "Randomize Starters"; - this.B_Starters.UseVisualStyleBackColor = true; - this.B_Starters.Click += new System.EventHandler(this.B_Starters_Click); - // - // B_Save - // - this.B_Save.Location = new System.Drawing.Point(328, 365); - this.B_Save.Name = "B_Save"; - this.B_Save.Size = new System.Drawing.Size(75, 23); - this.B_Save.TabIndex = 1; - this.B_Save.Text = "Save"; - this.B_Save.UseVisualStyleBackColor = true; - this.B_Save.Click += new System.EventHandler(this.B_Save_Click); - // - // B_Cancel - // - this.B_Cancel.Location = new System.Drawing.Point(247, 365); - this.B_Cancel.Name = "B_Cancel"; - this.B_Cancel.Size = new System.Drawing.Size(75, 23); - this.B_Cancel.TabIndex = 2; - this.B_Cancel.Text = "Cancel"; - this.B_Cancel.UseVisualStyleBackColor = true; - this.B_Cancel.Click += new System.EventHandler(this.B_Cancel_Click); - // - // CHK_G_Lock - // - this.CHK_G_Lock.AutoSize = true; - this.CHK_G_Lock.Location = new System.Drawing.Point(230, 114); - this.CHK_G_Lock.Name = "CHK_G_Lock"; - this.CHK_G_Lock.Size = new System.Drawing.Size(79, 17); - this.CHK_G_Lock.TabIndex = 19; - this.CHK_G_Lock.Text = "Shiny Lock"; - this.CHK_G_Lock.UseVisualStyleBackColor = true; - // - // NUD_GGender - // - this.NUD_GGender.Location = new System.Drawing.Point(230, 137); - this.NUD_GGender.Maximum = new decimal(new int[] { - 255, - 0, - 0, - 0}); - this.NUD_GGender.Name = "NUD_GGender"; - this.NUD_GGender.Size = new System.Drawing.Size(48, 20); - this.NUD_GGender.TabIndex = 20; - this.NUD_GGender.Value = new decimal(new int[] { - 100, - 0, - 0, - 0}); - // - // StaticEncounterEditor7 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(419, 395); - this.Controls.Add(this.B_Cancel); - this.Controls.Add(this.B_Save); - this.Controls.Add(this.TC_Tabs); - this.Name = "StaticEncounterEditor7"; - this.Text = "StaticEncounterEditor7"; - this.TC_Tabs.ResumeLayout(false); - this.Tab_Gifts.ResumeLayout(false); - this.Tab_Gifts.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_GForm)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_GLevel)).EndInit(); - this.Tab_Encounters.ResumeLayout(false); - this.Tab_Encounters.PerformLayout(); - this.GB_EMoves.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.NUD_EForm)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_ELevel)).EndInit(); - this.Tab_Trades.ResumeLayout(false); - this.Tab_Trades.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_TID)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_TForm)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_TLevel)).EndInit(); - this.Tab_Randomizer.ResumeLayout(false); - this.Tab_Randomizer.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_LevelBoost)).EndInit(); - this.GB_Tweak.ResumeLayout(false); - this.GB_Tweak.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_GGender)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.TabControl TC_Tabs; - private System.Windows.Forms.TabPage Tab_Encounters; - private System.Windows.Forms.TabPage Tab_Trades; - private System.Windows.Forms.TabPage Tab_Gifts; - private System.Windows.Forms.ListBox LB_Gift; - private System.Windows.Forms.ListBox LB_Encounter; - private System.Windows.Forms.ListBox LB_Trade; - private System.Windows.Forms.Button B_Save; - private System.Windows.Forms.NumericUpDown NUD_GLevel; - private System.Windows.Forms.Label L_GSpecies; - private System.Windows.Forms.Label L_GForm; - private System.Windows.Forms.NumericUpDown NUD_GForm; - private System.Windows.Forms.Label L_GLevel; - private System.Windows.Forms.ComboBox CB_GSpecies; - private System.Windows.Forms.ComboBox CB_GHeldItem; - private System.Windows.Forms.Label L_GHeldItem; - private System.Windows.Forms.ComboBox CB_EHeldItem; - private System.Windows.Forms.Label L_EHeldItem; - private System.Windows.Forms.ComboBox CB_ESpecies; - private System.Windows.Forms.Label L_EForm; - private System.Windows.Forms.NumericUpDown NUD_EForm; - private System.Windows.Forms.Label L_ELevel; - private System.Windows.Forms.Label L_ESpecies; - private System.Windows.Forms.NumericUpDown NUD_ELevel; - private System.Windows.Forms.ComboBox CB_THeldItem; - private System.Windows.Forms.Label L_THeldItem; - private System.Windows.Forms.ComboBox CB_TSpecies; - private System.Windows.Forms.Label L_TForm; - private System.Windows.Forms.NumericUpDown NUD_TForm; - private System.Windows.Forms.Label L_TLevel; - private System.Windows.Forms.Label L_TSpecies; - private System.Windows.Forms.NumericUpDown NUD_TLevel; - private System.Windows.Forms.Button B_Starters; - private System.Windows.Forms.GroupBox GB_EMoves; - private System.Windows.Forms.ComboBox CB_EMove3; - private System.Windows.Forms.ComboBox CB_EMove2; - private System.Windows.Forms.ComboBox CB_EMove1; - private System.Windows.Forms.ComboBox CB_EMove0; - private System.Windows.Forms.NumericUpDown NUD_TID; - private System.Windows.Forms.Label L_TID; - private System.Windows.Forms.Label L_TTID; - private System.Windows.Forms.ComboBox CB_TRequest; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TabPage Tab_Randomizer; - private System.Windows.Forms.GroupBox GB_Tweak; - private System.Windows.Forms.CheckBox CHK_G7; - private System.Windows.Forms.Label L_RandOpt; - private System.Windows.Forms.CheckBox CHK_BST; - private System.Windows.Forms.CheckBox CHK_E; - private System.Windows.Forms.CheckBox CHK_L; - private System.Windows.Forms.CheckBox CHK_G6; - private System.Windows.Forms.CheckBox CHK_G5; - private System.Windows.Forms.CheckBox CHK_G4; - private System.Windows.Forms.CheckBox CHK_G3; - private System.Windows.Forms.CheckBox CHK_G2; - private System.Windows.Forms.CheckBox CHK_G1; - private System.Windows.Forms.Button B_RandAll; - private System.Windows.Forms.Button B_Cancel; - private System.Windows.Forms.NumericUpDown NUD_LevelBoost; - private System.Windows.Forms.CheckBox CHK_Level; - private System.Windows.Forms.CheckBox CHK_ShinyLock; - private System.Windows.Forms.NumericUpDown NUD_GGender; - private System.Windows.Forms.CheckBox CHK_G_Lock; - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/StaticEncounterEditor7.cs b/pk3DS/Subforms/Gen7/StaticEncounterEditor7.cs deleted file mode 100644 index 7183b67026..0000000000 --- a/pk3DS/Subforms/Gen7/StaticEncounterEditor7.cs +++ /dev/null @@ -1,455 +0,0 @@ -using System; -using System.Linq; -using System.Windows.Forms; - -using pk3DS.Core; -using pk3DS.Core.Randomizers; -using pk3DS.Core.Structures; - -namespace pk3DS -{ - public partial class StaticEncounterEditor7 : Form - { - private readonly byte[][] files; - private readonly EncounterGift7[] Gifts; - private readonly EncounterStatic7[] Encounters; - private readonly EncounterTrade7[] Trades; - private readonly string[] movelist = Main.Config.getText(TextName.MoveNames); - private readonly string[] itemlist = Main.Config.getText(TextName.ItemNames); - private readonly string[] specieslist = Main.Config.getText(TextName.SpeciesNames); - private readonly string[] natures = Main.Config.getText(TextName.Natures); - private readonly string[] types = Main.Config.getText(TextName.Types); - private readonly int[] oldStarters; - - public StaticEncounterEditor7(byte[][] infiles) - { - InitializeComponent(); - files = infiles; - - // File 0: Gifts - { - byte[] data = files[0]; - Gifts = new EncounterGift7[data.Length / EncounterGift7.SIZE]; - for (int i = 0; i < data.Length; i += EncounterGift7.SIZE) - { - byte[] entry = new byte[EncounterGift7.SIZE]; - Array.Copy(data, i, entry, 0, entry.Length); - Gifts[i/EncounterGift7.SIZE] = new EncounterGift7(entry); - } - } - oldStarters = Gifts.Take(3).Select(gift => gift.Species).ToArray(); - - // File 1: Encounters - { - byte[] data = files[1]; - Encounters = new EncounterStatic7[data.Length / EncounterStatic7.SIZE]; - for (int i = 0; i < data.Length; i += EncounterStatic7.SIZE) - { - byte[] entry = new byte[EncounterStatic7.SIZE]; - Array.Copy(data, i, entry, 0, entry.Length); - Encounters[i/EncounterStatic7.SIZE] = new EncounterStatic7(entry); - } - } - - // File 4: Trades - { - byte[] data = files[4]; - Trades = new EncounterTrade7[data.Length / EncounterTrade7.SIZE]; - for (int i = 0; i < data.Length; i += EncounterTrade7.SIZE) - { - byte[] entry = new byte[EncounterTrade7.SIZE]; - Array.Copy(data, i, entry, 0, entry.Length); - Trades[i/EncounterTrade7.SIZE] = new EncounterTrade7(entry); - } - } - - movelist[0] = itemlist[0] = specieslist[0] = "(None)"; - foreach (var s in specieslist) - { - CB_GSpecies.Items.Add(s); - CB_ESpecies.Items.Add(s); - CB_TSpecies.Items.Add(s); - CB_TRequest.Items.Add(s); - } - foreach (var s in itemlist) - { - CB_GHeldItem.Items.Add(s); - CB_EHeldItem.Items.Add(s); - CB_THeldItem.Items.Add(s); - } - foreach (var s in movelist) - { - CB_EMove0.Items.Add(s); - CB_EMove1.Items.Add(s); - CB_EMove2.Items.Add(s); - CB_EMove3.Items.Add(s); - } - - getListBoxEntries(); - LB_Gift.SelectedIndex = 0; - LB_Encounter.SelectedIndex = 0; - LB_Trade.SelectedIndex = 0; - - // Select last tab (Randomization) by default in case info already randomized. - TC_Tabs.SelectedIndex = TC_Tabs.TabCount - 1; - - // ExportEncounters(); - } - private void getListBoxEntries() - { - loading = true; - LB_Gift.Items.Clear(); - LB_Encounter.Items.Clear(); - LB_Trade.Items.Clear(); - - for (int i = 0; i < Gifts.Length; i++) - LB_Gift.Items.Add(getEntryText(Gifts[i], i)); - for (int i = 0; i < Encounters.Length; i++) - LB_Encounter.Items.Add(getEntryText(Encounters[i], i)); - for (int i = 0; i < Trades.Length; i++) - LB_Trade.Items.Add(getEntryText(Trades[i], i)); - loading = false; - } - - private int gEntry = -1; - private int eEntry = -1; - private int tEntry = -1; - - private void B_Save_Click(object sender, EventArgs e) - { - setGift(); - setEncounter(); - setTrade(); - saveData(); - Close(); - } - private void B_Cancel_Click(object sender, EventArgs e) - { - Close(); - } - - private void saveData() - { - files[0] = Gifts.SelectMany(file => file.Data).ToArray(); - files[1] = Encounters.SelectMany(file => file.Data).ToArray(); - files[4] = Trades.SelectMany(file => file.Data).ToArray(); - - if (Gifts.Take(3).Select(gift => gift.Species).SequenceEqual(oldStarters)) - return; - - var dr = WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Starters have been changed. Update text references?", "Note that this only updates text references for the current language set in pk3DS.", "This can be changed from Options -> Language on the main window."); - if (dr == DialogResult.Yes) - updateStarterText(); - } - - private string getEntryText(int species, int entry) - { - return $"{entry.ToString("00")} - {specieslist[species]}"; - } - private string getEntryText(EncounterStatic enc, int entry) - { - return getEntryText(enc.Species, entry); - } - - private void LB_Gift_SelectedIndexChanged(object sender, EventArgs e) - { - setGift(); - gEntry = LB_Gift.SelectedIndex; - getGift(); - } - private void LB_Encounter_SelectedIndexChanged(object sender, EventArgs e) - { - setEncounter(); - eEntry = LB_Encounter.SelectedIndex; - getEncounter(); - } - private void LB_Trade_SelectedIndexChanged(object sender, EventArgs e) - { - setTrade(); - tEntry = LB_Trade.SelectedIndex; - getTrade(); - } - - private bool loading; - private void getGift() - { - if (gEntry < 0) - return; - - loading = true; - var entry = Gifts[gEntry]; - CB_GSpecies.SelectedIndex = entry.Species; - CB_GHeldItem.SelectedIndex = entry.HeldItem; - NUD_GLevel.Value = entry.Level; - NUD_GForm.Value = entry.Form; - NUD_GGender.Value = entry.Gender; - CHK_G_Lock.Checked = entry.ShinyLock; - loading = false; - } - private void setGift() - { - if (gEntry < 0) - return; - - var entry = Gifts[gEntry]; - entry.Species = CB_GSpecies.SelectedIndex; - entry.HeldItem = CB_GHeldItem.SelectedIndex; - entry.Level = (int)NUD_GLevel.Value; - entry.Form = (int)NUD_GForm.Value; - entry.Gender = (int) NUD_GGender.Value; - entry.ShinyLock = CHK_G_Lock.Checked; - } - private void getEncounter() - { - if (eEntry < 0) - return; - - loading = true; - var entry = Encounters[eEntry]; - CB_ESpecies.SelectedIndex = entry.Species; - CB_EHeldItem.SelectedIndex = entry.HeldItem; - NUD_ELevel.Value = entry.Level; - NUD_EForm.Value = entry.Form; - - int[] moves = entry.RelearnMoves; - CB_EMove0.SelectedIndex = moves[0]; - CB_EMove1.SelectedIndex = moves[1]; - CB_EMove2.SelectedIndex = moves[2]; - CB_EMove3.SelectedIndex = moves[3]; - CHK_ShinyLock.Checked = entry.ShinyLock; - - loading = false; - } - private void setEncounter() - { - if (eEntry < 0) - return; - - var entry = Encounters[eEntry]; - entry.Species = CB_ESpecies.SelectedIndex; - entry.HeldItem = CB_EHeldItem.SelectedIndex; - entry.Level = (int)NUD_ELevel.Value; - entry.Form = (int)NUD_EForm.Value; - - entry.RelearnMoves = new[] - { - CB_EMove0.SelectedIndex, - CB_EMove1.SelectedIndex, - CB_EMove2.SelectedIndex, - CB_EMove3.SelectedIndex, - }; - entry.ShinyLock = CHK_ShinyLock.Checked; - } - private void getTrade() - { - if (tEntry < 0) - return; - - loading = true; - var entry = Trades[tEntry]; - CB_TSpecies.SelectedIndex = entry.Species; - CB_THeldItem.SelectedIndex = entry.HeldItem; - NUD_TLevel.Value = entry.Level; - NUD_TForm.Value = entry.Form; - - NUD_TID.Value = entry.ID; - CB_TRequest.SelectedIndex = entry.TradeRequestSpecies; - - loading = false; - } - private void setTrade() - { - if (tEntry < 0) - return; - - var entry = Trades[tEntry]; - entry.Species = CB_TSpecies.SelectedIndex; - entry.HeldItem = CB_THeldItem.SelectedIndex; - entry.Level = (int)NUD_TLevel.Value; - entry.Form = (int)NUD_TForm.Value; - - entry.ID = (uint)NUD_TID.Value; - entry.TradeRequestSpecies = CB_TRequest.SelectedIndex; - } - - private void changeSpecies(object sender, EventArgs e) - { - if (loading) - return; - var cb = sender as ComboBox; - if (cb == null) - return; - - if (sender == CB_GSpecies) - { - var entry = Gifts[gEntry]; - entry.Species = cb.SelectedIndex; - LB_Gift.Items[gEntry] = getEntryText(entry, gEntry); - } - else if (sender == CB_ESpecies) - { - var entry = Encounters[eEntry]; - entry.Species = cb.SelectedIndex; - LB_Encounter.Items[eEntry] = getEntryText(entry, eEntry); - } - else if(sender == CB_TSpecies) - { - var entry = Trades[tEntry]; - entry.Species = cb.SelectedIndex; - LB_Trade.Items[tEntry] = getEntryText(entry, tEntry); - } - } - private void changeTID(object sender, EventArgs e) - { - L_TTID.Text = $"TID: {NUD_TID.Value % 100000:000000}"; - } - - // Randomization - private SpeciesRandomizer getRandomizer() - { - var specrand = new SpeciesRandomizer(Main.Config) - { - G1 = CHK_G1.Checked, - G2 = CHK_G2.Checked, - G3 = CHK_G3.Checked, - G4 = CHK_G4.Checked, - G5 = CHK_G5.Checked, - G6 = CHK_G6.Checked, - G7 = false, - - E = CHK_E.Checked, - L = CHK_L.Checked, - - rBST = CHK_BST.Checked, - }; - specrand.Initialize(); - return specrand; - } - private void B_Starters_Click(object sender, EventArgs e) - { - if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomize Starters? Cannot undo.", "Double check Randomization settings before continuing.") != DialogResult.Yes) - return; - - setGift(); - - var specrand = getRandomizer(); - var formrand = new FormRandomizer(Main.Config) { AllowMega = false, AllowAlolanForm = true }; - - // Assign Species - for (int i = 0; i < 3; i++) - { - var t = Gifts[i]; - t.Species = specrand.GetRandomSpecies(oldStarters[i]); - t.Form = formrand.GetRandomForme(t.Species); - - // no level boosting - } - - getListBoxEntries(); - getGift(); - - WinFormsUtil.Alert("Randomized Starters according to specification!"); - } - private void B_RandAll_Click(object sender, EventArgs e) - { - if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomize Static Encounters? Cannot undo.", "Double check Randomization Settings before continuing.") != DialogResult.Yes) - return; - - setGift(); - setEncounter(); - setTrade(); - - var specrand = getRandomizer(); - var formrand = new FormRandomizer(Main.Config) { AllowMega = false, AllowAlolanForm = true }; - var move = new LearnsetRandomizer(Main.Config, Main.Config.Learnsets); - - for (int i = 3; i < Gifts.Length; i++) // Skip Starters - { - var t = Gifts[i]; - t.Species = specrand.GetRandomSpecies(t.Species); - t.Form = formrand.GetRandomForme(t.Species); - - if (CHK_Level.Checked) - t.Level = Randomizer.getModifiedLevel(t.Level, NUD_LevelBoost.Value); - } - foreach (EncounterStatic7 t in Encounters) - { - t.Species = specrand.GetRandomSpecies(t.Species); - t.Form = formrand.GetRandomForme(t.Species); - t.RelearnMoves = move.GetCurrentMoves(t.Species, t.Form, t.Level, 4); - - if (CHK_Level.Checked) - t.Level = Randomizer.getModifiedLevel(t.Level, NUD_LevelBoost.Value); - } - foreach (EncounterTrade7 t in Trades) - { - t.Species = specrand.GetRandomSpecies(t.Species); - t.Form = formrand.GetRandomForme(t.Species); - t.TradeRequestSpecies = specrand.GetRandomSpecies(t.TradeRequestSpecies); - - if (CHK_Level.Checked) - t.Level = Randomizer.getModifiedLevel(t.Level, NUD_LevelBoost.Value); - } - - getListBoxEntries(); - getGift(); - getEncounter(); - getTrade(); - - WinFormsUtil.Alert("Randomized Static Encounters according to specification!"); - } - - // Mirror Changes - private void updateStarterText() - { - var gr = Main.Config.getGARCReference("storytext"); - int file = Main.Config.USUM ? 39 : 41; - for (int i = 0; i < 10; i++) - { - // get Story Text - var sr = gr.getRelativeGARC(i, gr.Name); - var s = Main.Config.getGARCByReference(sr); - byte[][] storytextdata = s.Files; - - string[] storyText = TextFile.getStrings(Main.Config, storytextdata[file]); - - for (int j = 0; j < 3; j++) - { - int oldSpecies = oldStarters[j]; - int species = Gifts[j].Species; - // Replace Story Text - string line = storyText[1 + j]; - // Replace Species - line = line.Replace(specieslist[oldSpecies], specieslist[species]); - - if (Main.Config.SM) // replace type text - { - int oldIndex = Main.Config.Personal.getFormeIndex(oldSpecies, Gifts[j].Form); - int oldtype0 = Main.Config.Personal[oldIndex].Types[0]; - int newIndex = Main.Config.Personal.getFormeIndex(species, Gifts[j].Form); - int newtype0 = Main.Config.Personal[newIndex].Types[0]; - line = line.Replace(types[oldtype0], types[newtype0]); - } - else if (Main.Config.USUM) - { - storyText[14 + j] = specieslist[species]; - } - - storyText[1 + j] = line; - } - storytextdata[file] = TextFile.getBytes(Main.Config, storyText); - s.Files = storytextdata; - s.Save(); - } - } - - private void ExportEncounters() - { - System.IO.File.WriteAllBytes("0", files[0]); - System.IO.File.WriteAllBytes("1", files[1]); - var g = Gifts.Select(z => z.GetSummary() + $" // {specieslist[z.Species]} @ ???"); - var s = Encounters.Select(z => z.GetSummary() + $" // {specieslist[z.Species]} @ ???"); - Clipboard.SetText(string.Join(Environment.NewLine, g.Concat(s))); - } - } -} diff --git a/pk3DS/Subforms/Gen7/TMEditor7.Designer.cs b/pk3DS/Subforms/Gen7/TMEditor7.Designer.cs deleted file mode 100644 index 350bf49e05..0000000000 --- a/pk3DS/Subforms/Gen7/TMEditor7.Designer.cs +++ /dev/null @@ -1,97 +0,0 @@ -namespace pk3DS -{ - partial class TMEditor7 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.dgvTM = new System.Windows.Forms.DataGridView(); - this.L_TM = new System.Windows.Forms.Label(); - this.B_RTM = new System.Windows.Forms.Button(); - ((System.ComponentModel.ISupportInitialize)(this.dgvTM)).BeginInit(); - this.SuspendLayout(); - // - // dgvTM - // - this.dgvTM.AllowUserToAddRows = false; - this.dgvTM.AllowUserToDeleteRows = false; - this.dgvTM.AllowUserToResizeColumns = false; - this.dgvTM.AllowUserToResizeRows = false; - this.dgvTM.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left))); - this.dgvTM.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgvTM.Location = new System.Drawing.Point(9, 25); - this.dgvTM.Name = "dgvTM"; - this.dgvTM.Size = new System.Drawing.Size(240, 299); - this.dgvTM.TabIndex = 1; - // - // L_TM - // - this.L_TM.AutoSize = true; - this.L_TM.Location = new System.Drawing.Point(9, 9); - this.L_TM.Name = "L_TM"; - this.L_TM.Size = new System.Drawing.Size(26, 13); - this.L_TM.TabIndex = 2; - this.L_TM.Text = "TM:"; - // - // B_RTM - // - this.B_RTM.Location = new System.Drawing.Point(41, 1); - this.B_RTM.Name = "B_RTM"; - this.B_RTM.Size = new System.Drawing.Size(75, 23); - this.B_RTM.TabIndex = 5; - this.B_RTM.Text = "Randomize"; - this.B_RTM.UseVisualStyleBackColor = true; - this.B_RTM.Click += new System.EventHandler(this.B_RandomTM_Click); - // - // TMHMEditor7 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(259, 331); - this.Controls.Add(this.B_RTM); - this.Controls.Add(this.L_TM); - this.Controls.Add(this.dgvTM); - this.MaximizeBox = false; - this.MaximumSize = new System.Drawing.Size(520, 670); - this.MinimumSize = new System.Drawing.Size(275, 370); - this.Name = "TMHMEditor7"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "TM Editor"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.formClosing); - ((System.ComponentModel.ISupportInitialize)(this.dgvTM)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.DataGridView dgvTM; - private System.Windows.Forms.Label L_TM; - private System.Windows.Forms.Button B_RTM; - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/TMEditor7.cs b/pk3DS/Subforms/Gen7/TMEditor7.cs deleted file mode 100644 index 69109fe54c..0000000000 --- a/pk3DS/Subforms/Gen7/TMEditor7.cs +++ /dev/null @@ -1,151 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Windows.Forms; -using System.Linq; -using pk3DS.Core; - -namespace pk3DS -{ - public partial class TMEditor7 : Form - { - public TMEditor7() - { - InitializeComponent(); - if (Main.ExeFSPath == null) { WinFormsUtil.Alert("No exeFS code to load."); Close(); } - string[] files = Directory.GetFiles(Main.ExeFSPath); - if (!File.Exists(files[0]) || !Path.GetFileNameWithoutExtension(files[0]).Contains("code")) { WinFormsUtil.Alert("No .code.bin detected."); Close(); } - data = File.ReadAllBytes(files[0]); - if (data.Length % 0x200 != 0) { WinFormsUtil.Alert(".code.bin not decompressed. Aborting."); Close(); } - offset = Util.IndexOfBytes(data, Signature, 0x400000, 0) + Signature.Length; - if (Main.Config.USUM) - offset += 0x22; - codebin = files[0]; - movelist[0] = ""; - setupDGV(); - getList(); - } - - private static readonly byte[] Signature = {0x03, 0x40, 0x03, 0x41, 0x03, 0x42, 0x03, 0x43, 0x03}; // tail end of item::ITEM_CheckBeads - private readonly string codebin; - private readonly string[] movelist = Main.Config.getText(TextName.MoveNames); - private readonly int offset = 0x0059795A; // Default - private readonly byte[] data; - private int dataoffset; - private void getDataOffset() - { - dataoffset = offset; // reset - } - private void setupDGV() - { - dgvTM.Columns.Clear(); - DataGridViewColumn dgvIndex = new DataGridViewTextBoxColumn(); - { - dgvIndex.HeaderText = "Index"; - dgvIndex.DisplayIndex = 0; - dgvIndex.Width = 45; - dgvIndex.ReadOnly = true; - dgvIndex.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; - dgvIndex.SortMode = DataGridViewColumnSortMode.NotSortable; - } - DataGridViewComboBoxColumn dgvMove = new DataGridViewComboBoxColumn(); - { - dgvMove.HeaderText = "Move"; - dgvMove.DisplayIndex = 1; - foreach (string t in movelist) - dgvMove.Items.Add(t); // add only the Names - - dgvMove.Width = 133; - dgvMove.FlatStyle = FlatStyle.Flat; - dgvIndex.SortMode = DataGridViewColumnSortMode.NotSortable; - } - dgvTM.Columns.Add(dgvIndex); - dgvTM.Columns.Add(dgvMove); - } - - private List tms = new List(); - - private void getList() - { - tms = new List(); - dgvTM.Rows.Clear(); - - getDataOffset(); - for (int i = 0; i < 100; i++) // TMs stored sequentially - tms.Add(BitConverter.ToUInt16(data, dataoffset + 2 * i)); - - ushort[] tmlist = tms.ToArray(); - for (int i = 0; i < tmlist.Length; i++) - { dgvTM.Rows.Add(); dgvTM.Rows[i].Cells[0].Value = (i + 1).ToString(); dgvTM.Rows[i].Cells[1].Value = movelist[tmlist[i]]; } - } - private void setList() - { - // Gather TM/HM list. - tms = new List(); - for (int i = 0; i < dgvTM.Rows.Count; i++) - tms.Add((ushort)Array.IndexOf(movelist, dgvTM.Rows[i].Cells[1].Value)); - - ushort[] tmlist = tms.ToArray(); - - // Set TM/HM list in - for (int i = 0; i < 100; i++) - Array.Copy(BitConverter.GetBytes(tmlist[i]), 0, data, offset + 2 * i, 2); - - // Set Move Text Descriptions back into Item Text File - string[] itemDescriptions = Main.Config.getText(TextName.ItemFlavor); - string[] moveDescriptions = Main.Config.getText(TextName.MoveFlavor); - for (int i = 1 - 1; i <= 92 - 1; i++) // TM01 - TM92 - itemDescriptions[328 + i] = moveDescriptions[tmlist[i]]; - for (int i = 93 - 1; i <= 95 - 1; i++) // TM92 - TM95 - itemDescriptions[618 + i - 92] = moveDescriptions[tmlist[i]]; - for (int i = 96 - 1; i <= 100 - 1; i++) // TM96 - TM100 - itemDescriptions[690 + i - 95] = moveDescriptions[tmlist[i]]; - Main.Config.setText(TextName.ItemFlavor, itemDescriptions); - } - - private void formClosing(object sender, FormClosingEventArgs e) - { - setList(); - File.WriteAllBytes(codebin, data); - } - - private void B_RandomTM_Click(object sender, EventArgs e) - { - if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomize TMs?", "Move compatibility will be the same as the base TMs.") != DialogResult.Yes) return; - - int[] randomMoves = Enumerable.Range(1, movelist.Length - 1).Select(i => i).ToArray(); - Util.Shuffle(randomMoves); - - int[] banned = Legal.Z_Moves; - int ctr = 0; - - for (int i = 0; i < dgvTM.Rows.Count; i++) - { - int val = Array.IndexOf(movelist, dgvTM.Rows[i].Cells[1].Value); - if (banned.Contains(val)) continue; - while (banned.Contains(randomMoves[ctr])) ctr++; - - dgvTM.Rows[i].Cells[1].Value = movelist[randomMoves[ctr++]]; - } - WinFormsUtil.Alert("Randomized!"); - } - - internal static void getTMHMList(ref ushort[] TMs) - { - if (Main.ExeFSPath == null) return; - string[] files = Directory.GetFiles(Main.ExeFSPath); - if (!File.Exists(files[0]) || !Path.GetFileNameWithoutExtension(files[0]).Contains("code")) return; - byte[] data = File.ReadAllBytes(files[0]); - int dataoffset = Util.IndexOfBytes(data, Signature, 0x400000, 0) + Signature.Length; - if (data.Length % 0x200 != 0) return; - - if (Main.Config.USUM) - dataoffset += 0x22; - List tms = new List(); - - for (int i = 0; i < 100; i++) // TMs stored sequentially - tms.Add(BitConverter.ToUInt16(data, dataoffset + 2 * i)); - TMs = tms.ToArray(); - } - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/TypeChart7.Designer.cs b/pk3DS/Subforms/Gen7/TypeChart7.Designer.cs deleted file mode 100644 index 29940ebce0..0000000000 --- a/pk3DS/Subforms/Gen7/TypeChart7.Designer.cs +++ /dev/null @@ -1,109 +0,0 @@ -namespace pk3DS -{ - partial class TypeChart7 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.PB_Chart = new System.Windows.Forms.PictureBox(); - this.B_Cancel = new System.Windows.Forms.Button(); - this.B_Save = new System.Windows.Forms.Button(); - this.L_Hover = new System.Windows.Forms.Label(); - ((System.ComponentModel.ISupportInitialize)(this.PB_Chart)).BeginInit(); - this.SuspendLayout(); - // - // PB_Chart - // - this.PB_Chart.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.PB_Chart.Location = new System.Drawing.Point(12, 12); - this.PB_Chart.Name = "PB_Chart"; - this.PB_Chart.Size = new System.Drawing.Size(579, 579); - this.PB_Chart.TabIndex = 0; - this.PB_Chart.TabStop = false; - this.PB_Chart.MouseClick += new System.Windows.Forms.MouseEventHandler(this.clickMouse); - this.PB_Chart.MouseMove += new System.Windows.Forms.MouseEventHandler(this.moveMouse); - // - // B_Cancel - // - this.B_Cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.B_Cancel.Location = new System.Drawing.Point(436, 602); - this.B_Cancel.Name = "B_Cancel"; - this.B_Cancel.Size = new System.Drawing.Size(75, 23); - this.B_Cancel.TabIndex = 467; - this.B_Cancel.Text = "Cancel"; - this.B_Cancel.UseVisualStyleBackColor = true; - this.B_Cancel.Click += new System.EventHandler(this.B_Cancel_Click); - // - // B_Save - // - this.B_Save.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.B_Save.Location = new System.Drawing.Point(517, 602); - this.B_Save.Name = "B_Save"; - this.B_Save.Size = new System.Drawing.Size(75, 23); - this.B_Save.TabIndex = 466; - this.B_Save.Text = "Save"; - this.B_Save.UseVisualStyleBackColor = true; - this.B_Save.Click += new System.EventHandler(this.B_Save_Click); - // - // L_Hover - // - this.L_Hover.AutoSize = true; - this.L_Hover.Location = new System.Drawing.Point(12, 607); - this.L_Hover.Name = "L_Hover"; - this.L_Hover.Size = new System.Drawing.Size(117, 13); - this.L_Hover.TabIndex = 468; - this.L_Hover.Text = "Effectiveness Summary"; - // - // TypeChart7 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(604, 637); - this.Controls.Add(this.L_Hover); - this.Controls.Add(this.B_Cancel); - this.Controls.Add(this.B_Save); - this.Controls.Add(this.PB_Chart); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; - this.MaximizeBox = false; - this.MinimumSize = new System.Drawing.Size(355, 220); - this.Name = "TypeChart7"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Type Chart Editor"; - ((System.ComponentModel.ISupportInitialize)(this.PB_Chart)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.PictureBox PB_Chart; - private System.Windows.Forms.Button B_Cancel; - private System.Windows.Forms.Button B_Save; - private System.Windows.Forms.Label L_Hover; - - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/TypeChart7.cs b/pk3DS/Subforms/Gen7/TypeChart7.cs deleted file mode 100644 index 1e109b3fc9..0000000000 --- a/pk3DS/Subforms/Gen7/TypeChart7.cs +++ /dev/null @@ -1,93 +0,0 @@ -using pk3DS.Core; -using pk3DS.Core.Structures; -using System; -using System.IO; -using System.Windows.Forms; - -namespace pk3DS -{ - public partial class TypeChart7 : Form - { - private readonly int offset = Main.Config.ORAS ? 0x000DB428 : 0x000D12A8; - private readonly string codebin; - private readonly byte[] chart = new byte[TypeCount * TypeCount]; - private readonly byte[] exefs; - private readonly string[] types = Main.Config.getText(TextName.Types); - private const int TypeCount = 18; - private const int TypeWidth = 32; - - public TypeChart7() - { - if (Main.ExeFSPath == null) - { WinFormsUtil.Alert("No exeFS code to load."); Close(); } - - string[] files = Directory.GetFiles(Main.ExeFSPath); - if (!File.Exists(files[0]) || !Path.GetFileNameWithoutExtension(files[0]).Contains("code")) - { WinFormsUtil.Alert("No .code.bin detected."); Close(); } - - InitializeComponent(); - - codebin = files[0]; - exefs = File.ReadAllBytes(codebin); - if (exefs.Length % 0x200 != 0) { WinFormsUtil.Alert(".code.bin not decompressed. Aborting."); Close(); } - offset = Util.IndexOfBytes(exefs, Signature, 0x400000, 0) + Signature.Length; - - Array.Copy(exefs, offset, chart, 0, chart.Length); - populateChart(); - } - private readonly byte[] Signature = - { - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - 0xC3, 0x00, 0x00, 0x00, 0xCB, 0x00, 0x00, 0x00, 0xD3, 0x00, 0x00, 0x00, 0xDB, 0x00, 0x00, 0x00, - 0xF3, 0x00, 0x00, 0x00, 0xFB, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, - }; - - private void populateChart() - { - PB_Chart.Image = TypeChart.getGrid(TypeWidth, TypeCount, chart); - } - private void B_Save_Click(object sender, EventArgs e) - { - chart.CopyTo(exefs, offset); - File.WriteAllBytes(codebin, exefs); - Close(); - } - private void B_Cancel_Click(object sender, EventArgs e) - { - Close(); - } - - private void moveMouse(object sender, MouseEventArgs e) - { - TypeChart6.GetCoordinate((PictureBox)sender, e, out int X, out int Y); - int index = Y*TypeCount + X; - - updateLabel(X, Y, chart[index]); - } - private void clickMouse(object sender, MouseEventArgs e) - { - TypeChart6.GetCoordinate((PictureBox)sender, e, out int X, out int Y); - int index = Y * TypeCount + X; - chart[index] = TypeChart6.ToggleEffectiveness(chart[index], e.Button == MouseButtons.Left); - - updateLabel(X, Y, chart[index]); - populateChart(); - } - - private void updateLabel(int X, int Y, int value) - { - L_Hover.Text = $"[{X:00}x{Y:00}: {value:00}] {types[Y]} attacking {types[X]} {effects[value]}"; - } - private readonly string[] effects = - { - "has no effect!", - "", - "is not very effective.", - "", - "does regular damage.", - "", "", "", - "is super effective!" - }; - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/Gen7/Wild/Area7.cs b/pk3DS/Subforms/Gen7/Wild/Area7.cs deleted file mode 100644 index af590a5a1b..0000000000 --- a/pk3DS/Subforms/Gen7/Wild/Area7.cs +++ /dev/null @@ -1,111 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using System.Text; -using pk3DS.Core; -using pk3DS.Core.CTR; -using pk3DS.Core.Structures; - -namespace pk3DS -{ - public class Area7 - { - public string Name => string.Join(" / ", Zones.Select(z => z.Name)); - public int FileNumber; - public bool HasTables; - public readonly List Tables; - public ZoneData7[] Zones; - - public Area7() - { - Tables = new List(); - } - - public string GetSummary(string[] speciesList) - { - var sb = new StringBuilder(); - sb.AppendLine("=========="); - sb.AppendLine($"Map: {Name}"); - sb.AppendLine($"Tables: {Tables.Count / 2}"); - for (int i = 0; i < Tables.Count / 2; i++) - { - sb.AppendLine($"Table {i+1} (Day):"); - sb.AppendLine(Tables[i*2].GetSummary(speciesList)); - sb.AppendLine($"Table {i+1} (Night):"); - sb.AppendLine(Tables[i*2 + 1].GetSummary(speciesList)); - } - sb.AppendLine("=========="); - return sb.ToString(); - } - - private const string PackIdentifier = "EA"; - public static byte[] GetDayNightTableBinary(IList tables) - { - byte[][] tabs = new byte[tables.Count / 2][]; - for (int i = 0; i < tables.Count; i += 2) - { - var table0 = tables[i + 0].Data; // day - var table1 = tables[i + 1].Data; // night - var arr = new byte[4 + table0.Length + table1.Length]; - table0.CopyTo(arr, 4); - table1.CopyTo(arr, 4 + table0.Length); - tabs[i / 2] = arr; - } - return mini.packMini(tabs, PackIdentifier); - } - - public static Area7[] GetArray(lzGARCFile ed, ZoneData7[] zd) - { - int fileCount = ed.FileCount; - var numAreas = fileCount / 11; - var areas = new Area7[numAreas]; - for (int i = 0; i < numAreas; i++) - { - areas[i] = new Area7 - { - FileNumber = 9 + 11 * i, - Zones = zd.Where(z => z.AreaIndex == i).ToArray() - }; - var md = ed[areas[i].FileNumber]; - if (md.Length <= 0) - { - areas[i].HasTables = false; - continue; - } - - byte[][] Tables = mini.unpackMini(md, PackIdentifier); - areas[i].HasTables = Tables.Any(t => t.Length > 0); - if (!areas[i].HasTables) - continue; - - foreach (var Table in Tables) - { - var DayTable = Table.Skip(4).Take(0x164).ToArray(); - var NightTable = Table.Skip(0x168).ToArray(); - areas[i].Tables.Add(new EncounterTable(DayTable)); - areas[i].Tables.Add(new EncounterTable(NightTable)); - } - } - return areas; - } - - /// - /// Gets an annotated Area array - /// - /// Encounter Data GARC - /// ZoneData GARC - /// WorldData GARC - /// Location strings - /// Annotated Area Array - public static Area7[] GetArray(lzGARCFile ed, lzGARCFile zd, lzGARCFile wd, string[] locationList) - { - var Worlds = wd.Files.Select(f => mini.unpackMini(f, "WD")[0]).ToArray(); - - byte[][] zdfiles = zd.Files; - var worldData = zdfiles[1]; - var zoneData = zdfiles[0]; - var zones = ZoneData7.GetZoneData7Array(zoneData, worldData, locationList, Worlds); - var areas = GetArray(ed, zones); - return areas; - } - } -} diff --git a/pk3DS/Subforms/Gen7/Wild/Encounter7.cs b/pk3DS/Subforms/Gen7/Wild/Encounter7.cs deleted file mode 100644 index aee75b0ed8..0000000000 --- a/pk3DS/Subforms/Gen7/Wild/Encounter7.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System.Text; - -namespace pk3DS -{ - public class Encounter7 - { - public uint Species; - public uint Forme; - public uint RawValue => Species | (Forme << 11); - - public Encounter7(uint val) - { - Species = val & 0x7FF; - Forme = (val >> 11) & 0x1F; - } - - public string GetSummary(string[] speciesList) - { - var sb = new StringBuilder(); - sb.Append(speciesList[Species]); - if (Forme != 0) - sb.Append($" (Forme {Forme})"); - return sb.ToString(); - } - } -} diff --git a/pk3DS/Subforms/Gen7/Wild/EncounterTable.cs b/pk3DS/Subforms/Gen7/Wild/EncounterTable.cs deleted file mode 100644 index 03d8f39d5c..0000000000 --- a/pk3DS/Subforms/Gen7/Wild/EncounterTable.cs +++ /dev/null @@ -1,123 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - -namespace pk3DS -{ - public class EncounterTable - { - public int MinLevel; - public int MaxLevel; - public readonly int[] Rates; - public readonly Encounter7[][] Encounter7s; - public readonly Encounter7[] AdditionalSOS; - - public readonly byte[] Data; - - public EncounterTable(byte[] t) - { - Rates = new int[10]; - Encounter7s = new Encounter7[9][]; - MinLevel = t[0]; - MaxLevel = t[1]; - - for (int i = 0; i < Rates.Length; i++) - Rates[i] = t[2 + i]; - - for (int i = 0; i < Encounter7s.Length - 1; i++) - { - Encounter7s[i] = new Encounter7[10]; - var ofs = 0xC + i * 4 * Encounter7s[i].Length; - for (int j = 0; j < Encounter7s[i].Length; j++) - Encounter7s[i][j] = new Encounter7(BitConverter.ToUInt32(t, ofs + 4 * j)); - } - - AdditionalSOS = new Encounter7[6]; - for (var i = 0; i < AdditionalSOS.Length; i++) - AdditionalSOS[i] = new Encounter7(BitConverter.ToUInt32(t, 0x14C + 4 * i)); - - Encounter7s[8] = AdditionalSOS; - Data = (byte[])t.Clone(); - } - - /// - /// Copies the first set of slots to all others, including weather if specified. - /// - /// Copy first set to weather slots (only first few get copied as Weather has less slots) - public void CopySlotsToSOS(bool PlusWeather = false) - { - int length = Encounter7s.Length - 2; // except weather - if (PlusWeather) - length++; // reinclude weather slots - var toBeCopiedTo = Encounter7s.Skip(1).Take(length); - - var first = Encounter7s[0]; - foreach (var slots in toBeCopiedTo) - { - for (int s = 0; s < slots.Length; s++) - { - slots[s].Species = first[s].Species; - slots[s].Forme = first[s].Forme; - } - } - } - - public void Write() - { - Data[0] = (byte)MinLevel; - Data[1] = (byte)MaxLevel; - for (int i = 0; i < Rates.Length; i++) - Data[2 + i] = (byte)Rates[i]; - - for (int i = 0; i < Encounter7s.Length - 1; i++) - { - var ofs = 0xC + i * 4 * Encounter7s[i].Length; - for (int j = 0; j < Encounter7s[i].Length; j++) - BitConverter.GetBytes(Encounter7s[i][j].RawValue).CopyTo(Data, ofs + 4 * j); - } - - for (int i = 0; i < AdditionalSOS.Length; i++) - BitConverter.GetBytes(AdditionalSOS[i].RawValue).CopyTo(Data, 0x14C + 4 * i); - } - - public string GetSummary(string[] speciesList) - { - var sb = new StringBuilder(); - for (int i = 0; i < Encounter7s.Length - 1; i++) - { - var tn = "Encounters"; - if (i != 0) - tn = "SOS Slot " + i; - sb.Append($"{tn} (Levels {MinLevel}-{MaxLevel}): "); - sb.AppendLine(GetSlotSetSummary(speciesList, i)); - } - - sb.Append("Additional SOS encounters: "); - sb.AppendLine(string.Join(", ", AdditionalSOS - .Select(e => e.RawValue).Distinct().Select(e => new Encounter7(e)) - .Select(e => e.GetSummary(speciesList)))); - - return sb.ToString(); - } - - private string GetSlotSetSummary(string[] speciesList, int setNumber) - { - var specToRate = new Dictionary(); - var distincts = new List(); - for (int j = 0; j < Encounter7s[setNumber].Length; j++) - { - var encounter = Encounter7s[setNumber][j]; - if (!specToRate.ContainsKey(encounter.RawValue)) - { - specToRate[encounter.RawValue] = 0; - distincts.Add(encounter); - } - specToRate[encounter.RawValue] += Rates[j]; - } - var list = distincts.OrderBy(e => specToRate[e.RawValue]).Reverse(); - var summaries = list.Select(e => $"{e.GetSummary(speciesList)} ({specToRate[e.RawValue]}%)"); - return string.Join(", ", summaries); - } - } -} diff --git a/pk3DS/Subforms/Gen7/Wild/Wild7Randomizer.cs b/pk3DS/Subforms/Gen7/Wild/Wild7Randomizer.cs deleted file mode 100644 index 0f4740420f..0000000000 --- a/pk3DS/Subforms/Gen7/Wild/Wild7Randomizer.cs +++ /dev/null @@ -1,89 +0,0 @@ -using System.Collections.Generic; -using System.Linq; - -using pk3DS.Core; -using pk3DS.Core.Randomizers; - -namespace pk3DS -{ - public class Wild7Randomizer - { - public SpeciesRandomizer RandSpec { private get; set; } - public FormRandomizer RandForm { private get; set; } - - public int TableRandomizationOption { private get; set; } - public decimal LevelAmplifier { private get; set; } - public bool ModifyLevel { private get; set; } - - private void RandomizeTable7(EncounterTable Table, int slotStart, int slotStop) - { - int end = slotStop < 0 ? Table.Encounter7s.Length : slotStop; - for (int s = slotStart; s < end; s++) - { - var EncounterSet = Table.Encounter7s[s]; - foreach (var enc in EncounterSet.Where(enc => enc.Species != 0)) - { - enc.Species = (uint)RandSpec.GetRandomSpecies((int)enc.Species); - enc.Forme = (uint)RandForm.GetRandomForme((int)enc.Species); - } - } - } - - public void Execute(IEnumerable Areas, lzGARCFile encdata) - { - GetTableRandSettings((RandOption)TableRandomizationOption, out int slotStart, out int slotStop, out bool copy); - - foreach (var Map in Areas) - { - foreach (var Table in Map.Tables) - { - if (ModifyLevel) - { - Table.MinLevel = Randomizer.getModifiedLevel(Table.MinLevel, LevelAmplifier); - Table.MaxLevel = Randomizer.getModifiedLevel(Table.MaxLevel, LevelAmplifier); - } - - RandomizeTable7(Table, slotStart, slotStop); - if (copy) // copy row 0 to rest - Table.CopySlotsToSOS(); - - Table.Write(); - } - encdata[Map.FileNumber] = Area7.GetDayNightTableBinary(Map.Tables); - } - } - - private static void GetTableRandSettings(RandOption option, out int slotStart, out int slotStop, out bool copy) - { - copy = false; - switch (option) - { - default: // All - slotStart = 0; - slotStop = -1; - break; - case RandOption.Regular_Only: - slotStart = 0; - slotStop = 1; - break; - case RandOption.SOS_Only: - slotStart = 1; - slotStop = -1; - break; - case RandOption.Regular_CopySOS: - slotStart = 0; - slotStop = 1; - copy = true; - break; - } - } - - private enum RandOption - { - All = 0, - Regular_Only = 1, - SOS_Only = 2, - Regular_CopySOS = 3, - } - } -} diff --git a/pk3DS/Subforms/ShinyRate.Designer.cs b/pk3DS/Subforms/ShinyRate.Designer.cs deleted file mode 100644 index 60462c6717..0000000000 --- a/pk3DS/Subforms/ShinyRate.Designer.cs +++ /dev/null @@ -1,245 +0,0 @@ -namespace pk3DS -{ - partial class ShinyRate - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ShinyRate)); - this.L_Note = new System.Windows.Forms.Label(); - this.NUD_Rerolls = new System.Windows.Forms.NumericUpDown(); - this.L_Overall = new System.Windows.Forms.Label(); - this.B_Cancel = new System.Windows.Forms.Button(); - this.B_Save = new System.Windows.Forms.Button(); - this.L_Rerolls = new System.Windows.Forms.Label(); - this.B_RestoreOriginal = new System.Windows.Forms.Button(); - this.NUD_Rate = new System.Windows.Forms.NumericUpDown(); - this.L_RerollCount = new System.Windows.Forms.Label(); - this.L_RerollOverall = new System.Windows.Forms.Label(); - this.GB_RerollHelper = new System.Windows.Forms.GroupBox(); - this.GB_Rerolls = new System.Windows.Forms.GroupBox(); - this.label1 = new System.Windows.Forms.Label(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Rerolls)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Rate)).BeginInit(); - this.GB_RerollHelper.SuspendLayout(); - this.GB_Rerolls.SuspendLayout(); - this.SuspendLayout(); - // - // L_Note - // - this.L_Note.AutoSize = true; - this.L_Note.Location = new System.Drawing.Point(12, 9); - this.L_Note.Name = "L_Note"; - this.L_Note.Size = new System.Drawing.Size(340, 91); - this.L_Note.TabIndex = 0; - this.L_Note.Text = resources.GetString("L_Note.Text"); - // - // NUD_Rerolls - // - this.NUD_Rerolls.Location = new System.Drawing.Point(54, 21); - this.NUD_Rerolls.Maximum = new decimal(new int[] { - 65535, - 0, - 0, - 0}); - this.NUD_Rerolls.Name = "NUD_Rerolls"; - this.NUD_Rerolls.Size = new System.Drawing.Size(65, 20); - this.NUD_Rerolls.TabIndex = 1; - this.NUD_Rerolls.Value = new decimal(new int[] { - 125, - 0, - 0, - 0}); - this.NUD_Rerolls.ValueChanged += new System.EventHandler(this.changeRerolls); - // - // L_Overall - // - this.L_Overall.AutoSize = true; - this.L_Overall.ForeColor = System.Drawing.SystemColors.ControlText; - this.L_Overall.Location = new System.Drawing.Point(122, 23); - this.L_Overall.Name = "L_Overall"; - this.L_Overall.Size = new System.Drawing.Size(28, 13); - this.L_Overall.TabIndex = 2; - this.L_Overall.Text = "PCT"; - // - // B_Cancel - // - this.B_Cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.B_Cancel.Location = new System.Drawing.Point(216, 236); - this.B_Cancel.Name = "B_Cancel"; - this.B_Cancel.Size = new System.Drawing.Size(75, 23); - this.B_Cancel.TabIndex = 4; - this.B_Cancel.Text = "Cancel"; - this.B_Cancel.UseVisualStyleBackColor = true; - this.B_Cancel.Click += new System.EventHandler(this.B_Cancel_Click); - // - // B_Save - // - this.B_Save.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.B_Save.Location = new System.Drawing.Point(297, 236); - this.B_Save.Name = "B_Save"; - this.B_Save.Size = new System.Drawing.Size(75, 23); - this.B_Save.TabIndex = 3; - this.B_Save.Text = "Save"; - this.B_Save.UseVisualStyleBackColor = true; - this.B_Save.Click += new System.EventHandler(this.B_Save_Click); - // - // L_Rerolls - // - this.L_Rerolls.AutoSize = true; - this.L_Rerolls.ForeColor = System.Drawing.SystemColors.ControlText; - this.L_Rerolls.Location = new System.Drawing.Point(6, 23); - this.L_Rerolls.Name = "L_Rerolls"; - this.L_Rerolls.Size = new System.Drawing.Size(42, 13); - this.L_Rerolls.TabIndex = 5; - this.L_Rerolls.Text = "Rerolls:"; - // - // B_RestoreOriginal - // - this.B_RestoreOriginal.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.B_RestoreOriginal.Location = new System.Drawing.Point(15, 236); - this.B_RestoreOriginal.Name = "B_RestoreOriginal"; - this.B_RestoreOriginal.Size = new System.Drawing.Size(168, 23); - this.B_RestoreOriginal.TabIndex = 6; - this.B_RestoreOriginal.Text = "Restore Original Rate"; - this.B_RestoreOriginal.UseVisualStyleBackColor = true; - this.B_RestoreOriginal.Click += new System.EventHandler(this.B_RestoreOriginal_Click); - // - // NUD_Rate - // - this.NUD_Rate.DecimalPlaces = 2; - this.NUD_Rate.Increment = new decimal(new int[] { - 1, - 0, - 0, - 65536}); - this.NUD_Rate.Location = new System.Drawing.Point(81, 13); - this.NUD_Rate.Name = "NUD_Rate"; - this.NUD_Rate.Size = new System.Drawing.Size(65, 20); - this.NUD_Rate.TabIndex = 7; - this.NUD_Rate.ValueChanged += new System.EventHandler(this.changePercent); - // - // L_RerollCount - // - this.L_RerollCount.AutoSize = true; - this.L_RerollCount.Location = new System.Drawing.Point(46, 36); - this.L_RerollCount.Name = "L_RerollCount"; - this.L_RerollCount.Size = new System.Drawing.Size(47, 13); - this.L_RerollCount.TabIndex = 8; - this.L_RerollCount.Text = "Count: 0"; - // - // L_RerollOverall - // - this.L_RerollOverall.AutoSize = true; - this.L_RerollOverall.Location = new System.Drawing.Point(24, 15); - this.L_RerollOverall.Name = "L_RerollOverall"; - this.L_RerollOverall.Size = new System.Drawing.Size(51, 13); - this.L_RerollOverall.TabIndex = 9; - this.L_RerollOverall.Text = "Overall%:"; - // - // GB_RerollHelper - // - this.GB_RerollHelper.Controls.Add(this.NUD_Rate); - this.GB_RerollHelper.Controls.Add(this.L_RerollOverall); - this.GB_RerollHelper.Controls.Add(this.L_RerollCount); - this.GB_RerollHelper.Location = new System.Drawing.Point(210, 125); - this.GB_RerollHelper.Name = "GB_RerollHelper"; - this.GB_RerollHelper.Size = new System.Drawing.Size(156, 53); - this.GB_RerollHelper.TabIndex = 11; - this.GB_RerollHelper.TabStop = false; - this.GB_RerollHelper.Text = "Reroll Helper"; - // - // GB_Rerolls - // - this.GB_Rerolls.Controls.Add(this.NUD_Rerolls); - this.GB_Rerolls.Controls.Add(this.L_Rerolls); - this.GB_Rerolls.Controls.Add(this.L_Overall); - this.GB_Rerolls.ForeColor = System.Drawing.Color.Red; - this.GB_Rerolls.Location = new System.Drawing.Point(6, 125); - this.GB_Rerolls.Name = "GB_Rerolls"; - this.GB_Rerolls.Size = new System.Drawing.Size(171, 53); - this.GB_Rerolls.TabIndex = 12; - this.GB_Rerolls.TabStop = false; - this.GB_Rerolls.Text = "PID Generation Loop Rerolls"; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(12, 181); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(263, 52); - this.label1.TabIndex = 13; - this.label1.Text = "Note:\r\nThe above reroll count will overwrite the existing code.\r\n\r\nTo revert chan" + - "ges, use the button below."; - // - // ShinyRate - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(384, 271); - this.Controls.Add(this.label1); - this.Controls.Add(this.GB_Rerolls); - this.Controls.Add(this.GB_RerollHelper); - this.Controls.Add(this.B_RestoreOriginal); - this.Controls.Add(this.B_Cancel); - this.Controls.Add(this.B_Save); - this.Controls.Add(this.L_Note); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; - this.MaximizeBox = false; - this.MaximumSize = new System.Drawing.Size(400, 310); - this.MinimizeBox = false; - this.MinimumSize = new System.Drawing.Size(400, 150); - this.Name = "ShinyRate"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Shiny Rate Editor"; - ((System.ComponentModel.ISupportInitialize)(this.NUD_Rerolls)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Rate)).EndInit(); - this.GB_RerollHelper.ResumeLayout(false); - this.GB_RerollHelper.PerformLayout(); - this.GB_Rerolls.ResumeLayout(false); - this.GB_Rerolls.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Label L_Note; - private System.Windows.Forms.NumericUpDown NUD_Rerolls; - private System.Windows.Forms.Label L_Overall; - private System.Windows.Forms.Button B_Cancel; - private System.Windows.Forms.Button B_Save; - private System.Windows.Forms.Label L_Rerolls; - private System.Windows.Forms.Button B_RestoreOriginal; - private System.Windows.Forms.NumericUpDown NUD_Rate; - private System.Windows.Forms.Label L_RerollCount; - private System.Windows.Forms.Label L_RerollOverall; - private System.Windows.Forms.GroupBox GB_RerollHelper; - private System.Windows.Forms.GroupBox GB_Rerolls; - private System.Windows.Forms.Label label1; - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/ShinyRate.cs b/pk3DS/Subforms/ShinyRate.cs deleted file mode 100644 index 25a7715dac..0000000000 --- a/pk3DS/Subforms/ShinyRate.cs +++ /dev/null @@ -1,139 +0,0 @@ -using pk3DS.Core; -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Windows.Forms; - -namespace pk3DS -{ - public partial class ShinyRate : Form - { - public ShinyRate() - { - InitializeComponent(); - if (Main.ExeFSPath == null) { WinFormsUtil.Alert("No exeFS code to load."); Close(); } - string[] files = Directory.GetFiles(Main.ExeFSPath); - if (!File.Exists(files[0]) || !Path.GetFileNameWithoutExtension(files[0]).Contains("code")) { WinFormsUtil.Alert("No .code.bin detected."); Close(); } - codebin = files[0]; - exefsData = File.ReadAllBytes(codebin); - if (exefsData.Length % 0x200 != 0) { WinFormsUtil.Alert(".code.bin not decompressed. Aborting."); Close(); } - - // Load instruction set - byte[] raw = Core.Properties.Resources.asm_mov; - for (int i = 0; i < raw.Length; i += 4) - { - byte[] data = new byte[2]; - Array.Copy(raw, i + 2, data, 0, 2); - InstructionList.Add(new Instruction(BitConverter.ToUInt16(raw, i), data)); - } - - // Fetch Offset - byte[] pattern = {0x01, 0x50, 0x85, 0xE2, 0x05, 0x00, 0x50, 0xE1, 0xDE, 0xFF, 0xFF, 0xCA}; - offset = Util.IndexOfBytes(exefsData, pattern, 0, 0) - 4; - if (offset < 0) - { - WinFormsUtil.Alert("Unable to find PID Generation routine.", "Closing."); - Close(); - } - if (exefsData[offset] != 0x23) // already patched - { - uint val = BitConverter.ToUInt16(exefsData, offset); - var instruction = InstructionList.FirstOrDefault(z => z.ArgVal == val); - if (instruction == null) - { - WinFormsUtil.Alert(".code.bin was modified externally.", "Existing value not loaded."); - } - else - { - WinFormsUtil.Alert(".code.bin was already patched for shiny rate.", "Loaded existing value."); - NUD_Rerolls.Value = instruction.Value; - } - modified = true; - } - changeRerolls(null, null); - } - - private readonly List InstructionList = new List(); - private readonly bool modified; - private readonly string codebin; - private readonly int offset; - private readonly byte[] exefsData; - - private class Instruction - { - public readonly int Value; - private readonly byte[] Argument; - public readonly ushort ArgVal; - - public Instruction(int val, byte[] arg) - { - Value = val; - Argument = arg; - ArgVal = BitConverter.ToUInt16(Argument, 0); - } - public byte[] Bytes - { - get - { - var bytes = new byte[] {0, 0, 0xA0, 0xE3}; - Argument.CopyTo(bytes, 0); - return bytes; - } - } - } - - private void B_Cancel_Click(object sender, EventArgs e) => Close(); - private void B_Save_Click(object sender, EventArgs e) - { - writeCodePatch(); - File.WriteAllBytes(codebin, exefsData); - Close(); - } - private void changeRerolls(object sender, EventArgs e) - { - int count = (int)NUD_Rerolls.Value; - const int bc = 4096; - var pct = 1 - Math.Pow((float)(bc - 1)/bc, count); - L_Overall.Text = $"~{pct:P}"; - } - private void writeCodePatch() - { - // Overwrite the "load input argument value for reroll count" so that it loads a constant value. - // 23 00 D4 E5 is then replaced with the instruction MOV R0, $value - // $value is the amount of PID rerolls to iterate for. - - int rerolls = (int)NUD_Rerolls.Value; - if (rerolls > ushort.MaxValue) - rerolls = ushort.MaxValue; - // lazy precomputed table for MOV0 up to 9000, lol - var instruction = InstructionList.FirstOrDefault(z => z.Value >= rerolls) ?? InstructionList.Last(); - byte[] data = instruction.Bytes; - data.CopyTo(exefsData, offset); - - if (instruction.Value != rerolls) - WinFormsUtil.Alert("Specified reroll count increased to the next highest supported value.", - $"{rerolls} -> {instruction.Value}"); - } - - private void B_RestoreOriginal_Click(object sender, EventArgs e) - { - if (modified) - { - new byte[] {0x23, 0x00, 0xD4, 0xE5}.CopyTo(exefsData, offset); - File.WriteAllBytes(codebin, exefsData); - } - Close(); - } - private void changePercent(object sender, EventArgs e) - { - var pct = NUD_Rate.Value; - const int bc = 4096; - - var inv = (int)Math.Log(1 - (float)pct/100, (float) (bc - 1)/bc); - if (pct == 0) - pct = 0.00001m; // arbitrary nonzero - L_RerollCount.Text = $"Count: {inv.ToString("0")} = 1:{(int)(1/(pct/100))}"; - } - } -} \ No newline at end of file diff --git a/pk3DS/Subforms/TextEditor.Designer.cs b/pk3DS/Subforms/TextEditor.Designer.cs deleted file mode 100644 index fafd52c75e..0000000000 --- a/pk3DS/Subforms/TextEditor.Designer.cs +++ /dev/null @@ -1,166 +0,0 @@ -namespace pk3DS -{ - partial class TextEditor - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.CB_Entry = new System.Windows.Forms.ComboBox(); - this.dgv = new System.Windows.Forms.DataGridView(); - this.B_AddLine = new System.Windows.Forms.Button(); - this.B_RemoveLine = new System.Windows.Forms.Button(); - this.B_Export = new System.Windows.Forms.Button(); - this.label1 = new System.Windows.Forms.Label(); - this.B_Import = new System.Windows.Forms.Button(); - this.B_Randomize = new System.Windows.Forms.Button(); - ((System.ComponentModel.ISupportInitialize)(this.dgv)).BeginInit(); - this.SuspendLayout(); - // - // CB_Entry - // - this.CB_Entry.FormattingEnabled = true; - this.CB_Entry.Location = new System.Drawing.Point(68, 7); - this.CB_Entry.Name = "CB_Entry"; - this.CB_Entry.Size = new System.Drawing.Size(80, 21); - this.CB_Entry.TabIndex = 5; - this.CB_Entry.SelectedIndexChanged += new System.EventHandler(this.changeEntry); - // - // dgv - // - this.dgv.AllowUserToAddRows = false; - this.dgv.AllowUserToDeleteRows = false; - this.dgv.AllowUserToResizeRows = false; - this.dgv.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.dgv.BackgroundColor = System.Drawing.SystemColors.Control; - this.dgv.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - this.dgv.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgv.Location = new System.Drawing.Point(12, 33); - this.dgv.Name = "dgv"; - this.dgv.RowHeadersVisible = false; - this.dgv.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.CellSelect; - this.dgv.ShowEditingIcon = false; - this.dgv.Size = new System.Drawing.Size(610, 317); - this.dgv.TabIndex = 0; - // - // B_AddLine - // - this.B_AddLine.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.B_AddLine.Location = new System.Drawing.Point(437, 6); - this.B_AddLine.Name = "B_AddLine"; - this.B_AddLine.Size = new System.Drawing.Size(90, 23); - this.B_AddLine.TabIndex = 6; - this.B_AddLine.Text = "Add Line After"; - this.B_AddLine.UseVisualStyleBackColor = true; - this.B_AddLine.Click += new System.EventHandler(this.B_AddLine_Click); - // - // B_RemoveLine - // - this.B_RemoveLine.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.B_RemoveLine.Location = new System.Drawing.Point(533, 6); - this.B_RemoveLine.Name = "B_RemoveLine"; - this.B_RemoveLine.Size = new System.Drawing.Size(90, 23); - this.B_RemoveLine.TabIndex = 7; - this.B_RemoveLine.Text = "Remove Line"; - this.B_RemoveLine.UseVisualStyleBackColor = true; - this.B_RemoveLine.Click += new System.EventHandler(this.B_RemoveLine_Click); - // - // B_Export - // - this.B_Export.Location = new System.Drawing.Point(154, 6); - this.B_Export.Name = "B_Export"; - this.B_Export.Size = new System.Drawing.Size(90, 23); - this.B_Export.TabIndex = 8; - this.B_Export.Text = "Export All (.txt)"; - this.B_Export.UseVisualStyleBackColor = true; - this.B_Export.Click += new System.EventHandler(this.B_Export_Click); - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(12, 10); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(50, 13); - this.label1.TabIndex = 9; - this.label1.Text = "Text File:"; - // - // B_Import - // - this.B_Import.Location = new System.Drawing.Point(250, 6); - this.B_Import.Name = "B_Import"; - this.B_Import.Size = new System.Drawing.Size(90, 23); - this.B_Import.TabIndex = 10; - this.B_Import.Text = "Import All (.txt)"; - this.B_Import.UseVisualStyleBackColor = true; - this.B_Import.Click += new System.EventHandler(this.B_Import_Click); - // - // B_Randomize - // - this.B_Randomize.Location = new System.Drawing.Point(346, 6); - this.B_Randomize.Name = "B_Randomize"; - this.B_Randomize.Size = new System.Drawing.Size(70, 23); - this.B_Randomize.TabIndex = 11; - this.B_Randomize.Text = "Randomize"; - this.B_Randomize.UseVisualStyleBackColor = true; - this.B_Randomize.Click += new System.EventHandler(this.B_Randomize_Click); - // - // xytext - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(634, 362); - this.Controls.Add(this.B_Randomize); - this.Controls.Add(this.B_Import); - this.Controls.Add(this.label1); - this.Controls.Add(this.B_Export); - this.Controls.Add(this.B_RemoveLine); - this.Controls.Add(this.B_AddLine); - this.Controls.Add(this.dgv); - this.Controls.Add(this.CB_Entry); - this.MinimumSize = new System.Drawing.Size(400, 300); - this.Name = "TextEditor"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Text Editor"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.TextEditor_FormClosing); - ((System.ComponentModel.ISupportInitialize)(this.dgv)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.ComboBox CB_Entry; - private System.Windows.Forms.DataGridView dgv; - private System.Windows.Forms.Button B_AddLine; - private System.Windows.Forms.Button B_RemoveLine; - private System.Windows.Forms.Button B_Export; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Button B_Import; - private System.Windows.Forms.Button B_Randomize; - } -} diff --git a/pk3DS/Subforms/TextEditor.cs b/pk3DS/Subforms/TextEditor.cs deleted file mode 100644 index 41f16115b9..0000000000 --- a/pk3DS/Subforms/TextEditor.cs +++ /dev/null @@ -1,307 +0,0 @@ -using pk3DS.Core; -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using System.Windows.Forms; - -namespace pk3DS -{ - public partial class TextEditor : Form - { - public TextEditor(string[][] infiles, string mode) - { - InitializeComponent(); - files = infiles; - Mode = mode; - for (int i = 0; i < files.Length; i++) - CB_Entry.Items.Add(i.ToString()); - CB_Entry.SelectedIndex = 0; - dgv.EditMode = DataGridViewEditMode.EditOnEnter; - } - private readonly string[][] files; - private readonly string Mode; - private int entry = -1; - - // IO - private void B_Export_Click(object sender, EventArgs e) - { - if (files.Length <= 0) return; - SaveFileDialog Dump = new SaveFileDialog {Filter = "Text File|*.txt"}; - DialogResult sdr = Dump.ShowDialog(); - if (sdr != DialogResult.OK) return; - bool newline = WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Remove newline formatting codes? (\\n,\\r,\\c)", "Removing newline formatting will make it more readable but will prevent any importing of that dump.") == DialogResult.Yes; - string path = Dump.FileName; - exportTextFile(path, newline, files); - } - private void B_Import_Click(object sender, EventArgs e) - { - if (files.Length <= 0) return; - OpenFileDialog Dump = new OpenFileDialog { Filter = "Text File|*.txt" }; - DialogResult odr = Dump.ShowDialog(); - if (odr != DialogResult.OK) return; - string path = Dump.FileName; - - if (!importTextFile(path)) return; - - // Reload the form with the new data. - changeEntry(null, null); - WinFormsUtil.Alert("Imported Text from Input Path:", path); - } - public static void exportTextFile(string fileName, bool newline, string[][] fileData) - { - using (MemoryStream ms = new MemoryStream()) - { - ms.Write(new byte[] {0xFF, 0xFE}, 0, 2); // Write Unicode BOM - using (TextWriter tw = new StreamWriter(ms, new UnicodeEncoding())) - { - for (int i = 0; i < fileData.Length; i++) - { - // Get Strings for the File - string[] data = fileData[i]; - // Append the File Header - tw.WriteLine("~~~~~~~~~~~~~~~"); - tw.WriteLine("Text File : " + i); - tw.WriteLine("~~~~~~~~~~~~~~~"); - // Write the String to the File - if (data == null) continue; - foreach (string line in data) - { - tw.WriteLine(newline - ? line.Replace("\\n\\n", " ") - .Replace("\\n", " ") - .Replace("\\c", "") - .Replace("\\r", "") - .Replace("\\\\", "\\") - .Replace("\\[", "[") - : line); - } - } - } - File.WriteAllBytes(fileName, ms.ToArray()); - } - } - private bool importTextFile(string fileName) - { - string[] fileText = File.ReadAllLines(fileName, Encoding.Unicode); - string[][] textLines = new string[files.Length][]; - int ctr = 0; - bool newlineFormatting = false; - // Loop through all files - for (int i = 0; i < fileText.Length; i++) - { - string line = fileText[i]; - if (line != "~~~~~~~~~~~~~~~") - continue; - string[] brokenLine = fileText[i++ + 1].Split(new[] { " : " }, StringSplitOptions.None); - if (brokenLine.Length != 2) - { WinFormsUtil.Error($"Invalid Line @ {i}, expected Text File : {ctr}"); return false; } - int file = Util.ToInt32(brokenLine[1]); - if (file != ctr) - { WinFormsUtil.Error($"Invalid Line @ {i}, expected Text File : {ctr}"); return false; } - i += 2; // Skip over the other header line - List Lines = new List(); - while (i < fileText.Length && fileText[i] != "~~~~~~~~~~~~~~~") - { - Lines.Add(fileText[i]); - newlineFormatting |= fileText[i].Contains("\\n"); // Check if any line wasn't stripped of ingame formatting codes for human readability. - i++; - } - i--; - textLines[ctr++] = Lines.ToArray(); - } - - // Error Check - if (ctr != files.Length) - { - WinFormsUtil.Error("The amount of Text Files in the input file does not match the required for the text file.", - $"Received: {ctr}, Expected: {files.Length}"); return false; } - if (!newlineFormatting) - { - WinFormsUtil.Error("The input Text Files do not have the ingame newline formatting codes (\\n,\\r,\\c).", - "When exporting text, do not remove newline formatting."); return false; } - - // All Text Lines received. Store all back. - for (int i = 0; i < files.Length; i++) - try { files[i] = textLines[i]; } - catch (Exception e) { WinFormsUtil.Error($"The input Text File (# {i}) failed to convert:", e.ToString()); return false; } - return true; - } - private void changeEntry(object sender, EventArgs e) - { - // Save All the old text - if (entry > -1 && sender != null) - { - try - { - files[entry] = getCurrentDGLines(); - } - catch (Exception ex) { WinFormsUtil.Error(ex.ToString()); } - } - - // Reset - entry = CB_Entry.SelectedIndex; - setStringsDataGridView(files[entry]); - } - - // Main Handling - private void setStringsDataGridView(string[] textArray) - { - // Clear the datagrid row content to remove all text lines. - dgv.Rows.Clear(); - // Clear the header columns, these are repopulated every time. - dgv.Columns.Clear(); - if (textArray == null || textArray.Length == 0) - return; - // Reset settings and columns. - dgv.AllowUserToResizeColumns = false; - DataGridViewColumn dgvLine = new DataGridViewTextBoxColumn - { - HeaderText = "Line", - DisplayIndex = 0, - Width = 32, - ReadOnly = true, - SortMode = DataGridViewColumnSortMode.NotSortable - }; - dgvLine.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; - - DataGridViewTextBoxColumn dgvText = new DataGridViewTextBoxColumn - { - HeaderText = "Text", - DisplayIndex = 1, - SortMode = DataGridViewColumnSortMode.NotSortable, - AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill - }; - - dgv.Columns.Add(dgvLine); - dgv.Columns.Add(dgvText); - dgv.Rows.Add(textArray.Length); - - // Add the text lines into their cells. - for (int i = 0; i < textArray.Length; i++) - { - dgv.Rows[i].Cells[0].Value = i; - dgv.Rows[i].Cells[1].Value = textArray[i]; - } - } - - private string[] getCurrentDGLines() - { - // Get Line Count - string[] lines = new string[dgv.RowCount]; - for (int i = 0; i < dgv.RowCount; i++) - lines[i] = (string)dgv.Rows[i].Cells[1].Value; - return lines; - } - // Meta Usage - private void B_AddLine_Click(object sender, EventArgs e) - { - int currentRow = 0; - try { currentRow = dgv.CurrentRow.Index; } - catch { dgv.Rows.Add(); } - if (dgv.Rows.Count == 1) { } - else if (currentRow < dgv.Rows.Count - 1 || currentRow == 0) - { - if (ModifierKeys != Keys.Control && currentRow != 0) - { - if (WinFormsUtil.Prompt(MessageBoxButtons.YesNo, - "Inserting in between rows will shift all subsequent lines.", "Continue?") != DialogResult.Yes) - return; - } - // Insert new Row after current row. - dgv.Rows.Insert(currentRow + 1); - } - - for (int i = 0; i < dgv.Rows.Count; i++) - dgv.Rows[i].Cells[0].Value = i.ToString(); - } - private void B_RemoveLine_Click(object sender, EventArgs e) - { - int currentRow = dgv.CurrentRow.Index; - if (currentRow < dgv.Rows.Count - 1) - { - if (ModifierKeys != Keys.Control && DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, - "Deleting a row above other lines will shift all subsequent lines.", "Continue?")) - return; - } - dgv.Rows.RemoveAt(currentRow); - - // Resequence the Index Value column - for (int i = 0; i < dgv.Rows.Count; i++) - dgv.Rows[i].Cells[0].Value = i.ToString(); - } - private void TextEditor_FormClosing(object sender, FormClosingEventArgs e) - { - // Save any pending edits - dgv.EndEdit(); - // Save All the old text - if (entry > -1) files[entry] = getCurrentDGLines(); - } - - private void B_Randomize_Click(object sender, EventArgs e) - { - // gametext can be horribly broken if randomized - if (Mode == "gametext" && DialogResult.Yes != - WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Randomizing Game Text is dangerous!", "Continue?")) - return; - - // get if the user wants to randomize current text file or all files - var dr = WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, - $"Yes: Randomize ALL{Environment.NewLine}No: Randomize current textfile{Environment.NewLine}Cancel: Abort"); - - if (dr == DialogResult.Cancel) - return; - - // get if pure shuffle or smart shuffle (no shuffle if variable present) - var drs = WinFormsUtil.Prompt(MessageBoxButtons.YesNo, - $"Smart shuffle:{Environment.NewLine}Yes: Shuffle if no Variable present{Environment.NewLine}No: Pure random!"); - - if (drs == DialogResult.Cancel) - return; - - bool all = dr == DialogResult.Yes; - bool smart = drs == DialogResult.Yes; - - // save current - if (entry > -1) - files[entry] = getCurrentDGLines(); - - // single-entire looping - int start = all ? 0 : entry; - int end = all ? files.Length - 1 : entry; - - // Gather strings - List strings = new List(); - for (int i = start; i <= end; i++) - { - string[] data = files[i]; - strings.AddRange(smart - ? data.Where(line => !line.Contains("[")) - : data); - } - - // Shuffle up - string[] pool = strings.ToArray(); - Util.Shuffle(pool); - - // Apply Text - int ctr = 0; - for (int i = start; i <= end; i++) - { - string[] data = files[i]; - - for (int j = 0; j < data.Length; j++) // apply lines - if (!smart || !data[j].Contains("[")) - data[j] = pool[ctr++]; - - files[i] = data; - } - - // Load current text file - setStringsDataGridView(files[entry]); - - WinFormsUtil.Alert("Strings randomized!"); - } - } -} \ No newline at end of file diff --git a/pk3DS/Tools/Icon.Designer.cs b/pk3DS/Tools/Icon.Designer.cs deleted file mode 100644 index 0e93d5dcab..0000000000 --- a/pk3DS/Tools/Icon.Designer.cs +++ /dev/null @@ -1,269 +0,0 @@ -namespace pk3DS -{ - partial class Icon - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.PB_Large = new System.Windows.Forms.PictureBox(); - this.CB_AppInfo = new System.Windows.Forms.ComboBox(); - this.L_AppInfo = new System.Windows.Forms.Label(); - this.PB_Small = new System.Windows.Forms.PictureBox(); - this.TB_Short = new System.Windows.Forms.TextBox(); - this.TB_Long = new System.Windows.Forms.TextBox(); - this.TB_Publisher = new System.Windows.Forms.TextBox(); - this.B_ExportSMDH = new System.Windows.Forms.Button(); - this.B_ExportSmallIcon = new System.Windows.Forms.Button(); - this.B_ExportLargeIcon = new System.Windows.Forms.Button(); - this.B_ImportLargeIcon = new System.Windows.Forms.Button(); - this.B_ImportSmallIcon = new System.Windows.Forms.Button(); - this.B_ImportSMDH = new System.Windows.Forms.Button(); - this.B_Save = new System.Windows.Forms.Button(); - this.B_Cancel = new System.Windows.Forms.Button(); - this.groupBox1 = new System.Windows.Forms.GroupBox(); - ((System.ComponentModel.ISupportInitialize)(this.PB_Large)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_Small)).BeginInit(); - this.groupBox1.SuspendLayout(); - this.SuspendLayout(); - // - // PB_Large - // - this.PB_Large.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; - this.PB_Large.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.PB_Large.Location = new System.Drawing.Point(168, 9); - this.PB_Large.Name = "PB_Large"; - this.PB_Large.Size = new System.Drawing.Size(50, 50); - this.PB_Large.TabIndex = 1; - this.PB_Large.TabStop = false; - // - // CB_AppInfo - // - this.CB_AppInfo.FormattingEnabled = true; - this.CB_AppInfo.Location = new System.Drawing.Point(15, 38); - this.CB_AppInfo.Name = "CB_AppInfo"; - this.CB_AppInfo.Size = new System.Drawing.Size(150, 21); - this.CB_AppInfo.TabIndex = 8; - this.CB_AppInfo.SelectedIndexChanged += new System.EventHandler(this.CB_AppInfo_SelectedIndexChanged); - // - // L_AppInfo - // - this.L_AppInfo.AutoSize = true; - this.L_AppInfo.Location = new System.Drawing.Point(12, 22); - this.L_AppInfo.Name = "L_AppInfo"; - this.L_AppInfo.Size = new System.Drawing.Size(51, 13); - this.L_AppInfo.TabIndex = 7; - this.L_AppInfo.Text = "AppInfo#"; - // - // PB_Small - // - this.PB_Small.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; - this.PB_Small.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.PB_Small.Location = new System.Drawing.Point(136, 9); - this.PB_Small.Name = "PB_Small"; - this.PB_Small.Size = new System.Drawing.Size(26, 26); - this.PB_Small.TabIndex = 9; - this.PB_Small.TabStop = false; - // - // TB_Short - // - this.TB_Short.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.TB_Short.Location = new System.Drawing.Point(15, 65); - this.TB_Short.MaxLength = 64; - this.TB_Short.Name = "TB_Short"; - this.TB_Short.Size = new System.Drawing.Size(289, 20); - this.TB_Short.TabIndex = 10; - // - // TB_Long - // - this.TB_Long.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.TB_Long.Location = new System.Drawing.Point(15, 91); - this.TB_Long.MaxLength = 128; - this.TB_Long.Name = "TB_Long"; - this.TB_Long.Size = new System.Drawing.Size(289, 20); - this.TB_Long.TabIndex = 11; - // - // TB_Publisher - // - this.TB_Publisher.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.TB_Publisher.Location = new System.Drawing.Point(15, 117); - this.TB_Publisher.MaxLength = 64; - this.TB_Publisher.Name = "TB_Publisher"; - this.TB_Publisher.Size = new System.Drawing.Size(289, 20); - this.TB_Publisher.TabIndex = 12; - // - // B_ExportSMDH - // - this.B_ExportSMDH.Location = new System.Drawing.Point(6, 48); - this.B_ExportSMDH.Name = "B_ExportSMDH"; - this.B_ExportSMDH.Size = new System.Drawing.Size(88, 23); - this.B_ExportSMDH.TabIndex = 15; - this.B_ExportSMDH.Text = "Export SMDH"; - this.B_ExportSMDH.UseVisualStyleBackColor = true; - this.B_ExportSMDH.Click += new System.EventHandler(this.B_ExportSMDH_Click); - // - // B_ExportSmallIcon - // - this.B_ExportSmallIcon.Location = new System.Drawing.Point(100, 48); - this.B_ExportSmallIcon.Name = "B_ExportSmallIcon"; - this.B_ExportSmallIcon.Size = new System.Drawing.Size(88, 23); - this.B_ExportSmallIcon.TabIndex = 16; - this.B_ExportSmallIcon.Text = "Export Small"; - this.B_ExportSmallIcon.UseVisualStyleBackColor = true; - this.B_ExportSmallIcon.Click += new System.EventHandler(this.B_ExportSmallIcon_Click); - // - // B_ExportLargeIcon - // - this.B_ExportLargeIcon.Location = new System.Drawing.Point(194, 48); - this.B_ExportLargeIcon.Name = "B_ExportLargeIcon"; - this.B_ExportLargeIcon.Size = new System.Drawing.Size(88, 23); - this.B_ExportLargeIcon.TabIndex = 17; - this.B_ExportLargeIcon.Text = "Export Large"; - this.B_ExportLargeIcon.UseVisualStyleBackColor = true; - this.B_ExportLargeIcon.Click += new System.EventHandler(this.B_ExportLargeIcon_Click); - // - // B_ImportLargeIcon - // - this.B_ImportLargeIcon.Enabled = false; - this.B_ImportLargeIcon.Location = new System.Drawing.Point(194, 19); - this.B_ImportLargeIcon.Name = "B_ImportLargeIcon"; - this.B_ImportLargeIcon.Size = new System.Drawing.Size(88, 23); - this.B_ImportLargeIcon.TabIndex = 20; - this.B_ImportLargeIcon.Text = "Import Large"; - this.B_ImportLargeIcon.UseVisualStyleBackColor = true; - this.B_ImportLargeIcon.Click += new System.EventHandler(this.B_ImportLargeIcon_Click); - // - // B_ImportSmallIcon - // - this.B_ImportSmallIcon.Enabled = false; - this.B_ImportSmallIcon.Location = new System.Drawing.Point(100, 19); - this.B_ImportSmallIcon.Name = "B_ImportSmallIcon"; - this.B_ImportSmallIcon.Size = new System.Drawing.Size(88, 23); - this.B_ImportSmallIcon.TabIndex = 19; - this.B_ImportSmallIcon.Text = "Import Small"; - this.B_ImportSmallIcon.UseVisualStyleBackColor = true; - this.B_ImportSmallIcon.Click += new System.EventHandler(this.B_ImportSmallIcon_Click); - // - // B_ImportSMDH - // - this.B_ImportSMDH.Location = new System.Drawing.Point(6, 19); - this.B_ImportSMDH.Name = "B_ImportSMDH"; - this.B_ImportSMDH.Size = new System.Drawing.Size(88, 23); - this.B_ImportSMDH.TabIndex = 18; - this.B_ImportSMDH.Text = "Import SMDH"; - this.B_ImportSMDH.UseVisualStyleBackColor = true; - this.B_ImportSMDH.Click += new System.EventHandler(this.B_ImportSMDH_Click); - // - // B_Save - // - this.B_Save.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.B_Save.Location = new System.Drawing.Point(238, 237); - this.B_Save.Name = "B_Save"; - this.B_Save.Size = new System.Drawing.Size(66, 23); - this.B_Save.TabIndex = 21; - this.B_Save.Text = "Save"; - this.B_Save.UseVisualStyleBackColor = true; - this.B_Save.Click += new System.EventHandler(this.B_Save_Click); - // - // B_Cancel - // - this.B_Cancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.B_Cancel.Location = new System.Drawing.Point(166, 237); - this.B_Cancel.Name = "B_Cancel"; - this.B_Cancel.Size = new System.Drawing.Size(66, 23); - this.B_Cancel.TabIndex = 22; - this.B_Cancel.Text = "Cancel"; - this.B_Cancel.UseVisualStyleBackColor = true; - this.B_Cancel.Click += new System.EventHandler(this.B_Cancel_Click); - // - // groupBox1 - // - this.groupBox1.Controls.Add(this.B_ImportLargeIcon); - this.groupBox1.Controls.Add(this.B_ImportSmallIcon); - this.groupBox1.Controls.Add(this.B_ImportSMDH); - this.groupBox1.Controls.Add(this.B_ExportLargeIcon); - this.groupBox1.Controls.Add(this.B_ExportSMDH); - this.groupBox1.Controls.Add(this.B_ExportSmallIcon); - this.groupBox1.Location = new System.Drawing.Point(15, 143); - this.groupBox1.Name = "groupBox1"; - this.groupBox1.Size = new System.Drawing.Size(289, 84); - this.groupBox1.TabIndex = 23; - this.groupBox1.TabStop = false; - // - // Icon - // - this.AllowDrop = true; - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(317, 272); - this.Controls.Add(this.groupBox1); - this.Controls.Add(this.B_Cancel); - this.Controls.Add(this.B_Save); - this.Controls.Add(this.TB_Publisher); - this.Controls.Add(this.TB_Long); - this.Controls.Add(this.TB_Short); - this.Controls.Add(this.PB_Small); - this.Controls.Add(this.CB_AppInfo); - this.Controls.Add(this.L_AppInfo); - this.Controls.Add(this.PB_Large); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.MinimumSize = new System.Drawing.Size(320, 244); - this.Name = "Icon"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "SMDH Editor"; - ((System.ComponentModel.ISupportInitialize)(this.PB_Large)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.PB_Small)).EndInit(); - this.groupBox1.ResumeLayout(false); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.PictureBox PB_Large; - private System.Windows.Forms.ComboBox CB_AppInfo; - private System.Windows.Forms.Label L_AppInfo; - private System.Windows.Forms.PictureBox PB_Small; - private System.Windows.Forms.TextBox TB_Short; - private System.Windows.Forms.TextBox TB_Long; - private System.Windows.Forms.TextBox TB_Publisher; - private System.Windows.Forms.Button B_ExportSMDH; - private System.Windows.Forms.Button B_ExportSmallIcon; - private System.Windows.Forms.Button B_ExportLargeIcon; - private System.Windows.Forms.Button B_ImportLargeIcon; - private System.Windows.Forms.Button B_ImportSmallIcon; - private System.Windows.Forms.Button B_ImportSMDH; - private System.Windows.Forms.Button B_Save; - private System.Windows.Forms.Button B_Cancel; - private System.Windows.Forms.GroupBox groupBox1; - - } -} \ No newline at end of file diff --git a/pk3DS/Tools/Icon.cs b/pk3DS/Tools/Icon.cs deleted file mode 100644 index 957f490c0b..0000000000 --- a/pk3DS/Tools/Icon.cs +++ /dev/null @@ -1,212 +0,0 @@ -using pk3DS.Core.CTR; -using System; -using System.Drawing; -using System.Drawing.Imaging; -using System.IO; -using System.Windows.Forms; - -namespace pk3DS -{ - public partial class Icon : Form - { - private SMDH SMDH; - public Icon() - { - InitializeComponent(); - SMDH = Main.SMDH; - if (SMDH?.AppSettings == null || SMDH.LargeIcon.Bytes == null) - { - byte[] data = new byte[0x3C0]; // Feed a blank SMDH - Array.Copy(BitConverter.GetBytes(0x48444D53), data, 4); // SMDH header - SMDH = new SMDH(data); - B_Save.Enabled = false; - } - for (int i = 0; i < 16; i++) - CB_AppInfo.Items.Add(i); - - LoadSMDH(); - - AllowDrop = true; - DragEnter += tabMain_DragEnter; - DragDrop += tabMain_DragDrop; - } - private void tabMain_DragEnter(object sender, DragEventArgs e) - { - if (e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = DragDropEffects.Copy; - } - private void tabMain_DragDrop(object sender, DragEventArgs e) - { - string[] files = (string[])e.Data.GetData(DataFormats.FileDrop); - string path = files[0]; // open first D&D - - openFile(path, true); - } - private void LoadSMDH() - { - PB_Large.Image = SMDH.LargeIcon.Icon; - PB_Small.Image = SMDH.SmallIcon.Icon; - CB_AppInfo.SelectedIndex = 0; - CB_AppInfo_SelectedIndexChanged(null, null); - } - private void SaveSMDH() - { - Main.SMDH = SMDH; - File.WriteAllBytes(Path.Combine(Main.ExeFSPath, "icon.bin"), Main.SMDH.Write()); - } - - private void openFile(string path, bool drop = false) - { - FileInfo fi = new FileInfo(path); - if (fi.Length > 1024 * 1024 * 5) - return; - - byte[] data = File.ReadAllBytes(path); - if (data.Length == 0x36C0) // SMDH - importSMDH(data, true); - else importIcon(data, drop); - } - private void B_Save_Click(object sender, EventArgs e) - { - CB_AppInfo_SelectedIndexChanged(null, null); // Force re-save - if (DialogResult.Yes == WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Save changes?")) - { - SaveSMDH(); - Close(); - } - } - private void B_Cancel_Click(object sender, EventArgs e) - { - Close(); - } - - private void B_ExportSMDH_Click(object sender, EventArgs e) - { - exportSMDH(); - } - private void B_ExportSmallIcon_Click(object sender, EventArgs e) - { - exportIcon(false); - } - private void B_ExportLargeIcon_Click(object sender, EventArgs e) - { - exportIcon(true); - } - private void exportSMDH() - { - var sfd = new SaveFileDialog - { - FileName = "icon.bin", - Filter = "System Menu Data Header|*.*" - }; - if (sfd.ShowDialog() != DialogResult.Yes) return; - CB_AppInfo_SelectedIndexChanged(null, null); // Force re-save - File.WriteAllBytes(sfd.FileName, SMDH.Write()); - } - private void exportIcon(bool large) - { - var sfd = new SaveFileDialog - { - FileName = large ? "Large Icon.png" : "Small Icon.png", - Filter = "Icon Image " + (large ? "48x48" : "24x24") + "|*.png" - }; - if (sfd.ShowDialog() != DialogResult.OK) - return; - - using (MemoryStream ms = new MemoryStream()) - { - //error will throw from here - (large ? SMDH.LargeIcon.Icon : SMDH.SmallIcon.Icon).Save(ms, ImageFormat.Png); - byte[] data = ms.ToArray(); - File.WriteAllBytes(sfd.FileName, data); - } - } - - private void B_ImportSMDH_Click(object sender, EventArgs e) - { - var ofd = new OpenFileDialog - { - FileName = "icon.bin", - Filter = "System Menu Data Header|*.*" - }; - if (ofd.ShowDialog() != DialogResult.OK) return; - - openFile(ofd.FileName); - } - private void B_ImportSmallIcon_Click(object sender, EventArgs e) - { - var ofd = new OpenFileDialog - { - FileName = "small.png", - Filter = "Small Icon Image|*.png" - }; - if (ofd.ShowDialog() != DialogResult.OK) return; - - openFile(ofd.FileName); - } - private void B_ImportLargeIcon_Click(object sender, EventArgs e) - { - var ofd = new OpenFileDialog - { - FileName = "large.png", - Filter = "Large Icon Image|*.png" - }; - if (ofd.ShowDialog() != DialogResult.OK) return; - - openFile(ofd.FileName); - } - private void importSMDH(byte[] data, bool prompt = false) - { - if (prompt && DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Replace SMDH?")) - return; - - SMDH newSMDH = new SMDH(data); - if (newSMDH.LargeIcon.Icon == null) return; - - SMDH = newSMDH; - entry = -1; // allow proper refreshing - LoadSMDH(); - } - private void importIcon(byte[] data, bool prompt = false) - { - try - { - using (Stream BitmapStream = new MemoryStream(data)) // Open the file, even if it is in use. - { - Image img = Image.FromStream(BitmapStream); - Bitmap mBitmap = new Bitmap(img); - - bool small = img.Width == 24 && img.Height == 24; - bool large = img.Width == 48 && img.Height == 48; - - if (!small && !large) - WinFormsUtil.Alert("Image size is not correct.", - $"Width: {img.Width}\nHeight: {img.Height}", - "Expected Dimensions (24x24 or 48x48)"); - if (prompt && DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Import image?", small ? "Small Icon" : "Large Icon")) - return; - if (small) - SMDH.SmallIcon.ChangeIcon(mBitmap); - if (large) - SMDH.LargeIcon.ChangeIcon(mBitmap); - } - } - catch - { WinFormsUtil.Error("Invalid image format?"); } - } - - private int entry = -1; - private void CB_AppInfo_SelectedIndexChanged(object sender, EventArgs e) - { - if (entry > -1) - { - SMDH.AppInfo[entry].ShortDescription = TB_Short.Text; - SMDH.AppInfo[entry].LongDescription = TB_Long.Text; - SMDH.AppInfo[entry].Publisher = TB_Publisher.Text; - } - entry = CB_AppInfo.SelectedIndex; - TB_Short.Text = SMDH.AppInfo[entry].ShortDescription; - TB_Long.Text = SMDH.AppInfo[entry].LongDescription; - TB_Publisher.Text = SMDH.AppInfo[entry].Publisher; - } - } -} \ No newline at end of file diff --git a/pk3DS/Tools/Scripts.cs b/pk3DS/Tools/Scripts.cs deleted file mode 100644 index 0e75b2e93f..0000000000 --- a/pk3DS/Tools/Scripts.cs +++ /dev/null @@ -1,866 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; - -namespace pk3DS -{ - // Big thanks to FireFly for figuring out the 7/6-bit compression routine for scripts. - public static class Scripts - { - // Decompression - Deprecated: Use FireFly's method. - internal static byte[] decompressScript(byte[] data) - { - data = data ?? new byte[0]; // Bad Input - - using (MemoryStream mn = new MemoryStream()) - using (BinaryWriter bw = new BinaryWriter(mn)) - { - // Read away! - int pos = 0; - while (pos < data.Length) - { - // Read until the top bit is not set - byte[] cb = readCompressed(data, pos); - pos += cb.Length; - // Interpret the bytecode - byte[] db = decompressBytes(cb); - // Write Bytes - bw.Write(db); - } - return mn.ToArray(); - } - } - internal static byte[] readCompressed(byte[] data, int pos) - { - byte[] c1 = data.Skip(pos).TakeWhile(b => b >> 7 > 0).ToArray(); // Take while >= 0x80 - return c1.Concat(data.Skip(pos + c1.Length).Take(1)).ToArray(); // Take another - } - internal static byte[] decompressBytes(byte[] cb) - { - byte[] db = new byte[0]; - - if ((cb[0] & 0x40) > 0) // Signed Parameter - { - // Check the next bytecode - if (cb.Length > 1 && cb[1] >> 7 > 0) // Many-bits-required command - { - // 2 Byte Signed Parameter - int cmd = (cb[0] & 0x3 << 14) | (cb[1] & 0x7F << 7) | cb[2]; // 16 Bits total - db = db.Concat(BitConverter.GetBytes(cmd).Take(2)).ToArray(); // 16 Bits - - int dev = ((cb[0] & 0x3F) - 0x40) >> 2; // Lowest 2 bits have already been used for the command - db = db.Concat(BitConverter.GetBytes(dev).Take(2)).ToArray(); // 16 Bits - } - else if (cb[0] >> 7 > 0) // Signed Command - { - // 3 Byte Signed Parameter - int cmd = (cb[0] << 7) | cb[1]; - db = db.Concat(BitConverter.GetBytes(cmd).Take(1)).ToArray(); // 8 Bits Total - - int dev = ((cb[0] & 0x3F) - 0x40) >> 1; // Lowest bit has already been used for the command - db = db.Concat(BitConverter.GetBytes(dev).Take(3)).ToArray(); // 24 Bits - } - else // Signed Value - { - // 4 Byte Signed Parameter - int dev = ((cb[0] & 0x3F) - 0x40) >> 0; // No bits have already been used; no command - db = db.Concat(BitConverter.GetBytes(dev).Take(4)).ToArray(); // 32 Bits - } - } - else if (cb[0] >> 7 > 0) // Manybit - { - Array.Reverse(cb); - int cmd = 0; - for (int i = 0; i < cb.Length; i++) - cmd |= (cb[i] & 0x7F) << (7 * i); - - db = db.Concat(BitConverter.GetBytes((uint)cmd).Take(4)).ToArray(); - } - else // Literal - { - db = db.Concat(BitConverter.GetBytes((uint)cb[0]).Take(4)).ToArray(); - } - return db; - } - // FireFly's (github.com/FireyFly) concise decompression (ported c->c#): - // https://github.com/FireyFly/poketools/blob/e74538a5b5e5dab1e78c1cd313c55d158f37534d/src/formats/script.c#L61 - internal static uint[] quickDecompress(byte[] data, int count) - { - uint[] code = new uint[count]; - uint i = 0, j = 0, x = 0, f = 0; - while (i < code.Length) { - int b = data[f++], - v = b & 0x7F; - if (++j == 1) // sign extension possible - x = (uint)((((v >> 6 == 0 ? 1 : 0) - 1) << 6) | v); // only for bit6 being set - else x = (x << 7) | (byte)v; // shift data into place - - if ((b & 0x80) != 0) continue; // more data to read - code[i++] = x; j = 0; // write finalized instruction - } - return code; - } - - // Compression - internal static byte[] compressScript(byte[] data) - { - if (data == null || data.Length % 4 != 0) // Bad Input - return null; - using (MemoryStream mn = new MemoryStream()) - using (BinaryWriter bw = new BinaryWriter(mn)) - { - int pos = 0; - while (pos < data.Length) - { - byte[] db = data.Skip(pos+=4).Take(4).ToArray(); - byte[] cb = compressBytes(db); - bw.Write(cb); - } - return mn.ToArray(); - } - } - internal static byte[] compressBytes(byte[] db) - { - short cmd = BitConverter.ToInt16(db, 0); - short val = BitConverter.ToInt16(db, 2); - - byte[] cb = new byte[0]; - bool sign4 = val < 0 && cmd < 0 && db[0] >= 0xC0; // 4 byte signed - bool sign3 = val < 0 && cmd < 0 && db[0] < 0xC0; // 3 byte signed - bool sign2 = val < 0 && cmd > 0; // 2 byte signed - bool liter = cmd >= 0 && cmd < 0x40; // Literal - bool manyb = cmd >= 0x40; // manybit - - if (sign4) - { - int dev = 0x40 + BitConverter.ToInt32(db, 0); - if (dev < 0) // BADLOGIC - return cb; - cb = new[] {(byte)((dev & 0x3F) | 0x40)}; - } - else if (sign3) - { - byte dev = (byte)(((db[1] << 1) + 0x40) | 0xC0 | db[0] >> 7); - byte low = db[0]; - cb = new[] {dev, low}; - } - else if (sign2) - { - if (manyb) - { - byte dev = (byte)(((db[2] << 2) + 0x40) | 0xC0 | db[1] >> 7); - byte low1 = (byte)(0x80 | (db[0] >> 7) | (db[1] & 0x80)); - byte low0 = (byte)(db[0] & 0x80); - cb = new[] {low0, low1, dev}; - } - else // Dunno if this ever naturally happens; the command reader may ignore db[1] if db[0] < 0x80... needs verification. - { - byte dev = (byte)(((db[1] << 2) + 0x40) | 0xC0 | db[0] >> 6); - byte low0 = (byte)(db[0] & 0x3F); - cb = new[] {low0, dev}; - } - } - else if (manyb) - { - ulong bitStorage = 0; - - uint dv = BitConverter.ToUInt32(db, 0); - int ctr = 0; - while (dv != 0) // bits remaining - { - byte bits = (byte)((byte)dv & 0x7F); dv >>= 7; // Take off 7 bits at a time - bitStorage |= (byte)(bits << (ctr*8)); // Write the 7 bits into storage - bitStorage |= (byte)(1 << (7 + ctr++*8)); // continue reading flag - } - byte[] compressedBits = BitConverter.GetBytes(bitStorage); - - Array.Reverse(compressedBits); - // Trim off leading zero-bytes - cb = compressedBits.SkipWhile(v => v == 0).ToArray(); - } - else if (liter) - { - cb = new[] { (byte)cmd }; - } - return cb; - } - - // General Utility - internal static string[] getHexLines(byte[] data, int count = 4) - { - data = data ?? new byte[0]; - // Generates an x-byte wide space separated string array; leftovers included at the end. - string[] s = new string[data.Length/count + (data.Length % count > 0 ? 1 : 0)]; - for (int i = 0; i < s.Length;i++) - s[i] = BitConverter.ToString(data.Skip(i*count).Take(count).ToArray()).Replace('-', ' '); - return s; - } - internal static string[] getHexLines(uint[] data) - { - data = data ?? new uint[0]; - // Generates an 4-byte wide space separated string array. - string[] s = new string[data.Length]; - for (int i = 0; i < s.Length; i++) - s[i] = BitConverter.ToString(BitConverter.GetBytes(data[i])).Replace('-', ' '); - return s; - } - internal static byte[] getBytes(uint[] data) - { - return data.Aggregate(new byte[0], (current, t) => current.Concat(BitConverter.GetBytes(t)).ToArray()); - } - - // Interpreting - internal static string[] parseScript(uint[] cmd, int sanity = -1) - { - // sub_148CBC Moon v1.0 - List parse = new List(); - int sanityMode = 0; - - int i = 0; // Current Offset of decompressed instructions - while (i < cmd.Length) // read away - { - // Read a Command - int line = i; - uint c = cmd[i++]; - - string op; - switch (c & 0x7FFF) - { - default: - throw new ArgumentException("Invalid Command ID"); - case 0x01: - case 0x02: - case 0x05: - case 0x06: - case 0x0F: - case 0x10: - case 0x13: - case 0x14: - case 0x6D: - case 0x72: - { - // Peek at next value - var next = (int)cmd[i++]; - // Check Value against negative and zero... ? - - op = eA(c, next); - break; - } - case 0x03: - case 0x04: - case 0x07: - case 0x08: - case 0x11: - case 0x12: - case 0x15: - case 0x16: - case 0x6E: - case 0x73: - { - // Peek at next value - var next = (int)cmd[i++]; - // Check Value against negative... ? - - op = eA(c, next); - break; - } - case 0x09: - case 0x17: - case 0x19: - case 0x1B: - case 0x21: - case 0x22: - case 0x23: - case 0x24: - case 0x25: - case 0x2A: - case 0x2B: - case 0x2E: // Begin - case 0x2F: - case 0x30: // Return - case 0x41: - case 0x42: - case 0x43: - case 0x48: - case 0x49: - case 0x4A: - case 0x4B: - case 0x4C: - case 0x4D: - case 0x4E: // Add? - case 0x4F: - case 0x50: - case 0x51: // Cmp? - case 0x52: - case 0x53: - case 0x54: - case 0x55: - case 0x56: - case 0x59: // ClearAll - case 0x5A: - case 0x5D: - case 0x5E: - case 0x5F: - case 0x60: - case 0x61: - case 0x62: - case 0x63: - case 0x64: - case 0x65: - case 0x66: - case 0x67: - case 0x68: - case 0x6B: - case 0x6C: - case 0x6F: - case 0x70: - case 0x71: - case 0x74: - case 0x7A: - case 0x83: - case 0x84: - case 0x86: - case 0x89: // LineNo? - case 0xAA: - case 0xAB: // PushConst2 - case 0xAC: // CmpConst2 - case 0xAD: - case 0xAE: - case 0xB7: - case 0xB8: - case 0xB9: - case 0xBA: - case 0xBB: - case 0xBC: // PushConst - case 0xBD: - case 0xBE: - case 0xBF: // AdjustStack - case 0xC0: - case 0xC1: - case 0xC2: - case 0xC3: - case 0xC4: - case 0xC5: - case 0xC6: - case 0xC7: - case 0xC8: // CmpLocal - case 0xC9: // CmpConst - case 0xCA: - case 0xCF: - case 0xD0: - case 0xD1: - case 0xD2: - case 0xD3: - case 0xD4: - { - // no sanity checks - var arg = (short)(c >> 16); - - op = eA(c & 0xFF, arg); - - if ((c & 0xFF) == 0x30) // return - op += Environment.NewLine; - break; - } - case 0x0A: - case 0x0B: - case 0x0C: - case 0x0D: - case 0x0E: - case 0x18: - case 0x1A: - case 0x1C: - case 0x1D: - case 0x1E: - case 0x1F: - case 0x20: - case 0x26: - case 0x27: // PushConst - case 0x28: - case 0x29: - case 0x2C: - case 0x2D: - case 0x34: - case 0x44: - case 0x45: - case 0x46: - case 0x47: - case 0x57: - case 0x58: - case 0x5B: - case 0x5C: - case 0x69: - case 0x6A: - case 0x75: - case 0x76: - case 0x77: - case 0x78: - case 0x79: - case 0x85: - { - var next = (int)cmd[i++]; - // No sanity check needed - - op = eA(c, next); - break; - } - - case 0x31: // CallFunc - case 0x33: - case 0x35: // Jump!= - case 0x36: // Jump== - case 0x37: - case 0x38: - case 0x39: - case 0x3A: - case 0x3B: - case 0x3C: - case 0x3D: - case 0x3E: - case 0x3F: - case 0x40: - case 0x81: // Jump - { - var delta = (int)cmd[i++]; - // sanity check range... - // negative.. weird - - int newOfs = line*4 + delta; - op = $"{Commands[c]} => 0x{newOfs:X4} ({delta})"; - break; - } - case 0x7B: - { - var next = (int)cmd[i++]; - sanityMode |= 1; // flag mode 1 - - op = eA(c, next); - break; - } - case 0x82: // JumpIfElse - { - var jOffset = i*4 -4; // todo: this may be the correct jump start point... - var count = cmd[i++]; // switch case table - // sanity check - - // Populate If-Case Tree - var tree = new List(); - - // Cases - for (int j = 0; j < count; j++) - { - var jmp = (int)cmd[i++]; - var toOffset = (i-2)*4 + jmp; - var ifValue = (int)cmd[i++]; - tree.Add($"\t{ifValue} => 0x{toOffset:X4} ({jmp})"); - } - // Default - { - int jmp = (int)cmd[i++]; - var toOffset = (i-2)*4 + jmp; - tree.Add($"\t{"*"} => 0x{toOffset:X4} ({jmp})"); - } - - op = Commands[c] + Environment.NewLine + string.Join(Environment.NewLine, tree); - break; - } - case 0x87: - { - var next1 = (int)cmd[i++]; - var next2 = (int)cmd[i++]; - sanityMode |= 2; // flag mode 2 - - op = eA(c, next1, next2); - break; - } - - case 0x8A: - case 0x8B: - case 0x8C: - case 0x8D: - case 0x9C: - case 0x9D: - { - var next1 = (int)cmd[i++]; - var next2 = (int)cmd[i++]; - - op = eA(c, next1, next2); - break; - } - - case 0x8E: - case 0x8F: - case 0x90: - case 0x91: - { - var next1 = cmd[i++]; - var next2 = cmd[i++]; - var next3 = cmd[i++]; - - op = eF(c, next1, next2, next3); - break; - } - - case 0x92: - case 0x93: - case 0x94: - case 0x95: - { - var next1 = (int)cmd[i++]; - var next2 = (int)cmd[i++]; - var next3 = (int)cmd[i++]; - var next4 = (int)cmd[i++]; - - op = eA(c, next1, next2, next3, next4); - break; - } - - case 0x96: // float - case 0x97: - case 0x98: - case 0x99: - { - var next1 = cmd[i++]; - var next2 = cmd[i++]; - var next3 = cmd[i++]; - var next4 = cmd[i++]; - var next5 = cmd[i++]; - - op = eF(c, next1, next2, next3, next4, next5); - break; - } - - case 0x9A: - { - var next1 = (int)cmd[i++]; - var next2 = (int)cmd[i++]; - // a bunch of sanity checking - - op = eA(c, next1, next2); - break; - } - - case 0x9B: // Copy - { - var next1 = (int)cmd[i++]; - var next2 = (int)cmd[i++]; - // a bunch of sanity checking - - op = eA(c, next1, next2); - break; - } - - case 0x9E: - { - var next1 = (int)cmd[i++]; - // perm check a1 + 0x14 - // can return error code 0x1C - - op = eA(c, next1); - break; - } - - case 0x9F: - { - // perm check a1 + 0x14 - // same permission checking as 0x9E - // can return error code 0x1C - - op = eA(c); - break; - } - - case 0xA1: // Goto - { - // minimal sanity checks - // can return error code 0x1C - int newPos = i + (int)(1 + 2*(cmd[i]/4) + 1); - - op = eA(c, newPos); - break; - } - - case 0xA2: // GetGlobal2 - case 0xA3: // GetGlobal - case 0xA6: - case 0xA7: - case 0xAF: // SetGlobal - case 0xB0: - case 0xB3: - case 0xB4: - case 0xCB: - case 0xCD: - { - // sanity check arg - var arg = (short)(c >> 16); - - op = eA(c & 0xFF, arg); - break; - } - case 0xA4: // GetGlobal4 - case 0xA5: - case 0xA8: - case 0xA9: - case 0xB1: // SetLocal - case 0xB2: - case 0xB5: - case 0xB6: - case 0xCC: - case 0xCE: - { - // sanity check arg, slightly different - var arg = (short)(c >> 16); - - op = eA(c & 0xFF, arg); - break; - } - } - parse.Add($"0x{line*4:X4}: [{c & 0x7FF:X2}] {op}"); - } - - if (sanity >= 0 && sanity != sanityMode) - throw new ArgumentException(); - - return parse.ToArray(); - } - - internal static string[] parseMovement(uint[] cmd) - { - return getHexLines(cmd); - } - - internal static string eA(uint c, params int[] arr) - { - string cmd = Commands[c]; - string parameters = arr.Length == 0 ? "" : string.Join(", ", arr.Select(z => $"{(Math.Abs(z) < 100 ? z.ToString() : "0x"+z.ToString("X4"))}")); - return $"{cmd}({parameters})"; - } - private static readonly Func getFloat = val => BitConverter.ToSingle(BitConverter.GetBytes(val), 0); - internal static string eF(uint c, params uint[] arr) - { - string cmd = Commands[c]; - string parameters = arr.Length == 1 ? "" : string.Join(", ", arr.Select(z => getFloat(z))); - return $"{cmd}({parameters})"; - } - - internal static readonly Dictionary Commands = new Dictionary - {// { 0x00, "$00" }, // Invalid Code - { 0x01, "$01" }, - { 0x02, "$02" }, - { 0x03, "$03" }, - { 0x04, "$04" }, - { 0x05, "$05" }, - { 0x06, "$06" }, - { 0x07, "$07" }, - { 0x08, "$08" }, - { 0x09, "$09" }, - { 0x0A, "$0A" }, - { 0x0B, "$0B" }, - { 0x0C, "$0C" }, - { 0x0D, "$0D" }, - { 0x0E, "$0E" }, - { 0x0F, "$0F" }, - { 0x10, "$10" }, - { 0x11, "$11" }, - { 0x12, "$12" }, - { 0x13, "$13" }, - { 0x14, "$14" }, - { 0x15, "$15" }, - { 0x16, "$16" }, - { 0x17, "$17" }, - { 0x18, "$18" }, - { 0x19, "$19" }, - { 0x1A, "$1A" }, - { 0x1B, "$1B" }, - { 0x1C, "$1C" }, - { 0x1D, "$1D" }, - { 0x1E, "$1E" }, - { 0x1F, "$1F" }, - { 0x20, "$20" }, - { 0x21, "$21" }, - { 0x22, "$22" }, - { 0x23, "$23" }, - { 0x24, "$24" }, - { 0x25, "$25" }, - { 0x26, "$26" }, - { 0x27, "PushConst" }, - { 0x28, "$28" }, - { 0x29, "$29" }, - { 0x2A, "$2A" }, - { 0x2B, "$2B" }, - { 0x2C, "$2C" }, - { 0x2D, "$2D" }, - { 0x2E, "Begin" }, - { 0x2F, "$2F" }, - { 0x30, "Return" }, - { 0x31, "CallFunc" }, - { 0x32, "$32" }, - { 0x33, "$33" }, - { 0x34, "$34" }, - { 0x35, "BNE" }, - { 0x36, "BEQ" }, - { 0x37, "$37" }, - { 0x38, "$38" }, - { 0x39, "$39" }, - { 0x3A, "$3A" }, - { 0x3B, "$3B" }, - { 0x3C, "$3C" }, - { 0x3D, "$3D" }, - { 0x3E, "$3E" }, - { 0x3F, "$3F" }, - { 0x40, "$40" }, - { 0x41, "$41" }, - { 0x42, "$42" }, - { 0x43, "$43" }, - { 0x44, "$44" }, - { 0x45, "$45" }, - { 0x46, "$46" }, - { 0x47, "$47" }, - { 0x48, "$48" }, - { 0x49, "$49" }, - { 0x4A, "$4A" }, - { 0x4B, "$4B" }, - { 0x4C, "$4C" }, - { 0x4D, "$4D" }, - { 0x4E, "Add?" }, - { 0x4F, "$4F" }, - { 0x50, "$50" }, - { 0x51, "Cmp?" }, - { 0x52, "$52" }, - { 0x53, "$53" }, - { 0x54, "$54" }, - { 0x55, "$55" }, - { 0x56, "$56" }, - { 0x57, "$57" }, - { 0x58, "$58" }, - { 0x59, "ClearAll" }, - { 0x5A, "$5A" }, - { 0x5B, "$5B" }, - { 0x5C, "$5C" }, - { 0x5D, "$5D" }, - { 0x5E, "$5E" }, - { 0x5F, "$5F" }, - { 0x60, "$60" }, - { 0x61, "$61" }, - { 0x62, "$62" }, - { 0x63, "$63" }, - { 0x64, "$64" }, - { 0x65, "$65" }, - { 0x66, "$66" }, - { 0x67, "$67" }, - { 0x68, "$68" }, - { 0x69, "$69" }, - { 0x6A, "$6A" }, - { 0x6B, "$6B" }, - { 0x6C, "$6C" }, - { 0x6D, "$6D" }, - { 0x6E, "$6E" }, - { 0x6F, "$6F" }, - { 0x70, "$70" }, - { 0x71, "$71" }, - { 0x72, "$72" }, - { 0x73, "$73" }, - { 0x74, "$74" }, - { 0x75, "$75" }, - { 0x76, "$76" }, - { 0x77, "$77" }, - { 0x78, "$78" }, - { 0x79, "$79" }, - { 0x7A, "$7A" }, - { 0x7B, "$7B" }, - // { 0x7C, "$7C" }, // Invalid Code - // { 0x7D, "$7D" }, // Invalid Code - // { 0x7E, "$7E" }, // Invalid Code - // { 0x7F, "$7F" }, // Invalid Code - // { 0x80, "$80" }, // Invalid Code - { 0x81, "JMP" }, - { 0x82, "switch" }, - { 0x83, "$83" }, - { 0x84, "$84" }, - { 0x85, "$85" }, - { 0x86, "$86" }, - { 0x87, "DoCommand?" }, - // { 0x88, "$88" }, // Invalid Code - { 0x89, "LineNo?" }, - { 0x8A, "$8A" }, - { 0x8B, "$8B" }, - { 0x8C, "$8C" }, - { 0x8D, "$8D" }, - { 0x8E, "$8E" }, - { 0x8F, "$8F" }, - { 0x90, "$90" }, - { 0x91, "$91" }, - { 0x92, "$92" }, - { 0x93, "$93" }, - { 0x94, "$94" }, - { 0x95, "$95" }, - { 0x96, "$96" }, - { 0x97, "$97" }, - { 0x98, "$98" }, - { 0x99, "$99" }, - { 0x9A, "$9A" }, - { 0x9B, "Copy" }, - { 0x9C, "$9C" }, - { 0x9D, "$9D" }, - { 0x9E, "$9E" }, - { 0x9F, "$9F" }, - { 0xA0, "$A0" }, - { 0xA1, "$A1" }, - { 0xA2, "GetGlobal2" }, - { 0xA3, "GetGlobal" }, - { 0xA4, "GetGlobal4" }, - { 0xA5, "$A5" }, - { 0xA6, "$A6" }, - { 0xA7, "$A7" }, - { 0xA8, "$A8" }, - { 0xA9, "$A9" }, - { 0xAA, "$AA" }, - { 0xAB, "PushConst2" }, - { 0xAC, "CmpConst2" }, - { 0xAD, "$AD" }, - { 0xAE, "$AE" }, - { 0xAF, "SetGlobal" }, - { 0xB0, "$B0" }, - { 0xB1, "SetLocal" }, - { 0xB2, "$B2" }, - { 0xB3, "$B3" }, - { 0xB4, "$B4" }, - { 0xB5, "$B5" }, - { 0xB6, "$B6" }, - { 0xB7, "$B7" }, - { 0xB8, "$B8" }, - { 0xB9, "$B9" }, - { 0xBA, "$BA" }, - { 0xBB, "$BB" }, - { 0xBC, "PushConst" }, - { 0xBD, "GetGlobal3" }, - { 0xBE, "GetArg" }, - { 0xBF, "AdjustStack" }, - { 0xC0, "$C0" }, - { 0xC1, "$C1" }, - { 0xC2, "$C2" }, - { 0xC3, "$C3" }, - { 0xC4, "$C4" }, - { 0xC5, "$C5" }, - { 0xC6, "$C6" }, - { 0xC7, "$C7" }, - { 0xC8, "CmpLocal" }, - { 0xC9, "CmpConst" }, - { 0xCA, "$CA" }, - { 0xCB, "$CB" }, - { 0xCC, "$CC" }, - { 0xCD, "$CD" }, - { 0xCE, "$CE" }, - { 0xCF, "$CF" }, - { 0xD0, "$D0" }, - - { 0xD1, "$D1" }, - { 0xD2, "$D2" }, - { 0xD3, "$D3" }, - { 0xD4, "$D4" }, - { 0xD5, "Mode1" }, - { 0xD6, "Mode2" }, - }; - } -} diff --git a/pk3DS/Tools/Shuffler.Designer.cs b/pk3DS/Tools/Shuffler.Designer.cs deleted file mode 100644 index fc92f15a90..0000000000 --- a/pk3DS/Tools/Shuffler.Designer.cs +++ /dev/null @@ -1,156 +0,0 @@ -namespace pk3DS -{ - partial class Shuffler - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.CB_a = new System.Windows.Forms.ComboBox(); - this.CB_b = new System.Windows.Forms.ComboBox(); - this.CB_c = new System.Windows.Forms.ComboBox(); - this.L_a = new System.Windows.Forms.Label(); - this.L_File = new System.Windows.Forms.Label(); - this.B_Shuffle = new System.Windows.Forms.Button(); - this.SuspendLayout(); - // - // CB_a - // - this.CB_a.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_a.FormattingEnabled = true; - this.CB_a.Items.AddRange(new object[] { - "0", - "1", - "2", - "3"}); - this.CB_a.Location = new System.Drawing.Point(36, 11); - this.CB_a.Name = "CB_a"; - this.CB_a.Size = new System.Drawing.Size(34, 21); - this.CB_a.TabIndex = 0; - this.CB_a.SelectedIndexChanged += new System.EventHandler(this.updateLabel); - // - // CB_b - // - this.CB_b.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_b.FormattingEnabled = true; - this.CB_b.Items.AddRange(new object[] { - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9"}); - this.CB_b.Location = new System.Drawing.Point(76, 11); - this.CB_b.Name = "CB_b"; - this.CB_b.Size = new System.Drawing.Size(34, 21); - this.CB_b.TabIndex = 1; - this.CB_b.SelectedIndexChanged += new System.EventHandler(this.updateLabel); - // - // CB_c - // - this.CB_c.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.CB_c.FormattingEnabled = true; - this.CB_c.Items.AddRange(new object[] { - "0", - "1", - "2", - "3", - "4", - "5", - "6", - "7", - "8", - "9"}); - this.CB_c.Location = new System.Drawing.Point(116, 11); - this.CB_c.Name = "CB_c"; - this.CB_c.Size = new System.Drawing.Size(34, 21); - this.CB_c.TabIndex = 2; - this.CB_c.SelectedIndexChanged += new System.EventHandler(this.updateLabel); - // - // L_a - // - this.L_a.Location = new System.Drawing.Point(12, 9); - this.L_a.Name = "L_a"; - this.L_a.Size = new System.Drawing.Size(18, 23); - this.L_a.TabIndex = 3; - this.L_a.Text = "a"; - this.L_a.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // L_File - // - this.L_File.Location = new System.Drawing.Point(15, 35); - this.L_File.Name = "L_File"; - this.L_File.Size = new System.Drawing.Size(135, 23); - this.L_File.TabIndex = 4; - this.L_File.Text = "FILENAME HERE"; - this.L_File.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // B_Shuffle - // - this.B_Shuffle.Location = new System.Drawing.Point(76, 67); - this.B_Shuffle.Name = "B_Shuffle"; - this.B_Shuffle.Size = new System.Drawing.Size(75, 23); - this.B_Shuffle.TabIndex = 5; - this.B_Shuffle.Text = "Shuffle!"; - this.B_Shuffle.UseVisualStyleBackColor = true; - this.B_Shuffle.Click += new System.EventHandler(this.B_Shuffle_Click); - // - // Shuffler - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(164, 102); - this.Controls.Add(this.B_Shuffle); - this.Controls.Add(this.L_File); - this.Controls.Add(this.L_a); - this.Controls.Add(this.CB_c); - this.Controls.Add(this.CB_b); - this.Controls.Add(this.CB_a); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; - this.MaximizeBox = false; - this.MaximumSize = new System.Drawing.Size(180, 140); - this.MinimizeBox = false; - this.MinimumSize = new System.Drawing.Size(180, 140); - this.Name = "Shuffler"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Shuffler"; - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.ComboBox CB_a; - private System.Windows.Forms.ComboBox CB_b; - private System.Windows.Forms.ComboBox CB_c; - private System.Windows.Forms.Label L_a; - private System.Windows.Forms.Label L_File; - private System.Windows.Forms.Button B_Shuffle; - } -} \ No newline at end of file diff --git a/pk3DS/Tools/Shuffler.cs b/pk3DS/Tools/Shuffler.cs deleted file mode 100644 index 248eb8e33d..0000000000 --- a/pk3DS/Tools/Shuffler.cs +++ /dev/null @@ -1,130 +0,0 @@ -using pk3DS.Core; -using pk3DS.Core.CTR; -using System; -using System.IO; -using System.Linq; -using System.Windows.Forms; - -namespace pk3DS -{ - /* GARC File Shuffler - * Shuffles the FATB table references around (Start/End/Length) - * Only shuffles nonfoldered files around. - * Backs up the original file incase the user shuffles a file with ill-effect. - */ - public partial class Shuffler : Form - { - public Shuffler() - { - InitializeComponent(); - CB_a.SelectedIndex = CB_b.SelectedIndex = CB_c.SelectedIndex = 0; - - // Ban Models, Encounters, TitleScreen etc - banlist = Main.Config.ORAS - ? new[] { "a005", "a008", "a013", "a039", "a040", "a071", "a072", "a073", "a074", "a075", "a076", "a078", "a079", "a080", "a081", "a082", "a083", "a084", "a085", "a086", - "a100", "a152", - "a195" } - : new[] { "a005", "a007", "a012", "a041", "a042", "a072", "a073", "a074", "a075", "a076", "a078", "a079", "a080", "a081", "a082", "a083", "a084", "a085", "a086", "a087", - "a101", "a165", - "a218" }; - } - private string garc; - private readonly string[] banlist; - - private void updateLabel(object sender, EventArgs e) - { - garc = Path.Combine(Main.RomFSPath, "a", - CB_a.SelectedIndex.ToString(), CB_b.SelectedIndex.ToString(), CB_c.SelectedIndex.ToString()); - - if (File.Exists(garc)) - { - L_File.Text = $"File: a\\{CB_a.SelectedIndex}\\{CB_b.SelectedIndex}\\{CB_c.SelectedIndex}"; - B_Shuffle.Enabled = true; - } - else - { - L_File.Text = "File does not exist!"; - B_Shuffle.Enabled = false; - garc = null; - } - } - - private void B_Shuffle_Click(object sender, EventArgs e) - { - if (garc == null) - return; - - string garcID = L_File.Text.Split(':')[1].Replace("\\", "").Replace(" ",""); - if (banlist.Contains(garcID)) - { WinFormsUtil.Alert("GARC is prevented from being shuffled."); return; } - - var g = GARC.unpackGARC(garc); - - // Build a list of all the files we can relocate. - int[] randFiles = new int[g.fatb.FileCount]; - int ctr = 0; - for (int i = 0; i < randFiles.Length; i++) - if (!g.fatb.Entries[i].IsFolder) - randFiles[ctr++] = i; - - Array.Resize(ref randFiles, ctr); - - if (ctr == 0) - { WinFormsUtil.Alert("No files to shuffle...?"); return; } - - // Create backup - string dest = "backup" + Path.DirectorySeparatorChar + $"PreShuffle {garcID}"; - if (!File.Exists(dest)) - File.Copy(garc, dest); - - var g2 = GARC.unpackGARC(garc); - int[] newFileOffset = (int[])randFiles.Clone(); - Util.Shuffle(newFileOffset); - - for (int i = 0; i < randFiles.Length; i++) - g.fatb.Entries[randFiles[i]] = g2.fatb.Entries[newFileOffset[i]]; - - #region Re-write GARC Header information! - using (var newGARC = File.OpenWrite(garc)) - using (BinaryWriter gw = new BinaryWriter(newGARC)) - { - gw.Seek(7*4, SeekOrigin.Begin); // Skip GARC Header - // Write GARC - // gw.Write((uint)0x47415243); // GARC - // gw.Write((uint)0x0000001C); // Header Length - // gw.Write((ushort)0xFEFF); // Endianness BOM - // gw.Write((ushort)0x0400); // Const (4) - // gw.Write((uint)0x00000004); // Section Count (4) - // gw.Write((uint)0x00000000); // Data Offset (temp) - // gw.Write((uint)0x00000000); // File Length (temp) - // gw.Write((uint)0x00000000); // Largest File Size (temp) - - // Write FATO - gw.Write((uint)0x4641544F); // FATO - gw.Write(g.fato.HeaderSize); // Header Size - gw.Write(g.fato.EntryCount); // Entry Count - gw.Write(g.fato.Padding); // Padding - for (int i = 0; i < g.fato.Entries.Length; i++) - gw.Write((uint)g.fato.Entries[i].Offset); - - // Write FATB - gw.Write((uint)0x46415442); // FATB - gw.Write(g.fatb.HeaderSize); // Header Size - gw.Write(g.fatb.FileCount); // File Count - foreach (var fe in g.fatb.Entries) - { - gw.Write(fe.Vector); - foreach (var s in fe.SubEntries.Where(s => s.Exists)) - { - gw.Write((uint)s.Start); - gw.Write((uint)s.End); - gw.Write((uint)s.Length); - } - } - } - #endregion - - WinFormsUtil.Alert("GARC Shuffled!"); - } - } -} diff --git a/pk3DS/Tools/ToolsUI.Designer.cs b/pk3DS/Tools/ToolsUI.Designer.cs deleted file mode 100644 index e1cb703f80..0000000000 --- a/pk3DS/Tools/ToolsUI.Designer.cs +++ /dev/null @@ -1,228 +0,0 @@ -namespace pk3DS -{ - partial class ToolsUI - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.PB_Unpack = new System.Windows.Forms.Panel(); - this.L_DARCMini = new System.Windows.Forms.Label(); - this.CHK_PNG = new System.Windows.Forms.CheckBox(); - this.label1 = new System.Windows.Forms.Label(); - this.PB_Repack = new System.Windows.Forms.Panel(); - this.label4 = new System.Windows.Forms.Label(); - this.CB_Repack = new System.Windows.Forms.ComboBox(); - this.PB_BCLIM = new System.Windows.Forms.PictureBox(); - this.B_Reset = new System.Windows.Forms.Button(); - this.CHK_Delete = new System.Windows.Forms.CheckBox(); - this.pBar1 = new System.Windows.Forms.ProgressBar(); - this.NUD_Padding = new System.Windows.Forms.NumericUpDown(); - this.L_Padding = new System.Windows.Forms.Label(); - ((System.ComponentModel.ISupportInitialize)(this.PB_BCLIM)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Padding)).BeginInit(); - this.SuspendLayout(); - // - // PB_Unpack - // - this.PB_Unpack.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.PB_Unpack.Location = new System.Drawing.Point(12, 25); - this.PB_Unpack.Name = "PB_Unpack"; - this.PB_Unpack.Size = new System.Drawing.Size(300, 67); - this.PB_Unpack.TabIndex = 0; - this.PB_Unpack.MouseLeave += new System.EventHandler(this.dropLeave); - this.PB_Unpack.MouseHover += new System.EventHandler(this.dropHover); - // - // L_DARCMini - // - this.L_DARCMini.AutoSize = true; - this.L_DARCMini.Location = new System.Drawing.Point(9, 9); - this.L_DARCMini.Name = "L_DARCMini"; - this.L_DARCMini.Size = new System.Drawing.Size(294, 13); - this.L_DARCMini.TabIndex = 1; - this.L_DARCMini.Text = "GARC, DARC && Mini Unpack (CTRL to Skip Decompression)"; - // - // CHK_PNG - // - this.CHK_PNG.AutoSize = true; - this.CHK_PNG.Location = new System.Drawing.Point(89, 209); - this.CHK_PNG.Name = "CHK_PNG"; - this.CHK_PNG.Size = new System.Drawing.Size(97, 17); - this.CHK_PNG.TabIndex = 2; - this.CHK_PNG.Text = "Autosave PNG"; - this.CHK_PNG.UseVisualStyleBackColor = true; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(9, 210); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(74, 13); - this.label1.TabIndex = 3; - this.label1.Text = "BCLIM Viewer"; - // - // PB_Repack - // - this.PB_Repack.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.PB_Repack.Location = new System.Drawing.Point(168, 124); - this.PB_Repack.Name = "PB_Repack"; - this.PB_Repack.Size = new System.Drawing.Size(144, 67); - this.PB_Repack.TabIndex = 5; - // - // label4 - // - this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(9, 108); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(77, 13); - this.label4.TabIndex = 7; - this.label4.Text = "Folder Repack"; - // - // CB_Repack - // - this.CB_Repack.FormattingEnabled = true; - this.CB_Repack.Location = new System.Drawing.Point(12, 124); - this.CB_Repack.Name = "CB_Repack"; - this.CB_Repack.Size = new System.Drawing.Size(150, 21); - this.CB_Repack.TabIndex = 8; - // - // PB_BCLIM - // - this.PB_BCLIM.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; - this.PB_BCLIM.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.PB_BCLIM.Location = new System.Drawing.Point(12, 226); - this.PB_BCLIM.Name = "PB_BCLIM"; - this.PB_BCLIM.Size = new System.Drawing.Size(300, 124); - this.PB_BCLIM.TabIndex = 1; - this.PB_BCLIM.TabStop = false; - this.PB_BCLIM.Click += new System.EventHandler(this.PB_BCLIM_Click); - // - // B_Reset - // - this.B_Reset.Location = new System.Drawing.Point(12, 184); - this.B_Reset.Name = "B_Reset"; - this.B_Reset.Size = new System.Drawing.Size(80, 23); - this.B_Reset.TabIndex = 9; - this.B_Reset.Text = "Reset View"; - this.B_Reset.UseVisualStyleBackColor = true; - this.B_Reset.Click += new System.EventHandler(this.B_Reset_Click); - // - // CHK_Delete - // - this.CHK_Delete.AutoSize = true; - this.CHK_Delete.Checked = true; - this.CHK_Delete.CheckState = System.Windows.Forms.CheckState.Checked; - this.CHK_Delete.Location = new System.Drawing.Point(12, 148); - this.CHK_Delete.Name = "CHK_Delete"; - this.CHK_Delete.Size = new System.Drawing.Size(155, 17); - this.CHK_Delete.TabIndex = 10; - this.CHK_Delete.Text = "Delete Folder after Packing"; - this.CHK_Delete.UseVisualStyleBackColor = true; - // - // pBar1 - // - this.pBar1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.pBar1.Location = new System.Drawing.Point(12, 95); - this.pBar1.Name = "pBar1"; - this.pBar1.Size = new System.Drawing.Size(300, 12); - this.pBar1.TabIndex = 11; - // - // NUD_Padding - // - this.NUD_Padding.Hexadecimal = true; - this.NUD_Padding.Location = new System.Drawing.Point(118, 164); - this.NUD_Padding.Maximum = new decimal(new int[] { - 65536, - 0, - 0, - 0}); - this.NUD_Padding.Name = "NUD_Padding"; - this.NUD_Padding.Size = new System.Drawing.Size(44, 20); - this.NUD_Padding.TabIndex = 12; - this.NUD_Padding.Value = new decimal(new int[] { - 4, - 0, - 0, - 0}); - // - // L_Padding - // - this.L_Padding.Location = new System.Drawing.Point(12, 164); - this.L_Padding.Name = "L_Padding"; - this.L_Padding.Size = new System.Drawing.Size(100, 20); - this.L_Padding.TabIndex = 13; - this.L_Padding.Text = "GARC Padding:"; - this.L_Padding.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // ToolsUI - // - this.AllowDrop = true; - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(324, 362); - this.Controls.Add(this.L_Padding); - this.Controls.Add(this.NUD_Padding); - this.Controls.Add(this.pBar1); - this.Controls.Add(this.CHK_Delete); - this.Controls.Add(this.B_Reset); - this.Controls.Add(this.CB_Repack); - this.Controls.Add(this.label4); - this.Controls.Add(this.PB_Repack); - this.Controls.Add(this.label1); - this.Controls.Add(this.CHK_PNG); - this.Controls.Add(this.PB_BCLIM); - this.Controls.Add(this.L_DARCMini); - this.Controls.Add(this.PB_Unpack); - this.MaximizeBox = false; - this.MinimumSize = new System.Drawing.Size(340, 400); - this.Name = "ToolsUI"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Tools"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.closeForm); - ((System.ComponentModel.ISupportInitialize)(this.PB_BCLIM)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.NUD_Padding)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Panel PB_Unpack; - private System.Windows.Forms.Label L_DARCMini; - private System.Windows.Forms.CheckBox CHK_PNG; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Panel PB_Repack; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.ComboBox CB_Repack; - private System.Windows.Forms.PictureBox PB_BCLIM; - private System.Windows.Forms.Button B_Reset; - private System.Windows.Forms.CheckBox CHK_Delete; - private System.Windows.Forms.ProgressBar pBar1; - private System.Windows.Forms.NumericUpDown NUD_Padding; - private System.Windows.Forms.Label L_Padding; - } -} \ No newline at end of file diff --git a/pk3DS/Tools/ToolsUI.cs b/pk3DS/Tools/ToolsUI.cs deleted file mode 100644 index 179dcc7909..0000000000 --- a/pk3DS/Tools/ToolsUI.cs +++ /dev/null @@ -1,311 +0,0 @@ -using pk3DS.ARCUtil; -using pk3DS.Core.CTR; -using System; -using System.Drawing; -using System.IO; -using System.Linq; -using System.Threading; -using System.Windows.Forms; - -namespace pk3DS -{ - public partial class ToolsUI : Form - { - public ToolsUI() - { - InitializeComponent(); - AllowDrop = PB_Unpack.AllowDrop = PB_Repack.AllowDrop = PB_BCLIM.AllowDrop = true; - DragEnter += tabMain_DragEnter; - DragDrop += tabMain_DragDrop; - PB_Unpack.DragEnter += tabMain_DragEnter; - PB_Unpack.DragDrop += tabMain_DragDrop; - PB_Repack.DragEnter += tabMain_DragEnter; - PB_Repack.DragDrop += tabMain_DragDrop; - PB_BCLIM.DragEnter += tabMain_DragEnter; - PB_BCLIM.DragDrop += tabMain_DragDrop; - CLIMWindow = PB_BCLIM.Size; - CB_Repack.Items.Add("Autodetect"); - CB_Repack.Items.Add("GARC Pack"); - CB_Repack.Items.Add("DARC Pack (use filenames)"); - CB_Repack.Items.Add("Mini Pack (from Name)"); - CB_Repack.SelectedIndex = 0; - } - private void tabMain_DragEnter(object sender, DragEventArgs e) - { - if (e.Data.GetDataPresent(DataFormats.FileDrop)) e.Effect = DragDropEffects.Copy; - } - private void tabMain_DragDrop(object sender, DragEventArgs e) - { - string[] files = (string[])e.Data.GetData(DataFormats.FileDrop); - string path = files[0]; // open first D&D - - if (sender == PB_Unpack) - openARC(path, pBar1); - else if (sender == PB_BCLIM) - openIMG(path); - else if (sender == PB_Repack) - saveARC(path); - else try { - LZSS.Decompress(path, Path.Combine(Path.GetDirectoryName(path), "dec_" + Path.GetFileName(path))); - File.Delete(path); - System.Media.SystemSounds.Asterisk.Play(); - } catch { try { if (threads < 1) - new Thread(() => { threads++; new BLZCoder(new[] { "-d", path }, pBar1); threads--; WinFormsUtil.Alert("Decompressed!"); }).Start(); - } catch { WinFormsUtil.Error("Unable to process file."); threads = 0; } } - } - private void dropHover(object sender, EventArgs e) - { - (sender as Panel).BackColor = Color.Gray; - } - private void dropLeave(object sender, EventArgs e) - { - (sender as Panel).BackColor = Color.Transparent; - } - private void openIMG(string path) - { - var img = BCLIM.makeBMP(path, CHK_PNG.Checked); - if (img == null) return; - PB_BCLIM.Size = new Size(img.Width + 2, img.Height + 2); - PB_BCLIM.BackgroundImage = img; - } - - internal static volatile int threads; - internal static void openARC(string path, ProgressBar pBar1, bool recursing = false) - { - string newFolder = ""; - try - { - // Pre-check file length to see if it is at least valid. - FileInfo fi = new FileInfo(path); - if (fi.Length > (long)2 * (1<<30)) { WinFormsUtil.Error("File is too big!"); return; } // 2 GB - string folderPath = Path.Combine(Path.GetDirectoryName(path), Path.GetFileNameWithoutExtension(path)); - - byte[] first4 = new byte[4]; - try - { - using (BinaryReader bw = new BinaryReader(new FileStream(path, FileMode.Open))) - first4 = bw.ReadBytes(4); - } - catch (Exception e) - { - WinFormsUtil.Error("Cannot open file!", e.ToString()); - } - - // Determine if it is a DARC or a Mini - // Check if Mini first - string fx = fi.Length > 10 * (1<<20) ? null : mini.getIsMini(path); // no mini is above 10MB - if (fx != null) // Is Mini Packed File - { - newFolder = folderPath + "_" + fx; - // Fetch Mini File Contents - mini.unpackMini(path, fx, newFolder, false); - // Recurse throught the extracted contents if they extract successfully - if (Directory.Exists(newFolder)) - { - foreach (string file in Directory.GetFiles(newFolder)) - openARC(file, pBar1, true); - batchRenameExtension(newFolder); - } - } - else if (first4.SequenceEqual(BitConverter.GetBytes(0x47415243))) // GARC - { - if (threads > 0) { WinFormsUtil.Alert("Please wait for all operations to finish first."); return; } - bool SkipDecompression = ModifierKeys == Keys.Control; - new Thread(() => - { - threads++; - bool r = GarcUtil.garcUnpack(path, folderPath + "_g", SkipDecompression, pBar1); - threads--; - if (r) - batchRenameExtension(newFolder); - else - { WinFormsUtil.Alert("Unpacking failed."); return; } - System.Media.SystemSounds.Asterisk.Play(); - }).Start(); - return; - } - else if (ARC.analyze(path).valid) // DARC - { - var data = File.ReadAllBytes(path); - int pos = 0; - while (BitConverter.ToUInt32(data, pos) != 0x63726164) - { - pos += 4; - if (pos >= data.Length) return; - } - var darcData = data.Skip(pos).ToArray(); - newFolder = folderPath + "_d"; - bool r = Core.CTR.DARC.darc2files(darcData, newFolder); - if (!r) - { WinFormsUtil.Alert("Unpacking failed."); return; } - } - else if (!recursing) - { WinFormsUtil.Alert("File is not a darc or a mini packed file:" + Environment.NewLine + path); return;} - - } - catch (Exception e) - { - if (!recursing) - WinFormsUtil.Error("File error:" + Environment.NewLine + path, e.ToString()); - threads = 0; - } - System.Media.SystemSounds.Asterisk.Play(); - } - private void saveARC(string path) - { - if (!Directory.Exists(path)) { WinFormsUtil.Error("Input path is not a Folder", path); return; } - string folderName = Path.GetFileName(path); - string parentName = Directory.GetParent(path).FullName; - int type = CB_Repack.SelectedIndex; - switch (type) - { - case 0: // AutoDetect - { - if (!folderName.Contains("_")) - { WinFormsUtil.Alert("Unable to autodetect pack type."); return; } - - if (folderName.Contains("_g")) - goto case 1; - if (folderName.Contains("_d")) - goto case 2; - // else - goto case 3; - } - case 1: // GARC Pack - { - if (threads > 0) { WinFormsUtil.Alert("Please wait for all operations to finish first."); return; } - DialogResult dr = WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, "Format Selection:", - "Yes: Sun/Moon (Version 6)\nNo: XY/ORAS (Version 4)"); - if (dr == DialogResult.Cancel) - return; - - var version = dr == DialogResult.Yes ? GARC.VER_6 : GARC.VER_4; - int padding = (int)NUD_Padding.Value; - if (version == Core.CTR.GARC.VER_4) - padding = 4; - - string outfolder = Directory.GetParent(path).FullName; - new Thread(() => - { - bool r = GarcUtil.garcPackMS(path, Path.Combine(outfolder, folderName + ".garc"), version, padding, pBar1); - if (!r) { WinFormsUtil.Alert("Packing failed."); return; } - // Delete path after repacking - if (CHK_Delete.Checked && Directory.Exists(path)) - Directory.Delete(path, true); - - System.Media.SystemSounds.Asterisk.Play(); - }).Start(); - return; - } - case 2: // DARC Pack (from existing if exists) - { - string oldFile = path.Replace("_d", ""); - if (File.Exists(Path.Combine(parentName, oldFile))) - oldFile = Path.Combine(parentName, oldFile); - else if (File.Exists(Path.Combine(parentName, oldFile + ".bin"))) - oldFile = Path.Combine(parentName, oldFile + ".bin"); - else if (File.Exists(Path.Combine(parentName, oldFile + ".darc"))) - oldFile = Path.Combine(parentName, oldFile + ".darc"); - else oldFile = null; - - bool r = Core.CTR.DARC.files2darc(path, false, oldFile); - if (!r) WinFormsUtil.Alert("Packing failed."); - break; - } - case 3: // Mini Pack - { - // Get Folder Name - string fileName = Path.GetFileName(path); - if (fileName.Length < 3) { WinFormsUtil.Error("Mini Folder name not valid:", path); return; } - - int index = fileName.LastIndexOf('_'); - string fileNum = fileName.Substring(0, index); - string fileExt = fileName.Substring(index + 1); - - // Find old file for reference... - string file; - if (File.Exists(Path.Combine(parentName, fileNum + ".bin"))) - file = Path.Combine(parentName, fileNum + ".bin"); - else if (File.Exists(Path.Combine(parentName, fileNum + "." + fileExt))) - file = Path.Combine(parentName, fileNum + "." + fileExt); - else - file = null; - - byte[] oldData = file != null ? File.ReadAllBytes(file) : null; - bool r = mini.packMini2(path, fileExt, Path.Combine(parentName, fileNum + "." + fileExt)); - if (!r) - { - WinFormsUtil.Alert("Packing failed."); - break; - } - - // Check to see if the header size is different... - if (oldData == null) // No data to compare to. - break; - - byte[] newData = File.ReadAllBytes(Path.Combine(parentName, fileNum + "." + fileExt)); - if (newData[2] == oldData[2]) - { - int newPtr = BitConverter.ToInt32(newData, 4); - int oldPtr = BitConverter.ToInt32(oldData, 4); - if (newPtr != oldPtr) // Header size is different. Prompt repointing. - { - if (DialogResult.Yes != - WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Header size of existing file is nonstandard.", - "Adjust newly packed file to have the same header size as old file? Data pointers will be updated accordingly.")) - break; - - // Fix pointers - byte[] update = mini.adjustMiniHeader(newData, oldPtr); - File.WriteAllBytes(Path.Combine(parentName, fileNum + "." + fileExt), update); - } - } - - break; - } - default: - WinFormsUtil.Alert("Repacking not implemented." + Environment.NewLine + path); - return; - } - // Delete path after repacking - if (CHK_Delete.Checked && Directory.Exists(path)) - Directory.Delete(path, true); - System.Media.SystemSounds.Asterisk.Play(); - } - private void PB_BCLIM_Click(object sender, EventArgs e) - { - if (ModifierKeys == Keys.Control && WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Copy image to clipboard?") == DialogResult.Yes) - Clipboard.SetImage(PB_BCLIM.BackgroundImage); - else if (PB_BCLIM.BackColor == Color.Transparent) - PB_BCLIM.BackColor = Color.GreenYellow; - else PB_BCLIM.BackColor = Color.Transparent; - } - - // Utility - private readonly Size CLIMWindow; - private void B_Reset_Click(object sender, EventArgs e) - { - PB_BCLIM.Size = CLIMWindow; - } - - private static void batchRenameExtension(string Folder) - { - if (!Directory.Exists(Folder)) - return; - - foreach (string f in Directory.GetFiles(Folder, "*", SearchOption.AllDirectories)) - try { - string ext = Path.GetExtension(f); - string newExt = FileFormat.Guess(f); - if (ext != newExt) - File.Move(f, Path.Combine(Path.GetDirectoryName(f), Path.GetFileNameWithoutExtension(f)) + newExt); - } catch { } - } - - private void closeForm(object sender, FormClosingEventArgs e) - { - if (threads > 0 && DialogResult.Yes != WinFormsUtil.Prompt(MessageBoxButtons.YesNo, "Currently processing files.", "Abort?")) - e.Cancel = true; - } - } -} \ No newline at end of file diff --git a/pk3DS/WinFormsUtil.cs b/pk3DS/WinFormsUtil.cs deleted file mode 100644 index 3029fe6fd8..0000000000 --- a/pk3DS/WinFormsUtil.cs +++ /dev/null @@ -1,672 +0,0 @@ -using pk3DS.Core; -using System; -using System.Collections.Generic; -using System.Drawing; -using System.Drawing.Imaging; -using System.Globalization; -using System.IO; -using System.Linq; -using System.Runtime.InteropServices; -using System.Windows.Forms; -using pk3DS.Properties; - -namespace pk3DS -{ - public static class WinFormsUtil - { - // Image Layering/Blending Utility - public static Bitmap LayerImage(Image baseLayer, Image overLayer, int x, int y, double trans) - { - if (baseLayer == null) - return overLayer as Bitmap; - Bitmap img = new Bitmap(baseLayer.Width, baseLayer.Height); - using (Graphics gr = Graphics.FromImage(img)) - { - gr.DrawImage(baseLayer, new Point(0, 0)); - Bitmap o = ChangeOpacity(overLayer, trans); - gr.DrawImage(o, new Rectangle(x, y, overLayer.Width, overLayer.Height)); - } - return img; - } - public static Bitmap ChangeOpacity(Image img, double trans) - { - if (img == null) - return null; - if (img.PixelFormat.HasFlag(PixelFormat.Indexed)) - return (Bitmap)img; - - Bitmap bmp = (Bitmap)img.Clone(); - BitmapData bmpData = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); - IntPtr ptr = bmpData.Scan0; - - int len = bmp.Width * bmp.Height * 4; - byte[] data = new byte[len]; - - Marshal.Copy(ptr, data, 0, len); - - for (int i = 0; i < data.Length; i += 4) - data[i + 3] = (byte)(data[i + 3] * trans); - - Marshal.Copy(data, 0, ptr, len); - bmp.UnlockBits(bmpData); - - return bmp; - } - - public static string GetResourceStringSprite(int species, int form, int gender, int generation) - { - if (new[] { 778, 664, 665, 414, 493, 773 }.Contains(species)) // Species who show their default sprite regardless of Form - form = 0; - - string file = "_" + species; - if (form > 0) // Alt Form Handling - file += "_" + form; - else if (gender == 1 && new[] { 592, 593, 521, 668 }.Contains(species)) // Frillish & Jellicent, Unfezant & Pyroar - file += "_" + gender; - - if (species == 25 && form > 0 && generation >= 7) // Pikachu - file += "c"; // Cap - - return file; - } - public static Bitmap getSprite(int species, int form, int gender, int item, GameConfig config, bool shiny = false) - { - if (species == 0) - return Resources._0; - if (species > config.MaxSpeciesID) - return Resources.unknown; - - var file = GetResourceStringSprite(species, form, gender, config.Generation); - - // Redrawing logic - // Redrawing logic - Bitmap baseImage = (Bitmap)Resources.ResourceManager.GetObject(file); - if (IsTotemForm(species, form)) - { - form = GetTotemBaseForm(species, form); - file = GetResourceStringSprite(species, form, gender, Main.Config.Generation); - baseImage = (Bitmap)Resources.ResourceManager.GetObject(file); - baseImage = ToGrayscale(baseImage); - } - if (baseImage == null) - { - if (species < config.MaxSpeciesID) - { - baseImage = LayerImage( - Resources.ResourceManager.GetObject("_" + species) as Image, - Resources.unknown, - 0, 0, .5); - } - else - baseImage = Resources.unknown; - } - if (shiny) - { - // Add shiny star to top left of image. - baseImage = LayerImage(baseImage, Resources.rare_icon, 0, 0, 0.7); - } - if (item > 0) - { - Bitmap itemimg = (Bitmap)(Resources.ResourceManager.GetObject("item_" + item) ?? Resources.helditem); - // Redraw - baseImage = LayerImage(baseImage, itemimg, 22 + (15 - itemimg.Width) / 2, 15 + (15 - itemimg.Height), 1); - } - return baseImage; - } - public static bool IsTotemForm(int species, int form, int generation = 7) - { - if (generation != 7) - return false; - if (form == 0) - return false; - if (!Legal.Totem_USUM.Contains(species)) - return false; - if (species == 778) // Mimikyu - return form == 2 || form == 3; - if (Legal.Totem_Alolan.Contains(species)) - return form == 2; - return form == 1; - } - public static int GetTotemBaseForm(int species, int form) - { - if (species == 778) // Mimikyu - return form - 2; - return form - 1; - } - public static Bitmap scaleImage(Bitmap rawImg, int s) - { - Bitmap bigImg = new Bitmap(rawImg.Width * s, rawImg.Height * s); - for (int x = 0; x < bigImg.Width; x++) - for (int y = 0; y < bigImg.Height; y++) - bigImg.SetPixel(x, y, rawImg.GetPixel(x / s, y / s)); - return bigImg; - } - public static Bitmap ToGrayscale(Image img) - { - if (img == null) - return null; - if (img.PixelFormat.HasFlag(PixelFormat.Indexed)) - return (Bitmap)img; - - var bmp = (Bitmap)img.Clone(); - GetBitmapData(bmp, out BitmapData bmpData, out IntPtr ptr, out byte[] data); - - Marshal.Copy(ptr, data, 0, data.Length); - SetAllColorToGrayScale(data); - Marshal.Copy(data, 0, ptr, data.Length); - bmp.UnlockBits(bmpData); - - return bmp; - } - private static void GetBitmapData(Bitmap bmp, out BitmapData bmpData, out IntPtr ptr, out byte[] data) - { - bmpData = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadWrite, PixelFormat.Format32bppArgb); - ptr = bmpData.Scan0; - data = new byte[bmp.Width * bmp.Height * 4]; - } - private static void SetAllTransparencyTo(byte[] data, double trans) - { - for (int i = 0; i < data.Length; i += 4) - data[i + 3] = (byte)(data[i + 3] * trans); - } - private static void SetAllColorTo(byte[] data, Color c) - { - byte R = c.R; - byte G = c.G; - byte B = c.B; - for (int i = 0; i < data.Length; i += 4) - { - if (data[i + 3] == 0) - continue; - data[i + 0] = B; - data[i + 1] = G; - data[i + 2] = R; - } - } - private static void SetAllColorToGrayScale(byte[] data) - { - for (int i = 0; i < data.Length; i += 4) - { - if (data[i + 3] == 0) - continue; - byte greyS = (byte)((0.3 * data[i + 2] + 0.59 * data[i + 1] + 0.11 * data[i + 0]) / 3); - data[i + 0] = greyS; - data[i + 1] = greyS; - data[i + 2] = greyS; - } - } - - // Strings and Paths - - public static string[] getStringList(string f, string l) - { - object txt = Resources.ResourceManager.GetObject("text_" + f + "_" + l); // Fetch File, \n to list. - List rawlist = ((string)txt).Split('\n').ToList(); - - string[] stringdata = new string[rawlist.Count]; - for (int i = 0; i < rawlist.Count; i++) - stringdata[i] = rawlist[i].Trim(); - - return stringdata; - } - public static string[] getSimpleStringList(string f) - { - object txt = Resources.ResourceManager.GetObject(f); // Fetch File, \n to list. - List rawlist = ((string)txt).Split('\n').ToList(); - - string[] stringdata = new string[rawlist.Count]; - for (int i = 0; i < rawlist.Count; i++) - stringdata[i] = rawlist[i].Trim(); - - return stringdata; - } - - // Data Retrieval - public static int ToInt32(TextBox tb) - { - string value = tb.Text; - return Util.ToInt32(value); - } - public static uint ToUInt32(TextBox tb) - { - string value = tb.Text; - return Util.ToUInt32(value); - } - public static int ToInt32(MaskedTextBox tb) - { - string value = tb.Text; - return Util.ToInt32(value); - } - public static uint ToUInt32(MaskedTextBox tb) - { - string value = tb.Text; - return Util.ToUInt32(value); - } - - public static uint getHEXval(TextBox tb) - { - if (tb.Text == null) - return 0; - string str = getOnlyHex(tb.Text); - return uint.Parse(str, NumberStyles.HexNumber); - } - - public static int getIndex(ComboBox cb) - { - int val; - if (cb.SelectedValue == null) - return 0; - - try - { val = (int)cb.SelectedValue; } - catch - { val = cb.SelectedIndex; if (val < 0) val = 0; } - return val; - } - - public static string getOnlyHex(string str) - { - if (str == null) return "0"; - - string s = ""; - - foreach (char t in str) - { - var c = t; - // filter for hex - if (c < 0x0047 && c > 0x002F || c < 0x0067 && c > 0x0060) - s += c; - else - System.Media.SystemSounds.Beep.Play(); - } - if (s.Length == 0) - s = "0"; - return s; - } - - // Form Translation - public static void TranslateInterface(Control form, string lang) - { - // Check to see if a the translation file exists in the same folder as the executable - string externalLangPath = "lang_" + lang + ".txt"; - string[] rawlist; - if (File.Exists(externalLangPath)) - rawlist = File.ReadAllLines(externalLangPath); - else - { - object txt = Resources.ResourceManager.GetObject("lang_" + lang); - if (txt == null) return; // Translation file does not exist as a resource; abort this function and don't translate UI. - rawlist = ((string)txt).Split(new[] { "\n" }, StringSplitOptions.None); - rawlist = rawlist.Select(i => i.Trim()).ToArray(); // Remove trailing spaces - } - - string[] stringdata = new string[rawlist.Length]; - int itemsToRename = 0; - for (int i = 0; i < rawlist.Length; i++) - { - // Find our starting point - if (!rawlist[i].Contains("! " + form.Name)) continue; - - // Allow renaming of the Window Title - string[] WindowName = rawlist[i].Split(new[] { " = " }, StringSplitOptions.None); - if (WindowName.Length > 1) form.Text = WindowName[1]; - // Copy our Control Names and Text to a new array for later processing. - for (int j = i + 1; j < rawlist.Length; j++) - { - if (rawlist[j].Length == 0) continue; // Skip Over Empty Lines, errhandled - if (rawlist[j][0].ToString() == "-") continue; // Keep translating if line is a comment line - if (rawlist[j][0].ToString() == "!") // Stop if we have reached the end of translation - goto rename; - stringdata[itemsToRename] = rawlist[j]; // Add the entry to process later. - itemsToRename++; - } - } - return; // Not Found - - // Now that we have our items to rename in: Control = Text format, let's execute the changes! - rename: - for (int i = 0; i < itemsToRename; i++) - { - string[] SplitString = stringdata[i].Split(new[] { " = " }, StringSplitOptions.None); - if (SplitString.Length < 2) - continue; // Error in Input, errhandled - string ctrl = SplitString[0]; // Control to change the text of... - string text = SplitString[1]; // Text to set Control.Text to... - Control[] controllist = form.Controls.Find(ctrl, true); - if (controllist.Length != 0) // If Control is found - { controllist[0].Text = text; goto next; } - - // Check MenuStrips - foreach (MenuStrip menu in form.Controls.OfType()) - { - // Menu Items aren't in the Form's Control array. Find within the menu's Control array. - ToolStripItem[] TSI = menu.Items.Find(ctrl, true); - if (TSI.Length <= 0) continue; - - TSI[0].Text = text; goto next; - } - // Check ContextMenuStrips - foreach (ContextMenuStrip cs in FindContextMenuStrips(form.Controls.OfType()).Distinct()) - { - ToolStripItem[] TSI = cs.Items.Find(ctrl, true); - if (TSI.Length <= 0) continue; - - TSI[0].Text = text; goto next; - } - - next:; - } - } - public static List FindContextMenuStrips(IEnumerable c) - { - List cs = new List(); - foreach (Control control in c) - { - if (control.ContextMenuStrip != null) - cs.Add(control.ContextMenuStrip); - - else if (control.Controls.Count > 0) - cs.AddRange(FindContextMenuStrips(control.Controls.OfType())); - } - return cs; - } - - // Message Displays - public static DialogResult Error(params string[] lines) - { - System.Media.SystemSounds.Exclamation.Play(); - string msg = string.Join(Environment.NewLine + Environment.NewLine, lines); - return MessageBox.Show(msg, "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); - } - public static DialogResult Alert(params string[] lines) - { - System.Media.SystemSounds.Asterisk.Play(); - string msg = string.Join(Environment.NewLine + Environment.NewLine, lines); - return MessageBox.Show(msg, "Alert", MessageBoxButtons.OK, MessageBoxIcon.Warning); - } - public static DialogResult Prompt(MessageBoxButtons btn, params string[] lines) - { - System.Media.SystemSounds.Question.Play(); - string msg = string.Join(Environment.NewLine + Environment.NewLine, lines); - return MessageBox.Show(msg, "Prompt", btn, MessageBoxIcon.Asterisk); - } - - // DataSource Providing - public class cbItem - { - public string Text { get; set; } - public object Value { get; set; } - } - public static List getCBList(string textfile, string lang) - { - // Set up - string[] inputCSV = getSimpleStringList(textfile); - - // Get Language we're fetching for - int index = Array.IndexOf(new[] { "ja", "en", "fr", "de", "it", "es", "ko", "zh", }, lang); - - // Set up our Temporary Storage - string[] unsortedList = new string[inputCSV.Length - 1]; - int[] indexes = new int[inputCSV.Length - 1]; - - // Gather our data from the input file - for (int i = 1; i < inputCSV.Length; i++) - { - string[] countryData = inputCSV[i].Split(','); - indexes[i - 1] = Convert.ToInt32(countryData[0]); - unsortedList[i - 1] = countryData[index + 1]; - } - - // Sort our input data - string[] sortedList = new string[inputCSV.Length - 1]; - Array.Copy(unsortedList, sortedList, unsortedList.Length); - Array.Sort(sortedList); - - // Arrange the input data based on original number - return sortedList.Select(t => new cbItem - { - Text = t, - Value = indexes[Array.IndexOf(unsortedList, t)] - }).ToList(); - } - public static List getCBList(string[] inStrings, params int[][] allowed) - { - List cbList = new List(); - if (allowed == null) - allowed = new[] { Enumerable.Range(0, inStrings.Length).ToArray() }; - - foreach (int[] list in allowed) - { - // Sort the Rest based on String Name - string[] unsortedChoices = new string[list.Length]; - for (int i = 0; i < list.Length; i++) - unsortedChoices[i] = inStrings[list[i]]; - - string[] sortedChoices = new string[unsortedChoices.Length]; - Array.Copy(unsortedChoices, sortedChoices, unsortedChoices.Length); - Array.Sort(sortedChoices); - - // Add the rest of the items - cbList.AddRange(sortedChoices.Select(t => new cbItem - { - Text = t, - Value = list[Array.IndexOf(unsortedChoices, t)] - })); - } - return cbList; - } - public static List getOffsetCBList(List cbList, string[] inStrings, int offset, int[] allowed) - { - if (allowed == null) - allowed = Enumerable.Range(0, inStrings.Length).ToArray(); - - int[] list = (int[])allowed.Clone(); - for (int i = 0; i < list.Length; i++) - list[i] -= offset; - - { - // Sort the Rest based on String Name - string[] unsortedChoices = new string[allowed.Length]; - for (int i = 0; i < allowed.Length; i++) - unsortedChoices[i] = inStrings[list[i]]; - - string[] sortedChoices = new string[unsortedChoices.Length]; - Array.Copy(unsortedChoices, sortedChoices, unsortedChoices.Length); - Array.Sort(sortedChoices); - - // Add the rest of the items - cbList.AddRange(sortedChoices.Select(t => new cbItem - { - Text = t, - Value = allowed[Array.IndexOf(unsortedChoices, t)] - })); - } - return cbList; - } - public static List getVariedCBList(List cbList, string[] inStrings, int[] stringNum, int[] stringVal) - { - // Set up - List newlist = new List(); - - for (int i = 4; i > 1; i--) // add 4,3,2 - { - // First 3 Balls are always first - cbItem ncbi = new cbItem - { - Text = inStrings[i], - Value = i - }; - newlist.Add(ncbi); - } - - // Sort the Rest based on String Name - string[] ballnames = new string[stringNum.Length]; - for (int i = 0; i < stringNum.Length; i++) - ballnames[i] = inStrings[stringNum[i]]; - - string[] sortedballs = new string[stringNum.Length]; - Array.Copy(ballnames, sortedballs, ballnames.Length); - Array.Sort(sortedballs); - - // Add the rest of the balls - newlist.AddRange(sortedballs.Select(t => new cbItem - { - Text = t, - Value = stringVal[Array.IndexOf(ballnames, t)] - })); - return newlist; - } - public static List getUnsortedCBList(string textfile) - { - // Set up - List cbList = new List(); - string[] inputCSV = getSimpleStringList(textfile); - - // Gather our data from the input file - for (int i = 1; i < inputCSV.Length; i++) - { - string[] inputData = inputCSV[i].Split(','); - cbItem ncbi = new cbItem - { - Value = Convert.ToInt32(inputData[0]), - Text = inputData[1] - }; - cbList.Add(ncbi); - } - return cbList; - } - - // Misc - public static int highlightText(RichTextBox RTB, string word, Color hlColor) - { - int ctr = 0; - int s_start = RTB.SelectionStart, startIndex = 0, index; - - while ((index = RTB.Text.IndexOf(word, startIndex, StringComparison.Ordinal)) != -1) - { - RTB.Select(index, word.Length); - RTB.SelectionColor = hlColor; - - startIndex = index + word.Length; - ctr++; - } - - RTB.SelectionStart = s_start; - RTB.SelectionLength = 0; - RTB.SelectionColor = Color.Black; - return ctr; - } - - // http://stackoverflow.com/questions/4820212/automatically-trim-a-bitmap-to-minimum-size - public static Bitmap TrimBitmap(Bitmap source) - { - Rectangle srcRect; - BitmapData data = null; - try - { - data = source.LockBits(new Rectangle(0, 0, source.Width, source.Height), ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb); - byte[] buffer = new byte[data.Height * data.Stride]; - Marshal.Copy(data.Scan0, buffer, 0, buffer.Length); - - int xMin = int.MaxValue, - xMax = int.MinValue, - yMin = int.MaxValue, - yMax = int.MinValue; - - bool foundPixel = false; - - // Find xMin - for (int x = 0; x < data.Width; x++) - { - bool stop = false; - for (int y = 0; y < data.Height; y++) - { - byte alpha = buffer[y * data.Stride + 4 * x + 3]; - if (alpha != 0) - { - xMin = x; - stop = true; - foundPixel = true; - break; - } - } - if (stop) - break; - } - - // Image is empty... - if (!foundPixel) - return null; - - // Find yMin - for (int y = 0; y < data.Height; y++) - { - bool stop = false; - for (int x = xMin; x < data.Width; x++) - { - byte alpha = buffer[y * data.Stride + 4 * x + 3]; - if (alpha != 0) - { - yMin = y; - stop = true; - break; - } - } - if (stop) - break; - } - - // Find xMax - for (int x = data.Width - 1; x >= xMin; x--) - { - bool stop = false; - for (int y = yMin; y < data.Height; y++) - { - byte alpha = buffer[y * data.Stride + 4 * x + 3]; - if (alpha != 0) - { - xMax = x; - stop = true; - break; - } - } - if (stop) - break; - } - - // Find yMax - for (int y = data.Height - 1; y >= yMin; y--) - { - bool stop = false; - for (int x = xMin; x <= xMax; x++) - { - byte alpha = buffer[y * data.Stride + 4 * x + 3]; - if (alpha != 0) - { - yMax = y; - stop = true; - break; - } - } - if (stop) - break; - } - - srcRect = Rectangle.FromLTRB(xMin, yMin, xMax + 1, yMax + 1); // fixed; was cropping 1px too much on the max end - } - finally - { - if (data != null) - source.UnlockBits(data); - } - - Bitmap dest = new Bitmap(srcRect.Width, srcRect.Height); - Rectangle destRect = new Rectangle(0, 0, srcRect.Width, srcRect.Height); - using (Graphics graphics = Graphics.FromImage(dest)) - { - graphics.DrawImage(source, destRect, srcRect, GraphicsUnit.Pixel); - } - return dest; - } - } -} diff --git a/pk3DS/app.config b/pk3DS/app.config deleted file mode 100644 index 18caac5e8f..0000000000 --- a/pk3DS/app.config +++ /dev/null @@ -1,18 +0,0 @@ - - - - -
- - - - - - 2 - - - - - - - \ No newline at end of file diff --git a/pk3DS/pk3DS.csproj b/pk3DS/pk3DS.csproj deleted file mode 100644 index 94850c1508..0000000000 --- a/pk3DS/pk3DS.csproj +++ /dev/null @@ -1,3109 +0,0 @@ - - - - Debug - x86 - 8.0.30703 - 2.0 - {C4CB2488-2DB9-489F-8B02-A8E872C6C6AB} - WinExe - Properties - pk3DS - pk3DS - v4.0 - Client - 512 - - - x86 - true - full - false - bin\x86\Debug\ - DEBUG;TRACE - prompt - 4 - true - false - - - x86 - pdbonly - true - bin\x86\Release\ - TRACE - prompt - 4 - true - false - - - true - bin\Debug\ - DEBUG;TRACE - true - full - AnyCPU - false - prompt - MinimumRecommendedRules.ruleset - - - bin\Release\ - TRACE - true - true - pdbonly - AnyCPU - false - prompt - MinimumRecommendedRules.ruleset - - - - - - - - - - - - Form - - - EnhancedRestore.cs - - - Form - - - MartEditor7UU.cs - - - - - - - - Form - - - ErrorWindow.cs - - - Form - - - About.cs - - - - - - Form - - - EggMoveEditor7.cs - - - Form - - - EvolutionEditor7.cs - - - Form - - - OWSE7.cs - - - Form - - - ItemEditor7.cs - - - Form - - - LevelUpEditor7.cs - - - Form - - - MaisonEditor7.cs - - - Form - - - MartEditor7.cs - - - Form - - - MegaEvoEditor7.cs - - - Form - - - MoveEditor7.cs - - - Form - - - PersonalEditor7.cs - - - Form - - - PickupEditor7.cs - - - Form - - - SMTE.cs - - - Form - - - SMWE.cs - - - Form - - - StaticEncounterEditor6.cs - - - Form - - - GiftEditor6.cs - - - Form - - - MapPermView.cs - - - Form - - - StaticEncounterEditor7.cs - - - Form - - - TMEditor7.cs - - - Form - - - TypeChart7.cs - - - Form - - - ShinyRate.cs - - - Form - - - Shuffler.cs - - - Form - - - TypeChart6.cs - - - Form - - - StarterEditor6.cs - - - Form - - - Patch.cs - - - Form - - - TitleScreenEditor6.cs - - - Form - - - RSWE.cs - - - Form - - - OPower.cs - - - Form - - - ItemEditor6.cs - - - Form - - - PickupEditor6.cs - - - Form - - - TMHMEditor6.cs - - - Form - - - TutorEditor6.cs - - - Form - - - MartEditor6.cs - - - Form - - - MaisonEditor6.cs - - - Form - - - MegaEvoEditor6.cs - - - Form - - - MoveEditor6.cs - - - Form - - - EvolutionEditor6.cs - - - Form - - - LevelUpEditor6.cs - - - Form - - - EggMoveEditor6.cs - - - Form - - - Main.cs - - - Form - - - PersonalEditor6.cs - - - - - Form - - - OWSE.cs - - - Form - - - TrainerRand.cs - - - Form - - - RSTE.cs - - - Form - - - XYWE.cs - - - Form - - - Icon.cs - - - - Form - - - ToolsUI.cs - - - Form - - - TextEditor.cs - - - Main.cs - - - About.cs - - - ErrorWindow.cs - - - EnhancedRestore.cs - - - EggMoveEditor7.cs - - - EvolutionEditor7.cs - - - OWSE7.cs - - - ItemEditor7.cs - - - LevelUpEditor7.cs - - - MaisonEditor7.cs - - - MartEditor7UU.cs - - - MartEditor7.cs - - - MegaEvoEditor7.cs - - - MoveEditor7.cs - - - PersonalEditor7.cs - - - PickupEditor7.cs - - - SMTE.cs - - - SMWE.cs - - - StaticEncounterEditor6.cs - - - GiftEditor6.cs - - - MapPermView.cs - - - StaticEncounterEditor7.cs - - - TMEditor7.cs - - - TypeChart7.cs - - - ShinyRate.cs - - - Shuffler.cs - - - TypeChart6.cs - - - StarterEditor6.cs - - - Patch.cs - - - TitleScreenEditor6.cs - - - RSWE.cs - - - OPower.cs - - - ItemEditor6.cs - - - PickupEditor6.cs - - - TMHMEditor6.cs - - - TrainerRand.cs - - - TutorEditor6.cs - - - MaisonEditor6.cs - - - MartEditor6.cs - - - MegaEvoEditor6.cs - - - MoveEditor6.cs - - - EvolutionEditor6.cs - - - LevelUpEditor6.cs - - - EggMoveEditor6.cs - - - PersonalEditor6.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - RSTE.cs - - - OWSE.cs - - - TextEditor.cs - - - XYWE.cs - - - Icon.cs - - - ToolsUI.cs - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {053212fc-2d93-427b-8695-78ec87e4c43c} - pk3DS.Core - - - - - \ No newline at end of file