From 8036f6c7735795ebc4353f0646746a6f68b43cd2 Mon Sep 17 00:00:00 2001 From: Ted John Date: Sat, 4 Jun 2016 23:07:01 +0100 Subject: [PATCH] fix drawing of picked up peep --- src/drawing/drawing.c | 4 ++-- src/drawing/drawing.h | 2 +- src/drawing/engines/OpenGLDrawingEngine.cpp | 13 ++++++++++++- src/drawing/engines/SoftwareDrawingEngine.cpp | 6 +++--- 4 files changed, 18 insertions(+), 7 deletions(-) diff --git a/src/drawing/drawing.c b/src/drawing/drawing.c index 0fe4fc32b5..8008327fa6 100644 --- a/src/drawing/drawing.c +++ b/src/drawing/drawing.c @@ -286,10 +286,10 @@ void gfx_invalidate_pickedup_peep() } } -void gfx_draw_pickedup_peep() +void gfx_draw_pickedup_peep(rct_drawpixelinfo *dpi) { if (gPickupPeepImage != UINT32_MAX) { - gfx_draw_sprite(&gScreenDPI, gPickupPeepImage, gPickupPeepX, gPickupPeepY, 0); + gfx_draw_sprite(dpi, gPickupPeepImage, gPickupPeepX, gPickupPeepY, 0); } } diff --git a/src/drawing/drawing.h b/src/drawing/drawing.h index c267afcc97..eb4eda72d3 100644 --- a/src/drawing/drawing.h +++ b/src/drawing/drawing.h @@ -132,7 +132,7 @@ void gfx_draw_rain(int left, int top, int width, int height, sint32 x_start, sin void gfx_clear(rct_drawpixelinfo *dpi, int colour); void gfx_draw_pixel(rct_drawpixelinfo *dpi, int x, int y, int colour); void gfx_invalidate_pickedup_peep(); -void gfx_draw_pickedup_peep(); +void gfx_draw_pickedup_peep(rct_drawpixelinfo *dpi); // line void gfx_draw_line(rct_drawpixelinfo *dpi, int x1, int y1, int x2, int y2, int colour); diff --git a/src/drawing/engines/OpenGLDrawingEngine.cpp b/src/drawing/engines/OpenGLDrawingEngine.cpp index 1c9bcee263..508e97f633 100644 --- a/src/drawing/engines/OpenGLDrawingEngine.cpp +++ b/src/drawing/engines/OpenGLDrawingEngine.cpp @@ -179,6 +179,8 @@ public: gfx_redraw_screen_rect(0, 0, _width - 1, _height - 1); window_update_all(); + gfx_draw_pickedup_peep(&_bitsDPI); + rct2_draw(); Display(); } @@ -311,7 +313,16 @@ void OpenGLDrawingContext::FillRect(uint32 colour, sint32 left, sint32 top, sint } glDisable(GL_TEXTURE_2D); - glColor3f(paletteColour.r, paletteColour.g, paletteColour.b); + + if (colour & 0x2000000) + { + glColor4f(paletteColour.r, paletteColour.g, paletteColour.b, 0.4f); + } + else + { + glColor3f(paletteColour.r, paletteColour.g, paletteColour.b); + } + glBegin(GL_QUADS); glVertex2i(left, top); glVertex2i(left, bottom); diff --git a/src/drawing/engines/SoftwareDrawingEngine.cpp b/src/drawing/engines/SoftwareDrawingEngine.cpp index afc0e2eee8..7ac63c9e2f 100644 --- a/src/drawing/engines/SoftwareDrawingEngine.cpp +++ b/src/drawing/engines/SoftwareDrawingEngine.cpp @@ -292,15 +292,15 @@ public: { _rainDrawer.SetDPI(&_bitsDPI); _rainDrawer.Restore(); - - gfx_invalidate_pickedup_peep(); - gfx_draw_pickedup_peep(); DrawAllDirtyBlocks(); window_update_all_viewports(); DrawAllDirtyBlocks(); window_update_all(); + gfx_draw_pickedup_peep(&_bitsDPI); + gfx_invalidate_pickedup_peep(); + DrawRain(&_rainDrawer); rct2_draw();