From a6c1d136034210aa2dc8c92ae1d9018a4b53aa5b Mon Sep 17 00:00:00 2001 From: Misa Date: Sat, 25 Apr 2020 14:29:26 -0700 Subject: [PATCH] De-duplicate map.custommode check when drawing size-type 2/8 entities Instead of copy-pasting all the BlitSurfaceStandard()s all over again, just make the referenced vector a pointer that changes depending on map.custommode. --- desktop_version/src/Graphics.cpp | 82 +++++++++++++------------------- 1 file changed, 32 insertions(+), 50 deletions(-) diff --git a/desktop_version/src/Graphics.cpp b/desktop_version/src/Graphics.cpp index 2aadc234..1b0a1106 100644 --- a/desktop_version/src/Graphics.cpp +++ b/desktop_version/src/Graphics.cpp @@ -1398,6 +1398,16 @@ void Graphics::drawentities() SDL_Rect drawRect; + std::vector *tilesvec; + if (map.custommode) + { + tilesvec = &entcolours; + } + else + { + tilesvec = &tiles; + } + trinketcolset = false; for (int i = obj.entities.size() - 1; i >= 0; i--) @@ -1525,23 +1535,13 @@ void Graphics::drawentities() drawRect = tiles_rect; drawRect.x += tpoint.x; drawRect.y += tpoint.y; - if(map.custommode){ - BlitSurfaceStandard(entcolours[obj.entities[i].drawframe],NULL, backBuffer, &drawRect); - drawRect.x += 8; - BlitSurfaceStandard(entcolours[obj.entities[i].drawframe],NULL, backBuffer, &drawRect); - drawRect.x += 8; - BlitSurfaceStandard(entcolours[obj.entities[i].drawframe],NULL, backBuffer, &drawRect); - drawRect.x += 8; - BlitSurfaceStandard(entcolours[obj.entities[i].drawframe],NULL, backBuffer, &drawRect); - }else{ - BlitSurfaceStandard(tiles[obj.entities[i].drawframe],NULL, backBuffer, &drawRect); - drawRect.x += 8; - BlitSurfaceStandard(tiles[obj.entities[i].drawframe],NULL, backBuffer, &drawRect); - drawRect.x += 8; - BlitSurfaceStandard(tiles[obj.entities[i].drawframe],NULL, backBuffer, &drawRect); - drawRect.x += 8; - BlitSurfaceStandard(tiles[obj.entities[i].drawframe],NULL, backBuffer, &drawRect); - } + BlitSurfaceStandard((*tilesvec)[obj.entities[i].drawframe],NULL, backBuffer, &drawRect); + drawRect.x += 8; + BlitSurfaceStandard((*tilesvec)[obj.entities[i].drawframe],NULL, backBuffer, &drawRect); + drawRect.x += 8; + BlitSurfaceStandard((*tilesvec)[obj.entities[i].drawframe],NULL, backBuffer, &drawRect); + drawRect.x += 8; + BlitSurfaceStandard((*tilesvec)[obj.entities[i].drawframe],NULL, backBuffer, &drawRect); } else if (obj.entities[i].size == 3) // Big chunky pixels! { @@ -1589,39 +1589,21 @@ void Graphics::drawentities() drawRect.x += tpoint.x; drawRect.y += tpoint.y; - if(map.custommode){ - BlitSurfaceStandard(entcolours[obj.entities[i].drawframe],NULL, backBuffer, &drawRect); - drawRect.x += 8; - BlitSurfaceStandard(entcolours[obj.entities[i].drawframe],NULL, backBuffer, &drawRect); - drawRect.x += 8; - BlitSurfaceStandard(entcolours[obj.entities[i].drawframe],NULL, backBuffer, &drawRect); - drawRect.x += 8; - BlitSurfaceStandard(entcolours[obj.entities[i].drawframe],NULL, backBuffer, &drawRect); - drawRect.x += 8; - BlitSurfaceStandard(entcolours[obj.entities[i].drawframe],NULL, backBuffer, &drawRect); - drawRect.x += 8; - BlitSurfaceStandard(entcolours[obj.entities[i].drawframe],NULL, backBuffer, &drawRect); - drawRect.x += 8; - BlitSurfaceStandard(entcolours[obj.entities[i].drawframe],NULL, backBuffer, &drawRect); - drawRect.x += 8; - BlitSurfaceStandard(entcolours[obj.entities[i].drawframe],NULL, backBuffer, &drawRect); - }else{ - BlitSurfaceStandard(tiles[obj.entities[i].drawframe],NULL, backBuffer, &drawRect); - drawRect.x += 8; - BlitSurfaceStandard(tiles[obj.entities[i].drawframe],NULL, backBuffer, &drawRect); - drawRect.x += 8; - BlitSurfaceStandard(tiles[obj.entities[i].drawframe],NULL, backBuffer, &drawRect); - drawRect.x += 8; - BlitSurfaceStandard(tiles[obj.entities[i].drawframe],NULL, backBuffer, &drawRect); - drawRect.x += 8; - BlitSurfaceStandard(tiles[obj.entities[i].drawframe],NULL, backBuffer, &drawRect); - drawRect.x += 8; - BlitSurfaceStandard(tiles[obj.entities[i].drawframe],NULL, backBuffer, &drawRect); - drawRect.x += 8; - BlitSurfaceStandard(tiles[obj.entities[i].drawframe],NULL, backBuffer, &drawRect); - drawRect.x += 8; - BlitSurfaceStandard(tiles[obj.entities[i].drawframe],NULL, backBuffer, &drawRect); - } + BlitSurfaceStandard((*tilesvec)[obj.entities[i].drawframe],NULL, backBuffer, &drawRect); + drawRect.x += 8; + BlitSurfaceStandard((*tilesvec)[obj.entities[i].drawframe],NULL, backBuffer, &drawRect); + drawRect.x += 8; + BlitSurfaceStandard((*tilesvec)[obj.entities[i].drawframe],NULL, backBuffer, &drawRect); + drawRect.x += 8; + BlitSurfaceStandard((*tilesvec)[obj.entities[i].drawframe],NULL, backBuffer, &drawRect); + drawRect.x += 8; + BlitSurfaceStandard((*tilesvec)[obj.entities[i].drawframe],NULL, backBuffer, &drawRect); + drawRect.x += 8; + BlitSurfaceStandard((*tilesvec)[obj.entities[i].drawframe],NULL, backBuffer, &drawRect); + drawRect.x += 8; + BlitSurfaceStandard((*tilesvec)[obj.entities[i].drawframe],NULL, backBuffer, &drawRect); + drawRect.x += 8; + BlitSurfaceStandard((*tilesvec)[obj.entities[i].drawframe],NULL, backBuffer, &drawRect); } else if (obj.entities[i].size == 9) // Really Big Sprite! (2x2) {