Humanoid: apply globalOffset *before* rotation
the globalOffset is meant to realign the sprite with the collision poly - applying it after rotating the drawables is bad! (I actually ACCIDENTALLY fixed this in StarExtensions and only noticed the difference today. quite incredible)
This commit is contained in:
parent
e3ab448553
commit
d255328476
@ -434,7 +434,7 @@ void OpenGlRenderer::setMultiSampling(unsigned multiSampling) {
|
||||
glEnable(GL_SAMPLE_SHADING);
|
||||
glMinSampleShading((float)m_multiSampling);
|
||||
} else {
|
||||
glMinSampleShading(1.f);
|
||||
glMinSampleShading(0.f);
|
||||
glDisable(GL_SAMPLE_SHADING);
|
||||
glDisable(GL_MULTISAMPLE);
|
||||
}
|
||||
|
@ -528,7 +528,7 @@ List<Drawable> Humanoid::render(bool withItems, bool withRotation) {
|
||||
auto addDrawable = [&](Drawable drawable, bool forceFullbright = false) {
|
||||
if (m_facingDirection == Direction::Left)
|
||||
drawable.scale(Vec2F(-1, 1));
|
||||
drawable.fullbright = drawable.fullbright || forceFullbright;
|
||||
drawable.fullbright |= forceFullbright;
|
||||
drawables.append(std::move(drawable));
|
||||
};
|
||||
|
||||
@ -792,12 +792,12 @@ List<Drawable> Humanoid::render(bool withItems, bool withRotation) {
|
||||
drawables.insertAllAt(0, m_altHand.nonRotatedDrawables);
|
||||
}
|
||||
|
||||
if (withRotation)
|
||||
Drawable::rotateAll(drawables, m_rotation);
|
||||
|
||||
Drawable::translateAll(drawables, m_globalOffset);
|
||||
Drawable::rebaseAll(drawables);
|
||||
|
||||
for (auto& drawable : drawables) {
|
||||
drawable.translate(m_globalOffset);
|
||||
if (withRotation && m_rotation != 0)
|
||||
drawable.rotate(m_rotation);
|
||||
drawable.rebase();
|
||||
}
|
||||
return drawables;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user