That is one nice looking GUI. :D
Why, thank you. I find that if a tool embeds an emulator, it's automatically better {:3}
Some more news :)
I've built a script debugger, which reads the script struct and shows some useful information about the current script:
Additionally, I've completed the custom functions, as itari suggested. I'm now working on finishing the commands list and the import mechanics. Once I've done this, I'll go back to the GUI, and hopefully by then I'll be ready to release :D
I've also added another feature:
The problem: Many hacks overwrite Pokemon. Let's take a hypothetical situation: We've replaced Exeggcute with Piplup. Now, if we want to give the player a Piplup (Level 5, no item) via a script, we either have to say:
Code:
givepokemon PKMN_EXEGGCUTE 0x5 0x0 0x0 0x0 0x0
or
Code:
givepokemon 0x66 0x5 0x0 0x0 0x0 0x0
Both of these are annoying. We either have to remember which Pokemon we replaced, or we have to remember its Pokemon number. Urgh
Solution:
The solution I came up with is to read the Pokemon names table (0x245EE0 in FireRed) of the currently loaded ROM. This is such a stupidly easy solution that I'm surprised no one did it before now. Now all you have to say is:
Code:
givepokemon(Pokemon('piplup'))
The other arguments default to level 5, and no item. I've also done this with items and moves. But, if you wanted to add an Oran berry to our Piplup, all you'd have to say is
Code:
givepokemon(Pokemon('piplup'), item=Item('Oran berry'))
So basically all you have to remember is the name of the thing you wish to give. The name is case insensitive, so you could just as well say Item('ORAN BERRY'). Of course, the default functionality is preserved. So if remembering arbitrary numbers is your thing, then you can say Item(0x8B) and achieve the same result.