[Suggestion] Make Built-In Sprites Easier to Replace

All discussions regarding the AAOv6 Beta, be it bug reports or suggestions, should be posted in this section.

Moderator: EN - Forum Moderators

Post Reply
Reverie
Posts: 497
Joined: Thu Dec 12, 2013 10:41 pm
Spoken languages: English

[Suggestion] Make Built-In Sprites Easier to Replace

Post by Reverie »

Let's say that, as an example, you're using Apollo's sprites, you realize that you want to make a quick edit to them, and then want to easily be able to switch these with editor's built-in sprites. The problem is, unlike with custom sprites, each pose isn't laid out with its url easily changable. In fact, built-in poses aren't visible at all, let alone editable, so it's not possible to quickly switch a built-in pose with a custom one.

Should/could this be changed so that each pose can be easily changed if need be, regardless of whether it's built into the editor or not?
User avatar
Enthalpy
Community Manager
Posts: 5169
Joined: Wed Jan 04, 2012 4:40 am
Gender: Male
Spoken languages: English, limited Spanish

Re: [Suggestion] Make Built-In Sprites Easier to Replace

Post by Enthalpy »

In other words, you want a quick way to change any reference to a built-in sprite to references to a custom sprite. It could definitely be done, and I could write up a Python program to automate the process for you in less than five minutes. Integrating it into the editor is... more complicated.

There are two general approaches here: one is to change what the references refers to, i.e., make it possible to give AAO the command "whenever you see character X and built-in sprite Y, it actually means you pull these special images." I would rather avoid that option, since it creates an additional test the trial player it tries to load a sprite, and it makes the trial data harder for a human to read. If the trial data was ever read by a human, it would also make the data harder to read; now you have to check if a builtin sprite is swapped to a custom one. My deepest concern, though, is that it muddles the trial data structure. v6 has it so "A negative numbered sprite means it's built-in." A change in this direction would turn that rule into "A negative numbered sprite means it's built-in by default, unless there's some global override affecting this particular sprite." It's such unnecessary complexity!

The saner solution is conceptually elegant, but could be a pain to implement. You'd need some interface to select two sprites, and swap all references to one with references to the other. The code that does the replacement would be two clean for-loops, one over the frames, and one over something Unas is building called frame-presets. But the editor interface is much trickier to design. My instinct is to create a new button on each profile, and borrow the "animation select" code from frame-building to select the animations.

...There's also the matter of how soon this could be designed. I don't feel comfortable building this until I've read over all the relevant code for the profiles tab and the animation-select mechanism, which is not a high priority for me at the moment, due to real-life obligations, and even then, I want to focus on the Glitch Hunt when I have time for AAO Open-Source. (Which I won't really focus on until after the Platinum rewrite, which comes after Catalysis...)

If there's a strong demand for this feature, I could write it up, but until then, I think you're better off sending me a PM with the substitution you want to do. I can do this easily, when I don't have a GUI implementation to worry about.
[D]isordered speech is not so much injury to the lips that give it forth, as to the disproportion and incoherence of things in themselves, so negligently expressed. ~ Ben Jonson
User avatar
Unas
Admin / Site programmer
Posts: 8850
Joined: Tue Jul 10, 2007 4:43 pm
Gender: Male
Spoken languages: Français, English, Español
Contact:

Re: [Suggestion] Make Built-In Sprites Easier to Replace

Post by Unas »

For me, the first approach suggested by Enthalpy is a no-no. The player doesn't have to fix the trial data at runtime : the trial data itself must be consistent, not contain some crazy substitution rules.
The second approach (providing a means to perform that substitution directly, once and for all, in the trial data) is the correct one.

However, I'm not sure this should be integrated in the editor itself to be honest, it seems it would bloat the interface for something with limited use.
It could be part of a set of tools exposed aside of the editor to manipulate trial data directly. Kind of we had henke's tools in V4, we could here have a set of tools not really integrated into the editor but performing useful tasks such as that...
ImageImageImage
If knowledge can create problems, it is not through ignorance that we can solve them.
Si le savoir peut créer des problèmes, ce n'est pas l'ignorance qui les résoudra. ( Isaac Asimov )
User avatar
kwando1313
Posts: 7684
Joined: Tue Jul 22, 2008 6:33 pm
Gender: Male
Spoken languages: English, Français (un peu), Ancient Belkan
Location: Uminari City

Re: [Suggestion] Make Built-In Sprites Easier to Replace

Post by kwando1313 »

Having some sort of way to directly edit the trial data would be brilliant and I would love to be able to do that.
Avatar made by Rimuu~

Image

"The Knight of the Iron Hammer, Vita, and the Steel Count, Graf Eisen. There's nothing in this world we can't destroy."
Post Reply