@@ -234,13 +234,16 @@ void Hud::drawLuaElements() {
234
234
const video::SColor color (255 , 255 , 255 , 255 );
235
235
const video::SColor colors[] = {color, color, color, color};
236
236
core::dimension2di imgsize (texture->getOriginalSize ());
237
- core::rect<s32> rect (0 , 0 , imgsize.Width * e->scale .X ,
238
- imgsize.Height * e->scale .X );
239
- rect += pos;
240
- v2s32 offset ((e->align .X - 1.0 ) * ((imgsize.Width * e->scale .X ) / 2 ),
241
- (e->align .Y - 1.0 ) * ((imgsize.Height * e->scale .X ) / 2 ));
242
- rect += offset;
243
- rect += v2s32 (e->offset .X , e->offset .Y );
237
+ v2s32 dstsize (imgsize.Width * e->scale .X ,
238
+ imgsize.Height * e->scale .Y );
239
+ if (e->scale .X < 0 )
240
+ dstsize.X = screensize.X * (e->scale .X * -0.01 );
241
+ if (e->scale .Y < 0 )
242
+ dstsize.Y = screensize.Y * (e->scale .Y * -0.01 );
243
+ v2s32 offset ((e->align .X - 1.0 ) * dstsize.X / 2 ,
244
+ (e->align .Y - 1.0 ) * dstsize.Y / 2 );
245
+ core::rect<s32> rect (0 , 0 , dstsize.X , dstsize.Y );
246
+ rect += pos + offset + v2s32 (e->offset .X , e->offset .Y );
244
247
driver->draw2DImage (texture, rect,
245
248
core::rect<s32>(core::position2d<s32>(0 ,0 ), imgsize),
246
249
NULL , colors, true );
0 commit comments