Age | Commit message (Collapse) | Author |
|
|
|
Working with a "grid" system where we can specifiy the row and column
number directly is way easier than all the x_slice/y_slice calculations
that have been done in all the methods.
|
|
The function was never used, and it is very easy to emulate using the
other available constructor.
|
|
|
|
|
|
|
|
|
|
|
|
Now that the API actually returns the proper palette IDs, we can use
those values instead of relying on the hard coded values.
This also gets rid of the make_table script that was mostly hackish
anyway, and the lazy static HashMap.
|
|
The cache is meant to help out by saving old responses. If those
responses do not conform anymore to an updated struct definition, the
whole application should not crash. Instead, the value is silently
ignored and then overwritten by the proper value that has been fetched
from the API.
That way, users don't have to manually clear out the cache if a new API
schema or new features are released.
|
|
While it doesn't look as ugly if you have a major trait with a thick
black border, it still looks a bit off, especially since some of them do
come with the proper alpha channel, while others don't.
This fix uses the same mask for all major traits now as well, which
should make them look more uniform and remove the thick black border.
|
|
This one looks a bit better and comes directly off the API.
|
|
|
|
Previously, some areas were "double exposed" to the transparency, making
them a bit darker than the rest.
The solution is to make sure that each part is drawn with the correct
background color, and then only copying pixels instead of blending them
to the final canvas.
|
|
|
|
So far, we silently ignored all errors, because we assumed that they
would be the EmptyBuild anyway. This fixes this by not swallowing errors
anymore, and instead displays them.
|
|
As it looks, not every trait comes with this field, which prevents some
traitlines (notably the Firebrand one) from rendering successfully, as
serde refuses to deserialize the Trait.
We never displayed the description, and it's trivial to add back, so
that's why it was removed.
|
|
quick_error used the deprecated Error::cause interface, therefore we
want to use our own error enums with proper methods.
|
|
|
|
|
|
This would occur if e.g. only the profession was given.
|
|
|
|
|
|
This makes it so that instead of always going from the middle of the
minor trait, they will now adjust based on where they are going to. This
means if the chosen trait is the top one, the line will start a bit
further to the top, which makes it better to look at.
|
|
|
|
|
|
|
|
|
|
|
|
Doesn't change the outcome but looks better to read
|
|
As it turns out, the algorithm for drawing convex polygons is very bad
at handling aliasing, and the line height looked off as well. The new
algorithm fixes the issue by first drawing a horizontal filled
rectangle, then rotating the rectangle by the required angle (using
bicubic filtering) and finally overlaying the rectangle onto the target.
This improves both the looks of the line height and the aliasing
effects.
|
|
|
|
|
|
|
|
Apparently, turning the picture to grayscale also messes with the alpha
channel. A lot of trait icons have a small transparent border though.
Therefore, we want to preserve the alpha channel by copying it back from
the original trait icon. This improves render quality and removes some
of the artifacts.
|
|
|
|
|
|
|
|
|
|
|
|
|