Upright sprite objects: Horizontally flip the front image

For consistent horizontal sprite structure when seen from front and back
Fix code style
pull/4387/head
SmallJoker 2016-07-26 14:39:03 +02:00 committed by paramat
parent 2cb0f649f4
commit 8a98cbda84
1 changed files with 40 additions and 44 deletions

View File

@ -839,21 +839,20 @@ void GenericCAO::addToScene(scene::ISceneManager *smgr,
setBillboardTextureMatrix(m_spritenode, setBillboardTextureMatrix(m_spritenode,
txs, tys, 0, 0); txs, tys, 0, 0);
} }
} } else if (m_prop.visual == "upright_sprite") {
else if(m_prop.visual == "upright_sprite") {
scene::SMesh *mesh = new scene::SMesh(); scene::SMesh *mesh = new scene::SMesh();
double dx = BS*m_prop.visual_size.X/2; double dx = BS * m_prop.visual_size.X / 2;
double dy = BS*m_prop.visual_size.Y/2; double dy = BS * m_prop.visual_size.Y / 2;
u8 li = m_last_light;
video::SColor c(255, li, li, li);
{ // Front { // Front
scene::IMeshBuffer *buf = new scene::SMeshBuffer(); scene::IMeshBuffer *buf = new scene::SMeshBuffer();
u8 li = m_last_light; video::S3DVertex vertices[4] = {
video::SColor c(255,li,li,li); video::S3DVertex(-dx, -dy, 0, 0,0,0, c, 1,1),
video::S3DVertex vertices[4] = video::S3DVertex( dx, -dy, 0, 0,0,0, c, 0,1),
{ video::S3DVertex( dx, dy, 0, 0,0,0, c, 0,0),
video::S3DVertex(-dx,-dy,0, 0,0,0, c, 0,1), video::S3DVertex(-dx, dy, 0, 0,0,0, c, 1,0),
video::S3DVertex(dx,-dy,0, 0,0,0, c, 1,1),
video::S3DVertex(dx,dy,0, 0,0,0, c, 1,0),
video::S3DVertex(-dx,dy,0, 0,0,0, c, 0,0),
}; };
u16 indices[] = {0,1,2,2,3,0}; u16 indices[] = {0,1,2,2,3,0};
buf->append(vertices, 4, indices, 6); buf->append(vertices, 4, indices, 6);
@ -868,14 +867,11 @@ void GenericCAO::addToScene(scene::ISceneManager *smgr,
} }
{ // Back { // Back
scene::IMeshBuffer *buf = new scene::SMeshBuffer(); scene::IMeshBuffer *buf = new scene::SMeshBuffer();
u8 li = m_last_light; video::S3DVertex vertices[4] = {
video::SColor c(255,li,li,li); video::S3DVertex( dx,-dy, 0, 0,0,0, c, 1,1),
video::S3DVertex vertices[4] = video::S3DVertex(-dx,-dy, 0, 0,0,0, c, 0,1),
{ video::S3DVertex(-dx, dy, 0, 0,0,0, c, 0,0),
video::S3DVertex(dx,-dy,0, 0,0,0, c, 1,1), video::S3DVertex( dx, dy, 0, 0,0,0, c, 1,0),
video::S3DVertex(-dx,-dy,0, 0,0,0, c, 0,1),
video::S3DVertex(-dx,dy,0, 0,0,0, c, 0,0),
video::S3DVertex(dx,dy,0, 0,0,0, c, 1,0),
}; };
u16 indices[] = {0,1,2,2,3,0}; u16 indices[] = {0,1,2,2,3,0};
buf->append(vertices, 4, indices, 6); buf->append(vertices, 4, indices, 6);