You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
if (sceneryEntry->scrolling_mode != SCROLLING_MODE_NONE && direction != 1 && direction != 2)
Horizontal 3D signs already support 4 rotation sprites per character, but two are unused because of this line. Horizontal signs have 2 sprite sets of 2 rotation sprites per characters, by design. Because the cardinal direction has a screen-space slope of 2:1 and letters can have an even or odd width, characters may have to be drawn a half-pixel above or below the pixel grid, and that is what the second set is for.
It would be nice if 3D signs had the ability to draw the back of the sign, as many signs in real life don't have backgrounds and you can see the back of the letters.
Implementation details:
change RCTLargeSceneryText.offset from an array of 2 to an array of 4
On loading legacy, set offset[1] and offset[2] to {(std::numeric_limits<int16_t>::min(), std::numeric_limits<int16_t>::min()}
On loading json, determine how many offsets are defined in ["properties"]["3dFont"]["offsets"]. If there are only two, the second one gets copied to RCTLargeSceneryText.offset[3] and set offset[1] and offset[2] to {(std::numeric_limits<int16_t>::min(), std::numeric_limits<int16_t>::min()}
In paint code, if the offset.x == std::numeric_limits<int16_t>::min() then don't draw the text in that angle.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Currently, horizontal 3D signs only paint text on directions 0 and 3, because of this line:
OpenRCT2/src/openrct2/paint/tile_element/Paint.LargeScenery.cpp
Line 405 in af46ff5
Horizontal 3D signs already support 4 rotation sprites per character, but two are unused because of this line.Horizontal signs have 2 sprite sets of 2 rotation sprites per characters, by design. Because the cardinal direction has a screen-space slope of 2:1 and letters can have an even or odd width, characters may have to be drawn a half-pixel above or below the pixel grid, and that is what the second set is for.It would be nice if 3D signs had the ability to draw the back of the sign, as many signs in real life don't have backgrounds and you can see the back of the letters.
Implementation details:
{(std::numeric_limits<int16_t>::min(), std::numeric_limits<int16_t>::min()}
{(std::numeric_limits<int16_t>::min(), std::numeric_limits<int16_t>::min()}
std::numeric_limits<int16_t>::min()
then don't draw the text in that angle.Beta Was this translation helpful? Give feedback.
All reactions